Mercurial > hg > hg-git
changeset 425:1189a4f3e238
Merge incoming fix.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Fri, 09 Sep 2011 15:43:35 -0500 |
parents | d2c4333e5f14 (current diff) 09cedf16ecc0 (diff) |
children | 668859fc46b7 |
files | hggit/__init__.py |
diffstat | 26 files changed, 63 insertions(+), 90 deletions(-) [+] |
line wrap: on
line diff
--- a/hggit/__init__.py +++ b/hggit/__init__.py @@ -129,13 +129,13 @@ if getattr(discovery, 'findcommonoutgoing', None): kwname = 'onlyheads' def findoutgoing(orig, local, remote, *args, **kwargs): - kw = {} - kw.update(kwargs) - for val, k in zip(args, ('base', kwname, 'force')): - kw[k] = val if isinstance(remote, gitrepo.gitrepo): # clean up this cruft when we're 1.7-only, remoteheads and # the return value change happened between 1.6 and 1.7. + kw = {} + kw.update(kwargs) + for val, k in zip(args, ('base', kwname, 'force')): + kw[k] = val git = GitHandler(local, local.ui) base, heads = git.get_refs(remote.path) newkw = {'base': base, kwname: heads} @@ -146,7 +146,8 @@ return [x[0] for x in r] if kwname == 'onlyheads': del kw['base'] - return orig(local, remote, **kw) + return orig(local, remote, **kw) + return orig(local, remote, *args, **kwargs) if getattr(discovery, 'findoutgoing', None): extensions.wrapfunction(discovery, 'findoutgoing', findoutgoing) else:
--- a/hggit/git_handler.py +++ b/hggit/git_handler.py @@ -51,13 +51,13 @@ self.lasttopic = topic pos, total = map(int, m.group(1, 2)) - self.ui.progress(topic, pos, total=total) + util.progress(self.ui, topic, pos, total=total) else: self.flush(msg) def flush(self, msg=None): if self.lasttopic: - self.ui.progress(self.lasttopic, None) + util.progress(self.ui, self.lasttopic, None) self.lasttopic = None if msg: self.ui.note(msg + '\n') @@ -135,6 +135,7 @@ def import_commits(self, remote_name): self.import_git_objects(remote_name) + self.update_hg_bookmarks(self.git.get_refs()) self.save_map() def fetch(self, remote, heads): @@ -200,8 +201,11 @@ changed_refs = [ref for ref, sha in new_refs.iteritems() if sha != old_refs.get(ref)] new = [bin(self.map_hg_get(new_refs[ref])) for ref in changed_refs] - old = dict( (bin(self.map_hg_get(old_refs[r])), 1) - for r in old_refs) + old = {} + for r in old_refs: + old_ref = self.map_hg_get(old_refs[r]) + if old_ref: + old[bin(old_ref)] = 1 return old, new except (HangupException, GitProtocolError), e: @@ -785,7 +789,8 @@ raise hgutil.Abort("ambiguous reference %s: %r" % (h, r)) else: want = [sha for ref, sha in refs.iteritems() - if not ref.endswith('^{}')] + if not ref.endswith('^{}') + and ( ref.startswith('refs/heads/') or ref.startswith('refs/tags/') ) ] want = [x for x in want if x not in self.git] return want f, commit = self.git.object_store.add_pack() @@ -809,7 +814,9 @@ # Create a local Git branch name for each # Mercurial bookmark. for key in heads: - self.git.refs['refs/heads/' + key] = self.map_git_get(heads[key]) + git_ref = self.map_git_get(heads[key]) + if git_ref: + self.git.refs['refs/heads/' + key] = self.map_git_get(heads[key]) def export_hg_tags(self): for tag, sha in self.repo.tags().iteritems(): @@ -1058,11 +1065,20 @@ else: hostpath_seper = '/' + port = None host, path = hostpath.split(hostpath_seper, 1) if hostpath_seper == '/': transportpath = '/' + path else: - transportpath = path - return transport(host, thin_packs=False), transportpath + # port number should be recognized + m = re.match('^(?P<port>\d+)?(?P<path>.*)$', path) + if m.group('port'): + client.port = m.group('port') + port = client.port + transportpath = m.group('path') + else: + transportpath = path + + return transport(host, thin_packs=False, port=port), transportpath # if its not git or git+ssh, try a local url.. return client.SubprocessGitClient(thin_packs=False), uri
--- a/tests/test-conflict-1.out +++ b/tests/test-conflict-1.out @@ -21,9 +21,6 @@ pushing to git://localhost/gitrepo exporting hg objects to git creating and sending data -Counting objects: 10, done. -Compressing objects: 25% (1/4) Compressing objects: 50% (2/4) Compressing objects: 75% (3/4) Compressing objects: 100% (4/4) Compressing objects: 100% (4/4), done. -Total 10 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % expect the same revision ids as above
--- a/tests/test-conflict-2.out +++ b/tests/test-conflict-2.out @@ -21,9 +21,6 @@ pushing to git://localhost/gitrepo exporting hg objects to git creating and sending data -Counting objects: 10, done. -Compressing objects: 25% (1/4) Compressing objects: 50% (2/4) Compressing objects: 75% (3/4) Compressing objects: 100% (4/4) Compressing objects: 100% (4/4), done. -Total 10 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % expect the same revision ids as above
--- a/tests/test-convergedmerge.out +++ b/tests/test-convergedmerge.out @@ -22,9 +22,6 @@ pushing to git://localhost/gitrepo exporting hg objects to git creating and sending data -Counting objects: 11, done. -Compressing objects: 20% (1/5) Compressing objects: 40% (2/5) Compressing objects: 60% (3/5) Compressing objects: 80% (4/5) Compressing objects: 100% (5/5) Compressing objects: 100% (5/5), done. -Total 11 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved % expect the same revision ids as above
--- a/tests/test-empty-working-tree.out +++ b/tests/test-empty-working-tree.out @@ -2,8 +2,6 @@ Initialized empty Git repository in gitrepo2/ -Counting objects: 2, done. -Total 2 (delta 0), reused 0 (delta 0) importing git objects into hg 0 files updated, 0 files merged, 0 files removed, 0 files unresolved files:
--- a/tests/test-encoding.out +++ b/tests/test-encoding.out @@ -8,9 +8,6 @@ variable i18n.commitencoding to the encoding your project uses. Initialized empty Git repository in gitrepo2/ -Counting objects: 12, done. -Compressing objects: 14% (1/7) Compressing objects: 28% (2/7) Compressing objects: 42% (3/7) Compressing objects: 57% (4/7) Compressing objects: 71% (5/7) Compressing objects: 85% (6/7) Compressing objects: 100% (7/7) Compressing objects: 100% (7/7), done. -Total 12 (delta 1), reused 0 (delta 0) importing git objects into hg 4 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 3:8549ee7fe0801b2dafc06047ca6f66d36da709f5
--- a/tests/test-file-removal.out +++ b/tests/test-file-removal.out @@ -6,9 +6,6 @@ beta Initialized empty Git repository in gitrepo2/ -Counting objects: 14, done. -Compressing objects: 12% (1/8) Compressing objects: 25% (2/8) Compressing objects: 37% (3/8) Compressing objects: 50% (4/8) Compressing objects: 62% (5/8) Compressing objects: 75% (6/8) Compressing objects: 87% (7/8) Compressing objects: 100% (8/8) Compressing objects: 100% (8/8), done. -Total 14 (delta 1), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 4:ea41a3f0ed10
--- a/tests/test-git-clone.out +++ b/tests/test-git-clone.out @@ -1,8 +1,5 @@ Initialized empty Git repository in gitrepo/.git/ -Counting objects: 6, done. -Compressing objects: 33% (1/3) Compressing objects: 66% (2/3) Compressing objects: 100% (3/3) Compressing objects: 100% (3/3), done. -Total 6 (delta 0), reused 0 (delta 0) importing git objects into hg 2 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 1:7bcd915dc873
--- a/tests/test-git-submodules.out +++ b/tests/test-git-submodules.out @@ -16,9 +16,6 @@ 2 files changed, 0 insertions(+), 4 deletions(-) delete mode 100644 .gitmodules delete mode 160000 subrepo -Counting objects: 7, done. -Compressing objects: 20% (1/5) Compressing objects: 40% (2/5) Compressing objects: 60% (3/5) Compressing objects: 80% (4/5) Compressing objects: 100% (5/5) Compressing objects: 100% (5/5), done. -Total 7 (delta 1), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 2:954cdf1c8c82
--- a/tests/test-git-tags.out +++ b/tests/test-git-tags.out @@ -1,8 +1,5 @@ Initialized empty Git repository in gitrepo/.git/ -Counting objects: 7, done. -Compressing objects: 25% (1/4) Compressing objects: 50% (2/4) Compressing objects: 75% (3/4) Compressing objects: 100% (4/4) Compressing objects: 100% (4/4), done. -Total 7 (delta 0), reused 0 (delta 0) importing git objects into hg 2 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 1:99dcc15b7b07
--- a/tests/test-git-workflow +++ b/tests/test-git-workflow @@ -66,4 +66,5 @@ echo % get things back to hg hg gimport hg log --graph --debug | grep -v ': *master' +echo % gimport should have updated the bookmarks as well hg bookmarks
--- a/tests/test-git-workflow.out +++ b/tests/test-git-workflow.out @@ -45,4 +45,5 @@ add alpha +% gimport should have updated the bookmarks as well master 1:7108ae7bd184
--- a/tests/test-hg-author.out +++ b/tests/test-hg-author.out @@ -1,8 +1,6 @@ Initialized empty Git repository in gitrepo/.git/ Switched to a new branch 'not-master' -Counting objects: 3, done. -Total 3 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 0 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -34,9 +32,6 @@ date: Mon Jan 01 00:00:10 2007 +0000 summary: add alpha -Counting objects: 9, done. -Compressing objects: 20% (1/5) Compressing objects: 40% (2/5) Compressing objects: 60% (3/5) Compressing objects: 80% (4/5) Compressing objects: 100% (5/5) Compressing objects: 100% (5/5), done. -Total 9 (delta 0), reused 0 (delta 0) importing git objects into hg 2 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 2:92d33c0dd6e1
--- a/tests/test-hg-branch.out +++ b/tests/test-hg-branch.out @@ -1,8 +1,6 @@ Initialized empty Git repository in gitrepo/.git/ Switched to a new branch 'not-master' -Counting objects: 3, done. -Total 3 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 0 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -36,9 +34,6 @@ date: Mon Jan 01 00:00:10 2007 +0000 summary: add alpha -Counting objects: 6, done. -Compressing objects: 33% (1/3) Compressing objects: 66% (2/3) Compressing objects: 100% (3/3) Compressing objects: 100% (3/3), done. -Total 6 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved o changeset: 2:05aed681ccb3
--- a/tests/test-hg-tags.out +++ b/tests/test-hg-tags.out @@ -1,8 +1,6 @@ Initialized empty Git repository in gitrepo/.git/ Switched to a new branch 'not-master' -Counting objects: 3, done. -Total 3 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved 0 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -28,9 +26,6 @@ % git should have the tag alpha alpha -Counting objects: 6, done. -Compressing objects: 33% (1/3) Compressing objects: 66% (2/3) Compressing objects: 100% (3/3) Compressing objects: 100% (3/3), done. -Total 6 (delta 0), reused 0 (delta 0) importing git objects into hg 2 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 1:d529e9229f6d
--- a/tests/test-merge.out +++ b/tests/test-merge.out @@ -8,9 +8,6 @@ create mode 100644 beta Initialized empty Git repository in gitrepo2/ -Counting objects: 11, done. -Compressing objects: 14% (1/7) Compressing objects: 28% (2/7) Compressing objects: 42% (3/7) Compressing objects: 57% (4/7) Compressing objects: 71% (5/7) Compressing objects: 85% (6/7) Compressing objects: 100% (7/7) Compressing objects: 100% (7/7), done. -Total 11 (delta 3), reused 0 (delta 0) importing git objects into hg 3 files updated, 0 files merged, 0 files removed, 0 files unresolved % clear the cache to be sure it is regenerated correctly
--- a/tests/test-octopus.out +++ b/tests/test-octopus.out @@ -13,9 +13,6 @@ create mode 100644 gamma Initialized empty Git repository in gitrepo2/ -Counting objects: 14, done. -Compressing objects: 11% (1/9) Compressing objects: 22% (2/9) Compressing objects: 33% (3/9) Compressing objects: 44% (4/9) Compressing objects: 55% (5/9) Compressing objects: 66% (6/9) Compressing objects: 77% (7/9) Compressing objects: 88% (8/9) Compressing objects: 100% (9/9) Compressing objects: 100% (9/9), done. -Total 14 (delta 3), reused 0 (delta 0) importing git objects into hg 4 files updated, 0 files merged, 0 files removed, 0 files unresolved @ 5:3,4 6523aa9f4775 2007-01-01 00:00 +0000 test
--- a/tests/test-outgoing.out +++ b/tests/test-outgoing.out @@ -1,7 +1,5 @@ Initialized empty Git repository in gitrepo/.git/ -Counting objects: 3, done. -Total 3 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved comparing with git://localhost/gitrepo @@ -47,9 +45,6 @@ abort: refs/heads/master changed on the server, please pull and merge before pushing % let's pull and try again pulling from git://localhost/gitrepo -Counting objects: 3, done. -Compressing objects: 50% (1/2) Compressing objects: 100% (2/2) Compressing objects: 100% (2/2), done. -Total 3 (delta 0), reused 0 (delta 0) importing git objects into hg (run 'hg update' to get a working copy) comparing with git://localhost/gitrepo
--- a/tests/test-pull-after-strip.out +++ b/tests/test-pull-after-strip.out @@ -2,8 +2,6 @@ Switched to a new branch "beta" % clone a tag -Counting objects: 3, done. -Total 3 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 0:3442585be8a6 @@ -15,9 +13,6 @@ summary: add alpha % clone a branch -Counting objects: 6, done. -Compressing objects: 33% (1/3) Compressing objects: 66% (2/3) Compressing objects: 100% (3/3) Compressing objects: 100% (3/3), done. -Total 6 (delta 0), reused 0 (delta 0) importing git objects into hg 2 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 1:7bcd915dc873 @@ -36,9 +31,6 @@ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved pulling from git://localhost/gitrepo -Counting objects: 6, done. -Compressing objects: 25% (1/4) Compressing objects: 50% (2/4) Compressing objects: 75% (3/4) Compressing objects: 100% (4/4) Compressing objects: 100% (4/4), done. -Total 6 (delta 0), reused 0 (delta 0) importing git objects into hg abort: you appear to have run strip - please run hg git-cleanup git commit map cleaned
--- a/tests/test-pull.out +++ b/tests/test-pull.out @@ -2,8 +2,6 @@ Switched to a new branch "beta" % clone a tag -Counting objects: 3, done. -Total 3 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 0:3442585be8a6 @@ -15,9 +13,6 @@ summary: add alpha % clone a branch -Counting objects: 6, done. -Compressing objects: 33% (1/3) Compressing objects: 66% (2/3) Compressing objects: 100% (3/3) Compressing objects: 100% (3/3), done. -Total 6 (delta 0), reused 0 (delta 0) importing git objects into hg 2 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 1:7bcd915dc873
--- a/tests/test-push.out +++ b/tests/test-push.out @@ -1,8 +1,6 @@ Initialized empty Git repository in gitrepo/.git/ Switched to a new branch "not-master" -Counting objects: 3, done. -Total 3 (delta 0), reused 0 (delta 0) importing git objects into hg 1 files updated, 0 files merged, 0 files removed, 0 files unresolved pushing to git://localhost/gitrepo @@ -27,9 +25,6 @@ creating and sending data abort: refs/heads/master changed on the server, please pull and merge before pushing pulling from git://localhost/gitrepo -Counting objects: 3, done. -Compressing objects: 50% (1/2) Compressing objects: 100% (2/2) Compressing objects: 100% (2/2), done. -Total 3 (delta 0), reused 0 (delta 0) importing git objects into hg (run 'hg update' to get a working copy) % master and default/master should be diferent
--- a/tests/test-sane-without-bookmarks.out +++ b/tests/test-sane-without-bookmarks.out @@ -1,9 +1,6 @@ Initialized empty Git repository in gitrepo/.git/ creating bookmarks failed, do you have bookmarks enabled? -Counting objects: 6, done. -Compressing objects: 33% (1/3) Compressing objects: 66% (2/3) Compressing objects: 100% (3/3) Compressing objects: 100% (3/3), done. -Total 6 (delta 0), reused 0 (delta 0) importing git objects into hg 2 files updated, 0 files merged, 0 files removed, 0 files unresolved @ changeset: 1:7bcd915dc873
--- a/tests/test-tree-decomposition.out +++ b/tests/test-tree-decomposition.out @@ -2,9 +2,6 @@ Initialized empty Git repository in gitrepo2/ -Counting objects: 12, done. -Compressing objects: 16% (1/6) Compressing objects: 33% (2/6) Compressing objects: 50% (3/6) Compressing objects: 66% (4/6) Compressing objects: 83% (5/6) Compressing objects: 100% (6/6) Compressing objects: 100% (6/6), done. -Total 12 (delta 0), reused 0 (delta 0) importing git objects into hg 2 files updated, 0 files merged, 0 files removed, 0 files unresolved adds: d1
--- a/tests/test-url-parsing.py +++ b/tests/test-url-parsing.py @@ -50,13 +50,31 @@ except AttributeError: self.assertEquals(client.host, 'github.com') + def test_ssh_github_style_slash_with_port(self): + url = "git+ssh://git@github.com:10022/webjam/webjam.git" + client, path = self.handler.get_transport_and_path(url) + self.assertEquals(path, '/webjam/webjam.git') + self.assertEquals(client.host, 'git@github.com') + self.assertEquals(client.port, '10022') + + def test_gitdaemon_style_with_port(self): + url = "git://github.com:19418/webjam/webjam.git" + client, path = self.handler.get_transport_and_path(url) + self.assertEquals(path, '/webjam/webjam.git') + try: + self.assertEquals(client._host, 'github.com') + except AttributeError: + self.assertEquals(client.host, 'github.com') + self.assertEquals(client._port, '19418') if __name__ == '__main__': tc = TestUrlParsing() for test in ['test_ssh_github_style_slash', 'test_ssh_github_style_colon', 'test_ssh_heroku_style', - 'test_gitdaemon_style']: + 'test_gitdaemon_style', + 'test_ssh_github_style_slash_with_port', + 'test_gitdaemon_style_with_port']: tc.setUp() getattr(tc, test)() tc.tearDown()
--- a/tests/test-url-parsing.py.out +++ b/tests/test-url-parsing.py.out @@ -14,3 +14,15 @@ /webjam/webjam.git % expect 'github.com' github.com +% expect '/webjam/webjam.git' +/webjam/webjam.git +% expect 'git@github.com' +git@github.com +% expect '10022' +10022 +% expect '/webjam/webjam.git' +/webjam/webjam.git +% expect 'github.com' +github.com +% expect '19418' +19418