Re: [PATCH v8 0/8] refs: add support for transactional symref updates

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano <gitster@xxxxxxxxx> writes:

> Karthik Nayak <karthik.188@xxxxxxxxx> writes:
>
>> Changes since v7:
>> * I had rebased v7 on next. I've rebased v8 on master. That's the only difference
>> between the two versions.
>
> I've applied them to the same base as used to queue the previous
> round, which I think is "436d4e5b14 The seventeenth batch".  It went
> without conflicts, and tests fine in isolation.  I'll see if it plays
> well with other topics in 'seen' later in the day but not now.
>
> Thanks.
>
>> Junio, this might cause conflicts when merging, I think you resolved them for
>> v6 and hope its the same now. Let me know if I can help otherwise somehow.
>
> The easiest for both of us would be to do this:
>
>  (1) Build on whatever base you want, and format-patch the series.
>      If you are doing "rebase -i" in-place to update from the
>      previous round, this will reuse the previous base so (2) and
>      (3) may become trivial.
>
>  (2) Find the base of where the last round was queued, something like
>
>      $ mine='kn/ref-transaction-symref'
>      $ git checkout "origin/seen^{/^Merge branch '$mine'}...master"
>

I find the '...' always so confusing, I would say suggesting to use
'git-merge-base' would be much nicer here.

>  (3) Apply your format-patch result.  There are three cases
>
>      (3)-1. Things apply cleanly and tests fine.  Go to (4).
>
>      (3)-2. Things apply cleanly but does not build or test fails,
> 	    or things do not apply cleanly.
>
>      In the latter case, you have textual or semantic conflicts
>      coming from the difference between the old base and the base
>      you used to build in (1).  Identify what caused the breakages
>      (e.g., a topic or two may have merged since the base used by
>      (2) until the base used by (1)).
>
>      Check out the latest 'origin/master' (which may be newer than
>      the base used by (2)), "merge --no-ff" the topics you newly

For my own understanding, even if we use '--ff' the end result should be
the same, but using '--no-ff' would ensure that the changes and
conflicts are isolated to the merge commit, right?

>      depend on in there, and use the result of the merge(s) as the
>      base, rebuild the series and test again.  Run format-patch from
>      the last such merges to the tip of your topic.  If you did
>
>      $ git checkout origin/master
>      $ git merge --no-ff --into kn/ref-transaction-symref fo/obar
>      $ git merge --no-ff --into kn/ref-transaction-symref ba/zqux
>      ... rebuild the topic ...
>

I guess you mean '--into-name' here? I would skip mentioning this since
it doesn't have any real effect and is perhaps confusing.

>      Then you'd just format your topic above these "preparing the
>      ground" merges, e.g.
>
>      $ git format-patch "HEAD^{/^Merge branch 'ba/zqux'}"..HEAD
>
>      Do not forget to write in the cover letter you did this,
>      including the topics you have in your base on top of 'master'.
>      Then go to (4).
>
>  (4) Make a trial merge of your topic into 'next' and 'seen', e.g.
>
>      $ git checkout --detach 'origin/seen' &&
>        git revert -m 1 <the merge of the previous iteration into seen> &&
>        git merge kn/ref-transaction-symref
>
>      The "revert" is needed if the previous iteration of your topic
>      is already in 'seen' (like in this case).  You could choose to
>      rebuild master..origin/seen from scratch while excluding your
>      previous iteration, which may emulate what happens on my end
>      more closely.
>
>      This trial merge may conflict.  It is primarily to see what
>      conflicts _other_ topics may have with your topic.  In other
>      words, you do not have to depend on to make your topic work on
>      'master'.  It may become the job of the other topic owners to
>      resolve conflicts if your topic goes to 'next' before theirs.
>
>      Make a note on what conflict you saw in the cover letter.  You
>      do not necessarily have to resolve them, but it would be a good
>      opportunity to learn what others are doing in an related area.
>
>      $ git checkout --detach 'origin/next' &&
>        git merge kn/ref-transaction-symref
>
>      This is to see what conflicts your topic has with other topics
>      that are already cooking.  This should not conflict if (3)-2
>      prepared a base on top of updated master plus dependent topics
>      taken from 'next'.  Unless the context is severe (one way to
>      tell is try the same trial merge with your old iteration, which
>      may conflict in a similar way), expect that it will be handled
>      on my end (if it gets unmanageable, I'll ask to rebase when I
>      receive your patches).
>
> Something like the above should be added to the SubmittingPatches
> document (or its successor to cover more advanced topics, perhaps).
>
> Thanks.

The rest of this looks good, I'll cleanup add the appropriate syntax,
merge in your patches [1] and send something soon!

[1]: https://lore.kernel.org/all/20240510165526.1412338-1-gitster@xxxxxxxxx/#t

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux