Rev 3799: CommitBuilder.record_iter_changes handles changed-in-branch symlinks. in http://people.ubuntu.com/~robertc/baz2.0/commit-iterchanges

Robert Collins robertc at robertcollins.net
Tue Dec 2 04:49:29 GMT 2008


At http://people.ubuntu.com/~robertc/baz2.0/commit-iterchanges

------------------------------------------------------------
revno: 3799
revision-id: robertc at robertcollins.net-20081202044925-nzzxxo3usf3prh3a
parent: robertc at robertcollins.net-20081202044118-aivh6hnw05r2r4qw
committer: Robert Collins <robertc at robertcollins.net>
branch nick: commit-iterchanges
timestamp: Tue 2008-12-02 15:49:25 +1100
message:
  CommitBuilder.record_iter_changes handles changed-in-branch symlinks.
modified:
  bzrlib/repository.py           rev_storage.py-20051111201905-119e9401e46257e3
  bzrlib/tests/per_repository/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py	2008-12-02 04:41:18 +0000
+++ b/bzrlib/repository.py	2008-12-02 04:49:25 +0000
@@ -670,12 +670,12 @@
                         entry.text_size = parent_entry.text_size
                         entry.text_sha1 = parent_entry.text_sha1
                 elif kind == 'symlink':
-                    if change[2]:
-                        # Wants a path hint?
-                        entry.symlink_target = tree.get_symlink_target(file_id)
-                        self._add_text_to_weave(change[0], [], heads, None)
+                    # Wants a path hint?
+                    entry.symlink_target = tree.get_symlink_target(file_id)
+                    if (carry_over_possible and
+                        parent_entry.symlink_target == entry.symlink_target):
+                            carried_over = True
                     else:
-                        entry.symlink_target = basis_inv[file_id].symlink_target
                         self._add_text_to_weave(change[0], [], heads, None)
                 elif kind == 'directory':
                     if carry_over_possible:

=== modified file 'bzrlib/tests/per_repository/test_commit_builder.py'
--- a/bzrlib/tests/per_repository/test_commit_builder.py	2008-12-02 04:41:18 +0000
+++ b/bzrlib/tests/per_repository/test_commit_builder.py	2008-12-02 04:49:25 +0000
@@ -954,6 +954,14 @@
         os.symlink('target', 't1/link')
         self._commit_sprout_rename_merge_converged(tree1, 'link')
 
+    def test_last_modified_revision_after_converged_merge_link_changes_ric(self):
+        # merge a link changes the last modified.
+        self.requireFeature(tests.SymlinkFeature)
+        tree1 = self.make_branch_and_tree('t1')
+        os.symlink('target', 't1/link')
+        self._commit_sprout_rename_merge_converged(tree1, 'link',
+            mini_commit=self.mini_commit_record_iter_changes)
+
     def make_dir(self, name):
         self.build_tree([name + '/'])
 




More information about the bazaar-commits mailing list