Mercurial > hg > hg-git
changeset 242:0ac974306e08
push the tip to master if remote repository is empty (closes issue 11 bb)
author | Abderrahim Kitouni <a.kitouni@gmail.com> |
---|---|
date | Sat, 08 Aug 2009 10:52:30 +0100 |
parents | b826908ec522 |
children | 53b731d2a3e2 |
files | git_handler.py |
diffstat | 1 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/git_handler.py +++ b/git_handler.py @@ -132,8 +132,6 @@ def changed(refs): old_refs.update(refs) to_push = set(self.local_heads().values() + self.tags.values()) - if not to_push and refs.keys()[0] == 'capabilities^{}': - to_push = [self.repo.lookup('tip')] new_refs.update(self.get_changed_refs(refs, to_push, True)) # don't push anything return {} @@ -521,8 +519,6 @@ client, path = self.get_transport_and_path(remote) def changed(refs): to_push = revs or set(self.local_heads().values() + self.tags.values()) - if not to_push and refs.keys()[0] == 'capabilities^{}': - to_push = [self.repo.lookup('tip')] return self.get_changed_refs(refs, to_push, force) genpack = self.git.object_store.generate_pack_contents @@ -535,6 +531,15 @@ def get_changed_refs(self, refs, revs, force): new_refs = refs.copy() + + #The remote repo is empty and the local one doesn't have bookmarks/tags + if not revs and refs.keys()[0] == 'capabilities^{}': + del new_refs['capabilities^{}'] + tip = hex(self.repo.lookup('tip')) + bookmarks.bookmark(self.ui, self.repo, 'master', tip) + new_refs['refs/heads/master'] = self.map_git_get(tip) + return new_refs + for rev in revs: ctx = self.repo[rev] heads = [t for t in ctx.tags() if t in self.local_heads()]