[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Umgang mit Dubletten


Hallo Raphael,

am Samstag, 2009-08-22 20:50:53 schrieb Raphael Becker:

> > Aber mein Ziel war doch, Dubletten im Home durch Links zu
> > ersetzen!
>
> Ja, aber Du willst moeglicherweise ausserdem sicherstellen, dass
> das Linkziel immer den Inhalt behaelt, den es beim Setzen des
> Links hatte. Ausgehend von meinem Beispiel waere z.B. sowas 
> machbar: Statt der Datei
> /home/rabe/UUGRN/Aufnahmeantrag_UUGRN.pdf ein Symlink setzen:
>
> /home/rabe/UUGRN/Aufnahmeantrag_UUGRN.pdf -->
> /.repo/e/55/e55d56d38035824cf1e2ead96e7688a72f3dac068d97e98d25fa8
>19349a0cfae
>
> Uebertragen auf Deinen Anwendungsfall:
>
> 1. Wiederholt vorkommende Dokumente, etwa PDF-Dokumente legst Du
> in das beschriebene Repository. Du hast damit nicht einen
> Dateinamen sondern einen ganz bestimmten Inhalt archiviert. Der
> Inhalt wird durch die Checksumme (Hash) repraesentiert.
>
> 2. Du verlinkst diesen Inhalt unter verschiedenen Arbeits- oder
> Projektverzeichnissen durch einen Symlink in das Repository.

Das Repository mit den md5-Namen ist ja nicht gerade uebersichtlich. 
Man wird also auch den Vorgang der Verlinkung automatisieren 
muessen. Das gaebe dann folgenden Ablauf:

Der Benutzer erstellt einfach neue Projektverzeichnisse und kopiert 
die dort benoetigten Datenblaetter hinein, ohne sich um 
Dubletten-Vermeidung zu kuemmern.

Ein regelmaessiger Job tut folgendes, moeglicherweise ist dazu dein 
Index notwendig oder zweckmaessig:

  Er untersucht alle (oder ausgewaehlte) Verzeichnisse und legt fuer
  alle noch nicht im Repository vorhandenen Dateien Hardlinks in das
  Repository. Jede Datei wird dort benannt mit ihrer md5-Summe.

  Dann werden die Verzeichnisse erneut durchsucht, diesmal nach
  Hardlinks ins Repository. Diese Hardlinks werden geloescht und
  durch Softlinks ersetzt.

  Anschliessend (oder besser zu allererst) wird fuer jede Datei im
  Repository untersucht, ob noch mindestens 1 Softlink auf sie
  weist. Wenn nicht, wird die Datei im Repository geloescht.

Allerding muss der Nutzer durch Entzug der Schreibrechte an einer 
Modifikation der Datei gehindert werden! Er kann ggf. eine Kopie 
anlegen, modifizieren und den urspruenglichen Link loeschen. Da das 
aber fuer *alle* vom geschilderten Job erfassten Dateien gilt (auch 
fuer die nicht-Dubletten) ist das letztlich nicht praktikabel...

Entspricht diese Zusammenfassung deiner Intention?
-- 
Viele Gruesse
Werner Holtfreter
--
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: http://wiki.uugrn.org/wiki/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/