From: Johan Herland <johan@herland.net>
To: Heiko Voigt <hvoigt@hvoigt.net>
Cc: git@vger.kernel.org
Subject: Re: [WIP PATCH 0/3] implement merge strategy for submodule links
Date: Sat, 12 Jun 2010 12:12:50 +0200 [thread overview]
Message-ID: <201006121212.50545.johan@herland.net> (raw)
In-Reply-To: <cover.1276059473.git.hvoigt@hvoigt.net>
On Friday 11 June 2010, Heiko Voigt wrote:
> The following patch series is a work in progress. The idea is whenever
> you need to merge two SHA1's of a submodule we search for a ref in the
> submodule which already contains both. If one such ref exists the
> resulting SHA1 is the one pointed at by that ref.
I appreciate the effort to improve submodule handling, but I'm not sure I
like this approach. Even though you try to apply it as conservatively as
possible, it still smells a little like trying to make Git too clever for
its own good.
E.g. say we have the following commit history in the submodule:
A---B---C---D <-- master
Now, say that your merge conflict comes from one branch updating the
submodule from B to C, while the other branch reverts the submodule from B
to A. In your proposed scheme, Git would auto-resolve the conflict to D.
In this case Git has no way of knowing whether the update from B to C is
"better" than the revert from B to A. Maybe the revert to A happened because
there is a showstopper bug in B that has not yet been fixed, and the best
solution is to revert to A until a fix can be made. Or maybe C fixes that
showstopper bug, so C is safe after all.
In any case, fast-forwarding to D seems irresponsible, since we have no
concept of how well D is tested. Maybe it introduces another showstopper
bug, and that is why neither branch has upgraded to it yet?
This whole idea is somewhat similar to branch-tracking submodules (recently
discussed in another thread), except that it only applies on _merge_ in the
superproject, and you don't get to choose _which_ branch it's tracking.
That's _way_ too arbitrary for my tastes.
> The implementation currently searches through all refs and if one (and
> only one) ref exists which contains both sides it merges. In all other
> cases it fails.
Still doesn't solve the fundamental A---B---C---D problem I demonstrated
above.
> Future Plans:
>
> * Only search stable branches. E.g. by default only master and
> */master. The stable branch list will be configurable.
What is this "stable" branch of which you speak? "Stable" is a very relative
concept, depending on which repo you're working in, and which branch you're
working on. In any case, master is often not the most stable branch in a
given repo. In git.git for example, maint is more stable than master. Also,
I have many repos where master should not be considered "stable" at all...
...Johan
--
Johan Herland, <johan@herland.net>
www.herland.net
next prev parent reply other threads:[~2010-06-12 10:13 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-11 12:23 [WIP PATCH 0/3] implement merge strategy for submodule links Heiko Voigt
2010-06-11 12:23 ` [WIP PATCH 1/3] extend ref iteration for submodules Heiko Voigt
2010-06-11 12:23 ` [WIP PATCH 2/3] add missing && to submodule-merge testcase Heiko Voigt
2010-06-11 12:23 ` [WIP PATCH 3/3] implement automatic fast forward merge for submodules Heiko Voigt
2010-06-12 10:12 ` Johan Herland [this message]
2010-06-12 12:06 ` Re: [WIP PATCH 0/3] implement merge strategy for submodule links Heiko Voigt
2010-06-13 17:59 ` Johan Herland
2010-06-14 17:02 ` Heiko Voigt
2010-06-14 23:59 ` Johan Herland
2010-06-15 17:37 ` Jens Lehmann
2010-06-16 0:05 ` Johan Herland
2010-06-16 17:16 ` Jens Lehmann
2010-06-16 21:32 ` Johan Herland
2010-06-16 22:11 ` Junio C Hamano
2010-06-17 0:39 ` Johan Herland
2010-06-17 21:13 ` Jens Lehmann
2010-06-18 9:40 ` Johan Herland
2010-06-18 13:55 ` Jens Lehmann
2010-06-19 9:43 ` Heiko Voigt
2010-06-19 15:54 ` Jens Lehmann
2010-06-19 10:17 ` Heiko Voigt
2010-06-19 13:15 ` Johan Herland
2010-06-19 15:52 ` [WIP PATCH 3/3] implement automatic fast forward merge for submodules Heiko Voigt
2010-06-20 18:04 ` [WIP PATCH 0/3] implement merge strategy for submodule links Junio C Hamano
2010-06-20 23:06 ` Johan Herland
2010-06-21 0:03 ` Junio C Hamano
2010-06-21 10:19 ` Johan Herland
2010-06-21 15:22 ` Junio C Hamano
2010-06-21 22:35 ` Johan Herland
2010-06-22 4:04 ` Junio C Hamano
2010-06-22 10:48 ` Johan Herland
2010-06-23 7:38 ` Finn Arne Gangstad
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=201006121212.50545.johan@herland.net \
--to=johan@herland.net \
--cc=git@vger.kernel.org \
--cc=hvoigt@hvoigt.net \
/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.