# License: MIT <http://www.opensource.org/licenses/mit-license.php>
from mercurial import repo,hg,cmdutil,util,ui,revlog,node
-from hg2git import setup_repo,fixup_user,get_branch,get_changeset,load_cache,save_cache
+from hg2git import setup_repo,fixup_user,get_branch,get_changeset,load_cache,save_cache,get_git_sha1
from tempfile import mkstemp
from optparse import OptionParser
import re
return cache
def verify_heads(ui,repo,cache,force):
- def getsha1(branch):
- try:
- f=open(os.getenv('GIT_DIR','/dev/null')+'/refs/heads/'+branch)
- sha1=f.readlines()[0].split('\n')[0]
- f.close()
- return sha1
- except IOError:
- return None
-
branches=repo.branchtags()
l=[(-repo.changelog.rev(n), n, t) for t, n in branches.items()]
l.sort()
# get list of hg's branches to verify, don't take all git has
for _,_,b in l:
b=get_branch(b)
- sha1=getsha1(b)
+ sha1=get_git_sha1(b)
c=cache.get(b)
if sha1!=None and c!=None:
sys.stderr.write('Verifying branch [%s]\n' % b)
# License: GPLv2
from mercurial import repo,hg,cmdutil,util,ui,revlog,node
-from hg2git import setup_repo,load_cache,get_changeset
+from hg2git import setup_repo,load_cache,get_changeset,get_git_sha1
from optparse import OptionParser
import sys
def get_branches(ui,repo,heads_cache,marks_cache,max):
h=heads(ui,repo,max=max)
- old=dict.fromkeys(heads_cache)
- r=[]
+ stale=dict.fromkeys(heads_cache)
+ changed=[]
+ unchanged=[]
for node,rev in h:
_,_,user,(_,_),_,desc,branch,_=get_changeset(ui,repo,rev)
- del old[branch]
- r.append([branch,marks_cache.get(str(int(rev)+1)),rev,desc.split('\n')[0],user])
- r.sort()
- return old,r
+ del stale[branch]
+ git_sha1=get_git_sha1(branch)
+ cache_sha1=marks_cache.get(str(int(rev)+1))
+ if git_sha1!=None and git_sha1==cache_sha1:
+ unchanged.append([branch,cache_sha1,rev,desc.split('\n')[0],user])
+ else:
+ changed.append([branch,cache_sha1,rev,desc.split('\n')[0],user])
+ changed.sort()
+ unchanged.sort()
+ return stale,changed,unchanged
if __name__=='__main__':
def bail(parser,opt):
sys.exit(1)
ui,repo=setup_repo(options.repourl)
- stale,changed=get_branches(ui,repo,heads_cache,marks_cache,options.revision+1)
+ stale,changed,unchanged=get_branches(ui,repo,heads_cache,marks_cache,options.revision+1)
print "Possibly stale branches:"
map(lambda b: sys.stdout.write('\t%s\n' % b),stale.keys())
+ print "Unchanged branches:"
+ map(lambda b: sys.stdout.write('\t%s (r%s)\n' % (b[0],b[2])),unchanged)
+
print "Reset branches in '%s' to:" % options.headsfile
map(lambda b: sys.stdout.write('\t:%s %s\n\t\t(r%s: %s: %s)\n' % (b[0],b[1],b[2],b[4],b[3])),changed)