From: Adam Dinwoodie <adam@dinwoodie.org>
To: Elijah Newren <newren@gmail.com>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [PATCH v3 00/33] Add directory rename detection to git
Date: Thu, 23 Nov 2017 11:52:46 +0000 [thread overview]
Message-ID: <20171123115246.GV20681@dinwoodie.org> (raw)
In-Reply-To: <20171121080059.32304-1-newren@gmail.com>
On Tuesday 21 November 2017 at 12:00 am -0800, Elijah Newren wrote:
> <snip>
>
> merge-recursive.c | 1243 +++++++++++-
> merge-recursive.h | 17 +
> t/t3501-revert-cherry-pick.sh | 5 +-
> t/t6043-merge-rename-directories.sh | 3821 +++++++++++++++++++++++++++++++++++
> t/t7607-merge-overwrite.sh | 7 +-
> unpack-trees.c | 4 +-
> unpack-trees.h | 4 +
> 7 files changed, 4985 insertions(+), 116 deletions(-)
> create mode 100755 t/t6043-merge-rename-directories.sh
The new t6043.44 introduced in this branch is failing on my Cygwin
system. I can't immeditely see what's causing the failure, but I've
copied the relevant verbose + shell tracing output below in the hope it
makes more sense to you:
expecting success:
(
cd 7b &&
git checkout A^0 &&
test_must_fail git merge -s recursive B^0 >out &&
test_i18ngrep "CONFLICT (rename/rename)" out &&
test 4 -eq $(git ls-files -s | wc -l) &&
test 2 -eq $(git ls-files -u | wc -l) &&
test 3 -eq $(git ls-files -o | wc -l) &&
git rev-parse >actual \
:0:y/b :0:y/c :2:y/d :3:y/d &&
git rev-parse >expect \
O:z/b O:z/c O:w/d O:x/d &&
test_cmp expect actual &&
test ! -f y/d &&
test -f y/d~HEAD &&
test -f y/d~B^0 &&
git hash-object >actual \
y/d~HEAD y/d~B^0 &&
git rev-parse >expect \
O:w/d O:x/d &&
test_cmp expect actual
)
++ cd 7b
++ git checkout 'A^0'
Note: checking out 'A^0'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 0808992 A
++ test_must_fail git merge -s recursive 'B^0'
++ case "$1" in
++ _test_ok=
++ git merge -s recursive 'B^0'
++ exit_code=1
++ test 1 -eq 0
++ test_match_signal 13 1
++ test 1 = 141
++ test 1 = 269
++ return 1
++ test 1 -gt 129
++ test 1 -eq 127
++ test 1 -eq 126
++ return 0
++ test_i18ngrep 'CONFLICT (rename/rename)' out
++ test -n ''
++ test 'x!' = 'xCONFLICT (rename/rename)'
++ grep 'CONFLICT (rename/rename)' out
CONFLICT (rename/rename): Rename w/d->y/d in HEAD. Rename x/d->y/d in B^0
+++ git ls-files -s
+++ wc -l
++ test 4 -eq 4
+++ git ls-files -u
+++ wc -l
++ test 2 -eq 2
+++ git ls-files -o
+++ wc -l
++ test 3 -eq 3
++ git rev-parse :0:y/b :0:y/c :2:y/d :3:y/d
++ git rev-parse O:z/b O:z/c O:w/d O:x/d
++ test_cmp expect actual
++ diff -u expect actual
++ test '!' -f y/d
+ test_eval_ret_=1
+ want_trace
+ test t = t
+ test t = t
+ set +x
error: last command exited with $?=1
not ok 44 - 7b-check: rename/rename(2to1), but only due to transitive rename
next prev parent reply other threads:[~2017-11-23 11:52 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-21 8:00 [PATCH v3 00/33] Add directory rename detection to git Elijah Newren
2017-11-21 8:00 ` [PATCH v3 01/33] Tighten and correct a few testcases for merging and cherry-picking Elijah Newren
2017-11-21 8:00 ` [PATCH v3 02/33] merge-recursive: fix logic ordering issue Elijah Newren
2017-11-21 8:00 ` [PATCH v3 03/33] merge-recursive: add explanation for src_entry and dst_entry Elijah Newren
2017-11-21 8:00 ` [PATCH v3 04/33] directory rename detection: basic testcases Elijah Newren
2017-11-21 8:00 ` [PATCH v3 05/33] directory rename detection: directory splitting testcases Elijah Newren
2017-11-21 8:00 ` [PATCH v3 06/33] directory rename detection: testcases to avoid taking detection too far Elijah Newren
2017-11-21 8:00 ` [PATCH v3 07/33] directory rename detection: partially renamed directory testcase/discussion Elijah Newren
2017-11-21 8:00 ` [PATCH v3 08/33] directory rename detection: files/directories in the way of some renames Elijah Newren
2017-11-21 8:00 ` [PATCH v3 09/33] directory rename detection: testcases checking which side did the rename Elijah Newren
2017-11-21 8:00 ` [PATCH v3 10/33] directory rename detection: more involved edge/corner testcases Elijah Newren
2017-11-21 8:00 ` [PATCH v3 11/33] directory rename detection: testcases exploring possibly suboptimal merges Elijah Newren
2017-11-22 18:29 ` Stefan Beller
2017-11-21 8:00 ` [PATCH v3 12/33] directory rename detection: miscellaneous testcases to complete coverage Elijah Newren
2017-11-21 8:00 ` [PATCH v3 13/33] directory rename detection: tests for handling overwriting untracked files Elijah Newren
2017-11-21 8:00 ` [PATCH v3 14/33] directory rename detection: tests for handling overwriting dirty files Elijah Newren
2017-11-21 8:00 ` [PATCH v3 15/33] merge-recursive: move the get_renames() function Elijah Newren
2017-11-21 8:00 ` [PATCH v3 16/33] merge-recursive: introduce new functions to handle rename logic Elijah Newren
2017-11-21 8:00 ` [PATCH v3 17/33] merge-recursive: fix leaks of allocated renames and diff_filepairs Elijah Newren
2017-11-21 8:00 ` [PATCH v3 18/33] merge-recursive: make !o->detect_rename codepath more obvious Elijah Newren
2017-11-21 8:00 ` [PATCH v3 19/33] merge-recursive: split out code for determining diff_filepairs Elijah Newren
2017-11-21 8:00 ` [PATCH v3 20/33] merge-recursive: add a new hashmap for storing directory renames Elijah Newren
2017-11-21 8:00 ` [PATCH v3 21/33] merge-recursive: add get_directory_renames() Elijah Newren
2017-11-26 0:52 ` Johannes Schindelin
2017-11-26 1:45 ` Elijah Newren
2017-11-21 8:00 ` [PATCH v3 22/33] merge-recursive: check for directory level conflicts Elijah Newren
2017-11-22 18:36 ` Stefan Beller
2017-11-21 8:00 ` [PATCH v3 23/33] merge-recursive: add a new hashmap for storing file collisions Elijah Newren
2017-11-21 8:00 ` [PATCH v3 24/33] merge-recursive: add computation of collisions due to dir rename & merging Elijah Newren
2017-11-21 8:00 ` [PATCH v3 25/33] merge-recursive: check for file level conflicts then get new name Elijah Newren
2017-11-22 18:56 ` Stefan Beller
2017-11-21 8:00 ` [PATCH v3 26/33] merge-recursive: when comparing files, don't include trees Elijah Newren
2017-11-21 8:00 ` [PATCH v3 27/33] merge-recursive: apply necessary modifications for directory renames Elijah Newren
2017-11-21 8:00 ` [PATCH v3 28/33] merge-recursive: avoid clobbering untracked files with " Elijah Newren
2017-11-21 8:00 ` [PATCH v3 29/33] merge-recursive: fix overwriting dirty files involved in renames Elijah Newren
2017-11-21 8:00 ` [PATCH v3 30/33] merge-recursive: fix remaining directory rename + dirty overwrite cases Elijah Newren
2017-11-21 8:00 ` [PATCH v3 31/33] directory rename detection: new testcases showcasing a pair of bugs Elijah Newren
2017-11-21 8:00 ` [PATCH v3 32/33] merge-recursive: avoid spurious rename/rename conflict from dir renames Elijah Newren
2017-11-21 8:00 ` [PATCH v3 33/33] merge-recursive: ensure we write updates for directory-renamed file Elijah Newren
2017-11-22 0:42 ` [PATCH v3 00/33] Add directory rename detection to git Stefan Beller
2017-11-22 1:12 ` Elijah Newren
2017-11-22 2:44 ` Junio C Hamano
2017-11-22 19:24 ` Stefan Beller
2017-11-23 6:22 ` Elijah Newren
2017-11-23 11:52 ` Adam Dinwoodie [this message]
2017-11-23 22:28 ` Elijah Newren
2017-11-24 5:25 ` Elijah Newren
2017-11-24 20:07 ` Elijah Newren
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=20171123115246.GV20681@dinwoodie.org \
--to=adam@dinwoodie.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
/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).