mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +03:00
Reorganize push for more symmetry with fetch
This commit is contained in:
parent
921c19cd03
commit
a1de5951ce
@ -109,6 +109,8 @@ class GitHandler(object):
|
||||
elif not self.paths:
|
||||
# intial cloning
|
||||
self.update_remote_branches('default', refs)
|
||||
else:
|
||||
self.ui.status(_("nothing new on the server\n"))
|
||||
|
||||
self.save_map()
|
||||
|
||||
@ -119,12 +121,19 @@ class GitHandler(object):
|
||||
self.update_references()
|
||||
self.save_map()
|
||||
|
||||
def push(self, remote_name):
|
||||
self.fetch(remote_name) # get and convert objects if they already exist
|
||||
self.ui.status(_("pushing to : %s\n") % remote_name)
|
||||
def push(self, remote):
|
||||
self.fetch(remote) # get and convert objects if they already exist
|
||||
self.ui.status(_("pushing to : %s\n") % remote)
|
||||
self.export_commits(False)
|
||||
self.update_remote_references(remote_name)
|
||||
self.upload_pack(remote_name)
|
||||
changed_refs = self.upload_pack(remote)
|
||||
remote_name = self.remote_name(remote)
|
||||
|
||||
if remote_name and changed_refs:
|
||||
for ref, sha in changed_refs.iteritems():
|
||||
self.ui.status(" "+ remote_name + "::" + ref + " => GIT:" + sha[0:8] + "\n")
|
||||
|
||||
self.update_remote_branches(remote_name, changed_refs)
|
||||
|
||||
|
||||
def clear(self):
|
||||
mapfile = self.repo.join(self.mapfile)
|
||||
@ -557,14 +566,6 @@ class GitHandler(object):
|
||||
try:
|
||||
self.ui.status(_("creating and sending data\n"))
|
||||
changed_refs = client.send_pack(path, changed, genpack)
|
||||
remote_name = self.remote_name(remote)
|
||||
if remote_name and changed_refs:
|
||||
new_refs = {}
|
||||
for ref, sha in changed_refs.iteritems():
|
||||
self.ui.status(" "+ remote_name + "::" + ref + " => GIT:" + sha[0:8] + "\n")
|
||||
new_refs[ref] = sha
|
||||
self.git.set_remote_refs(new_refs, remote_name)
|
||||
self.update_remote_branches(remote_name, new_refs)
|
||||
except:
|
||||
# TODO : remove try/except or do something useful here
|
||||
raise
|
||||
@ -675,10 +676,6 @@ class GitHandler(object):
|
||||
refs = client.fetch_pack(path, determine_wants, graphwalker, f.write, sys.stdout.write)
|
||||
f.close()
|
||||
commit()
|
||||
if refs:
|
||||
self.git.set_remote_refs(refs, remote_name)
|
||||
else:
|
||||
self.ui.status(_("nothing new on the server\n"))
|
||||
return refs
|
||||
finally:
|
||||
f.close()
|
||||
@ -698,11 +695,6 @@ class GitHandler(object):
|
||||
if self.repo.tagtype(tag) == 'git':
|
||||
self.git.set_ref('refs/tags/' + tag, self.map_git_get(hex(sha)))
|
||||
|
||||
# Make sure there's a refs/remotes/remote_name/name
|
||||
# for every refs/heads/name
|
||||
def update_remote_references(self, remote_name):
|
||||
self.git.set_remote_refs(self.local_heads(), remote_name)
|
||||
|
||||
def local_heads(self):
|
||||
try:
|
||||
bms = bookmarks.parse(self.repo)
|
||||
@ -768,6 +760,9 @@ class GitHandler(object):
|
||||
tag = '%s/%s' % (remote_name, head)
|
||||
self.repo.tag(tag, hgsha, '', True, None, None)
|
||||
|
||||
self.git.set_remote_refs(refs, remote_name)
|
||||
|
||||
|
||||
## UTILITY FUNCTIONS
|
||||
|
||||
def convert_git_int_mode(self, mode):
|
||||
|
Loading…
Reference in New Issue
Block a user