Hashfunktion

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

Re: Hashfunktion

Beitrag von fat-lobyte » Do Jul 08, 2010 1:57 pm

Hallo, hab deinen Code getestet, und er scheint auch zu funktionieren.

Allerdings habe ich dazu eine kleine Anpassung am CMakeLists.txt file machen müssen.
Das ist der Patch dazu:
cmake-allgemein.patch
Du kannst ihn anwenden, in dem du in ihn als datei abspeicherst (z.b. als cmake-allgemein.patch) in dein Projekthauptverzeichnis wechselst, und dort
patch -p1 < cmake-allgemein.patch
eingibst.

Sollte es probleme geben, hier einfach die ganze datei:
CMakeLists.txt
Was ich geändert habe:
Das cmake_minimum_required_version() gehört nach oben. Überlege dir auch, ob du wirklich 2.8 brauchst. Ich denke, 2.6 würde auch reichen.

CMake hat die coole Eigenschaft, dass es für sehr viele Bibliotheken bereits finder gibt, sodass die Bibliotheken automatisch gefunden und eingebunden werden. Dafür brauchst du die zeilen 6, 9 und 10.
Statt statisch mit irgendeiner lib zu linken wird in Zeile 15 dynamisch die richtige ausgewählt.
Somit funktioniert das ganze auch mit Linux.

Falls CMake die bibliotheken nicht von selbst findet, musst du es mit der Nase darauf stoßen, also so mit
cmake -DBOOST_ROOT="<Pfad\Zu\Boost>"

Auch solltest du überprüfen ob man nicht vielleicht eine niedrigere Version der Boost bibliothek verwenden könnte. Ich hab hier einfach mal 1.40 eingesetzt.

Hoffe das hilft ein bisschen.

mfg, fat-lobyte
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
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: Hashfunktion

Beitrag von cloidnerux » Do Jul 08, 2010 2:31 pm

Allerdings habe ich dazu eine kleine Anpassung am CMakeLists.txt file machen müssen.
War zu erwarten, dann ich hatte die Datei mit Hilfe von Google und etwas überlegen zusammengeflickt, also nichts, was man als durchdacht ansehen kann.
Hallo, hab deinen Code getestet, und er scheint auch zu funktionieren.
Das ist schön.
Das cmake_minimum_required_version() gehört nach oben. Überlege dir auch, ob du wirklich 2.8 brauchst. Ich denke, 2.6 würde auch reichen.
Wahrscheinlich schon, ich hatte das egt nur als Temporären Fix eingetragen, um überhaupt mit cmake arbeiten zu können.
CMake hat die coole Eigenschaft, dass es für sehr viele Bibliotheken bereits finder gibt,
Das hatte ich bei der Recherche auch gesehen, nur ich hatte es etwas eiliger und hab dann das für mich noch einfachere genommen.
Hoffe das hilft ein bisschen.
Hoffe ich auch, danke für die Korrekturen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

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

Re: Hashfunktion

Beitrag von cloidnerux » So Jul 11, 2010 1:20 pm

Hashklasse wurde erweitert.
Der Alte teil mit meiner Implementation einer Ordner- und Dateisuche wurde raus geschmissen, damit auch die Boost-Abhängigkeit, weil ich es auch nicht geschafft hatte mit dem "find_package" eine Projektdatei zu generieren.
Es gibt jetzt 2 Hashklassen, eine Hash32 für 32-Bittige Hashes und eine Hash64 für 64-Bittige Hashes. Über ein typedef kann man auch mit "Hash" ein 32-Bit Hash nutzen.
Die Hashingalgorithmen wurden verbessert und sollten schneller arbeiten, alle Funktionen wurden getestet und ich habe meine Sachen ins Repo committet und die überflüssigen/falschen Dateien entfernt.
Sobald alle Anpassung im Codestil gemacht wurden, kommt es in den Trunk.
Interfacebeschreibung kommt bald.
Redundanz macht wiederholen unnötig.
quod erat expectandum

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

Re: Hashfunktion

Beitrag von cloidnerux » Mo Jul 12, 2010 8:01 am

In welchen Namensraum würde die Klasse fallen?
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: Hashfunktion

