{"thread":{"id":"10174","subject":"[PATCH] hg-to-git speedup through selectable repack intervals","startedAt":"2007-10-06T21:16:51Z","lastAt":"2007-10-06T21:16:51Z","messageCount":1,"participants":["Michael Gebetsroither"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"55027","messageId":"1191705411-18139-1-git-send-email-michael.geb@gmx.at","threadId":"10174","inReplyTo":null,"subject":"[PATCH] hg-to-git speedup through selectable repack intervals","fromName":"Michael Gebetsroither","fromEmail":"michael.geb@gmx.at","sentAt":"2007-10-06T21:16:51Z","receivedAt":"2007-10-06T21:16:51Z","isPatch":true,"sender":{"key":"michael.geb@gmx.at","avatar":null},"body":"---\n contrib/hg-to-git/hg-to-git.py |   14 +++++++++++---\n 1 files changed, 11 insertions(+), 3 deletions(-)\n\ndiff --git a/contrib/hg-to-git/hg-to-git.py b/contrib/hg-to-git/hg-to-git.py\nindex 37337ff..7a1c3e4 100755\n--- a/contrib/hg-to-git/hg-to-git.py\n+++ b/contrib/hg-to-git/hg-to-git.py\n@@ -29,6 +29,8 @@ hgvers = {}\n hgchildren = {}\n # Current branch for each hg revision\n hgbranch = {}\n+# Number of new changesets converted from hg\n+hgnewcsets = 0\n \n #------------------------------------------------------------------------------\n \n@@ -40,6 +42,8 @@ def usage():\n options:\n     -s, --gitstate=FILE: name of the state to be saved/read\n                          for incrementals\n+    -n, --nrepack=INT:   number of changesets that will trigger\n+                         a repack (default=0, -1 to deactivate)\n \n required:\n     hgprj:  name of the HG project to import (directory)\n@@ -68,14 +72,16 @@ def getgitenv(user, date):\n #------------------------------------------------------------------------------\n \n state = ''\n+opt_nrepack = 0\n \n try:\n-    opts, args = getopt.getopt(sys.argv[1:], 's:t:', ['gitstate=', 'tempdir='])\n+    opts, args = getopt.getopt(sys.argv[1:], 's:t:n:', ['gitstate=', 'tempdir=', 'nrepack='])\n     for o, a in opts:\n         if o in ('-s', '--gitstate'):\n             state = a\n             state = os.path.abspath(state)\n-\n+        if o in ('-n', '--nrepack'):\n+            opt_nrepack = int(a)\n     if len(args) != 1:\n         raise('params')\n except:\n@@ -138,6 +144,7 @@ for cset in range(int(tip) + 1):\n     # incremental, already seen\n     if hgvers.has_key(str(cset)):\n         continue\n+    hgnewcsets += 1\n \n     # get info\n     prnts = os.popen('hg log -r %d | grep ^parent: | cut -f 2 -d :' % cset).readlines()\n@@ -222,7 +229,8 @@ for cset in range(int(tip) + 1):\n     print 'record', cset, '->', vvv\n     hgvers[str(cset)] = vvv\n \n-os.system('git-repack -a -d')\n+if hgnewcsets >= opt_nrepack and opt_nrepack != -1:\n+    os.system('git-repack -a -d')\n \n # write the state for incrementals\n if state:\n-- \n1.5.3.4\n"}]}