Welches Versionskontrollsystem ist am einfachsten einzurichten und für Spielzeugprojekte zu verwenden?

68

Ich unterrichte den dritten erforderlichen Einführungskurs in einer CS-Abteilung. Bei einer meiner Hausaufgaben werden die Schüler gebeten, den Code zu beschleunigen, den sie für eine frühere Aufgabe geschrieben haben. Faktor-Zehn-Beschleunigungen sind Routine; Faktoren von 100 oder 1000 sind keine Seltenheit. (Für einen Faktor von 1000 müssen Sie mit malloc () Anfängerfehler gemacht haben.)

Programme werden durch eine Sequenz kleiner Änderungen verbessert. Ich bitte die Schüler, jede Änderung und die daraus resultierende Verbesserung aufzuzeichnen und zu beschreiben.

Während Sie ein Programm verbessern, ist es auch möglich, es zu brechen. Wäre es nicht schön, zurückzutreten?

Sie können sehen, wohin ich damit gehe: Meine Schüler würden enorm von der Versionskontrolle profitieren. Es gibt jedoch einige Einschränkungen:

  • Unsere Computerumgebung ist gesperrt. Alles, was von einem zentralen Repository abhängt, ist verdächtig.
  • Unsere Schüler sind unglaublich überlastet. Nicht nur Unterricht, sondern auch Jobs, Sport, Musik. Damit sie ein neues Tool verwenden können, muss es unglaublich einfach sein und offensichtliche Vorteile haben.
  • Unsere Schüler arbeiten meistens paarweise. Das Hin- und Herwechseln von Bits zwischen Konten ist problematisch. Könnte dieses Problem auch durch verteilte Versionskontrolle gelöst werden?
  • Komplexität ist der Feind. Ich weiß, dass das Einrichten eines CVS-Repositorys zu verwirrend ist. Ich selbst habe immer noch Probleme, weil ich es nur einmal im Jahr mache. Mir wurde gesagt, SVN ist noch schwieriger.

Hier sind meine Kommentare zu bestehenden Systemen:

  • Ich denke, eine zentrale Versionskontrolle (CVS oder SVN) ist ausgeschlossen, da unsere Schüler nicht über die erforderlichen Administratorrechte verfügen, um ein Repository zu erstellen, das sie mit einem anderen Schüler teilen können. (Wir haben keine Unix-Dateiberechtigungen.) Außerdem ist die Einrichtung unter CVS oder SVN zu schwierig.
  • darcs ist sehr einfach einzurichten, aber es ist nicht offensichtlich, wie Sie Dinge teilen. darcs send (um Patches per E-Mail zu senden) scheint vielversprechend, aber es ist nicht klar, wie man es einrichtet.
  • Die Einführungsdokumentation für Git ist nichts für Anfänger. Wie beim CVS-Setup habe ich selbst Probleme damit.

Ich bitte um Vorschläge, welche Quellcodeverwaltung für Anfänger verwendet werden soll. Ich vermute, wir können Ressourcen finden, um ein dünnes Furnier über ein vorhandenes System zu legen und die vorhandene Dokumentation zu vereinfachen. Wir haben wahrscheinlich keine Ressourcen, um neue Dokumentationen zu schreiben.

Also, was ist wirklich einfach zu Setup , verpflichten , revert , und teilen Änderungen mit einem Partner , aber muß nicht einfach sein , zu fusionieren oder zur Arbeit in großem Umfang?

Eine wichtige Einschränkung besteht darin, dass Programmierpaare in der Lage sein müssen, die Arbeit untereinander und nur untereinander zu teilen , und dass sich die Paare jede Woche ändern . Unsere Infrastruktur ist Linux, Solaris und Windows mit einem NetApp-Filer. Ich bezweifle, dass meine IT-Mitarbeiter für jedes Schülerpaar eine Unix-Gruppe erstellen möchten. Gibt es eine einfachere Lösung, die ich übersehen habe?

(Vielen Dank für die akzeptierte Antwort, die die anderen aufgrund ihres hervorragenden Verweises auf Git Magic sowie der hilfreichen Kommentare übertrifft.)

