various suggestions for mr

Dieter Plaetinck dieter at plaetinck.be
Fri Oct 28 15:43:54 CEST 2011


On Fri, 28 Oct 2011 14:34:16 +0100
Adam Spiers <vcs-home at adamspiers.org> wrote:

> On Fri, Oct 28, 2011 at 12:40 PM, Dieter Plaetinck
> <dieter at plaetinck.be> wrote:
> > Sorry that I go slightly off-topic but you mentioned Gnu Stow, I
> > looked it up and it seems very nice. i haven't run it yet, but (for
> > those who don't want to read the long description) from the
> > description it seems like a simple and elegant tool, which you give
> > a directory ("i want symlinks here") and a bunch of package
> > directories ("all files in here must be symlinked") and it will do
> > the right thing on package additions and removals.
> 
> Yes, it is pretty nice (although the code base is very old-fashioned).
> 
> One thing it does which I guess other symlink managers wouldn't, is
> called "tree folding" - i.e. it makes intelligent decisions about when
> to symlink to a subdirectory vs. to individual files within that
> subtree:
> 
>   http://www.gnu.org/software/stow/manual.html#SEC4

IMHO this feature is just common sense and it's among the first things
I think of when I'm thinking "what would I want a symlink manager to do?",
so I would expect that people who implement symlink managers either
also do something like this, or at least list it as a todo.

> For example, imagine I have a stow package called 'foo' which wants to
> install a file to ~/local/lib/perl/Acme/Foo.pm (by "install", I mean
> set up a symlink so that that path points to the Foo.pm inside the
> stow package).  If ~/local doesn't already exist, and 'foo' is the
> only stow package which installs anywhere under ~/local, then stow's
> tree folding feature will ensure that ~/local is a symlink back to
> $STOW_DIR/foo/local/lib/perl/Acme/Foo.pm.

Don't you mean to $STOW_DIR/foo/local ?

> 
> However I might very well want to manually place other files inside
> ~/local which have nothing to do with stow, let alone the 'foo' stow
> package.  It might make sense to have ~/local/lib/perl/Acme/ be a
> symlink to $STOW_DIR/foo/local/lib/perl/Acme/, but symlinks higher up
> the tree would be undesirable.  This is easily overcome by creating a
> special stow package (which I call 'ANTIFOLD')

this seems a bit messy though. Once you go the way of having a tool automagically
manage all your symlinks, why not just have the discipline to put all your files
in appropriate packages? so that you never _need_ to create "antifold" packages?
what you're doing seems a bit like running into the opposite direction.

Dieter


More information about the vcs-home mailing list