Bestes Versionskontrollsystem für eine nicht vernetzte Umgebung?

8

Ich betreue die Programmiergruppe eines High School Robotik Teams. Ich möchte ein Quellcodeverwaltungs-Repository einrichten, um das Durcheinander zu vermeiden, Verzeichnisse manuell für das Teilen / Backups zu kopieren und manuell zusammenzuführen. Der Build-Ort wird normalerweise keinen Netzwerkzugriff haben, was mich zu verteilten Versionskontrollsystemen (DVCS) geführt hat, mit denen ich nicht vertraut bin.

Die größten Anforderungen sind die folgenden:

  1. Funktioniert unter Windows XP und Vista. (Absolutes Muss)
  2. Änderungen können lokal festgeschrieben werden. (Scheint bei allen DVCS der Fall zu sein)
  3. Repositories von mehreren Computern können ohne Netzwerkzugriff zusammengeführt werden. (Möglicherweise indem Sie das Repository auf einem USB-Laufwerk speichern und das Laufwerk auf ein anderes Gerät austauschen und dann von dort aus fusionieren)

Es sollte auch leicht zu lernen und zu verwenden sein, vorzugsweise durch eine grafische Benutzeroberfläche, da ich mit Schülern arbeite, die noch nie ein Versionskontrollsystem benutzt haben.

Irgendwelche Vorschläge, welcher DVCS das am besten passt.

BEARBEITEN:

Danke für die Antworten. Mercurial sieht ziemlich gut aus, aber unterstützt es das Zusammenführen von Repositories von einem Verzeichnis zu einem anderen oder muss ich ein lokales Netzwerk für die Zusammenführung einrichten?

    
Josh 17.10.2008, 16:23
quelle

6 Antworten

5

Mercurial ist sowohl unter Windows als auch unter Linux ziemlich einfach zu verwenden. TortoiseHg ist ein GUI-Frontend für Windows, das in den Explorer integriert werden kann; Es funktioniert gut. Beide sind Open Source. Ich verstehe, dass die Verwendung von Git unter Windows weniger einfach ist.

  

Danke für die Antworten. Mercurial   sieht ziemlich gut aus, aber unterstützt es   Zusammenführen von Repositories von einem   Verzeichnis zu einem anderen, oder muss ich   Richten Sie ein lokales Netzwerk zum Zusammenführen ein   über?

Mercurial / TortoiseHg wird dies (und mehr) tun, ebenso wie alle anderen Tools zur verteilten Versionskontrolle (soweit ich weiß). Ich glaube, es wird Ihr Problem lösen. Es ist ein DVCS und mit TortoiseHg ist es einfach unter Windows zu verwenden. Andere verteilte Versionskontrollwerkzeuge werden wahrscheinlich auch funktionieren (zB bzr), aber ich habe weniger Erfahrung damit. Subversion (svn) ist ein zentralisiertes Tool zur Versionskontrolle. Mit einigen Workarounds könnten Sie es in Ihrer Umgebung funktionieren lassen, aber es behandelt wirklich nicht die Probleme, die Sie lösen möchten. Ich habe keine Ahnung, warum andere Responder es vorschlagen.

    
ejgottl 17.10.2008, 16:30
quelle
6

Git ist nett, aber seine Windows-Unterstützung ist extrem lax (sogar mit MSysGit ). Ich würde Mercurial empfehlen. Ich habe es selbst nicht benutzt, aber ich habe gehört, dass seine Windows-Unterstützung ziemlich brauchbar ist. Außerdem hat es eine etwas leichtere Lernkurve für Leute, die von traditionellen VCS kommen (wie SVN).

    
Daniel Spiewak 17.10.2008 16:29
quelle
2

Ich denke, Mercurial würde Ihren Bedürfnissen entsprechen.

  • Es ist in Python geschrieben, Sie werden also keine Probleme haben, es unter Windows auszuführen.
  • Änderungen können einfach lokal mit Patches oder Bündeln angewendet werden
  • Es gibt ein paar GUI-Tools zur Verfügung (suchen Sie nach TurtoiseHG)

Mercurial ist das VCS, das ich persönlich benutze. Wirklich einfach zu lernen. Sie möchten es definitiv über Git ausprobieren, da die Unterstützung für Windows viel besser ist.

    
skinp 17.10.2008 16:38
quelle
2

Ich liebe Basar: Ссылка

Es hat alles, was Sie verlangen und es ist sehr einfach zu bedienen.

    
Davide 17.10.2008 18:14
quelle
2
  

Danke für die Antworten. Mercurial sieht ziemlich gut aus, aber unterstützt es das Zusammenführen von Repositories von einem Verzeichnis zu einem anderen oder muss ich ein lokales Netzwerk für die Zusammenführung einrichten?

Ja, tut es. Alle unterstützen die DVCSes dies. Der einzige Unterschied zwischen diesem Vorgang und dem Zusammenführen von einem Server besteht normalerweise darin, dass Sie dem entsprechenden Befehl anstelle einer URL einen lokalen Dateipfad übergeben.

In Mercurial sieht es so aus:

Angenommen, Sie haben zwei Repositorys, eines auf Ihrer Festplatte (C: \ Project) und eines auf Ihrem Flash-Laufwerk (F: \ Project):

  

cd C:\Project

     

hg pull F:\Project

Ähnlich, wenn Sie zwei Repositories auf demselben System haben:

  

cd C:\Project

     

hg pull C:\Project1

Wenn eine Zusammenführung erforderlich ist, werden zwei "Köpfe" erstellt und Sie werden aufgefordert, sie mit hg merge zusammenzuführen.

  

added 1 changesets with 1 changes to 1 files (+1 heads)

     

(run 'hg heads' to see heads, 'hg merge' to merge)

Beachten Sie, dass das derselbe ist, als ob Sie von einem Server gezogen und zusammengeführt hätten.

    
quark 17.10.2008 18:42
quelle
0

Ich fand SVN erstaunlich einfach einzurichten und zu verwenden, besonders für einen einzelnen Benutzer!

Eine Sache, die ich wirklich interessant fand - das ssh + svn-Protokoll nutzte SSHs Fähigkeit, eine Befehlszeile auf dem fernen System auszuführen, um SVN tatsächlich zu starten, also gab es überhaupt KEINE Einrichtung auf dem Server außerhalb der Erstellung eines Verzeichnisses für Ihr Repository.

SVN hat viele Shells, wenn Sie CLI nicht mögen (TortiseSVN unter Windows) - es ist also genauso einfach zu benutzen wie alles andere.

    
Bill K 17.10.2008 16:36
quelle

Tags und Links