git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Gated Merge?

From
Andrew Ardill <andrew.ardill@gmail.com>
Date
Feb 11, 2016, 22:42 UTC
Message-ID
<CAH5451=rVmdTra0rVNEkfdfOeSyeETSMo7YGWdYozZr_=YyAtw@mail.gmail.com>
In-Reply-To
<xmqqvb5uvr40.fsf@gitster.mtv.corp.google.com>
On 12 February 2016 at 09:06, Junio C Hamano <gitster@pobox.com> wrote:
Show 27 quoted lines
>
> To realize this, there are low-hanging-fruit building blocks that
> are trivial:
>
>  - Such an annotation can be made as a note attached to the commit
>    in question;
>
>  - Such a check can be done in pre-commit hook;
>
>  - Such a pre-commit hook can iterate over this set of commits
>
>     DIFF=$(git rev-list --left-right HEAD...MERGE_HEAD)
>
>    collect these Merge Gate annotations from the commit appears on
>    the left hand side (e.g. only exists on the trunk that a side
>    branch is about to be merged in), and run them.
>
> But the last one feels very costly, and I suspect that there must be
> a better way to do this.  I do not think we want the "what to do"
> part (i.e. checking new lines for __attribute__ in the first
> example, or rewriting new lines that has __attribute_ in the second
> example) to be in git-core; that clearly is outside the scope of the
> plumbing.  But the part that finds these "annotations", especially
> if we can come up with a fast implementation that may be hard to
> script, may be a good addition to the plumbing command set.
>
> Thoughts?

What is the benefit in doing this in notes vs having the tests in the working tree?

Pros:
 - merge-gates can be added after the commit, but will stick with the
commit if it moves around (as opposed to creating a second commit to
add the merge-gate to the working tree)
 - cross repository standards can be established that allow
merge-gates to be detected and run automatically (arguably could be
done with a standardised folder structure too, but that is more
disruptive)
 - can view the relevant merge-gates in git log against each commit
that they are protecting
Cons:
 - difficult to see the current complete set of merge-gates
 - difficult to make changes to a number of merge-gates at the same time
 - poorly defined behaviour when multiple merge-gates overlap in
functionality. Which gates execute first? What if I reorder the
commits?

My practical knowledge of notes is severely lacking so excuse me if I missed anything obvious.

Regards,
Andrew Ardill

(sorry for the double post Junio, gmail ate my plain text encoding at some point...)

Previous: Junio C HamanoNext: Stefan Beller
Message 2 of 7 in “Gated Merge?”
  1. Junio C HamanoFeb 11, 2016
  2. Andrew ArdillFeb 11, 2016
  3. Stefan BellerFeb 11, 2016
  4. Junio C HamanoFeb 12, 2016
  5. Jeff KingFeb 12, 2016
  6. Junio C HamanoFeb 12, 2016
  7. Jeff KingFeb 12, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.