From: Junio C Hamano <gitster@pobox.com>
To: Chris Torek <chris.torek@gmail.com>
Cc: Frieder Hannenheim <mail@fhannenheim.net>, git@vger.kernel.org
Subject: Re: git mv after the fact
Date: Thu, 28 May 2026 08:22:22 +0900 [thread overview]
Message-ID: <877bootp3l.fsf@gitster.g> (raw)
In-Reply-To: CAPx1GvetxY1T7cuFN_xe51EURr-ED2BqW3E82jj90ko3PSYSyg@mail.gmail.com
Chris Torek <chris.torek@gmail.com> writes:
>> Chris Torek <chris.torek@gmail.com> writes:
>>> A flag for "git mv" would be convenient (and slightly moreefficient ...
>>
>
> On Tue, May 26, 2026 at 8:09 PM Junio C Hamano <gitster@pobox.com> wrote:
>> May be convenient, but I do not get the "efficient" part.
>
> A normal `git mv` renames the index entry and the file in the working
> tree without running `git add` on the *contents*, so there's no new hash
> computation. Presumably a `git mv --after foo bar` would do the same: verify
> that there is no existing `bar` in the index, that there is an existing `foo` in
> the index, and that there is no `foo` but there is a `bar` in the working tree,
> and then it would rename (add-and-remove, really, because of sorting)
> the index entry, without scanning the working tree contents.
>
> In other words, we skip reading the 3 terabyte file, or whatever.
Yup, that matches what I wrote. We do not rehash and we only write
the index just once.
> Anyway, comparing to `git rm --cached`:
>
>> I think the requested "feature" is not all that outrageous. It
>> would be a similar value as a morning-after correction measure for
>> "oops, I moved the file in the filesystem without telling Git".
>
> I agree, but I also don't see it as valuable enough to bother
> writing a proper implementation.
Yup, I was merely agreeing with your "convenient" comment. I do not
think it is such a high-priority item for any active developers
among us to drop something they are doing and writing it instead.
next prev parent reply other threads:[~2026-05-27 23:22 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-26 12:57 git mv after the fact Frieder Hannenheim
2026-05-26 16:40 ` Chris Torek
2026-05-26 16:50 ` Frieder Hannenheim
2026-05-26 21:29 ` Ben Knoble
2026-05-27 3:09 ` Junio C Hamano
2026-05-27 3:19 ` Chris Torek
2026-05-27 23:22 ` Junio C Hamano [this message]
2026-05-28 14:28 ` Ben Knoble
2026-05-28 20:36 ` Junio C Hamano
2026-05-27 3:27 ` Tim Tassonis
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=877bootp3l.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=chris.torek@gmail.com \
--cc=git@vger.kernel.org \
--cc=mail@fhannenheim.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.