85
def clone_git_repo(self, from_url, to_url):
86
oldrepos = Repository.open(from_url)
85
def clone_git_repo(self, from_url, to_url, revision_id=None):
86
oldrepos = self.open_git_repo(from_url)
87
87
dir = BzrDir.create(to_url, get_rich_root_format())
88
88
newrepos = dir.create_repository()
89
oldrepos.copy_content_into(newrepos)
89
oldrepos.copy_content_into(newrepos, revision_id=revision_id)
92
def open_git_repo(self, path):
93
return Repository.open(path)
92
95
def test_empty(self):
93
96
self.make_git_repo("d")
94
97
newrepos = self.clone_git_repo("d", "f")
95
98
self.assertEquals([], newrepos.all_revision_ids())
100
def make_onerev_branch(self):
101
self.make_git_repo("d")
103
bb = GitBranchBuilder()
104
bb.set_file("foobar", "foo\nbar\n", False)
105
mark = bb.commit("Somebody <somebody@someorg.org>", "mymsg")
106
gitsha = bb.finish()[mark]
97
110
def test_single_rev(self):
98
self.make_git_repo("d")
100
bb = GitBranchBuilder()
101
bb.set_file("foobar", "foo\nbar\n", False)
102
mark = bb.commit("Somebody <somebody@someorg.org>", "mymsg")
103
gitsha = bb.finish()[mark]
105
oldrepo = Repository.open("d")
106
newrepo = self.clone_git_repo("d", "f")
111
path, gitsha = self.make_onerev_branch()
112
oldrepo = self.open_git_repo(path)
113
newrepo = self.clone_git_repo(path, "f")
107
114
self.assertEquals([oldrepo.get_mapping().revision_id_foreign_to_bzr(gitsha)], newrepo.all_revision_ids())
116
def test_single_rev_specific(self):
117
path, gitsha = self.make_onerev_branch()
118
oldrepo = self.open_git_repo(path)
119
revid = oldrepo.get_mapping().revision_id_foreign_to_bzr(gitsha)
120
newrepo = self.clone_git_repo(path, "f", revision_id=revid)
121
self.assertEquals([revid], newrepo.all_revision_ids())
123
def test_incremental(self):
124
self.make_git_repo("d")
126
bb = GitBranchBuilder()
127
bb.set_file("foobar", "foo\nbar\n", False)
128
mark1 = bb.commit("Somebody <somebody@someorg.org>", "mymsg")
129
bb.set_file("foobar", "fooll\nbar\n", False)
130
mark2 = bb.commit("Somebody <somebody@someorg.org>", "nextmsg")
132
gitsha1 = marks[mark1]
133
gitsha2 = marks[mark2]
135
oldrepo = self.open_git_repo("d")
136
revid1 = oldrepo.get_mapping().revision_id_foreign_to_bzr(gitsha1)
137
newrepo = self.clone_git_repo("d", "f", revision_id=revid1)
138
self.assertEquals([revid1], newrepo.all_revision_ids())
139
revid2 = oldrepo.get_mapping().revision_id_foreign_to_bzr(gitsha2)
140
newrepo.fetch(oldrepo, revision_id=revid2)
141
self.assertEquals([revid1, revid2], newrepo.all_revision_ids())
109
143
def test_executable(self):
110
144
self.make_git_repo("d")