Mercurial > hg-stable
changeset 15194:0705f2ac79d6
import: simplify status reporting logic (and make it more I18N-friendly)
The old code printed (with ui.status()) the changeset ID created by
patch N after committing patch N+1, e.g.
applying patch1
applying patch2
applied 1d4bd90af0e4
where 1d4bd90af0e4 is the changeset ID resulting from patch1. That's
just weird. It's also inconsistent: we only reported the changeset ID
when applying >1 patches. And it's inconsistent with 'commit', which
only tells you the new changeset ID in verbose mode. Finally, the
existing code was I18N-hostile, since it concatenated translated
strings.
The new way is to print the just-created changeset ID with ui.note()
immediately after committing it. It also clarifies what the user
message is for easier I18N.
author | Greg Ward <greg@gerg.ca> |
---|---|
date | Sat, 01 Oct 2011 21:30:49 -0400 |
parents | a84e3ed661cb |
children | 5b2a3bb06cef |
files | mercurial/commands.py tests/test-import-bypass.t tests/test-import.t tests/test-patch-offset.t tests/test-patch.t |
diffstat | 5 files changed, 21 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Fri Oct 07 15:36:35 2011 -0500 +++ b/mercurial/commands.py Sat Oct 01 21:30:49 2011 -0400 @@ -3276,8 +3276,8 @@ patch.extract(ui, hunk) if not tmpname: - return None - commitid = _('to working directory') + return (None, None) + msg = _('applied to working directory') try: cmdline_message = cmdutil.logmessage(ui, opts) @@ -3362,8 +3362,8 @@ finally: store.close() if n: - commitid = short(n) - return commitid + msg = _('created %s') % short(n) + return (msg, n) finally: os.unlink(tmpname) @@ -3371,7 +3371,6 @@ wlock = repo.wlock() lock = repo.lock() parents = repo.parents() - lastcommit = None for p in patches: pf = os.path.join(d, p) @@ -3384,16 +3383,14 @@ haspatch = False for hunk in patch.split(pf): - commitid = tryone(ui, hunk, parents) - if commitid: + (msg, node) = tryone(ui, hunk, parents) + if msg: haspatch = True - if lastcommit: - ui.status(_('applied %s\n') % lastcommit) - lastcommit = commitid + ui.note(msg + '\n') if update or opts.get('exact'): parents = repo.parents() else: - parents = [repo[commitid]] + parents = [repo[node]] if not haspatch: raise util.Abort(_('no diffs found'))
--- a/tests/test-import-bypass.t Fri Oct 07 15:36:35 2011 -0500 +++ b/tests/test-import-bypass.t Sat Oct 01 21:30:49 2011 -0400 @@ -171,7 +171,6 @@ $ hg import --bypass ../patch1.diff ../patch2.diff applying ../patch1.diff applying ../patch2.diff - applied 16581080145e $ shortlog o 3:bc8ca3f8a7c4 test 0 0 - default - addf | @@ -196,7 +195,6 @@ $ hg import --bypass --exact ../patch1.diff ../patch2.diff applying ../patch1.diff applying ../patch2.diff - applied 16581080145e $ shortlog o 3:d60cb8989666 test 0 0 - foo - addf |
--- a/tests/test-import.t Fri Oct 07 15:36:35 2011 -0500 +++ b/tests/test-import.t Sat Oct 01 21:30:49 2011 -0400 @@ -199,7 +199,6 @@ $ hg init b $ hg --cwd a export 0:tip | hg --cwd b import - applying patch from stdin - applied 80971e65b431 $ hg --cwd a id 1d4bd90af0e4 tip $ hg --cwd b id @@ -356,10 +355,15 @@ $ hg clone -qr0 a b $ hg --cwd b parents --template 'parent: {rev}\n' parent: 0 - $ hg --cwd b import ../patch1 ../patch2 + $ hg --cwd b import -v ../patch1 ../patch2 applying ../patch1 + patching file a + a + created 1d4bd90af0e4 applying ../patch2 - applied 1d4bd90af0e4 + patching file a + a + created 6d019af21222 $ hg --cwd b rollback repository tip rolled back to revision 1 (undo commit) working directory now based on revision 1 @@ -433,6 +437,7 @@ applying fuzzy-tip.patch patching file a Hunk #1 succeeded at 1 with fuzz 2 (offset -2 lines). + applied to working directory $ hg revert -a reverting a @@ -449,6 +454,7 @@ applying fuzzy-tip.patch patching file a Hunk #1 succeeded at 1 with fuzz 2 (offset -2 lines). + applied to working directory $ cd .. @@ -651,6 +657,7 @@ removing a adding b recording removal of a as rename to b (88% similar) + applied to working directory $ hg st -C A b a @@ -665,6 +672,7 @@ patching file b removing a adding b + applied to working directory $ hg st -C A b R a
--- a/tests/test-patch-offset.t Fri Oct 07 15:36:35 2011 -0500 +++ b/tests/test-patch-offset.t Sat Oct 01 21:30:49 2011 -0400 @@ -69,6 +69,7 @@ Hunk #2 succeeded at 87 (offset 34 lines). Hunk #3 succeeded at 109 (offset 34 lines). a + created 189885cecb41 compare imported changes against reference file