Re: [PATCH v2 0/2] Git's rename detection requires a stable sort

2019-10-01 Thread Junio C Hamano
09db7 < -: -- Move git_sort(), a stable sort, into into > libgit.a > -: -- > 1: 8a99008a64 Move git_sort(), a stable sort, into into > libgit.a This is where the current range-diff could be improved to shine more. If it were allowed to compute a pairwise diff

[PATCH v2 0/2] Git's rename detection requires a stable sort

2019-09-30 Thread Johannes Schindelin via GitGitGadget
With the en/merge-recursive-cleanup patches already having advanced to next, the problem I discovered when rebasing Git for Windows' branch thicket becomes quite relevant now: t3030.35 fails consistently in the MSVC build & test (this part of the Azure Pipeline will be upstreamed later). The solut

[PATCH 0/2] Git's rename detection requires a stable sort

2019-09-25 Thread Johannes Schindelin via GitGitGadget
With the en/merge-recursive-cleanup patches already having advanced to next, the problem I discovered when rebasing Git for Windows' branch thicket becomes quite relevant now: t3030.35 fails consistently in the MSVC build & test (this part of the Azure Pipeline will be upstreamed later). The solut

Re: [PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-08 Thread Jeff King
On Tue, Aug 06, 2019 at 02:16:25PM -0700, Elijah Newren wrote: > > > + test_i18ngrep ! CONFLICT out && > > > + test_i18ngrep ! BUG: err && > > > > The BUG is gone. But should it not use i18ngrep? BUG() isn't localized. > > Technically, yes, you're right. However, this line

Re: [PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-06 Thread Emily Shaffer
> > > + > > > + test_i18ngrep ! CONFLICT out && > > > + test_i18ngrep ! BUG: err && > > > > The BUG is gone. But should it not use i18ngrep? BUG() isn't localized. > > Technically, yes, you're right. However, this line's purpose isn't > correctness of the test but documenta

Re: [PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-06 Thread Elijah Newren
On Tue, Aug 6, 2019 at 1:28 PM Emily Shaffer wrote: > > On Mon, Aug 05, 2019 at 03:33:50PM -0700, Elijah Newren wrote: > > Ever since commit 8c8e5bd6eb33 ("merge-recursive: switch directory > > rename detection default", 2019-04-05), the default handling with > >

Re: [PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-06 Thread Emily Shaffer
On Mon, Aug 05, 2019 at 03:33:50PM -0700, Elijah Newren wrote: > Ever since commit 8c8e5bd6eb33 ("merge-recursive: switch directory > rename detection default", 2019-04-05), the default handling with > directory rename detection was to report a conflict and leave unstaged >

Re: [PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-06 Thread Junio C Hamano
Junio C Hamano writes: > I do agree that it is sensible to avoid doing any funky thing during > the virtual base merges, whose result is much less observable (hence > harder to form the right mental model in end user's head) than the > outermost merge. Do we want to allow this for inner merges w

Re: [PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-06 Thread Elijah Newren
directory renames" was introduced, while > still allowing those who want to help can explore the right fix to > this codepath. That might be a bit more jarring. Directory rename detection did not have this bug in git 2.18, 2.19, 2.20, or 2.21. It was new to 2.22 with the 'conflict' setting

Re: [PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-06 Thread Elijah Newren
On Tue, Aug 6, 2019 at 9:57 AM Junio C Hamano wrote: > > Elijah Newren writes: > > > Ever since commit 8c8e5bd6eb33 ("merge-recursive: switch directory > > rename detection default", 2019-04-05), the default handling with > > directory rename detection was to

Re: [PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-06 Thread Junio C Hamano
Elijah Newren writes: > I know this bug doesn't satisfy the normal criteria for making it into > 2.23 (it's a bug that was present in 2.22 rather than a regression in > 2.23), but given that it's a BUG() condition, I was hoping it is > important and safe enough to include anyway. For maintenance

Re: [PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-06 Thread Junio C Hamano
Elijah Newren writes: > Ever since commit 8c8e5bd6eb33 ("merge-recursive: switch directory > rename detection default", 2019-04-05), the default handling with > directory rename detection was to report a conflict and leave unstaged > entries in the index. However, when cr

[PATCH 1/1] merge-recursive: avoid directory rename detection in recursive case

2019-08-05 Thread Elijah Newren
Ever since commit 8c8e5bd6eb33 ("merge-recursive: switch directory rename detection default", 2019-04-05), the default handling with directory rename detection was to report a conflict and leave unstaged entries in the index. However, when creating a virtual merge base in the recursiv

Re: [PATCH 0/1] Optimize run_diff_files()' rename detection

2019-06-10 Thread Jeff Hostetler
On 6/8/2019 10:42 AM, Johannes Schindelin via GitGitGadget wrote: Just another patch from Git for Windows' branch thicket... Jeff Hostetler (1): diffcore-rename: speed up register_rename_src diffcore-rename.c | 13 + 1 file changed, 13 insertions(+) base-commit: 8104ec994

[PATCH 0/1] Optimize run_diff_files()' rename detection

2019-06-08 Thread Johannes Schindelin via GitGitGadget
Just another patch from Git for Windows' branch thicket... Jeff Hostetler (1): diffcore-rename: speed up register_rename_src diffcore-rename.c | 13 + 1 file changed, 13 insertions(+) base-commit: 8104ec994ea3849a968b4667d072fedd1e688642 Published-As: https://github.com/gitgitga

Re: [PATCH v3 00/15] Switch directory rename detection default

2019-04-05 Thread Jacob Keller
On Fri, Apr 5, 2019 at 8:03 AM Elijah Newren wrote: > > This series adds a new configuration option, merge.directoryRenames, > for setting how to make use of directory rename detection heuristics. > The default becomes "conflict", meaning that conflicts are reported > i

[PATCH v3 00/15] Switch directory rename detection default

2019-04-05 Thread Elijah Newren
This series adds a new configuration option, merge.directoryRenames, for setting how to make use of directory rename detection heuristics. The default becomes "conflict", meaning that conflicts are reported instead of silently moving paths according to the heuristics. Also,

[PATCH v3 15/15] merge-recursive: switch directory rename detection default

2019-04-05 Thread Elijah Newren
change of default problematic, especially since there was no notice printed when directory rename detection moved files. Note that there is also a third possibility here: C) There are different answers depending on the context and content that cannot be determined by git, so this is a confli

Re: [PATCH v2 15/15] merge-recursive: switch directory rename detection default

2019-04-01 Thread Elijah Newren
On Sat, Mar 30, 2019 at 2:12 AM Ævar Arnfjörð Bjarmason wrote: > On Sat, Mar 30 2019, Elijah Newren wrote: > > I may have more, just quickly skimming this for the first time... > > > merge.renames:: > > - Whether and how Git detects renames. If set to "false&qu

Re: [PATCH v2 15/15] merge-recursive: switch directory rename detection default

2019-03-30 Thread Ævar Arnfjörð Bjarmason
On Sat, Mar 30 2019, Elijah Newren wrote: I may have more, just quickly skimming this for the first time... > merge.renames:: > - Whether and how Git detects renames. If set to "false", > - rename detection is disabled. If set to "true", basic rename

[PATCH v2 15/15] merge-recursive: switch directory rename detection default

2019-03-29 Thread Elijah Newren
change of default problematic, especially since there was no notice printed when directory rename detection moved files. Note that there is also a third possibility here: C) There are different answers depending on the context and content that cannot be determined by git, so this is a confli

[PATCH v2 00/15] Switch directory rename detection default

2019-03-29 Thread Elijah Newren
; instead of vice-versa in patch 1? * Similarly, does anyone have a reason to prefer oid,mode pair over using a diff_filespec as I did in patch 11? The crux of this series is in patch 15, changing the default for directory rename detection to treat it as a conflict. It is similar

Re: [PATCH] git-rebase.txt: update note about directory rename detection and am

2018-12-08 Thread Junio C Hamano
Elijah Newren writes: > On Fri, Dec 7, 2018 at 9:51 AM Johannes Sixt wrote: >> >> From: Elijah Newren >> >> In commit 6aba117d5cf7 ("am: avoid directory rename detection when >> calling recursive merge machinery", 2018-08-29), the git-rebase manpage &

Re: [PATCH] git-rebase.txt: update note about directory rename detection and am

2018-12-07 Thread Elijah Newren
On Fri, Dec 7, 2018 at 9:51 AM Johannes Sixt wrote: > > From: Elijah Newren > > In commit 6aba117d5cf7 ("am: avoid directory rename detection when > calling recursive merge machinery", 2018-08-29), the git-rebase manpage > probably should have also been

[PATCH] git-rebase.txt: update note about directory rename detection and am

2018-12-07 Thread Johannes Sixt
From: Elijah Newren In commit 6aba117d5cf7 ("am: avoid directory rename detection when calling recursive merge machinery", 2018-08-29), the git-rebase manpage probably should have also been updated to note the stronger incompatibility between git-am and directory rename detection.

Re: [PATCH 2/3] merge-recursive: add ability to turn off directory rename detection

2018-08-29 Thread Elijah Newren
On Wed, Aug 29, 2018 at 5:54 AM Johannes Schindelin wrote: > > Hi Elijah, > > On Wed, 29 Aug 2018, Elijah Newren wrote: > > > Signed-off-by: Elijah Newren > > --- > > merge-recursive.c | 18 +- > > merge-recursive.h | 1 + > > 2 files changed, 14 insertions(+), 5 deletions(-) >

Re: [PATCH 2/3] merge-recursive: add ability to turn off directory rename detection

2018-08-29 Thread Johannes Schindelin
Hi Elijah, On Wed, 29 Aug 2018, Elijah Newren wrote: > Signed-off-by: Elijah Newren > --- > merge-recursive.c | 18 +- > merge-recursive.h | 1 + > 2 files changed, 14 insertions(+), 5 deletions(-) > > diff --git a/merge-recursive.c b/merge-recursive.c > index f110e1c5ec..bf3c

Re: [PATCH 3/3] am: avoid directory rename detection when calling recursive merge machinery

2018-08-29 Thread Johannes Schindelin
e3} > > The core problem is that am does not have access to the original trees; it > can only construct trees using the blobs involved in the patch. As such, > it is not safe to perform directory rename detection within am -3. I read through all three patches, and they look fine to me!

[PATCH 3/3] am: avoid directory rename detection when calling recursive merge machinery

2018-08-29 Thread Elijah Newren
/, and master as just adding both foo/file1 and foo/file2. As such, it ends up with goo/{file1, file2, file3} The core problem is that am does not have access to the original trees; it can only construct trees using the blobs involved in the patch. As such, it is not safe to perform directory

[PATCH 0/3] Turn off directory rename detection in am -3

2018-08-29 Thread Elijah Newren
On Tue, Aug 28, 2018 at 9:58 AM Junio C Hamano wrote: > Elijah Newren writes: > > > - Add a flag to turn off directory rename detection, and set the > > flag for every call from am.c in order to avoid problems like this. > > I'd say this is the only practical s

[PATCH 2/3] merge-recursive: add ability to turn off directory rename detection

2018-08-29 Thread Elijah Newren
Signed-off-by: Elijah Newren --- merge-recursive.c | 18 +- merge-recursive.h | 1 + 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/merge-recursive.c b/merge-recursive.c index f110e1c5ec..bf3cb03d3a 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -2843,

Re: [PATCH] RelNotes 2.18: clarify where directory rename detection applies

2018-06-13 Thread Junio C Hamano
Elijah Newren writes: > Also, since the directory rename detection from this cycle was > specifically added in merge-recursive and not diffcore-rename, remove the > 'in "diff" family" phrase from the note. Thanks.

[PATCH] RelNotes 2.18: clarify where directory rename detection applies

2018-06-12 Thread Elijah Newren
flags that imply either -m or -i). Also, since the directory rename detection from this cycle was specifically added in merge-recursive and not diffcore-rename, remove the 'in "diff" family" phrase from the note. (Folks have requested in the past that `git diff` detect directory

Re: [PATCH v3] add status config and command line options for rename detection

2018-05-14 Thread Ben Peart
diff.renames itself. I do wonder why there is a special need for the status command here The rename detection feature is nice and we'd like to leave it on whenever possible. The performance issues only occur when in the middle of a merge - normal status commands behave reasonably. As a r

Re: [PATCH v3] add status config and command line options for rename detection

2018-05-12 Thread Eckhard Maaß
On Fri, May 11, 2018 at 12:56:39PM +, Ben Peart wrote: > After performing a merge that has conflicts git status will, by default, > attempt to detect renames which causes many objects to be examined. In a > virtualized repo, those objects do not exist locally so the rename logic > triggers the

[PATCH v4] add status config and command line options for rename detection

2018-05-11 Thread Ben Peart
taking hours to complete on very large repos vs seconds with this patch. Add a new config status.renames setting to enable turning off rename detection during status and commit. This setting will default to the value of diff.renames. Add a new config status.renamelimit setting to to enable

Re: [PATCH v3] add status config and command line options for rename detection

2018-05-11 Thread Elijah Newren
gt; triggers them to be fetched from the server. This results in the status call > taking hours to complete on very large repos vs seconds with this patch. > > Add a new config status.renames setting to enable turning off rename detection > during status and commit. This setting will

[PATCH v3] add status config and command line options for rename detection

2018-05-11 Thread Ben Peart
taking hours to complete on very large repos vs seconds with this patch. Add a new config status.renames setting to enable turning off rename detection during status and commit. This setting will default to the value of diff.renames. Add a new config status.renamelimit setting to to enable

Re: [PATCH v2] add status config and command line options for rename detection

2018-05-11 Thread Ben Peart
On 5/10/2018 6:31 PM, Elijah Newren wrote: Hi Ben, On Thu, May 10, 2018 at 12:09 PM, Ben Peart wrote: On 5/10/2018 12:19 PM, Elijah Newren wrote: On Thu, May 10, 2018 at 7:16 AM, Ben Peart wrote: Given the example perf impact is arbitrary (the actual example that triggered this patch to

Re: [PATCH v2] add status config and command line options for rename detection

2018-05-10 Thread Junio C Hamano
Ben Peart writes: > Documentation/config.txt | 10 > Documentation/git-status.txt | 10 > builtin/commit.c | 41 > diff.c | 2 +- > diff.h | 1 + > t/t7525-status-rename.sh | 90 +

Re: [PATCH v2] add status config and command line options for rename detection

2018-05-10 Thread Junio C Hamano
Elijah Newren writes: >> Note: I removed the --no-breaks command line option from the original patch >> as >> it will no longer be needed once the default has been changed [1] to turn it >> off. >> >> [1] >> https://public-inbox.org/git/20180430093421.27551-2-eckhard.s.ma...@gmail.com/ > > I'd

Re: [PATCH v2] add status config and command line options for rename detection

2018-05-10 Thread Elijah Newren
Hi Ben, On Thu, May 10, 2018 at 12:09 PM, Ben Peart wrote: > On 5/10/2018 12:19 PM, Elijah Newren wrote: >> On Thu, May 10, 2018 at 7:16 AM, Ben Peart >> wrote: > Given the example perf impact is arbitrary (the actual example that > triggered this patch took status from 2+ hours to seconds) and

Re: [PATCH v2] add status config and command line options for rename detection

2018-05-10 Thread Ben Peart
exist locally so the rename logic triggers them to be fetched from the server. This results in the status call taking hours to complete on very large repos. Even in a small repo (the GVFS repo) turning off break and rename detection has a significant impact: It'd be nice if you could show that i

Re: [PATCH v2] add status config and command line options for rename detection

2018-05-10 Thread Elijah Newren
gic triggers them to > be > fetched from the server. This results in the status call taking hours to > complete on very large repos. Even in a small repo (the GVFS repo) turning > off > break and rename detection has a significant impact: It'd be nice if you could show that imp

[PATCH v2] add status config and command line options for rename detection

2018-05-10 Thread Ben Peart
taking hours to complete on very large repos. Even in a small repo (the GVFS repo) turning off break and rename detection has a significant impact: git status --no-renames: 31 secs., 105 loose object downloads git status --no-breaks 7 secs., 17 loose object downloads git status --no-breaks --no

Re: [PATCH v1] add status config and command line options for rename detection

2018-05-09 Thread Ben Peart
On 5/9/2018 12:56 PM, Elijah Newren wrote: Hi Ben, Overall I think this is good, but I have lots of nit-picky things to bring up. :-) Thank you for the review. I appreciate the extra set of eyes on these changes. Especially when dealing with the merge logic and settings which I am unf

Re: [PATCH v1] add status config and command line options for rename detection

2018-05-09 Thread Ben Peart
On 5/9/2018 11:59 AM, Duy Nguyen wrote: On Wed, May 9, 2018 at 4:42 PM, Ben Peart wrote: Add a new config status.renames setting to enable turning off rename detection during status. This setting will default to the value of diff.renames. Please add the reason you need this config key in

Re: [PATCH v1] add status config and command line options for rename detection

2018-05-09 Thread Elijah Newren
enable detecting > renames and optionaly setting the similarity index from the command line. s/optionaly/optionally/ > Notes: > Base Ref: No base ref? ;-) > +status.renameLimit:: > + The number of files to consider when performing rename detection; > + if not specifie

Re: [PATCH v1] add status config and command line options for rename detection

2018-05-09 Thread Duy Nguyen
On Wed, May 9, 2018 at 4:42 PM, Ben Peart wrote: > Add a new config status.renames setting to enable turning off rename detection > during status. This setting will default to the value of diff.renames. Please add the reason you need this config key in the commit message. My guess (pr

[PATCH v1] add status config and command line options for rename detection

2018-05-09 Thread Ben Peart
Add a new config status.renames setting to enable turning off rename detection during status. This setting will default to the value of diff.renames. Add a new config status.renamelimit setting to to enable bounding the time spent finding out inexact renames during status. This setting will

[PATCH v4 3/3] merge: pass aggressive when rename detection is turned off

2018-05-02 Thread Ben Peart
Set aggressive flag in git_merge_trees() when rename detection is turned off. This allows read_tree() to auto resolve more cases that would have otherwise been handled by the rename detection. Reviewed-by: Johannes Schindelin Signed-off-by: Ben Peart --- merge-recursive.c | 1 + 1 file changed

Re: [PATCH v3 3/3] merge: pass aggressive when rename detection is turned off

2018-04-26 Thread Elijah Newren
On Thu, Apr 26, 2018 at 1:52 PM, Ben Peart wrote: > Set aggressive flag in git_merge_trees() when rename detection is turned off. > This allows read_tree() to auto resolve more cases that would have otherwise > been handled by the rename detection. > > Reviewed-by: Johannes Schin

[PATCH v3 3/3] merge: pass aggressive when rename detection is turned off

2018-04-26 Thread Ben Peart
Set aggressive flag in git_merge_trees() when rename detection is turned off. This allows read_tree() to auto resolve more cases that would have otherwise been handled by the rename detection. Reviewed-by: Johannes Schindelin Signed-off-by: Ben Peart --- merge-recursive.c | 4 +++- 1 file

Re: [PATCH v10 00/36] Add directory rename detection to git

2018-04-23 Thread Elijah Newren
" output lines (as expected due to patch 35/36) >> - 53 merged the same other than different "Checking out files: ..." >> output (I just did a plain merge; no flags like --no-progress) >> - the remaining 7 commits had non-trivial merge differences, all >&

Re: [PATCH v10 00/36] Add directory rename detection to git

2018-04-23 Thread Junio C Hamano
same other than different "Checking out files: ..." > output (I just did a plain merge; no flags like --no-progress) > - the remaining 7 commits had non-trivial merge differences, all > attributable to directory rename detection kicking in > > So, it looks good to me. I

Re: [PATCH v10 00/36] Add directory rename detection to git

2018-04-23 Thread Elijah Newren
Hi Junio, On Thu, Apr 19, 2018 at 8:05 PM, Junio C Hamano wrote: >> On Thu, Apr 19, 2018 at 10:57 AM, Elijah Newren wrote: >>> This series is a reboot of the directory rename detection series that was >>> merged to master and then reverted due to the final patch hav

Re: [PATCH v10 00/36] Add directory rename detection to git

2018-04-23 Thread Elijah Newren
ue to patch 35/36) - 53 merged the same other than different "Checking out files: ..." output (I just did a plain merge; no flags like --no-progress) - the remaining 7 commits had non-trivial merge differences, all attributable to directory rename detection kicking in So, it

Re: [PATCH v10 00/36] Add directory rename detection to git

2018-04-19 Thread Junio C Hamano
Elijah Newren writes: > On Thu, Apr 19, 2018 at 10:57 AM, Elijah Newren wrote: >> This series is a reboot of the directory rename detection series that was >> merged to master and then reverted due to the final patch having a buggy >> can-skip-update check, as noted a

Re: [PATCH v10 00/36] Add directory rename detection to git

2018-04-19 Thread Elijah Newren
On Thu, Apr 19, 2018 at 11:35 AM, Elijah Newren wrote: > On Thu, Apr 19, 2018 at 10:57 AM, Elijah Newren wrote: >> This series is a reboot of the directory rename detection series that was >> merged to master and then reverted due to the final patch having a buggy >> can-

Re: [PATCH v10 00/36] Add directory rename detection to git

2018-04-19 Thread Derrick Stolee
On 4/19/2018 2:41 PM, Stefan Beller wrote: On Thu, Apr 19, 2018 at 11:35 AM, Elijah Newren wrote: On Thu, Apr 19, 2018 at 10:57 AM, Elijah Newren wrote: This series is a reboot of the directory rename detection series that was merged to master and then reverted due to the final patch having

Re: [PATCH v10 00/36] Add directory rename detection to git

2018-04-19 Thread Stefan Beller
On Thu, Apr 19, 2018 at 11:35 AM, Elijah Newren wrote: > On Thu, Apr 19, 2018 at 10:57 AM, Elijah Newren wrote: >> This series is a reboot of the directory rename detection series that was >> merged to master and then reverted due to the final patch having a buggy >> can-

Re: [PATCH v10 00/36] Add directory rename detection to git

2018-04-19 Thread Elijah Newren
On Thu, Apr 19, 2018 at 10:57 AM, Elijah Newren wrote: > This series is a reboot of the directory rename detection series that was > merged to master and then reverted due to the final patch having a buggy > can-skip-update check, as noted at > https://public-inbox.org/git/

[PATCH v10 05/36] directory rename detection: files/directories in the way of some renames

2018-04-19 Thread Elijah Newren
y/d +# Commit A: z/{b,c,e_1,f}, y/{d,e_2} +# Commit B: y/{b,c,d} +# Expected: z/e_1, y/{b,c,d,e_2,f} + CONFLICT warning +# NOTE: While directory rename detection is active here causing z/f to +# become y/f, we did not apply this for z/e_1 because that would +# give us an ad

[PATCH v10 03/36] directory rename detection: testcases to avoid taking detection too far

2018-04-19 Thread Elijah Newren
O:z/bO:z/cO:z/d && + test_cmp expect actual + ) +' + +# Testcase 3b, Avoid implicit rename if involved as source on other side +# (Related to testcases 5c and 7c, also kind of 1e and 1f) +# Commit O: z/{b,c,d} +# Commit A: y/{b,c}, x/d +# Commit B: z/

[PATCH v10 11/36] directory rename detection: tests for handling overwriting dirty files

2018-04-19 Thread Elijah Newren
y renames. Add +# testcases for both renamed-by-directory-rename-detection and standard +# rename cases. +### + +# Testcase 11a, Avoid losing dirty contents with simple rename +# Commit O: z/{a,b_v1}, +# Commit A: z/{a,c_v1},

[PATCH v10 01/36] directory rename detection: basic testcases

2018-04-19 Thread Elijah Newren
ould be able to handle +### + +# Testcase 1a, Basic directory rename. +# Commit O: z/{b,c} +# Commit A: y/{b,c} +# Commit B: z/{b,c,d,e/f} +# Expected: y/{b,c,d,e/f} + +test_expect_success '1a-setup: Simple direct

[PATCH v10 02/36] directory rename detection: directory splitting testcases

2018-04-19 Thread Elijah Newren
Reviewed-by: Stefan Beller Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- t/t6043-merge-rename-directories.sh | 143 1 file changed, 143 insertions(+) diff --git a/t/t6043-merge-rename-directories.sh b/t/t6043-merge-rename-directories.sh index d045

[PATCH v10 09/36] directory rename detection: miscellaneous testcases to complete coverage

2018-04-19 Thread Elijah Newren
I came up with the testcases in the first eight sections before coding up the implementation. The testcases in this section were mostly ones I thought of while coding/debugging, and which I was too lazy to insert into the previous sections because I didn't want to re-label with all the testcase re

[PATCH v10 04/36] directory rename detection: partially renamed directory testcase/discussion

2018-04-19 Thread Elijah Newren
Add a long note about why we are not considering "partial directory renames" for the current directory rename detection implementation. Reviewed-by: Stefan Beller Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- t/t6043-merge-rename-directorie

[PATCH v10 08/36] directory rename detection: testcases exploring possibly suboptimal merges

2018-04-19 Thread Elijah Newren
. +# +# To be fair, we already had non-intuitive or suboptimal behavior for most +# of these cases in git before introducing implicit directory rename +# detection, but it'd be nice if there was a modified ruleset out there +# that handled these cas

[PATCH v10 06/36] directory rename detection: testcases checking which side did the rename

2018-04-19 Thread Elijah Newren
>out && + test_line_count = 1 out && + git ls-files -o >out && + test_line_count = 1 out && + + git rev-parse >actual \ + :0:y/b :3:y/c && + git rev-parse >expect \ +

[PATCH v10 10/36] directory rename detection: tests for handling overwriting untracked files

2018-04-19 Thread Elijah Newren
Reviewed-by: Stefan Beller Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- t/t6043-merge-rename-directories.sh | 367 1 file changed, 367 insertions(+) diff --git a/t/t6043-merge-rename-directories.sh b/t/t6043-merge-rename-directories.sh index cbbb

[PATCH v10 27/36] directory rename detection: new testcases showcasing a pair of bugs

2018-04-19 Thread Elijah Newren
Add a testcase showing spurious rename/rename(1to2) conflicts occurring due to directory rename detection. Also add a pair of testcases dealing with moving directory hierarchies around that were suggested by Stefan Beller as "food for thought" during his review of an earlier patch s

[PATCH v10 00/36] Add directory rename detection to git

2018-04-19 Thread Elijah Newren
This series is a reboot of the directory rename detection series that was merged to master and then reverted due to the final patch having a buggy can-skip-update check, as noted at https://public-inbox.org/git/xmqqmuya43cs@gitster-ct.c.googlers.com/ This series based on top of master. This

[PATCH v10 07/36] directory rename detection: more involved edge/corner testcases

2018-04-19 Thread Elijah Newren
Reviewed-by: Stefan Beller Signed-off-by: Elijah Newren Signed-off-by: Junio C Hamano --- t/t6043-merge-rename-directories.sh | 396 1 file changed, 396 insertions(+) diff --git a/t/t6043-merge-rename-directories.sh b/t/t6043-merge-rename-directories.sh index 9ae2

[RFC PATCH v9 0/30] Add directory rename detection to git

2018-04-13 Thread Elijah Newren
This series builds on commit febb3a86098f ("merge-recursive: avoid spurious rename/rename conflict from dir renames", 2018-02-14), also known as patch 29/30 of en/rename-directory-detection. That patch series has been reverted from master[1], due to a bug with patch 30/30, so does not apply to cur

Re: [PATCH v8 00/29] Add directory rename detection to git

2018-02-14 Thread Stefan Beller
On Wed, Feb 14, 2018 at 10:51 AM, Elijah Newren wrote: > This patchset introduces directory rename detection to merge-recursive. See > https://public-inbox.org/git/20171110190550.27059-1-new...@gmail.com/ > for the first series (including design considerations, etc.) This series &g

[PATCH v8 10/29] directory rename detection: tests for handling overwriting untracked files

2018-02-14 Thread Elijah Newren
Reviewed-by: Stefan Beller Signed-off-by: Elijah Newren --- t/t6043-merge-rename-directories.sh | 367 1 file changed, 367 insertions(+) diff --git a/t/t6043-merge-rename-directories.sh b/t/t6043-merge-rename-directories.sh index cbbb949014..a6cd38336c 1007

[PATCH v8 08/29] directory rename detection: testcases exploring possibly suboptimal merges

2018-02-14 Thread Elijah Newren
we already had non-intuitive or suboptimal behavior for most +# of these cases in git before introducing implicit directory rename +# detection, but it'd be nice if there was a modified ruleset out there +# that handled these cas

[PATCH v8 27/29] directory rename detection: new testcases showcasing a pair of bugs

2018-02-14 Thread Elijah Newren
Add a testcase showing spurious rename/rename(1to2) conflicts occurring due to directory rename detection. Also add a pair of testcases dealing with moving directory hierarchies around that were suggested by Stefan Beller as "food for thought" during his review of an earlier patch s

[PATCH v8 07/29] directory rename detection: more involved edge/corner testcases

2018-02-14 Thread Elijah Newren
Reviewed-by: Stefan Beller Signed-off-by: Elijah Newren --- t/t6043-merge-rename-directories.sh | 396 1 file changed, 396 insertions(+) diff --git a/t/t6043-merge-rename-directories.sh b/t/t6043-merge-rename-directories.sh index 9ae245a522..6db1439675 1007

[PATCH v8 03/29] directory rename detection: testcases to avoid taking detection too far

2018-02-14 Thread Elijah Newren
amp;& + test_cmp expect actual + ) +' + +# Testcase 3b, Avoid implicit rename if involved as source on other side +# (Related to testcases 5c and 7c, also kind of 1e and 1f) +# Commit O: z/{b,c,d} +# Commit A: y/{b,c}, x/d +# Commit B: z/{b,c}, w/d +# Expecte

[PATCH v8 06/29] directory rename detection: testcases checking which side did the rename

2018-02-14 Thread Elijah Newren
test_line_count = 1 out && + git ls-files -o >out && + test_line_count = 1 out && + + git rev-parse >actual \ + :0:y/b :3:y/c && + git rev-parse >expect \ +O:

[PATCH v8 09/29] directory rename detection: miscellaneous testcases to complete coverage

2018-02-14 Thread Elijah Newren
I came up with the testcases in the first eight sections before coding up the implementation. The testcases in this section were mostly ones I thought of while coding/debugging, and which I was too lazy to insert into the previous sections because I didn't want to re-label with all the testcase re

[PATCH v8 04/29] directory rename detection: partially renamed directory testcase/discussion

2018-02-14 Thread Elijah Newren
Add a long note about why we are not considering "partial directory renames" for the current directory rename detection implementation. Reviewed-by: Stefan Beller Signed-off-by: Elijah Newren --- t/t6043-merge-rename-directories.sh | 115 1 fi

[PATCH v8 11/29] directory rename detection: tests for handling overwriting dirty files

2018-02-14 Thread Elijah Newren
or both renamed-by-directory-rename-detection and standard +# rename cases. +### + +# Testcase 11a, Avoid losing dirty contents with simple rename +# Commit O: z/{a,b_v1}, +# Commit A: z/{a,c_v1}, and z/c_v1 has uncommitted m

[PATCH v8 01/29] directory rename detection: basic testcases

2018-02-14 Thread Elijah Newren
able to handle +### + +# Testcase 1a, Basic directory rename. +# Commit O: z/{b,c} +# Commit A: y/{b,c} +# Commit B: z/{b,c,d,e/f} +# Expected: y/{b,c,d,e/f} + +test_expect_success '1a-setup: Simple direct

[PATCH v8 05/29] directory rename detection: files/directories in the way of some renames

2018-02-14 Thread Elijah Newren
/{b,c,e_1,f}, y/{d,e_2} +# Commit B: y/{b,c,d} +# Expected: z/e_1, y/{b,c,d,e_2,f} + CONFLICT warning +# NOTE: While directory rename detection is active here causing z/f to +# become y/f, we did not apply this for z/e_1 because that would +# give us an add/add conflict for y/e_1

[PATCH v8 00/29] Add directory rename detection to git

2018-02-14 Thread Elijah Newren
This patchset introduces directory rename detection to merge-recursive. See https://public-inbox.org/git/20171110190550.27059-1-new...@gmail.com/ for the first series (including design considerations, etc.) This series continues to depend on en/merge-recursive-fixes in next, at least

[PATCH v8 02/29] directory rename detection: directory splitting testcases

2018-02-14 Thread Elijah Newren
Reviewed-by: Stefan Beller Signed-off-by: Elijah Newren --- t/t6043-merge-rename-directories.sh | 143 1 file changed, 143 insertions(+) diff --git a/t/t6043-merge-rename-directories.sh b/t/t6043-merge-rename-directories.sh index d045f0e31e..b22a9052b3 1007

[PATCH v7 09/31] directory rename detection: miscellaneous testcases to complete coverage

2018-01-30 Thread Elijah Newren
I came up with the testcases in the first eight sections before coding up the implementation. The testcases in this section were mostly ones I thought of while coding/debugging, and which I was too lazy to insert into the previous sections because I didn't want to re-label with all the testcase re

[PATCH v7 07/31] directory rename detection: more involved edge/corner testcases

2018-01-30 Thread Elijah Newren
Signed-off-by: Elijah Newren --- t/t6043-merge-rename-directories.sh | 396 1 file changed, 396 insertions(+) diff --git a/t/t6043-merge-rename-directories.sh b/t/t6043-merge-rename-directories.sh index fbeb8f4316..68bd86f555 100755 --- a/t/t6043-merge-renam

[PATCH v7 08/31] directory rename detection: testcases exploring possibly suboptimal merges

2018-01-30 Thread Elijah Newren
tuitive or suboptimal behavior for most +# of these cases in git before introducing implicit directory rename +# detection, but it'd be nice if there was a modified ruleset out there +# that handled these cases a bit better. +### +

[PATCH v7 03/31] directory rename detection: testcases to avoid taking detection too far

2018-01-30 Thread Elijah Newren
test_cmp expect actual + ) +' + +# Testcase 3b, Avoid implicit rename if involved as source on other side +# (Related to testcases 5c and 7c, also kind of 1e and 1f) +# Commit O: z/{b,c,d} +# Commit A: y/{b,c}, x/d +# Commit B: z/{b,c}, w/d +# Expected: y/{b,c}, CONFLICT:(z/d -

[PATCH v7 29/31] directory rename detection: new testcases showcasing a pair of bugs

2018-01-30 Thread Elijah Newren
Add a testcase showing spurious rename/rename(1to2) conflicts occurring due to directory rename detection. Also add a pair of testcases dealing with moving directory hierarchies around that were suggested by Stefan Beller as "food for thought" during his review of an earlier patch s

[PATCH v7 01/31] directory rename detection: basic testcases

2018-01-30 Thread Elijah Newren
able to handle +### + +# Testcase 1a, Basic directory rename. +# Commit O: z/{b,c} +# Commit A: y/{b,c} +# Commit B: z/{b,c,d,e/f} +# Expected: y/{b,c,d,e/f} + +test_expect_success '1a-setup: Simple directory rename detection' 

[PATCH v7 02/31] directory rename detection: directory splitting testcases

2018-01-30 Thread Elijah Newren
Signed-off-by: Elijah Newren --- t/t6043-merge-rename-directories.sh | 143 1 file changed, 143 insertions(+) diff --git a/t/t6043-merge-rename-directories.sh b/t/t6043-merge-rename-directories.sh index d045f0e31e..b22a9052b3 100755 --- a/t/t6043-merge-renam

[PATCH v7 04/31] directory rename detection: partially renamed directory testcase/discussion

2018-01-30 Thread Elijah Newren
merge. ### + +### +# SECTION 4: Partially renamed directory; still exists on both sides of merge +# +# What if we were to attempt to do directory rename detection when someone +# "mostly" moved a directory but still left some f

[PATCH v7 00/31] Add directory rename detection to git

2018-01-30 Thread Elijah Newren
This patchset introduces directory rename detection to merge-recursive. See https://public-inbox.org/git/20171110190550.27059-1-new...@gmail.com/ for the first series (including design considerations, etc.), and follow-up series can be found at https://public-inbox.org/git

[PATCH v7 11/31] directory rename detection: tests for handling overwriting dirty files

2018-01-30 Thread Elijah Newren
muddies up the working directory before +# we even get to the point of detecting renames, so we need some special +# handling. This was true even of normal renames, but there are additional +# codepaths that need special handling with directory renames. Add +# testcases for both renamed-by-directory-r

  1   2   3   >