Mac OS X specific issues
Fink has packages for arch-tla (1.3), bazaar / bazaar-ssl (both v 1.2), xtla, and tla-tools in the 10.3 unstable tree.
DarwinPorts has tla (1.3) under the port name "arch". Bazaar 1.4.2 is also available as "bazaar".
Panther Package MacOS X Installer package for installing arch (version 1.3, tested on 10.3.7).
Usage Considerations
HFS+, Mac OS X's default filesystem, is case-insensitive. For a discussion on case-insensitive filesystems, check Filesystem Considerations.
Accessing hardlinks on HFS+ is approximately an order of magnitude slower than accessing regular files. This has fairly serious performance implications if you plan on using a revision library with tla. The only workaround is to put your revision library on a UFS volume, but that isn't always an easy thing to do without reinstalling OS X.
Building
As of this writing (2004-02-04), tla-1.1 final builds fine on Mac OS X 10.3.2 using Apple's Dev Tools, assuming that a) the tar implementation found is gnutar, which wasn't the case on 10.2 but seems to be on 10.3, and b) the diff/diff3 utilities found are also from GNU. If this is not the case, building and installing the GNU diffutils and configuring tla to use them works like a charm. The bottom line is that no code changes to tla-1.1 are necessary, and Mac OS X doesn't seem any more problematic to configure for than some other BSD-based platforms. -- Paul Snively <psnively@mac.com>
tla-1.1 builds and runs fine also on OS X 10.2.8. But I indeed use recent versions of diff and tar and many gnu tool from the fink project, not the Apple supplied versions.
I built arch 1.2 on 10.3.4. I had to edit the config script because even though I had GNU diff already installed (not from fink, it was in /usr/bin/) it said I had BSD diff. I ran the test suite and it passed, and have had no trouble at all. I think the diff checking script could use some help.
Changes you might want to make if you use arch for OS X development (not just on OS X):
=tagging-method
Change the {arch}/=tagging-method file to include the following regexps:
precious ^(\+.*|\.gdbinit|\.#ckpts-lock|=build\.*|=install\.*|CVS|CVS\.adm|RCS|RCSLOG|SCCS|TAGS|\.DS_Store)$ backup ^.*(~|\.~[0-9]+~|\.bak|\.swp|\.orig|\.rej|\.original|\.modified|\.reject|~.nib)$
This will make sure the OS X desktop file doesn't confuse arch, and also registers InterfaceBuilder's naming convention for backups (foo~.nib) -- Michael McCracken <michael_mccracken@mac.com>
You might want to add .DS_Store to the junk files, and not to the precious. This works fine for MoinMoin development.
junk ^(,.*|\.DS_Store)$
Resource Forks
OSX 10.3.2, Devtools, compiled tla 1.2 and gnu diffutils 2.8.1 without any problem.
Does anybody know how resource forks are handled? It seems that binary files are tar'ed, but the Mac OSX tar is not resource fork aware. Hence, the existence of commands like CpMac and ditto.
Searched the mailing list for 'resource fork' but the thread that appears discusses how resource forks are preserved across platforms. Not sure if any resolution was reached?
Answer: I haven't tried this, but what about having tla use 'hfstar' instead of the regular tar? It's an HFS-aware version of tar. A number of people including myself use it to make backups of the HFS file system. The fink package page is here: http://fink.sourceforge.net/pdb/package.php/hfstar
Update: This has been fixed in 10.4, aka "Tiger". Quote from Apple's site: "Use command-line commands safely on HFS+ files. Utilities such as cp, mv, tar, rsync now use the same standard APIs as Spotlight and access control lists to handle resource forks properly." It shouldn't be a problem any more.
