[RFC] Treating symlinks as their targets

John Arbash Meinel john at arbash-meinel.com
Mon Aug 21 18:09:30 BST 2006

I had an interesting discussion on IRC with gwilma. They had a request
to version symlinks not as symlinks but as the target contents.
Specifically, he wanted to do something like version $HOME, and wanted
to make sure that both the local files, and the remote files got versioned.

From an implementation perspective, it seems like we could hack in and
just change to using 'os.stat()' instead of 'os.lstat()'.

That would cause the right things to happen on the 'commit' and 'add'
side. I think 'pull' and 'merge' might fail, because they use
.bzr/checkout/limbo for temporary files, and rename them into place
(which would fail across mount points).

To fix that, it would be possible to create temp files in the directory
they will end up. (Which might have a performance implication, because
of other discussions about inodes, etc). I don't think TreeTransform
supports it as is.

Aaron, any ideas as to what it would take to change TreeTransform to try
and use target directories instead of a limbo directory? I realize some
things get really complex, because the target dir may not exist yet if
someone is adding a whole subtree.

I don't think this would be a real core feature, but it might be a
useful plugin.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 254 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060821/f931f0a7/attachment.pgp 

More information about the bazaar mailing list