2012-04-04 12 views
15

Si supponga di disporre di un progetto TFS Project con le sottocartelle trunk e 1.0. trunk contiene l'ultima versione del codice dell'applicazione per questo progetto e 1.0 contiene il codice per la stessa applicazione per la versione rilasciata con lo stesso nome.Come posso trovare tutte le etichette per una particolare sottocartella del progetto TFS?

Esistono etichette per entrambe le sottocartelle e tutte le etichette includono i file solo in una delle sottocartelle. [Si potrebbe anche presumere che le etichette siano ricorsive su uno specifico (massimo) changeset per tutti i file nell'intera sottocartella anche se questo semplifica la risposta.]

Come posso creare un elenco di etichette per una di queste sottocartelle, utilizzando Visual Studio, lo strumento da riga di comando TFS tf.exe o qualsiasi altro strumento o codice disponibile pubblicamente (e liberamente).

Nota: ho scritto codice T-SQL che interroga direttamente il database di controllo della versione TFS per generare queste informazioni, ma sono curioso di sapere se esistono modi "migliori" per farlo.

risposta

27

In Visual Studio, nella finestra diEsplora controllo codice sorgente, fare clic destro sulla sottocartella per il quale si desidera elencare le etichette importanti e raccogliere Visualizza cronologia dal menu contestuale. Nella finestra Cronologia che dovrebbe essere visualizzata, dovrebbe essere presente una sottoscheda Etichette (come evidenziato di seguito) che elenca le etichette applicate a tale sottocartella (ma non gli elementi specifici in quella sottocartella).

enter image description here

+0

Salve, questo sta mostrando le etichette create solo per il mio workspsace (da me), come posso vedere le altre etichette create da altri utenti? .. – ansar

+0

@ansar non sto usando TFS attualmente così posso controllare, ma non ricordo che questo fosse limitato dallo spazio di lavoro nella versione di TFS che stavo usando; Certamente non stavo creando le etichette che ho trovato. –

+0

@ansar Che dire di [risposta di Tinman] (http://stackoverflow.com/a/32891259/173497)? –

2

Per trovare etichette in Visual Studio

  1. Aprire Source Control Explorer.

  2. In Esplora controllo codice sorgente, aprire il menu di scelta rapida per la raccolta, il progetto di squadra, ramo, la cartella o il file che si sta cercando.

  3. Seleziona Visualizza storico. Verrà visualizzata una nuova finestra con tutti i Modificatori .

  4. Selezionare Etichette nel menu scheda come evidenziato nell'immagine sottostante.

enter image description here

+0

Nota che se hai etichettato rami all'interno di una cartella, quelle etichette non verranno visualizzate in questo modo per la cartella principale. Devi sfortunatamente visualizzare la cronologia su ciascun ramo. – AaronLS

2

avevo bisogno di fare questo sulla riga di comando oggi ecco un file batch che fa si spera la stessa cosa (abbiamo appena iniziato a utilizzare TFS ed hanno limitato le etichette sulle cartelle per testare i requisiti dell'OP).

È necessario modificare il parametro di raccolta su tf in base alla propria configurazione e possibilmente fornire i dettagli di accesso in base alla modalità di autenticazione.

@ECHO OFF 
SETLOCAL EnableDelayedExpansion 

@REM Check required parameters 
IF [%1]==[] GOTO :usage 

tf labels /owner:* /format:detailed %2 /collection:http://server:8080/tfs/collection > labels.txt 2> nul 

SET CURRENT_LABEL= 
FOR /F "tokens=1,2,3" %%G IN (labels.txt) DO (
    IF [%%G]==[Label] (
     SET CURRENT_LABEL=%%I 
    ) ELSE (
     IF /I [%%H]==[%1] (
      ECHO !CURRENT_LABEL! 
     ) 
    ) 
) 
DEL labels.txt 

GOTO :eof 
@REM Subroutines 

:usage 
echo tfs_labelsforfolder - Display all labels that are applied to a folder. 
echo. 
echo tfs_labelsforfolder ^<folder^> ^[label_filter^] 
echo. 
echo  folder  - The folder to show the labels for, e.g. $/Project/folder 
echo  label_filter - Search pattern to use in tf labels command. 
echo. 
GOTO :eof