/opt/{archives}
tla my-default-archive vanbaren@cideas.com--u-boot-denx tla archive-setup u-boot-denx--mirror--1.1.2 tla init-tree u-boot-denx--mirror--1.1.2 tla add `find . -type d` # Add directories tla add `tla inventory --names --source` # Add source files vi `tla make-log` # Edit the log appropriately tla import
Due to violation of ARCH naming conventions, ARCH has problems importing the following U-Boot files/directories:
...for now, I'll simply ignore them. The problem appears to be that these are directories but have aboard/MAI/bios_emulator/scitech/lib/debug/linux/gcc/glibc.so board/MAI/bios_emulator/scitech/lib/debug/linux/gcc/libc.so board/MAI/bios_emulator/scitech/lib/release/linux/gcc/glibc.so board/MAI/bios_emulator/scitech/lib/release/linux/gcc/libc.so
.so
extension. To ignore them, I tried to use tla delete <file>
on the above files but that didn't work. Instead, I renamed them with a leading "," (arch ignores files with leading commas).
To get a working copy and put it in the new subdirectory u-boot
vanbaren@dellserver:~/tmp/u-boot$ tla get u-boot-denx--mirror--1.1.2 u-boot
We want to create a CI mirror of the u-boot-denx mirror and then put our changes in our CI mirror.
Current plans:
/opt/u-boot-denx/u-boot/u-boot
- CVS + ARCH combined archive that tracks the official u-boot tree
vanbaren@cideas.com--u-boot-denx
-> /opt/{archives}/u-boot-denx
$ tla my-default-archive vanbaren@cideas.com--u-boot-denx $ tla categories u-boot-denx $ tla branches u-boot-denx u-boot-denx--mirror $ tla versions u-boot-denx--mirror u-boot-denx--mirror--1.1.2
vanbaren@cideas.com--u-boot-ci
-> /opt/{archives}/u-boot-ci
Based on Elementary Branches
tla make-archive vanbaren@cideas.com--u-boot-ci /opt/{archives}/u-boot-ci tla my-default-archive vanbaren@cideas.com--u-boot-ci tla archive-setup u-boot-ci--vanbaren--0.1 # Create/populate a branch (normally would leave off the "--base-0" to take top of the tree) tla tag vanbaren@cideas.com--u-boot-denx/u-boot-denx--mirror--1.1.2--base-0 u-boot-ci--vanbaren--0.1 # Optional: check the operation tla revisions --summary u-boot-ci--vanbaren--0.1 # Get a working copy tla get u-boot-ci--vanbaren--0.1 u-boot # (edit files -- or, in my case, apply 041104a.patch) # Create a log file vi `tla make-log` tla commit
# The --listing is for HTML access (it has to come before the --mirror?) tla make-archive --listing --mirror vanbaren@cideas.com--u-boot-ci /var/www/external/arch/u-boot-ci tla archive-mirror vanbaren@cideas.com--u-boot-ci # In the project tree, run the following to make a GNU-style changelog for the web page tla changelog > /var/www/external/arch/u-boot-ci/changelog
# This updates the already existing mirror vanbaren@cideas.com--u-boot-ci-MIRROR tla archive-mirror vanbaren@cideas.com--u-boot-ci # In the project tree, run the following to make a GNU-style changelog for the web page tla changelog > /var/www/external/arch/u-boot-ci/changelog
# Reference: http://www.cideas.us/doc/tla-doc/html/introducing-yourself.html $ tla my-id "Jerry Van Baren <vanbaren@cideas.com>" # Obviously, fill in your name # Register the remote archive for HTTP access # Reference: http://www.cideas.us/doc/tla-doc/html/shared-and-public-archives.html $ tla register-archive vanbaren@cideas.com--u-boot-ci http://www.cideas.us/arch/u-boot-ci $ tla my-default-archive vanbaren@cideas.com--u-boot-ci # # Example archive information and get # Notes # * The archive is remotely accessed via HTTP, not copied locally # $ tla categories u-boot-ci $ tla branches u-boot-ci u-boot-ci--vanbaren $ tla versions u-boot-ci--vanbaren u-boot-ci--vanbaren--0.1 $ tla revisions u-boot-ci--vanbaren--0.1 base-0 patch-1 patch-2 patch-3 patch-4 $ tla get u-boot-ci--vanbaren--0.1 u-boot * from archive cached: vanbaren@cideas.com--u-boot-ci/u-boot-ci--vanbaren--0.1--base-0 * patching for revision: vanbaren@cideas.com--u-boot-ci/u-boot-ci--vanbaren--0.1--patch-1 * patching for revision: vanbaren@cideas.com--u-boot-ci/u-boot-ci--vanbaren--0.1--patch-2 * patching for revision: vanbaren@cideas.com--u-boot-ci/u-boot-ci--vanbaren--0.1--patch-3 * patching for revision: vanbaren@cideas.com--u-boot-ci/u-boot-ci--vanbaren--0.1--patch-4 * making pristine copy * tree version set vanbaren@cideas.com--u-boot-ci/u-boot-ci--vanbaren--0.1
$ tla missing patch-5 # See also http://www.cideas.us/doc/tla-doc/html/update-commit.html $ tla missing --summary $ tla cat-archive-log u-boot-ci--vanbaren--0.1--patch-5.patches # For full details $ ls u-boot-ci--vanbaren--0.1--patch-5 mod-dirs-index new-files-archive original-only-dir-metadata mod-files-index orig-dirs-index patches modified-only-dir-metadata orig-files-index removed-files-archive # To get a copy of a specific changeset $ tla get-changeset u-boot-ci--vanbaren--0.1--patch-4 # To update the local tree with the archive changes $ tla update
OK, Wolfgang has updated the official CVS archive. I did a cvs update
to get his changes and created a new arch changeset. Fetch the changeset.
# In the u-boot (source) directory: tla get-changeset -A vanbaren@cideas.com--u-boot-denx u-boot-denx--mirror--1.1.2--patch-1 ../denx-patch-1 tla apply-changeset ../denx-patch-1/ .
It appears tla replay
should do this without the intermediate directory step, but it wasn't working for me.
# In the u-boot-denx directory update to the latest CVS cvs update -Pd # Create a new changeset vi `tla make-log` tla commit # Oh-oh, got a lot of errors # "These files would be source but lack inventory ids" # and # "These explicit ids have no corresponding file:" # ...files were added and deleted. I piped the output to a # file and then turned it into a script to do tla add/delete # on the files in question. tla commit 2> ,,x vi x # prepend lines with new files with tla add # prepend deleted files with tla delete and edit to transform # the ID files to the now gone original file . ,,x # run the script tla commit 2> ,,x # OK, files in the new subdirectories were not added. # Do another round of creating ,,x and add them . ,,x vi `tla make-log` tla commit
To automatically create a GNU-style changelog, very handy for figuring out what is in the various patches.
tla changelog
I attempted to check for changes and got an error.
vanbaren@dellserver:/opt/u-boot-ci/u-boot$ tla changes * looking for vanbaren@cideas.com--u-boot-ci/u-boot-ci--vanbaren--0.1--patch-9 to compare with * comparing to vanbaren@cideas.com--u-boot-ci/u-boot-ci--vanbaren--0.1--patch-9 /home/asuffield/arch/dists/tla/tla-1.3/src/tla/libarch/invent.c:916:botched invariant *a < *b PANIC: exiting on botched invariant
Ran strace tla tree-lint
to find the breakage point
lstat64("./tools/updater/utils.c", {st_mode=S_IFREG|0644, st_size=2986, ...}) = 0 open("./tools/updater/.arch-ids/utils.c.id", O_RDONLY) = 4 read(4, "Jerry Van Baren< *b", 7*a < *b) = 7 write(2, "\n", 1 ) = 1 write(2, "PANIC: ", 7PANIC: ) = 7 write(2, "exiting on botched invariant", 28exiting on botched invariant) = 28 write(2, "\n", 1 ) = 1 exit_group(2) = ?
It isn't clear why it is trying to open {arch}/{arch}
Hmmm, it turns out there was a really funny directory name (8 bit characters) that was messing up tla.
To remove arch artifacts from the directory tree (start over from scratch):
Note that you will also want to clean outrm -rf \{arch\}/ ; find . -name .arch-ids -exec rm -rf \{\} \;
/opt/{archive}/<archive-name>
)