git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH RFC] Test for apparent regression of merging renamed files

From
Ciaran <ciaranj@gmail.com>
Date
May 3, 2011, 19:15 UTC
Message-ID
<BANLkTin6u8e4-x99JgN-D7FFJbO7pXVp-Q@mail.gmail.com>
In-Reply-To
<BANLkTimcRbuYzSp+MM-vsvxoWhAS8Jvo8Q@mail.gmail.com>
On Mon, May 2, 2011 at 8:04 PM, Ciaran <ciaranj@gmail.com> wrote:
Show 10 quoted lines
> Provides a test to cover a case that appears to have been regressed out by:
>
>  b2c8c0a762745768e8fb249949801c1aed8f7c1d
>
> At this point no tags contain the above commit, but 'master' does.  I'm unsure
> what is causing the issue, but can see discussion about this fix here:
>
> http://git.661346.n2.nabble.com/BUG-merge-recursive-triggered-quot-BUG-quot-td6179353.html
>
> Providing a patch to demonstrate the issue and spark discussion.

Hmm I think with hindsight I should've been clearer ;) The current master branch appears to contain a break in it, seemingly introduced by commit b2c8c0a . The rename & merge situation given in the associated test results in output from git status such as :

$ git status # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # deleted: formatting.txt # # Unmerged paths: # (use "git reset HEAD <file>..." to unstage) # (use "git add/rm <file>..." as appropriate to mark resolution) # # both modified: formatting_renamed.txt #

Whereas prior to b2c8c0a762745768e8fb249949801c1aed8f7c1d (for example @ d98a509ec3e9ff22bb642f778900691d0c715ba9 ) the status was:

# On branch master nothing to commit (working directory clean)

And git log --oneline -1 says :
e03ad75 Merge branch 'rename_branch'

The original behaviour (successful merge) seems 'better' than the current behaviour 'failed merge, 'erroneous' both modified flag' ... am I mis-reading this, is this a new non-supported edge case ?

Cheers!
 -cJ.
Show 64 quoted lines
> ---
> Whilst working up a patch for my 'whitespace ignorant rename
> detection' ( http://git.661346.n2.nabble.com/PATCH-RFC-Rename-detection-and-whitespace-td6288524.html
> ) I was unable to get my tests working, turns out that something that
> used to work for me, no longer does in master's HEAD.
>
> I don't really understand the fault so I'm throwing it to the list in
> the hope that someone brighter than me can take it on (I've
> CC'd the signoff-s to that end! :) Sorry!
>
>  t/t9801-merge-rename.sh |   41 +++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 41 insertions(+), 0 deletions(-)
>  create mode 100755 t/t9801-merge-rename.sh
>
> diff --git a/t/t9801-merge-rename.sh b/t/t9801-merge-rename.sh
> new file mode 100755
> index 0000000..363911f
> --- /dev/null
> +++ b/t/t9801-merge-rename.sh
> @@ -0,0 +1,41 @@
> +#!/bin/sh
> +
> +test_description='Test for rename merge regression'
> +
> +. ./test-lib.sh
> +
> +write_out_files() {
> +cat > noformatting.txt << EOF
> +if(true){
> +// Meaningless
> +}
> +EOF
> +
> +cat > formatting.txt << EOF
> +       if ( true ) {
> +         // Meaningless
> +       }
> +EOF
> +}
> +
> +# Test the case where a rename happens in one branch and
> +# a whitespace change occurs in a different branch.  The rename
> +# change should apply to the whitespace modified file
> +test_expect_success setup '
> +       write_out_files &&
> +       git add formatting.txt &&
> +
> +       test_tick &&
> +       git commit -m Initial &&
> +       git checkout -b rename_branch &&
> +       git mv formatting.txt formatting_renamed.txt &&
> +       git commit -m Rename &&
> +       git checkout master &&
> +       rm formatting.txt &&
> +       mv noformatting.txt formatting.txt &&
> +       git commit -a -m Reformat
> +'
> +test_expect_success 'merge' '
> +       git merge rename_branch
> +'
> +test_done
> --
> 1.7.4.1
>
Previous: CiaranNext: Elijah Newren
Message 2 of 3 in “Test for apparent regression of merging renamed files”
  1. Test for apparent regression of merging renamed filesCiaran, May 2, 2011
  2. CiaranMay 3, 2011
  3. Elijah NewrenMay 4, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.