Domanda

La macchina per costruire al lavoro ha molti progetti, ma stiamo riscontrando solo un problema con uno.

Due progetti sono molto simili, uno si sviluppa in modalità debug, l'altro in modalità di rilascio. Entrambi cancellano la directory dei progetti, quindi eseguono in modo sicuro Get from source completo. La build di debug ottiene la fonte bene e abbastanza rapidamente, ma la build di rilascio richiede anni per ottenere la fonte (si ferma per un lungo periodo nella parte CheckingModifications, mentre la build di debug non si interrompe per un tempo quasi). I blocchi sourcecontrol sono identici (inclusi in un singolo file) e sono i seguenti:

<sourcecontrol type="vss" autoGetSource="true" applyLabel="false">
    <executable>C:\Program Files\Microsoft Visual Studio\VSS\win32\SS.EXE</executable>
    <project>$/Projects</project>
    <username>####</username>
    <password>####</password>
    <ssdir>\\####\SourceCode\VSS</ssdir>
    <workingDirectory>D:\Projects\</workingDirectory>
    <culture>en-GB</culture>
    <cleanCopy>True</cleanCopy>
</sourcecontrol>

Qualcuno ha qualche idea sul perché il rilascio costruisca un blocco di controllo del codice sorgente più lento?

È stato utile?

Soluzione

Alla fine siamo passati da SourceSafe a SourceGear Vault (principalmente per le funzionalità di diramazione, ma anche la velocità e l'affidabilità erano fattori importanti).

Abbiamo anche spostato la nostra macchina da build da un vecchio PC a un server che ha una connessione da 1 Gb / s al server di origine, anziché 100 Mb / s, il che ha aiutato notevolmente.

Alla fine, quando stavo installando e testando Vault sulla stessa macchina (beh, un clone) della vecchia macchina di compilazione, stava tagliando il funzionamento del sorgente da circa 10 minuti a 5. Una volta installato sulla build il tempo di recupero dell'origine del server è ora di circa 1 minuto.

Il mio consiglio a chiunque è solo di passare da SourceSafe a qualsiasi altra cosa ... non ve ne pentirete.

Altri suggerimenti

Le build di debug e release sono in esecuzione contemporaneamente? In tal caso, ho potuto vedere uno in attesa che l'altro finisse.

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