2017-06-19 30 views
0

Ich verwende die von Microsoft bereitgestellten .NET-Bibliotheken für die Interaktion mit Visual Studio Team Services. Ich möchte in der Lage sein, den lokalen Pfad des Arbeitsordners zu ändern, ohne Team Foundation Power Tools oder Visual Studio zu verwenden, nur die Klassenbibliothek zu verwenden, die ich mache.Wie kann ich den Speicherort des Arbeitsordners programmgesteuert ändern?

Das Problem ist, dass Änderungen von der Quellcodeverwaltung am neuen Speicherort nicht erkannt werden. Ich kann den neuen Arbeitsordner über das Menü "Power Tools" für Arbeitsbereiche anzeigen, erkennt jedoch Änderungen in diesem Arbeitsordner nicht automatisch.

Dies ist mein Code für diese Funktionalität:

this.workingFolder = new WorkingFolder(this.workingFolder.ServerItem, newLocalFolder); 
      workspace.CreateMapping(workingFolder); 
      UpdateWorkspace(); 

public int UpdateWorkspace() 
     { 
      // Check if user has read permissions. 
      CheckWorkspacePermissions(); 
      // Update the workspace with most recent version of the project files from the repository. 
      GetStatus status = workspace.Get(); 
      Console.Write("Conflicts from checkout: "); 
      Console.WriteLine(status.NumConflicts); 
      return status.NumConflicts; 
     } 

ich ahnungslos bin. Die Dokumentation für diese .NET-Bibliotheken ist praktisch nicht existent, so dass ich keine Ahnung habe, warum das nicht funktioniert.

EDIT: Scheint es begann zu arbeiten, nachdem ich eine Refactoring meines Codes. Die Existenz von Konflikten spielt auch eine Rolle in Dingen, die manchmal nicht funktionieren.

+0

ich dieses Problem nicht reproduzieren können, können die neuen Dateien und geänderte Dateien werden erkannt. Meinst du es heißt "Keine Änderungen beim Einchecken", wenn sich die Eincheck-Änderungen über Power Tools ändern. Können die Änderungen im alten Arbeitsordner erkannt werden? Was ist das Ergebnis, wenn Sie es mit einem neuen Arbeitsbereich versuchen? –

+0

Ja, wenn ich versuche einzuchecken, gibt es keine Änderungen zum Einchecken. – sonicadv27

+0

Können die Änderungen im alten Arbeitsordner erkannt werden? Was ist das Ergebnis, wenn Sie es mit einem neuen Arbeitsbereich versuchen? –

Antwort

1

Mit folgendem Code kann ein Repo TFVC ändern (TryTFVC) Karte Weg, wie Änderung C:\Users\TFSTest\Source\Workspaces\G1\TryTFVC-C:\Users\TFSTest\Source\Workspaces\G1\1:

NetworkCredential cred1 = new NetworkCredential("alternate credential username", "alternate credential password"); 
TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("https://account.visualstudio.com"), cred1); 
VersionControlServer versionControl = tpc.GetService<VersionControlServer>(); 
Workspace ws = versionControl.GetWorkspace(@"C:\Users\TFSTest\Source\Workspaces\G11\TryTFVC");//older path 
WorkingFolder wf = new WorkingFolder("$/TryTFVC", @"C:\Users\TFSTest\Source\Workspaces\G1\1"); 
ws.CreateMapping(wf); //map with new path 
ws.Get(); 

GetStatus status = ws.Get(); 
Console.Write("Conflicts from checkout: "); 
Console.WriteLine(status.NumConflicts); 
Verwandte Themen