Descriverò come viene tipicamente gestito in github. Tuttavia tutto ciò è solo codice, quindi è pertinente altrove.
Progetti davvero spiffy come quelli che ho corso, hanno dei test per assicurarsi che tutto funzioni correttamente.
Inoltre, i progetti interessanti come quelli con cui lavoro hanno una sorta di integrazione continua . Questo significa che esiste un modo per alcuni sistemi esterni indipendenti di eseguire i test da solo. github organizza un progetto per utilizzare un set predefinito di git commit hook che dirà al sistema indipendente che è stata effettuata una modifica.
Di solito ci sono istruzioni che puoi fornire al sistema di integrazione continua che aiuta a costruire il sistema. Nello specifico queste istruzioni o configurazione potrebbero specificare quale versione (o versioni) di OCaml testare con.
Con tutto questo a posto, quando si invia una "richiesta pull", github esegue il hook git che dà il via al continuo sistema di integrazione che rende disponibile lo stato del controllo. Github lo noterà (perché il gancio è stato inscatolato e personalizzato per un ci, quindi sa dove guardare). E quindi avviserà il potenziale proprietario se è sicuro unire il codice o meno. Anche senza integrazione continua github eseguirà una fusione laterale per assicurarsi che non vi siano conflitti di fusione.
Ok. Ma supponiamo che tu stia lavorando con progetti meno sofisticati. Dato che questo è git, anche questo è bello, può aiutarti da solo.
Qui quello che potresti fare è creare un ramo e limitare le modifiche a quel ramo. Quindi richiedi un tiro da quel ramo. Il proprietario probabilmente unirà le modifiche in un ramo con lo stesso nome e poi lo proverà. Se le cose funzionano, allora quella persona unirà il ramo nel ramo "principale".
E infatti se stai usando github e le cose fantasiose o no, è sempre bene lavorare in un ramo per le tue modifiche fuori da un altro progetto. Vedi anche git flow