2012-12-10 11 views
10

Forse è solo perché non ho familiarità con TFS (ho lavorato principalmente con SVN), ma non capisco come creare un ramo su un progetto ospitato da Codeplex.Come si crea un ramo su un progetto ospitato TFS/Codeplex?

Sto usando VS2012. In Esplora controllo Source, seleziono ramificazione e la fusione> Branch ... nel menu contestuale, ma poi non so cosa per entrare nel campoObiettivo:

enter image description here

Se I provare $/wpfanimatedgif/branches/1.3, ottengo il seguente errore:

The target item $/wpfanimatedgif/branches/1.3 cannot be under the source item $/wpfanimatedgif.

Se provo $/branches/1.3, ottengo questo errore:

TFS10198: Source control must branch into an existing team project. branches is not a team project.

Ho anche provato a creare un nuovo progetto di team da Team Explorer, ma non ho le autorizzazioni necessarie.

Quindi, come posso creare un ramo? O è impossibile farlo su un progetto Codeplex?

BTW, la ragione per cui voglio creare un ramo è perché sto lavorando su una funzione sperimentale e non voglio pubblicare sul "trunk" (o come è chiamato in TFS). Forse TFS ha un modo diverso di gestire questo scenario? Conosco i cambiamenti di shelving, ma se ho capito bene, il codice shelved non sarà disponibile su Codeplex, vero?

risposta

17

In primo luogo, può aiutare a capire cos'è un "progetto di squadra" - è una voce logica nel controllo del codice sorgente al livello più alto dell'albero di controllo del codice sorgente, ed è inteso, in genere, per un gruppo di sviluppatori e vari le autorizzazioni e le impostazioni sono impostate a questo livello. All'interno di un progetto Team, è possibile avere più progetti di sviluppo come soluzioni Visual Studio o progetti Java. In questo caso, il progetto del tuo team è $/WpfAnimatedGif.

Per quanto riguarda la ramificazione e la fusione, quelli si verificano al di sotto del livello Project Team, in genere come peer ai vostri trunk o main rami. Vari ramificazione e le strategie di fusione sono coperti nel TFS Branching and Merging Guide, ma un esempio semplificato di una soluzione di Visual Studio denominato "WpfAnimatedGif" potrebbero avere una strategia di ramo che assomiglia:

$/WpfAnimatedGif/main/WpfAnimatedGif 
$/WpfAnimatedGif/branches/1.3/WpfAnimatedGif 
$/WpfAnimatedGif/branches/test_features/WpfAnimatedGif 

Per quanto riguarda i "best practices", sarebbero creare una cartella trunk o main sotto la cartella $/WpfAnimatedGif e spostare i progetti VS sotto. Tuttavia, è possibile creare una nuova cartella per ogni ramo e ramificare ogni progetto in modo indipendente.

Esempio:

$/WpfAnimatedGif/WpfAnimatedGif ramificata a $/WpfAnimatedGif/branches/1.3/WpfAnimatedGif

e

$/WpfAnimatedGif/WpfAnimatedGif ramificata a $/WpfAnimatedGif/branches/1.3/WpfAnimatedGif.Demo

Tuttavia, poiché questi rami sono indipendenti, si sarebbe anche necessario quindi unire queste due cartelle in modo indipendente, invece di atomicamente dalla cartella branches.

+2

Grazie per la spiegazione dettagliata, ora capisco meglio. Il mio errore è stato che stavo cercando di diramare il progetto del team stesso, piuttosto che una delle sue cartelle. –

+2

Sì, non è del tutto ovvio che le cartelle di primo livello siano speciali, specialmente se provieni da un diverso sistema di controllo della versione in cui ciò non è vero. Spero che questo abbia aiutato. –

Problemi correlati