RE: Trouble merging renamed but identical files - CONFLICT (rename/rename)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Phil Hord [mailto:phil.hord@xxxxxxxxx] 
> Sent: Friday, June 27, 2014 17:46
> To: Jason Pyeron
> Cc: git
> Subject: Re: Trouble merging renamed but identical files - 
> CONFLICT (rename/rename)
> 
> On Fri, Jun 27, 2014 at 4:47 PM, Jason Pyeron 
> <jpyeron@xxxxxxxx> wrote:
> > There are two identical files from the same original 
> parent, but both were
> > renamed in their own branches. One branch moved the file to 
> a new folder, the
> > other renamed the file in the same folder.
> 
> You have not stated what you think the issue is.  You have only stated
> the setup.

Thanks, I could have said it better. 

I think that git should understand that I have moved a file in path only (the
tree object containing the file's entry change, but not the entry it self) and
that the branch from which I want to merge back (with common ancestry) has
renamed the file in the same path ( the tree object is unchanged, but the entry
is) such that the object is re-parented and renamed in that path.

How can this be done in git or if it cannot what are the chalenges to patching
git for this issue.

git cat-file -p b60070f4d0879e277f44d174a163bbb292325fea # tree
d8df83fc6714aab1fc1df061fcb03410e1dab1e5
git cat-file -p d8df83fc6714aab1fc1df061fcb03410e1dab1e5 # 040000 tree
68bb8a223284e0f5057421217a5965128bf1d51a    src
git cat-file -p 68bb8a223284e0f5057421217a5965128bf1d51a # 100644 blob
25c7d3b12bced67046359ba1e7945f82a2640147    TrueCrypt.sln

git cat-file -p a0c84ff28f356bcb8b872a9c65a2e9bff97b3f68 # tree
7f82a6c46f19931c3c40d44dc196cbfab7feaa72
git cat-file -p 7f82a6c46f19931c3c40d44dc196cbfab7feaa72 # 100644 blob
25c7d3b12bced67046359ba1e7945f82a2640147    CipherShed.sln

> 
> 
> I suppose you want Git to merge without conflict in the end, though,
> based on your script.  Is that right?
> 
> 
> > Steps to reproduce the issue:
> > git init
> > git fetch https://github.com/pdinc-oss/CipherShed.git
> > git fetch https://github.com/srguglielmo/CipherShed.git
> > git checkout -b test b60070f4d0879e277f44d174a163bbb292325fea
> > git merge a0c84ff28f356bcb8b872a9c65a2e9bff97b3f68
> >
> > CONFLICT (rename/rename): Rename 
> "TrueCrypt.sln"->"src/TrueCrypt.sln" in branch
> > "HEAD" rename "TrueCrypt.sln"->"CipherShed.sln" in
> > "a0c84ff28f356bcb8b872a9c65a2e9bff97b3f68"
> 
> Git seems to be doing the correct thing here.
> 
> 
> > git reset --hard b60070f4d0879e277f44d174a163bbb292325fea
> > git mv src/TrueCrypt.sln src/CipherShed.sln
> > git commit -m 'renamed to be congruent with a0c84ff'
> > git merge a0c84ff28f356bcb8b872a9c65a2e9bff97b3f68
> >
> > Sill get a CONFLICT (rename/rename): Rename
> > "TrueCrypt.sln"->"src/CipherShed.sln" in branch "HEAD" rename
> > "TrueCrypt.sln"->"CipherShed.sln" in 
> "a0c84ff28f356bcb8b872a9c65a2e9bff97b3f68"
> 
> Git seems to be doing the correct thing here, too.
> 
> > I will have many more to come, any suggestions?
> 
> Maybe you meant to move the renamed file to the same folder where it
> exists in the merge target.  I do not get a conflict when I do that.

Are you saying I should git mv src/TrueCrypt.sln CipherShed.sln ?

Then it will be in the wrong path as intended.

> 
>    git reset --hard b60070f4d0879e277f44d174a163bbb292325fea
>    git mv src/TrueCrypt.sln CipherShed.sln
>    git commit -m 'renamed to be congruent with a0c84ff'
>    git merge a0c84ff28f356bcb8b872a9c65a2e9bff97b3f68
> 
> No conflict (on that file, anyway).

Agreed, but not the desired end state.

--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-                                                               -
- Jason Pyeron                      PD Inc. http://www.pdinc.us -
- Principal Consultant              10 West 24th Street #100    -
- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -
-                                                               -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This message is copyright PD Inc, subject to license 20080407P00.

 

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]