git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Aidan Van Dyk <aidan@highrise.ca>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Andy Parkins <andyparkins@gmail.com>,
	git@vger.kernel.org,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Jeff King <peff@peff.net>,
	"Shawn O. Pearce" <spearce@spearce.org>,
	govindsalinas <govindsalinas@yahoo.com>,
	gitster@pobox.com
Subject: Re: [PATCH] diffcore-rename: favour identical basenames
Date: Fri, 22 Jun 2007 13:51:17 -0400	[thread overview]
Message-ID: <20070622175117.GA16921@yugib.highrise.ca> (raw)
In-Reply-To: <Pine.LNX.4.64.0706221626450.4059@racer.site>

[-- Attachment #1: Type: text/plain, Size: 1984 bytes --]

* Johannes Schindelin <Johannes.Schindelin@gmx.de> [070622 13:34]:
> Hi,
> 
> On Fri, 22 Jun 2007, Andy Parkins wrote:
> 
> > What if two files with different filenames and content converge at some 
> > point in history, then diverge again?  If git is tracking renames merely 
> > by content and picks the wrong one, then the history of fileA suddenly 
> > becomes the history of fileB.
> 
> This is becoming highly ethereal. Like "I could imagine that some day in 
> future, some person could devise a device, that might allow you to do 
> something that I can not explain, because I have not even thought of it".
> 
> IOW show me a reasonable example, and we'll talk business.

The one time the "content-only" rename tracking bit me was the
after a merge, resulting in conflicts that were un-nessesary:

-*-*-*-*-A-B-C-D
	  \
	   *-E-*

At A, there were 2 files:
	dir1/foo
	dir2/foo
They were template files that happened to be the same in 2 themes.

In E, "foo" was renamed to "foo-bar" in all the template directories.
Git detected this not as 2 renames, but as:
	dir1/foo-bar renamed from dir1/foo
	dir2/foo-bar copied from dir1/foo
	dir2/foo deleted

Meanwhile, work was happening in B, C, and D, changing foo in both
templates identically.

When the branch with E was merged back into ABCD, there was a merge
conflict with dir2/foo being deleted in one branch, and editit in the
other.

In this case, the simple "basename" comparison wouldn't have even been
enough.  

But the merge was easy enough (because no edits were made in the E
branch to those files, just the renames) that I could resolve it easily.

I don't know if preventing this easy-to-fix merge conflict is worth the
necessary "likeness of names" necessary to avoid it...

a.

-- 
Aidan Van Dyk                                             Create like a god,
aidan@highrise.ca                                       command like a king,
http://www.highrise.ca/                                   work like a slave.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2007-06-22 17:51 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-21  3:06 Basename matching during rename/copy detection Shawn O. Pearce
2007-06-21  3:13 ` Junio C Hamano
2007-06-21  8:00   ` Andy Parkins
2007-06-21  8:07     ` Junio C Hamano
2007-06-21  9:50       ` Andy Parkins
2007-06-21 11:52         ` Johannes Schindelin
2007-06-21 12:44           ` Andy Parkins
2007-06-21 12:53             ` Matthieu Moy
2007-06-21 13:10               ` Jeff King
2007-06-21 13:18               ` Johannes Schindelin
2007-06-21 13:25                 ` Matthieu Moy
2007-06-21 13:52                   ` Johannes Schindelin
2007-06-21 15:37                     ` Steven Grimm
2007-06-21 15:53                       ` Johannes Schindelin
2007-06-21 16:57                         ` Steven Grimm
2007-06-21 13:22             ` Johannes Schindelin
2007-06-21  3:42 ` Linus Torvalds
2007-06-21 11:52   ` [PATCH] diffcore-rename: favour identical basenames Johannes Schindelin
2007-06-21 13:19     ` Jeff King
2007-06-21 14:03       ` Johannes Schindelin
2007-06-21 16:20       ` Linus Torvalds
2007-06-21 17:52         ` Junio C Hamano
2007-06-21 18:24           ` Linus Torvalds
2007-06-22 15:19         ` Andy Parkins
2007-06-22 15:28           ` Johannes Schindelin
2007-06-22 17:51             ` Aidan Van Dyk [this message]
2007-06-22  1:14       ` Johannes Schindelin
2007-06-22  5:41         ` Jeff King
2007-06-22 10:22           ` Johannes Schindelin
2007-06-22  7:17         ` Johannes Sixt
2007-06-22 10:39           ` Johannes Schindelin
2007-06-22 10:52             ` 100% (was: [PATCH] diffcore-rename: favour identical basenames) David Kastrup
2007-06-22 12:49               ` Johannes Schindelin
     [not found]                 ` <86abusi1fw.fsf@lola.quinscape.zz>
2007-06-23  1:31                   ` 100% Johannes Schindelin
2007-06-23 10:18                     ` 100% René Scharfe
2007-06-23 10:56                       ` 100% Johannes Schindelin
2007-06-23 11:41                         ` 100% René Scharfe
2007-06-23 12:00                           ` 100% Johannes Schindelin
2007-06-23 12:11                             ` 100% René Scharfe
2007-06-23 12:21                               ` 100% Johannes Schindelin
2007-06-24 22:23                                 ` 100% René Scharfe
2007-06-23 19:33                         ` 100% Junio C Hamano
2007-06-23 20:41                           ` 100% Johannes Schindelin
2007-06-23  5:44     ` [PATCH] diffcore-rename: favour identical basenames Junio C Hamano

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=20070622175117.GA16921@yugib.highrise.ca \
    --to=aidan@highrise.ca \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=andyparkins@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=govindsalinas@yahoo.com \
    --cc=peff@peff.net \
    --cc=spearce@spearce.org \
    --cc=torvalds@linux-foundation.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.
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).