Versionskontrollsystem für Projekte mit gemischtem Inhalt

660
Rody Oldenhuis

Meine Frage: Gibt es ein zuverlässiges und einfaches Versionskontrollsystem / Mechanismus / Plattform / ... für Projekte mit effektiv monolithischem, undurchsichtigem Inhalt ?

Die meisten Projekte, an denen ich arbeite, enthalten einen Mischmasch der folgenden Dateitypen:

  1. Nur-Text-Inhalt (C, Java, ..., Datendateien, Bash-Skripts, ...)
  2. MS Office-Dokumente (Word, Excel, Visio, ...)
  3. Vektorgrafiken (SVG, EPS, ...)
  4. Simulink®-Modelldateien (.mdl, ähnliches Format wie JSON)
  5. Unser maßgeschneidertes Gerätetest-Framework (generierte XML-Dateien)
  6. ... Sonstiges andere Dinge mit ähnlichen Einschränkungen

Derzeit legen wir immer alles in einem großen Subversion-Repository ab. Dies funktioniert natürlich nur für die Nur-Text-Dateien. Alles andere ist unverständlich, wenn es als reiner Text behandelt wird.

Für einige von ihnen gibt es "gemanagte" Versionskontrollsysteme, die wir in der Tat zusätzlich zu Subversion verwenden. Für MS Word-Dokumente verwenden wir beispielsweise die Funktion "Änderungen verfolgen". Dies ist praktisch zu unserem Versionskontrollsystem geworden, das für MS Word-Dokumente spezifisch ist. Wir erstellen dann Kopien des Dokuments im Subversion-Repository, wenn eine Version des Dokuments mit Tags versehen / übermittelt werden muss.

In ähnlicher Weise gibt es verschiedene Möglichkeiten, Simulink-Modelle gleichzeitig zu entwickeln, Vektorgrafiken gleichzeitig zu erstellen usw.

Aber wie Sie sich vorstellen können, bin ich mit diesem Workflow ziemlich unzufrieden. So etwas wie "Änderungen verfolgen" hindert zwei Benutzer nicht daran, dasselbe Dokument gleichzeitig zu bearbeiten. Änderungen von beiden können nicht zusammengeführt werden, und das Zusammenführen muss manuell durchgeführt werden (ich werde nicht einmal die Beschädigung von Dokumenten erwähnen). Gleiches gilt für das Simulink-Framework. echte Parallelität ist unmöglich.

Dies ist nur ein Schmerz, ganz zu schweigen von der Ineffizienz, da zum Kopieren der Dateien viel manuelles Kopieren und Verwirren von Dateien erforderlich ist - alles in einem Subversion-Repository zu haben, ist nicht mehr als eine bequeme Alternative zum E-Mail-Versand von Dokumenten um (was nur für die Leute nützlich ist, die das Repository nicht verwalten ...).

So etwas wie Sharepoint könnte das Problem für MS Word-Dokumente lösen, ist aber keine allgemeine Lösung. Wir haben noch diese anderen Dateitypen, mit denen wir uns befassen müssen. So etwas wie Subversion-Plugins / Hooks / etc. könnte funktionieren, aber es kann schwierig sein, das Richtige zu finden, und es ist schwierig, auf dem neuesten Stand zu bleiben, und es könnte eine erhebliche Investition sein, da wir wahrscheinlich benutzerdefinierte Plugins für Dinge wie Simulink-Modelldateien entwickeln müssen

Meine Frage: Gibt es ein zuverlässiges und einfaches Versionskontrollsystem / Mechanismus / Plattform / ... für Projekte, deren Inhalte tatsächlich monolithisch und undurchsichtig sind?

0
So interessant diese Frage auch ist, und so sehr ich auch gerne eine Antwort hätte, streng genommen, wird nach einer Softwareempfehlung gefragt, die [off topic] (http://superuser.com/help/on-topic) ist ). Vielleicht könnte es überarbeitet werden? Raystafarian vor 10 Jahren 0
@Raystafarian: Kennen Sie eine Stack-Site, auf der solche Fragen * zulässig sind? Aus genau diesem Grund habe ich diese Frage nicht zu Stack Overflow gestellt ... Ich frage, weil ich nicht sicher bin, ob * sie * überarbeitet werden kann, da der Zweck der Frage tatsächlich darin besteht, eine Empfehlung für ein Werkzeug zu erhalten /Methode/... Rody Oldenhuis vor 10 Jahren 0
** WENN ** es geschlossen wird, könnte ich mir nur vorstellen, [persönliche Produktivität] (http://productivity.stackexchange.com/) zu versuchen. Der Arbeitsplatz wäre auch ein Thema. * Vielleicht * [Projektverwaltung] (http://pm.stackexchange.com/). Sie können sich Datenbank-Administrator, Server-Administrator oder sogar Infosec anschauen, um zu sehen, ob es dort zum Thema steht. Ich bin mir nicht sicher. Raystafarian vor 10 Jahren 0
@Raystafarian: OK, dann werde ich die Frage zunächst auf beiden Seiten posten und beide Gemeinschaften entscheiden lassen, wo sie am besten passen. Rody Oldenhuis vor 10 Jahren 0
[Cross-Post] (http://meta.stackexchange.com/questions/16703/the-ability-to-link-cross-site-duplicates) ist nicht erforderlich, hier wird es möglicherweise nicht geschlossen! Ich bin mir ziemlich sicher, dass PP es für interessant halten würde .. Raystafarian vor 10 Jahren 0

1 Antwort auf die Frage

2
Rodney Schuler

Für svn können Sie Dateisperren für große, nicht zu speichernde Dateien verwenden. Dies ist eine Eigenschaft, die Sie auf die großen, nicht zu speichernden Dateien anwenden. Diese Dateien werden standardmäßig nur beim Auschecken gelesen. Sie svn locken sie dann, um das Bearbeitbare in der Arbeitskopie zu erstellen und auf dem Server als gesperrt zu markieren. Wenn jemand anderes versucht, die Datei zu sperren, wird eine Benachrichtigung angezeigt, dass diese Datei gesperrt ist. Sie können svn so konfigurieren, dass die Anforderungssperreneigenschaft basierend auf der Dateierweiterung automatisch angewendet wird .

Andere Versionskontrollsysteme haben andere Antworten auf dieses Problem.

Fühlt sich eher als Problemumgehung an, anstatt wie eine echte Lösung ... Häufig legen wir Word-Dateien auf ein gemeinsam genutztes Netzlaufwerk und bearbeiten sie direkt von diesem Laufwerk. MS Word sperrt die Datei zur Bearbeitung und warnt andere Benutzer darüber. Gleicher Mechanismus, einfachere Implementierung, hat jedoch den Nachteil, dass es nur Word ist und Dokumente sich nicht mehr im Repository befinden. Ich werde das untersuchen. Leider ist Git keine Option, da wir direkt an die Repositories gebunden sind, die unser Mutterschiff verwendet :) Rody Oldenhuis vor 10 Jahren 0