diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -8,11 +8,11 @@ '''manage a stack of patches This extension lets you work with a stack of patches in a Mercurial -repository. It manages two stacks of patches - all known patches, and -applied patches (subset of known patches). +repository. It manages two stacks of patches - all known patches, and applied +patches (subset of known patches). -Known patches are represented as patch files in the .hg/patches -directory. Applied patches are both patch files and changesets. +Known patches are represented as patch files in the .hg/patches directory. +Applied patches are both patch files and changesets. Common tasks (use "hg help command" for more details): @@ -1681,29 +1681,26 @@ def unapplied(ui, repo, patch=None, **op def qimport(ui, repo, *filename, **opts): """import a patch - The patch is inserted into the series after the last applied - patch. If no patches have been applied, qimport prepends the patch - to the series. + The patch is inserted into the series after the last applied patch. If no + patches have been applied, qimport prepends the patch to the series. - The patch will have the same name as its source file unless you - give it a new one with -n/--name. + The patch will have the same name as its source file unless you give it a + new one with -n/--name. - You can register an existing patch inside the patch directory with - the -e/--existing flag. + You can register an existing patch inside the patch directory with the + -e/--existing flag. - With -f/--force, an existing patch of the same name will be - overwritten. + With -f/--force, an existing patch of the same name will be overwritten. - An existing changeset may be placed under mq control with -r/--rev - (e.g. qimport --rev tip -n patch will place tip under mq control). - With -g/--git, patches imported with --rev will use the git diff - format. See the diffs help topic for information on why this is - important for preserving rename/copy information and permission - changes. + An existing changeset may be placed under mq control with -r/--rev (e.g. + qimport --rev tip -n patch will place tip under mq control). With + -g/--git, patches imported with --rev will use the git diff format. See + the diffs help topic for information on why this is important for + preserving rename/copy information and permission changes. - To import a patch from standard input, pass - as the patch file. - When importing from standard input, a patch name must be specified - using the --name flag. + To import a patch from standard input, pass - as the patch file. When + importing from standard input, a patch name must be specified using the + --name flag. """ q = repo.mq q.qimport(repo, filename, patchname=opts['name'], @@ -1718,11 +1715,12 @@ def qimport(ui, repo, *filename, **opts) def init(ui, repo, **opts): """init a new queue repository - The queue repository is unversioned by default. If - -c/--create-repo is specified, qinit will create a separate nested - repository for patches (qinit -c may also be run later to convert - an unversioned patch repository into a versioned one). You can use - qcommit to commit changes to this queue repository.""" + The queue repository is unversioned by default. If -c/--create-repo is + specified, qinit will create a separate nested repository for patches + (qinit -c may also be run later to convert an unversioned patch repository + into a versioned one). You can use qcommit to commit changes to this queue + repository. + """ q = repo.mq r = q.init(repo, create=opts['create_repo']) q.save_dirty() @@ -1744,17 +1742,16 @@ def init(ui, repo, **opts): def clone(ui, source, dest=None, **opts): '''clone main and patch repository at same time - If source is local, destination will have no patches applied. If - source is remote, this command can not check if patches are - applied in source, so cannot guarantee that patches are not - applied in destination. If you clone remote repository, be sure - before that it has no patches applied. + If source is local, destination will have no patches applied. If source is + remote, this command can not check if patches are applied in source, so + cannot guarantee that patches are not applied in destination. If you clone + remote repository, be sure before that it has no patches applied. - Source patch repository is looked for in /.hg/patches by - default. Use -p to change. + Source patch repository is looked for in /.hg/patches by default. Use + -p to change. - The patch directory must be a nested Mercurial repository, as - would be created by qinit -c. + The patch directory must be a nested Mercurial repository, as would be + created by qinit -c. ''' def patchdir(repo): url = repo.url() @@ -1860,26 +1857,24 @@ def setupheaderopts(ui, opts): def new(ui, repo, patch, *args, **opts): """create a new patch - qnew creates a new patch on top of the currently-applied patch (if - any). It will refuse to run if there are any outstanding changes - unless -f/--force is specified, in which case the patch will be - initialized with them. You may also use -I/--include, - -X/--exclude, and/or a list of files after the patch name to add - only changes to matching files to the new patch, leaving the rest - as uncommitted modifications. + qnew creates a new patch on top of the currently-applied patch (if any). + It will refuse to run if there are any outstanding changes unless + -f/--force is specified, in which case the patch will be initialized with + them. You may also use -I/--include, -X/--exclude, and/or a list of files + after the patch name to add only changes to matching files to the new + patch, leaving the rest as uncommitted modifications. - -u/--user and -d/--date can be used to set the (given) user and - date, respectively. -U/--currentuser and -D/--currentdate set user - to current user and date to current date. + -u/--user and -d/--date can be used to set the (given) user and date, + respectively. -U/--currentuser and -D/--currentdate set user to current + user and date to current date. - -e/--edit, -m/--message or -l/--logfile set the patch header as - well as the commit message. If none is specified, the header is - empty and the commit message is '[mq]: PATCH'. + -e/--edit, -m/--message or -l/--logfile set the patch header as well as + the commit message. If none is specified, the header is empty and the + commit message is '[mq]: PATCH'. - Use the -g/--git option to keep the patch in the git extended diff - format. Read the diffs help topic for more information on why this - is important for preserving permission changes and copy/rename - information. + Use the -g/--git option to keep the patch in the git extended diff format. + Read the diffs help topic for more information on why this is important + for preserving permission changes and copy/rename information. """ msg = cmdutil.logmessage(opts) def getmsg(): return ui.edit(msg, ui.username()) @@ -1897,17 +1892,16 @@ def new(ui, repo, patch, *args, **opts): def refresh(ui, repo, *pats, **opts): """update the current patch - If any file patterns are provided, the refreshed patch will - contain only the modifications that match those patterns; the - remaining modifications will remain in the working directory. + If any file patterns are provided, the refreshed patch will contain only + the modifications that match those patterns; the remaining modifications + will remain in the working directory. - If -s/--short is specified, files currently included in the patch - will be refreshed just like matched files and remain in the patch. + If -s/--short is specified, files currently included in the patch will be + refreshed just like matched files and remain in the patch. - hg add/remove/copy/rename work as usual, though you might want to - use git-style patches (-g/--git or [diff] git=1) to track copies - and renames. See the diffs help topic for more information on the - git diff format. + hg add/remove/copy/rename work as usual, though you might want to use + git-style patches (-g/--git or [diff] git=1) to track copies and renames. + See the diffs help topic for more information on the git diff format. """ q = repo.mq message = cmdutil.logmessage(opts) @@ -1928,15 +1922,13 @@ def refresh(ui, repo, *pats, **opts): def diff(ui, repo, *pats, **opts): """diff of the current patch and subsequent modifications - Shows a diff which includes the current patch as well as any - changes which have been made in the working directory since the - last refresh (thus showing what the current patch would become - after a qrefresh). + Shows a diff which includes the current patch as well as any changes which + have been made in the working directory since the last refresh (thus + showing what the current patch would become after a qrefresh). - Use 'hg diff' if you only want to see the changes made since the - last qrefresh, or 'hg export qtip' if you want to see changes made - by the current patch without including changes made since the - qrefresh. + Use 'hg diff' if you only want to see the changes made since the last + qrefresh, or 'hg export qtip' if you want to see changes made by the + current patch without including changes made since the qrefresh. """ repo.mq.diff(repo, pats, opts) return 0 @@ -1944,15 +1936,15 @@ def diff(ui, repo, *pats, **opts): def fold(ui, repo, *files, **opts): """fold the named patches into the current patch - Patches must not yet be applied. Each patch will be successively - applied to the current patch in the order given. If all the - patches apply successfully, the current patch will be refreshed - with the new cumulative patch, and the folded patches will be - deleted. With -k/--keep, the folded patch files will not be - removed afterwards. + Patches must not yet be applied. Each patch will be successively applied + to the current patch in the order given. If all the patches apply + successfully, the current patch will be refreshed with the new cumulative + patch, and the folded patches will be deleted. With -k/--keep, the folded + patch files will not be removed afterwards. - The header for each folded patch will be concatenated with the - current patch header, separated by a line of '* * *'.""" + The header for each folded patch will be concatenated with the current + patch header, separated by a line of '* * *'. + """ q = repo.mq @@ -2018,14 +2010,13 @@ def goto(ui, repo, patch, **opts): def guard(ui, repo, *args, **opts): '''set or print guards for a patch - Guards control whether a patch can be pushed. A patch with no - guards is always pushed. A patch with a positive guard ("+foo") is - pushed only if the qselect command has activated it. A patch with - a negative guard ("-foo") is never pushed if the qselect command - has activated it. + Guards control whether a patch can be pushed. A patch with no guards is + always pushed. A patch with a positive guard ("+foo") is pushed only if + the qselect command has activated it. A patch with a negative guard + ("-foo") is never pushed if the qselect command has activated it. - With no arguments, print the currently active guards. - With arguments, set guards for the named patch. + With no arguments, print the currently active guards. With arguments, set + guards for the named patch. NOTE: Specifying negative guards now requires '--'. To set guards on another patch: @@ -2102,8 +2093,8 @@ def savename(path): def push(ui, repo, patch=None, **opts): """push the next patch onto the stack - When -f/--force is applied, all local changes in patched files - will be lost. + When -f/--force is applied, all local changes in patched files will be + lost. """ q = repo.mq mergeq = None @@ -2125,9 +2116,9 @@ def push(ui, repo, patch=None, **opts): def pop(ui, repo, patch=None, **opts): """pop the current patch off the stack - By default, pops off the top of the patch stack. If given a patch - name, keeps popping off patches until the named patch is at the - top of the stack. + By default, pops off the top of the patch stack. If given a patch name, + keeps popping off patches until the named patch is at the top of the + stack. """ localupdate = True if opts['name']: @@ -2244,8 +2235,7 @@ def strip(ui, repo, rev, **opts): """strip a revision and all its descendants from the repository If one of the working directory's parent revisions is stripped, the - working directory will be updated to the parent of the stripped - revision. + working directory will be updated to the parent of the stripped revision. """ backup = 'all' if opts['backup']: @@ -2270,35 +2260,33 @@ def strip(ui, repo, rev, **opts): def select(ui, repo, *args, **opts): '''set or print guarded patches to push - Use the qguard command to set or print guards on patch, then use - qselect to tell mq which guards to use. A patch will be pushed if - it has no guards or any positive guards match the currently - selected guard, but will not be pushed if any negative guards - match the current guard. For example: + Use the qguard command to set or print guards on patch, then use qselect + to tell mq which guards to use. A patch will be pushed if it has no guards + or any positive guards match the currently selected guard, but will not be + pushed if any negative guards match the current guard. For example: qguard foo.patch -stable (negative guard) qguard bar.patch +stable (positive guard) qselect stable - This activates the "stable" guard. mq will skip foo.patch (because - it has a negative match) but push bar.patch (because it has a - positive match). + This activates the "stable" guard. mq will skip foo.patch (because it has + a negative match) but push bar.patch (because it has a positive match). - With no arguments, prints the currently active guards. - With one argument, sets the active guard. + With no arguments, prints the currently active guards. With one argument, + sets the active guard. - Use -n/--none to deactivate guards (no other arguments needed). - When no guards are active, patches with positive guards are - skipped and patches with negative guards are pushed. + Use -n/--none to deactivate guards (no other arguments needed). When no + guards are active, patches with positive guards are skipped and patches + with negative guards are pushed. - qselect can change the guards on applied patches. It does not pop - guarded patches by default. Use --pop to pop back to the last - applied patch that is not guarded. Use --reapply (which implies - --pop) to push back to the current patch afterwards, but skip - guarded patches. + qselect can change the guards on applied patches. It does not pop guarded + patches by default. Use --pop to pop back to the last applied patch that + is not guarded. Use --reapply (which implies --pop) to push back to the + current patch afterwards, but skip guarded patches. - Use -s/--series to print a list of all guards in the series file - (no other arguments needed). Use -v for more information.''' + Use -s/--series to print a list of all guards in the series file (no other + arguments needed). Use -v for more information. + ''' q = repo.mq guards = q.active() @@ -2373,18 +2361,16 @@ def select(ui, repo, *args, **opts): def finish(ui, repo, *revrange, **opts): """move applied patches into repository history - Finishes the specified revisions (corresponding to applied - patches) by moving them out of mq control into regular repository - history. + Finishes the specified revisions (corresponding to applied patches) by + moving them out of mq control into regular repository history. - Accepts a revision range or the -a/--applied option. If --applied - is specified, all applied mq revisions are removed from mq - control. Otherwise, the given revisions must be at the base of the - stack of applied patches. + Accepts a revision range or the -a/--applied option. If --applied is + specified, all applied mq revisions are removed from mq control. + Otherwise, the given revisions must be at the base of the stack of applied + patches. - This can be especially useful if your changes have been applied to - an upstream repository, or if you are about to push your changes - to upstream. + This can be especially useful if your changes have been applied to an + upstream repository, or if you are about to push your changes to upstream. """ if not opts['applied'] and not revrange: raise util.Abort(_('no revisions specified')) diff --git a/tests/test-mq.out b/tests/test-mq.out --- a/tests/test-mq.out +++ b/tests/test-mq.out @@ -2,11 +2,11 @@ mq extension - manage a stack of patches This extension lets you work with a stack of patches in a Mercurial -repository. It manages two stacks of patches - all known patches, and -applied patches (subset of known patches). +repository. It manages two stacks of patches - all known patches, and applied +patches (subset of known patches). -Known patches are represented as patch files in the .hg/patches -directory. Applied patches are both patch files and changesets. +Known patches are represented as patch files in the .hg/patches directory. +Applied patches are both patch files and changesets. Common tasks (use "hg help command" for more details):