• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Problem mit Duplikaten

white_rabbit

Geocacher
Hallo.
Ich habe hier ein kleines Problem mit Duplikaten unter Linux/Windows. Es ist so: Wenn ich per Cachewolf ein paar Caches spidere, werden manchmal Bilder/XML-Dateien in Groß- und Kleineschreibung auf meinem Linux-Dateisystem abgelegt. Das ganze kann dann z.B. so aussehen:
GC18VDG_0.jpg *und* gc18vdg_0.jpg (warum auch immer)
Nun synchronisiere ich die Caches mit Hilfe von Unison auf meine SD-Karte, auf der dann die PPC-Version läuft. Natürlich ist die SD-Karte für das Smartphone mit fat32 formatiert, so dass es dort keine Groß-/Kleinschreibung gibt bzw nicht unterschieden wird. Und genau das ist das Problem: Beim synchronisieren werden mir ganzen "Duplikate" um die Ohren gehauen. Ich habe schon nach einem Weg gesucht, wie ich diese Duplikate herausfiltern kann, aber leider weiß ich nicht, welche Schreibweise die benötigte/von CW angeforderte ist?!
Besitzt von euch jemand ein Bash-Skript, mit dem man dieses Problem erledigen könnte oder wie geht ihr da vor?
(Ach ja: Die Optionen "ignorecase = true" sowie "perms = 0" sind mir bekannt und unter Unison aktiviert -- hat aber nicht geholfen)
 

pfeffer

Geowizard
funktioniert irgendwas mit Cachewolf dabei nicht?
werden irgendwelche Bilder nicht angezeigt?

In der Tat ist die Sache kompliziert - ich dachte, wir hätten das schon mal gelöst gehabt, aber vielleicht nur für die cache.xml.

Es ist so:
bekanntermaßen ist Linux case-sensitiv, windows hingegen nicht.
In Fat können lange Dateinamen, große und kleine Buchstaben enthalten. Bei Dateinamen, die dem 8.3-Schema entsprechen, kann jedoch nicht zwischen großen und kleinen Buchstaben unterschieden werden. Windows zeigt sie immer als große Buchstaben an - Linux leider standardmäßig als kleine.
Damit das also auch bei 8.3-Dateinamen zuverlässig funktioniert, müsste Cachewolf eigentlich alle Dateinamen sowohl in Groß- alsauch in Kleinbuchstaben suchen (vermute aber, dass er das bisher bei Bildern nicht tut).

Gruß,
Pfeffer.
 
OP
W

white_rabbit

Geocacher
hi.
doch, CW funktioniert. Ich kann leider nicht sagen, ob die Bilder in Groß- oder Kleinschrift in der xml-Datei "angefordert" werden. Ich hatte das Problem irgendwann auch schon mal für mich gelöst, weiß aber nicht mehr wie. Man müsste eigentlich "nur" die Duplikate finden und immer eine Version löschen -- z.B. alles in Großschreibung. Dazu gibt es diverse Tools wie zb. fslint aber bei diesem speziellen Problem hilft das auch nicht weiter. Daher suche ich weiterhin ein Bash-Script, bei dem mit find ... und exec oder so gearbeitet wird??!
 

pfeffer

Geowizard
wie sie von Cachewolf "angefordert" werden, steht in der jeweiligen cache.xml unter <images> drin. Da die Dateinamen der Bilder wohl meist länger als 8 Zeichen sind, tritt das 8.3-Problem wohl bei den Bildern normalerweise nicht auf.

Ich habe gerade in den Source-Code von Cachewolf geguckt: Die Bild-Dateinamen werden in Kleinbuchstaben erzeugt. Vielleicht hast Du noch alte Bilder dabei, wo das noch nicht der Fall war.

Gruß,
Pfeffer.
 
OP
W

white_rabbit

Geocacher
ja, ich hatte auch auf kleinschreibung getippt. nun habe ich folgendes gemacht:

unter --> ..../bleeding_edge_java/My_Profiles/GC_20km_Umkreis
habe ich den Befehl
Code:
find . -type f -exec sh -c 'mv -f "$0" "`echo "$0" | tr \[:upper:\] \[:lower:\]`"' {} \;
losgelassen. Das hat mir lauter lowercase-Dateinamen beschert. Blöderweise war das aber auch nicht der Weisheit letzter Schluss, denn wenn ich jetzt im CW auf einen Cache mit einem Bild klicke, erscheint dort ein Fragezeichen (gelöscht). Offenbar ist die Schreibweise also nicht einheitlich kleingeschrieben???
 

pfeffer

Geowizard
früher war das nicht einheitlich klein.
Vielleicht aktualisierst Du die Caches mal.

Gruß,
Pfeffer.
 
OP
W

white_rabbit

Geocacher
also da ich kurz vorher von CW 1.0 auf 1.1 (NB) gewechselt bin, wurde die liste schon mal ins neue format konvertiert. Beim ersten Einloggen wurden dann *alle* Caches nochmal der Reihe nach abgerufen (obwohl ich nicht auf aktualisieren, sondern nur auf spidern (nach neuen caches suchen) geklickt hatte). von daher hatte ich bis dato gedacht, dass die liste damit auch in der aktuellen kleinschreibung vorliegt aber das geschieht offenbar erst, wenn man auf "markierte aktualiseren" klickt, ja??
 

