Erste Milestone von Dedupe erreicht!

Proggen.org - Lernprojekt: Duplikatefinder
Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Dritter Milestone von Dedupe erreicht!

Beitrag von Bebu » Sa Jan 07, 2012 7:44 pm

Ich habe gerade Revision 250 hochgeladen. Damit sind wir bei Alpha 3. Die Duplikate werden jetzt gefunden und man kann sie sich in Gruppen geordnet anzeigen lassen. Interaktion mit dem User muss ich für die Kommandzeile erst schreiben. Meine nächsten Pläne: Userinteraktion fertig machen. Dabei entsteht auch schon ein kleiner Teil von Alpha 4 um absichtliche Duplikate festzulegen. Ein weiterer wichtiger Schritt ist es ein Datenbankupdate einzubauen, damit das Programm bei Start die Datenbank aktualsiert, wenn sich etwas verändert hat. Langsam riecht es nach einem Programm :mrgreen: :mrgreen: :mrgreen:
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Erste Milestone von Dedupe erreicht!

Beitrag von Bebu » Fr Jan 13, 2012 11:33 pm

Oh, das ist mein vierter Post hintereinander :mrgreen:
Revision 261 ist hochgeladen. Zitat aus dem Log:
Userinterface is complete. Duplicates are found and processed by the kernel. WARNING: Dedupe is a sharp dog now, if you say Delete File, IT WILL DELETE the file.
Dedupe macht nahezu seine Arbeit. Einige Features sind noch nicht komplett, aber die Grundfunktion ist vorhanden. Also achtet darauf, welche Dateien ihr zum löschen freigebt!

Die Datenbank wird leider noch nicht automatisch beim Programmstart aktualsiert, das heißt Veränderungen auf der Festplatte werden noch nicht erfasst. Einziger Weg ist momentan, die Datei aus der Datenbank zu löschen und neu hinzuzufügen.

Viel Spass beim Testen.

@fat-lobyte: Aus dieser Revision lohnt es sich ein Deb zu bauen, es ist ein markanter Schritt und es ist für die nächsten 10 Tage vermutlich das letzte Update.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Erste Milestone von Dedupe erreicht!

Beitrag von fat-lobyte » Mi Apr 04, 2012 10:25 am

Hallo. Darf man fragen, wies zurzeit aussieht?

Kann wie funktioniert die Identifizierung doppelter Dateien?
Kann man ähnliche Dateien nach Größe/Name/Hash finden?

Ich habe tatsächlich den Bedarf an dem Tool, und jetzt überleg ich mir ob ich dazu Dedupe als Beta-Tester einsetze oder ein anderes Tool verwende.
Haters gonna hate, potatoes gonna potate.

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: Erste Milestone von Dedupe erreicht!

Beitrag von nufan » Do Apr 05, 2012 4:06 pm

Bis jetzt hab ich mich eigentlich nur an der ncurses-Oberfläche orientiert. Wenn ihr mir sagt wie die Qt-Oberfläche aussehen soll und wie sie prinzipiell implementiert werden soll, könnte ich daran weiterarbeiten.

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Erste Milestone von Dedupe erreicht!

Beitrag von fat-lobyte » Do Apr 05, 2012 4:25 pm

fat-lobyte hat geschrieben:
dani93 hat geschrieben:Bis jetzt hab ich mich eigentlich nur an der ncurses-Oberfläche orientiert. Wenn ihr mir sagt wie die Qt-Oberfläche aussehen soll und wie sie prinzipiell implementiert werden soll, könnte ich daran weiterarbeiten.
Also erstens: ich glaube hier sollte man von der üblichen Auftraggeber/Auftragnehmer-Situation absehen. Wenn du selbst Ideen zum Design hast, präsentiere sie wenn du Feedback haben willst. Wenn du keins brauchst, dann Code einfach drauf los.

