2010-05-06 12 views
16

Il nostro team è appena iniziato con Mercurial. Una delle prime cose con cui abbiamo iniziato a giocare è hg shelve. A livello locale, non ho alcun problema a salvare i cambiamenti. Funziona perfettamente da quello che posso dire. Tuttavia, quando provo a deselezionare, ottengo il messaggio restoring backup files, ma quando corro hg diff, non ci sono cambiamenti e le mie modifiche mancano dal codice. Se faccio hg unshelve -i posso vedere il diff, ma ancora una volta, il tentativo di annullare sembra non avere alcun effetto.hg unshelve non funziona

Ho provato a testarlo con alcune modifiche molto semplici che non dovrebbero essere un problema in termini di conflitti, ad es. aggiungendo un commento di prova. Devo notare che ho provato hg unshelve -f dopo di che dice unshelve completed ma, ancora una volta, le mie modifiche non vengono ripristinate.

Qualche idea su cosa sto facendo male?

Se è importante: Mercurial Distributed SCM (versione 1.5.1 + 20100405)

+1

appena trovato questo: https://bitbucket.org/tksoh/hgshelve/issue/11/unshelve-is-not-restoring-file-changes Soooo, hg unshelve è solo rotto? Sembra giusto? – shanebonham

+2

Vale la pena ricordare che 'hg shelve' non fa parte di Mercurial, è l'estensione di terze parti di qualcun altro. Sospetto che una delle ragioni per cui "accantonare" non fa parte del mercurio è che non si adatta veramente alla mentalità mercuriale. Il modo mercuriale di accantonare è semplicemente il commit e quindi l'aggiornamento a una revisione o la clonazione rapida del repository. Un clone è istantaneo, occupa quasi nessuno spazio (hardlink su file system moderni) e non ha le modifiche non salvate. Anche se la tua squadra finisse con l'uso di shelve, dovresti iniziare con vaniglia mercuriale in modo che imparino l'idioma. –

+5

Vale anche la pena ricordare che Bryan O 'Sullivan è uno degli autori di hgshelve e uno sviluppatore principale per Mercurial, quindi non è solo un'estensione casuale di terze parti. Con tutti i mezzi impara prima il modo senza fronzoli, ma non scoraggiare le persone dall'usare Mercurial, ma è conveniente per loro. –

risposta

7

provato forchetta e funziona: https://bitbucket.org/astiob/hgshelve/

Quindi la risposta sembra essere, sì, è rotto, e sì , quella forcella lo corregge.

+1

La forcella "astiob" è stata trascinata nella linea principale "tksoh". Sto ancora avendo problemi, usando Mecurial 1.7.1. – jwhitlock

+0

Anche quella forchetta non funziona per me, ma il commento di @ Nick ha funzionato: 'hg shelve -i | patch -p1' – Pascal

0

Come aggiornamento, sono attualmente in versione Mercurial Distributed SCM (version 2.9.1) e non ho problemi. Se riscontri ancora problemi con unshelve, ti consiglio di eseguire l'aggiornamento alla versione Mercurial più recente.

Problemi correlati