Che cos’è Shelving in TFS?

Lo shelving in TFS è semplicemente un check-in soft in modo che gli altri membri del team possano vedere il codice sorgente?

cioè il codice accantonato non verrà compilato correttamente?

Scaffalature ha molti usi. I principali sono:

  1. Cambio di contesto : salvataggio del lavoro sull’attività corrente in modo da poter passare a un’altra attività ad alta priorità. Supponiamo che tu stia lavorando su una nuova funzione, badando alla tua attività, quando il tuo capo si imbatte e dice “Ahhh! Bug Bug Bug!” e devi eliminare le modifiche correnti sulla funzione e correggere il bug. Puoi accantonare il tuo lavoro sulla funzione, correggere il bug, quindi tornare indietro e unshelve per lavorare sulle modifiche successivamente.
  2. Condivisione dei gruppi di modifiche : se si desidera condividere un changeset di codice senza verificarlo, è ansible renderlo facile agli altri per accedervi accantonandolo. Questo potrebbe essere usato quando si passa un’attività incompleta a qualcun altro (povera anima) o se si dispone di una sorta di codice di test che non si verificherà MAI in alcun modo che qualcun altro ha bisogno di eseguire. h / t alle altre risposte sull’utilizzo di questo per le recensioni, è un’ottima idea.
  3. Salvataggio dei tuoi progressi : mentre lavori su una funzione complessa, potresti trovarti in un “punto buono” in cui vorresti salvare i tuoi progressi. Questo è il momento ideale per accantonare il tuo codice. Supponiamo che tu stia hackerando alcuni CSS / HTML per correggere i bug di rendering. Di solito lo sbatti, iterando ogni ansible cheat che riesci a pensare fino a che non sembra giusto. Tuttavia, una volta che sembra giusto, puoi provare a tornare indietro per ripulire il tuo markup in modo che qualcun altro possa essere in grado di capire cosa hai fatto prima di farlo. In questo caso, puoi accantonare il codice quando tutto ritorna correttamente , quindi sei libero di andare e refactoring il tuo markup, sapendo che se si rompe accidentalmente di nuovo, è sempre ansible tornare indietro e ottenere il vostro changeset.

Altri usi?

La scaffalatura è un modo per salvare tutte le modifiche sulla confezione senza effettuare il check-in. Le modifiche sono persistenti sul server. In qualsiasi momento, tu o qualcuno dei tuoi compagni di squadra potrete “ripulirli” su una qualsiasi delle vostre macchine.

È anche ottimo per scopi di revisione. Nella mia squadra per un check-in, accantoniamo le nostre modifiche e inviamo un’email con la descrizione della modifica e il nome del changeset. Le persone del team possono quindi visualizzare il changeset e fornire feedback.

A proposito: il modo migliore per rivedere una mensola è con il seguente comando

tfpt review / shelfet: shelfetName; userName

tfpt è una parte di Power Tools di Team Foundation

Giusto. Se crei uno scaffale, le altre persone che fanno una visita più recente non vedranno il tuo codice.

Mette le modifiche del codice sul server, che è probabilmente meglio sottoposto a backup rispetto al PC di lavoro.

Ti consente di ritirare le tue modifiche su un’altra macchina, se senti il ​​bisogno di lavorare da casa.

Altri possono vedere i tuoi scaffali (anche se penso che questo possa essere facoltativo) in modo che possano rivedere il tuo codice prima del check-in.

Mi imbatto continuamente, quindi informazioni supplementari riguardanti i rami:

Se lavori con più rami, i set di mensole sono legati al ramo specifico in cui li hai creati. Quindi, se lasci che un changeset arrugginisca sullo scaffale per troppo tempo e debba sgomberare in un altro ramo, allora devi farlo con la versione di luglio degli utensili elettrici.

tfpt unshelve /migrate 

Un punto che è mancato in molte di queste discussioni è il modo in cui ripristini la macchina SAME su cui hai archiviato le tue modifiche. Forse ovvio per la maggior parte, ma non era per me. Credo che tu esegua un annullamento delle modifiche in sospeso – è vero?

Capisco che il processo sia il seguente:

  1. Per accantonare le modifiche in sospeso, fai clic con il tasto destro del mouse sul progetto, su Shelve, aggiungi un nome per lo shelve
  2. Questo salverà (o Shelve) le modifiche al server (nessuno le vedrà)
  3. A questo punto, annulla le modifiche in sospeso per ripristinare il codice all’ultimo punto di check-in
  4. Puoi quindi fare ciò che devi fare con la baseline del codice ripristinata
  5. È ansible annullare le modifiche in qualsiasi momento (potrebbe essere necessario un conflitto di unione)

Quindi, se vuoi iniziare un lavoro che potrebbe essere necessario per Shelve, assicurati di effettuare il check-in prima di iniziare, poiché il punto di check-in è il punto in cui tornerai quando esegui il passaggio Annulla modifiche in sospeso sopra.

La scaffalatura è come se le modifiche fossero state memorizzate nel controllo sorgente senza influire sulle modifiche esistenti. Significa che se si archivia un file nel controllo del codice sorgente verrà modificato il file esistente ma lo shelving è come memorizzare le modifiche nel controllo del codice sorgente senza modificare le modifiche effettive.

@JaredPar: Sì, puoi utilizzare Shelvesets per le revisioni, ma tieni presente che i shelfets possono essere sovrascritti da te / altri e quindi non sono stabili a lungo termine. Pertanto per le revisioni normative pertinenti non si dovrebbe mai usare un Shelveset come base, ma piuttosto un check-in (changeset). Per una recensione informale va bene, ma non per una recensione formale (per esempio FTA)!

Se si utilizzano build Gated, quando viene avviata una build, viene creato un gruppo di lavoro dell’area di lavoro inviato per la generazione. Se la compilazione fallisce, lo scaffale viene rifiutato. Se la compilazione ha esito positivo, viene creato e modificato un changeset in TFS. In entrambi gli eventi, la persona che esegue il check-in / build dovrà riconciliare lo spazio di lavoro, che è semplice come eseguire un Get Latest.