Norman Ramsey
quelle
43
Ich muss Sie dafür loben, dass Sie Ihren Schülern die Versionskontrolle näher gebracht haben. Ich kann dir nicht sagen, wie viele Studenten ich gesehen habe, die es NIE benutzt haben. In der "realen Welt" ist es eine Tatsache des Lebens für die Entwicklung, also muss der Schüler es irgendwann lernen.
TM.
1
Als ehemaliger Doktorand in der Abteilung von Prof. Ramsey (allerdings vor seiner Zeit dort) werde ich das unterstützen.
pjmorse
Ich bin erstaunt, dass diese Frage nicht gelöscht wurde. Wo ist die neue SO-Polizei?
Norman Ramsey

Antworten:

83

Ich würde sagen, etwas wie Git könnte in die Rechnung passen:

  • Da es sich um ein verteiltes System handelt, benötigen Sie kein zentrales Repository. Die Repos sind im Quellverzeichnis vorhanden
  • Es ist einfach, Patch-Dateien zu erstellen, die per Post verschickt und angewendet werden können.
  • Obwohl es den Anschein hat, dass Git schwierig zu verwenden ist, sind die Grundideen zum Festschreiben, Zusammenführen, Hinzufügen und Entfernen von Dateien nicht so schwer zu erlernen.

Schauen Sie sich diese Seite Git Magic oder sogar diese Tipp-Seite GitReady an

Abizern
quelle
Die Git Magic Seite ist großartig. Ich habe nicht genug Repräsentanten, um Ihre Antwort zu bewerten, werde es aber tun, wenn der Repräsentant eintrifft. Eine Sache, die bei Git Magic nicht erwähnt wird, ist jetzt, Patches per E-Mail an den Programmierpartner zu senden. Vorschlag, wo man suchen soll?
Norman Ramsey
1
Der Git-Format-Patch bereitet die E-Mail-Übermittlung vor, und git am wendet diese Patches an.
Abizern
1
Ich mag keine Argumente über "die reale Welt". Sie dauern fast nie. Ich musste svn nicht in "der realen Welt" verwenden (nur cvs, p4, hg und git). Ich würde die Einschränkungen von svn niemandem wünschen.
Dustin
4
Peter: Ihr Kommentar impliziert, dass jemand, der Git kennt, aber Subversion nicht kennt, Probleme haben wird, Subversion schnell zu erkennen. Glaubst du wirklich, dass das so ist? Ich bin anderer Meinung, da die grundlegenden Operationen so ähnlich sind. Nach meiner realen Erfahrung war das größte Problem, das VC nicht kennt, Menschen, die es noch nie benutzt haben, nicht verstehen, warum irgendjemand es benutzen würde, und daher Einwände dagegen haben, es überhaupt zu benutzen.
cjs
5
@Peter Coulton: Ich habe noch nie SVN verwendet, ich habe CVS verwendet und jetzt Mercurial ... machen Sie keine Annahmen, die auf Ihren eigenen Erfahrungen beruhen. Auch die Befehle spielen keine Rolle, was zählt, sind die Prinzipien.
Matthieu M.
48

Zweitens die Wahl von Mercurial

Vorteile

  • Hervorragende Dokumentation.
  • Befehl zur grafischen Ansicht zum Anzeigen der Verzweigung.
  • Plattformübergreifend.
  • Kommt mit einer GUI für alle Plattformen (TortoiseHG oder thg).
  • Eingebauter Webserver zum Anzeigen des Projekts.
  • Kann Ihr Projekt auf Ihrem Thumbdrive halten.
    • Arbeit kann gespart werden, selbst wenn sich nur ein Mitglied des Paares an seinen Laptop erinnert. Nicht, dass das jemals passieren würde.

Nachteile

  • Muss Python installieren, falls nicht bereits vorhanden.
    • Einfach zu machen, aber es ist ein weiterer Schritt.
  • Verständnis der Unterscheidung zwischen Push / Pull und Update / Commit.
    • (Dies gilt für alle verteilten VCS).
  • Die Unterscheidung zwischen Köpfen und Spitzen.
  • Einige Befehle sind nicht sofort verfügbar. Sie müssen explizit aktiviert sein.
    • (Dies wird im Allgemeinen von der Community als vorteilhaft angesehen, da es die Dinge einfach hält; einige andere sind jedoch anderer Meinung).
