record: check that we are not committing a merge before patch selection

It might sound like a good idea to use record to filter changes when merging.
If someone attemps this, it's better to tell her "no" right ahead, before the
patch generation/line selection, so she does not spend time doing it just to
receive a red light after that (sometimes rather long) process.
This commit is contained in:
Nicolas Dumazet 2010-05-31 17:13:15 +09:00
parent 575c7bca7d
commit 20bba72bdf
3 changed files with 34 additions and 3 deletions

View File

@ -379,7 +379,9 @@ def record(ui, repo, *pats, **opts):
a - record all changes to all remaining files
q - quit, recording no changes
? - display help'''
? - display help
This command is not available when committing a merge.'''
dorecord(ui, repo, commands.commit, *pats, **opts)
@ -422,6 +424,11 @@ def dorecord(ui, repo, commitfunc, *pats, **opts):
left in place, so the user can continue his work.
"""
merge = len(repo[None].parents()) > 1
if merge:
raise util.Abort(_('cannot partially commit a merge '
'(use hg commit instead)'))
changes = repo.status(match=match)[:3]
diffopts = mdiff.diffopts(git=True, nodates=True)
chunks = patch.diff(repo, changes=changes, opts=diffopts)

View File

@ -297,9 +297,20 @@ y
EOF
echo; hg tip --config diff.git=True -p
cd ..
echo % abort early when a merge is in progress
hg up 4
touch iwillmergethat
hg add iwillmergethat
hg branch thatbranch
hg ci -m'new head'
hg up default
hg merge thatbranch
echo; hg record -m'will abort'
hg up -C
echo % with win32ext
cd ..
echo '[extensions]' >> .hg/hgrc
echo 'win32text = ' >> .hg/hgrc
echo '[decode]' >> .hg/hgrc

View File

@ -24,6 +24,8 @@ interactively select changes to commit
? - display help
This command is not available when committing a merge.
options:
-A --addremove mark new/missing files as added/removed before committing
@ -569,6 +571,16 @@ new mode 100644
b
+c
% abort early when a merge is in progress
1 files updated, 0 files merged, 5 files removed, 0 files unresolved
marked working directory as branch thatbranch
created new head
5 files updated, 0 files merged, 2 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
abort: cannot partially commit a merge (use hg commit instead)
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
% with win32ext
diff --git a/subdir/f1 b/subdir/f1
1 hunks, 1 lines changed
@ -578,8 +590,9 @@ examine changes to 'subdir/f1'? [Ynsfdaq?] @@ -3,3 +3,4 @@
c
+d
record this change to 'subdir/f1'? [Ynsfdaq?]
changeset: 25:5bacc1f6e9cf
changeset: 26:5bacc1f6e9cf
tag: tip
parent: 24:1460f6e47966
user: test
date: Thu Jan 01 00:00:23 1970 +0000
summary: w1