More fun things you can do
Cherry-picking changes
Suppose that you're the maintainer of lnx-bbc--research--0.0, and you just saw someone NUV a package in lnx-bbc--stable--2.1. The resulting revision for stable is now patch-69, and the current revision for research is patch-242.
Since changesets are self-contained, you know that patch-69 contains only the stuff you want to bring over to your branch. Perhaps patch-68 was something that isn't applicable to the research codebase. Perhaps patches 30 through 68 are all judiciously back-ported features from the research branch.
Well you can cherry-pick stable's patch-69 as a changeset you want to apply to the research branch.
$ cd lnx-bbc--research--0.0--patch-242 $ tla replay lnx-bbc-devel@zork.net--gar/lnx-bbc--stable--2.1--patch-69
Resolve any conflicts and commit! You'll even have the stable developer's changelog entry in your commit log!
moving files
Arch has the "tla mv" command, which allows you to move a file from one place in a branch to another, retaining its revision history!
Speeding up remote operations
Arch uses SFTP as the remote protocol, and it's low-level enough that serious lag can be introduced while talking with gargoyle. To speed things up, you can create a local cache of individual files in the archive, otherwise known as a library.
$ mkdir ~/.arch-library $ tla my-revision-library ~/.arch-library/ $ tla library-config --greedy ~/.arch-library/ $ tla library-add lnx-bbc-devel@zork.net--gar-autobuild/lnx-bbc--research--0.0 $ tla library-add lnx-bbc-devel@zork.net--gar-autobuild/lnx-bbc--stable--2.1
What you will now have is a greedy library that will automatically cache unpacked versions of all the files in those two branches you library-added.
Public mirrors
Occasionally you'll be partway into a project on a local branch, and you realize you need help or want to show your work to another developer. Arch to the rescue!
$ tla make-archive --listing --mirror haesslich@zork.net--projects sftp://haesslich@zork.net/home/haesslich/public_html/arch $ tla archive-mirror haesslich@zork.net--projects
Since this was mirrored to the arch subdir of haesslich's public_html on zork.net, he would direct people to do the following:
$ tla register haesslich@zork.net--projects http://zork.net/~haesslich/arch $ tla get haesslich@zork.net--projects/lnx-bbc--uglification-project
The stable mirror, and the build's quarantine for it
The official anonymous mirror for lnx-bbc-devel@zork.net--gar is at http://www.lnx-bbc.com/arch
Currently gargoyle runs two cron jobs that make mirrors. The first one is the script that mails recently checked-in patchsets to lnx-bbc-cvs. That one pushes all new commits to lnx-bbc--research up to the mirror each minute.
The second is the autobuild job, which checks out lnx-bbc--stable and runs a complete build of it. If the build succeeds, the ISO goes up to http://lnx-bbc.com/builds/, a mail goes out about the success, and the version that was built is pushed to the mirror. If the build fails, nothing gets pushed and an error message goes to lnx-bbc-cvs.
![[LNX-BBC]](logo.png)