2012-07-24 11 views
10

ho scoperto che quando si fa clic su "Invia Patch Set" nel interfaccia web Gerrit, che sarà sia sufficiente aggiungere un commit a quel ramo, o creare una fusione commettere se un altro impegno è stato presentato poco prima.Gerrit rebase sempre prima di presentare patchset per evitare una fusione commettere

Esempio che crea 2 commettono: L'attuale commit e un merge commit:

  1. utente invia patchset Una seconda commettere O
  2. utente invia patchset B a seconda commettere O
  3. Invia Patch Set A
  4. Invia Patch Set B -> Crea merge commettere tra O -> a e O -> B

C'è un "Reba SE Change" pulsante, che è grande, ma significa che per inviare una patch impostato tutti dovrebbero sempre fare:

  1. Clicca Rebase Change
  2. Clicca Invia Change Set

L'unica ragione Vedo che un commit di merge è utile per mantenere le date dei commit (ma capisco perché è richiesto senza un rebase).

Non c'è uno rebase automatico o almeno un assegno per evitare di generare un commit merge indesiderato?

+1

Questo * non * è relativo a 'git config branch.autosetuprebase'. – Wernight

risposta

12

Sì. Cambia l'azione Invia per i tuoi progetti su Cherry Pick. Ciò sarà più o meno lo stesso di quando si preme il pulsante di invio. Manterrà la cronologia pulita che stai cercando senza commit di unione quando invii le modifiche.

+1

Ottimo! L'ho trovato in Admin> Progetti> * MyProject *> Generale> ** Opzioni progetto ** – Wernight