summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Gebetsroither <michael.geb@gmx.at>2007-10-06 21:16:51 (GMT)
committerShawn O. Pearce <spearce@spearce.org>2007-10-16 01:30:00 (GMT)
commit7c0d741a3e8db662419cc841e3068b2a8880a109 (patch)
tree89a12ee148f8b60e72470dd179a6b73d1043579d
parent602015e0e6ec5d3d79b71b0d5e2583fd015417e6 (diff)
downloadgit-7c0d741a3e8db662419cc841e3068b2a8880a109.zip
git-7c0d741a3e8db662419cc841e3068b2a8880a109.tar.gz
git-7c0d741a3e8db662419cc841e3068b2a8880a109.tar.bz2
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>
-rwxr-xr-xcontrib/hg-to-git/hg-to-git.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/contrib/hg-to-git/hg-to-git.py b/contrib/hg-to-git/hg-to-git.py
index 37337ff..7a1c3e4 100755
--- a/contrib/hg-to-git/hg-to-git.py
+++ b/contrib/hg-to-git/hg-to-git.py
@@ -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: