From: Igor Djordjevic <igor.d.djordjevic@gmail.com>
To: Jacob Keller <jacob.keller@gmail.com>, Carl Baldwin <carl@ecbaldwin.net>
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"Git Mailing List" <git@vger.kernel.org>
Subject: Re: Bring together merge and rebase
Date: Wed, 27 Dec 2017 00:30:57 +0100 [thread overview]
Message-ID: <c03c67f2-7d2c-da94-08f8-48c41c2a55ed@gmail.com> (raw)
In-Reply-To: <CA+P7+xp9v8adrbF7JUYa3X+PvurHiW1QNTnodJt6-vyB3_dWAQ@mail.gmail.com>
Very interesting topic, just this one part I wanted to comment on:
On 26/12/2017 02:28, Jacob Keller wrote:
>
> What about some way to take the reflog and turn it into a commit-based
> linkage and export that? Rather than tying it into the individual
> commit history, keep track of it outside the commit, possibly via
> something like notes, or some other mechanism.
This seems like the most useful approach, might be not touching reflog
per se, but having some kind of "cherry-picked commits source" log
(where rebasing is a subset of cherry-picking). What Johannes
mentioned, a mapping between "old" and "new" commits. Might be notes
could fit in nicely, but I`m not competent to comment on that at the
moment.
For me, the most interesting use case is not even tied to code review
(thus no review comments to think about), but a situation where one
might be rebasing a set of downstream patches on top of updating
upstream - it might be possible for a bug to slip through due to some
upstream changes, even where there are no conflicts and test suite is
executed regularly (might be test reveling the bug is yet to be added).
In that situation, instead of just going back in "regular" history
(single dimension) and eventually finding the offending (rebased)
commit (its N-th rebased version, that is), it might be great to
actually keep drilling down the "rebase history" now (second
dimension), finding the exact rebase iteration / rebased commit
version where the error first appeared.
Carl, you described this well in your document[1], and Johannes
provided a valuable first-hand experience[2] from working around the
very same native Git limitation for years, mentioning using (fragile,
costly and not very automatible) rebased commits message search to
drill down the second dimension (rebase iterations), which seems to
be the only possible approach at the moment, with "vanilla" Git, at
least.
So this might be much more interesting case, if code review one is
less appropriate because of review comments being also relevant to
commit rebase iterations (which should be then stored somewhere, too,
relating to corresponding commits, not to lose context).
Regards, Buga
p.s. "Merging rebase" and "shears.sh" script[3] seem to be orthogonal
to this - really great on their own in improving rebase itself and
making it smarter and much more powerful and useful, where I guess
they would benefit from native Git "cherry-picked (rebased) commits
iterations tracking" (old/source <> new/destination commit mapping),
too, as would other Git tools.
[1] http://blog.episodicgenius.com/post/merge-or-rebase--neither/
[2] https://public-inbox.org/git/20171226040843.h7o6txkrp6zlv7u5@glandium.org/T/#m2e5079488bed2968d4ea52a10051a06c06ff61e0
[3] https://github.com/git-for-windows/build-extra/blob/af9cff5005/shears.sh#L12-L18
next prev parent reply other threads:[~2017-12-26 23:31 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-23 6:10 Bring together merge and rebase Carl Baldwin
2017-12-23 18:59 ` Ævar Arnfjörð Bjarmason
2017-12-23 21:01 ` Carl Baldwin
2017-12-23 22:09 ` Ævar Arnfjörð Bjarmason
2017-12-26 0:16 ` Carl Baldwin
2017-12-26 1:28 ` Jacob Keller
2017-12-26 23:30 ` Igor Djordjevic [this message]
2017-12-26 17:49 ` Ævar Arnfjörð Bjarmason
2017-12-26 19:44 ` Carl Baldwin
2017-12-26 20:19 ` Paul Smith
2017-12-26 21:07 ` Carl Baldwin
2017-12-23 22:19 ` Randall S. Becker
2017-12-25 20:05 ` Carl Baldwin
2017-12-23 23:01 ` Johannes Schindelin
2017-12-24 14:13 ` Alexei Lozovsky
2018-01-04 15:44 ` Johannes Schindelin
2017-12-25 23:43 ` Carl Baldwin
2017-12-26 0:01 ` Randall S. Becker
2018-01-04 19:49 ` Martin Fick
2017-12-23 22:30 ` Johannes Schindelin
2017-12-25 3:52 ` Theodore Ts'o
2017-12-26 1:16 ` Carl Baldwin
2017-12-26 1:47 ` Jacob Keller
2017-12-26 6:02 ` Carl Baldwin
2017-12-26 8:40 ` Jacob Keller
2018-01-04 19:19 ` Martin Fick
2018-01-05 0:31 ` Martin Fick
2018-01-05 5:09 ` Carl Baldwin
2018-01-05 5:20 ` Carl Baldwin
2017-12-26 18:04 ` Theodore Ts'o
2017-12-26 20:31 ` Carl Baldwin
2018-01-04 20:06 ` Martin Fick
2018-01-05 5:06 ` Carl Baldwin
2018-01-04 19:54 ` Martin Fick
2018-01-05 4:08 ` Carl Baldwin
2018-01-05 20:14 ` Junio C Hamano
2018-01-06 17:29 ` Carl Baldwin
2018-01-06 17:32 ` Carl Baldwin
2018-01-06 21:38 ` Theodore Ts'o
2017-12-27 4:35 ` Carl Baldwin
2017-12-27 13:35 ` Alexei Lozovsky
2017-12-28 5:23 ` Carl Baldwin
2017-12-26 4:08 ` Mike Hommey
2017-12-27 2:44 ` Carl Baldwin
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=c03c67f2-7d2c-da94-08f8-48c41c2a55ed@gmail.com \
--to=igor.d.djordjevic@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=avarab@gmail.com \
--cc=carl@ecbaldwin.net \
--cc=git@vger.kernel.org \
--cc=jacob.keller@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).