Re: git apply -3 doesn't work

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

 



Hi Konstantin

On 08/05/2020 11:35, Konstantin Kharlamov wrote:
As description says. To check that the 3-way merge should actually work subsitute `git apply -3` with `git am -3` in the following steps. This way it works.

# Steps to reproduce

     $ git init
     Initialized empty Git repository in /tmp/foo/.git/
    $ echo hello > file1 && git add file1 && git commit -m "initial commit"
     [master (root-commit) 8334093] initial commit
      1 file changed, 1 insertion(+)
      create mode 100644 file1
     $ git checkout -b mybranch
     Switched to a new branch 'mybranch'
    $ echo bye > file1 && git add file1 && git commit -m "change file1 text"
     [mybranch 1807900] change file1 text
      1 file changed, 1 insertion(+), 1 deletion(-)
     $ git format-patch -1 --stdout > 1.patch
     $ git checkout master
     Switched to branch 'master'
     $ mv file1 file2
    $ git add -u && git add file2 && git commit -m "renamed file1 to file2"
     $ git apply -3 1.patch
     error: file1: does not exist in index

Judging from the error message it never gets as far as trying the 3 way merge because it first tries to apply the patch which modifies file1 but file1 does not exist in the index. If it were to try a 3 way merge in this case then on one side of the merge you've modified file1 and on the other side it has been deleted so there would be a merge conflict. The reason 'git am' succeeds is that the rename detection kicks in and so it applies the patch to file2 rather than file1

Best Wishes

Phillip


## Expected

Git apply successfully returns

## Actual

It prints

     error: file1: does not exist in index

# Versions

git 2.26.2



[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]

  Powered by Linux