Beitrag von fat-lobyte » Mo Jul 12, 2010 1:06 pm

Kleiner Tip: du musst nicht bei jeder Änderung alle Dateien Löschen, commiten, und sie neu einchecken :-)
Der Sinn eines Versionsverwaltungssystem ist nicht nur den Code in eine Tonne zu schmeißen, sondern auch dass man Zeilenbasiert zurückverfolgen kann wer was wann warum geschrieben hat.
Versuch nächstes mal einfach deine Änderungen zu machen zu machen, und diese zu Commiten. Dann hast du auch nur einen Commit, und dort ist dann klar ersichtlich was für Änderungen du gemacht hast.

mfg, fat-lobyte
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: Hashfunktion

Beitrag von cloidnerux » Mo Jul 12, 2010 2:16 pm

Versuch nächstes mal einfach deine Änderungen zu machen zu machen, und diese zu Commiten
Wenn man mich lässt, mein TortoiseSVN hat nen Fehler ausgespuckt und sich beendet. Die einzigste Lösung die ich auf die Schnelle finden konnte war halt eben alle Dateien zu löschen, was ich aber meistens versuche zu vermeiden, denn das ist nicht mein erstes mal mit nem Versionsverwaltungssystem.
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: Hashfunktion

Beitrag von fat-lobyte » Mo Jul 12, 2010 2:21 pm

cloidnerux hat geschrieben:das ist nicht mein erstes mal mit nem Versionsverwaltungssystem.
Tut mir leid, das wusste ich nicht. Ich hab nur die commits gesehen und das sah irgendwie komisch aus.
cloidnerux hat geschrieben:Wenn man mich lässt, mein TortoiseSVN hat nen Fehler ausgespuckt und sich beendet.
Das kommt davon dass man Tortoise verwendet . Richtige Hacker machen das alles von der Konsole aus ;)
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: Hashfunktion

Beitrag von cloidnerux » Mo Jul 12, 2010 2:37 pm

Das kommt davon dass man Tortoise verwendet . Richtige Hacker machen das alles von der Konsole aus ;)
Richtige Hacker machen das noch selber mitm schalter und nem RJ45-Kabel^^
Aber kennst du eine direkte Alternative für TortoiseSVN, die sich auch in das Kontextmenü eingliedert und ne Grafische Oberfläche besitzt?
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: Hashfunktion

Beitrag von fat-lobyte » Mo Jul 12, 2010 4:53 pm

cloidnerux hat geschrieben:Aber kennst du eine direkte Alternative für TortoiseSVN, die sich auch in das Kontextmenü eingliedert und ne Grafische Oberfläche besitzt?
Ich mein das ernst mit der Konsole! Ich benutze svn und git immer nur aus der Konsole heraus. Wer weiß schon was dieses grafische Ungetüm macht??
Aber Wikipedia sagt, es gibt da noch z.B: SmartSVN
Außerdem gibts für manche IDE's auch SVN plugins, beispielsweise gibts für Visual Studio (das verwendest du doch wie ich gesehen habe?) VisualSVN, AnkhSVN

AnkhSVN scheint hier nicht so schlecht davonzukommen: http://stackoverflow.com/questions/4534 ... -are-there

einfach mal googeln...
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: Hashfunktion

Beitrag von cloidnerux » Mo Jul 12, 2010 5:05 pm

Außerdem gibts für manche IDE's auch SVN plugins, beispielsweise gibts für Visual Studio (das verwendest du doch wie ich gesehen habe?) VisualSVN, AnkhSVN
Jop, kenne ich, nutze ich auch. Ist nur ungeeignet für unser Projekt, da ich mit denen auch die Projektmappen commite, und die werden ja nicht gebraucht.
Ich mein das ernst mit der Konsole!
Weiß ich, bin nur kein großer Konsolenfan unter Windows.
Aber Wikipedia sagt, es gibt da noch z.B: SmartSVN
Kann ich mir bei Gelegenheit mal anschauen.

Für den Anfang reicht mir noch TortoiseSVN, die Hashklasse ist ja soweit funktionstüchtig, also werden nicht mehr viele commits kommen.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten