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?
quelle
Antworten:
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 einfachclone
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,
quelle
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.
quelle
Nein, wirklich ein User-One-Standort Viele Benutzer-viele Standorte oder jede Zwischensituation machen keine große Veränderung in verwendbaren SCMs
quelle