2012-03-27 15 views
4

Ich habe ein Projekt mit Verzeichnisstrukturreorganisieren Verzeichnisstruktur mit Mercurial

Foo/ 
    .hg 
    Bar1/ 
     ... 
    Bar2/ 
     ... 
    Zope/ 
     ... 

ich diese

Foo/ 
    .hg 
    Source/ 
     Bar1/ 
      ... 
     Bar2/ 
      ... 
    Zope/ 
     ... 

ändern möchten Was ist der einfachste Weg? (Es gibt zu viele Dateien, um sie einzeln zu verschieben. Und es gibt mehrere Dateien mit identischem Inhalt. Wenn ich also die Dateien verschiebe und Mercurial danach frage, die Dinge herauszufinden, dann wird es ein wenig unordentlich.)

Antwort

7

Mercurial hat einen speziellen Befehl Sachen zu bewegen: hg mv
Wenn Sie Ihre Ordner wie diese bewegen, sie weiß, in der Geschichte, dass Foo/Source/Bar/SomeFile zuvor Foo/Bar/SomeFile war.
Wenn Sie also jetzt die Geschichte von Foo/Source/Bar/SomeFile betrachten, sehen Sie auch die Änderungen, die vorgenommen wurden, als die Datei noch Foo/Bar/SomeFile war.

Hier ist ein Beispiel, wie die Bar1 Ordner in die Source Ordner verschieben und begehen:

hg mv Bar1 Source 
hg commit -m "moved to Source folder" 
0

Ziehen Sie die 2 Bar-Ordner in den neuen Source-Ordner und bestätigen Sie.

+0

eine Reihe von Dateien mit identischem Inhalt Es gibt, wie StdAfx.cpp Dateien. Dann bekommt Mercurial keine eindeutigen Übereinstimmungen, und die Dinge werden unordentlich. – user763305