Domanda

Se ho creato un'etichetta in TFS, assegnandola a più file, i miei colleghi non possono modificare le versioni dei file (né aggiungere altri file) a quella etichetta. Viene visualizzato questo errore:

TF14077: The owner of a label cannot be changed. 

Studiando il problema, ho trovato questo articolo , che afferma:

  

È possibile che un utente possa esserlo   autorizzato a manipolare una etichetta condivisa   nella cartella di sviluppo ma solo   manipolare le etichette che possiedono in a   cartella di produzione.   (sottolineatura mia)

Prova come potrei, non riesco a trovare alcun riferimento a " etichette condivise " ;. Per quanto posso vedere, un'etichetta deve avere un proprietario.

FWIW, quello che sto cercando di fare è utilizzare un "floating" etichetta in modo che gli sviluppatori possano indicare che il loro codice è pronto per entrare a far parte della build taggandolo con una particolare etichetta. Quindi il processo di compilazione dovrebbe solo avere tutto ciò che ha quell'etichetta e ottenere automaticamente le cose più recenti che sono effettivamente pronte per essere costruite, ignorando sia le versioni precedenti che quelle più recenti che non sono pronte per la prima serata.


Aggiornamento: Immagino che se non riesco a creare un'etichetta veramente condivisa, posso almeno dare agli utenti il ??diritto di modificare le etichette create dai loro colleghi. Questo è abbastanza esplicitamente supportato. Gli utenti regolari Collaboratore non hanno questo diritto, ma in base a MSDN (vedere l'articolo Autorizzazioni di Team Foundation Server , in Autorizzazioni di controllo del codice sorgente ), può essere concesso tramite l'autorizzazione LabelOther :

  

Le autorizzazioni per il controllo del codice sorgente sono   specifico per i file di codice sorgente e   cartelle. È possibile impostare queste autorizzazioni   facendo clic con il tasto destro sulla cartella o sul file   in Explorer controllo sorgente, facendo clic su   Proprietà e nella scheda Sicurezza,   selezionando l'utente o il gruppo per il quale   si desidera modificare le autorizzazioni e   quindi modificando le autorizzazioni elencate in   Autorizzazioni. Puoi impostare questi   permessi usando il tf   utilità da riga di comando per sorgente   controllo.

...

  

Amministra etichette | tf: Etichetta altro | Gli utenti che dispongono di questa autorizzazione possono modificare o eliminare le etichette create da un altro utente.

Quindi ho assegnato quel diritto al gruppo Dominio che contiene tutti gli sviluppatori, come suggerito sopra. Posso verificare che sia impostato usando il comando autorizzazione tf :

tf permission /group:"CORP\Web Team"

e il risultato è come previsto (ho anche assegnato Label, solo per divertimento)

===============================================================================
Server item: $/Test1/TeamBuildTypes (Inherit: Yes)
  Identity: CORP\Web Team
    Allow:
    Deny:
    Allow (Inherited): Label, LabelOther
    Deny (Inherited):

Tuttavia, al mio utente di prova non è ancora consentito modificare un'etichetta che ho creato.

È stato utile?

Soluzione 2

Non sono mai stato in grado di farlo funzionare con le etichette. Invece, abbiamo ideato un processo completamente diverso usando la ramificazione, che ora consiglio vivamente a chiunque legga questo.

Abbiamo istituito uno schema di ramificazione in modo che esista un ramo di sviluppo generale; da ciò, ogni sviluppatore ha il suo ramo con il quale può fare quello che vuole, e c'è un ramo di produzione.

  • Gli sviluppatori fanno il loro "sporco" lavorano nella loro filiale privata senza timore di rilasciare accidentalmente cose o addirittura interferire con i loro colleghi.
  • Quando hanno qualcosa pronto per l'integrazione, uniscono le modifiche nel ramo di sviluppo. Facciamo build continue lì e testiamo i risultati.
  • Quando una build integrata è completamente testata e pronta per la distribuzione, le modifiche vengono unite al ramo di produzione. Questo è costruito e distribuito.

Avevo detto che volevo

  

quello che sto cercando di fare è assumere a   & Quot flottante quot; etichetta in modo che gli sviluppatori   può indicare che il loro codice è pronto   diventare parte della build mediante tag   con un'etichetta particolare.

Lo schema che ho delineato sopra raggiunge pienamente questo e altro.

Altri suggerimenti

I set di scaffali sarebbero una soluzione migliore per quello che stai facendo? IIRC esiste un'API abbastanza ricca per lavorare con set di scaffali come commetterli come parte di un processo di compilazione (o altro).

Ho trovato le etichette in TFS molto limitate quando l'ho usato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top