Ich bin auf der Suche nach einem Tool, das mir einen inkrementellen Dateiverlauf (für textbasierte Quelldateien) liefern kann. Ich verwende die Versionskontrolle, hätte aber gerne mehr Verlauf.
Dieser Verlauf muss nur temporär sein und die Lücke zwischen Commits überbrücken. Sublime lässt mich bereits den Inhalt des Editors von dem unterscheiden, was gespeichert ist. Ich möchte also einen Änderungsdatensatz pro Speicherung erhalten.
Viele IDEs haben diese Funktion. Zum Beispiel die lokale Geschichte von IntelliJ . Ich möchte dies jedoch unabhängig von einer IDE oder einem Texteditor tun. Ich bin auf der Suche nach einem speziellen Tool, das unter Linux ausgeführt werden kann.
Ein Ansatz wäre, rsync zu verwenden und regelmäßig Backups zu erstellen. Es gibt sogar Tools, die dies tun, wie z. B. tym . Dies würde jedoch das Durchsuchen der Liste der Änderungen erschweren. Ich hätte gerne etwas, das einen Verlauf im Git-Stil hat und eine Schnittstelle im Meld- Stil verwenden kann, um Änderungen zu unterscheiden.
Die Möglichkeit, Versionen von Dateien automatisch und unabhängig von der Anwendung beizubehalten, liegt auf Dateisystemebene. Dafür gibt es ein FUSE - Dateisystem: copyfs . Copyfs bietet eine Ansicht eines bestehenden Verzeichnisbaums (gespeichert auf dem Dateisystem Ihrer Wahl), in dem alle früheren Versionen jeder Datei verfügbar sind. Das Öffnen von Dateien ergibt normalerweise die neueste Version; Mit dem Befehlszeilentool copyfs-fversion
können Sie auf frühere Versionen zugreifen.
Um eine frühere Version mit der aktuellen Version zu vergleichen, führen Sie aus , um die alte Version zu sperren, erstellen Sie eine Kopie davon und führen Sie dann aus , um zur neuesten Version zurückzukehren. Es gibt auch mindestens eine gepatchte Version, fuse-copyfs , die sich (unter anderem) um eine Option zum Vergleichen von Versionen erweitert.copyfs-fversion -l VERSION-NUMBER FILE
copy-fversion -r *FILE*
copyfs-fversion
-d
Copyfs hat keine Möglichkeit, alte Versionen zu löschen.
Alternativen (auch basierend auf FUSE) werden in Linux File Versioning erwähnt? auf Unix & Linux .
Sie könnten git selbst lokal - ohne die Notwendigkeit eines Servers - verwenden, um den Verlauf zu verfolgen. Wenn Sie Git auf Ihrem Computer installiert haben, geben Sie den git init
Befehl innerhalb des Verzeichnisses aus, um ein Git-Repository in Ihrem vorhandenen Verzeichnis zu initialisieren. Fügen Sie nun die Auswahl Ihrer Dateien mit dem Add-Befehl hinzu, zB: git add *.py
. Übergeben Sie die aktuelle Version beispielsweise mit git commit -m 'initial version'
, und arbeiten Sie weiter an den Dateien. Feuern Sie den Commit-Befehl an Ihren gewünschten Meilensteinen ab.
Sie können jede Git-Benutzeroberfläche verwenden, um dieses lokale Repository zu durchsuchen und den Dateiverlauf mit kompatiblen Tools anzuzeigen.
==Zusätzliche Informationen unten zur Automatisierung auf Anfrage von Angelo==
Die Git-Commit-Aktion kann beim Speichern von Dateien mit Skript- und Betriebssystemfunktionen oder zusätzlicher Software automatisiert werden, wäre aber wahrscheinlich ein Overkill. Aber nur um die Option zu erkunden,
iNotify
könnte es genutzt werden, um beim Systemstart automatisch ein Skript zu starten, um Änderungen an Ordnern in einer bestimmten Liste zu überwachen, und den Befehl git commit auszulösen, wenn Änderungen auftreten.
Angelo Fuchs
Tedy Kanjirathinkal