themis
quelle
3
Joel Spolsky hat eine sehr gute Einführung in Mercurial unter hginit.com/top . Es ist schnell und einfach zu lesen und die Bilder veranschaulichen die Situation sehr gut. Für die Zusammenarbeit zwischen Paaren gibt es Websites, die kostenlose Repositories anbieten, z. B. bitbucket.com für Mercurial.
Boris
1
auch hg-git erlaubt es, 1 Werkzeug für jeden Job zu verwenden :)
Łukasz Gruner
16

Subversion ist einfach zu installieren, unter Windows, Linux und Mac OS X. Ich weiß nicht, in welchem ​​Programm sie programmieren, aber das Subclipse-Plugin für Eclipse ist ziemlich einfach zu installieren und verbirgt einen Teil der Komplexität des Repositorys.

Und Repository-Komplexität? Das bedeutet einfach, dass in jedem Projekt ohnehin ein Trunk-, Tag- und Branch-Ordner vorhanden ist. Und sie haben vielleicht nicht viel Zeit, aber sie sollten die Zeit bekommen, SVN (oder ähnliches) zu lernen, weil es eine Fähigkeit ist, die in ihrem Lebenslauf gut aussieht.

JeeBee
quelle
Ich habe großartige Erfahrungen mit SVN gemacht, Repo von anderen eingerichtet. Mir wurde gesagt, das Repo sei schwer einzurichten. Vielleicht ist diese Information veraltet? Die entscheidende Frage ist Berechtigungen: jedes Paar von Studenten braucht ein Repo , dass nur Mitglieder des Paares lesen und schreiben kann. Die Paare wechseln jede Woche. Unix-Dateien. Wie?
Norman Ramsey
Das Einrichten eines SVN-Repos ist nicht so schwierig, aber die Berechtigungen so zu ändern, wie Sie es beschreiben.
pjmorse
1
Früher habe ich svn benutzt, aber dann habe ich git bekommen und nie zurückgeschaut :)
Riviera
git / hg bietet alle Funktionen von svn und mehr und ist einfacher einzurichten.
Callum Rogers
15

Ich würde vorschlagen, sich Fossil anzuschauen - Es ist eine einzelne ausführbare Datei ohne Abhängigkeiten, die ausgeführt werden muss, der den gesamten Datenverkehr über HTTP betreibt, alle Repository-Daten in einer einzigen Datei speichert, die beliebig benannt werden kann, und ein versioniertes Wiki, Fehlerverfolgung und ein Web enthält -Server sofort einsatzbereit. Oh, und es ist vollständig verteilt.

Quetschungen
quelle
2
wollte auch Fossil erwähnen. Es ist vielleicht nicht „besser“ (schneller, flexibler usw.) als andere DVCS-Systeme, aber es scheint seinem Ziel, einfach zu bedienen zu sein, sicherlich sehr nahe zu kommen. Das integrierte Wiki und die Fehlerverfolgungssysteme können sogar nützlich sein, um den Fortschritt der Schüler durch ihre Projekte zu dokumentieren.
Chris Johnsen
11

Ich würde Mercurial empfehlen (auch 'hg' genannt). Es ist ein verteiltes Open-Source-VCS und benötigt kein zentrales Repository. Die tägliche Verwendung ist einfach. Es gibt genügend Dokumentation auf der offiziellen Website. Schauen Sie sich zum Beispiel QuickStart an .

Ausschlaggebend für mich war eine großartige GUI für Windows - TortoiseHg . Es scheint, dass es auch unter Linux unterstützt wird (habe mich nicht selbst ausprobiert). Und natürlich gibt es Befehlszeilenverteilungen für die meisten Linux-Versionen.

Natürlich scheint es von dieser Seite des Zauns aus einfach zu sein, vielleicht sind das Konzept, die Vorteile und der alltägliche Betrieb für vielbeschäftigte Studenten nicht so einfach, sich daran zu gewöhnen. Aber am Ende sind sofortige Festschreibungen, die Möglichkeit, zu jeder Revision zurückzukehren und von dort aus automatisch einen neuen Zweig zu erstellen, und intelligentes Diff / Merge einfach unersetzlich.

Hoffe das hilft!

Alexander Abramov
quelle
8

