Rev 3792: CommitBuilder.record_iter_changes handles changed files. in http://people.ubuntu.com/~robertc/baz2.0/commit-iterchanges
Robert Collins
robertc at robertcollins.net
Tue Dec 2 01:39:42 GMT 2008
At http://people.ubuntu.com/~robertc/baz2.0/commit-iterchanges
------------------------------------------------------------
revno: 3792
revision-id: robertc at robertcollins.net-20081202013938-9h21myml6z0ku8th
parent: robertc at robertcollins.net-20081202013346-8w5gkpw7vq9t4h87
committer: Robert Collins <robertc at robertcollins.net>
branch nick: commit-iterchanges
timestamp: Tue 2008-12-02 12:39:38 +1100
message:
CommitBuilder.record_iter_changes handles changed 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-12-02 01:28:24 +0000
+++ b/bzrlib/repository.py 2008-12-02 01:39:38 +0000
@@ -573,7 +573,18 @@
if change[2]:
# From disk.
if kind == 'file':
- import pdb;pdb.set_trace()
+ if change[7][0]:
+ entry.executable = True
+ else:
+ entry.executable = False
+ file_obj, stat_value = tree.get_file_with_stat(file_id,
+ change[1][1])
+ try:
+ lines = file_obj.readlines()
+ finally:
+ file_obj.close()
+ 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':
@@ -591,11 +602,11 @@
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
+ basis_file = basis_tree.get_file(file_id, path=change[1][0])
+ try:
+ lines = basis_file.readlines()
+ finally:
+ basis_file.close()
entry.text_sha1, entry.text_size = self._add_text_to_weave(
file_id, lines, heads, None)
elif kind == 'symlink':
=== modified file 'bzrlib/tests/per_repository/test_commit_builder.py'
--- a/bzrlib/tests/per_repository/test_commit_builder.py 2008-12-02 01:33:46 +0000
+++ b/bzrlib/tests/per_repository/test_commit_builder.py 2008-12-02 01:39:38 +0000
@@ -608,7 +608,8 @@
tree = self.make_branch_and_tree('.')
self.build_tree(['file'])
self._add_commit_reparent_check_changed(tree, 'file',
- expect_fs_hash=True, mini_commit=self.mini_commit_record_iter_changes)
+ expect_fs_hash=True,
+ mini_commit=self.mini_commit_record_iter_changes)
def test_last_modified_revision_after_reparent_link_changes(self):
# reparenting a link changes the last modified.
@@ -796,6 +797,16 @@
self._add_commit_change_check_changed(tree, 'file', change_file,
expect_fs_hash=True)
+ def test_last_modified_revision_after_content_file_changes_ric(self):
+ # altering a file changes the last modified.
+ tree = self.make_branch_and_tree('.')
+ self.build_tree(['file'])
+ def change_file():
+ tree.put_file_bytes_non_atomic('fileid', 'new content')
+ self._add_commit_change_check_changed(tree, 'file', change_file,
+ expect_fs_hash=True,
+ mini_commit=self.mini_commit_record_iter_changes)
+
def test_last_modified_revision_after_content_link_changes(self):
# changing a link changes the last modified.
self.requireFeature(tests.SymlinkFeature)
More information about the bazaar-commits
mailing list