lilypond-devel
[Top][All Lists]
Advanced

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

Re: Master ahead of staging


From: David Kastrup
Subject: Re: Master ahead of staging
Date: Sun, 16 Feb 2020 18:56:04 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Han-Wen Nienhuys <address@hidden> writes:

> On Sun, Feb 16, 2020 at 5:23 PM David Kastrup <address@hidden> wrote:
>
>> Han-Wen Nienhuys <address@hidden> writes:
>>
>> > sorry, my mistake (another reason to move to different tooling.)
>>
>> I very strongly disagree.  We don't want to move to a tooling where
>> material that is untested in its context gets pushed to the resource
>>
>
> You don't understand what I'm trying to say.
>
> If there is a policy that nobody pushes directly to master, the normal
> course of action is to enforce that policy using tooling. Both GitLab
> and GitHub offer "protected branches", see eg.
> https://docs.gitlab.com/ee/user/project/protected_branches.html. Gerrit
> offers per-branch permissions.

Ok.  Strictly speaking that's not as much a matter of the tooling but of
the system administration (part of which is done by tools on
GitLab/GitHub).  I have some sketch of a repository hook implementing
our policy (master can only ff, staging _can_ be force-pushed, neither
can be deleted, dev/name is free for name).  But installing that would
have meant extra work for the Savannah sysadmins.  So in the end I
decided not to bother.  The solution would likely have been a better
match to our current workflow than what GitLab can offer, but of course
a partial solution beats an unimplemented solution.

> It's not that hard to make it a habit to never push to master but
>> instead to staging
>
>
> it's pretty easy to push to master accidentally, because my shell
> history is full of "git push origin HEAD:master" commands.

I think a push command has enough of an effect that typing it in
manually is not really much of a chore.  If not fully sure, preceded by
a push -n command.  I don't think I ever referred to push commands by
history.  The most I do is use command line editing for the two-push job
of resetting staging:

git push origin :refs/heads/staging
git push origin origin:refs/heads/staging

(for example) in order to be sure that the branch I recreate is the same
I removed.

So after all that: more fine-grained manners of implementing policy
without having to manually engage sysadmins certainly would be a boon.
Not having the "I need to bother someone, possibly multiple times"
threshold helps.

-- 
David Kastrup
My replies have a tendency to cause friction.  To help mitigating
damage, feel free to forward problematic posts to me adding a subject
like "timeout 1d" (for a suggested timeout of 1 day) or "offensive".



reply via email to

[Prev in Thread] Current Thread [Next in Thread]