Um Ihren Schülern die Bedienung zu erleichtern, können Sie einen SVN-Server mit aktiviertem Autocommit installieren, der über webdav freigegeben wird. Auf diese Weise können sie ihr Verzeichnis einfach mit WebDAV bereitstellen und werden jedes Mal automatisch festgeschrieben, wenn sie auf Speichern klicken. Mit TortoiseSVN, den Eclipse / Visual Studio-Plugins oder einer Webzugriffslösung wie ViewVC ist der Zugriff auf den Verlauf einfach. Für Ihre Anforderungen an Zugriffsbeschränkungen können Sie die integrierte Subversion-Authentifizierung verwenden (siehe hier ), die eine einfache Konfigurationsdatei für eine differenzierte Zugriffssteuerung verwendet.

Die Konfiguration ist viel einfacher geworden (und es gibt jetzt eine bessere Dokumentation - sehen Sie sich das SVN-Buch an ), könnte jedoch etwas kopiert werden, wenn Sie mehrere separate Repositorys mit Zugriffsbeschränkungen und einer Weboberfläche benötigen.

Autocommit ist eher eine Lösung für "meinen Büroangestellten / Chef", der keine Ahnung hat, was in einem Computer vor sich geht, und eine Versionskontrolle für Word-Dokumente benötigt. Studenten, die einen Programmierkurs belegen, sollten vielleicht auch lernen, wie man ein anständiges SCM benutzt.

Git und Mercurial wären wegen ihrer verteilten Natur nett, was das Teilen einfach macht - aber beiden Tools fehlen GUI-Schnittstellen, die wirklich einfach zu bedienen sind (TortoiseHg sieht vielversprechend aus, und gitk ist ein sehr guter Repository-Browser, aber Ihre Schüler müssten es trotzdem Wickeln Sie ihre Köpfe um die Befehlszeilenwerkzeuge, um die Werkzeuge voll auszunutzen. Auch das Konzept der verteilten SCMs ist etwas komplexer zu verstehen.

Auf der Pro-Seite könnten Sie öffentliche Hosting-Lösungen wie GitHub verwenden und müssten sich nicht um ein Server-Setup kümmern. Dies macht auch das Teilen von Lösungen wirklich einfach, würde aber Ihre Anforderung "nur miteinander" brechen. Aber ich denke, Sie werden sie sowieso nicht daran hindern können, Code auszutauschen. Aufgrund meiner Erfahrung mit Kursarbeiten habe ich festgestellt, dass das Betrachten des Codes und das Überprüfen, ob er eindeutig ist, der einzige Weg ist, das Kopieren zu verhindern.

Sie können auch PlasticSCM verwenden , das wirklich schöne Schnittstellen für viele IDEs und (zumindest die Website behauptet) kostenlose Lizenzen für Bildungseinrichtungen bietet.

VolkA
quelle
In der Tat haben Sie Recht, dass "Studenten, die einen Programmierkurs belegen, vielleicht auch lernen sollten, wie man ein anständiges SCM benutzt." Aber selbst der Büroangestellte oder Chef kann Subversion normalerweise gut verstehen. Ich habe Leuten beigebracht, die Excel nicht einmal auf primitivste Weise verwenden können, um Subversion zu verwenden!
cjs
Plastik-SCM ist in der Tat kostenlos für die Ausbildung!
Pablo
7

Ich sehe keinen Grund, mich mit der Einrichtung des Versionsverwaltungssystems zu befassen. Überprüfen Sie die Bedingungen für die Verwendung von z. B. Google Code und tauchen Sie ein.

Ein CS-Kommilitone und ich haben es letztes Jahr benutzt und es funktioniert großartig und die einzige Voraussetzung ist eine Internetverbindung :-)

Kasper
quelle
In meiner Klasse konnten einige Schüler 5 ihrer 10 Projekte in nur einer Klasse verwenden. Ich bin ein bisschen unruhig. Denken Sie daran: ein Projekt pro Paar; Paare ändern sich.
Norman Ramsey
7

Bazaar , Mercurial und Git klingen für Ihren Fall geeignet - trivial, um Repositorys zu erstellen, und alle Schüler müssen nur den Lesezugriff auf das Dateisystem auf die Repositorys des jeweils anderen freigeben.

