Trivia:
Creating a new U-Boot mirror archive with ARCH
tla my-default-archive vanbaren@example.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
U-Boot problem files for ARCH import
Due to violation of ARCH naming conventions, ARCH has problems importing the following U-Boot files/directories:
board/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
...for now, I'll simply ignore them. The problem appears to be that these are directories but have a .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).
Extracting a working copy of U-Boot from ARCH
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 local mirror of the u-boot-denx mirror and then put our changes in our local mirror.
Current plans:
-
/opt/u-boot-denx/u-boot/u-boot
- CVS + ARCH combined archive that tracks the official u-boot tree
- Archive:
vanbaren@example.com--u-boot-denx
-> /opt/{archives}/u-boot-denx
$ tla my-default-archive vanbaren@example.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
- Branch with the local modifications
- Archive
vanbaren@example.com--u-boot-local
-> /opt/{archives}/u-boot-local
Creating an Archive for local Modifications
Based on Elementary Branches
tla make-archive vanbaren@example.com--u-boot-local /opt/{archives}/u-boot-local
tla my-default-archive vanbaren@example.com--u-boot-local
tla archive-setup u-boot-local--vanbaren--0.1
# Create/populate a branch (normally would leave off the "--base-0" to take top of the tree)
tla tag vanbaren@example.com--u-boot-denx/u-boot-denx--mirror--1.1.2--base-0 u-boot-local--vanbaren--0.1
# Optional: check the operation
tla revisions --summary u-boot-local--vanbaren--0.1
# Get a working copy
tla get u-boot-local--vanbaren--0.1 u-boot
# (edit files -- or, in my case, apply 041104a.patch)
# Create a log file
vi `tla make-log`
tla commit
Mirroring an Archive via the Web Server
# The --listing is for HTML access (it has to come before the --mirror?)
tla make-archive --listing --mirror vanbaren@example.com--u-boot-local /var/www/external/arch/u-boot-local
tla archive-mirror vanbaren@example.com--u-boot-local
# 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/changelog
Accessing the Mirrored Archive via HTTP
# Reference: http://vanbaren.homelinux.com/doc/tla-doc/html/introducing-yourself.html
$ tla my-id "Jerry Van Baren <vanbaren@example.com>" # Obviously, fill in your name
# Register the remote archive for HTTP access
# Reference: http://vanbaren.homelinux.com/doc/tla-doc/html/shared-and-public-archives.html
$ tla register-archive vanbaren@example.com--u-boot-local http://vanbaren.homelinux.com/arch/u-boot-local
$ tla my-default-archive vanbaren@example.com--u-boot-local
#
# Example archive information and get
# Notes
# * The archive is remotely accessed via HTTP, not copied locally
#
$ tla categories
u-boot-local
$ tla branches u-boot-local
u-boot-local--vanbaren
$ tla versions u-boot-local--vanbaren
u-boot-local--vanbaren--0.1
$ tla revisions u-boot-local--vanbaren--0.1
base-0
patch-1
patch-2
patch-3
patch-4
$ tla get u-boot-local--vanbaren--0.1 u-boot
* from archive cached: vanbaren@example.com--u-boot-local/u-boot-local--vanbaren--0.1--base-0
* patching for revision: vanbaren@example.com--u-boot-local/u-boot-local--vanbaren--0.1--patch-1
* patching for revision: vanbaren@example.com--u-boot-local/u-boot-local--vanbaren--0.1--patch-2
* patching for revision: vanbaren@example.com--u-boot-local/u-boot-local--vanbaren--0.1--patch-3
* patching for revision: vanbaren@example.com--u-boot-local/u-boot-local--vanbaren--0.1--patch-4
* making pristine copy
* tree version set vanbaren@example.com--u-boot-local/u-boot-local--vanbaren--0.1
GNU-style Changelog
To automatically create a GNU-style changelog, very handy for figuring out what is in the various patches.
tla changelog
Removing ARCH artifacts
To remove arch artifacts from the directory tree (start over from scratch):
rm -rf \{arch\}/ ; find . -name .arch-ids -exec rm -rf \{\} \;
Note that you will also want to clean out
- The subdirectory under your archive directory (e.g.
/opt/{archive}/<archive-name>
)
- Your ~/.arch-params/locations/<archive-name>