summaryrefslogtreecommitdiff
path: root/lorry
diff options
context:
space:
mode:
authorLars Wirzenius <lars.wirzenius@codethink.co.uk>2011-10-31 10:53:19 +0000
committerLars Wirzenius <lars.wirzenius@codethink.co.uk>2011-10-31 10:53:19 +0000
commit3f1f760c7b1453bf4faa3a5d595a5e7c7db389f1 (patch)
tree21c9b357a35a866da24f986d36aa7feae5a38b91 /lorry
parentbe989e4496606bf6709fda60f83bfebb61416784 (diff)
downloadlorry-3f1f760c7b1453bf4faa3a5d595a5e7c7db389f1.tar.gz
Fix bzr to branch to local repo first, then fast-export from that
It seems fast-export suffers greatly from any lag to the bzr repository, so this way we eliminate that.
Diffstat (limited to 'lorry')
-rwxr-xr-xlorry21
1 files changed, 16 insertions, 5 deletions
diff --git a/lorry b/lorry
index 424f07d..b2a4b62 100755
--- a/lorry
+++ b/lorry
@@ -79,17 +79,26 @@ class Lorry(cliapp.Application):
self.run_program(['git', 'pull'], cwd=gitdir)
def gitify_bzr(self, dirname, gitdir, spec):
+ bzrdir = os.path.join(dirname, 'bzr')
+ if os.path.exists(bzrdir):
+ self.progress('.. updating bzr branch')
+ self.run_program(['bzr', 'pull', '--quiet', spec['url']],
+ cwd=bzrdir)
+ else:
+ self.progress('.. doing initial bzr branch')
+ self.run_program(['bzr', 'branch', '--quiet', spec['url'], bzrdir])
+
self.progress('.. fast-exporting from bzr')
export = os.path.join(dirname, 'fast-export')
- self.run_program(['bzr', 'fast-export', '--quiet',
- spec['url'], export])
+ self.run_program(['bzr', 'fast-export', '--quiet', bzrdir, export])
+
if not os.path.exists(gitdir):
self.progress('.. creating git repo')
os.mkdir(gitdir)
- self.run_program(['git', 'init', '.'], cwd=gitdir)
- self.progress('.. reading fast-export data')
+ self.run_program(['git', 'init', gitdir])
+
self.progress('.. fast-importing into git')
- self.run_program(['sh', '-c', 'git fast-import < ../fast-import'],
+ self.run_program(['sh', '-c', 'git fast-import < ../fast-export'],
cwd=gitdir)
def gitify_svn(self, dirname, gitdir, spec):
@@ -118,6 +127,8 @@ class Lorry(cliapp.Application):
self.run_program(['git', 'push', 'gitorious', 'master'], cwd=gitdir)
def run_program(self, argv, **kwargs):
+ logging.debug('Running: argv=%s kwargs=%s' %
+ (repr(argv), repr(kwargs)))
exit, out, err = self.runcmd_unchecked(argv, **kwargs)
logging.debug('Command: %s\nExit: %s\nStdout:\n%sStderr:\n%s' %
(argv, exit, self.indent(out), self.indent(err)))