Zweitens:
Hat man denn schon genau definiert, was dedupe denn überhaupt machen soll?
Soweit ich das verstanden habe ist das Dateiduplikate zu finden - nach welchem Muster? Kann man das einstellen?

Wozu braucht man überhaupt eine Datenbank? Welche Info bleibt zwischen den Aufrufen gespeichert?

Drittens: ist denn beim "Interface" alles glatt? Ich erinnere mich dunkel, dass es da den einen oder anderen "thinko" gab, was die Kommunikation des Kernels mit dem Userinterface betrifft.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Erste Milestone von Dedupe erreicht!

Beitrag von cloidnerux » Do Apr 05, 2012 4:27 pm

Hat man denn schon genau definiert, was dedupe denn überhaupt machen soll?
Soweit ich das verstanden habe ist das Dateiduplikate zu finden - nach welchem Muster? Kann man das einstellen?
Bisher war das Konzept so, dass man einen hash für eine Datei über den Dateiinhalt generiert hat und dann mit diesem hash dann Dateien vergleicht, ob sie gleich sind, wobei hierbei auch die Dateigröße berücksichtigt werden sollte, um evt Doppel-hash-Fehler auszuschließen.
Einen bestimmten Ähnlichkeitsgrad kann man nicht einstellen.
Wozu braucht man überhaupt eine Datenbank? Welche Info bleibt zwischen den Aufrufen gespeichert?
Die Datenbank soll dazu dienen, die schon generierten hashes zu speichern, um dann beim Nächsten Aufruf schnell im vergleichen sein zu können, wobei ich hier auch etwas Kritik üben könnte.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Erste Milestone von Dedupe erreicht!

Beitrag von fat-lobyte » Do Apr 05, 2012 4:50 pm

cloidnerux hat geschrieben:Bisher war das Konzept so, dass man einen hash für eine Datei über den Dateiinhalt generiert hat und dann mit diesem hash dann Dateien vergleicht, ob sie gleich sind, wobei hierbei auch die Dateigröße berücksichtigt werden sollte, um evt Doppel-hash-Fehler auszuschließen.
cloidnerux hat geschrieben:Einen bestimmten Ähnlichkeitsgrad kann man nicht einstellen.
Das meinte ich nicht. Ich meinte, dass die Ähnlichkeitssuche nach verschiedenen Kriterien verläuft, z.B. nur nach Dateiname (nicht nach Hash) oder nur nach Dateigröße.
Ist das geplant? Wenn nicht, hätte ich da einen Feature-Request.
Die Datenbank soll dazu dienen, die schon generierten hashes zu speichern, um dann beim Nächsten Aufruf schnell im vergleichen sein zu können,
Also ist das eine Geschwindigkeitsoptimierung?

Hier mal mein Use-Case: Ich will ein Verzeichnis deduplizieren. Optimalerweise muss ich das nur einmal machen, und habe danach für die Datenbank keine Verwendung mehr.
Andererseits: wenn ich mehrmals nach unterschiedlichen Kriterien filtern will, und das Verzeichnis nicht jedesmal neu gescannt werden soll, dann muss eine Datenbank schon her.
wobei ich hier auch etwas Kritik üben könnte.
Dann übe bitte!
Meine Kritik wäre: was genau erspart man sich mit der Datenbank? Muss man zurzeit nicht trotzdem bei jeder Dateiänderung die Datei neu hashen? Und wie unterscheidet man eine veränderte von einer nicht-veränderten Datei?

Ich hoffe Bebu kommt die Tage mal online und erzählt was er sich gedacht hat.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Erste Milestone von Dedupe erreicht!

Beitrag von cloidnerux » Do Apr 05, 2012 4:58 pm

