System zur Versionsverwaltung für mehrere Benutzer

2

Ich habe zwei Computer (Arbeit und Zuhause) und möchte ein Versionskontrollsystem für Quellcode und TeX-Dokumente einrichten. Es gibt keine Mitarbeiter (z. B. Einzelbenutzer / Editor). Die meisten Quelldateien werden mit dem vi-Editor geschrieben. Ich hätte gerne eine Versionsverwaltung von Quell- / Dokumenten, die auf beiden Computern verfügbar ist.

Gibt es eine bestimmte Versionierungsstruktur (zentralisiert vs. verteilt), die besser für Einzelbenutzer und mehrere Computer geeignet ist? Zum Beispiel könnte ich einen Computer als Server und den anderen als Client einrichten oder alternativ beide als Peers behandeln.

Außerdem möchte ich die beiden Computer problemlos synchronisieren können, und ich weiß nicht, ob rsync wäre dies besser, oder wenn diese Funktion besser vom Revisionskontrollsystem übernommen wird?

user001
quelle
2
seltsame Frage, aber warum sollte Dropbox hier nicht funktionieren?
Journeyman Geek
2
Ich denke, DVCS ist hier sehr wertvoll, wenn durch Synchronisieren der beiden Computer unterschiedliche Versionen von TeX-Dokumenten synchronisiert werden sollen, ist ein DVCS 100x besser als jede dateibasierte Lösung. Mit einer Einschränkung: Die Lernkurve ist riesig, Sie müssen nicht nur viele technische Konzepte, sondern auch gute Gewohnheiten lernen.
Adrian Ratnapala
@JourneymanGeek: Dropbox ist nicht so gut in der Versionskontrolle ... Wenn Sie mit Text- und Änderungsdaten zu tun haben, möchten Sie unbedingt die Versionskontrolle.
Joanis
Ich verwende Mercurial (Hg) zur Verwaltung meiner persönlichen Dateien. Einfach mit Frontend wie TortoiseHg zu verwenden. Klicken Sie mit der rechten Maustaste, bestätigen Sie den Vorgang.
iglvzx

Antworten:

5

Haftungsausschluss: Mein Vorschlag geht davon aus, dass Sie sowohl zu Hause als auch am Arbeitsplatz eine Internetverbindung haben.

Ich habe fast die gleiche Situation. Ich verwalte meinen Quellcode und meine Dokumente mit git auf einem kostenlosen UbuntuOne-Konto. Wann immer ich etwas ändern / hinzufügen muss, muss ich einfach clone das erforderliche Repository (zum Beispiel "Projekt X Docs") und erledigen Sie die Arbeit lokal entweder auf dem Arbeits- oder Heimcomputer oder auf beiden und führen Sie die Änderungen durch. In einigen Fällen teilte ich sogar ein oder zwei Quell-Repos mit Kollegen, um die Dateien anzuzeigen / zu bearbeiten. git Ich habe mich mit seinen hervorragenden Merge-Möglichkeiten bisher nicht enttäuscht.

HTH,

Bahman M.
quelle
Vielen Dank für Ihren Vorschlag, Bahman. Ich werde in git schauen. Fügt die Verwendung des Cloud-Dienstes nicht nur zusätzliche Sicherheit hinzu?
user001
Es gibt auch andere gute Quellcode-Hosting-Dienste, die funktionieren können. Einer meiner Favoriten ist Bitbucket, von dem ich glaube, er bietet kostenloses privates mercurial AND-Git-Hosting an, wenn ein Repository weniger als 5 Benutzer hat.
John Chadwick
Wie John feststellt, ist UbuntuOne nicht der Hauptpunkt, sondern Git (oder Mercurial, wenn Sie möchten). Wenn einer oder beide Computer eine permanente Adresse haben und als "Server" fungieren können, müssen Sie nichts in die Cloud stellen. Wenn du BitBucket und GitHub machst, wird es technisch besser sein als UbuntuOne - aber ich weiß nicht, ob es angemessen ist, kostenlose Konten dort für private Zwecke zu verwenden.
Adrian Ratnapala
@ user001 Um ehrlich zu sein, habe ich meine Dateien einfach in die Cloud gestellt, weil ich sie von überall her erreichen kann. Auch wenn Sie Zeit haben, wie Adrian es ausdrückte, können Sie einen eigenen Server haben.
Bahman M.
@ user001: Zusätzliche Sicherheit ist eine relative Angelegenheit, wenn es um die Cloud geht. Wenn Sie über vertrauliche Daten verfügen, sofern diese nicht auf dem neuesten Stand der Technik sind, vergessen Sie die Cloud.
Joanis
2

