Symlinks in Bazaar

Paul Hinze paul.t.hinze at gmail.com
Wed Feb 11 21:17:05 GMT 2009


The issue of symlinks was discussed about 6 months ago, having been
brought up by Rob Collins [1], and I just wanted to see where things
currently stand.

Rob in that last message was looking for agreement on a strategy as to
how the Bazaar UI should approach symlinks.  Aaron Bentley offered this
in a reply:

> How about: don't follow symlinks that are at the end of the path spec,
> but follow other symlinks.  This allows path/symlink/. to be traversed,
> while path/symlink is not.

I'm +1 for that idea, but I'm new to the project and not sure whether
this is the plan being followed or not.

My experience in playing around with v1.10 is that the experience can be
inconsistent.  Here's a specific example:

---------------------------

$ ln -s stuff/1.2.3/ symlink
$ bzr branch trunk symlink/my_feature
$ bzr info symlink/my_feature
Repository branch (format: unnamed)
Location:
  shared repository: .
  repository branch: symlink/my_feature

Related branches:
    push branch: $SERVER/stuff/1.2.3/test_branch
  parent branch: trunk

Note that here the symlink is expanded for the push branch, and the
parent branch is set correctly.  But if we check the other location:

$ bzr info stuff/1.2.3/test_branch
Repository branch (format: unnamed)
Location:
  shared repository: .
  repository branch: stuff/1.2.3/my_feature

Related branches:
    push branch: $SERVER/stuff/1.2.3/test_branch
  parent branch: stuff/trunk

The parent branch (because relative to the *link* it was ../trunk)
now improperly points to a thing that doesn't exist.

---------------------------

So that's just my first impressions on the issue of symlinks.  As
mentioned in the previous thread there are a "cluster of bugs" around
this topic.

I'm happy to file more specific bug reports, work on patches, or
whatever might be helpful.  Just help me figure out the best course of
action to take.

Thanks much,

Paul

[1] http://thread.gmane.org/gmane.comp.version-control.bazaar-ng.general/44917

-- 
{ 
  :name => 'Paul Hinze',
  :mail => 'paul.t.hinze at gmail.com',
  :www  => 'http://phinze.com',
  :irc  => 'phinze'
}



More information about the bazaar mailing list