git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sergey Organov <sorganov@gmail.com>
To: "Curtin, Eric" <Eric.Curtin@dell.com>
Cc: Stefan Moch <stefanmoch@mail.de>,
	Philip Oakley <philipoakley@iee.email>,
	Christian Couder <christian.couder@gmail.com>,
	"git@vger.kernel.org" <git@vger.kernel.org>,
	"Geary, Niall" <Niall.Geary@dell.com>,
	"rowlands, scott" <Scott.Rowlands@dell.com>,
	Michael Haggerty <mhagger@alum.mit.edu>
Subject: Re: Collaborative conflict resolution feature request
Date: Thu, 18 Jun 2020 00:17:56 +0300	[thread overview]
Message-ID: <874kr92xyz.fsf@osv.gnss.ru> (raw)
In-Reply-To: <BY5PR19MB34004535CCF180CE5C63B731909A0@BY5PR19MB3400.namprd19.prod.outlook.com> (Eric Curtin's message of "Wed, 17 Jun 2020 18:32:39 +0000")

"Curtin, Eric" <Eric.Curtin@dell.com> writes:

> Hi Guys,
>
> Yes I think you all understand the conundrum well. Conflict resolution
> by definition is a collaborative effort, but git doesn't support it as a,
> collaborative effort, only one user can resolve it in git.

[As a side-note, I don't agree with "by definition" part of the
statement, nor with "only one user" part, so what is left?]

What I'd like to stress though is that there is a pitfall here: is it
feasible to try to support concurrent conflict resolution, or is it to
be sequential (even if in multiple turns)? I incline to the latter.

Concurrent conflict resolution would lead to conflicts in conflict
resolutions, that already sounds too complex to be useful for my taste,
and we already are in recursion that must be stopped somewhere, so it's
tempting to stop it one level up.

Admittedly, one can try to avoid conflicts in resolutions by splitting
content to independent parts (where Git is not easily applicable by
design, being the tool that manages entire content), but such a split
doesn't sound realistic, as if it were possible, it'd be easier to apply
it to avoid original conflicts in the first place. Then, a non-trivial
conflict resolution often needs changes elsewhere anyway, making strict
content split again problematic.

OTOH, anything sequential is intrinsically difficult for a distributed
system like Git, so it probably should better be implemented elsewhere.
This approach is simplified by the fact that fortunately Git doesn't
care how exactly you come-up with the resulting merge commit[*], so one
is free to use whatever external tool to achieve his goals.

-- Sergey

[*] Well, it actually does care in some corner cases, e.g., when it
drops or tries to re-create merges on rebase, and that will only be
eliminated once "evil merge" concept is finally buried, for better.

  reply	other threads:[~2020-06-17 21:18 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-12 14:08 Collaborative conflict resolution feature request Curtin, Eric
2020-06-13 11:33 ` Johannes Sixt
2020-06-13 12:08 ` Christian Couder
2020-06-13 12:38   ` Curtin, Eric
2020-06-13 13:14     ` Philip Oakley
2020-06-13 16:44       ` Junio C Hamano
2020-06-15  9:51       ` Sergey Organov
2020-06-15 11:04         ` Philip Oakley
2020-06-16 17:17           ` Stefan Moch
2020-06-17 18:32             ` Curtin, Eric
2020-06-17 21:17               ` Sergey Organov [this message]
2020-06-13 17:10     ` Christian Couder
2020-06-13 19:22       ` Junio C Hamano
2020-06-13 19:34         ` Junio C Hamano
2020-06-14 11:05           ` Philip Oakley
2020-06-14 13:00         ` Konstantin Tokarev
2020-06-15  9:28           ` Curtin, Eric
2020-06-15 11:31             ` Philip Oakley
2020-06-15 16:57               ` Junio C Hamano
2020-06-15 17:32                 ` Chris Torek
2020-06-16 15:56                   ` Chris Torek
2020-06-15 19:37                 ` Philip Oakley
2020-06-17 18:30                   ` Junio C Hamano
2020-06-18  8:11             ` demerphq
2020-06-18  8:53               ` Curtin, Eric
2020-06-18  9:28                 ` Curtin, Eric
2020-06-18 10:14                   ` demerphq
2020-06-19  9:17                     ` Curtin, Eric
2020-06-20 16:09                       ` Christian Couder
2020-06-21  0:20                         ` Curtin, Eric
2020-06-16  9:08   ` Christian Couder
2020-06-15 12:55 ` Sergey Organov

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=874kr92xyz.fsf@osv.gnss.ru \
    --to=sorganov@gmail.com \
    --cc=Eric.Curtin@dell.com \
    --cc=Niall.Geary@dell.com \
    --cc=Scott.Rowlands@dell.com \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=mhagger@alum.mit.edu \
    --cc=philipoakley@iee.email \
    --cc=stefanmoch@mail.de \
    /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).