From: Glen Choo <chooglen@google.com>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: Carlo Arenas <carenas@gmail.com>,
Aidan Gallagher <aidgal2@gmail.com>,
git@vger.kernel.org
Subject: Re: Feature Request: `git commit --amend-to`
Date: Wed, 29 Sep 2021 09:55:45 -0700 [thread overview]
Message-ID: <kl6lwnmzpbhq.fsf@chooglen-macbookpro.roam.corp.google.com> (raw)
In-Reply-To: <87y27gv5bk.fsf@evledraar.gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>> [...] I think the problem
>> has more to do with how Git manages merges and conflicts and less to do
>> with having shortcuts in the CLI.
>
> I think that users who'd like an --amend-to would probably be happy with
> or might want to try out something like "hg absorb", which is something
> I think we should have stolen in git already, but it's never too late.
Agree. I think some "hg absorb" features get at the heart of what I
meant, which is that users would benefit from making this merge conflict
resolution a lot simpler.
> I.e. it's a "git commit --squash" on steroids, which tries to find what
> commit to amend things into.
But this is an even bigger step up from what I was suggesting. I blame
my own lack of imagination for not even considering this possibility.
To me, what really sells the feature is the "history of lines" approach
cited in
https://gregoryszorc.com/blog/2018/11/05/absorbing-commit-changes-in-mercurial-4.8/:
The automatic rewriting logic of hg absorb is implemented by following
the history of lines. This is fundamentally different from the approach
taken by hg histedit or git rebase, which tend to rely on merge
strategies based on the 3-way merge to derive a new version of a file
given multiple input versions.
Traditional 3-way merge is extremely frustrating when you find yourself
touching the same lines over and over in a rebase, and I think "history
of lines" maps quite cleanly to how humans think of lines. However I'm
not sure if Git has any machinery for doing this.
next prev parent reply other threads:[~2021-09-29 16:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CAENgTz2DoStQEqoKYKa-qMcyaez64u55mnv1HHOzDm392fuEqQ@mail.gmail.com>
2021-09-24 16:04 ` Feature Request: `git commit --amend-to` Aidan Gallagher
2021-09-24 17:15 ` Carlo Arenas
2021-09-28 16:52 ` Glen Choo
2021-09-28 19:54 ` Ævar Arnfjörð Bjarmason
2021-09-29 16:55 ` Glen Choo [this message]
2021-09-30 8:05 ` Fabian Stelzer
2021-09-30 13:56 ` Phillip Wood
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=kl6lwnmzpbhq.fsf@chooglen-macbookpro.roam.corp.google.com \
--to=chooglen@google.com \
--cc=aidgal2@gmail.com \
--cc=avarab@gmail.com \
--cc=carenas@gmail.com \
--cc=git@vger.kernel.org \
/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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).