System zur Versionskontrolle von Dokumenten

Ich bin neu in diesem Versionierungsgeschäft, also helfen Sie mir bitte, die verschiedenen Versionierungssoftware zu verstehen, die meinen Anforderungen entsprechen. Ich bin zu der traurigen Erkenntnis gelangt, dass ich mit der Versionierung meiner Dokumente und meines Codes beginnen muss, weil es beim Übertragen von Daten über USB sehr chaotisch wurde und ich dabei viel Arbeit verloren habe. Ich habe meine gesamte Designarbeit verloren, weil ich den falschen Ordner kopiert habe und dachte, er könne sicher gelöscht werden, habe ein "Shift-Del" ausgeführt ... Dummheit nebenbei - Lektion gelernt.

Also habe ich viel herumgesucht und mich für Git (auf BitBucket) entschieden, um den Quellcode zu versionieren. Allerdings fällt es mir schwer, eine Lösung zu finden für:

  • Dokumente wie Word docx, pdf
  • Entwerfen Sie Modelle wie UML und Flussdiagramme
  • Projektmanagement und Zeitpläne wie Excel-Tabellen oder MS Project-Ergebnisse

Meine Anforderungen sind wie folgt:

  • Funktion zum Ein- und Auschecken einzelner Dateien (für die Zusammenarbeit)
  • Dateisperre beim Auschecken (um Konflikte zu vermeiden)
  • Möglichkeit, eine neue Version ohne Einchecken zu übertragen (offline zu bleiben, wenn ich der einzige bin, der an dem Dokument arbeitet. Bei einem Ein-Mann-Projekt würde ich einfach alles ausgecheckt lassen und einfach für die Versionierung übergeben.)
  • Automatische Versionsnummerierung beim Übertragen oder Einchecken

Ich habe derzeit eine persönliche Cloud-Synchronisierung, um den Dateiverlauf bei jedem Speichern zu behalten. Diese wird jedoch in einem bedeutungslosen Zustand dargestellt und dient nur als Sicherheit, falls mir ein Fehler unterlaufen sollte. Die oben genannten Anforderungen bieten mir eine sinnvolle Möglichkeit, "Meilensteine" zu überprüfen und rückgängig zu machen.

Bitte geben Sie an, ob es etwas gibt, das diese Anforderung erfüllt.

Nur ein Kommentar, Sie scheinen Git mit anderen VCSs zu verwechseln. Git ist beispielsweise dezentralisiert, sodass es keinen Checkout/Checkin-Prozess gibt.
Genau deswegen stelle ich diese Frage. Ich verwende Git für meinen Code. Aber ich möchte auch ein Versionierungssystem für meine Dokumente.

Antworten (2)

Versionskontrollsysteme kümmern sich im Allgemeinen nicht darum, was die ihnen zugeführten Dateien darstellen – obwohl sie Dateitypen unterschiedlich behandeln (z. B. Binärdateien). Also können wir das dateispezifische Zeug beiseite lassen.

