# HG changeset patch # User Matt Mackall # Date 1286918763 18000 # Node ID 97fd67f35c008f0e0e0d459b3f35cdcd199a2048 # Parent 372abc799caa5b5360dd93fbba4530001a17d152# Parent 215ba8791f106e1b0a4185be02d104ead26c9bf9 merge with crew diff -r 372abc799caa -r 97fd67f35c00 contrib/compress.py --- a/contrib/compress.py Tue Oct 12 16:25:38 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -# Copyright 2010 Pradeepkumar Gayam -# -# Author(s): -# Pradeepkumar Gayam -# -# This software may be used and distributed according to the terms of the -# GNU General Public License version 2 or any later version. - - -from mercurial import hg, localrepo -from mercurial.lock import release -import weakref - -def _copyrevlog(ui, src, dst, tr, progress=None): - if progress: - desc = 'adding %s' % progress - total = len(src) - def progress(count): - ui.progress(desc, count, unit=('revisions'), total=total) - else: - progress = lambda x: None - for r in src: - p = [src.node(i) for i in src.parentrevs(r)] - dst.addrevision(src.revision(src.node(r)), tr, src.linkrev(r), - p[0], p[1]) - progress(r) - -def compress(ui, repo, dest): - # activate parentdelta - ui.setconfig('format', 'parentdelta', 'on') - dest = hg.localpath(ui.expandpath(dest)) - target = localrepo.instance(ui, dest, create=True) - - tr = lock = tlock = None - try: - lock = repo.lock() - tlock = target.lock() - tr = target.transaction("compress") - trp = weakref.proxy(tr) - - _copyrevlog(ui, repo.manifest, target.manifest, trp, 'manifest') - - # only keep indexes and filter "data/" prefix and ".i" suffix - datafiles = [fn[5:-2] for fn, f2, size in repo.store.datafiles() - if size and fn.endswith('.i')] - total = len(datafiles) - for cnt, f in enumerate(datafiles): - _copyrevlog(ui, repo.file(f), target.file(f), trp) - ui.progress(('adding files'), cnt, item=f, unit=('file'), - total=total) - - _copyrevlog(ui, repo.changelog, target.changelog, trp, 'changesets') - - tr.close() - finally: - if tr: - tr.release() - release(tlock, lock) - -cmdtable = { - "compress" : (compress, [], "DEST") - }