Programmgesteuert Einchecken von Dateien in die TFS immer mehr als erwartet


Also ich habe eine .Die NETTO-app, die geht durch und erzeugt eine Reihe von Dateien, gibt Sie in ein lokales Verzeichnis und dann bestimmt, wenn es braucht, um das update einer vorhandenen Datei oder fügen Sie eine neue Datei in einen TFS (Team Foundation Server) - Projekt.


Ich habe einen einzigen Arbeitsbereich auf meinem lokalen Rechner und es gibt 10 verschiedene Ordner, die andere Codierung Projekte, die ich bearbeitet habe, von dieser bestimmten Maschine. Mein problem passiert, wenn ich gehe, um zu überprüfen, ob die Datei bereits vorhanden ist, in das TFS-Projekt und ein update erforderlich ist oder wenn Hinzugefügt werden muss, um das Projekt als eine neue Datei.


snipet:

static string TFSProject = @"$/SQLScripts/"; 
statische WorkspaceInfo wsInfo; 
statische VersionControlServer versionControl; 
static string argPath = "E:\\SQLScripts\\"; 

wsInfo = Workstation.Aktuelle.GetLocalWorkspaceInfo(argPath); 
TeamFoundationServer tfs = new TeamFoundationServer(wsInfo.ServerUri.AbsoluteUri); 
versionControl = (VersionControlServer)tfs.GetService(typeof(VersionControlServer)); 

Workspace Workspace = versionControl.GetWorkspace(wsInfo); 
- Arbeitsbereich.GetLocalItemForServerItem(TFSProject); 


An dieser Stelle überprüfe ich ob die Datei vorhanden ist und ich eines von zwei Dingen tun. wenn die Datei vorhanden ist, dann markiere ich die Datei BEARBEITEN und dann habe ich writeout die Datei in das lokale Verzeichnis, ansonsten werde ich die Skript-Datei zuerst, und dann FÜGEN Sie die Datei in den Arbeitsbereich. I dont care, wenn Sie die physische Datei ist identisch zu der, die ich bin, zu generieren, wie ich bin, dies zu tun, wie ein SAS70-Anforderung zu 'änderungen verfolgen'

Wenn es vorhanden ist, mache ich Folgendes:

- Arbeitsbereich.PendEdit(filename,RecurisionType.Full);

scriptoutthefile(filename);

oder, wenn es nicht vorhanden

scriptoutthefilename(filename);

- Arbeitsbereich.PendAdd(filename,true);

Ok, all das zu bekommen für das problem. Wenn ich gehe, um zu überprüfen auf ausstehende änderungen gegenüber dem PROJEKT habe ich alle ausstehenden änderungen für alle Projekte, die ich auf meinem lokalen Rechner in den Arbeitsbereich.

//Show unsere ausstehenden änderungen. 
PendingChange[] pendingChanges = workspace.GetPendingChanges(); 
foreach (PendingChange pendingChange in pendingChanges) 
{ 
dosomething... 
} 

Dachte ich, dass durch die Einstellung der Arbeitsbereich zu Arbeitsbereich.GetLocalItemForServerItem(TFSProject), dass es mir geben würde, NUR die Objekte für das jeweilige Arbeitsverzeichnis.

Wenn es eine Möglichkeit zu zwingen, die workspace-Objekt nur mit einem bestimmten Arbeitsordner?

Tat das keinen Sinn? Vielen Dank im Voraus...

Schreibe einen Kommentar