Angenommen, Co-Autoren aus zwei oder mehr verschiedenen Institutionen schreiben eine Arbeit in Latex und möchten dies besser machen, als Entwürfe wiederholt per E-Mail hin und her zu schicken.
Sie stellen fest, dass sie kostenlos ein Dropbox-Konto eröffnen, das Kennwort freigeben und die Version des Papiers auf ihrem Computer mit der auf der Dropbox synchronisieren können. Wenn zwei Personen gleichzeitig denselben Abschnitt bearbeiten, überschreiben sie sich gegenseitig.
Sie haben auch gehört, dass Versionskontrollsysteme wie SVN und Git Tools zum Zusammenführen von gleichzeitigen Änderungen haben, die recht gut funktionieren. Die Dokumentation dieser Produkte ist jedoch ziemlich schwer zu lesen und konzentriert sich eher auf das Rückgängigmachen von Änderungen und das Verwalten verschiedener "Zweige" als auf die Grundbedürfnisse der Mitautoren, die eine Arbeit schreiben.
Gibt es eine einfache schrittweise Anleitung zur Verwendung eines Versionskontrollsystems in diesem Setup:
- zentrales Repository
- lokale Kopien
- "Smart" zusammenführen
- keine Äste
?
Welches der Standard-Versionskontrollsysteme ist am einfachsten zu bedienen? (Wir sprechen hier über theoretische Informatikprofessoren.)
Gibt es noch einfachere Tools, die nur mit Smart Merge ohne Versionskontrolle synchronisiert werden können?
Sind Personen, die mit Versionskontrollsystemen auch nur ein einzelnes Dokument verfassen, der Meinung, dass die Fähigkeit zum unbegrenzten Rückgängigmachen die zusätzliche Komplexität wert ist?
quelle
Antworten:
Zunächst einmal: Wenn Sie sich für die gemeinsame Bearbeitung in Echtzeit interessieren, probieren Sie etwas wie Gobby aus . Damit können Sie ein Dokument buchstäblich gleichzeitig bearbeiten.
In Bezug auf Revisionssysteme kenne ich mich nur mit SVN aus. Das machen Sie natürlich nach der Installation von Subversion:
svn co url://to.your/repository
(Auschecken). Nun erscheint ein neuer Ordner mit dem Inhalt des Repositorys.Das ist alles. Jetzt die grundlegendsten Befehle:
foo
, geben Sie Folgendes ein :svn add foo
svn rm foo
svn ci
(Einchecken)svn up
(Update)Es gibt auch Befehle zum Verschieben, Kopieren, Verzweigen und Lösen von Konflikten. Wenn etwas kaputt geht oder scheint, sichern Sie Ihre Änderungen, löschen Sie den gesamten Ordner und checken Sie das Ganze erneut aus. Das ist für svn wie ein Neustart für Windows.
Nachtrag: Ich sehe, Sie scheinen besorgt über "Smart Merges" zu sein. Ich gehe davon aus, dass Sie sich auf unterschiedliche Versionen einer Datei beziehen, mit der Annahme, dass zwei Personen Dinge in nicht zusammenhängenden Teilen des Papiers hinzugefügt haben. Soweit ich weiß, würde svn das als Konflikt behandeln, und wahrscheinlich zu Recht. Ich glaube nicht, dass es ein allgemeines Verfahren gibt, das sicherstellt, dass Sie das bekommen, was Sie wollen, nachdem zwei Personen dieselbe Quelle manipuliert haben. Es gibt grafische SVN-Clients, die solche Konflikte visualisieren und Ihnen bei der Lösung helfen. Sie sind so ziemlich verschiedene Betrachter, bei denen Sie wählen können, welche Version für jede widersprüchliche Zeile beibehalten werden soll. Es wird allerdings Arbeit erfordern.
quelle
Mir ist aufgefallen, dass niemand das "kleine" Tutorial für GIT gibt , also werde ich versuchen, es zu behandeln. GIT ist schneller und besser als SVN, aber vielleicht ist es für Sie einfacher, ein SVN-Konto auf einem Server Ihrer Universität zu eröffnen, da SVN gut etabliert ist. Auch können von Ihren Mitarbeitern wissen, wie man es benutzt.
Selbst wenn Sie mit SVN zusammenarbeiten, möchten Sie möglicherweise GIT für Ihre eigene lokale Versionierung verwenden (das tue ich!).
Erste Warnung : GIT ist sehr leistungsfähig und für den Basisgebrauch nur geringfügig schwieriger zu verwenden als SVN (z. B. eine Option, die in der Befehlszeile hinzugefügt werden muss; Festschreiben in zwei Schritten für das zentrale Repository).
Zweite Warnung : GIT hat die Philosophie, eine Reihe von Änderungen als atomar zu betrachten (aΔ wie sie es nennen), auch wenn das Set mehrere Dateien umfasst. Auch in GIT haben Sie den Begriff des lokalen Repository und des zentralen Repository.
GUT : Sie können offline arbeiten.
BAD : Sie müssen in zwei Schritten einen Commit durchführen zentralen Server ausführen.
Grundlegende Befehle, vorausgesetzt, Sie haben bereits ein Repository
git clone <url>
git pull <repo>
oder nur,git pull
wenn Sie wie oben geklont haben.git fetch
undgit merge
. Das erste "holen" Zeug vom zentralen Server und das zweite führen eine Zusammenführung Ihrer und der Dateien des Servers durch.Die Zusammenführung erfolgt automatisch, solange bei einigen Dateien nicht dieselben Teile gleichzeitig bearbeitet werden. Wenn die Zusammenführung fehlschlägt, bleibt Ihr Arbeitsverzeichnis in einem "Zusammenführungsstatus", was bedeutet, dass Sie die Konflikte beheben müssen und dann die zusammengeführte Kopie festschreiben müssen. Wenn Sie immer noch nicht verwaltete Konflikte in Ihren Dateien haben, schlägt das Festschreiben erneut fehl, und es wird kein Müll festgestellt.
git add <file name>
.git commit -am "<textmessages>"
odergit commit -a
wenn Sie die Commit-Nachrichten bearbeiten möchten.Beachten Sie, dass Sie zum Übertragen von Änderungen in Ihr zentrales Repository zuerst ein Commit für Ihr lokales Repository durchführen und anschließend alle Commits (auch mehrere) an Ihr zentrales Repository übertragen müssen Repository übertragen müssen.
Erstellen Sie ein benutzerlokales Repository
git init
in einem beliebigen Ordner.Erstellen Sie ein öffentlich geteiltes Repo (auch privat, wenn Sie bar bezahlen) mit einer netten GUI.
Erstellen Sie so viele private / öffentliche Repositorys mit unterschiedlichen Benutzergruppen, aber ohne GUI.
Git benötigt keinen zentralen Server : Jeder Ordner auf Ihrem Computer kann als Repository verwendet werden, sodass Sie mit Git spielen und Ihre Tests offline durchführen können. Sie können ein Repository initialisieren und drei Mitarbeiter in drei anderen Ordnern simulieren, ohne ein Bit im Netz zu senden. Dies liegt daran, dass jede geklonte Kopie des Repositorys ein voll funktionsfähiges Repository ist, für das Sie ein Commit durchführen können. Dies ist gut, wenn Sie auf einem Flug zwischen den USA, China oder Europa arbeiten möchten.
quelle
Google Documents ( https://docs.google.com ) bietet hervorragende Tools zum gemeinsamen Erstellen von Dokumenten (einschließlich der Bearbeitung in Echtzeit). Es speichert alles online für Sie und lässt sich gut in Ihr Google Mail-Konto integrieren. Standardmäßig ist Google Text & Tabellen nicht mit LaTeX kompatibel. Sie können es jedoch aktivieren, indem Sie hier klicken:
http://docs.latexlab.org/
Ich bin nicht sicher, wie gut das Rollback funktioniert, aber ich bin mir sicher, dass es eine Funktion dafür gibt. Ich habe gehört, dass einige Leute das LaTeX-Plug-in von Google Wave verwenden, um vorläufige Skizzen für Papiere zu erstellen.
quelle
Ich habe meine Mitautoren dazu gebracht, Mercurial zu lernen, und ich habe sie dazu gebracht, Subversion zu lernen. Wenn Sie ein Subversion-Fan sind, lesen Sie dies einfach Sie , es ist alles wahr.
Unabhängig davon, welches System Sie verwenden, ist es bei weitem am schwierigsten, die andere Person dazu zu bringen, die Software zu installieren und zu verwenden. Skype ist die perfekte Lösung. Neuere Versionen von Skype ermöglichen "Desktop-Sharing", was wirklich hilfreich ist, wenn Sie Ihren Mitautor durch den Installationsvorgang führen möchten. Und ich habe gerade Desktop-Sharing in Kombination mit Skype verwendet, um eine Arbeit mit meinem Co-Autor zu schreiben. Es funktioniert ziemlich gut
Was wirklich gebraucht wird, ist ein "Github für Wissenschaftler". Etwas, das ein Repository bietet, Versionskontrolle, kollaborative Bearbeitung usw. hat. Ratet mal, es gibt http://www.scribtex.com/ .
quelle
Hier ist ein neuer kollaborativer Online-Latex-Editor namens WriteLatex , der vielversprechend aussieht und als zentrale Anlaufstelle für viele wissenschaftliche Schreibanforderungen fungiert.
Co - Autor John Hammersley veröffentlichte eine Ankündigung in tcs se meta hier und er ist als Reaktion auf Feedback (5 Stimmen mehr auf der Anzeige und es auf der Hauptseite angezeigt). es sieht so aus, als ob es sich im laufe der zeit zu einem wertvollen tool für die tcs-community entwickeln könnte, und möglicherweise können die autoren einige beliebte funktionen speziell auf anfrage implementieren.
quelle
Was ist mit einfachen Systemen, Lösungen:
Es kommt nicht in Frage, aber manchmal gibt es Situationen, in denen ein Teil der Gruppe einfache Lösungen wie SVN unterstützt, während ein anderer Teil der Gruppe eine verteilte Versionskontrolle wie GIT unterstützt. In solchen Situationen ist eine Zusammenarbeit möglich:
quelle
Ich habe vor kurzem sharelatex.com entdeckt und es zusammen mit meinem Mitarbeiter verwendet, um eine Arbeit mitzuverfassen . Mir hat es so gut gefallen, dass ich es derzeit für alle meine Projekte verwenden möchte. Einige bemerkenswerte Funktionen:
TeXing in Echtzeit im Browser (wie Google Text & Tabellen, jedoch für TeX, Syntax-Hervorhebung und alle anderen).
In-Browser-Kompilierung und PDF-Anzeige
Unterstützt Projekte mit mehreren Dateien
Hat eine History-Funktion
Synchronisiert mit Dropbox (wird demnächst aus dem aktuellen Betastatus veröffentlicht). Auf diese Weise können Sie das Speichern von Backups usw. in Dropbox auslagern. Abhängig davon, wie es gemacht wird, sollten Sie sharelatex auch dann verwenden können, wenn Ihre Co-Autoren dies nicht möchten, solange sie bereit sind, Dropbox zum Teilen von Dateien zu verwenden.
Sie können Ihr Projekt jederzeit herunterladen / hochladen, damit Sie sharelatex nicht mehr verwenden, wenn etwas schief geht oder Sie Ihre Meinung ändern oder was auch immer.
Der einzige Nachteil (aber ich denke, es lohnt sich): Obwohl die Verwendung von Sharelatex kostenlos ist, sind einige seiner Funktionen nicht. Insbesondere, um Dropbox Sync zu verwenden (wenn sie es veröffentlichen) oder wenn Sie möchten, dass mehr als 6 Mitautoren an demselben Sharelatex-Projekt arbeiten, müssen Sie 8 US-Dollar / Monat bezahlen . oder $ 80 / Jahr [Stand April 2013]. Sobald sie Dropbox Sync veröffentlichen, scheint es mir ein sehr fairer Preis zu sein.
[Haftungsausschluss: Ich habe keine Beziehung zu Sharelatex oder seinen Mitarbeitern, außer dass ich deren Produkt verwende.]
quelle
SVN ist das dafür entwickelte Tool. Ich würde mich bemühen, es zu lernen. Es ist nicht komplizierter als das Erlernen der Verwendung des algorithm2e Latex-Pakets oder eines der Latex-Pakete des PDF-Folienerstellers.
Allerdings benutze ich CVS anstelle von SVN. Die CS-Administratoren an unserer Institution bieten eine bessere Unterstützung (der SVN-Server wird stärker von Benutzern verwaltet). Außerdem schätze ich, dass die zugrunde liegenden Versionsdateien immer noch vorhanden und bearbeitbar sind, wenn etwas sehr, sehr schief geht.
Es gibt zwei Nachteile im Vergleich zu SVN. Datei-Umbenennungen sind nicht so schön, aber ich kann damit leben (wählen Sie einen guten Namen zum ersten Mal). Das zweite Problem ist, dass man ein lokales CS-Konto benötigt, um auf das Repository zuzugreifen. Aus diesem Grund ist der Zugriff von einer anderen Institution nur möglich, wenn zuerst ein Konto erstellt wird. Natürlich erwarte ich nicht, dass dies irgendwo ein echtes Problem darstellt. Ein lokales Abteilungsmitglied kann dieses Konto möglicherweise sponsern.
Die lokale Zugriffsbeschränkung ist darauf zurückzuführen, dass die Administratoren keinen pserver unterstützen möchten. (Schwerer zu sichern etc.)
quelle