Rev 3787: CommitBuilder.record_iter_changes handles renamed files. in http://people.ubuntu.com/~robertc/baz2.0/commit-iterchanges
Robert Collins
robertc at robertcollins.net
Tue Dec 2 01:18:03 GMT 2008
At http://people.ubuntu.com/~robertc/baz2.0/commit-iterchanges
------------------------------------------------------------
revno: 3787
revision-id: robertc at robertcollins.net-20081202011752-qa4n9318z1m24gjf
parent: robertc at robertcollins.net-20081118063955-rosaxti87kco7tlk
committer: Robert Collins <robertc at robertcollins.net>
branch nick: commit-iterchanges
timestamp: Tue 2008-12-02 12:17:52 +1100
message:
CommitBuilder.record_iter_changes handles renamed files.
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-11-18 06:39:55 +0000
+++ b/bzrlib/repository.py 2008-12-02 01:17:52 +0000
@@ -565,6 +565,9 @@
for change, head_candidates in changes.values():
if change[3][1]: # versioned in target.
kind = change[6][1]
+ file_id = change[0]
+ entry = _entry_factory[kind](file_id, change[5][1],
+ change[4][1])
heads = self._heads(change[0], head_candidates)
# Populate the entry
if change[2]:
@@ -584,7 +587,17 @@
else:
# From basis.
if kind == 'file':
- import pdb;pdb.set_trace()
+ if change[7][1]:
+ entry.executable = True
+ else:
+ entry.executable = False
+ text_revision_id = basis_inv[file_id].revision
+ bytes = ''.join(self.repository.iter_files_bytes([(file_id,
+ text_revision_id, None)]).next()[1])
+ lines = osutils.split_lines(bytes)
+ del bytes
+ entry.text_sha1, entry.text_size = self._add_text_to_weave(
+ file_id, lines, heads, None)
elif kind == 'symlink':
import pdb;pdb.set_trace()
elif kind == 'directory':
@@ -595,8 +608,6 @@
import pdb;pdb.set_trace()
else:
raise AssertionError('unknown kind %r' % kind)
- entry = _entry_factory[change[6][1]](
- change[0], change[5][1], change[4][1])
entry.revision = modified_rev
else:
=== modified file 'bzrlib/tests/per_repository/test_commit_builder.py'
--- a/bzrlib/tests/per_repository/test_commit_builder.py 2008-11-18 06:39:55 +0000
+++ b/bzrlib/tests/per_repository/test_commit_builder.py 2008-12-02 01:17:52 +0000
@@ -551,6 +551,14 @@
self._add_commit_renamed_check_changed(tree, 'file',
expect_fs_hash=True)
+ def test_last_modified_revision_after_rename_file_changes_ric(self):
+ # renaming a file changes the last modified.
+ tree = self.make_branch_and_tree('.')
+ self.build_tree(['file'])
+ self._add_commit_renamed_check_changed(tree, 'file',
+ expect_fs_hash=True,
+ mini_commit=self.mini_commit_record_iter_changes)
+
def test_last_modified_revision_after_rename_link_changes(self):
# renaming a link changes the last modified.
self.requireFeature(tests.SymlinkFeature)
More information about the bazaar-commits
mailing list