Devo accettare richieste di pull dietro al master?

6

A volte il mio progetto ha più richieste di pull. Non so quale sia il processo corretto per gestirlo.

Attualmente quello che faccio è

  • Verifica ogni richiesta di pull.
  • il codice di controllo sembra ok e tutti i commenti sono stati trattati
  • controlla se travis-ci è passato e se github può unire automaticamente la richiesta

se tutto quanto sopra è corretto, accetto la richiesta di pull.

Tuttavia, c'è un problema. Una volta accettata la prima richiesta di pull, tutte le altre richieste di pull sono in realtà obsolete.

Questo processo incoraggia gli errori perché:

  • Travis dovrebbe controllare di nuovo la richiesta di pull, ma non
  • Gli sviluppatori dovrebbero aggiornare la propria filiale e riverificare il funzionamento delle cose.

Ma anche questo processo non è perfetto.

  • Il processo crea un collo di bottiglia sulla fusione delle richieste di pull.
  • Non c'è modo per me di sapere quando il ramo è stato unito - github non indica che "questa richiesta di pull è 1 commit dietro". Quindi mi richiede di fare un confronto manuale.
  • È difficile applicare o definire come best practice.

La mia domanda è: qual è il modo corretto per gestire le richieste di pull accumulate sul mio progetto?

  • Ogni richiesta di pull dovrebbe essere aggiornata se il master cambia?
  • Come rendere lo strumento CI (nel mio caso travis) per eseguire di nuovo se il ramo di destinazione è cambiato anche ..
posta guy mograbi 18.01.2015 - 09:24
fonte

1 risposta

6

Accettare le richieste di pull leggermente indietro rispetto al master mi sembra perfettamente soddisfacente, a meno che non ci sia un motivo valido per credere che i conflitti siano probabili.

Idealmente la maggior parte delle tue richieste di pull dovrebbe essere su parti diverse del codebase, e quelle parti dovrebbero essere disaccoppiate abbastanza che nessuno di loro è molto improbabile da rompere la maggior parte delle altre. In questo caso, forzare tutti tranne uno dei richiedenti ad aggiornare le loro richieste di pull è poco più della burocrazia.

Inoltre, in molti casi dovrebbe essere possibile tu per verificare che le cose funzionino quando accetti queste richieste, perché 1) hai dei test automatici (giusto?) e 2) le richieste di pull dovrebbero venire un esempio di codice minimo che è fisso o abilitato da tale richiesta pull, o almeno una descrizione sufficientemente dettagliata per produrre un esempio del genere.

Ma se hai diverse richieste di pull che chiaramente entrano in conflitto tra loro? Se tutti cercano di fare la stessa cosa, scegli la migliore e chiedi agli altri richiedenti di testarla per assicurarti che risolva il problema per tutti. Se tutti stanno provando a fare cose diverse con lo stesso pezzo di codice, e non c'è un modo corretto per districarle (questo dovrebbe essere molto raro!), Quindi vorrei mordere il proiettile e provare a fare alcuni interventi di git per combinarli in una singola richiesta di pull che puoi chiedere a tutti di testare prima di accettare.

    
risposta data 20.01.2015 - 08:54
fonte

Leggi altre domande sui tag