Commit 930b3d15 authored by Ruslan Sayfutdinov's avatar Ruslan Sayfutdinov
Browse files

backout: commit changeset by default (BC)

Add --no-commit flag to prevent it. This should make the hg user
experience a little better. Some discussion can be found here:
http://markmail.org/message/7jm7ro2ias6hxywy
parent 88aa4da0cba8
......@@ -526,22 +526,24 @@ def archive(ui, repo, dest, **opts):
@command('backout',
[('', 'merge', None, _('merge with old dirstate parent after backout')),
('', 'commit', None, _('commit if no conflicts were encountered')),
('', 'commit', None,
_('commit if no conflicts were encountered (DEPRECATED)')),
('', 'no-commit', None, _('do not commit')),
('', 'parent', '',
_('parent to choose when backing out merge (DEPRECATED)'), _('REV')),
('r', 'rev', '', _('revision to backout'), _('REV')),
('e', 'edit', False, _('invoke editor on commit messages')),
] + mergetoolopts + walkopts + commitopts + commitopts2,
_('[OPTION]... [-r] REV'))
def backout(ui, repo, node=None, rev=None, commit=False, **opts):
def backout(ui, repo, node=None, rev=None, **opts):
'''reverse effect of earlier changeset
Prepare a new changeset with the effect of REV undone in the
current working directory.
current working directory. If no conflicts were encountered,
it will be committed immediately.
If REV is the parent of the working directory, then this new changeset
is committed automatically. Otherwise, hg needs to merge the
changes and the merged result is left uncommitted.
is committed automatically (unless --no-commit is specified).
.. note::
......@@ -560,12 +562,12 @@ def backout(ui, repo, node=None, rev=None, commit=False, **opts):
- Reverse the effect of previous bad revision 23::
hg backout -r 23
hg commit -m "Backout revision 23"
- Reverse the effect of previous bad revision 23 and
commit the backout immediately::
leave changes uncommitted::
hg backout -r 23 --commit
hg backout -r 23 --no-commit
hg commit -m "Backout revision 23"
By default, the pending changeset will have one parent,
maintaining a linear history. With --merge, the pending
......@@ -589,11 +591,14 @@ def backout(ui, repo, node=None, rev=None, commit=False, **opts):
try:
wlock = repo.wlock()
lock = repo.lock()
return _dobackout(ui, repo, node, rev, commit, **opts)
return _dobackout(ui, repo, node, rev, **opts)
finally:
release(lock, wlock)
def _dobackout(ui, repo, node=None, rev=None, commit=False, **opts):
def _dobackout(ui, repo, node=None, rev=None, **opts):
if opts.get('commit') and opts.get('no_commit'):
raise error.Abort(_("cannot use --commit with --no-commit"))
if rev and node:
raise error.Abort(_("please specify just one revision"))
......@@ -648,7 +653,7 @@ def _dobackout(ui, repo, node=None, rev=None, commit=False, **opts):
repo.ui.status(_("use 'hg resolve' to retry unresolved "
"file merges\n"))
return 1
elif not commit:
elif opts.get('no_commit'):
msg = _("changeset %s backed out, "
"don't forget to commit.\n")
ui.status(msg % short(node))
......
......@@ -61,7 +61,7 @@ commit option
$ echo grapes >> a
$ hg commit -d '2 0' -m grapes
$ hg backout --commit -d '4 0' 1 --tool=:fail
$ hg backout -d '4 0' 1 --tool=:fail
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
changeset 3:1c2161e97c0a backs out changeset 1:22cb4f70d813
$ hg summary
......@@ -75,7 +75,7 @@ commit option
$ echo ypples > a
$ hg commit -d '5 0' -m ypples
$ hg backout --commit -d '6 0' 2 --tool=:fail
$ hg backout -d '6 0' 2 --tool=:fail
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges
[1]
......@@ -371,7 +371,7 @@ backout should not back out subsequent changesets
phases: 3 draft
without --merge
$ hg backout -d '3 0' 1 --tool=true
$ hg backout --no-commit -d '3 0' 1 --tool=true
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
changeset 22bca4c721e5 backed out, don't forget to commit.
$ hg locate b
......@@ -511,7 +511,7 @@ named branches
adding file2
without --merge
$ hg backout -r 1 --tool=true
$ hg backout --no-commit -r 1 --tool=true
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
changeset bf1602f437f3 backed out, don't forget to commit.
$ hg branch
......
......@@ -224,7 +224,7 @@ Show all commands + options
update: clean, check, date, rev, tool
addremove: similarity, subrepos, include, exclude, dry-run
archive: no-decode, prefix, rev, type, subrepos, include, exclude
backout: merge, commit, parent, rev, edit, tool, include, exclude, message, logfile, date, user
backout: merge, commit, no-commit, parent, rev, edit, tool, include, exclude, message, logfile, date, user
bisect: reset, good, bad, skip, extend, command, noupdate
bookmarks: force, rev, delete, rename, inactive, template
branch: force, clean
......
......@@ -1288,7 +1288,7 @@ Test restricted mode with graft
Test restricted mode with backout
$ hg backout -q 11
$ hg backout -q 11 --no-commit
$ hg diff a
diff -r 01a68de1003a a
--- a/a Thu Jan 01 00:00:00 1970 +0000
......
......@@ -671,7 +671,7 @@ update
backout calls revert internally with minimal opts, which should not raise
KeyError
$ hg backout ".^"
$ hg backout ".^" --no-commit
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
changeset c373c8102e68 backed out, don't forget to commit.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment