2009-03-03 17 views
7

Lavoro in un team di 2 sviluppatori e attualmente utilizziamo VSS e non abbiamo integrazione continua o build giornaliera e pochi test di unità.sovversione/cruise control/nant/nunit con progetti e soluzioni di Visual Studio

Sto cercando di cambiare il nostro controllo del codice sorgente di Subversion e allo stesso tempo ottenere installato e funzionante con un processo più professionale.

Subversion/cruise control/Nant/NUnit sembra piuttosto una combinazione popolare da quello che ho visto finora e ho appena installato questi su una macchina di riserva.

Ho scaricato il manuale di sovversione e che è lungo 400 pagine per uno solo degli strumenti!

Davvero voglio solo iniziare a lavorare utilizzando modelli provati già in natura collaudato e quindi, modificando come richiesto e come la mia familiarità con gli strumenti aumenta.

È qualcuno a conoscenza di tutti i libri/tutorial/walkthrough che copre solo gli elementi essenziali per ottenere me up e funzionante il prima possibile con questa particolare combinazione di strumenti?

risposta

5

Ho usato la sovversione da parecchi anni e devo dire che la migliore introduzione che ho trovato è inclusa nel file di aiuto per TortoiseSVN. TortoiseSVN è un altro client gratuito per Windows con integrazione di Explorer. Consiglio vivamente di leggere prima l'aiuto Tortoise, anche prima dei documenti subversion originali. Ove necessario, ti rimanda ai documenti ufficiali.

Tortoise è anche il mio cliente preferito. In effetti, sulla maggior parte delle macchine è l'unico componente di sovversione di cui ho bisogno. Esegue tutte le funzioni che uso abitualmente, compresa la creazione del repository. Mentre ciò non rappresenta un problema per i normali strumenti da riga di comando, e io li installo anche nella maggior parte dei casi, trovo solo gli strumenti cli necessari per l'automazione dagli script e le funzioni di manutenzione del repository (infrequenti).

Sono in procinto di rearchitecting il nostro ambiente di costruzione sul lavoro, quindi sto passando attraverso le opzioni per un sacco di strumenti di sviluppo/sviluppo. Ecco alcuni strumenti che posso consigliare o avere buoni consigli da altri:

WinMerge: strumento di diffusione gratuito altamente raccomandato, installazione dopo TortoiseSVN per la migliore integrazione. Uso questo strumento quotidianamente per molti scopi, alcuni al di fuori dello sviluppo.

TeamCity: server CI che sembra essere ben levigato. Non ho ancora provato questo, ma è il principale contendente su CC.NET data la mia esperienza con CC.NET (un anno) e le buone recensioni che riceve. Hudson è un'altra opzione ben recensita.

VisualSVN Server: un server http (s) consigliato per SVN con integrazione AD per autorizzazioni e console msc in stile microsoft. Ho appena finito di implementarlo al lavoro ed è molto semplice. Un must se si desidera effettuare il check-in/check-out remoto (IP), la crittografia ssl, gli script di hook del repository e altre funzionalità basate sul server.

VisualSVN: un plug-in di Visual Studio ben recensito per SVN. Non ho provato questo, ma è considerato come un acquisto senza problemi. [Modifica: secondo quanto ho letto qui su overflow, AnkhSVN è un'opzione gratuita che funziona allo stesso modo.]

SVN-Monitor: software di monitoraggio gratuito consigliato che ti avvisa di modifiche nel repository. Configurabile per ciò che controlla e l'azione che prende. Dipende dall'installazione di TortoiseSVN.

BugTracker.NET: server di tracciamento dei problemi gratuito consigliato. Presenta l'integrazione SVN per legare i problemi che vengono monitorati alle revisioni di sovversione. Non sono sicuro che TeamCity abbia una funzionalità simile, ma lo usiamo già al di fuori dello sviluppo per tenere traccia dei problemi di helpdesk ed è ottimo per un pacchetto gratuito.

Non ho esperienza con test di unità, copertura, strumenti di documentazione per .NET, quindi non posso commentare lì.

Io sono un Pythonista però, quindi mi collego una cosa Python può essere utile per WRT SVN, che è che si può utilizzare la libreria PySVN per eseguire qualsiasi tipo di lavoro repository automatizzato che è troppo complesso per lo scripting con il comando strumenti lineari. Lo uso per creare tag una volta che una build è pronta per essere taggata e distribuita.

Scegli alcuni di questi strumenti e sarai al passo con il gioco. Sviluppare processi attorno a loro e formare il personale, beh, è ​​ancora un lavoro per te. :)

