* How to exchange rerere/redo resolutions?
@ 2019-05-09 23:23 Philip Oakley
2019-05-09 23:49 ` Ævar Arnfjörð Bjarmason
2019-05-10 14:05 ` Torsten Bögershausen
0 siblings, 2 replies; 10+ messages in thread
From: Philip Oakley @ 2019-05-09 23:23 UTC (permalink / raw)
To: Git List; +Cc: Torsten Bögershausen, Junio C Hamano
Hi,
Is there a mechanism for exchanging the rerere resolutions, so that
future fixups, e.g. future clashes on pu rather than master, can be sent
with patch series?
My current use case that there is a large patch [1] for updating long to
size_t for use on Windows, which notes that it will have clashes with
pu, but doesn't appear to have any method of sending a rerere
resolution (which the author is already aware of) to the list. Being
able to flag up such fixes should simplify such conflict resolutions.
I had some very rough ideas about how the resolutions should look rather
similar to three-way conflict markers, with the resolution as the 'base'
(between the ||| - ||| marks), which would be resolved via a --base
merge strategy.
However if there is already a method for exchanging resolutions, where
should I look?
Philip
[1] <20190413151850.29037-1-tboegi@web.de> [PATCH v3 1/1] Use size_t
instead of 'unsigned long' for data in memory
--
Philip
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to exchange rerere/redo resolutions?
2019-05-09 23:23 How to exchange rerere/redo resolutions? Philip Oakley
@ 2019-05-09 23:49 ` Ævar Arnfjörð Bjarmason
2019-05-10 14:59 ` Philip Oakley
2019-05-10 14:05 ` Torsten Bögershausen
1 sibling, 1 reply; 10+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2019-05-09 23:49 UTC (permalink / raw)
To: Philip Oakley; +Cc: Git List, Torsten Bögershausen, Junio C Hamano
On Fri, May 10 2019, Philip Oakley wrote:
> Is there a mechanism for exchanging the rerere resolutions, so that
> future fixups, e.g. future clashes on pu rather than master, can be
> sent with patch series?
>
> My current use case that there is a large patch [1] for updating long
> to size_t for use on Windows, which notes that it will have clashes
> with pu, but doesn't appear to have any method of sending a rerere
> resolution (which the author is already aware of) to the list. Being
> able to flag up such fixes should simplify such conflict resolutions.
>
> I had some very rough ideas about how the resolutions should look
> rather similar to three-way conflict markers, with the resolution as
> the 'base' (between the ||| - ||| marks), which would be resolved via
> a --base merge strategy.
>
> However if there is already a method for exchanging resolutions, where
> should I look?
>
> Philip
>
> [1] <20190413151850.29037-1-tboegi@web.de> [PATCH v3 1/1] Use size_t
> instead of 'unsigned long' for data in memory
You can publish your merged branch somewhere, and others can use
contrib/rerere-train.sh to learn from the resolution.
Supposedly, I've never actually used it...
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to exchange rerere/redo resolutions?
2019-05-09 23:23 How to exchange rerere/redo resolutions? Philip Oakley
2019-05-09 23:49 ` Ævar Arnfjörð Bjarmason
@ 2019-05-10 14:05 ` Torsten Bögershausen
2019-05-10 15:10 ` Philip Oakley
1 sibling, 1 reply; 10+ messages in thread
From: Torsten Bögershausen @ 2019-05-10 14:05 UTC (permalink / raw)
To: Philip Oakley; +Cc: Git List, Junio C Hamano
On Fri, May 10, 2019 at 12:23:28AM +0100, Philip Oakley wrote:
> Hi,
>
> Is there a mechanism for exchanging the rerere resolutions, so that future
> fixups, e.g. future clashes on pu rather than master, can be sent with patch
> series?
>
> My current use case that there is a large patch [1] for updating long to
> size_t for use on Windows, which notes that it will have clashes with pu,
> but doesn't appear to have any method of sending a rerere resolution (which
> the author is already aware of) to the list. Being able to flag up such
> fixes should simplify such conflict resolutions.
>
> I had some very rough ideas about how the resolutions should look rather
> similar to three-way conflict markers, with the resolution as the 'base'
> (between the ||| - ||| marks), which would be resolved via a --base merge
> strategy.
>
> However if there is already a method for exchanging resolutions, where
> should I look?
>
> Philip
>
> [1] <20190413151850.29037-1-tboegi@web.de> [PATCH v3 1/1] Use size_t instead
> of 'unsigned long' for data in memory
>
> --
> Philip
>
That is not an answer to the question.
If it helps, I can rebase the first patch onto git.git/master, and the
cherry-pick the next patches. That can happen next week or so.
And then let it go through the normal pu->next->master->git-for-windows workflow.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to exchange rerere/redo resolutions?
2019-05-09 23:49 ` Ævar Arnfjörð Bjarmason
@ 2019-05-10 14:59 ` Philip Oakley
2019-05-13 22:24 ` Philip Oakley
0 siblings, 1 reply; 10+ messages in thread
From: Philip Oakley @ 2019-05-10 14:59 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason, Philip Oakley
Cc: Git List, Torsten Bögershausen, Junio C Hamano
On 10/05/2019 00:49, Ævar Arnfjörð Bjarmason wrote:
> On Fri, May 10 2019, Philip Oakley wrote:
>
>> Is there a mechanism for exchanging the rerere resolutions, so that
>> future fixups, e.g. future clashes on pu rather than master, can be
>> sent with patch series?
>>
>> My current use case that there is a large patch [1] for updating long
>> to size_t for use on Windows, which notes that it will have clashes
>> with pu, but doesn't appear to have any method of sending a rerere
>> resolution (which the author is already aware of) to the list. Being
>> able to flag up such fixes should simplify such conflict resolutions.
>>
>> I had some very rough ideas about how the resolutions should look
>> rather similar to three-way conflict markers, with the resolution as
>> the 'base' (between the ||| - ||| marks), which would be resolved via
>> a --base merge strategy.
>>
>> However if there is already a method for exchanging resolutions, where
>> should I look?
>>
>> Philip
>>
>> [1] <20190413151850.29037-1-tboegi@web.de> [PATCH v3 1/1] Use size_t
>> instead of 'unsigned long' for data in memory
> You can publish your merged branch somewhere, and others can use
> contrib/rerere-train.sh to learn from the resolution.
>
> Supposedly, I've never actually used it...
The tricky part is when the patch series doesn't apply so the conflict
isn't yet on any branch..
I'm looking to write up some suggestions as a potential project, so that
we can all make better use of this capability (hence the `redo` synonym
alias suggestion).
Philip
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to exchange rerere/redo resolutions?
2019-05-10 14:05 ` Torsten Bögershausen
@ 2019-05-10 15:10 ` Philip Oakley
0 siblings, 0 replies; 10+ messages in thread
From: Philip Oakley @ 2019-05-10 15:10 UTC (permalink / raw)
To: Torsten Bögershausen; +Cc: Git List, Junio C Hamano
Hi Torsten,
On 10/05/2019 15:05, Torsten Bögershausen wrote:
> On Fri, May 10, 2019 at 12:23:28AM +0100, Philip Oakley wrote:
>> Hi,
>>
>> Is there a mechanism for exchanging the rerere resolutions, so that future
>> fixups, e.g. future clashes on pu rather than master, can be sent with patch
>> series?
>>
>> My current use case that there is a large patch [1] for updating long to
>> size_t for use on Windows, which notes that it will have clashes with pu,
>> but doesn't appear to have any method of sending a rerere resolution (which
>> the author is already aware of) to the list. Being able to flag up such
>> fixes should simplify such conflict resolutions.
>>
>> I had some very rough ideas about how the resolutions should look rather
>> similar to three-way conflict markers, with the resolution as the 'base'
>> (between the ||| - ||| marks), which would be resolved via a --base merge
>> strategy.
>>
>> However if there is already a method for exchanging resolutions, where
>> should I look?
>>
>> Philip
>>
>> [1] <20190413151850.29037-1-tboegi@web.de> [PATCH v3 1/1] Use size_t instead
>> of 'unsigned long' for data in memory
>>
>> --
>> Philip
>>
> That is not an answer to the question.
> If it helps, I can rebase the first patch onto git.git/master, and the
> cherry-pick the next patches. That can happen next week or so.
> And then let it go through the normal pu->next->master->git-for-windows workflow.
>
Thanks for the offer, but I should be OK. dscho has already asked that
for testing on Git for Windows I rebase my series back onto master,
rather than pu. The series is at
https://github.com/git-for-windows/git/pull/2179#issuecomment-491095412
--
Philip
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to exchange rerere/redo resolutions?
2019-05-10 14:59 ` Philip Oakley
@ 2019-05-13 22:24 ` Philip Oakley
2019-05-13 22:46 ` Junio C Hamano
2019-05-14 8:21 ` Ævar Arnfjörð Bjarmason
0 siblings, 2 replies; 10+ messages in thread
From: Philip Oakley @ 2019-05-13 22:24 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason
Cc: Git List, Torsten Bögershausen, Junio C Hamano
Hi All,
On 10/05/2019 15:59, Philip Oakley wrote:
>> You can publish your merged branch somewhere, and others can use
>> contrib/rerere-train.sh to learn from the resolution.
>>
>> Supposedly, I've never actually used it...
Does the contrib/rerere-train.sh actually work? I'm reading the code to
ensure I understand what rerere/redo is doing, and in the training it
tries to detect MERGE_RR via L87
if test -s "$GIT_DIR/MERGE_RR"
It's not clear if that is an internal implementation detail, or a
mistaken use of a historic path name. Can anyone enlighten me?
> The tricky part is when the patch series doesn't apply so the conflict
> isn't yet on any branch..
When copying patches across to Git for Windows, the conflict resolution
can be tricky.
--
Philip
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to exchange rerere/redo resolutions?
2019-05-13 22:24 ` Philip Oakley
@ 2019-05-13 22:46 ` Junio C Hamano
2019-05-14 8:21 ` Ævar Arnfjörð Bjarmason
1 sibling, 0 replies; 10+ messages in thread
From: Junio C Hamano @ 2019-05-13 22:46 UTC (permalink / raw)
To: Philip Oakley
Cc: Ævar Arnfjörð Bjarmason, Git List,
Torsten Bögershausen
Philip Oakley <philipoakley@iee.org> writes:
> Does the contrib/rerere-train.sh actually work?
Yes, but it predates many esoteric things like multiple worktrees.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to exchange rerere/redo resolutions?
2019-05-13 22:24 ` Philip Oakley
2019-05-13 22:46 ` Junio C Hamano
@ 2019-05-14 8:21 ` Ævar Arnfjörð Bjarmason
2019-05-14 23:11 ` Philip Oakley
2019-05-15 1:12 ` Junio C Hamano
1 sibling, 2 replies; 10+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2019-05-14 8:21 UTC (permalink / raw)
To: Philip Oakley; +Cc: Git List, Torsten Bögershausen, Junio C Hamano
On Tue, May 14 2019, Philip Oakley wrote:
> Hi All,
>
> On 10/05/2019 15:59, Philip Oakley wrote:
>>> You can publish your merged branch somewhere, and others can use
>>> contrib/rerere-train.sh to learn from the resolution.
>>>
>>> Supposedly, I've never actually used it...
>
> Does the contrib/rerere-train.sh actually work? I'm reading the code
> to ensure I understand what rerere/redo is doing, and in the training
> it tries to detect MERGE_RR via L87
>
> if test -s "$GIT_DIR/MERGE_RR"
>
> It's not clear if that is an internal implementation detail, or a
> mistaken use of a historic path name. Can anyone enlighten me?
Historic? No, this is path.c now on master:
path.c:1454:REPO_GIT_PATH_FUNC(merge_rr, "MERGE_RR")
Internal, sure. We don't document it so it could change in theory, but
then we'd probably change rerere-train.sh along with it...
>> The tricky part is when the patch series doesn't apply so the
>> conflict isn't yet on any branch..
> When copying patches across to Git for Windows, the conflict
> resolution can be tricky.
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to exchange rerere/redo resolutions?
2019-05-14 8:21 ` Ævar Arnfjörð Bjarmason
@ 2019-05-14 23:11 ` Philip Oakley
2019-05-15 1:12 ` Junio C Hamano
1 sibling, 0 replies; 10+ messages in thread
From: Philip Oakley @ 2019-05-14 23:11 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason
Cc: Git List, Torsten Bögershausen, Junio C Hamano
Hi Ævar,
On 14/05/2019 09:21, Ævar Arnfjörð Bjarmason wrote:
> On Tue, May 14 2019, Philip Oakley wrote:
>
>> Hi All,
>>
>> On 10/05/2019 15:59, Philip Oakley wrote:
>>>> You can publish your merged branch somewhere, and others can use
>>>> contrib/rerere-train.sh to learn from the resolution.
>>>>
>>>> Supposedly, I've never actually used it...
>> Does the contrib/rerere-train.sh actually work? I'm reading the code
>> to ensure I understand what rerere/redo is doing, and in the training
>> it tries to detect MERGE_RR via L87
>>
>> if test -s "$GIT_DIR/MERGE_RR"
>>
>> It's not clear if that is an internal implementation detail, or a
>> mistaken use of a historic path name. Can anyone enlighten me?
> Historic? No, this is path.c now on master:
Hmm, I'd now agree it's not a mistake, but the implementation detail is
historic. I've now found [1,2,3,4] from before I knew of Git! And it's
not mentioned in any of the documentation.
>
> path.c:1454:REPO_GIT_PATH_FUNC(merge_rr, "MERGE_RR")
>
> Internal, sure. We don't document it so it could change in theory, but
> then we'd probably change rerere-train.sh along with it...
Hopefully it'll be integrated into rerere/redo before that ;-), along
with a bit more documentation on the capability for those who arrived
late to the party. The use of this implementation detail came up
yesterday in [5].
>>> The tricky part is when the patch series doesn't apply so the
>>> conflict isn't yet on any branch..
>> When copying patches across to Git for Windows, the conflict
>> resolution can be tricky.
--
Philip
[1] git-rerere: reuse recorded resolve, 29 Jan 2006,
https://public-inbox.org/git/7v4q3no0v7.fsf@assigned-by-dhcp.cox.net/
[2] StGIT and rerere, 26 Oct 2006,
https://public-inbox.org/git/7vfydbkn64.fsf@assigned-by-dhcp.cox.net/
[3] git-explain, 04 Dec 2006,
https://public-inbox.org/git/7vwt57j94c.fsf_-_@assigned-by-dhcp.cox.net/
[4] Make git-rerere a builtin, 20 Dec 2006,
https://public-inbox.org/git/Pine.LNX.4.63.0612201738000.19693@wbgn013.biozentrum.uni-wuerzburg.de/
[5] merge: add --quit, 14 May 2019 ,
https://public-inbox.org/git/nycvar.QRO.7.76.6.1905141540300.44@tvgsbejvaqbjf.bet/
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: How to exchange rerere/redo resolutions?
2019-05-14 8:21 ` Ævar Arnfjörð Bjarmason
2019-05-14 23:11 ` Philip Oakley
@ 2019-05-15 1:12 ` Junio C Hamano
1 sibling, 0 replies; 10+ messages in thread
From: Junio C Hamano @ 2019-05-15 1:12 UTC (permalink / raw)
To: Ævar Arnfjörð Bjarmason
Cc: Philip Oakley, Git List, Torsten Bögershausen
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>> if test -s "$GIT_DIR/MERGE_RR"
>>
>> It's not clear if that is an internal implementation detail, or a
>> mistaken use of a historic path name. Can anyone enlighten me?
>
> Historic? No, this is path.c now on master:
>
> path.c:1454:REPO_GIT_PATH_FUNC(merge_rr, "MERGE_RR")
>
> Internal, sure. We don't document it so it could change in theory, but
> then we'd probably change rerere-train.sh along with it...
Doesn't the function defined by REPO_GIT_PATH_FUNC() do far more
than a simple concatenation? I suspect that he questions why
"$GIT_DIR/MERGE_RR" is an OK substitute for that.
The $GIT_DIR variable in the script is set by inclusion of
git-sh-setup, that runs "git rev-parse --git-dir"; in post "git
worktree" world, where ".git" may be a "gitdir: $real_location" text
file, this will give the actual directory, not the path to a regular
file at the top of the working tree whose name is ".git", so the
answer to the question is that the concatenation we see should be
OK, even in the "git worktree" world.
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-05-15 1:12 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-09 23:23 How to exchange rerere/redo resolutions? Philip Oakley
2019-05-09 23:49 ` Ævar Arnfjörð Bjarmason
2019-05-10 14:59 ` Philip Oakley
2019-05-13 22:24 ` Philip Oakley
2019-05-13 22:46 ` Junio C Hamano
2019-05-14 8:21 ` Ævar Arnfjörð Bjarmason
2019-05-14 23:11 ` Philip Oakley
2019-05-15 1:12 ` Junio C Hamano
2019-05-10 14:05 ` Torsten Bögershausen
2019-05-10 15:10 ` Philip Oakley
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).