2010-02-24 6 views
45

Ecco la parte che ottengo: quando si ripone in TFS, esegue una copia del server delle modifiche in modo che non vengano perse, ma non le controlla nel trunk/ramo del codice sorgente su cui si sta lavorando.Unshelving in TFS: cosa significa?

Domanda: In quali circostanze si utilizzerà la funzione "non presente"? Significa che rimuoverà lo shelfet dal server TFS? Puoi ottenere un guadagno da una mensola? O è davvero solo una descrizione di diff tra la shelfet e il codice sorgente "reale"?

risposta

51

Unshelving consente di ripristinare la mensola sulla macchina in modo da poter continuare a lavorarci. Non cambia lo shelfet sul server (per fare ciò è necessario accantonare di nuovo le cose e usare lo stesso nome di scaffale).

Un esempio per come lo utilizzo è spostare le modifiche tra le macchine mentre sto lavorando su di esse. Lo accantonerò sulla mia macchina desktop, quindi lo spoglio sul laptop e poi continuerò a lavorare sul laptop.

È anche possibile utilizzarlo per condividere modifiche con qualcuno (per recensioni di codice o altri motivi). Appoggi i tuoi cambiamenti, poi l'altra persona può andare a sgomberarla per vedere cosa hai fatto.

Unshelving non modifica effettivamente la shelfet o qualsiasi altra cosa sul server. È solo un'operazione get.

+1

Un collega mi invia una recensione, apporto le modifiche per eseguirli e controllarli. Una volta che ho finito e rispedire la sua recensione. Come faccio a liberarmi dei suoi cambiamenti? In altre parole, come annullare l'annullamento? Devo fare clic destro e annullare su ognuno dei file che ha modificato? – Ciwan

+0

@ Taiwan, devi accantonare il tuo codice prima di scartare il suo. Poi quando hai finito con il suo, cancella il tuo codice. – David

30

Herms è perfetto. Leggi la sua risposta.

Un avvertimento importante: se hai fatto un Get dal momento che lo shelveset è stato creato, unshelve sarà rollback solo la versione locale dei file contenuti nella shelveset. Pertanto, è molto probabile che avrai uno spazio di lavoro incoerente.

Una buona pratica è quella di re-run Get after you Unshelve. Ciò ti assicura di non perdere tempo in errori di compilazione fantasma che in realtà sono solo effetti collaterali di uno stato mezzo nuovo/mezzo vecchio. Richiederà inoltre di risolvere in modo proattivo eventuali conflitti tra il contenuto dello scaffale e le ultime revisioni del server, invece di scoprirli solo al momento del check-in.

4

Io uso shelve per eseguire il backup del codice in corso, proprio nel caso in cui il mio disco rigido si arresti in modo anomalo o quant'altro. Non devo nemmeno preoccuparmi della costruzione del codice, non importa lavorare, dal momento che il lavoro non verrà visto da nessun altro sviluppatore del mio team (a meno che non lo cerchino).

Unshelve ripete le modifiche nell'area di lavoro. La rimozione della shelfet dal server è un Elimina.

In seguito a ciò che ha detto Richard Berg, la versione di unshelve degli utensili elettrici include effettivamente una soluzione.

+1

Sfortunatamente, 'tfpt unshelve' è molto buggato nella mia esperienza. –

+0

Non lo uso spesso io stesso. È più facile fare un giro dopo. Lo userei in un caso - se avessi bisogno di spostare il codice non controllato in un altro (ma molto simile!) Ramo. – stannius

+0

non è bacato. È un processo. Non possiamo aspettarci che TFS mantenga il codice esatto. Ma penso che tfs farà il suo lavoro vicino al 95% -100% quando si spegne. – Kurkula