+0

Si consiglia di utilizzare uno strumento di diffusione a tre vie su WinMerge che solo può mostrare le differenze tra due versioni di un file (e non le modifiche ai file rispetto a una versione di origine). Il mio preferito è SourceGear DiffMerge (download gratuito). –

+0

Grazie per la risposta dettagliata! –

1

Se si desidera ottenere un server Subversion in esecuzione ASAP senza dover sapere molto sul repository, controllare Visual SVN here. È un'app GUI che ti consente di configurare i repository senza bisogno di leggere tutta la documentazione. C'è anche un dimecast su di esso here.

Per quanto riguarda l'integrazione con CC.NET, cercare la documentazione CC.NET sul blocco di controllo di sottoversione here, hanno scomposto nel loro sito abbastanza bene e si dovrebbe essere in grado di trovare i tag xml per svn abbastanza facilmente.

Si consiglia inoltre di implementare strumenti lato client, come Tortoise SVN e Ankh SVN.

Per NANT, prova anche questi dimecasts here. Grandi tutorial su come usare efficacemente nant.

+0

Consiglierei Ankh SVN 2.0 su Visual SVN. Non solo è gratuito (in entrambi i sensi), Ankh utilizza l'API di Microsoft per il controllo del codice sorgente mentre Visual SVN esegue l'hacking con un componente aggiuntivo. Se vuoi vedere il tipo di differenza che ciò comporta, prova a rinominare i file. –

+0

Sono d'accordo, stavo solo suggerendo di utilizzare Visual SVN come gestore di repository di sorta. Creare, eliminare, aggiungere sicurezza dell'utente, gruppi, ecc. Non ero a conoscenza del fatto che Ankh SVN 2.0 avesse quel tipo di funzionalità? – Joseph

+0

Grazie Giuseppe.Li verificherò :-) –

0

Questo probabilmente non è utile per la questione a portata di mano, ma ...

Non sto dicendo che non ce n'è uno ... ma anche se hai avuto questo manuale, si avrebbe un molto da imparare. Hai davvero bisogno di imparare ognuno dei pezzi in isolamento prima di pensare a buttarli tutti insieme.

+0

Vedo il tuo punto ma presumo che esistano ancora scenari/modelli di integrazione comuni? Forse sono un po 'troppo ottimista sul fatto che troverò una risorsa che capita solo per coprire questo esatto combo! –

1

Poiché provieni da uno sfondo VSS, dai un'occhiata a SourceGear Vault e SourceGear Fortress. Se fanno quello che vuoi, saranno più veloci da imparare a causa del fatto che sono progettati per le persone con una mentalità VSS.

Penso che possano anche essere gratuiti per piccole squadre.

(Sarà ancora desiderare di utilizzare NUnit per il test, ma vorrei avere il controllo del codice sorgente e l'integrazione continua risolto prima.)

Se lo fai andare con Subversion troverete che è molto stabile e più quindi in grado di soddisfare la maggior parte delle necessità della squadra. Date un'occhiata a TortoiseSVN per un'interfaccia utente semplice in cima a Subversion

+0

Grazie, ho letto cose positive su Subversion e non mi dispiace uscire dalla mentalità di VSS :-) Vedo il tuo punto su come ottenere SCC e l'integrazione continua in ordine, ma stavo solo speculando su quello che il mio libro ideale coprirebbe a questo punto . Questo libro potrebbe non esistere, naturalmente! –

2

Ho registrato a video illustrando tutte le nozioni di base inclusa l'installazione di SubVersion, CruiseControl.NET. Illustro anche una build distrutta. Lo strumento di sviluppo utilizzato era Delphi, ma avrebbe potuto facilmente essere VS.NET.

+0

Sto appena iniziando a conoscere CI, ho visto il tuo post, ho visto il video, ed è stato piuttosto utile. Sarebbe stato grandioso se avessi delineato alcuni dei requisiti minimi del server (sembra che tu abbia usato una macchina dev.), Ma sono cose che riuscirò a capire. Bel lavoro! – Dave