2010-08-19 13 views
12
  1. prima ho un nome di file readme
  2. poi lo cambio al readme
  3. commettere
  4. spinta

ok il problema è che ci sono due file: readme e READMECollisione ripiegabile con il caso Mercurial HG?

come faccio a cancellare il readme sul repository?

quando faccio aggiorno ottengo questo errore interruzione: collisione tra readme e README pieghevole caso

+0

Possibile duplicato di [Risolvi collisione Mercurial Case-Folding in Windows] (https://stackoverflow.com/questions/10531853/resolving-mercurial-case-folding-collision-in-windows) – DaveInCaz

risposta

14

Mercurial supporta i nomi di file nella stessa directory che differiscono solo nel loro caso nei suoi repository (.hg directory in cima livello del tuo repository). Sui file system sensibili al maiuscolo/minuscolo (la maggior parte su unix) può gestire anche questi file nella directory di lavoro. Tuttavia, su sistemi che sono semplicemente case-ritentivi, il sistema operativo non ti consente di avere due file nella stessa directory che differiscono solo per caso e Mercurial ti avverte (come hai visto).

Per ovviare a questa limitazione del sistema operativo, eseguire il checkout del clone su un file system sensibile al maiuscolo/minuscolo, eliminare il file e quindi eseguire commit/push. Fintanto che le persone di Windows non sono hg updating a una revisione che ha la collisione andranno bene (dato che è a posto nel repository non nella loro directory di lavoro).

+0

thanks :) btw checkout your clonare su un file system sensibile al maiuscolo/minuscolo? –

+0

file system case sensitive = Linux/BSD – Vlad

+7

Non è una soluzione molto pratica ... – Justin

1

questa domanda è un duplicato di e potrebbe essere piegato in Resolving Mercurial Case-Folding Collision in Windows

Sono d'accordo con il commento lì che chiedere a qualcuno di lavorare all'interno di un file sensibile caso di sistema è un po 'heavyhanded, anche con Cygwin. La soluzione più pulita assumendo due file e sembra essere:

  1. hg revert per capo del ramo da unire che ha
  2. rimuovere hg // poi impegnarsi, ecc
  3. controllare la cronologia file. E 'possibile che alcune aggiunte sono state fatte in modo non corretto per il file rinominato
  4. Se è così, aggiungere manualmente le modifiche al
0

se fosse una ridenominazione, questo è come abc.txt spostati abc.txt

Will il seguente lavoro?

Prendere una patch, Controllare il codice fresco, Applicare la patch su di esso. then commit n push

1

Supponiamo che tu voglia leggere come README.

hg mv readme foofile 
hg mv foofile README 

Fare questo e commettere queste modifiche e il repository dovrebbe essere nuovamente utilizzabile.

0

Ho riscontrato questo problema in cui si verificava la collisione del caso quando eseguivo uno Update specifico per una revisione particolare. La revisione in questione era un impegno eseguito specificamente per affrontare una collisione caso-piegatura in cui ho rinominato il file. Sfortunatamente, Mercurial non mi avrebbe permesso di leggere Update alla revisione.

Tuttavia, potrei ancora Update alle revisioni prima e dopo di esso. Pertanto, se si verifica questo problema su Windows (o un file system simile a maiuscole e minuscole) mentre si è semplicemente Update in una revisione specifica, è possibile ignorare la revisione del problema da Update a uno prima o dopo di esso.

Problemi correlati