mirror of
https://github.com/git/git.git
synced 2024-11-24 02:17:02 +08:00
hg-to-git speedup through selectable repack intervals
Signed-off-by: Lars Hjemli <hjemli@gmail.com> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
602015e0e6
commit
7c0d741a3e
@ -29,6 +29,8 @@ hgvers = {}
|
||||
hgchildren = {}
|
||||
# Current branch for each hg revision
|
||||
hgbranch = {}
|
||||
# Number of new changesets converted from hg
|
||||
hgnewcsets = 0
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
@ -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)
|
||||
@ -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:
|
||||
@ -138,6 +144,7 @@ for cset in range(int(tip) + 1):
|
||||
# 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()
|
||||
@ -222,7 +229,8 @@ for cset in range(int(tip) + 1):
|
||||
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:
|
||||
|
Loading…
Reference in New Issue
Block a user