зеркало из https://github.com/microsoft/git.git
remote-hg: fix bad state issue
The problem reportedly happened after doing a push that fails, the abort causes the state of remote-hg to go bad, this happens because remote-hg's marks are not stored, but 'git fast-export' marks are. Ensure that the marks are _always_ stored. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
2e8e813232
Коммит
2594a79ea9
|
@ -18,6 +18,7 @@ import json
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import urllib
|
import urllib
|
||||||
|
import atexit
|
||||||
|
|
||||||
#
|
#
|
||||||
# If you want to switch to hg-git compatibility mode:
|
# If you want to switch to hg-git compatibility mode:
|
||||||
|
@ -791,7 +792,7 @@ def main(args):
|
||||||
global prefix, dirname, branches, bmarks
|
global prefix, dirname, branches, bmarks
|
||||||
global marks, blob_marks, parsed_refs
|
global marks, blob_marks, parsed_refs
|
||||||
global peer, mode, bad_mail, bad_name
|
global peer, mode, bad_mail, bad_name
|
||||||
global track_branches, force_push
|
global track_branches, force_push, is_tmp
|
||||||
|
|
||||||
alias = args[1]
|
alias = args[1]
|
||||||
url = args[2]
|
url = args[2]
|
||||||
|
@ -833,6 +834,7 @@ def main(args):
|
||||||
bmarks = {}
|
bmarks = {}
|
||||||
blob_marks = {}
|
blob_marks = {}
|
||||||
parsed_refs = {}
|
parsed_refs = {}
|
||||||
|
marks = None
|
||||||
|
|
||||||
repo = get_repo(url, alias)
|
repo = get_repo(url, alias)
|
||||||
prefix = 'refs/hg/%s' % alias
|
prefix = 'refs/hg/%s' % alias
|
||||||
|
@ -860,9 +862,13 @@ def main(args):
|
||||||
die('unhandled command: %s' % line)
|
die('unhandled command: %s' % line)
|
||||||
sys.stdout.flush()
|
sys.stdout.flush()
|
||||||
|
|
||||||
|
def bye():
|
||||||
|
if not marks:
|
||||||
|
return
|
||||||
if not is_tmp:
|
if not is_tmp:
|
||||||
marks.store()
|
marks.store()
|
||||||
else:
|
else:
|
||||||
shutil.rmtree(dirname)
|
shutil.rmtree(dirname)
|
||||||
|
|
||||||
|
atexit.register(bye)
|
||||||
sys.exit(main(sys.argv))
|
sys.exit(main(sys.argv))
|
||||||
|
|
Загрузка…
Ссылка в новой задаче