[PATCH 01 of 35] largefiles: declare commands using decorator
Gregory Szorc
gregory.szorc at gmail.com
Mon May 5 00:51:06 CDT 2014
# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1399262946 25200
# Sun May 04 21:09:06 2014 -0700
# Branch stable
# Node ID a40ee6509498e00f2c4003cc5b1712738ee784fa
# Parent cadad384c97c7956c98f3c9b92d8cc40fa16d93b
largefiles: declare commands using decorator
diff --git a/hgext/largefiles/lfcommands.py b/hgext/largefiles/lfcommands.py
--- a/hgext/largefiles/lfcommands.py
+++ b/hgext/largefiles/lfcommands.py
@@ -16,16 +16,28 @@ from mercurial import util, match as mat
from mercurial.i18n import _
from mercurial.lock import release
import lfutil
import basestore
# -- Commands ----------------------------------------------------------
+cmdtable = {}
+command = cmdutil.command(cmdtable)
+
+commands.inferrepo += " lfconvert"
+
+ at command('lfconvert',
+ [('s', 'size', '',
+ _('minimum size (MB) for files to be converted as largefiles'), 'SIZE'),
+ ('', 'to-normal', False,
+ _('convert from a largefiles repo to a normal repo')),
+ ],
+ _('hg lfconvert SOURCE DEST [FILE ...]'))
def lfconvert(ui, src, dest, *pats, **opts):
'''convert a normal repository to a largefiles repository
Convert repository SOURCE to a new repository DEST, identical to
SOURCE except that certain files will be converted as largefiles:
specifically, any file that matches any PATTERN *or* whose size is
above the minimum size threshold is converted as a largefile. The
size used to determine whether or not to track a file as a
@@ -514,16 +526,20 @@ def updatelfiles(ui, repo, filelist=None
lfdirstate.write()
if printmessage and lfiles:
ui.status(_('%d largefiles updated, %d removed\n') % (updated,
removed))
finally:
wlock.release()
+ at command('lfpull',
+ [('r', 'rev', [], _('pull largefiles for these revisions'))
+ ] + commands.remoteopts,
+ _('-r REV... [-e CMD] [--remotecmd CMD] [SOURCE]'))
def lfpull(ui, repo, source="default", **opts):
"""pull largefiles for the specified revisions from the specified source
Pull largefiles that are referenced from local changesets but missing
locally, pulling from a remote repository to the local cache.
If SOURCE is omitted, the 'default' path will be used.
See :hg:`help urls` for more information.
@@ -548,29 +564,8 @@ def lfpull(ui, repo, source="default", *
revs = scmutil.revrange(repo, revs)
numcached = 0
for rev in revs:
ui.note(_('pulling largefiles for revision %s\n') % rev)
(cached, missing) = cachelfiles(ui, repo, rev)
numcached += len(cached)
ui.status(_("%d largefiles cached\n") % numcached)
-
-# -- hg commands declarations ------------------------------------------------
-
-cmdtable = {
- 'lfconvert': (lfconvert,
- [('s', 'size', '',
- _('minimum size (MB) for files to be converted '
- 'as largefiles'),
- 'SIZE'),
- ('', 'to-normal', False,
- _('convert from a largefiles repo to a normal repo')),
- ],
- _('hg lfconvert SOURCE DEST [FILE ...]')),
- 'lfpull': (lfpull,
- [('r', 'rev', [], _('pull largefiles for these revisions'))
- ] + commands.remoteopts,
- _('-r REV... [-e CMD] [--remotecmd CMD] [SOURCE]')
- ),
- }
-
-commands.inferrepo += " lfconvert"
More information about the Mercurial-devel
mailing list