Differences between revisions 4 and 8 (spanning 4 versions)
Revision 4 as of 2010-12-17 20:10:33
Size: 1776
Editor: mpm
Comment:
Revision 8 as of 2010-12-25 14:05:42
Size: 2005
Comment: Mention that AFP isn't AFS
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#section-numbering 2
#pragma section-numbers 2
Line 4: Line 3:

While AFS provides a POSIX-like interface that is suitable for usage with Mercurial, there are a few details that may surprise casual users.
While [[WikiPedia:Andrew_File_System|AFS]] provides a POSIX-like interface that is suitable for usage with Mercurial, there are a few details that may surprise casual users.
Line 10: Line 8:

Because AFS treats every subdirectory as a new filesystem, it is only possible to hardlink between files that exist in the same directory.
This prevents the clone command from creating hardlinks, though it should automatically fall back to copying the data.
Because AFS treats every subdirectory as a new filesystem, it is only possible to hardlink between files that exist in the same directory. This prevents the clone command from creating hardlinks, though it should automatically fall back to copying the data.
Line 15: Line 11:
In order to use Mercurial with a working directory on an AFS filesystem, the working directory and all directories under it (including the repository, ''`.hg`'') are accessible by the user. This means that for read-only operations like Cmd:status, these directories must have at least `rl` in their ACLs. For operations that change history or lock the repository, at least `rliw` must be in the ACL list for the working directory and `rliwd` in the ACL list for the repository (to delete lock files).
Line 16: Line 13:
In order to use Mercurial with a working directory on an AFS filesystem, the working directory and all directories under it (including the repository, ''`.hg`'') are accessible by the user.
This means that for read-only operations like [[Cmd:status|status]], these directories must have at least 'rl' in their ACLs.
For operations that change history or lock the repository, at least 'rliw' must be in the ACL list for the working directory and 'rliwd' in the ACL list for the repository (to delete lock files).
To perform read-only operations on a remote repository stored in AFS, `l` must be in the ACL lists for the parent directory of the repository and `rl` in the ACL list for the repository itself. Writing to a remote repository requires the same ACLs as when writing to a repository whose working directory is in AFS.
Line 20: Line 15:
To perform read-only operations on a remote repository stored in AFS, 'l' must be in the ACL lists for the parent directory of the repository and 'rl' in the ACL list for the repository itself.
Writing to a remote repository requires the same ACLs as when writing to a repository whose working directory is in AFS.
To be confirmed: Mercurial uses its own locking mechanism and doesn't use AFS locks and thus doesn't need the `k` permission.
Line 24: Line 18:
Line 29: Line 22:
== Other phenomena ==

 * http://www.selenic.com/pipermail/mercurial/2010-November/036124.html and http://www.selenic.com/pipermail/mercurial/2010-November/036125.html - symlinking fails on OSX/PPC
== Apple Filing Protocol (AFP) ==
It seems like [[WikiPedia:Apple_Filing_Protocol|AFP]] occasionally (for example [[http://www.selenic.com/pipermail/mercurial/2010-November/036121.html|here]]) has been confused with AFS. Some AFP issues has thus incorrectly has been attributed to AFS.

Using Mercurial on the Andrew File System (AFS)

While AFS provides a POSIX-like interface that is suitable for usage with Mercurial, there are a few details that may surprise casual users.

Because AFS treats every subdirectory as a new filesystem, it is only possible to hardlink between files that exist in the same directory. This prevents the clone command from creating hardlinks, though it should automatically fall back to copying the data.

2. Mercurial and AFS ACLs

In order to use Mercurial with a working directory on an AFS filesystem, the working directory and all directories under it (including the repository, .hg) are accessible by the user. This means that for read-only operations like status, these directories must have at least rl in their ACLs. For operations that change history or lock the repository, at least rliw must be in the ACL list for the working directory and rliwd in the ACL list for the repository (to delete lock files).

To perform read-only operations on a remote repository stored in AFS, l must be in the ACL lists for the parent directory of the repository and rl in the ACL list for the repository itself. Writing to a remote repository requires the same ACLs as when writing to a repository whose working directory is in AFS.

To be confirmed: Mercurial uses its own locking mechanism and doesn't use AFS locks and thus doesn't need the k permission.

3. Interactions with Extensions

It is known that some extensions interact poorly with AFS:

4. Apple Filing Protocol (AFP)

It seems like AFP occasionally (for example here) has been confused with AFS. Some AFP issues has thus incorrectly has been attributed to AFS.

FileSystemSpecifics (last edited 2012-03-25 18:58:39 by ThurnerRupert)