Traceback in bzr difftools plugin when using external merge tool to compare two branches if branches contain symlinks

Stephen Ward sward.dev at verizon.net
Fri Apr 27 03:31:06 BST 2007


Hi,

The problem in this case is that the 'self.symlink_target' is not filled in at 
the time '_put_on_disk()' tries to use it.  The following change fixes the 
problem, for me, but I don't know if it is the right way to fix it in the 
larger scheme.  Perhaps there is something that the application (the 
difftools plugin) was supposed to have done with the working tree, that would 
have prevented this... but what?

-- Steve


=== modified file 'bzrlib/inventory.py'
--- bzrlib/inventory.py 2007-04-04 02:31:25 +0000
+++ bzrlib/inventory.py 2007-04-27 01:54:08 +0000
@@ -804,6 +804,7 @@
     def _put_on_disk(self, fullpath, tree):
         """See InventoryEntry._put_on_disk."""
         try:
+            self._read_tree_state(fullpath, tree)  # else target may be empty
             os.symlink(self.symlink_target, fullpath)
         except OSError,e:
             raise BzrError("Failed to create symlink %r -> %r, error: %s" % 
(fullpath, self.symlink_target, e))




More information about the bazaar mailing list