# HG changeset patch # User Dirkjan Ochtman # Date 1239209990 -7200 # Node ID 1272e87546ed74c9dba86c29d7fd6cdd12e79807 # Parent 074f27c6881889e202650b63301af48b72f4b2ea Move help, update into svncommands. diff --git a/__init__.py b/__init__.py --- a/__init__.py +++ b/__init__.py @@ -82,7 +82,7 @@ cmdtable = { ('', 'username', '', 'username for authentication'), ('', 'password', '', 'password for authentication'), ], - svncommand.generate_help(), + svncommands.generate_help(), ), "svnclone": (svn_fetch, diff --git a/svncommand.py b/svncommand.py --- a/svncommand.py +++ b/svncommand.py @@ -2,11 +2,7 @@ import os import sys import traceback -from mercurial import hg -from mercurial import node - -import util -from util import register_subcommand, svn_subcommands, generate_help, svn_commands_nourl +from util import svn_subcommands, svn_commands_nourl # dirty trick to force demandimport to run my decorator anyway. from svncommands import pull, diff, rebuildmeta from utility_commands import print_wc_url @@ -43,52 +39,3 @@ def svncmd(ui, repo, subcommand, *args, ui.status('Unknown subcommand %s\n' % subcommand) else: raise - - -def help_command(ui, args=None, **opts): - """show help for a given subcommands or a help overview - """ - if args: - subcommand = args[0] - if subcommand not in svn_subcommands: - candidates = [] - for c in svn_subcommands: - if c.startswith(subcommand): - candidates.append(c) - if len(candidates) == 1: - subcommand = candidates[0] - elif len(candidates) > 1: - ui.status('Ambiguous command. Could have been:\n%s\n' % - ' '.join(candidates)) - return - doc = svn_subcommands[subcommand].__doc__ - if doc is None: - doc = "No documentation available for %s." % subcommand - ui.status(doc.strip(), '\n') - return - ui.status(generate_help()) -help_command = register_subcommand('help')(help_command) - -def update(ui, args, repo, clean=False, **opts): - """update to a specified Subversion revision number - """ - assert len(args) == 1 - rev = int(args[0]) - path = os.path.join(repo.path, 'svn', 'rev_map') - answers = [] - for k,v in util.parse_revmap(path).iteritems(): - if k[0] == rev: - answers.append((v, k[1])) - if len(answers) == 1: - if clean: - return hg.clean(repo, answers[0][0]) - return hg.update(repo, answers[0][0]) - elif len(answers) == 0: - ui.status('Revision %s did not produce an hg revision.\n' % rev) - return 1 - else: - ui.status('Ambiguous revision!\n') - ui.status('\n'.join(['%s on %s' % (node.hex(a[0]), a[1]) for a in - answers]+[''])) - return 1 -update = register_subcommand('up')(update) diff --git a/svncommands.py b/svncommands.py --- a/svncommands.py +++ b/svncommands.py @@ -16,6 +16,8 @@ import cmdutil import util import utility_commands +from util import generate_help, svn_subcommands, register_subcommand + def pull(ui, svn_url, hg_repo_path, skipto_rev=0, stupid=None, tag_locations='tags', authors=None, filemap=None, **opts): @@ -329,3 +331,53 @@ def rebuildmeta(ui, repo, hg_repo_path, tagsinfofile.close() rebuildmeta = util.register_subcommand('rebuildmeta')(rebuildmeta) rebuildmeta = util.command_needs_no_url(rebuildmeta) + + +def help(ui, args=None, **opts): + """show help for a given subcommands or a help overview + """ + if args: + subcommand = args[0] + if subcommand not in svn_subcommands: + candidates = [] + for c in svn_subcommands: + if c.startswith(subcommand): + candidates.append(c) + if len(candidates) == 1: + subcommand = candidates[0] + elif len(candidates) > 1: + ui.status('Ambiguous command. Could have been:\n%s\n' % + ' '.join(candidates)) + return + doc = svn_subcommands[subcommand].__doc__ + if doc is None: + doc = "No documentation available for %s." % subcommand + ui.status(doc.strip(), '\n') + return + ui.status(generate_help()) +help = register_subcommand('help')(help) + + +def update(ui, args, repo, clean=False, **opts): + """update to a specified Subversion revision number + """ + assert len(args) == 1 + rev = int(args[0]) + path = os.path.join(repo.path, 'svn', 'rev_map') + answers = [] + for k,v in util.parse_revmap(path).iteritems(): + if k[0] == rev: + answers.append((v, k[1])) + if len(answers) == 1: + if clean: + return hg.clean(repo, answers[0][0]) + return hg.update(repo, answers[0][0]) + elif len(answers) == 0: + ui.status('Revision %s did not produce an hg revision.\n' % rev) + return 1 + else: + ui.status('Ambiguous revision!\n') + ui.status('\n'.join(['%s on %s' % (node.hex(a[0]), a[1]) for a in + answers]+[''])) + return 1 +update = register_subcommand('up')(update)