pfeffer

Geowizard
hmm - das weiß ich nicht so genau, vermutlich ist es so.
Du kannst das ja mal in einem neuen Profil mit wenigen Caches testen.

Gruß,
Pfeffer.
 
OP
W

white_rabbit

Geocacher
Also die Sache mit der Kleinschreibung kann so doch nicht stimmen! Ich habe gerade ein paar Caches aktualisieren lassen (Markierte aktualisieren). Fazit: Jetzt liegen in dem Verzeichnis die Bilder wieder in Großschreibung vor und werden für diese Caches natürlich auch angezeigt... das identische Bild in Kleinschreibung wird ignoriert.
 
OP
W

white_rabbit

Geocacher
noch ein Nachtrag: die Sache mit der Klein- / Großschreibung ist doch noch etwas verzwickter, denn wenn ich einen Cache aktualisiere, erhalte ich z.B. das hier:
GC37P5B_1.jpg
Es wird also Klein- und Großschreibung gemischt, d.h. das Suffix ist einheitlich klein geschrieben, während der Dateiname großgeschrieben wird....
Ist Abhilfe in Sicht?
 

pfeffer

Geowizard
Der Quellcode sieht so aus, als war die Intention des Programmierers, dass die Dateinamen alle in Kleinbuchstaben gespeichert werden. Offenbar tut es das beim Spidern von Geocaching.com nicht. Ich habe noch nicht den Grund dafür gefunden, dass es da nicht klappt.
Aber ich weiß auch nicht, ob sich da eine Änderung lohnt: Solange CW die Dateien mit der gleichen Groß-Kleinbuchstaben kombination sucht, wie er sie schreibt (das scheint mir der Fall zu sein), ist sollte das bei Dateinamen, die dem 8.3-Schema nicht entsprechen zu keinen Problemen führen.
Tut es das dennoch? wenn ja: wieso?

Gruß,
Pfeffer.
 
OP
W

white_rabbit

Geocacher
Problem gelöst!
Für alle, die die gleichen Sorgen haben: Das Linux-Programm "krename" hat geholfen.
Da kann man ganz einfach die basenames einheitlich in Großschreibung ändern und damit hat sich's...
 
OP
W

white_rabbit

Geocacher
Hallo.
Ich muss dieses Thema doch nochmal aufgreifen, da das Problem *doch* nicht gelöst ist. Es ist tatsächlich so, dass die Dateinamen NICHT konsistent bzw einheitlich vom CW verwaltet werden -- und genau das führt offenbar zu Problemen. Konkretes Beispiel:
Man betrachte z.B. den Cache GC1F549. Dort sehe ich dann:
Code:
cat gc1f549.xml |grep .jpg
"http://img.geocaching.com/cache/ec644c52-1dab-4c58-80f0-826382223397.jpg">
"http://img.geocaching.com/cache/ec644c52-1dab-4c58-80f0-826382223397.jpg"
"http://img.geocaching.com/cache/ec644c52-1dab-4c58-80f0-826382223397.jpg">
    <IMG>gc1f549_0.jpg<URL>http://img.geocaching.com/cache/ec644c52-1dab-4c58-80f0-826382223397.jpg</URL></IMG>
    <IMG>GC1F549_0.jpg<URL>http://img.geocaching.com/cache/ec644c52-1dab-4c58-80f0-826382223397.jpg</URL></IMG>
    <IMG>GC1F549_1.jpg<URL>http://img.geocaching.com/cache/cdcbf333-cf44-4ced-bce4-3c523e1a74fc.jpg</URL></IMG>
Also m.a.W.: Die Bilder erscheinen sowohl in Klein- als auch in Großschreibung. Daher werden sie auf einem Linux-Dateisystem natürlich auch doppelt heruntergeladen. Beim Übertragen auf eine SD-Karte kommt es dann zu Schwierigkeiten.
Wie kann man das Problem lösen? Könnte man nicht direkt per xml *alles* einheitlich auf Kleinschreibung umbiegen?
 

arbor95

Geoguru
Die Frage ist, woher das kommt.
Im Programmcode kann ich da im ersten Moment keine Probleme erkennen:
Da steht .. Dateiname in Kleinschrift ! .toLowerCase()
Der vermeintliche Dateiname in Grossschrift erscheint auch in der xml-Datei, aber das ist das was unter Titel abgespeichert wird.

Mit dem zweiten Blick (Praxistest) sehe ich, dass es in der Tat unterschiedlich ist.
Da lässt die Lösung sicher nicht lange auf sich warten!

So ist es dann : Mit 2671 ist die Umsetzung des Dateinamens in Kleinschrift für alle Bildervarianten durchgängig. Als Nebeneffekt entfällt noch das doppelte Laden einiger Bilder und das Importieren geht noch mal schneller.
 
Oben