2010-08-19 9 views
12
  1. erste habe ich einen Dateinamen readme
  2. dann ich es
  3. README ändern
  4. Push begehen

ok das Problem gibt es zwei Dateien: readme und ReadmeMercurial HG Fall-Klapp Kollision?

Wie lösche ich die Readme im Repository?

wenn ich aktualisiere ich diesen Fehler Abbruch erhalten: case-folding Kollision zwischen readme und Readme

+0

Mögliche Duplikate von [Auflösen Mercurial Case-Folding Collision in Windows] (https://stackoverflow.com/questions/10531853/resolving-mercurial-case-folding-collision-in-windows) – DaveInCaz

Antwort

14

Mercurial Dateinamen im gleichen Verzeichnis verarbeiten kann, die in ihren Repositories nur in ihrem Fall unterscheiden (.hg Verzeichnis an der Spitze Niveau Ihres Repo). Auf Groß- und Kleinschreibung vertraulichen Dateisystemen (meist unter Unix) kann es auch diese Dateien im Arbeitsverzeichnis behandeln. Bei Systemen, die nur die Groß- und Kleinschreibung beachten, kann das Betriebssystem jedoch nicht zwei Dateien im selben Verzeichnis enthalten, die sich nur in Groß- und Kleinschreibung unterscheiden, und Mercurial warnt Sie davor (wie Sie gesehen haben).

Um diese Einschränkung Ihres Betriebssystems zu umgehen, prüfen Sie Ihren Klon auf einem Dateisystem, bei dem die Groß- und Kleinschreibung beachtet wird, löschen Sie die Datei und bestätigen Sie dann mit commit/push. Solange die Windows-Leute nicht hg updating zu einer Revision sind, die die Kollision hat, werden sie in Ordnung sein (da es unten im Repository gerade nicht in ihrem Arbeitsverzeichnis ist).

+0

danke :) btw checkout your klonen auf einem case-sensitiven Dateisystem? –

+0

Case Sensitive Dateisystem = Linux/BSD – Vlad

+7

Keine sehr praktische Lösung ... – Justin

1

Diese Frage ist ein Duplikat und konnte in Resolving Mercurial Case-Folding Collision in Windows

gefaltet werden ich mit der Bemerkung, es stimme, dass jemand fragen, innerhalb eines Groß- und Kleinschreibung Dateisystem zu arbeiten, ein wenig heavyhanded ist, auch mit Cygwin. Die sauberste Lösung zwei Dateien unter der Annahme, und scheint zu sein:

  1. hg Leiter der Niederlassung zurückkehren zusammengeführt werden, die
  2. hg entfernen hat // dann begehen usw.
  3. überprüfen Sie die Datei Geschichte auf. Es ist möglich, dass einige Ergänzungen falsch in der umbenannten Datei vorgenommen wurden
  4. Wenn ja, manuell jene Änderungen
0

hinzufügen Wenn es ein Umbenennungs war, das ist wie abc.txt bewegt

Will abc.txt die folgende Arbeit?

Nehmen Sie einen Patch, Überprüfen Sie den Code frisch, Wenden Sie den Patch darüber. dann commit n push

1

Angenommen, Sie wollen Readme README sein.

hg mv readme foofile 
hg mv foofile README 

Tun Sie dies und legen Sie diese Änderungen fest und der Repo sollte wieder verwendbar sein.

0

Ich hatte dieses Problem, wo die Fall-Kollision stattfand, wenn ich eine Update zu einer bestimmten Revision durchgeführt. Bei der fraglichen Revision handelte es sich um ein Commit, das speziell für eine kollisionsübergreifende Kollision durchgeführt wurde, bei der ich die Datei umbenannte. Leider konnte Mercurial mich nicht zu Update zur Revision erlauben.

Allerdings konnte ich noch Update zu Revisionen davor und danach. Wenn Sie dieses Problem unter Windows (oder einem ähnlichen Dateisystem ohne Groß-/Kleinschreibung) bei einer bestimmten Revision feststellen, können Sie die Problemrevision möglicherweise um Update zu einem davor oder danach umgehen.

Verwandte Themen