Ich starte ein Git-Repository für ein Gruppenprojekt. Ist es sinnvoll, Dokumente im selben Git-Repository wie Code zu speichern ? Dies steht anscheinend in Konflikt mit der Art des Git-Revisionsflusses.
Hier ist eine Zusammenfassung meiner Frage (n):
Ist der Git-Revisionsstil verwirrend, wenn sowohl Code als auch Dokumente im selben Repository eingecheckt werden ? Erfahrungen damit?
Ist Git gut für die Versionskontrolle von Dokumentationen geeignet?
Ich frage NICHT , ob ein Revisionskontrollsystem im Allgemeinen für die Dokumentation verwendet werden soll oder nicht - es sollte.
Vielen Dank für das bisherige Feedback!
git
version-control
project-management
EmpireJones
quelle
quelle
Antworten:
Wir speichern die Dokumentation ständig in SVN. Tatsächlich ist unser gesamtes Benutzerhandbuch in LaTeX geschrieben und in SVN gespeichert. Wir haben uns speziell für LaTeX entschieden, da es sich um eine textbasierte Sprache handelt und es einfach ist, zeilenweise Unterschiede anzuzeigen.
Wir speichern auch einige nicht textformatierte Dateien, wie Microsoft Office-DOC-Dateien, Tabellenkalkulationsdateien, ZIP-Dateien usw., wenn dies erforderlich ist. Einige Vorteile eines RCS gehen jedoch verloren, wenn Sie die inkrementellen Dateien nicht sehen können Unterschiede.
Der Schlüssel ist wirklich sicherzustellen, dass Ihre Dokumentation gut organisiert ist, damit die Leute die Dokumentation (und die Quelle) finden (und aktualisieren) können, wenn sie sie benötigen.
quelle
Nun, es hängt davon ab, welches Format Sie für die Dokumentation verwenden. Wenn es etwas Textbasiertes ist, ist alles gut.
Git kann auch binären Inhalt speichern und Sie können Revisionen verfolgen, aber die Diff-Ausgabe macht keinen Sinn.
Es ist auch möglich, die Dokumentation im Code selbst zu speichern, wie z. B. perldoc pod. Java verfügt auch über ein Format / eine Annotation dafür.
quelle
Save As
und dannWord XML Document (*.xml)
anstelle der StandardeinstellungWord Document (*.docx)
. Das XML ist ziemlich komplex, daher ist dies keine Garantie dafür, dass die Änderungen leicht lesbar sind, aber zumindest nicht binär.Ich kann mir nicht vorstellen, warum es Ihrer Meinung nach Probleme bei der Verwendung von Git oder einem anderen Versionskontrollsystem für die Dokumentation gibt. Wie der Quellcode sollte auch die Dokumentation einen vollständigen Verlauf aufweisen und die Möglichkeit haben, bei Bedarf auf eine frühere Version zurückzugreifen. Ein Versionskontrollsystem ist dafür perfekt.
quelle
Es ist klar, dass die Verwendung eines Versionskontrollsystems zum Speichern von Dokumenten ein Nobrainer ist. Der interessantere Teil der Frage ist, ob es sinnvoll ist, Dokumente am selben Speicherort als Quellcode zu speichern. Das mögliche Problem hierbei ist, dass es in diesem Fall schwierig sein kann, unterschiedliche Zugriffsrechte für Code und Dokumentation festzulegen. In vielen Fällen benötigen Mitarbeiter Zugriff auf Dokumente, jedoch nicht auf den Quellcode, z. B. Marketing- oder BA-Abteilungen.
quelle
In der Firma, in der ich arbeite, haben wir die Dokumentation in SVN abgelegt. Nach ein paar Konflikten und der Notwendigkeit, es zu teilen, haben wir uns entschlossen, es auf Mediawiki zu verschieben.
Zuerst war es Trac, nachdem es auf Mediawiki verschoben wurde, weil es einfacher zu bedienen war ...
Das Hauptproblem bei SVN war die gemeinsame Nutzung, da wir ein Autorisierungssystem für SVN hatten.
quelle
Es ist eine sehr gute Sache, mehr als nur Quellcode in einem Repository zu haben.
Es gruppiert alle Ihre Ressourcen und verwandelt das Projekt in eine zusammenhängende, zentralisierte Einheit und nicht in eine verstreute Sammlung von Dateien. Mitwirkende / Mitarbeiter wissen, wo sie alles finden, anstatt zu senden: "Wo ändere ich die Dokumentation für Feature x?" E-Mails.
Sie wollen die Dinge organisiert halten. Haben Sie ein System zum Trennen
src
derimages
von derdocs
. Sie können.gitignore
einem Verzeichnis jederzeit ein hinzufügen , um das Repository und den Verlauf sauber zu halten. Da Git-Commits dateibasiert sind *, können Sie Quelländerungen von Dokumentationsänderungen so stark entkoppeln, wie Sie möchten.Wie bereits erwähnt, eignet sich Git hervorragend für die Versionsverwaltung von Dokumentationen, sofern es textbasiert ist.
Ich stimme vollkommen zu; Die Dokumentation sollte direkt neben dem Code versioniert werden.
Meine Glaubwürdigkeit beruht darauf, ein GitHub-Benutzer zu sein, an einem Projekt mitzuwirken und viele andere zu erkunden. Nach meiner Erfahrung lässt sich ein vollständiges, einheitliches Projekt leicht von einem halbwegs fehlenden Projekt unterscheiden. Ich versuche, alle meine Projekte nach Möglichkeit in einzelne Verzeichnisse zu packen.
* Dies ist nicht ganz korrekt, da es Möglichkeiten gibt, Teile einer Datei anzugeben , die festgeschrieben werden sollen ( hier ein Beispiel ).
quelle
Ich bin mit einer ähnlichen Frage hergekommen. Wir kommen aus einer SVN-Umgebung, in der es im Grunde genommen ein Kinderspiel ist, alle Materialien, die sich auf ein Projekt beziehen, im selben Repository zu speichern. Aufgrund der Natur von SVN können Sie problemlos Teile des Repositorys auschecken. Wenn Sie also nur den Quellcode benötigen (z. B. eine Website-Bereitstellung), ist dies kein Problem.
Bei Git ist das anders. Ein Checkout befindet sich immer auf der Root-Ebene. Wenn Sie also alles im selben Repository ablegen möchten, erhalten Sie immer die gleiche Verzeichnisstruktur. Ein Ansatz, auf den ich gestoßen bin, besteht darin, alles in separate Zweige zu unterteilen, dh Sie haben Code-Zweige (die normalerweise Ihre normalen Master-, Entwicklungs- usw. Zweige sind) und einen Doc-Zweig, der eine eigene, separate Verzeichnisstruktur hat. Ich bin mir noch nicht sicher, ob das die beste Idee ist, aber es ist ein Vorschlag, der das Problem umgeht, von dem ich mir vorstelle, dass es die Grundlage Ihrer Frage ist.
quelle
Ich benutze ein Wiki für interne Dokumente ... bekomme Revision PLUS prominenten Zugriff / einfache Bearbeitung. Wenn die Dokumentation nicht mehr synchron ist, aktualisieren Sie sie sofort. Betrachten Sie für die Endbenutzerdokumentation ein professionelles Tool wie Madcap Flare. Sie verwenden einen XML-Dialekt zum Teilen, Verfassen und Transformieren von Dokumentation.
quelle
Im Code werden Gedanken normalerweise zeilenweise getrennt. Ich neige dazu, Dokumentation mit weichen Zeilenumbrüchen zu schreiben. Wenn ich diese Dateien festschreibe, sind die Zeilen einen ganzen Absatz lang. Das ist nicht sehr nützlich zum Einlesen
git diff
. Das ist das Problem, das ich zu lösen versuchte, als ich googelte und diese Seite fand. Vielen Dank an Arne Hartherz , der mich vorgestellt hatgit diff --word-diff
. Das könnte dirgit diff --color-words
noch besser gefallen .quelle