orip
quelle
Der Lesezugriff auf das Dateisystem auf die Repos des jeweils anderen erfordert das Eingreifen von Systemadministratoren und unter Unix eine Gruppe pro Paar. Diese Lösung wird nicht fliegen.
Norman Ramsey
Nicht, wenn es Ihnen nichts ausmacht, dass jeder Lesezugriff auf das Repository aller hat. Das Schöne an diesen ist, dass der Lesezugriff ausreicht, um zwischen ihren Repositorys zusammenzuführen.
Orip
7

Darcs ist ein ausgezeichnetes DVCS, insbesondere für kleinere Projekte, beispielsweise für CS-Klassen. Ich wünschte, ich wäre im College mit Darcs oder Git bekannt geworden, und ich empfehle Ihnen auch, dass Sie es Ihren Schülern vorgestellt haben.

Ich benutze Git täglich. Es ist ein sehr robustes DVCS, aber für kleinere Projekte vielleicht ein bisschen übertrieben.

Treffen Sie Ihre Wahl, eines dieser Versionskontrollsysteme ist wirklich gut.

thekingoftruth
quelle
5

darcs sendDas Einrichten ist trivial. Wenn Sie es ausführen darcs send <remote repo>, wird im _darcs/prefs/emailRemote-Repo nachgeschlagen, wohin die E-Mail gesendet werden soll. Wenn dort nichts vorhanden ist, wird der Benutzer stattdessen dazu aufgefordert.

Der Empfänger des Patches speichert nur die Datei und läuft darcs apply <patch file>im entsprechenden Repo.

So kann jeder Schüler einfach seine eigenen Repos mit seiner eigenen E-Mail-Adresse haben _darcs/prefs/emailund Patches per E-Mail austauschen.

GS - Entschuldige dich bei Monica
quelle
1
Ich bin damit einverstanden, dass dies darcseinfach einzurichten ist, aber da ich ein Opfer von darcs FAIL war und buchstäblich Wochen der Arbeit verlor, würde ich es niemals einem Studenten zufügen.
Norman Ramsey
3
Was ist passiert? Die meisten Schwächen von Darcs entstehen durch komplizierte Zusammenführungen oder große Quellbäume, daher sollte es für Studentenprojekte ziemlich sicher sein.
GS - Entschuldigen Sie sich bei Monica
5

Ich habe einige sehr gute Erfahrungen mit Bazaar gemacht . Wie Git / Mercurial wird es verteilt. Es ist serverlos - Sie müssen keinen Daemon auf dem Server installieren, auf dem sich das Repository befindet, selbst wenn Sie remote darauf zugreifen (dh es kann nur als FTP / SFTP-Freigabe funktionieren).

Ein verteiltes VCS ist am flexibelsten. Sie können einen Zweig aus einem traditionelleren "zentralen" Repository auschecken und den Vorteil nutzen, dass Sie Ihre eigene kleine Entwicklung getrennt vom zentralen Server usw. abspalten und dann möglicherweise Ihre Änderungen wieder nach oben verschieben können.

Es gibt Import-Tools für andere VCSs wie Subversion, obwohl ich sie nicht ausprobiert habe.

Thomasrutter
quelle
4

In Bezug auf Berechtigungen würde ein externer Service keine Zeit von den IT-Mitarbeitern Ihrer Universität benötigen.

Zum Beispiel erlaubt Bitbucket (mit Mercurial) jetzt unbegrenzte private Repos mit bis zu 5 Benutzern. Ich vermute, jedes neue wöchentliche Schülerpaar arbeitet gemeinsam an einem neuen Projekt, was bedeutet, dass sie einfach das Repository initialisieren, den anderen Benutzer hinzufügen und loslegen können.

Wenn sie nicht jede Woche an einem neuen Projekt arbeiten, müssten Berechtigungen entfernt und hinzugefügt werden, und ich würde sie ermutigen, mehrere Repos (eines pro Konto) auf Bitbucket zu haben, damit jeder Schüler weiterhin Zugriff hat. (Dies wäre sowieso eine gute Idee, aber für nur einwöchige Projekte ist es möglicherweise einfacher, wenn nur ein Studentenkonto das Repo besitzt und das andere mit Erlaubnis.)

In Bezug auf welches VCS ist Mercurial meiner Meinung nach am besten für Ihre Plattformen geeignet. TortoiseHg eignet sich besonders gut für neue Benutzer, wenn sie mit Befehlszeilenschnittstellen nicht vertraut sind (und Sie keine Zeit zum Erlernen haben).

