972
973
expected_graph[(file_id, rev2)] = ((file_id, rev1),)
973
974
self.assertFileGraph(expected_graph, tree1, (file_id, rev2))
975
def test_last_modified_revision_after_converged_merge_dir_changes(self):
976
# merge a dir changes the last modified.
976
def _commit_sprout_make_merge(self, tree1, make, mini_commit=None):
977
# Make a merge which incorporates the addition of a new object to
978
# another branch. The per-file graph shows no additional change
979
# in the merge because its a straight line.
980
rev1 = tree1.commit('')
981
tree2 = tree1.bzrdir.sprout('t2').open_workingtree()
982
# make and commit on the other side to merge back
985
tree2.add(['name'], [file_id])
986
rev2 = tree2.commit('')
987
tree1.merge_from_branch(tree2.branch)
988
if mini_commit is None:
989
mini_commit = self.mini_commit
990
rev3 = mini_commit(tree1, None, 'name', False)
991
tree3, = self._get_revtrees(tree1, [rev2])
992
# in rev2, name should be only changed in rev2
993
self.assertEqual(rev2, tree3.inventory[file_id].revision)
995
expected_graph[(file_id, rev2)] = ()
996
self.assertFileGraph(expected_graph, tree1, (file_id, rev2))
998
def test_last_modified_revision_after_converged_merge_dir_unchanged(self):
999
# merge a dir that changed preserves the last modified.
977
1000
tree1 = self.make_branch_and_tree('t1')
978
1001
self.build_tree(['t1/dir/'])
979
1002
self._commit_sprout_rename_merge_converged(tree1, 'dir')
981
def test_last_modified_revision_after_converged_merge_dir_changes_ric(self):
982
# merge a dir changes the last modified.
1004
def test_last_modified_revision_after_converged_merge_dir_unchanged_ric(self):
1005
# merge a dir that changed preserves the last modified.
983
1006
tree1 = self.make_branch_and_tree('t1')
984
1007
self.build_tree(['t1/dir/'])
985
1008
self._commit_sprout_rename_merge_converged(tree1, 'dir',
986
1009
mini_commit=self.mini_commit_record_iter_changes)
988
def test_last_modified_revision_after_converged_merge_file_changes(self):
989
# merge a file changes the last modified.
1011
def test_last_modified_revision_after_converged_merge_file_unchanged(self):
1012
# merge a file that changed preserves the last modified.
990
1013
tree1 = self.make_branch_and_tree('t1')
991
1014
self.build_tree(['t1/file'])
992
1015
self._commit_sprout_rename_merge_converged(tree1, 'file')
994
def test_last_modified_revision_after_converged_merge_file_changes_ric(self):
995
# merge a file changes the last modified.
1017
def test_last_modified_revision_after_converged_merge_file_unchanged_ric(self):
1018
# merge a file that changed preserves the last modified.
996
1019
tree1 = self.make_branch_and_tree('t1')
997
1020
self.build_tree(['t1/file'])
998
1021
self._commit_sprout_rename_merge_converged(tree1, 'file',
999
1022
mini_commit=self.mini_commit_record_iter_changes)
1001
def test_last_modified_revision_after_converged_merge_link_changes(self):
1002
# merge a link changes the last modified.
1024
def test_last_modified_revision_after_converged_merge_link_unchanged(self):
1025
# merge a link that changed preserves the last modified.
1003
1026
self.requireFeature(tests.SymlinkFeature)
1004
1027
tree1 = self.make_branch_and_tree('t1')
1005
1028
os.symlink('target', 't1/link')
1006
1029
self._commit_sprout_rename_merge_converged(tree1, 'link')
1008
def test_last_modified_revision_after_converged_merge_link_changes_ric(self):
1009
# merge a link changes the last modified.
1031
def test_last_modified_revision_after_converged_merge_link_unchanged_ric(self):
1032
# merge a link that changed preserves the last modified.
1010
1033
self.requireFeature(tests.SymlinkFeature)
1011
1034
tree1 = self.make_branch_and_tree('t1')
1012
1035
os.symlink('target', 't1/link')
1013
1036
self._commit_sprout_rename_merge_converged(tree1, 'link',
1014
1037
mini_commit=self.mini_commit_record_iter_changes)
1039
def test_last_modified_revision_after_merge_new_dir_unchanged(self):
1040
# merge a new dir does not change the last modified.
1041
tree1 = self.make_branch_and_tree('t1')
1042
self._commit_sprout_make_merge(tree1, self.make_dir)
1044
def test_last_modified_revision_after_merge_new_dir_unchanged_ric(self):
1045
# merge a new dir does not change the last modified.
1046
tree1 = self.make_branch_and_tree('t1')
1047
self._commit_sprout_make_merge(tree1, self.make_dir,
1048
mini_commit=self.mini_commit_record_iter_changes)
1050
def test_last_modified_revision_after_merge_new_file_unchanged(self):
1051
# merge a new file does not change the last modified.
1052
tree1 = self.make_branch_and_tree('t1')
1053
self._commit_sprout_make_merge(tree1, self.make_file)
1055
def test_last_modified_revision_after_merge_new_file_unchanged_ric(self):
1056
# merge a new file does not change the last modified.
1057
tree1 = self.make_branch_and_tree('t1')
1058
self._commit_sprout_make_merge(tree1, self.make_file,
1059
mini_commit=self.mini_commit_record_iter_changes)
1061
def test_last_modified_revision_after_merge_new_link_unchanged(self):
1062
# merge a new link does not change the last modified.
1063
tree1 = self.make_branch_and_tree('t1')
1064
self._commit_sprout_make_merge(tree1, self.make_link)
1066
def test_last_modified_revision_after_merge_new_link_unchanged_ric(self):
1067
# merge a new link does not change the last modified.
1068
tree1 = self.make_branch_and_tree('t1')
1069
self._commit_sprout_make_merge(tree1, self.make_link,
1070
mini_commit=self.mini_commit_record_iter_changes)
1016
1072
def make_dir(self, name):
1017
1073
self.build_tree([name + '/'])