Attualmente utilizziamo Source Safe e abbiamo avviato la migrazione a Subversion. Tutti i nostri SDK esterni (> 500 MB) sono conservati in Source Safe in questo momento e sto cercando modi per spostarli da VSS a un repository.
Abbiamo progetti C ++ (principalmente), C # (molti), Java (pochi). Centinaia di progetti, tutti in esecuzione su Windows.
Ho esaminato un paio di gestori delle dipendenze ma non sono soddisfatto:
- NuGet - buono per .Net ma doloroso per C ++
- Ivy - non guarda in profondità, ma non sembra accettabile per C ++
Prima domanda: che altro dovrei controllare? Dovrebbe essere facile da usare per uno sviluppatore front-end. Il caso migliore è una semplice build all'interno dell'IDE.
Attualmente sono propenso a questa soluzione:
Assegna un disco usato raramente, come S: e dichiaralo come "DEV HOME".
Quindi posiziona gli esterni qui:
S:\SDK\boost.30\...
S:\SDK\boost.45\...
S:\SDK\oracle\agile_9.0.0.0\...
S:\SDK\IBM\lotus_8.0\...
S:\SDK\IBM\lotus_9.0\...
S:\Tools\NuGet\nuget.exe
S:\Tools\clr\gacutil.exe
La macchina di costruzione automatica terrà la copia master di questa 'DEV HOME'. Ogni sviluppatore dovrebbe copiare gli SDK necessari dalla macchina da autobuild a quella locale e creare un disco "falso" con subst .
Non riesco a trovare grossi problemi con questa soluzione:
- Filiali. I progetti in diversi rami contengono riferimenti a diverse versioni di SDK (ad esempio boost)
- La versione del componente esterno non cambierà troppo frequentemente, quindi non ci saranno centinaia di, per esempio, versioni boost.
- Facile da configurare per gli sviluppatori.
- Percorsi assoluti supportati da qualsiasi strumento.
Problemi minori:
- Personalmente per me non è una soluzione bellissima.
- Il disco (S :) può essere occupato
- Non può essere fatto in Linux (ma al momento non ci interessa)
Seconda domanda: quali problemi puoi vedere con questa soluzione?