2016-05-04 4 views
0

Ich muss grundsätzlich die Pfade in der gesamten git Geschichte von src/... in src/main/java/... ändern die Verzeichnisstruktur zu Maven Regeln zu beheben.Ändern von Pfaden in git Geschichte von src/zu src/main/java

Ich versuche, eine funktionierende Probe von git filter-branch --tree-filter zu finden, die das tun würde.

Irgendwelche Ideen?

+0

Sind Sie * wirklich * sicher, dass Sie den Verlauf neu schreiben wollen, nicht nur das Verzeichnis in einem Commit umbenennen? Das Umschreiben des gesamten Verlaufs sucht nach Problemen ... –

+0

Ja, ich bin. Wir wandern von Mercurial nach Git. Daher verwendet niemand bereits das migrierte Git-Repository und ich habe nur die Möglichkeit, solche Änderungen jetzt vorzunehmen. – Crazyjavahacking

Antwort

2
git filter-branch --tree-filter 'mv src src_old && mkdir -p src/main && mv src_old src/main/java' -- --all 
+1

'--index-filter' wäre hier besser angepasst: Sie müssen nicht jede Revision auschecken, nur' git mv' das Verzeichnis im Index. Beide funktionieren, aber '--index-filter' ist schneller. –

+0

Ich habe darüber nachgedacht, aber funktioniert das eigentlich? 'git mv' hat keine' --cached'-Option wie 'git rm'. – Vampire

+0

Können Sie bitte ein Beispiel mit --index-filter hinzufügen? – Crazyjavahacking