Kollaboratives Werkzeug für Dummies / Professoren

36

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?

Luca Trevisan
quelle
Sehr interessante Frage.
Oleksandr Bondarenko
1
Tatsächlich. Ich habe bisher noch nichts Besseres als SVN gefunden, aber es ist manchmal etwas langweilig, den Neuling dazu zu bringen, es richtig zu verwenden. Ich freue mich auf Antworten mit benutzerfreundlicheren Lösungen.
Anthony Labarre
2
Ich mag diese Frage auch! @Luca: Vielleicht interessiert Sie auch die Versionskontrolle für die Zusammenarbeit (mit Unterschieden auf Wortebene)? .
MS Dousti
1
In einigen CS-Zweigen ist es üblich, Artikel (und Folien) als Quelle für Lese- und Schreibkenntnisse zu schreiben. Tools wie lhs2tex ( people.cs.uu.nl/andres/lhs2tex ) sind in dieser Hinsicht hilfreich. Das Fazit ist, dass die Quellcode-Beispiele im Papier kompilierbar und überprüfbar sind und die Ergebnisse möglicherweise sogar automatisch generiert werden. In solchen Fällen scheint ein echter dvcs das einzig vernünftige zu sein :-)
sclv
btw dropbox hat eine rudimentäre Versionskontrolle: Sie können eine frühere Version einer beliebigen Datei wiederherstellen. Das Zusammenführen muss jedoch manuell erfolgen, was sehr verwunderlich sein kann. Trotzdem stelle ich mir vor, dass es immer noch eine gute Idee ist, virtuelle Token weiterzugeben. Was ich getan habe, ist die Latex-Datei in eine andere Datei für jeden Abschnitt aufzuteilen und nur Dropbox zu verwenden.
Sasho Nikolov

Antworten:

12

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:

  1. Lassen Sie sich von jemandem ein Repository einrichten und geben Sie URL, Benutzername und Passwort an
  2. Gehen Sie zu dem Ort, an dem Sie Ihre lokale Kopie haben möchten
  3. Geben Sie in einer Shell (Befehlszeile?) Folgendes ein: svn co url://to.your/repository(Auschecken). Nun erscheint ein neuer Ordner mit dem Inhalt des Repositorys.

Das ist alles. Jetzt die grundlegendsten Befehle:

  • Wenn Sie eine neue Datei hinzufügenfoo , geben Sie Folgendes ein :svn add foo
  • Wann immer Sie eine Datei entfernen möchten, geben Sie Folgendes ein: svn rm foo
  • Wenn Sie Änderungen vorgenommen haben, geben Sie Folgendes ein: svn ci(Einchecken)
  • Wann immer Sie die neuesten Informationen erhalten möchten, geben Sie Folgendes ein: 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.

Raphael
quelle
6
Außerdem sollten Sie ToriseSVN verwenden, um alle Interaktionen mit SVN grafisch zu verarbeiten. es macht alles ein Kinderspiel.
Mittagsseide
3
Ich füge hinzu, dass ich, anstatt einen eigenen SVN-Server einzurichten, die Verwendung eines kostenlosen gehosteten Service wie unfuddle.com empfehle . Es ist ziemlich schmerzlos und privat.
Anand Kulkarni
2
danke und danke an anand für den vorschlag von unfuddle, das war genau das 1-minütige tutorial, nach dem ich gesucht habe. Ich habe versucht, ein Repository für unfuddle einzurichten, zwei lokale Kopien auf verschiedenen Computern zu erstellen, inkonsistente Änderungen vorzunehmen und einzuchecken, und es führt die intelligente Zusammenführung durch, wie Suresh sagt. (Wenn zwei Benutzer inkonsistente Änderungen vornehmen, wird bei dem zweiten Benutzer, der eingecheckt wird, eine Fehlermeldung angezeigt. Wenn der zweite Benutzer jedoch aktualisiert und dann eingecheckt wird, führt das Update die intelligente Zusammenführung lokal durch, und beim Einchecken wird die intelligente Zusammenführung eingefügt das zentrale Repository.)
Luca Trevisan
1
über Raphaels off: etherpad.org - ein weiteres echtes Echtzeit-Bearbeitungswerkzeug. sehr vielversprechend ...
Alessandro Cosentino
1
Ich sollte sagen, dass viele Leute Git gegenüber Svn bevorzugen, aber ich habe selbst keine Erfahrung damit.
Raphael
12

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

  • Repository klonen: git clone <url>
  • Aktualisieren Sie Ihr lokales Repository: git pull <repo> oder nur, git pullwenn Sie wie oben geklont haben.
  • Der Pull-Befehl macht wirklich beides git fetchund git 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.

  • Fügen Sie eine neue Datei begangen werden: git add <file name>.
  • Übernehmen Sie die Änderungen in Ihr lokales Repository:git commit -am "<textmessages>" oder git commit -awenn Sie die Commit-Nachrichten bearbeiten möchten.
  • Übertragen Sie die Änderungen in Ihrem lokalen Repository in das zentrale Repository.

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

  • Erstellung eines Repositorys git init in einem beliebigen Ordner.
  • Getan!

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.

  • Fragen Sie nach einem SSH-Konto ohne Kennwort auf einem zugänglichen Computer.
  • Keine Sorge, die Authentifizierung erfolgt über SSH-Schlüssel.
  • Installieren Sie Gitosis gemäß diesem Tutorial .
  • Jetzt können Sie Ihren eigenen Git-Server verwalten, indem Sie eine einzelne Datei bearbeiten und in das Repository übertragen!

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.

