mirror of
https://github.com/frej/fast-export.git
synced 2026-05-06 18:35:32 +02:00
hg2git.py: Use git-rev-parse to get SHA1s instead of reading files below refs/ directly
This should now also properly support packed refs. Signed-off-by: Rocco Rutte <pdmef@gmx.net>
This commit is contained in:
13
hg2git.py
13
hg2git.py
@@ -6,6 +6,7 @@
|
||||
from mercurial import repo,hg,cmdutil,util,ui,revlog,node
|
||||
import re
|
||||
import os
|
||||
import sys
|
||||
|
||||
# git branch for hg's default 'HEAD' branch
|
||||
cfg_master='master'
|
||||
@@ -80,9 +81,13 @@ def save_cache(filename,cache):
|
||||
|
||||
def get_git_sha1(name,type='heads'):
|
||||
try:
|
||||
f=open(os.getenv('GIT_DIR','/dev/null')+'/refs/'+type+'/'+name)
|
||||
sha1=f.readlines()[0].split('\n')[0]
|
||||
f.close()
|
||||
return sha1
|
||||
# use git-rev-parse to support packed refs
|
||||
cmd="GIT_DIR='%s' git-rev-parse --verify refs/%s/%s 2>/dev/null" % (os.getenv('GIT_DIR','/dev/null'),type,name)
|
||||
p=os.popen(cmd)
|
||||
l=p.readline()
|
||||
p.close()
|
||||
if l == None or len(l) == 0:
|
||||
return None
|
||||
return l[0:40]
|
||||
except IOError:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user