From: Jonathan Nieder <jrnieder@gmail.com>
To: git@vger.kernel.org
Cc: Lars Hjemli <hjemli@gmail.com>, Tay Ray Chuan <rctay89@gmail.com>,
Matthieu Moy <Matthieu.Moy@imag.fr>,
Clemens Buchacher <drizzd@aon.at>, Jeff King <peff@peff.net>
Subject: [PATCH/RFC] updating examples/git-merge (plus a builtin/merge fix)
Date: Tue, 17 Aug 2010 01:51:47 -0500 [thread overview]
Message-ID: <20100817065147.GA18293@burratino> (raw)
While preparing to make some minor "git merge" changes, I noticed that
the old merge script does not pass all tests any more. Since it can
be easier to prototype in shell and then port to C, I think that is
worth fixing.
Of course this is not urgent at all.
Patch 1 fixes a minor bug that the scripted implementation does not
suffer from, illustrated by the test "merge early part of c2" from
t7600-merge.sh.
The underlying problem is a subtlety in the resolve_ref() API (from
v0.99.8~13, Use resolve_ref() to implement read_ref(), 2005-09-30):
the "reading" argument to resolve_ref() should usually be true, but
that is not obvious to newcomers.
Patches 2-7 are minor test changes. They are early in the series
to give flexibility about when to merge them.
Patches 8-10 expose functionality used by merge when handling octopus
merges. merge-base --octopus is get_octopus_merge_bases(), used to
provide basis arguments when running the "git merge-octopus" command.
Of course the latter does not care about its basis arguments, but
that is a topic for another series. merge-base --independent is
reduce_refs(), used to reduce the parent list when --no-ff is not
in use.
These are analagous to show-branch --merge-base and
show-branch --independent but are slower and can be used with more
than 25 refs.
Patch 11 exposes the functionality from fmt-merge-msg needed to
implement merge --log -m.
Patches 12 and later are ports of various patches to builtin/merge.c.
I did the bare minimum to make tests pass. :)
Patches are against jn/merge-renormalize~2 (rerere: migrate to
parse-options API) from pu, because without that,
"rerere --rerere-autoupdate" does not work.
Thoughts?
Jonathan Nieder (24):
merge: do not mistake (ancestor of) tag for branch
t7600 (merge): modernize style
t7600 (merge): do not launch gitk for --debug
t7600 (merge): check reflog entry
t7600 (merge): test merge from branch yet to be born
t6010 (merge-base): modernize style
t6200 (fmt-merge-msg): style nitpicks
Documentation: add a SEE ALSO section for merge-base
merge-base --octopus to mimic show-branch --merge-base
merge-base --independent to print reduced parent list in a merge
fmt-merge-msg -m to replace subject line
merge script: --squash, --ff from unborn branch are errors
merge script: tweak unmerged files message to match builtin
merge script: refuse to merge during merge
merge script: improve log message subject
merge script: merge -X<option>
merge script: allow custom strategies
merge script: forbid merge -s index
merge script: handle -m --log correctly
merge script: handle many-way octopus
merge script: --ff-only to disallow true merge
merge script: handle --no-ff --no-commit correctly
merge script: notice @{-1} shorthand
merge script: learn --[no-]rerere-autoupdate
Documentation/git-fmt-merge-msg.txt | 9 +-
Documentation/git-merge-base.txt | 34 +++-
builtin/fmt-merge-msg.c | 18 ++-
builtin/merge-base.c | 44 ++++-
builtin/merge.c | 2 +-
contrib/examples/git-merge.sh | 115 ++++++++---
t/t6010-merge-base.sh | 358 +++++++++++++++++++--------------
t/t6200-fmt-merge-msg.sh | 306 ++++++++++++++--------------
t/t7600-merge.sh | 385 +++++++++++++++--------------------
9 files changed, 705 insertions(+), 566 deletions(-)
next reply other threads:[~2010-08-17 6:53 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-17 6:51 Jonathan Nieder [this message]
2010-08-17 6:52 ` [PATCH 01/24] merge: do not mistake (ancestor of) tag for branch Jonathan Nieder
2010-08-17 6:53 ` [PATCH 02/24] t7600 (merge): modernize style Jonathan Nieder
2010-08-17 6:54 ` [PATCH 03/24] t7600 (merge): do not launch gitk for --debug Jonathan Nieder
2010-08-17 7:31 ` Ævar Arnfjörð Bjarmason
2010-08-17 17:50 ` Sverre Rabbelier
2010-08-18 2:29 ` Jonathan Nieder
2010-08-18 8:55 ` Ævar Arnfjörð Bjarmason
2010-08-18 10:44 ` Jonathan Nieder
2010-08-17 6:56 ` [PATCH 04/24] t7600 (merge): check reflog entry Jonathan Nieder
2010-08-17 6:56 ` [PATCH 05/24] t7600 (merge): test merge from branch yet to be born Jonathan Nieder
2010-08-17 6:57 ` [PATCH 06/24] t6010 (merge-base): modernize style Jonathan Nieder
2010-08-17 6:57 ` [PATCH 07/24] t6200 (fmt-merge-msg): style nitpicks Jonathan Nieder
2010-08-17 6:59 ` [PATCH 08/24] Documentation: add a SEE ALSO section for merge-base Jonathan Nieder
2010-08-17 7:01 ` [PATCH 09/24] merge-base --octopus to mimic show-branch --merge-base Jonathan Nieder
2010-08-17 7:01 ` [PATCH 10/24] merge-base --independent to print reduced parent list in a merge Jonathan Nieder
2010-08-17 7:02 ` [PATCH 11/24] fmt-merge-msg -m to override subject line Jonathan Nieder
2010-08-17 23:00 ` [PATCH 11/24 v2] fmt-merge-msg -m to override merge title Jonathan Nieder
2010-08-17 7:03 ` [PATCH 12/24] merge script: --squash, --ff from unborn branch are errors Jonathan Nieder
2010-08-17 7:03 ` [PATCH 13/24] merge script: tweak unmerged files message to match builtin Jonathan Nieder
2010-08-17 7:36 ` Ævar Arnfjörð Bjarmason
2010-08-17 7:03 ` [PATCH 14/24] merge script: refuse to merge during merge Jonathan Nieder
2010-08-17 7:04 ` [PATCH 15/24] merge script: improve log message subject Jonathan Nieder
2010-08-17 7:05 ` [PATCH 16/24] merge script: merge -X<option> Jonathan Nieder
2010-08-17 7:05 ` [PATCH 17/24] merge script: allow custom strategies Jonathan Nieder
2010-08-17 7:06 ` [PATCH 18/24] merge script: forbid merge -s index Jonathan Nieder
2010-08-17 7:06 ` [PATCH 19/24] merge script: handle -m --log correctly Jonathan Nieder
2010-08-17 9:55 ` Tay Ray Chuan
2010-08-17 21:54 ` Jonathan Nieder
2010-08-17 7:09 ` [PATCH 20/24] merge script: handle many-way octopus Jonathan Nieder
2010-08-17 7:10 ` [PATCH 21/24] merge script: --ff-only to disallow true merge Jonathan Nieder
2010-08-17 7:11 ` [PATCH 22/24] merge script: handle --no-ff --no-commit correctly Jonathan Nieder
2010-08-17 7:11 ` [PATCH 23/24] merge script: notice @{-1} shorthand Jonathan Nieder
2010-08-17 7:13 ` [PATCH 24/24] merge script: learn --[no-]rerere-autoupdate Jonathan Nieder
2010-08-17 7:46 ` [PATCH/RFC] updating examples/git-merge (plus a builtin/merge fix) Ævar Arnfjörð Bjarmason
2010-08-17 8:10 ` Jonathan Nieder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100817065147.GA18293@burratino \
--to=jrnieder@gmail.com \
--cc=Matthieu.Moy@imag.fr \
--cc=drizzd@aon.at \
--cc=git@vger.kernel.org \
--cc=hjemli@gmail.com \
--cc=peff@peff.net \
--cc=rctay89@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.