Verhindere Pushing von Commits, die zu geschlossenen Zweigen hinzugefügt werden

8

Wie kann ich einen Mercurial-Server konfigurieren, um Commits auf einen benannten Zweig zu beschränken, nachdem dieser geschlossen wurde? Ich möchte nur, dass der Repository-Administrator die Zweigstelle erneut öffnen kann.

Ссылка sagt, dass geschlossene Changesets durch "close = 1 im zusätzlichen Feld des Changesets" identifiziert werden können. Es ist nicht klar, wie das zusätzliche Feld eines Changesets mithilfe der Mercurial API gelesen werden kann.

    
Gili 18.10.2010, 17:13
quelle

3 Antworten

7

Es gibt eine ACL-Erweiterung, die zusammen mit Mercurial vertrieben wird. Sie sollten in der Lage sein, die eingefrorenen Zweige anzugeben, indem Sie allen Commits außer dem Administrator das Commit verweigern. Ich bin nicht sicher, ob benannte Zweige diese Möglichkeit nutzen können.

Konfigurieren von acls:

%Vor%     
pyfunc 18.10.2010, 17:24
quelle
4

Ein Server kann Commits nicht beschränken, aber er kann es ablehnen, Pushs zu akzeptieren, die Constraints verletzen. Hier ist ein Hook, den Sie auf einen Server setzen können, um Pushs abzulehnen, die Änderungssets haben, die sich in einem geschlossenen Zweig befinden:

%Vor%

Sie würden diesen Hook wie folgt installieren:

%Vor%

Es gibt fast sicher eine Möglichkeit, dies mit In-Python-Hooks mit der API zu tun, auf die Sie verwiesen haben, aber Shell-Hooks funktionieren auch ziemlich gut.

    
Ry4an Brase 18.10.2010 18:46
quelle
1

Hier ist ein In-Process-Hook, der zusätzliche Changesets in einem geschlossenen Zweig ablehnen sollte.

%Vor%

Der Hook kann im pretxncommit-Modus (geprüft während einer lokalen Festschreibungstransaktion) oder im pretxnchangegroup-Modus (geprüft, wenn Änderungssets aus externem Repo hinzugefügt wurden) mit den folgenden hgrc-Einträgen ausgeführt werden:

%Vor%

Nicht sicher, ob dieser Hook mit Mercurial-Versionen vor 2.2 funktioniert.

    
arathorn 17.09.2012 18:12
quelle

Tags und Links