Domanda

Nel nostro team ci sono di solito spingendo tutti i compiti in rami separati, e dopo che il rilascio-Review Manager quei rami e unirli in 'master' ramo

A volte membri del team dimenticano di fondere le loro filiali con il ramo principale (prima di spingere) - quindi quello che sto cercando di fare è - in uscita il messaggio "Si prega di fondersi con il maestro" dopo spinta utente - presumo ho bisogno di controllare qualcosa sul post-ricezione gancio a distanza .. c'è qualche esempio? .. o cosa devo fondamentalmente fare?

Aggiornamento: motivo principale per questo - ridurre al minimo il numero di potenziali conflitti (dal committer (non rilasciare-manager) li risolverà)

È stato utile?

Soluzione

Se git cherry new-branch master ha alcun output, allora qualcuno non ha rebase prima di spingere.

Altri suggerimenti

Credo che da "fondersi con master", è in realtà dire rebase sulla parte superiore del maestro .

Ogni sviluppatore dovrebbe:

  • maestro di tiro
  • rebase suo ramo in cima master prima spingendola

in modo che il rilascio-manager per avere un fast-forward merge solo dopo aver esaminato il ramo.
Se appare qualsiasi tipo di conflitto, la stessa release-manager dovrebbe informare lo sviluppatore, chiedendogli di (di nuovo) tirare master e fare un rebase.
In questo modo, solo lo sviluppatore ha il compito di risolvere i conflitti, non il rilascio-manager.

rebase vs. unire


Per un processo automatico, Andrei con una centrale gancio aggiornamento , che provare eseguire una stampa da padroneggiare, e verificare se "fast-forward" è parte dell'output del comando. In caso contrario, il gancio fallirà con un git send-email.
Non ho alcun esempio di uno script in questo momento.

In realtà non è un buon modo di fare questo. Ci sono alcune complicazioni, la più ovvia è che il tuo rebase-da-master / push-to-master operazione non è atomica. Cioè qualcuno potrebbe spingere qualcosa nel mezzo. Vorrei piuttosto suggerire di dare un'occhiata per esempio Gitorious che rende il lavoro del manager di rilascio molto più facile. Si può facilmente vedere che cosa il commit comprende e può accettare / rifiutare i commit facilmente.

Ma si potrebbe trovare git-wtf utile. Essa mostra come confrontare il repository locale con quello remoto se ancora insistete a cercare una soluzione automatizzata.

Davvero non si desidera mantenere unioni intrecciano. In entrambi i rami argomento dovrebbero essere fuse in master o rami dovrebbero rimanere separati, essendo fusa da master.

Forse quello che stai cercando è che un ramo prima di essere spinto viene ricalcolato il maestro, in modo che il numero di potenziali conflitti è ridotto al minimo, dal momento che il contribuente ha già risolto la maggior parte di loro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top