From: "Aaron Gray" <angray@beeb.net>
To: "Steven Grimm" <koreth@midwinter.com>
Cc: <git@vger.kernel.org>
Subject: Re: renaming question
Date: Mon, 20 Aug 2007 02:30:54 +0100 [thread overview]
Message-ID: <045a01c7e2c9$c1ccd940$0600a8c0@ze4427wm> (raw)
In-Reply-To: 46C8E421.8000408@midwinter.com
> Florian Weimer wrote:
>> Or, for more control about what gets put into patch, git-diff -M.
>> (As I wrote, most of the relevant commands accept an -M switch.)
>>
>
> The key point, and where the original writer is probably confused, is that
> in git, renames are inferred from information in the repository.
Okay.
> You do not ever need to explicitly tell git about a rename. There is a
> "git mv" command which is simply a convenience command; it is equivalent
> to
>
> mv a b
> git add b
> git rm a
That makes things alot clearer, thanks.
> When you query history with the -M flag or do merges, git will notice that
> the contents of the new file "b" are very similar to the old file "a" and
> will treat it as a rename. (The contents don't have to match exactly; they
> just have to be substantially similar.)
>
> This is not a perfect system -- there are known cases where it fails --
> but it has major advantages too. For example, you can unpack a third-party
> tarfile into a git repository, commit it, then unpack the next version's
> tarfile and commit that. Since you are using tar, nothing will have told
> git about files that the upstream people renamed in between versions, but
> git will detect them after the fact just as if you'd done "git mv".
Thats great, exactly what I want to do.
> Not only that, git can detect movement of content *within* files. Try
> moving some code from one file to another and running "git blame -M -C -C"
> on the target file; you will see git tell you that the content originally
> came from the first file. Pretty sweet. (It's not the default since it
> makes "git blame" slower.)
Okay. The documentation, or what I have read does not really explain this
properly or concisely.
Thanks alot Steve.
Aaron
next prev parent reply other threads:[~2007-08-20 1:31 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-19 17:58 renaming question Aaron Gray
2007-08-19 18:16 ` Florian Weimer
2007-08-19 18:32 ` Aaron Gray
2007-08-19 19:05 ` David Kastrup
2007-08-19 19:17 ` Aaron Gray
2007-08-19 19:49 ` David Kastrup
2007-08-19 20:37 ` Florian Weimer
2007-08-20 0:45 ` Steven Grimm
2007-08-20 1:30 ` Aaron Gray [this message]
2007-08-20 1:56 ` Shawn O. Pearce
2007-08-20 2:11 ` VMiklos
2007-08-20 2:40 ` Aaron Gray
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='045a01c7e2c9$c1ccd940$0600a8c0@ze4427wm' \
--to=angray@beeb.net \
--cc=git@vger.kernel.org \
--cc=koreth@midwinter.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).