Das meinte ich nicht. Ich meinte, dass die Ähnlichkeitssuche nach verschiedenen Kriterien verläuft, z.B. nur nach Dateiname (nicht nach Hash) oder nur nach Dateigröße.
Ist das geplant? Wenn nicht, hätte ich da einen Feature-Request.
Wäre ne Möglichkeit, fände ich auch gut. Wir haben doch auch mal über nen Bild-Filter nachgedacht, um Bilder vergleichen zu können?
Dann übe bitte!
Meine Kritik wäre: was genau erspart man sich mit der Datenbank? Muss man zurzeit nicht trotzdem bei jeder Dateiänderung die Datei neu hashen? Und wie unterscheidet man eine veränderte von einer nicht-veränderten Datei?
Sehe ich ähnlich. Wenn man die hashes, die Dateipfade und die Dateigrößen in einer DB hat, so mus man trotzdem erstmal prüfen, ob der hash noch aktuell ist, ob die Datei noch existiert usw. Dann kann man erst prüfen, ob dann eine Datei ähnlich ist und dann muss man verhindern, dass nicht die alte Datei das Duplikat ist, dass man loswerden will, das Programm aber neue Dateien bevorzugt. Dies könnte z.B Auftreten, wenn man von einem Arbeits-Dir zu einem Finalen(oder ähnliches) wechselt/kopiert.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Erste Milestone von Dedupe erreicht!

Beitrag von Bebu » Do Apr 05, 2012 5:24 pm

Anfragen registriert ;)
Ich bin gerade etwas im Stress und muss euch mit der Antwort noch ein paar Stunden vertrösten.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Erste Milestone von Dedupe erreicht!

Beitrag von Bebu » Do Apr 05, 2012 10:13 pm

fat-lobyte hat geschrieben:Hallo. Darf man fragen, wies zurzeit aussieht?

Kann wie funktioniert die Identifizierung doppelter Dateien?
Kann man ähnliche Dateien nach Größe/Name/Hash finden?

Ich habe tatsächlich den Bedarf an dem Tool, und jetzt überleg ich mir ob ich dazu Dedupe als Beta-Tester einsetze oder ein anderes Tool verwende.
Dedupe ist zur Zeit im Winterschlaf, nach der Geschichte mit dem Stringproblemen zwischen Windows und Posix, habe ich mal wieder die Lust verloren. Außerdem stecke ich in meinen Hochzeitsvorbereitungen und habe anderes im Kopf... ABER:
Dedupe funktioniert, sogar mit Datenbankupdate, ist auch schon hochgeladen. Die aktuelle Revision findet Duplikate und bietet dir eine Auswahl an, was damit getan werden soll. Die Option zum Markieren absichtlicher Duplikate ist allerdings nicht fertig und funktioniert auch noch überhaupt nicht.

Derzeit werden Duplikate ausschließlich über den Hashwert gefunden, die anderen Möglichkeiten müssten sich aber mit verhältnismäßig wenig Aufwand einbauen lassen.

Derzeitiger Arbeitsablauf von Dedupe:
Dateien hinzufügen -> Hash wird berechnet ->Abspeichern in Datenbank
Duplikate suchen ->Duplikate werden per Userinterface abgefragt -> Verarbeitung der Eingaben

Es gibt eine Funktion Datenbankupdate. Dazu werden alle Pfade die in der Datenbank gespeichert sind noch einmal von der Festplatte abgefragt und ihre Werte mit den gespeicherten abgeglichen. Ist alles gleich geblieben, passiert nichts. Hat sich Größe, Änderungsdatum geändert, wird die Datei neu gehasht und die Datenbank aktualisiert. Diese Funktion wird vor jeder Operation durch den User aufgerufen, damit die Daten immer aktuell sind.

Ich denke man kann Dedupe schon produktiv einsetzen, wenn man nur einmalig Duplikate los werden will. Für die Automatische Duplikatüberwachung von ganzen Verzeichnissen, ist es noch nicht weit genug fertig, da das setzen von absichtlichen Duplikaten noch fehlt.

Feuer frei für eure Kommentare
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Antworten