all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Tassilo Horn <tsdh@gnu.org>
To: Stefan Kangas <stefan@marxist.se>
Cc: Mathias Dahl <mathias.dahl@gmail.com>,
	emacs-devel@gnu.org, Yuri Khan <yuri.v.khan@gmail.com>
Subject: Re: Renaming files with git not all that bad?
Date: Fri, 10 Dec 2021 13:28:01 +0100	[thread overview]
Message-ID: <877dcceiko.fsf@gnu.org> (raw)
In-Reply-To: <CADwFkmnME3xrzyPwFyCHWBE6n3LyvTYwCpJ4LE3_ZedKyb2OzQ@mail.gmail.com>

Stefan Kangas <stefan@marxist.se> writes:

Hi Stefan,

>>> Couldn't the same effect be achieved in a simpler manner by copying the
>>> original file N times in one commit and then stripping the copies and
>>> original down to what they should eventually become?  (AFAIK, git has no
>>> problem detecting literal copies.)
>>
>> Indeed, I tried this and it works for me, as long as the first commit
>> is only literal copies. Maybe Git’s ancestry detection through copies
>> was not as advanced in the unspecified times when Raymond invented
>> his technique.
>
> I'm having no luck with this.
>
> Could you describe the exact steps you took?

I've just tried:

  git checkout -b copy-test
  cp lisp/image-dired.el lisp/image-dired-1.el
  cp lisp/image-dired.el lisp/image-dired-2.el
  git add lisp/image-dired-*.el
  git commit -m "copied image-dired.el twice"

Thereafter,

  git log -- lisp/image-dired-1.el lisp/image-dired-2.el

show only my "copied image-dired.el twice" commit unless I also specify
--follow.

I've also tried the "multiple renames on different branches followed by
an octopus merge" strategy but the result looks identical.

Oh, no, not quite.  It's the same wrt. "git log" but the difference is
that with the copy strategy, "git blame" will show you as having touched
all lines during the copy (which is sensible somehow) whereas they keep
the original previous last authors with the renaming strategy.

One problem with the renaming strategy is that the original file is
inevitably renamed after the merge, or at least you have to have one
branch in the merge where it is modified in the hope to get a conflict
so that you can keep all renamed versions and the original.  However,
since you want to move all image-dired related files into their own
directory, that's no problem whatsoever.

Bye,
Tassilo



  reply	other threads:[~2021-12-10 12:28 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-08 21:50 Splitting image-dired.el into smaller files Stefan Kangas
2021-12-08 22:24 ` Stefan Monnier
2021-12-08 22:54   ` Stefan Kangas
2021-12-09  1:05 ` Lars Ingebrigtsen
2021-12-09  7:28   ` Eli Zaretskii
2021-12-09 13:58     ` Stefan Kangas
2021-12-09 14:03       ` Eli Zaretskii
2022-01-27 21:26         ` Mathias Dahl
2021-12-09  3:20 ` Renaming files with git not all that bad? Stefan Kangas
2021-12-09  3:56   ` Phil Sainty
2021-12-09  8:43     ` Andreas Schwab
2021-12-09  9:00       ` tomas
2021-12-09  9:24     ` Eli Zaretskii
2021-12-09 13:57       ` Stefan Kangas
2021-12-09  5:40   ` Yuri Khan
2021-12-09  6:02     ` Tassilo Horn
2021-12-09  6:35       ` Yuri Khan
2021-12-09  7:04         ` Tassilo Horn
2021-12-09  7:28           ` Yuri Khan
2021-12-09 22:03         ` Stefan Kangas
2021-12-10 12:28           ` Tassilo Horn [this message]
2021-12-11 12:11           ` Yuri Khan
2021-12-09 14:55     ` Stefan Kangas
2021-12-09 15:50       ` tomas
2021-12-09 22:18         ` Stefan Kangas
2021-12-10  8:17           ` tomas
2022-08-21  0:56 ` Splitting image-dired.el into smaller files Stefan Kangas
2022-08-21  5:50   ` Eli Zaretskii
2022-08-21 14:32     ` Stefan Kangas
2022-08-21 14:35       ` Eli Zaretskii
2022-08-21 15:11         ` Stefan Kangas
2022-08-21 15:16           ` Lars Ingebrigtsen
2022-08-21 15:20           ` Eli Zaretskii
2022-08-21 15:22             ` Lars Ingebrigtsen
2022-08-21 17:02             ` Stefan Monnier
2022-08-23 19:02             ` Stefan Kangas
2022-08-23 19:09               ` Eli Zaretskii
2022-08-23 19:53                 ` Stefan Kangas
2022-08-21 16:20   ` Juri Linkov
2022-08-22 13:08     ` Stefan Kangas
2022-08-22 15:18       ` Eli Zaretskii

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=877dcceiko.fsf@gnu.org \
    --to=tsdh@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=mathias.dahl@gmail.com \
    --cc=stefan@marxist.se \
    --cc=yuri.v.khan@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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

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.