2011-10-18 5 views
7

Posso accantonare un codice su cui ho lavorato, al lavoro, con TortoiseHG .. andare a casa .. tirare/unire/aggiornare ... e poi UnShelve e continuare a lavorare a casa?Codice Shelving e UnShelving TortoiseHG su due computer separati?

TortoiseHG offre questo?

Al lavoro, ho creato una nuova mensola e aggiunto tutti i file "toccati" nel ripiano. Ma quando sono tornato a casa non sono riuscito a trovare/vedere il riparo, ecc.

risposta

11

Lo scaffale è solo un file sulla copia locale del repository, quindi se si sta lavorando da un altro computer non si vedrà lo scaffale . L'implementazione di TortoiseHg è solo per creare un diff nel file ".hg \ shelve", in modo da poter sempre inviare il file via e-mail e inserirlo nella cartella .hg (facendo attenzione a non distruggere uno scaffale esistente, ovviamente!).

+0

Quindi, se volessi lavorare su un codice "incompleto" da casa, ho trovato la soluzione giusta? (e seguendo il tuo suggerimento, sopra?) –

+0

Il trasporto dello scaffale non è la soluzione migliore. Il modo più semplice è lavorare da un laptop e portarlo a casa con te, oppure sincronizzare la directory repo locale con una chiave USB. –

+0

Piuttosto .hg \ scaffali, non accantonare. – pkalinow

1

MQ con tiro | spinta tra cui MQ-patches modo forse più naturale

+0

ehm ... puoi per favore elaborare. questo non ha senso per me (sono nuovo in questo materiale TortoiseHG) ... –

+0

Gli scaffali non sono "trasportabili" tra i repository. [Mercurial Queues Extension] (http://mercurial.selenic.com/wiki/MqExtension) ti consente di trasmettere oltre al repository non solo i changeset, ma anche i patch MQ –

1

In Windows, è possibile sincronizzare automaticamente scaffali utilizzando un servizio di sincronizzazione cloud storage come Dropbox o Google Drive. Spostare la directory degli scaffali (in .hg) nella cartella di archiviazione cloud e sostituirla con una giunzione di directory. È possibile creare una giunzione directory eseguendo questo nella directory .hg:

mklink /h shelves C:/Users/<username>/Google Drive/shelves 

Naturalmente, sostituire il bersaglio con qualunque posizione si sono effettivamente in uso. Ripeti l'operazione su tutto il computer su cui stai usando Mercurial.

0

È possibile inserire i file su cui si sta lavorando nella cartella condivisa DropBox (o simile).
In questo modo avrai sempre una copia sincronizzata del tuo file su diversi computer.
Forse questa non è la soluzione più pulita ma funziona.