1. Cookies optimieren die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklärst Du dich damit einverstanden, dass wir Cookies verwenden. Weitere Informationen
    Information ausblenden
  2. Willkommen im Forum von DIGITAL FERNSEHEN - dem führenden Portal für digitales Fernsehen, Medien und Entertainment. Wenn du hier neu bist, schau dich ruhig etwas um und melde dich an, um am Forengeschehen teilnehmen zu können.
    Information ausblenden

Versionierung beim Speichern

Dieses Thema im Forum "Computer & Co." wurde erstellt von Worringer, 30. September 2009.

  1. Worringer

    Worringer Platin Member

    Registriert seit:
    18. April 2005
    Beiträge:
    2.496
    Zustimmungen:
    214
    Punkte für Erfolge:
    73
    Anzeige
    Gestern habe ich versehentlich eine Datei mittels der programmeigenen Speichernfunktion überschrieben und durfte daher alles neu machen. Dieser Vorfall bewog mich, mal darüber nachzudenken, wie man die Folgen für einen solchen Fehler minimieren kann.

    Ich stelle mir einen Treiber (zumindest nenne ich es im Folgenden so) vor, der sich zwischen die Anwendungen und die Festplatte hängt. Dieser Treiber fängt dann alle Schreibbefehle ab und schreibt die zu speichernde Datei in einen Zwischenspeicher (z.B. Arbeitsspeicher, TEMP-Verzeichnis). Wenn die Anwendung den Schreibvorgang beendet hat, fängt der Treiber an, diese Datei physikalisch auf die Platte zu schreiben.
    Dabei prüft der Treiber zunächst, ob die Datei existiert. Ist das nicht der Fall, dann wird sie angelegt und bekommt einen Zähler angehangen (z.B. test.txt.001). Existiert die Datei, sieht der Treiber nach, was der höchste Zählerstand ist und erhöht diesen um 1. Den neuen Zählerstand hängt der Treiber dann an die Datei (z.B. beim Zweiten Speichern wird dann die Datei test.txt.002 erzeugt).
    Ist das alles korrekt abgelaufen, meldet der Treiber an die auslösende Anwendung, daß der Schreibvorgang erfolgreich abgeschlossen wurde.

    Um die Festplatte vor überlaufenden Kopien zu bewahren, sollte man manuell (oder automatisch) eine Bereinigung des entsprechenden Verzeichnisses vornehmen können. Es muß ferner einstellbar sein, welche Verzeichnisse (inkl. deren Unterverzeichnisse) der Treiber überwachen soll oder welchen Dateityp oder eine Kombination aus allem. Das ist letztendlich eine Konfigurationsfrage.

    Wir arbeiten hier mit Pro/Engineer und das speichert beim Schreiben auf die Platte die Daten in der Form. Allerdings erfolgt die Zählung innerhalb von Pro/E und ist daher für die Pro/E-Programmierer einfacher umzusetzen.

    Mein Gedanke hat aber den Vorteil, daß man das systemweit und programmunabhängig gestalten kann und kein Versionsmanagementsystem wir RCS oder CVS benötigt.

    Bleibt "lediglich" die Frage, wie man die Öffnendialoge verbiegen kann, daß sie immer die Datei mit dem höchsten Index anzeigen. Oder man löst das so, daß die Datei ohne Zähler, immer die aktuelle Version darstellt. Da bin ich mir noch nicht im Klaren.

    Meine Frage hierzu ist: Gibt es eventuell schon ein Projekt in dieser Richtung? Mir fällt kein passender Suchbegriff für das Thema ein. Es ist letztendlich kein Dateisystem aber auch keine Versionskontrolle im Sinne von RCS. Vielleicht ist es eine Mischung als allem. Meiner Ansicht nach, sollte eine solche Funktion eigentlich vom Dateisystem bereitgestellt werden.
    Begriffe wie "speichern", "versionierung", "versionskontrolle", "dateisystem" verweisen auf Versionsmanagementsysteme oder Bücher dazu.

    Es gibt zum Thema Versionkontrolle einen sehr interessanten Podcast im Chaosradioexpress (CRE 130).
     
  2. Gag Halfrunt

    Gag Halfrunt Lexikon

    Registriert seit:
    26. November 2001
    Beiträge:
    22.648
    Zustimmungen:
    2
    Punkte für Erfolge:
    48
    AW: Versionierung beim Speichern

    Ich löse das Problem bei mir durch ein Datei-Sychronisationstool, das die Dateien nach einer Änderung auf einen anderen Datenträger kopiert und dort ebenfalls die verschiedenen Versionen aufhebt.
    Um die Datenmenge im Griff zu behalten, hat die Software eine Funktion, die die zeitlichen Abstände der gespeicherten Versionen vergrößert, je älter sie sind. Soll heißen, dass z.B. allen Versionen der letzten Stunde aufgehoben werden, bei älteren dann nur noch maximal 1 pro Stunde, bei Versionen älter als gestern dann nur noch 1 pro Tag, usw.

    Das funktioniert eigentlich recht gut, versagt aber natürlich, wenn du zwei Versionen kurz hintereinander speicherst, so dass die erste noch nicht gesichert wurde.
     
  3. Worringer

    Worringer Platin Member

    Registriert seit:
    18. April 2005
    Beiträge:
    2.496
    Zustimmungen:
    214
    Punkte für Erfolge:
    73
    AW: Versionierung beim Speichern

    Wie heißt dieses Tool? Ich habe bei mir nur das beim Speedcommander enthaltene Filesync und das wird manuell gestartet.

    Das klingt interessant und könnte das sein, was ich suche.
    Bei Pro/E gibts dazu den PURGE-Befehl, der entmistet dann das entsprechende Sicherungs-/Arbeitsverzeichnis.

    Ich habe den Gedanken heut emorgen nochmal weitergesponnen. Eventuell kann man sowas auch über das Archivattribut lösen. Alle Dateien, welche innerhalb eines bestimmten Intervalls das Archivattribut bekommen haben, werden kopiert. Aber auch da hat man dann das Problem, wenn das Intervall so groß ist, daß mehrere Speichervorgänge möglich sind.
     
  4. Gag Halfrunt

    Gag Halfrunt Lexikon

    Registriert seit:
    26. November 2001
    Beiträge:
    22.648
    Zustimmungen:
    2
    Punkte für Erfolge:
    48
    AW: Versionierung beim Speichern

    Das Programm heißt "ViceVersa" und ist halt eines von vielen Sync-Programmen.

    Und vergiss das Archiv-Bit. ;) Getriggert wird die Software über ein Filesystem-Hook bei jeder Änderung in den zu überwachenden Verzeichnissen. Damit das nicht sofort losrennt, gibt man eine Verzögerung ein, so dass er z.B. erst 5 Minuten nach der ersten erkannten Änderung startet.

    Das Programm sichert dann alle Dateien, bei dem es eine Änderung erkannt hat. Dabei kannst du dann einstellen, ob es nur nach dem Änderungsdatum schauen oder einen direkten CRC-Check vornehmen soll.

    Gag
     
    Zuletzt bearbeitet: 1. Oktober 2009
  5. kingstep

    kingstep Senior Member

    Registriert seit:
    1. September 2005
    Beiträge:
    489
    Zustimmungen:
    0
    Punkte für Erfolge:
    26
    AW: Versionierung beim Speichern

    Wenn ichs richtig verstanden habe suchst du ein Versioning File System, welches alles automatisch macht und du dich um nichts kümmern musst, oder? Ich hatte das selbst mal mit Subversion und ner WebDAV-Komponente, die genau da tat, was du suchst. Habt ihr in der Firma sonst vielleicht Novell Netware? Die bieten sowas rudimentär m.M.n. auch an.
     
  6. Gag Halfrunt

    Gag Halfrunt Lexikon

    Registriert seit:
    26. November 2001
    Beiträge:
    22.648
    Zustimmungen:
    2
    Punkte für Erfolge:
    48
    AW: Versionierung beim Speichern

    AFAIK ist sowas doch auch mit Active Directory möglich, oder?
     
  7. Worringer

    Worringer Platin Member

    Registriert seit:
    18. April 2005
    Beiträge:
    2.496
    Zustimmungen:
    214
    Punkte für Erfolge:
    73
    AW: Versionierung beim Speichern

    Richtig. Bei jedem Speichern soll zuvor eine Kopie erzeugt werden bzw. die neue Datei einen höheren Index erhalten. test.txt.001, test.txt.002 usw., das Ganze aber nicht inkremental, sondern immer vollständig.
    Das, was ich bei RCS gesehen habe, speichert nur inkremental, bis man eine neue Version erstellt.

    Dein Link ist gut und beschreibt genau das, was ich suche, mir fiel nur kein Suchbegriff ein.

    Wir haben noch Novell Nettware, derzeit läuft die Umstellung auf Active Directory. Ich suche aber nach einer Möglich für zu Hause. Auf Arbeit ist das eigentlich für mich uninteressant, da wir alles über ein PDM-System machen müssen. Das kümmert sich dann selbst um die Versionskontrolle.
     

Diese Seite empfehlen