Domanda

Sto guidando il gruppo di programmazione di un team di robotica delle scuole superiori. Vorrei impostare un repository di controllo del codice sorgente per evitare il caos di copiare manualmente le directory per la condivisione / backup e unirle manualmente. La posizione di costruzione di solito non avrà accesso alla rete, quindi questo mi ha portato a sistemi di controllo della versione distribuiti (DVCS), che non conosco.

I requisiti più grandi sono i seguenti:

  1. Funziona con Windows XP e Vista. (must assoluto)
  2. È possibile eseguire il commit delle modifiche a livello locale. (Sembra essere il caso di tutti i DVCS)
  3. I repository di più macchine possono essere uniti senza accesso alla rete. (Forse memorizzando il repository su un'unità USB e scambiando l'unità su un'altra macchina, quindi unendo da lì)

Dovrebbe anche essere facile da imparare e usare, preferibilmente attraverso un'interfaccia grafica, dato che sto lavorando con studenti delle scuole superiori che non hanno mai usato un sistema di controllo della versione.

Eventuali suggerimenti su quale DVCS si adatta meglio a questo.

EDIT:

Grazie per le risposte. Mercurial ha un bell'aspetto, ma supporta l'unione dei repository da una directory all'altra o devo configurare una rete locale per fondersi?

È stato utile?

Soluzione

Mercurial è abbastanza facile da usare sia su Windows che Linux. TortoiseHg è un front-end gui per Windows che si integra in explorer; Funziona bene Entrambi sono Open Source. Comprendo che utilizzare Git su Windows è meno semplice.

  

Grazie per le risposte. mutevole   sembra abbastanza buono, ma supporta   unendo i repository da uno   directory ad un altro, o devo   impostare una rete locale da unire   tutto?

Mercurial / TortoiseHg farà questo (e altro), così come tutti gli altri strumenti di controllo della versione distribuita (per quanto ne so). Credo che risolverà il tuo problema. È un DVCS e, con TortoiseHg, è facile da usare su Windows. Probabilmente funzioneranno anche altri strumenti di controllo della versione distribuita (ad esempio bzr), ma ho meno esperienza con loro. Subversion (svn) è uno strumento di controllo versione centralizzato. Con alcune soluzioni alternative potresti farlo funzionare nel tuo ambiente, ma in realtà non risolve i problemi che vuoi risolvere. Non ho idea del motivo per cui altri rispondenti lo stanno suggerendo.

Altri suggerimenti

Git è adorabile, ma il supporto di Windows è estremamente lento (anche con MSysGit ). Consiglierei Mercurial. Non l'ho usato da solo, ma ho sentito che il suo supporto di Windows è abbastanza utilizzabile. Inoltre, ha una curva di apprendimento leggermente più semplice per le persone che provengono dal VCS tradizionale (come SVN).

Suppongo che Mercurial si adatterebbe bene alle tue esigenze.

  • È scritto in Python, quindi non avrai problemi a eseguirlo su Windows.
  • Le modifiche possono essere facilmente applicate localmente usando patch o bundle
  • Ci sono un paio di strumenti GUI disponibili (cerca TurtoiseHG)

Mercurial è il VCS che sto usando personalmente. Davvero facile da imparare. Sicuramente vuoi provarlo su Git poiché il supporto per Windows è decisamente migliore.

Adoro il bazar: http://bazaar-vcs.org/

Ha tutto ciò che chiedi ed è molto facile da usare.

  

Grazie per le risposte. Mercurial ha un bell'aspetto, ma supporta l'unione dei repository da una directory all'altra o devo configurare una rete locale per fondersi?

Sì, lo fa. Tutti supportati dai DVCS. L'unica differenza tra questo e l'unione da un server è in genere che si passa al comando appropriato un percorso di file locale anziché un URL.

In Mercurial sembra così:

Supponi di avere due repository, uno sul disco rigido (C: \ Project) e uno sull'unità flash (F: \ Project):

  

cd C: \ Project

     

hg pull F: \ Project

Allo stesso modo se hai due repository sullo stesso sistema:

  

cd C: \ Project

     

hg pull C: \ Project1

Se è necessaria un'unione, verranno create due "teste" e ti chiedo di unirli con hg merge .

  

ha aggiunto 1 changeset con 1 modifiche a 1 file (+1 head)

     

(esegui 'hg heads' per vedere head, 'hg merge' per unire)

Si noti che è lo stesso che se si estrae e si fonde da un server.

Ho trovato SVN incredibilmente semplice da configurare e utilizzare, specialmente per un singolo utente!

Una cosa che ho trovato davvero interessante: il protocollo ssh + svn ha usato la capacità di SSH di eseguire una riga di comando sul sistema remoto per avviare effettivamente SVN, quindi in realtà non c'era alcuna configurazione sul server al di fuori della creazione di una directory per il tuo repository.

SVN ha molte shell se non ti piace la CLI (TortiseSVN su Windows) - quindi è facile da usare come qualsiasi altra cosa.

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