2009-08-15 17 views

Odpowiedz

7

można utworzyć obszar roboczy przy użyciu skryptu poleceń za pomocą komendy tf workspace. Następnie możesz mapować foldery robocze za pomocą polecenia tf workfold. Komenda roboczy ma/szablonu opcję

na przykład:

aby stworzyć miejsce pracy dla kogoś

tf workspace /new Beta1;jenh 

następnie utworzyć nowy oparty na szablonie

tf workspace /new /template:Beta1;jenh /server:teamserver2 Beta1;user2 

do mapy folder:

tf workfold /map $/projects/project_one C:\localproject1 /workspace:Beta1;user2 
+1

+1 Nicea podsumowania. –

+1

Jedyne zastrzeżenie, które chciałbym dodać, jest to, że nie można tego zrobić na komputerze, do którego odnosi się szablon, ponieważ pojawia się błąd, że foldery są już zmapowane. –

+0

Tak, jak tylko jeden folder w jednym obszarze roboczym może znajdować się na jednym komputerze –

0

Można również kopiować i wklejać odwzorowania obszaru roboczego z jednego obszaru roboczego do drugiego.

  1. Edytuj obszar roboczy szablonu.
  2. Wybierz odwzorowania, które chcesz skopiować.
  3. Naciśnij Ctrl + C
  4. Tworzenie nowego obszaru roboczego (lub edytować istniejący jeden)
  5. Tab do Praca foldery siatki.
  6. Naciśnij Ctrl + V

Można też wkleić do Notatnika mapowania, aktualizować je i skopiuj i wklej je do edytora roboczego.

Format zobaczysz w notatniku: :

Przykład: $/TeamProj1/Trunk /: C: \ TFS \ WorkingFolder \

2

zależności od tego ile dobrze kontrola nad szczegółowymi chcesz proces, znalazłem ten skrypt PowerShell być skuteczne:

"Microsoft.TeamFoundation.Client", 
"Microsoft.TeamFoundation.VersionControl.Common", 
"Microsoft.TeamFoundation.VersionControl.Client" | 
    ForEach-Object { Add-Type -AssemblyName "$_, Version=11.0.0.0, Culture=Neutral, PublicKeyToken=b03f5f7f11d50a3a" } 

$tfsUrl = "http://tfsserver:8080/collection" 

$tfs = [Microsoft.TeamFoundation.Client.TeamFoundationServerFactory]::GetServer($tfsUrl) 
$vcs = $tfs.GetService([type]"Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer") 

$workspaceParameters = New-Object Microsoft.TeamFoundation.VersionControl.Client.CreateWorkspaceParameters -ArgumentList "WorkspaceName" 

# Add any specific parameters that you want according to http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.createworkspaceparameters.aspx 
# e.g. $workspaceParameters.Comment = "" 
# e.g. $workspaceParameters.Computer = "" 
# e.g. $workspaceParameters.Location = [Microsoft.TeamFoundation.VersionControl.Common.WorkspaceLocation]::Local 

$workspace = $vcs.CreateWorkspace($workspaceParameters) 

# Add any working folders that you would defined below 
# e.g. $workspace.Map("$/", "C:\ProjectDirectory") 

Wszystkie parametry, które mogą być zdefiniowane są listy w tym artykule MSDN: http://msdn.microsoft.com/en-us/library/microsoft.teamfoundation.versioncontrol.client.createworkspaceparameters.aspx zaletą tej metody jest to, że ponad tf.exe można jawnie zdefiniować lokalizację obszaru roboczego (tj. serwer lub lokalny) i masz znacznie większą kontrolę nad odwzorowaniami zdefiniowanymi podczas tworzenia.

Powinieneś być w stanie po prostu dostosować odpowiednie ustawienia i zrzucić ten kod do dowolnego pliku * .ps1.

0

Może zacząć robić coś z tej modyfikacji F # skrypt:

/// 
/// Creates new local TFS workspace for specified folder and branch conventionally naming locals with server names 
/// 
// Install Team Explorer 
#r "Microsoft.TeamFoundation.Client" 
#r "Microsoft.TeamFoundation.VersionControl.Common" 
#r "Microsoft.TeamFoundation.VersionControl.Client" 

open Microsoft.TeamFoundation.VersionControl 
open Microsoft.TeamFoundation.VersionControl.Common 
open Microsoft.TeamFoundation.VersionControl.Client 
open Microsoft.TeamFoundation.Client 

//change these 
let tfsUrl = "http://tfsserver:8080/collection" 
let branch ="dev_features" 
let folder = "/FeaturesProject/" 


//conventions 
let workspaceName = System.Environment.MachineName+"_"+branch 
let localFolder = "D:"+folder+branch 
let serverFolder = "$/"+folder+branch 

// actions 
let tfs = TeamFoundationServerFactory.GetServer(tfsUrl) 
let vcs = tfs.GetService<VersionControlServer>() 
let workspaceParameters = Client.CreateWorkspaceParameters(workspaceName) 
workspaceParameters.Folders <- [| WorkingFolder(serverFolder,localFolder) |] 
workspaceParameters.Location <- System.Nullable<WorkspaceLocation>(WorkspaceLocation.Local) 
let workspace = vcs.CreateWorkspace(workspaceParameters) 

//run 
workspace |> ignore 
Powiązane problemy