[PATCH 2 of 2 stable] record: check that we are not committing a merge before patch selection
Nicolas Dumazet
nicdumz at gmail.com
Mon May 31 03:18:34 CDT 2010
# HG changeset patch
# User Nicolas Dumazet <nicdumz.commits at gmail.com>
# Date 1275293595 -32400
# Node ID 302921b13d5e9d1251c420a2fe7d202b765d68df
# Parent efd9eec07db59a65c54deecb7c0e2ed64686dc47
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.
diff --git a/hgext/record.py b/hgext/record.py
--- a/hgext/record.py
+++ b/hgext/record.py
@@ -380,7 +380,9 @@
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)
@@ -423,6 +425,11 @@
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)
diff --git a/tests/test-record b/tests/test-record
--- a/tests/test-record
+++ b/tests/test-record
@@ -301,9 +301,20 @@
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
diff --git a/tests/test-record.out b/tests/test-record.out
--- a/tests/test-record.out
+++ b/tests/test-record.out
@@ -24,6 +24,8 @@
? - display help
+ This command is not available when committing a merge.
+
options:
-A --addremove mark new/missing files as added/removed before committing
@@ -479,6 +481,7 @@
a - record all changes to all remaining files
q - quit, recording no changes
? - display help
+This command is not available when committing a merge.
examine changes to 'subdir/f1'? [Ynsfdaq?]
abort: user quit
% skip
@@ -626,6 +629,15 @@
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
+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
@@ -637,8 +649,9 @@
+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
More information about the Mercurial-devel
mailing list