[PATCH resend] histedit: use descriptive comments to combine commit messages in fold
Denis Laxalde
denis at laxalde.org
Tue Jan 15 08:34:28 CST 2013
# HG changeset patch
# User Denis Laxalde <denis at laxalde.org>
# Date 1357565293 -3600
# Node ID a522e70fa65d58f667bd8de4162c6eeb67f46b3a
# Parent 83e8f22da9c2895f8cb0c7a8662e064477d63538
histedit: use descriptive comments to combine commit messages in fold
The combined template message resulting from a fold in histedit is made of
comments (i.e. "HG: [...]") intercalated between commit messages of folded
changesets instead of the previous "***".
Tests updated.
diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -324,11 +324,11 @@ def finishfold(ui, repo, ctx, oldctx, ne
username = ui.username()
commitopts['user'] = username
# commit message
- newmessage = '\n***\n'.join(
- [ctx.description()] +
- [repo[r].description() for r in internalchanges] +
- [oldctx.description()]) + '\n'
- commitopts['message'] = newmessage
+ allctx = [ctx] + [repo[r] for r in internalchanges] + [oldctx]
+ newmessage = ["HG: This is a fold of %d changesets." % len(allctx)]
+ newmessage += ["HG: Commit message of changeset %s.\n\n%s\n" %
+ (c.rev(), c.description()) for c in allctx]
+ commitopts['message'] = "\n".join(newmessage)
# date
commitopts['date'] = max(ctx.date(), oldctx.date())
n = collapse(repo, ctx, repo[newnode], commitopts)
diff --git a/tests/test-histedit-fold-non-commute.t
b/tests/test-histedit-fold-non-commute.t
--- a/tests/test-histedit-fold-non-commute.t
+++ b/tests/test-histedit-fold-non-commute.t
@@ -104,8 +104,13 @@ fix up
> EOF
$ HGEDITOR="python cat.py" hg histedit --continue 2>&1 | fixbundle |
grep -v '2 files removed'
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ HG: This is a fold of 2 changesets.
+ HG: Commit message of changeset 4.
+ d
- ***
+ + HG: Commit message of changeset 7.
+ does not commute with e
@@ -136,13 +141,13 @@ just continue this time
log after edit
$ hg log --graph
- @ changeset: 5:2696a654c663
+ @ changeset: 5:0ccfa1833e44
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: f
|
- o changeset: 4:ec2c1cf833a8
+ o changeset: 4:6feb8a25280e
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: d
diff --git a/tests/test-histedit-fold.t b/tests/test-histedit-fold.t
--- a/tests/test-histedit-fold.t
+++ b/tests/test-histedit-fold.t
@@ -240,10 +240,17 @@ dropped revision.
$ echo 6 >> file
$ HGEDITOR=cat hg histedit --continue
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ HG: This is a fold of 3 changesets.
+ HG: Commit message of changeset 1.
+ +4
- ***
+ + HG: Commit message of changeset 4.
+ +5.2
- ***
+ + HG: Commit message of changeset 3.
+ +6
@@ -256,9 +263,9 @@ dropped revision.
HG: changed file
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
- saved backup bundle to
$TESTTMP/fold-with-dropped/.hg/strip-backup/617f94f13c0f-backup.hg (glob)
+ saved backup bundle to
$TESTTMP/fold-with-dropped/.hg/strip-backup/617f94f13c0f-backup.hg
$ hg log -G
- @ changeset: 1:e29e02896e6c
+ @ changeset: 1:1990adcd9f2e
| tag: tip
| user: test
| date: Thu Jan 01 00:00:00 1970 +0000
@@ -273,15 +280,17 @@ dropped revision.
# HG changeset patch
# User test
# Date 0 0
- # Node ID e29e02896e6c2b149d2228a0a64b4f3a9a4237f3
+ # Node ID 1990adcd9f2efd3d9e758a6598af417ad5d0d806
# Parent 0189ba417d34df9dda55f88b637dcae9917b5964
+4
- ***
+ + +5.2
- ***
+ + +6
- diff -r 0189ba417d34 -r e29e02896e6c file
+ diff -r 0189ba417d34 -r 1990adcd9f2e file
--- a/file Thu Jan 01 00:00:00 1970 +0000
+++ b/file Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +1,6 @@
More information about the Mercurial-devel
mailing list