Mi piacerebbe sapere come funziona la funzionalità "ritardo di commit" sui server CI non integrati con i repository di controllo di origine. Concettualmente, il processo funziona come segue:In che modo un "ritardo di commit" funziona con i repository di controllo del codice sorgente e i server CI?
- Check in codice modifica
- server di CI costruisce le modifiche
- Se la generazione passa, il codice si è impegnata a fonte repository di controllo
- Se la compilazione fallisce, il codice non è impegnato nel repository controllo di origine
La maggior parte dei server CI funziona eseguendo il polling dei repository di controllo di origine per le modifiche e quindi abbassando il codice. Quindi, nello scenario di commit ritardato, gli sviluppatori controllano il loro codice nel server CI anziché un vero repository di controllo del codice sorgente e quindi il server CI sta trasmettendo il codice al repository? Oppure, in alternativa, i server CI modificano le modifiche solo se la compilazione fallisce?
Sto pensando a due sistemi di integrazione continua in particolare. Team Foundation Server offrirà questa funzionalità nella versione successiva, ma ha senso in quanto Team Build (sistema CI) all'interno di TFS è integrato con il repository di controllo del codice sorgente. Tuttavia, nel caso di Team City, TC è in grado di connettersi a qualsiasi sistema di controllo del codice sorgente e non è necessariamente integrato con o anche sullo stesso server del repository di controllo del codice sorgente. Come funziona?
Modifica: Aprire una taglia su questa domanda nella speranza che io possa ottenere alcune più risposte possibili.