Skip to content

Commit

Permalink
hg-to-git speedup through selectable repack intervals
Browse files Browse the repository at this point in the history
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
  • Loading branch information
Michael Gebetsroither authored and Shawn O. Pearce committed Oct 16, 2007
1 parent 602015e commit 7c0d741
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions contrib/hg-to-git/hg-to-git.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
hgchildren = {}
# Current branch for each hg revision
hgbranch = {}
# Number of new changesets converted from hg
hgnewcsets = 0

#------------------------------------------------------------------------------

Expand All @@ -40,6 +42,8 @@ def usage():
options:
-s, --gitstate=FILE: name of the state to be saved/read
for incrementals
-n, --nrepack=INT: number of changesets that will trigger
a repack (default=0, -1 to deactivate)
required:
hgprj: name of the HG project to import (directory)
Expand Down Expand Up @@ -68,14 +72,16 @@ def getgitenv(user, date):
#------------------------------------------------------------------------------

state = ''
opt_nrepack = 0

try:
opts, args = getopt.getopt(sys.argv[1:], 's:t:', ['gitstate=', 'tempdir='])
opts, args = getopt.getopt(sys.argv[1:], 's:t:n:', ['gitstate=', 'tempdir=', 'nrepack='])
for o, a in opts:
if o in ('-s', '--gitstate'):
state = a
state = os.path.abspath(state)

if o in ('-n', '--nrepack'):
opt_nrepack = int(a)
if len(args) != 1:
raise('params')
except:
Expand Down Expand Up @@ -138,6 +144,7 @@ def getgitenv(user, date):
# incremental, already seen
if hgvers.has_key(str(cset)):
continue
hgnewcsets += 1

# get info
prnts = os.popen('hg log -r %d | grep ^parent: | cut -f 2 -d :' % cset).readlines()
Expand Down Expand Up @@ -222,7 +229,8 @@ def getgitenv(user, date):
print 'record', cset, '->', vvv
hgvers[str(cset)] = vvv

os.system('git-repack -a -d')
if hgnewcsets >= opt_nrepack and opt_nrepack != -1:
os.system('git-repack -a -d')

# write the state for incrementals
if state:
Expand Down

0 comments on commit 7c0d741

Please sign in to comment.