836
826
transform.apply()
837
827
transform, root = self.get_transform()
839
self.assertEqual([], list(transform._iter_changes()))
829
self.assertEqual([], list(transform.iter_changes()))
840
830
old = transform.trans_id_tree_file_id('id-1')
841
831
transform.unversion_file(old)
842
832
self.assertEqual([('id-1', ('old', None), False, (True, False),
843
833
('eert_toor', 'eert_toor'), ('old', 'old'), ('file', 'file'),
844
(True, True))], list(transform._iter_changes()))
834
(True, True))], list(transform.iter_changes()))
845
835
transform.new_directory('new', root, 'id-1')
846
836
self.assertEqual([('id-1', ('old', 'new'), True, (True, True),
847
837
('eert_toor', 'eert_toor'), ('old', 'new'),
848
838
('file', 'directory'),
849
(True, False))], list(transform._iter_changes()))
839
(True, False))], list(transform.iter_changes()))
851
841
transform.finalize()
877
867
old = transform.trans_id_tree_path('old')
878
868
subdir = transform.trans_id_tree_file_id('subdir-id')
879
869
new = transform.trans_id_tree_path('new')
880
self.assertEqual([], list(transform._iter_changes()))
870
self.assertEqual([], list(transform.iter_changes()))
882
872
#content deletion
883
873
transform.delete_contents(old)
884
874
self.assertEqual([('id-1', ('old', 'old'), True, (True, True),
885
875
('eert_toor', 'eert_toor'), ('old', 'old'), ('file', None),
886
(False, False))], list(transform._iter_changes()))
876
(False, False))], list(transform.iter_changes()))
889
879
transform.create_file('blah', old)
890
880
self.assertEqual([('id-1', ('old', 'old'), True, (True, True),
891
881
('eert_toor', 'eert_toor'), ('old', 'old'), ('file', 'file'),
892
(False, False))], list(transform._iter_changes()))
882
(False, False))], list(transform.iter_changes()))
893
883
transform.cancel_deletion(old)
894
884
self.assertEqual([('id-1', ('old', 'old'), True, (True, True),
895
885
('eert_toor', 'eert_toor'), ('old', 'old'), ('file', 'file'),
896
(False, False))], list(transform._iter_changes()))
886
(False, False))], list(transform.iter_changes()))
897
887
transform.cancel_creation(old)
899
889
# move file_id to a different file
900
self.assertEqual([], list(transform._iter_changes()))
890
self.assertEqual([], list(transform.iter_changes()))
901
891
transform.unversion_file(old)
902
892
transform.version_file('id-1', new)
903
893
transform.adjust_path('old', root, new)
904
894
self.assertEqual([('id-1', ('old', 'old'), True, (True, True),
905
895
('eert_toor', 'eert_toor'), ('old', 'old'), ('file', 'file'),
906
(False, False))], list(transform._iter_changes()))
896
(False, False))], list(transform.iter_changes()))
907
897
transform.cancel_versioning(new)
908
898
transform._removed_id = set()
911
self.assertEqual([], list(transform._iter_changes()))
901
self.assertEqual([], list(transform.iter_changes()))
912
902
transform.set_executability(True, old)
913
903
self.assertEqual([('id-1', ('old', 'old'), False, (True, True),
914
904
('eert_toor', 'eert_toor'), ('old', 'old'), ('file', 'file'),
915
(False, True))], list(transform._iter_changes()))
905
(False, True))], list(transform.iter_changes()))
916
906
transform.set_executability(None, old)
919
self.assertEqual([], list(transform._iter_changes()))
909
self.assertEqual([], list(transform.iter_changes()))
920
910
transform.adjust_path('new', root, old)
921
911
transform._new_parent = {}
922
912
self.assertEqual([('id-1', ('old', 'new'), False, (True, True),
923
913
('eert_toor', 'eert_toor'), ('old', 'new'), ('file', 'file'),
924
(False, False))], list(transform._iter_changes()))
914
(False, False))], list(transform.iter_changes()))
925
915
transform._new_name = {}
927
917
# parent directory
928
self.assertEqual([], list(transform._iter_changes()))
918
self.assertEqual([], list(transform.iter_changes()))
929
919
transform.adjust_path('new', subdir, old)
930
920
transform._new_name = {}
931
921
self.assertEqual([('id-1', ('old', 'subdir/old'), False,
932
922
(True, True), ('eert_toor', 'subdir-id'), ('old', 'old'),
933
923
('file', 'file'), (False, False))],
934
list(transform._iter_changes()))
924
list(transform.iter_changes()))
935
925
transform._new_path = {}
1716
1701
build_tree(revision_tree, target, source, hardlink=True)
1717
1702
target.lock_read()
1718
1703
self.addCleanup(target.unlock)
1719
self.assertEqual([], list(target._iter_changes(revision_tree)))
1704
self.assertEqual([], list(target.iter_changes(revision_tree)))
1720
1705
self.assertTrue(source.is_executable('file1-id'))
1707
def test_case_insensitive_build_tree_inventory(self):
1708
source = self.make_branch_and_tree('source')
1709
self.build_tree(['source/file', 'source/FILE'])
1710
source.add(['file', 'FILE'], ['lower-id', 'upper-id'])
1711
source.commit('added files')
1712
# Don't try this at home, kids!
1713
# Force the tree to report that it is case insensitive
1714
target = self.make_branch_and_tree('target')
1715
target.case_sensitive = False
1716
build_tree(source.basis_tree(), target, source, delta_from_tree=True)
1717
self.assertEqual('file.moved', target.id2path('lower-id'))
1718
self.assertEqual('FILE', target.id2path('upper-id'))
1723
1721
class MockTransform(object):
1955
1953
self.assertEqual([('a-id', ('a', 'a'), True, (True, True),
1956
1954
(root, root), ('a', 'a'), ('file', 'file'),
1957
1955
(False, False))],
1958
list(preview_tree._iter_changes(revision_tree)))
1956
list(preview_tree.iter_changes(revision_tree)))
1960
1958
def test_wrong_tree_value_error(self):
1961
1959
revision_tree, preview_tree = self.get_tree_and_preview_tree()
1962
e = self.assertRaises(ValueError, preview_tree._iter_changes,
1960
e = self.assertRaises(ValueError, preview_tree.iter_changes,
1964
1962
self.assertEqual('from_tree must be transform source tree.', str(e))
1966
1964
def test_include_unchanged_value_error(self):
1967
1965
revision_tree, preview_tree = self.get_tree_and_preview_tree()
1968
e = self.assertRaises(ValueError, preview_tree._iter_changes,
1966
e = self.assertRaises(ValueError, preview_tree.iter_changes,
1969
1967
revision_tree, include_unchanged=True)
1970
1968
self.assertEqual('include_unchanged is not supported', str(e))
1972
1970
def test_specific_files(self):
1973
1971
revision_tree, preview_tree = self.get_tree_and_preview_tree()
1974
e = self.assertRaises(ValueError, preview_tree._iter_changes,
1972
e = self.assertRaises(ValueError, preview_tree.iter_changes,
1975
1973
revision_tree, specific_files=['pete'])
1976
1974
self.assertEqual('specific_files is not supported', str(e))
1978
1976
def test_want_unversioned_value_error(self):
1979
1977
revision_tree, preview_tree = self.get_tree_and_preview_tree()
1980
e = self.assertRaises(ValueError, preview_tree._iter_changes,
1978
e = self.assertRaises(ValueError, preview_tree.iter_changes,
1981
1979
revision_tree, want_unversioned=True)
1982
1980
self.assertEqual('want_unversioned is not supported', str(e))
1985
1983
# extra_trees is harmless without specific_files, so we'll silently
1986
1984
# accept it, even though we won't use it.
1987
1985
revision_tree, preview_tree = self.get_tree_and_preview_tree()
1988
preview_tree._iter_changes(revision_tree, extra_trees=[preview_tree])
1986
preview_tree.iter_changes(revision_tree, extra_trees=[preview_tree])
1990
1988
def test_ignore_require_versioned_no_specific_files(self):
1991
1989
# require_versioned is meaningless without specific_files.
1992
1990
revision_tree, preview_tree = self.get_tree_and_preview_tree()
1993
preview_tree._iter_changes(revision_tree, require_versioned=False)
1991
preview_tree.iter_changes(revision_tree, require_versioned=False)
1995
1993
def test_ignore_pb(self):
1996
1994
# pb could be supported, but TT.iter_changes doesn't support it.
1997
1995
revision_tree, preview_tree = self.get_tree_and_preview_tree()
1998
preview_tree._iter_changes(revision_tree, pb=progress.DummyProgress())
1996
preview_tree.iter_changes(revision_tree, pb=progress.DummyProgress())
2000
1998
def test_kind(self):
2001
1999
revision_tree = self.create_tree()