System zur Versionsverwaltung für mehrere Benutzer

706
user001

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 rsyncdies besser wäre oder ob diese Funktion besser vom Revisionskontrollsystem ausgeführt wird.

2
seltsame Frage, aber warum sollte Dropbox hier nicht funktionieren? Journeyman Geek vor 12 Jahren 2
Ich denke, DVCS ist hier sehr wertvoll, wenn durch "Synchronisieren der zwei Computer" verschiedene Versionen von TeX-Dokumenten synchronisiert werden sollen, dann 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 vor 12 Jahren 2
@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 vor 12 Jahren 0
Ich verwende Mercurial (Hg) zur Verwaltung meiner persönlichen Dateien. Einfach zu verwenden mit einem Frontend wie TortoioseHg. Klicken Sie mit der rechten Maustaste, Commit, done. iglvzx vor 12 Jahren 0

3 Antworten auf die Frage

5
Bahman M.

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 giteinem kostenlosen UbuntuOne-Konto. Wann immer ich etwas ändern / hinzufügen muss, benutze ich einfach clonedas erforderliche Repository (zum Beispiel "Projekt X Docs") und erledige die Arbeit lokal entweder auf Arbeits- oder Heimcomputern oder beiden und drücke dann die Änderungen. In einigen Fällen teilte ich sogar ein oder zwei Quell-Repos mit Kollegen, um die Dateien anzuzeigen / zu bearbeiten. gitIch habe mich mit seinen hervorragenden Merge-Möglichkeiten bisher nicht enttäuscht.

HTH,

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 vor 12 Jahren 0
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 vor 12 Jahren 0
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 vor 12 Jahren 0
@ 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. vor 12 Jahren 0
@ 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 vor 12 Jahren 0
2
Joanis

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 auf beiden Computern den vollständigen Versionsverlauf des Codes . 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, was Sie mit der Synchronisierung tun, wenn Sie es wirklich brauchen.

1
Lazy Badger

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 (für DVCS - vom letzten verwendeten Repo auf das ältere) 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 zB Fossil SCM (Portable, Single Exe, Cross-Platform) und ein Repository auf einem Flash-Laufwerk