Nach Ihrer Beschreibung sieht es für mich so aus, als ob Subversion gut passen könnte:

  • Möglichkeit zum Einchecken/Auschecken einzelner Dateien (zur Zusammenarbeit): Möglich. Geben Sie einfach die Datei(en) an, die Sie einchecken möchten, z. B. svn ci file.doc, svn ci *.pdf, odersvn ci files/*
  • Dateisperre beim Auschecken (um Konflikte zu vermeiden): Möglich. Verwenden Sie svn lock <target>, wobei es <target>wie in meinem vorherigen Beispiel interpretiert wird – so können Sie eine einzelne Datei, mehrere Dateien oder ganze Verzeichnisse sperren
  • Möglichkeit, eine neue Version ohne Einchecken zu übertragen: Nein. Das würde nur mit einem dezentralen System wie Git funktionieren , das Kopien des Repositorys auf jeder Maschine vorhält – aber dann hätten Sie normalerweise keine Sperren.
  • Automatische Versionsnummerierung beim Übertragen oder Einchecken: Das ist ein wesentliches Merkmal jedes VCS, würde ich sagen, also ist es natürlich auch mit SVN verfügbar.

Es wird Ihnen schwer fallen, ein System zu finden, das alle Ihre Anforderungen erfüllt, also müssen Sie sich wahrscheinlich entscheiden, was Sie kompromittieren. Bei Git gibt es keine Dateisperrung (aufgrund der dezentralen Struktur ist dies nicht möglich) – was mir wichtiger erscheint als die „lokalen Commits“. Letzteres könnten Sie "ersetzen", indem Sie (vorübergehend) Kopien der Datei in einem separaten Verzeichnis aufbewahren, die natürlich mit zB aus dem Repository ausgeschlossen werden können .svnignore.

Mit Subversion ist es möglich, eine Datei zu übergeben, ohne die Sperre aufzuheben ( svn commit --no-unlock). Ich glaube, diese Funktion könnte Punkt 3 mit "Ja" beantworten.
@GregHewgill nicht "buchstäblich" (da Commit/Checkin bei SVN IMHO gleich sind), aber nach dem, was das OP will, scheint dies zumindest ein "teilweises Ja" zu sein - also +1 dazu von mir!
SVN leistet, wie viele VCSs, bei Binärdateien wie Word-Dokumenten keine sehr gute Arbeit. Sie sind besser dran, Markdown oder ähnliches für die Dateien zu verwenden und Word bei Bedarf mit Pandoc zu generieren.
@SteveBarnes: Ich glaube nicht, dass das der Fall ist. SVN unterscheidet Dateien Byte für Byte, um sie zu speichern (im Gegensatz zu einem SVN-Vergleich). Ich habe viele Probleme mit SVN, aber das ist eine seiner Stärken. ref: support.wandisco.com/index.php?/Knowledgebase/Article/View/209/…
SVN ist in dieser Hinsicht besser als sagen wir CSV, aber wenn Sie große Binärdateien mit großen Deltas haben (oft schon bei einer kleinen Änderung in gezippten Formaten wie docx der Fall), können Sie immer noch eine Serververlangsamung bekommen. Persönlich bewundere ich hg für seine Zipdoc- und Bigfiles-Erweiterungen, um diese Art von Problemen zu bewältigen. Ich rate immer noch zu Mardown für die Dokumentenspeicherung, da Sie nicht dem MS- Syndrom "Ich werde nicht lesen, dass es von 3 Versionen her ist" unterliegen .
@SteveBarnes Ich stimme zwar zu, dass Markdown besser passt, aber ich würde vorschlagen, diese Diskussion an anderer Stelle zu führen - da dies in Bezug auf die OPs-Anforderung "das Pferd am Schwanz nimmt". Wahr und gültig wie es ist, wir sind kein Forum ;)

Git und die meisten anderen quellcodeorientierten Tools sind nicht optimal für die Dokumentenverwaltung.
Was Sie brauchen, ist ein Dokumentenmanagementsystem oder ECM- System.

NemakiWare ist genau das:

  • Speichern Sie eine Hierarchie von Ordnern und Dokumenten jeder Art/Größe.
  • Änderungen werden als neue Versionen gespeichert.
  • Sie können jederzeit zu einer früheren Version zurückkehren.
  • Checken Sie ein Dokument aus, bearbeiten Sie es und checken Sie es dann wieder ein. Es wird gesperrt, sodass andere Benutzer es nicht gleichzeitig ändern können.
  • Auschecken/Einchecken ist keine Verpflichtung, Sie können Dokumente ohne es bearbeiten.

Es ist kostenlos und Open Source.

Es gibt eine Webschnittstelle, die Ihre Dokumente anzeigt und Ihnen ermöglicht, sie in der Vorschau anzuzeigen, herunterzuladen oder zu verschieben/löschen/kopieren/usw.

Sie können einem Dokument auch Metadaten zuordnen, z. B. einen Entwurfs-/Endzustand/veralteten Status oder Workflow-Informationen: warten auf Genehmigung / zum Senden genehmigt / an Kunden gesendet.

Sie haben die Dateisynchronisierung erwähnt. Die ausschließliche Verwendung von NemakiWare über die Weboberfläche ist möglich, aber NemakiWare unterstützt auch das CMIS- Protokoll, daher schlage ich vor, CmisSync zu verwenden , das Ihre Dokumente mit dem Dateisystem Ihres Computers synchronisiert und Konflikte wie Dropbox behandelt.

NemakiWare-Benutzeroberfläche

Haftungsausschluss: Meine Firma stellt sowohl NemakiWare als auch CmisSync her