Das Synchronisationssystem und das Revisionskontrollsystem sind zwei verschiedene Dinge, die unterschiedliche Bedürfnisse ansprechen.

Als Programmierer möchten Sie Versionskontrolle über Ihren Code haben. Wenn Sie nichts anderes synchronisieren müssen, sollten Sie sich nicht mit der Synchronisierung beschäftigen, da dies offensichtlich keine Versionskontrolle bietet (die selbst zur Synchronisierung verwendet werden kann). In diesem Fall können Sie einfach die Versionskontrolle durchführen. Und wenn Sie auch andere Dinge synchronisieren müssen, benötigen Sie trotzdem eine Versionskontrolle. Ich würde daher dringend vorschlagen, dass Sie zunächst einige Code-Versionierung einrichten und dann über die Synchronisierung nachdenken. Code ohne Versionskontrolle ist ... ganz falsch.

Wenn Sie nun eine zentralisierte Versionskontrolle verwenden, müssen Sie einen Server auswählen. Dann müssen Sie diesen Server sichern, da Sie nur die aktuelle Version des Codes auf Ihrem anderen Computer haben. Deshalb würde ich vorschlagen, dass Sie nach einer verteilten Versionskontrolle suchen. Git oder Hg (Mercurial) reicht aus. Auf diese Weise haben Sie den vollständigen Versionsverlauf des Codes beide Computers. Wenn einer stirbt, verlieren Sie nichts (zumindest den Code!).

ABER, wenn Sie auf jeden Fall synchronisieren möchten, ist die Verwendung eines zentralen Versionskontrollsystems nicht so schlecht, da Sie die Dateien einfach mit Ihrem anderen Computer synchronisieren können. Auf diese Weise haben Sie zentrales + automatisches Backup erstellt. Noch verteilt werden Sie mehr Flexibilität haben, wenn Sie Ihre Meinung ändern.

Es ist dein Anruf. Mein Vorschlag ist ein verteiltes System (Git oder Hg ... sie sind sich ziemlich ähnlich und sie haben Hash-Systeme, die ihre Codebasis schwerer machen, um beschädigt zu werden) und dann sehen Sie, was Sie mit der Synchronisierung tun, wenn Sie es wirklich brauchen.

Joanis
quelle
1

Ich denke, die Frage in diesem Beitrag ist einzigartig.

Nein, wirklich ein User-One-Standort Viele Benutzer-viele Standorte oder jede Zwischensituation machen keine große Veränderung in verwendbaren SCMs

  • Wenn beide Arbeitsplätze über das Internet erreichbar sind und jederzeit erreichbar sind, können Sie ein beliebiges * VCS (sogar CVCS) auswählen und das Repo jederzeit aktualisieren (bei DVCS - vom letzten verwendeten Repo auf älteres), ohne dritten Vermittler
  • Wenn Hosts nicht immer online sind, verwenden Sie (erneut) einen SCM und speichern Sie die Arbeit auf einem SCM-Hosting, das von Ihnen ausgewählte SCM-Unterstützung unterstützt
  • Wenn der Host offline ist, können Sie sich an "Omnia mea mecum porto" erinnern und haben beispielsweise Fossil SCM (Portable, Single Exe, Cross-Platform) und ein Repository auf einem Flash-Laufwerk
Lazy Badger
quelle