Git svn rebase : checksum mismatch
Ich habe ein problem, wenn ich versuche, eine git-svn rebase auf mein repository. Es zeigt :
Checksum mismatch: code/app/meta_appli/app_info.py
expected: d9cefed5d1a630273aa3742f7f414c83
got: 4eb5f3506698bdcb64347b5237ada19f
Ich suchte viel, aber habe noch keinen Weg gefunden, dieses problem zu lösen.
Wenn jemand weiß, bitte teilen Sie Ihr wissen.
Vielen Dank im Voraus.
- Das sieht ähnlich zu deinem problem: kerneltrap.org/mailarchive/git/2010/2/18/23715
- ja, danke für den link. Für die Platte, die ich es geschafft, dass es wieder funktioniert durch entfernen der Datei aus dem svn-server, macht einen checkout der letzten revision und dann hinzufügen die Datei wieder auf dem svn. Es ist ziemlich hart, aber ich habe nicht einen anderen Weg gefunden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese Lösung war die einzige, die für mich gearbeitet:
svn:special=*
zugeschrieben Datei (symbolischer Link) wurde versehentlich ersetzt durch die Ziel-Datei. Dies verursacht "Dateiname zu lang" - Fehler mitgit-svn
, und dann nach der Fixierung die Datei in subversion haben wirchecksum mismatch
Fehler mitgit-svn
. Die volle Lösung hier war: 1)git svn rebase --ignore-paths=<problematic file>
; 2)core.symlinks = false
im.git/config
; 3) führen Sie diegit svn reset
Sie oben beschreiben; 4)git svn rebase
; 5) entfernen Sie diecore.symlinks = false
aus.git/config
. AUA!fatal: bad default revision 'HEAD'
. Dies ist die erste Holen, also habe ich keine Arbeitskopie. Irgendwelche Ideen, bitte?git svn log trunk/file.x
zeigt nur eine Zeile für mich------------
git svn
produzieren kann eine schlechte Geschichte. Die häufigsten Beispiele gesehen haben, beinhalten, führt, wenn Sie feststellen, dass 1 von vielen sonst-immer-gleich-git-svn-Klone springt aus der Vereinbarung. Ein problem ist, dass Sie können wählen, verschiedene Eltern-commit für den merge, und ein anderer ist kann es verlieren oder beschädigt eine Datei in der merge in git.Nur mir passiert ist, ich aus dem Raum laufen in der Mitte ein "git svn dcommit" und danach war ich immer die gleiche Meldung "Checksum mismatch".
Ich gerade bearbeitet .git/refs/remotes/git-svn und ersetzt die id des problematischen commit mit dem vorhergehenden. Nächste Stellungswechsel behebt das problem.
Dass ich auf diese Fehlermeldung, wenn ich nur angegeben äste, aber kein Stamm. Wenn ich einen der äste als Stamm, es gab keine Fehler mehr, wenn ich wiederholt. (Der ganze "Stamm", "ast", "Stamm" Unterscheidung ist im Allgemeinen ein bisschen albern, zu erzwingen, in
git svn
da Sie nur menschliche Konventionen ohne tiefere technische Bedeutung hinter Ihnen insvn
.)Ich habe gerade ein
git gc
und danngit svn rebase
funktionierte wieder.In unserer Praxis die Fehlermeldung "Checksum mismatch":" auf .shtml-Dateien in git svn clone ... - Befehl verursacht wurde durch die Einrichtung des Frontend-Apache-server zu interpretieren.shtml-Dateien (aus dem SVN) als Server-Side Includes (SSI) und damit erzeugen von live-content, anstatt nur die Bereitstellung der gespeicherten Datei content. Die Deaktivierung von SSI in Apache /etc/httpd.conf-Datei für den Zeitraum der migration durch auskommentieren der
Richtlinien das problem gelöst.
Trotzdem, die migration der repository ausgeschlossen werden könnten, einige Pfade und Dateien geschieht mit:
Klausel. Macht es Sinn zu prüfen, die Umgebung des SVN-server-Prozess, wenn diese Dateien haben spezielle Auslegung wie SSI (und die .php und .py-Dateien), und deaktivieren Sie es.