Using ARCH

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:


$ 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

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