git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Konstantin Tokarev <annulen@yandex.ru>
To: Elijah Newren <newren@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: Git Merge 2020 slides and reproducibility
Date: Tue, 10 Mar 2020 17:36:49 +0300	[thread overview]
Message-ID: <6997681583850484@myt6-887fb48a9c29.qloud-c.yandex.net> (raw)
In-Reply-To: <CABPp-BGyz2uRtmw05uCFVACq9aXS9fwcLwEEvw4EU9toixwf2w@mail.gmail.com>



09.03.2020, 18:50, "Elijah Newren" <newren@gmail.com>:
> On Sat, Mar 7, 2020 at 11:38 AM Konstantin Tokarev <annulen@yandex.ru> wrote:
>>  07.03.2020, 19:03, "Elijah Newren" <newren@gmail.com>:
>>  > On Sat, Mar 7, 2020 at 5:38 AM Konstantin Tokarev <annulen@yandex.ru> wrote:
>
> ...
>>  >> However, when testing my previous merges which had to be done with helper
>>  >> script, I've encountered case of
>>  >>
>>  >> CONFLICT (directory rename split)
>>  >>
>>  >> Is there any way to prevent conflict in this case if files are the same, and
>>  >> merge their contents if there are differences? I think it would be reasonable
>>  >> to assume that move done in newest commit should win, and allow user
>>  >> to change strategy via command line option, provide explicit hint where files
>>  >> should be moved, or maybe even decide it interactively.
>>  >
>>  > This conflict message is known to trigger in some cases where it
>>  > shouldn't; it may be that you're just experiencing annoyance from
>>  > that. Let me fix that issue before worrying about workarounds.
>>
>>  Well, in my case a directory of files was moved path A in one of merged heads
>>  and to path B in another, so I guess it was legitimate.
>
> The point of directory rename detection is to allow new paths on the
> unrenamed side of history to follow the directory rename. So, while
> there may have been an ambiguous directory rename, if there were no
> new paths to be moved by it, then that directory rename is irrelevant
> and shouldn't be reported as a problem. (If you did have new paths on
> the unrenamed side in that directory, then yes, it's legitimate.)

In my case, both sides have different renames, but files in subject directory are
mostly unchanged. It would even work for me if merge placed it to wrong
directory in the end, just to have it merge files contents automatically.

>
>>  Are you going to continue development in the same branch?
>
> Nope, the branch exists for reproducibility of the demo. Right now,
> my plan is to work on the 'ort' branch (which the git-merge-2020-demo
> branch was a snapshot of), but I reserve the right at any time to push
> up code to that branch that doesn't even compile or is known to be
> horribly broken.
>
>>  When do you expect it to be ready for review?
>
> Good question. There's other work I've been pushing off with the
> excuse of preparing for the Git Merge 2020 conference, and working on
> those other things may limit my time on this and make it harder to
> give good guestimates.
>
> I'm hoping that _parts_ of it will be ready to review a week or two
> after 2.26 is released. That will not mean I'm done with development
> at that time, just that I'm trying to get feedback in parallel with
> doing further development. Besides competing priorities, there's
> another reason to be somewhat cautious about the timeline: I don't
> want us to replace one area of the code that only one person is
> willing to touch with a different scary beast that no one wants to
> touch. So, I need to put some work into high level algorithm and data
> structure documentation, splitting up patches nicely, etc. And the
> purpose of writing those documents isn't to put the design in stone,
> but rather to make review easier -- at which point I expect at least
> one big change or two (and dozens of small changes) to be requested
> for maintenance/performance/API-design reasons. I'll be disappointed
> if I don't get that kind of feedback, as I'll be worried we're just
> putting a new black box into place.
>
> I happen to think that the basics of the new module are nicer than the
> old merge-recursive module I'm replacing, but the performance work
> complicated things a fair amount and I want to make it more
> approachable. So, we'll see.

/me personally would at any time prefer correct renames detection over speed,
even if things become _slower_, just to resolve less conflicts manually.
However, I guess planning all optimizations up front may be necessary to choose
optimal data structures.

>
> I know this is horribly vague. Sorry.

No problem, thanks a lot for your work and this information!

>
> Elijah

-- 
Regards,
Konstantin


      reply	other threads:[~2020-03-10 14:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-06 15:00 Git Merge 2020 slides and reproducibility Elijah Newren
2020-03-06 16:40 ` Derrick Stolee
2020-03-06 18:25   ` Matheus Tavares Bernardino
2020-03-07 13:38 ` Konstantin Tokarev
2020-03-07 16:03   ` Elijah Newren
2020-03-07 19:38     ` Konstantin Tokarev
2020-03-09 15:50       ` Elijah Newren
2020-03-10 14:36         ` Konstantin Tokarev [this message]

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6997681583850484@myt6-887fb48a9c29.qloud-c.yandex.net \
    --to=annulen@yandex.ru \
    --cc=git@vger.kernel.org \
    --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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).