2009-12-15 10 views
11

Ist es möglich, Verzeichnisse mit Fossil umzubenennen? Ich habe die offensichtliche Befehl versucht:Umbenennen von Verzeichnissen mit dem Fossil DVCS

fossil mv oldname newname 

Fossil sagt mir dann, dass es etwas getan hat:

RENAME oldname newname 

jedoch "fossil changes" Ergebnisse in einer leeren Liste aufrufen. Soweit ich das beurteilen kann, wird das Umbenennen von Verzeichnissen entweder nicht unterstützt, noch nicht implementiert oder nur kaputt. Gibt es einen Trick?

Antwort

17

Nach einigen Recherchen habe ich festgestellt, dass es gemacht werden kann, aber es ist kontraintuitiv. Fossil ist es egal, was mit Verzeichnissen passiert. Alles, was es interessiert, ist der Speicherort der Dateien in ihnen.

Wenn ein Verzeichnis umbenennen, Fossil erscheint:

  • Schleife durch die Liste des Repository von Dateien für das alte Verzeichnis;
  • Suchen Sie die Datei im neuen Verzeichnis auf dem Dateisystem;
  • Aktualisieren Sie die Metadaten der Dateien, so dass sie als Teil des neuen Verzeichnisses aufgeführt sind.

Wenn das neue Verzeichnis nicht existiert, schlägt dies fehl. Es gibt keine Dateien am neuen Ort, daher kann Fossil das alte nicht mit dem neuen vergleichen, so dass keine Änderungen vorgenommen werden.

Kurz gesagt: Sie müssen den Ordner über das Dateisystem umbenennen, bevor Sie versuchen, die Änderung zu Fossil zu machen. Wenn Sie das nicht tun, ignoriert Fossil Sie.

Jetzt, wo ich darüber nachdenke, macht das Sinn, obwohl ich es bevorzugen würde, wenn Fossil nur das Dateisystem selbst aktualisieren würde, anstatt einen zweistufigen Prozess für seine Benutzer zu erzwingen.

Als Addendum scheint es unmöglich, Fossil ein leeres Verzeichnis hinzuzufügen. Ich nehme an, dass intern nur Dateien gespeichert werden; Ordner werden als Metadaten betrachtet. Ein leerer Ordner ist Metadaten, die nichts beschreiben, daher macht das Hinzufügen keinen Sinn.

+1

Genau. Wenn es ein tiefes Verzeichnis ist, kopiere ich einfach die gesamte Struktur. Für leere Verzeichnisse checke ich einen Platzhalter ein –