Speziell für Ihre Situation ist der Vorteil von DVCS, dass die Kopie auf dem Universitätsserver (falls vorhanden) ein vollwertiges Repo ist. Möglicherweise ist es für Sie oder TAs bequem, Zugriff zu haben. Dies sollte einfacher einzurichten sein und das ganze Semester dauern, anstatt wöchentlich zu wechseln.

Roger Pate
quelle
3

Das Einrichten eines Subversion-Repositorys ist trivial. Ich habe häufig eine einmalige Einrichtung für kleine Projekte eingerichtet (z. B. die Entwicklung von Code für eine Antwort auf Stack Overflow!), Und ich bezweifle, dass jemand anderes, der überhaupt ein SCM-System erlernen könnte, Probleme damit haben würde.

$ svnadmin create /home/cjs/repo
$ mkdir my-project
$ cd my-project
$ vi hello.c
  [...hack hack hack...]
$ svn import -m 'Initial project import.' file:///home/cjs/repo
Adding         hello.c

Committed revision 1.

Das Teilen ist jedoch sicherlich ein Problem. Wenn die Schüler immer zusammenarbeiten, wenn sie gleichzeitig arbeiten, können sie ein USB-Laufwerk verwenden, da sie es einfach ausstecken und hin und her weitergeben können, wenn sie sich verpflichten müssen, und die Person, die später alleine programmieren wird, kann einfach daran festhalten es. Das ist jedoch nicht ganz bequem.

Eine andere Option, da alle auf einem gemeinsam genutzten Unix-System zu arbeiten scheinen, besteht darin, ein Verzeichnis mit dem für den Rest der Gruppe (oder alle Benutzer) gesetzten Bit "Ausführen, aber nicht Lesen" zu erstellen und einen s3cr3t-Namen für das Repo darunter zu verwenden , eine, die nur die beiden Schüler kennen. Wenn er diesen geheimen Namen an den Professor weitergibt, kann er auch jederzeit die Repos der Schüler untersuchen. ("Sie haben die Aufgabe also pünktlich eingereicht, aber das E-Mail-System hat sie verloren? Lassen Sie mich nur den Zeitpunkt dieses Commits betrachten ...") Ein Skript könnte dabei helfen, dies einzurichten.

Je mehr ich darüber nachdenke, desto mehr mag ich es. In gewisser Weise ist es einfacher als die Git-Lösung, da der Schüler sich nicht mit dem Weitergeben von Patches befassen muss (oder dies vergessen muss) und der Schüler gezwungen sein wird, sich mit Zusammenführungen zu befassen, bevor er sich verpflichtet, und nicht, sobald die Dinge erledigt sind das Repository (mit der anschließenden Möglichkeit, die Bearbeitung auf unbestimmte Zeit zu verzögern).

Curt Sampson
quelle
3

UPDATE: Sechs Jahre später würde ich nie wieder in Betracht ziehen, Subversion für irgendetwas zu verwenden. Git ist der richtige Weg. Obwohl ich SVN immer noch für etwas "einfacher" halte, lohnt es sich nicht einmal mehr, es zu unterrichten.

Ich habe CVS, SVN, Bazaar und Git (in dieser Reihenfolge der Einführung) verwendet und ich muss den Studenten sagen, dass SVN der richtige Weg ist. Während ich leitender TA war, haben wir SVN als Ersatz für das alte "Submit-Skript" implementiert, bei dem es sich um ein Tar- und E-Mail-Skript handelte. Labstaff richtete ein Apache SVN-DAV-basiertes Repository ein und unter Verwendung der Authz-Datei konnten die TAs und der Kursleiter die Berechtigungen für Verzeichnisse pro Schüler und Gruppenprojekte auf einer sehr fein abgestimmten Ebene steuern, sodass die Schüler einen sehr einfachen Weg zu ihrem ersten Commit hatten. Siehe mein Tutorial (Anmeldeinformationen wurden von den neuesten TAs herausgerissen .. hmm ..)

