diff options
-rwxr-xr-x | lorry | 16 | ||||
-rw-r--r-- | tests/git-backup-on-error.stdout | 6 |
2 files changed, 16 insertions, 6 deletions
@@ -189,11 +189,17 @@ class Lorry(cliapp.Application): gitdir = os.path.join(dirname, 'git') backupdir = self.backup_gitdir(name, dirname, gitdir) try: + self.needs_aggressive = False table[vcstype](name, dirname, gitdir, spec) if self.settings['repack']: self.progress('.. repacking %s git repository' % name) - self.run_program(['git', 'repack', '-a', '-d', '--depth=250', - '--window=250'], cwd=gitdir) + self.run_program(['git', 'config', + 'pack.windowMemory', '128M'], cwd=gitdir) + args = ['git', 'gc'] + if self.needs_aggressive: + args += ['--aggressive'] + self.run_program(args, cwd=gitdir) + self.bundle(name, gitdir) self.make_tarball(name, gitdir) except: @@ -294,6 +300,7 @@ class Lorry(cliapp.Application): self.progress('.. creating git repo') os.mkdir(gitdir) self.run_program(['git', 'init', '--bare', gitdir]) + self.needs_aggressive = True # branches are the listed branches, plus the branch specified in url if 'branches' in spec: @@ -348,7 +355,7 @@ class Lorry(cliapp.Application): def gitify_svn(self, project_name, dirname, gitdir, spec): if not os.path.exists(gitdir): self.progress('.. doing initial clone') - os.mkdir(gitdir) + self.needs_aggressive = True layout = spec["layout"] # if standard layour specified, fill in the defaults if layout == "standard": @@ -381,6 +388,7 @@ class Lorry(cliapp.Application): self.run_program(['git', 'svn', 'fetch'], cwd=gitdir) def gitify_cvs(self, project_name, dirname, gitdir, spec): + self.needs_aggressive = True self.run_program(['git', 'cvsimport', '-a', '-d', spec['url'], '-C', gitdir, spec['module']]) @@ -394,6 +402,7 @@ class Lorry(cliapp.Application): self.run_program(['hg', 'clone', '--quiet', spec['url'], hgdir]) if not os.path.exists(gitdir): + self.needs_aggressive = True self.run_program(['git', 'init', '--bare', gitdir]) self.progress('.. fast-exporting into git') @@ -418,6 +427,7 @@ class Lorry(cliapp.Application): self.run_program(['git', 'init', '--bare', gitdir]) cmdline = ["%s.tar-importer" % __file__, tardest] self.run_program(cmdline, cwd=gitdir) + self.needs_aggressive = True def push_to_mirror_server(self, name, gitdir, diff --git a/tests/git-backup-on-error.stdout b/tests/git-backup-on-error.stdout index 7e18431..b284701 100644 --- a/tests/git-backup-on-error.stdout +++ b/tests/git-backup-on-error.stdout @@ -12,9 +12,9 @@ DATADIR/work-dir/git-backup-test-repo/git-post-fail-DATETIME/info DATADIR/work-dir/git-backup-test-repo/git-post-fail-DATETIME/info/exclude DATADIR/work-dir/git-backup-test-repo/git-post-fail-DATETIME/info/refs DATADIR/work-dir/git-backup-test-repo/git-post-fail-DATETIME/objects +DATADIR/work-dir/git-backup-test-repo/git-post-fail-DATETIME/packed-refs DATADIR/work-dir/git-backup-test-repo/git-post-fail-DATETIME/refs DATADIR/work-dir/git-backup-test-repo/git-post-fail-DATETIME/refs/heads -DATADIR/work-dir/git-backup-test-repo/git-post-fail-DATETIME/refs/heads/master DATADIR/work-dir/git-backup-test-repo/git-post-fail-DATETIME/refs/tags DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/FETCH_HEAD @@ -27,9 +27,9 @@ DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/info DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/info/exclude DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/info/refs DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/objects +DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/packed-refs DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/refs DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/refs/heads -DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/refs/heads/master DATADIR/work-dir/git-backup-test-repo/git-pre-update-DATETIME/refs/tags DATADIR/work-dir/git-backup-test-repo/git/FETCH_HEAD DATADIR/work-dir/git-backup-test-repo/git/HEAD @@ -41,7 +41,7 @@ DATADIR/work-dir/git-backup-test-repo/git/info DATADIR/work-dir/git-backup-test-repo/git/info/exclude DATADIR/work-dir/git-backup-test-repo/git/info/refs DATADIR/work-dir/git-backup-test-repo/git/objects +DATADIR/work-dir/git-backup-test-repo/git/packed-refs DATADIR/work-dir/git-backup-test-repo/git/refs DATADIR/work-dir/git-backup-test-repo/git/refs/heads -DATADIR/work-dir/git-backup-test-repo/git/refs/heads/master DATADIR/work-dir/git-backup-test-repo/git/refs/tags |