Bug report: git status does not report unmerged entries with copies

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

Bug report: git status does not report unmerged entries with copies

From: Mark Lodato <hidden>
Date: 2016-06-15 22:50:59

Commit 4d4d572, "status: show worktree status of conflicted paths
separately" introduced the following bug:  If one tries to merge two
branches with a conflict, where the conflicting file was also copied
in one of the branches, "git status" (but not "git status -sb" or
git-gui) fails to report the unmerged status.  You can use the below
test file to see the error.  A similar test should probably be
integrated into one of the existing git-status test files, though you
may need to get rid of the "sed -i" command.

$ git status
# On branch master
# Changes to be committed:
#
#       renamed:    file -> copy
#
$ git status -sb
## master
R  file -> copy
 U file

In the above, "git status" should have reported "file" being in an
unmerged state.  It probably should also mark "copy" as a copy, not a
rename.

-------- 8< --------
#!/bin/sh
#
# Copyright (c) 2011 Mark Lodato
#

test_description='git status on merge with copy'

. ./test-lib.sh

test_expect_success 'setup' '
        echo first > file &&
        echo second >> file &&
        echo third >> file &&
        echo fourth >> file &&
        git add file &&
        git commit -m initial &&
        git checkout -b branch &&
        cp file copy &&
        git add copy &&
        git commit -m copy &&
        sed -i -e "s/second/fifth/" file &&
        git add file &&
        git commit -m fifth &&
        git checkout master &&
        sed -i -e "s/second/sixth/" file &&
        git add file &&
        git commit -m sixth
'

test_expect_success 'merge' '
        ! git merge branch
'

test_expect_success 'status' '
        git status | grep unmerged
'

test_done

Re: Bug report: git status does not report unmerged entries with copies

From: Martin von Zweigbergk <hidden>
Date: 2016-06-15 22:51:00

On Wed, 6 Apr 2011, Mark Lodato wrote:
Commit 4d4d572, "status: show worktree status of conflicted paths
separately" introduced the following bug:  If one tries to merge two
branches with a conflict, where the conflicting file was also copied
in one of the branches, "git status" (but not "git status -sb" or
git-gui) fails to report the unmerged status.  You can use the below
test file to see the error.  A similar test should probably be
integrated into one of the existing git-status test files, though you
may need to get rid of the "sed -i" command.

$ git status
# On branch master
# Changes to be committed:
#
#       renamed:    file -> copy
#
$ git status -sb
## master
R  file -> copy
 U file

In the above, "git status" should have reported "file" being in an
unmerged state.  It probably should also mark "copy" as a copy, not a
rename.
I sent a patch for this not so long ago [1]. It is currently in "next"
as commit d7c9bf2. I think Junio said the plan is to release it in
1.7.5.


/Martin

 [1] http://thread.gmane.org/gmane.comp.version-control.git/169289/focus=169887

Re: Bug report: git status does not report unmerged entries with copies

From: Mark Lodato <hidden>
Date: 2016-06-15 22:51:00

On Thu, Apr 7, 2011 at 9:53 AM, Martin von Zweigbergk
[off-list ref] wrote:
On Wed, 6 Apr 2011, Mark Lodato wrote:
quoted
Commit 4d4d572, "status: show worktree status of conflicted paths
separately" introduced the following bug:  If one tries to merge two
branches with a conflict, where the conflicting file was also copied
in one of the branches, "git status" (but not "git status -sb" or
git-gui) fails to report the unmerged status.
I sent a patch for this not so long ago [1]. It is currently in "next"
as commit d7c9bf2. I think Junio said the plan is to release it in
1.7.5.

 [1] http://thread.gmane.org/gmane.comp.version-control.git/169289/focus=169887
Ah yes, sorry.  Your commit does fix the problem.  My test script
reports a failure, but it is only because my grep command was
insufficient to properly test.  (At the very least, I should have
check case insensitively.)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help