Datei-Rückgängig-Verlauf außerhalb eines beliebigen Texteditors (ähnlich dem lokalen Verlauf in einer IDE)

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.

Antworten (2)

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-fversionkö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 FILEcopy-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 initBefehl 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,

  1. Unter Linux iNotifykö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.
  2. Auf dem Mac kann eine „Ordneraktion“ eingerichtet werden, um nach Änderungen in einem Ordner zu suchen und bei einem qualifizierenden Ereignis ein Skript zu starten, das die Git-Commit-Aktion enthält
  3. Unter Windows können Sie entweder ein einfaches C#-Programm mit dem FileSystemWatcher zusammenbauen oder eines der vielen Freeware-Programme verwenden, die für diesen Zweck verfügbar sind (z. B. Watch 4 Folder ), und als Antwort die Git-Commit-Aktion auslösen.
Könnten Sie eine Beschreibung hinzufügen, wie dies für jede Änderung an der Datei automatisiert werden könnte? Der lokale Verlauf der IDEs, die das OP erwähnt, benötigt kein zusätzliches Tool. Gibt es eine Möglichkeit, sich in die Änderungen des Dateisystems einzuklinken?
@AngeloNeuschitzer, habe die Antwort mit Vorschlägen zur Automatisierung aktualisiert