Finden Sie doppelte und überlappende Verzeichnisse, Dateien und Bäume in einem Dateisystem.
Fügen Sie diese Zeile zur Gemfile Ihrer Anwendung hinzu:
gem 'dupless'
Und dann ausführen:
$ bundle
Oder installieren Sie es selbst als:
$ gem install dupless
Es gibt zwei Anwendungen mit unterschiedlichen Implementierungen.
Dadurch werden doppelte Dateien und Verzeichnisse gefunden, die zumindest teilweise mit den Dateien in einem anderen Verzeichnis übereinstimmen.
Der Dateivergleich basiert auf dem Inhalt der Datei, nicht auf Dateinamen, also wie bei diff
.
Dabei wird Caching verwendet, um ein wiederholtes Lesen von Dateien zu vermeiden.
Wenn ein Paar (oder mehrere) Dateien aus zwei Verzeichnissen übereinstimmen, werden die Verzeichnisse verglichen und können einen dieser Typen haben:
Identisch: Jede Datei in beiden Verzeichnissen hat eine Übereinstimmung im anderen Verzeichnis.
Enthält: Jede Datei in einem Verzeichnis hat eine Datei in einem anderen Verzeichnis, dh das erste Verzeichnis ist eine Obermenge des zweiten.
Nichtübereinstimmung: Zwei Verzeichnisse haben gemeinsame Dateien, dh eine Schnittmenge von mindestens einem Element.
Dadurch werden doppelte Hierarchien von Dateien und Verzeichnissen gefunden, die nur auf dem Namen basieren (nicht auf dem Dateiinhalt, im Gegensatz zu dupless
).
Zwei Verzeichnisse sind gleich (identisch), wenn alle Verzeichnisse und Dateien in jedem Verzeichnis im zweiten Verzeichnis übereinstimmen.
Hierbei wird kein Caching verwendet.
Obermengen („enthält“) und Schnittmengen („Mismatches“) werden nicht berechnet.
Führen Sie nach dem Auschecken des Repos bin/setup
aus, um Abhängigkeiten zu installieren. Führen Sie dann rake test
aus, um die Tests auszuführen. Sie können auch bin/console
ausführen, um eine interaktive Eingabeaufforderung zu erhalten, mit der Sie experimentieren können.
Um dieses Juwel auf Ihrem lokalen Computer zu installieren, führen Sie bundle exec rake install
aus. Um eine neue Version zu veröffentlichen, aktualisieren Sie die Versionsnummer in version.rb
und führen Sie dann bundle exec rake release
aus. Dadurch wird ein Git-Tag für die Version erstellt, Git-Commits und -Tags gepusht und die .gem
Datei an rubygems.org gepusht.
Fehlerberichte und Pull-Requests sind auf GitHub unter https://github.com/jpace/dupless durchaus willkommen.
Das Juwel ist als Open Source unter den Bedingungen der MIT-Lizenz verfügbar.