Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 381
1 file changed, 381 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 5db2986de8..2c57a02c6d
of that function
because they store the information referenced in the rename_conflict_info,
which is used later in process_entry(). Thus the reason for a separate
cleanup_renames().
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 43 +---
that a directory rename testcase that was
previously reported as a rename/delete conflict will now be reported as a
modify/delete conflict.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 4 +--
t/t6043-merge-rename-directories.s
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 436
1 file changed, 436 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 00b0ee7f08..0644b95ec5
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 430
1 file changed, 430 insertions(+)
create mode 100755 t/t6043-merge-rename-directories.sh
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 150
1 file changed, 150 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 335aa1c145..0ccabed4a2
Before trying to apply directory renames to paths within the given
directories, we want to make sure that there aren't conflicts at the
file level either. If there aren't any, then get the new name from
any directory renames.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recur
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 394
1 file changed, 394 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 2c57a02c6d..fc9b13c37d
demonstrating any bugs
with the old ordering, but I suspect there were some for both normal
renames and for directory renames. Fix the ordering.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/merge-recursi
-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 123 --
1 file changed, 120 insertions(+), 3 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index 6bd4f34d55..9e31baaf33 100644
--- a/merge-recursive.c
+++ b
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 137
1 file changed, 137 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index d8ead7c56b..335aa1c145
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 26 +++---
t/t6043-merge-rename-directories.sh | 8
2 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index 2b8a
-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 20 +++-
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index e95eac2c70..cdd0afa047 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1653,13 +1
Before trying to apply directory renames to paths within the given
directories, we want to make sure that there aren't conflicts at the
directory level. There will be additional checks at the individual
file level too, which will be added later.
Signed-off-by: Elijah Newren <new...@gmail.
status == 'D')
-+ if (pair->status == 'D' || pair->status == 'M')
++ if (pair->status != 'A' && pair->status != 'R')
continue;
dir_rename_ent = check_dir_renamed(pair->two->path,
This commit hooks together all the directory rename logic by making the
necessary changes to the rename struct, it's dst_entry, and the
diff_filepair under consideration.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c
references. :-)
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 536 +++-
1 file changed, 535 insertions(+), 1 deletion(-)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 337
1 file changed, 337 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 42228a60aa..00b0ee7f08
Previously, if !o->detect_rename then get_renames() would return an
empty string_list, and then process_renames() would have nothing to
iterate over. It seems more straightforward to simply avoid calling
either function in that case.
Signed-off-by: Elijah Newren <new...@gmail.com>
-
If I have to walk through the debugger and inspect the values found in
here in order to figure out their meaning, despite having known these
things inside and out some years back, then they probably need a comment
for the casual reader to explain their purpose.
Signed-off-by: Elijah Newren <
This populates a list of directory renames for us. The list of
directory renames is not yet used, but will be in subsequent commits.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 155 --
1 file changed, 152 inse
Create a new function, get_diffpairs() to compute the diff_filepairs
between two trees. While these are currently only used in
get_renames(), I want them to be available to some new functions. No
actual logic changes yet.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recur
I want to re-use some other functions in the file without moving those
other functions or dealing with a handful of annoying split function
declarations and definitions.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c
will be used for this purpose.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 23 +++
merge-recursive.h | 7 +++
2 files changed, 30 insertions(+)
diff --git a/merge-recursive.c b/merge-recursive.c
index d92fba2775..6bd4f34d55 100644
--- a
On Mon, Nov 27, 2017 at 3:39 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Elijah Newren <new...@gmail.com> writes:
>
>>> As a fix, this sorely wants something new in t/ directory.
>>
>> Well, then perhaps I was wrong to submit it independent of m
[Removed cc's that just bounce]
On Sun, Nov 26, 2017 at 7:40 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Elijah Newren <new...@gmail.com> writes:
>
>> In commit ae352c7f3 (merge-recursive.c: fix case-changing merge bug,
>> 2014-05-01), it was observed that remov
On Sat, Nov 25, 2017 at 4:52 PM, Johannes Schindelin
<johannes.schinde...@gmx.de> wrote:
> On Tue, 21 Nov 2017, Elijah Newren wrote:
>
>> diff --git a/merge-recursive.c b/merge-recursive.c
>> + if (old_len != new_len || strncmp(old_path, new_path, old_len)) {
&
On Wed, Nov 15, 2017 at 9:13 AM, Jacob Keller wrote:
> On Tue, Nov 14, 2017 at 10:13 AM, Stefan Beller wrote:
>> But this line of though might be distracting from your original point,
>> which was that we have so much to keep in mind when doing tree
On Fri, Nov 24, 2017 at 7:29 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Elijah Newren <new...@gmail.com> writes:
>
>> But what it really is forced to do is more of a 4-way merge; a good
>> chunk of its annoying complexity is based around this (undoc
On Fri, Nov 24, 2017 at 12:04 PM, Eric Sunshine <sunsh...@sunshineco.com> wrote:
> On Fri, Nov 24, 2017 at 2:59 PM, Elijah Newren <new...@gmail.com> wrote:
>> In commit ae352c7f3 (merge-recursive.c: fix case-changing merge bug,
>> 2014-05-01), it was observe
On Thu, Nov 23, 2017 at 9:25 PM, Elijah Newren <new...@gmail.com> wrote:
> On Thu, Nov 23, 2017 at 2:28 PM, Elijah Newren <new...@gmail.com> wrote:
>> On Thu, Nov 23, 2017 at 3:52 AM, Adam Dinwoodie <a...@dinwoodie.org> wrote:
>>> On Tuesday 21 November 2017 at
In commit ae352c7f3 (merge-recursive.c: fix case-changing merge bug,
2014-05-01), it was observed that removing files could be problematic on
case insensitive file systems, because we could end up removing files
that differed in case only rather than deleting the intended file --
something that
On Thu, Nov 23, 2017 at 2:28 PM, Elijah Newren <new...@gmail.com> wrote:
> On Thu, Nov 23, 2017 at 3:52 AM, Adam Dinwoodie <a...@dinwoodie.org> wrote:
>> On Tuesday 21 November 2017 at 12:00 am -0800, Elijah Newren wrote:
>>>
>>>
>>
On Thu, Nov 23, 2017 at 3:52 AM, Adam Dinwoodie <a...@dinwoodie.org> wrote:
> On Tuesday 21 November 2017 at 12:00 am -0800, Elijah Newren wrote:
>>
>>
>> merge-recursive.c | 1243 +++-
>> merge-recursive.h | 17 +
On Wed, Nov 22, 2017 at 11:24 AM, Stefan Beller <sbel...@google.com> wrote:
> On Tue, Nov 21, 2017 at 5:12 PM, Elijah Newren <new...@gmail.com> wrote:
>> On Tue, Nov 21, 2017 at 4:42 PM, Stefan Beller <sbel...@google.com> wrote:
>>> On Tue, Nov 21, 2017 at 12:00
On Tue, Nov 21, 2017 at 4:42 PM, Stefan Beller <sbel...@google.com> wrote:
> On Tue, Nov 21, 2017 at 12:00 AM, Elijah Newren <new...@gmail.com> wrote:
>> This patchset introduces directory rename detection to merge-recursive; I'm
>> resubmitting just a few hours after
On Tue, Nov 21, 2017 at 4:07 AM, Peter Krefting <pe...@softwolves.pp.se> wrote:
> Elijah Newren:
>
>> Sure, take a look at the big-repo-small-cherry-pick branch of
>> https://github.com/newren/git
>
>
> With those changes, the time usage is the same
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 26 +++---
t/t6043-merge-rename-directories.sh | 8
2 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index 5b4c
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 104
1 file changed, 104 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 0ccabed4a2..1dcf010aa6
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 320
1 file changed, 320 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 1dcf010aa6..29b2af7f19
t expected the merge to succeed. Fix that, and
add a few more checks to make sure that the merge really does produce the
expected results.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t3501-revert-cherry-pick.sh | 7 +--
t/t7607-merge-overwrite.sh| 5 -
2 files changed, 9
This commit hooks together all the directory rename logic by making the
necessary changes to the rename struct, it's dst_entry, and the
diff_filepair under consideration.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c
, we have to move the file to a new location and re-write it.
Update the code that checks whether we can skip the update to also work in
the presence of directory renames.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 4 +---
t/t6043-merge-
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 436
1 file changed, 436 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 7408c788fc..88243651f7
that a directory rename testcase that was
previously reported as a rename/delete conflict will now be reported as a
modify/delete conflict.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 4 +--
t/t6043-merge-rename-directories.s
-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 20 +++-
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index 4249caad4d..db8590ab1a 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1653,13 +1
references. :-)
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 536 +++-
1 file changed, 535 insertions(+), 1 deletion(-)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 392
1 file changed, 392 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 2c57a02c6d..b153468a5c
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 321
1 file changed, 321 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 29b2af7f19..5db2986de8
will be used for this purpose.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 23 +++
merge-recursive.h | 7 +++
2 files changed, 30 insertions(+)
diff --git a/merge-recursive.c b/merge-recursive.c
index c235b27c55..1fa3eb6fb5 100644
--- a
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 137
1 file changed, 137 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index d8ead7c56b..335aa1c145
tch series, but which actually uncovered a
bug. Round things out with a test that is a cross between the two
testcases that showed existing bugs in order to make sure we aren't
merely addressing problems in isolation but in general.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6
to files; the D/F conflict handling is
done elsewhere. This code is just concerned with what entries existed
for a given path on the different sides of the merge, so create a
get_tree_entry_if_blob() helper function and use it.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 42 +++--
t/t6043-merge-rename-directories.sh | 6 +++---
2 files changed, 43 insertions(+), 5 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
Create a new function, get_diffpairs() to compute the diff_filepairs
between two trees. While these are currently only used in
get_renames(), I want them to be available to some new functions. No
actual logic changes yet.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recur
Previously, if !o->detect_rename then get_renames() would return an
empty string_list, and then process_renames() would have nothing to
iterate over. It seems more straightforward to simply avoid calling
either function in that case.
Signed-off-by: Elijah Newren <new...@gmail.com>
-
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 337
1 file changed, 337 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 9e00a26c69..7408c788fc
of that function
because they store the information referenced in the rename_conflict_info,
which is used later in process_entry(). Thus the reason for a separate
cleanup_renames().
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 43 +---
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 430
1 file changed, 430 insertions(+)
create mode 100755 t/t6043-merge-rename-directories.sh
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-
Before trying to apply directory renames to paths within the given
directories, we want to make sure that there aren't conflicts at the
directory level. There will be additional checks at the individual
file level too, which will be added later.
Signed-off-by: Elijah Newren <new...@gmail.
If I have to walk through the debugger and inspect the values found in
here in order to figure out their meaning, despite having known these
things inside and out some years back, then they probably need a comment
for the casual reader to explain their purpose.
Signed-off-by: Elijah Newren <
Before trying to apply directory renames to paths within the given
directories, we want to make sure that there aren't conflicts at the
file level either. If there aren't any, then get the new name from
any directory renames.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recur
in a subsequent commit.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 85 -
merge-recursive.h | 2 +
t/t3501-revert-cherry-pick.sh | 2 +-
t/t6043-merge-rename-directories.sh | 2 +-
t/t7607
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 150
1 file changed, 150 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 335aa1c145..0ccabed4a2
:
* Fixed various compilation errors with make DEVELOPER=1.
Elijah Newren (33):
Tighten and correct a few testcases for merging and cherry-picking
merge-recursive: fix logic ordering issue
merge-recursive: add explanation for src_entry and dst_entry
directory rename detection: basic testcases
I want to re-use some other functions in the file without moving those
other functions or dealing with a handful of annoying split function
declarations and definitions.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c
This just adds dir_rename_entry and the associated functions; code using
these will be added in subsequent commits.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 35 +++
merge-recursive.h | 8
2 files changed, 43 inse
-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 124 --
1 file changed, 121 insertions(+), 3 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index 1fa3eb6fb5..b8c7d6dce3 100644
--- a/merge-recursive.c
+++ b
demonstrating any bugs
with the old ordering, but I suspect there were some for both normal
renames and for directory renames. Fix the ordering.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/merge-recursi
This populates a list of directory renames for us. The list of
directory renames is not yet used, but will be in subsequent commits.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 152 ++
1 file changed, 152 inse
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 381
1 file changed, 381 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 5db2986de8..2c57a02c6d
two files and just automatically consider them to be
dissimilar. This is done to avoid foisting conflicts-of-conflicts
on the user.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c| 101 +--
t/t6042-merge-rename-
to be modified so that they were similar.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c| 25 -
t/t2023-checkout-m.sh| 2 +-
t/t3418-rebase-continue.sh | 27 +++
t/t3504-cherr
t the time necessary
for a cherry-pick down by a factor of about 8 (from around 4.5 minutes
down to around 34 seconds)
Signed-off-by: Elijah Newren <new...@gmail.com>
---
diff.c| 1 +
diff.h| 3 +++
diffcore-rename.c | 43 +-
merge-
expected to fail.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6042-merge-rename-corner-cases.sh | 210 +++
1 file changed, 210 insertions(+)
diff --git a/t/t6042-merge-rename-corner-cases.sh
b/t/t6042-merge-rename-corner-cases.sh
index 411550d2b6..d8fe
handle_file_collision() fixes all of these issues, and
adds smarts to allow two-way merge OR move colliding files to separate
paths depending on the similarity of the colliding files.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c
the time necessary
for a cherry-pick down by a factor of about 2 (from around 34 seconds
down to just under 16 seconds)
Signed-off-by: Elijah Newren <new...@gmail.com>
---
diffcore-rename.c | 47 +++
1 file changed, 31 insertions(+), 16 deletions(-)
s will be discussed in subsequent commits that modify the
code to take advantage of this new shared function.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
diff.h| 4 ++
diffcore-rename.c | 6 +--
merge-recursive.c | 121 ++
directories involved in renames, this cut the time
necessary for a cherry-pick down by about 50% (from around 9 minutes to
4.5 minutes).
Signed-off-by: Elijah Newren <new...@gmail.com>
---
diffcore-rename.c | 17 +++--
1 file changed, 11 insertions(+), 6 deletions(-)
diff
series.
If you just want to test it out, it's available as the
'big-repo-small-cherry-pick' branch of https://github.com/newren/git .
Elijah Newren (9):
diffcore-rename: no point trying to find a match better than exact
merge-recursive: avoid unnecessary string list lookups
merge-recursive
Since we're taking entries from active_cache, which is already in sorted
order with same-named entries adjacent, we can skip a lookup. Also, we can
just use append instead of insert (avoiding the need to find where to put
the new item) and still end up with a sorted list.
Signed-off-by: Elijah
If I have to walk through the debugger and inspect the values found in
here in order to figure out their meaning, despite having known these
things inside and out some years back, then they probably need a comment
for the casual reader to explain their purpose.
Signed-off-by: Elijah Newren <
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 104
1 file changed, 104 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 0ccabed4a2..1dcf010aa6
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 320
1 file changed, 320 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 1dcf010aa6..29b2af7f19
t expected the merge to succeed. Fix that, and
add a few more checks to make sure that the merge really does produce the
expected results.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t3501-revert-cherry-pick.sh | 7 +--
t/t7607-merge-overwrite.sh| 5 -
2 files changed, 9
missed that looks important, let me know
and I'll get it fixed up.
Elijah Newren (33):
Tighten and correct a few testcases for merging and cherry-picking
merge-recursive: fix logic ordering issue
merge-recursive: add explanation for src_entry and dst_entry
directory rename detection: basic
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 436
1 file changed, 436 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 7408c788fc..88243651f7
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 321
1 file changed, 321 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 29b2af7f19..5db2986de8
I want to re-use some other functions in the file without moving those
other functions or dealing with a handful of annoying split function
declarations and definitions.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c
references. :-)
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 536 +++-
1 file changed, 535 insertions(+), 1 deletion(-)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
of that function
because they store the information referenced in the rename_conflict_info,
which is used later in process_entry(). Thus the reason for a separate
cleanup_renames().
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 43 +---
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 337
1 file changed, 337 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index 9e00a26c69..7408c788fc
Signed-off-by: Elijah Newren <new...@gmail.com>
---
t/t6043-merge-rename-directories.sh | 137
1 file changed, 137 insertions(+)
diff --git a/t/t6043-merge-rename-directories.sh
b/t/t6043-merge-rename-directories.sh
index d8ead7c56b..335aa1c145
This commit hooks together all the directory rename logic by making the
necessary changes to the rename struct, it's dst_entry, and the
diff_filepair under consideration.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c
Create a new function, get_diffpairs() to compute the diff_filepairs
between two trees. While these are currently only used in
get_renames(), I want them to be available to some new functions. No
actual logic changes yet.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recur
demonstrating any bugs
with the old ordering, but I suspect there were some for both normal
renames and for directory renames. Fix the ordering.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/merge-recursi
will be used for this purpose.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 23 +++
merge-recursive.h | 7 +++
2 files changed, 30 insertions(+)
diff --git a/merge-recursive.c b/merge-recursive.c
index 03897af883..472754c493 100644
--- a
This just adds dir_rename_entry and the associated functions; code using
these will be added in subsequent commits.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 35 +++
merge-recursive.h | 8
2 files changed, 43 inse
that a directory rename testcase that was
previously reported as a rename/delete conflict will now be reported as a
modify/delete conflict.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 4 +--
t/t6043-merge-rename-directories.s
This populates a list of directory renames for us. The list of
directory renames is not yet used, but will be in subsequent commits.
Signed-off-by: Elijah Newren <new...@gmail.com>
---
merge-recursive.c | 149 ++
1 file changed, 149 inse
901 - 1000 of 1133 matches
Mail list logo