In Bezug auf die Verwendung von Subversion ohne Intervention durch Systemadministratoren habe ich dies auch in einem Gruppenprojekt getan, in dem keines meiner Gruppenmitglieder jemals zuvor Subversion verwendet hatte und die meisten von ihnen nur sehr wenig Verwirrung stifteten (alle bis auf einen). . Ich habe auch ein Tutorial zum Einrichten eines solchen sicheren gemeinsam genutzten Repositorys mit nur grundlegendem SSH-Zugriff hier geschrieben .

Ich bin definitiv anderer Meinung, dass Git das beste VCS für Anfänger ist, die die leeren Blicke bei der Erwähnung eines VCS-Systems genug erlebt haben, geschweige denn der von Linus selbst geschriebene Mac-Daddy-VCS-König Git. Es ist einfach nicht wahr, dass git nicht komplexer als svn ist, und das Fehlen ausgereifter n00b- Tools allein ist Grund genug, es in diesem Szenario nicht zu verwenden. Ich habe gerade angefangen, git für ein neues Projekt zu verwenden, das ich in Netbeans entwickle, und bin bereits mit der Netbeans-Integration auf ernsthafte Einschränkungen gestoßen. In einem einzigen Semester werden Sie keine Funktionen verwenden, die svn nicht bietet, also ist git übertrieben.

ColinM
quelle
2

Subversion unter Windows kann so einfach sein wie das Einrichten von TortoiseSVN. Es gibt eine gewisse Lernkurve für die Verwendung (insbesondere, wenn Sie noch nie zuvor eine Versionskontrolle verwendet haben), aber Sie können dies unterstützen, indem Sie eine halbe Lektion darauf verwenden und einige PowerPoint-Folien zum Herunterladen bereitstellen.

Was die Zentralisierung betrifft - ich habe von Websites gehört, die kostenloses SVN-Projekthosting anbieten. Eine schnelle Google-Suche hat diese Seite aufgedeckt, aber es gibt sicherlich noch mehr.

Vilx-
quelle
2

Wenn Sie nach etwas suchen, das wirklich wirklich einzurichten ist, warum dann nicht die kostenlose SVN-Hosting-Option wählen, müssen Sie nichts einrichten!

Leider haben die beiden älteren, von denen jeder darauf hingewiesen hätte, dass sie Assembla, Unfuddle sind, die Unterstützung für ihr kostenloses Hosting eingestellt (oder zumindest, wenn Sie möchten, dass sie privat sind), aber Sie können Origo weiterhin verwenden, um sowohl offenes als auch geschlossenes Hosting zu erhalten .

Dies hat den Vorteil, dass Sie alle Projekte besitzen und verfolgen können und die Personen, die Zugriff haben, problemlos steuern können. Sie müssen sich keine Gedanken über das Recht zum Erstellen von Repos machen.

Wenn Sie diesen Weg gehen und die Komplexität beseitigen möchten, müssen Sie eine GUI-SVN-Anwendung verwenden, um das Lernen nahezu trivial zu machen (da ich bezweifle, dass viel Zusammenführung stattfinden wird). Ich würde tortoisesvn empfehlen , schlüpft direkt in Ihr Windows Explorer-Kontextmenü.

Stephen Bailey
quelle
Origo wurde im Jahr 2012 geschlossen.
M4N
1

Ich würde sagen, dass Sie am besten versuchen, mit Ihrer IT-Abteilung zusammenzuarbeiten, um ein System / eine Methode für Ihre Schüler einzurichten, mit der Sie problemlos neue SVN / CVS-Repositorys erstellen können.

Wahrscheinlich könnten Sie die IT-Abteilung dazu bringen, Ihnen die erforderlichen Berechtigungen zum Erstellen von Repositorys für Ihre Schüler zu erteilen, auch wenn diese die Berechtigungen nicht den Schülern selbst geben. Sie könnten wahrscheinlich ziemlich leicht ein paar Skripte schreiben, um Repositories aus Listen von Studenten zu Beginn des Semesters in Massen zu erstellen.

Seifenkiste
quelle
1

RCS für Linux.

Ich habe nichts Einfacheres als RCS für Witwen gefunden, aber nicht alle RCS-Ports funktionieren gut, daher müssen Sie sie ausprobieren, was es nicht einfach macht. Windows ist für Entwickler einfach nicht einfach. Der Windows-Port von http://www.cs.purdue.edu/homes/trinkle/RCS/ ist ziemlich gut.

Tom Hall
quelle