Mercurial: Nachricht "Abbruch: Index 00changelog.i ist beschädigt!" nach dem Ausführen eines sed-Befehls. Wie man damit umgeht?

9

Ich habe ein Projekt von Mercurial versioniert. Einmal habe ich einen Befehl wie ... ausgeführt.

%Vor%

... in diesem Projekt. Dann hielt Mercurial gerade an, um daran zu arbeiten:

%Vor%

Die Datei 00changelog.i enthielt die ersetzte Zeichenfolge nicht, und selbst wenn ich 00changelog.i.bkp auf 00changelog.i verlagerte, blieb das Problem bestehen. hg verify hat auch nicht geholfen:

%Vor%

Ich habe dieses Problem gelöst, indem ich das Projekt von meinem entfernten Repository in ein anderes Verzeichnis geklont habe und dann .hg von meinem geklonten Repository in das beschädigte kopiert habe. Ich frage mich jedoch: Gibt es einen anderen, praktischeren Weg, es zu lösen? Übrigens, warum tritt dieses Problem auf, wenn die "beschädigte" Datei nicht einmal geändert wird?

    
brandizzi 07.10.2011, 20:12
quelle

2 Antworten

7

Beachten Sie, dass es zwei 00changelog.i-Dateien gibt:

  • eins in .hg / 00changelog.i, das ist ein kleiner rückwärtskompatibler Platzhalter für alte Versionen
  • ein anderes (das, das Sie beschädigt haben) in .hg / store / 00changelog.i
mpm 07.10.2011, 20:17
quelle
-2

Ich würde convert verwenden, um das Repo oder das Transplant neu zu generieren, um die Patches auf das neue zu verschieben. Viel Glück.

    
piotr 07.10.2011 20:43
quelle