Wie kann ich Änderungen an Dateien/Ordnern überwachen, die offline vorgenommen wurden?

Wir sind 4 Freunde und arbeiten an einem Projekt. Jeder arbeitet separat an einem Computer (Windows), und alle Dateien werden auf einem gemeinsamen Netzlaufwerk in einem der PCs gespeichert.

Wir möchten die Änderungen überwachen, die an Dateien/Ordnern in diesem Laufwerk vorgenommen wurden. Änderungen wie:

  • Neue Datei/Ordner
  • Datei/Ordner löschen
  • Datei/Ordner umbenennen
  • Datei bearbeiten/ändern

und mit diesen Parametern:

  • Datum/Uhrzeit der Änderung
  • Benutzer (der die Änderung vorgenommen hat)

Ich habe nach diesem Problem gegoogelt und viele Anwendungen gefunden. Bei fast allen gibt es einige Probleme:

  • Einige dieser Anwendungen zeichnen die Änderungen der vergangenen Offline-Zeit nicht auf. Stellen Sie sich zum Beispiel vor, ich bin nicht im Büro (und daher läuft die Datei-/Ordnerüberwachungssoftware nicht auf meinem PC). Aber meine Freunde arbeiten und nehmen Änderungen an einigen Dateien/Ordnern auf dem freigegebenen Netzlaufwerk vor. Ich gehe ins Büro und möchte genau wissen, welche Dateien/Ordner während meiner Abwesenheit geändert wurden (seit ich die Überwachungssoftware das letzte Mal ausgeführt habe). Die meisten dieser Anwendungen haben Protokolle, aber sie protokollieren nur Ereignisänderungen, die vorgenommen werden, nachdem Sie die Software ausgeführt haben. Sie verfolgen die Vergangenheit nicht.

  • Wir wollen wissen, welche Änderungen mit welchem ​​Benutzer/Prozess/PC vorgenommen wurden. Die meisten dieser Anwendungen zur Überwachung von Dateien/Ordnern verfolgen nur die Änderungen und erkennen den Benutzer nicht, insbesondere über ein gemeinsam genutztes Netzwerk.

Die einzige Software, die ich für diesen Zweck gefunden habe, ist DirectoryMonitor . Aber seine kostenlose Version erkennt den Benutzer/Prozess nicht!

Kennen Sie andere Software?

Wenn Sie offen für eine webbasierte Lösung sind und die Freigaben per WebDAV mounten: ownCloud hat ein Aktivitätsprotokoll integriert und speichert sogar Backups von geänderten Dateien (eine Art einfache Versionierung). Wenn ich das "Aktivitätsprotokoll" meiner einfachen Installation überprüfe, zeigt es, "wer" "was" und "wann" getan hat (z. B. "BenutzerX hat DateiY um ZeitstempelZ erstellt/geändert/gelöscht"). Da dies vom "Server" aufgezeichnet wird, spielt es keine Rolle, ob Ihr Arbeitsplatz zu dem Zeitpunkt "online" war, als einer Ihrer Freunde die Änderung verursacht hat.
Danke @Izzy für deinen Kommentar. Es ist gut, aber ich möchte mich nicht auf webbasierte Berichte beschränken. Denn die meisten unserer Daten werden lokal gespeichert.
OK, ich verstehe. Eine weitere rohe Idee: Apache+WebDAV+ SVN würde die Versionierung auf einem "geteilten Laufwerk" (wieder WebDAV) durchführen. SVN ist ein Revisionskontrollsystem , und wenn Sie es über Apache mit WebDAV und Auto-Commit verwenden, haben Sie sowohl die Versionen als auch die Historie wieder und können diese per CLI oder GUI abfragen. Nicht sicher, ob Apache+WebDAV+X eine andere X-Komponente wie Git oder Mercurial hat, die auf die gleiche Weise funktioniert. Wäre das besser?
Danke @Izzy für deinen Kommentar. Klingt nach einer netten Lösung, ist mir aber zu kompliziert!

Antworten (1)

Es hört sich so an, als ob Sie ein vollständiges VCS -Versionskontrollsystem benötigen , von dem es mehrere kostenlose gibt. Genauer gesagt brauchst du ein DVCS, Distributed VCS .

Mit einem solchen System hätte jeder von Ihnen lokal einen Klon, die "Master" -Kopie, um auf Ihrem eigenen System (Ihren eigenen Systemen) zu arbeiten, würde Ihre Änderungen vornehmen, sie mit einer Nachricht darüber, warum Sie die aktuellen Änderungen vorgenommen haben, festschreiben und pushen Ihre Änderungen zurück in die Masterkopie.

Persönlich würde ich Leuten, die mit Versionskontrollsystemen nicht allzu vertraut sind, mercurial wärmstens empfehlen, da es nicht so anspruchsvoll ist wie viele andere Systeme, aber immer noch sehr gut ist, keinen dedizierten zentralen Server haben muss, kostenlos und plattformübergreifend ist. Für eine Windows-GUI-Schnittstelle zu Mercurial gibt es TortoiseHG .

Sie können genau sehen, was andere geändert haben, wann und warum sie die Änderung vorgenommen haben, können Änderungen bei Bedarf rückgängig machen usw., sowohl über die Befehlszeile als auch über verschiedene GUI-Clients.

Der grundlegende Befehlssatz, wenn Sie hg verwenden würden, ist unten dargestellt:Mercurial_Befehle_und_ihre_Beziehungen

Von Axaluss - Eigene Arbeit, CC BY-SA 3.0 .

Einer der großen Vorteile eines solchen Systems besteht darin, dass Sie, selbst wenn Sie nicht im Büro sind, am Projekt arbeiten, Änderungen vornehmen, Dateien, Verzeichnisse usw. hinzufügen und die verschiedenen Phasen Ihrer Arbeit festschreiben können, und zwar dann, wenn Sie es sind Zurück im Büro verschieben Sie Ihre Änderungen, um sie in den Verlauf des Projekts einzufügen, und Sie werden auf Konflikte zwischen Ihren Änderungen und denen anderer aufmerksam gemacht und können diese ansprechen.

Stimmt, das wäre auch eine gute Option (um eine Alternative zu nennen: Was du auf Mercurial geschrieben hast, passt im Grunde 1:1 zu Git) – aber anders als bei einem "normalen File-Server" als "Shared Drive" muss man eben explizit einchecken und pushen, was vergessen werden könnte.
@Izzy - viele der Leute, mit denen ich zu tun habe, sind der Meinung, dass hg weniger verwirrend ist als git, weshalb ich es eher als git empfohlen habe.
Danke @SteveBarnes für deine ausführliche Antwort. Ich werde TortoiseHG ausprobieren und sehen, wie es funktioniert.