1185.1.41
by Robert Collins
massive patch from Alexander Belchenko - many PEP8 fixes, removes unused function uuid |
1 |
import os |
2 |
||
974.1.56
by aaron.bentley at utoronto
Added merge test |
3 |
from bzrlib.branch import Branch |
4 |
from bzrlib.commit import commit |
|
1185.31.25
by John Arbash Meinel
Renamed all of the tests from selftest/foo.py to tests/test_foo.py |
5 |
from bzrlib.tests import TestCaseInTempDir |
1185.46.1
by Aaron Bentley
Test case when file to be renamed is also deleted |
6 |
from bzrlib.merge import merge, transform_tree |
1185.24.3
by Aaron Bentley
Integrated reprocessing into the rest of the merge stuff |
7 |
from bzrlib.errors import UnrelatedBranches, NoCommits, BzrCommandError |
974.1.89
by Aaron Bentley
Fixed merging with multiple roots, by using null as graph root. |
8 |
from bzrlib.revision import common_ancestor |
1390
by Robert Collins
pair programming worx... merge integration and weave |
9 |
from bzrlib.fetch import fetch |
1185.1.41
by Robert Collins
massive patch from Alexander Belchenko - many PEP8 fixes, removes unused function uuid |
10 |
|
11 |
||
974.1.56
by aaron.bentley at utoronto
Added merge test |
12 |
class TestMerge(TestCaseInTempDir): |
13 |
"""Test appending more than one revision"""
|
|
14 |
def test_pending(self): |
|
1185.33.66
by Martin Pool
[patch] use unicode literals for all hardcoded paths (Alexander Belchenko) |
15 |
br = Branch.initialize(u".") |
974.1.56
by aaron.bentley at utoronto
Added merge test |
16 |
commit(br, "lala!") |
1457.1.14
by Robert Collins
Move pending_merges() to WorkingTree. |
17 |
self.assertEquals(len(br.working_tree().pending_merges()), 0) |
1185.33.66
by Martin Pool
[patch] use unicode literals for all hardcoded paths (Alexander Belchenko) |
18 |
merge([u'.', -1], [None, None]) |
1457.1.14
by Robert Collins
Move pending_merges() to WorkingTree. |
19 |
self.assertEquals(len(br.working_tree().pending_merges()), 0) |
974.1.80
by Aaron Bentley
Improved merge error handling and testing |
20 |
|
21 |
def test_nocommits(self): |
|
22 |
self.test_pending() |
|
23 |
os.mkdir('branch2') |
|
1185.11.5
by John Arbash Meinel
Merged up-to-date against mainline, still broken. |
24 |
br2 = Branch.initialize('branch2') |
974.1.80
by Aaron Bentley
Improved merge error handling and testing |
25 |
self.assertRaises(NoCommits, merge, ['branch2', -1], |
26 |
[None, None]) |
|
27 |
return br2 |
|
28 |
||
29 |
def test_unrelated(self): |
|
30 |
br2 = self.test_nocommits() |
|
31 |
commit(br2, "blah") |
|
32 |
self.assertRaises(UnrelatedBranches, merge, ['branch2', -1], |
|
33 |
[None, None]) |
|
974.1.88
by Aaron Bentley
Set a pending_merge if the merge base is forced to revno 0 |
34 |
return br2 |
974.1.80
by Aaron Bentley
Improved merge error handling and testing |
35 |
|
974.1.88
by Aaron Bentley
Set a pending_merge if the merge base is forced to revno 0 |
36 |
def test_pending_with_null(self): |
37 |
"""When base is forced to revno 0, pending_merges is set"""
|
|
38 |
br2 = self.test_unrelated() |
|
1185.33.66
by Martin Pool
[patch] use unicode literals for all hardcoded paths (Alexander Belchenko) |
39 |
br1 = Branch.open(u'.') |
1390
by Robert Collins
pair programming worx... merge integration and weave |
40 |
fetch(from_branch=br2, to_branch=br1) |
41 |
# merge all of branch 2 into branch 1 even though they
|
|
42 |
# are not related.
|
|
1185.24.3
by Aaron Bentley
Integrated reprocessing into the rest of the merge stuff |
43 |
self.assertRaises(BzrCommandError, merge, ['branch2', -1], |
44 |
['branch2', 0], reprocess=True, show_base=True) |
|
45 |
merge(['branch2', -1], ['branch2', 0], reprocess=True) |
|
1457.1.14
by Robert Collins
Move pending_merges() to WorkingTree. |
46 |
self.assertEquals(len(br1.working_tree().pending_merges()), 1) |
974.1.88
by Aaron Bentley
Set a pending_merge if the merge base is forced to revno 0 |
47 |
return (br1, br2) |
974.1.89
by Aaron Bentley
Fixed merging with multiple roots, by using null as graph root. |
48 |
|
49 |
def test_two_roots(self): |
|
50 |
"""Merge base is sane when two unrelated branches are merged"""
|
|
51 |
br1, br2 = self.test_pending_with_null() |
|
52 |
commit(br1, "blah") |
|
1390
by Robert Collins
pair programming worx... merge integration and weave |
53 |
last = br1.last_revision() |
974.1.89
by Aaron Bentley
Fixed merging with multiple roots, by using null as graph root. |
54 |
self.assertEquals(common_ancestor(last, last, br1), last) |
1185.46.1
by Aaron Bentley
Test case when file to be renamed is also deleted |
55 |
|
56 |
def test_create_rename(self): |
|
57 |
"""Rename an inventory entry while creating the file"""
|
|
1185.33.66
by Martin Pool
[patch] use unicode literals for all hardcoded paths (Alexander Belchenko) |
58 |
b = Branch.initialize(u'.') |
1185.46.1
by Aaron Bentley
Test case when file to be renamed is also deleted |
59 |
file('name1', 'wb').write('Hello') |
60 |
tree = b.working_tree() |
|
61 |
tree.add('name1') |
|
62 |
tree.commit(message="hello") |
|
63 |
tree.rename_one('name1', 'name2') |
|
64 |
os.unlink('name2') |
|
65 |
transform_tree(tree, b.basis_tree()) |
|
1185.46.2
by Aaron Bentley
Added test for renaming both parent and child |
66 |
|
67 |
def test_layered_rename(self): |
|
68 |
"""Rename both child and parent at same time"""
|
|
1185.33.66
by Martin Pool
[patch] use unicode literals for all hardcoded paths (Alexander Belchenko) |
69 |
b = Branch.initialize(u'.') |
1185.46.2
by Aaron Bentley
Added test for renaming both parent and child |
70 |
tree = b.working_tree() |
71 |
os.mkdir('dirname1') |
|
72 |
tree.add('dirname1') |
|
73 |
filename = os.path.join('dirname1', 'name1') |
|
74 |
file(filename, 'wb').write('Hello') |
|
75 |
tree.add(filename) |
|
76 |
tree.commit(message="hello") |
|
77 |
filename2 = os.path.join('dirname1', 'name2') |
|
78 |
tree.rename_one(filename, filename2) |
|
79 |
tree.rename_one('dirname1', 'dirname2') |
|
80 |
transform_tree(tree, b.basis_tree()) |