2013-08-09 18 views
7

Domanda semplice: c'è un modo per ripristinare --all da TortoiseHg workbench? Vedo come ripristinare un singolo file. Idealmente, potrei cliccare su una revisione, e dal menu destro del mouse trovare un elemento "ripristina tutto".Revert --all in TortoiseHg Workbench

Sto usando TortoiseHg 2.8 su una scatola Ubuntu.

EDIT Avrei dovuto fornire maggiori dettagli sulla mia domanda per fornire un contesto. Lasciatemi descrivere il caso d'uso particolare:

Voglio riportare la mia directory di lavoro allo stato di un commit passato in modo da poter generare output dall'eseguibile che so essere "buono". Una volta generato quell'output, voglio tornare alla punta e continuare il mio sviluppo, mantenendo lineare questa storia. Dalla riga di comando, ho fatto "hg revert --all --rev 22", generato l'output, quindi "hg revert --all", che ha fatto ciò che volevo. "hg update" creerà una cronologia con un ramo (se sto capendo correttamente). FWIW ci è un pulsante di "aggiornamento" in TortoiseHg (nella casella in cui viene visualizzato l'elenco dei file), nonché una voce di menu del tasto destro del mouse su una revisione data.

risposta

10

Per impostare la directory di lavoro in modo che corrisponda allo stato di un dato insieme di modifiche (che potrebbe essere tip), è possibile utilizzare Update:

  1. Fare clic destro sulla changeset che si desidera 'Ripristina' per.
  2. Selezionare "Update"
  3. controllare la casella di controllo "Scarta le modifiche locali"
  4. Fare clic su Aggiorna

Sarebbe hg update -r changeset -C nella console.

Ora è possibile creare l'output dallo 'stato' della directory di lavoro in quel punto nella cronologia (ad esempio dall'eseguibile in quel changeset). Se non esegui alcuna commit qui, non verrà creato alcun changeset e quindi non verrà aggiunto nulla alla cronologia dei pronti contro termine.

Una volta che avete l'uscita per la vostra soddisfazione, è possibile aggiornare ancora alla tip dello sviluppo attraverso lo stesso processo e di continuare il vostro lavoro:

  1. Fare clic destro sul tip dello sviluppo.
  2. Selezionare "Update"
  3. controllare la casella di controllo "Scarta le modifiche locali"
  4. Clicca aggiornamento

Il vantaggio di utilizzare update sopra revert è che Tortoise mostrerà in modo esplicito il genitore della directory di lavoro come il cambia la sua storia. Sotto revert potrebbe essere molto facile ripristinare i file e perdere traccia di quale changeset è stato ripristinato e quale parte della cronologia è stata occupata.

(Si presume che si desideri passare a quel punto della cronologia.Se è necessario creare un changeset che annulla un changeset precedente, cercare in backout, anche se non sono sicuro che sia disponibile in Tortoise.)


+0

Grazie per le informazioni. Vedi la modifica del mio OP. "Aggiornamento" funzionava principalmente per quello che volevo ma è un po 'più pesante di "ripristino", ma forse il mio caso d'uso è un po' insolito. –

+0

Ho aggiornato la mia risposta per indirizzare le vostre modifiche @adt_Jeff – Edward

0

È possibile selezionare tutti i file modificati nell'elenco con Ctrl + A e quindi selezionare "Ripristina" dal menu di scelta rapida.

+0

Grazie per le informazioni. L'unica difficoltà con questo approccio (a meno che manchi qualcosa) è che non esiste un modo conveniente per trovare quali sono tutti i file che sono cambiati tra la directory di lavoro corrente e la revisione desiderata. (Esiste un "diff in locale" che invoca lo strumento di visualizzazione differenziale separato, ma non c'è un buon modo per avviare "ripristina" da lì.) –