2011-01-27 15 views
64

Qualcuno può dirmi cosa significa questo errore Mercurial?Mercuriale: "il file non tracciato nella directory di lavoro è diverso dal file nella revisione richiesta"?

di file non tracciata nella directory di lavoro si differenzia da file in richiesto revisione

Ciò si è verificato quando si fa un hg prendere:

C:\myapp>hg fetch ssh://hg/myapp-v1 
pulling from ssh://hg/myapp-v1 
searching for changes 
adding changesets 
adding manifests 
adding file changes 
added 93 changesets with 693 changes to 78 files (+1 heads) 
updating to 797:0df7dbe7dc06 
196 files updated, 0 files merged, 196 files removed, 0 files unresolved 
merging with 704:edb7765768c6 
abort: untracked file in working directory differs from file in requested revision: 'a/b/c/d.java' 

Da quello che posso dire questo file (a/b/c/d.java) non corrisponde a nessun percorso configurato in .hgignore. E questo file specifico è identico anche nei due repository (myapp & myapp-v1)

Non sono chiaro cosa significhi questo. ??

risposta

69

Si sta dicendo che hai già un file chiamato a/b/c/d.java nella directory di lavoro locale del repository myapp, ma non è stato aggiunto (tracciato), e fetch non è disposto a sovrascriverlo durante l'aggiornamento/fusione.

cose che si possono fare sono etere:

  • Spostare la vostra copia di a/b/c/d.java fuori strada e poi fare l'attrazione/aggiornamento. Quindi confronta il tuo spostato a/b/c/d.java in quello che fa scendere.

o

  • hg add a/b/c/d.java, hg commit a/b/c/d.java, e poi tirare/merge

Il primo funziona perché non c'è più un file nel modo, e le opere successive, perché la vostra copia viene monitorato così Mercurial può unirli.

Inoltre, è consigliabile interrompere l'utilizzo di fetch. Combina pull e update e merge per te, che non è un modo sicuro di essere. In questo caso il tuo pull sarebbe riuscito e entrambi update e merge ti avrebbero dato molti più messaggi utili.

+0

Prima di fare l'unione 'hg status' rendimenti nessun cambiamento eccezionale. 'hg add a/b/c/d.java' restituisce" a/b/c/d.java già rintracciato " –

+0

Punto interessante su fetch vs pull/merge.Ho fatto un' pull', e poi 'merge' dove ricevo molti messaggi nel modulo:' remote change dir/blah.xml quale local eliminato usa (c) versione impiccata o lasciare (d) eletato? ' –

+0

sì, la fusione è codifica e non dovrebbe essere ignorata. alla prima parte potremmo probabilmente capirlo con l'output di' hg stat', ma potrebbe essere il caso che la tua directory di lavoro corrente non è la root di repository ?, Ciò renderebbe possibile aggiungere hg add a say ma recuperare say non tracciato, solo un'ipotesi, però. –

8

Ho provato la risposta di Ry4an (di eliminare il file) e ancora non ha funzionato, quindi ho eseguito una purga e questo ha eliminato tutte le tracce in modo che funzionasse dopo. Nel caso qualcuno stia cercando una soluzione alternativa.

+0

hg purge non sembra funzionare per me, non ha funzionato t purge tutto e sto ancora ricevendo lo stesso messaggio –

+0

purga - tutto ha funzionato per me. –

15

ho avuto intorno a questo eseguendo hg update --clean

3

Se si utilizza TortoiseHg è possibile controllare la "Scarta le modifiche locali nessun backup" nella finestra Aggiornamento.

5

Basta accettare la finestra di errore, allora spuntare Discard local changes, no backup

enter image description here

E si dovrebbe essere buono, si sovrascrive tutti i file locali non monitorate ...

Problemi correlati