MassimoLauria
quelle
1
Seit ich meine Antwort oben geschrieben habe, bevorzuge ich auch Git. Wenn Sie Github mögen, aber zögern, Ihr geistiges Eigentum an ein Unternehmen weiterzugeben (und / oder für dieses Privileg zu zahlen), schauen Sie sich Gitlab an .
Raphael
8

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.

Artem Kaznatcheev
quelle
Tut mir leid, aber das ist wahrscheinlich so, als würde man den Prototyp Ihrer neuen Erfindung im Labor Ihres Konkurrenten bauen. Ich weiß, dass die Tools von Google beliebt sind, vermutlich aufgrund ihrer einfachen Bedienung und Verfügbarkeit, aber ich bezweifle, dass sie sehr oft die beste Wahl sind. Ein anständiges Arbeitsumfeld einzurichten ist nicht allzu schwierig, wenn Sie sich erst einmal ein wenig Mühe gegeben haben. Ich bin der Meinung, dass dies für Menschen, die etwa zehn Jahre nach der Schule arbeiten, um sich für ihren Job zu qualifizieren, kein allzu großer Demotivator sein sollte.
Raphael
4
Ich bin nicht mit Google konkurrierend ... für mich scheint es nur so, als ob ich das einfachste verfügbare Tool benutze. Dies scheint eine der Anforderungen zu sein, nach denen OP gefragt hat. Nur weil es nicht in Ihrer Befehlszeile ausgeführt wird, ist es nicht unbedingt ein schlechtes Werkzeug. Wenn einige Funktionen fehlen, die Sie benötigen, handelt es sich um ein Open-Source-Projekt, das Sie mit Ihrer Erfahrung erweitern können. Wenn Sie die Entwicklungsversion verwenden, können Sie auch Ihren lokalen LaTeX-Compiler anstelle desjenigen auf dessen Servern verwenden.
Artem Kaznatcheev
Versteht mich nicht falsch, ich bin kein reiner CLI-Typ. Ich mag zum Beispiel grafische Editoren sehr (obwohl ich WYSIWYG nicht mag). Tatsache ist, dass es Alternativen gibt, die nicht vom größten Data Miner der Welt angeboten werden. Ich benutzte den Begriff „Wettbewerber“ , da afaik, Google hat einige der Forschung in der Informatik, insbesondere maschinelles Lernen Aromen.
Raphael
7

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/ .

Andrej Bauer
quelle
Ich benutze gerade Github, um eine Umfrage mit einem Mitarbeiter zu schreiben. Es ist praktisch genug, und ich habe nicht das Bedürfnis, online zusammenzuarbeiten, da wir normalerweise in verschiedenen Abschnitten arbeiten.
Suresh Venkat
Bitbucket würde Ihnen die Vorteile von Github mit etwas Privatsphäre geben. Ich teste es.
Jeremy
5

Hier ist ein neuer kollaborativer Online-Latex-Editor namens WriteLatex , der vielversprechend aussieht und als zentrale Anlaufstelle für viele wissenschaftliche Schreibanforderungen fungiert.

  • funktioniert auf dem Handy
  • hat Echtzeitvorschau
  • einfaches / privates Teilen
  • findet Latexfehler
  • Ermöglicht das Hinzufügen von Latex-Bibliotheken / -Stilen
  • Cloud-Speicher

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.

vzn
quelle
2

Was ist mit einfachen Systemen, Lösungen:

  • Google Text & Tabellen, Zoho Writer ... und andere Tools für die Zusammenarbeit.
  • Dropbox behandelt Situationen, in denen zwei Personen versuchen, Änderungen an derselben Datei vorzunehmen. Die zweite übermittelnde Person erhält die umbenannte Datei (X.txt -> X.txt_blabla ...) und die aktuelle Originaldatei (X.txt) mit der neuesten Version. Weitere Informationen: Dropbox-Hilfe: "Was passiert, wenn zwei Personen dieselbe Datei ändern?"

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:

Grzegorz Wierzowiecki
quelle
2

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.]

Joshua Grochow
quelle
Es ist jetzt Open Source! (Und fwiw, es gibt auch writelatex, das ähnlich ist, aber zum schnellen Spaß ohne Registrierung verwendet werden kann.) Das heißt, ich würde mein geistiges Eigentum nicht in eine kommerzielle Cloud stellen (bis es veröffentlicht ist).
Raphael
-5

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.)

Matyas
quelle
3
Abgelehnt, weil dies nicht wirklich die Frage nach einer schrittweisen Hilfe beantwortet und weil die meisten der aufgeführten Vor- und Nachteile anscheinend bei der Heimatinstitution des Antwortenden angesiedelt sind.
David Eppstein