On Fri, 10 Oct 1997, Brian Bartholomew wrote:
> > I don't know what a /depot scheme is.
>
> There are as many depot schemes as there are sysadmins, however, the
> goals of depot are as follows. Coda has the opportunity to make huge
> improvements in the implementation of goal four:
>
> 1. Don't mix packages with the OS or each other.
[details snipped]
> 2. All tools are available at once.
[details snipped]
These are available (AFAICT) with a depot'ing program (either
depot, developed at CMU, or Stow, which has a number of advantages and
a few disavantages compared to depot -- http://www.fsf.org/software/stow/;
there are probably others I'm not familiar with). Presumably, that's the
source of the term '/depot scheme'.
> 3. Architecture differences are hidden.
>
> /depot/emacs-19.1/bin/emacs is the proper binary on
> every system I access the pathname from.
>
> 4. Presentation path is decoupled from storage path and server.
[details snipped]
As long as Coda provides something like the "@sys" in AFS
symlinks, that solves half the problem. When you follow a symlink that
contains the string "@sys" in AFS, it substitutes a canonical system type
(shorter than the GNU-style canonical system type) string in its place, so
that, for example, I have:
[poole_at_samtheeagle ~/bin]$ ls -l rxvt
lrwxr-xr-x 1 poole staff 26 Oct 10 15:54 rxvt ->
../stow/rxvt/@sys/bin/rxvt*
So depending on my current system, it should go to the right
place.
This still leaves two problems that you mentioned:
1) Version numbers of programs aren't taken into consideration -- there's
no decision to go to emacs-19.1 instead of emacs-19.2, and
2) An entire directory may be symlinked to some depot subdirectory (to
reduce the total number of symlinks necessary)
In my opinion, the first of these isn't something that the file
system should really take care of, since it's virtually impossible to
determine the 'correct' version of a file to link to without hints from
the user (in which case you might as well make /depot/emacs-19 into a
symlink to /depot/emacs-19.x).
The second is something that could reasonably be hidden in a
filesystem, but not without incorporating the entire depot scheme into the
filesystem as well. Again, in my opinion, this is unnecessary bloat and
slowdown for the common path -- for a lot of things, the chance of the
variety in 'pwd' etc due to a depot scheme actually confusing someone is
near-zero (since most of the common directories would be split-open and
only the file contents would be symlinks, most of the common directories
would show the expected name).
Coda should work well for serving a file depot, though -- it does
transparently replicate volumes to multiple servers, so that you could
have your depot stored on Coda and use a normal depot program build a
symlink tree or copy files over as appropriate.
- Michael