Können Sie einen TFS zu bekommen, ohne dass Sie einen Arbeitsbereich?
Ich versuche, ändern Sie die build-Skripte aus der Verwendung von SourceSafe, TFS, ohne Verwendung von MsBuild (noch) nicht.
Ein Schluckauf ist, dass das workspace-Verzeichnis wird umbenannt und archiviert von den Skripts, die macht TFS denke, es braucht sich nicht alle Dateien. Auch mit der /Kraft - flag, es wird nur die Verzeichnisse, ohne dass die Quell-Dateien.
Ich bin derzeit mit
TF.exe get "Product/Main/Project1" /force /recursive /noprompt
Mich zu retten und verwalten von Arbeitsbereichen, die in den Skripten oder über temporäre Verzeichnisse, kennt jemand einen Befehl, der Verzeichnisse und code, ohne dass Sie einen Arbeitsbereich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht möglich, eine
tf get
ohne einen Arbeitsbereich. Der Grund dafür ist, dass der server wissen muss, um die Zuordnung zwischen dem server-Pfade und die lokale Pfade.Wenn Sie arbeiten mit einer großen Anzahl von Dateien, ist es nicht eine gute Idee:
Der Grund dafür ist, dass jedes mal, wenn Sie eine
Get
, der server verfolgt, welche Dateien, in denen Versionen heruntergeladen wurden, auf die Arbeitsfläche. Wenn Sie nie bereinigen diese Arbeitsbereiche, dann die Tabelle, die speichert diese Informationen werden im Laufe der Zeit wachsen.Wenn Sie darüber hinaus erstellen & löschen eines Arbeitsbereichs alle die Zeit, die server zu schreiben, hat alle diese Zeilen dann zu löschen, wenn Sie fertig sind. Dies ist unnötig.
Sollten Sie wirklich versuchen, und verwenden Sie den gleichen Arbeitsbereich jedes mal. Wenn Sie dies tun, der server ist sehr effizient über nur senden Sie die Dateien, die geändert wurden, seit Sie zuletzt heruntergeladen haben. Auch wenn Ihr bauen, ist der übergang von einem Zweig zu einem anderen, können Sie
tf get /remap
ist manchmal effizienter, wenn die Zweige gemeinsame Dateien.Obwohl es nicht Ihr problem lösen, ist es möglich, die Liste der Dateien und download-Dateien ohne einen Arbeitsbereich.
Dateien auflisten:
Um eine Datei zu downloaden:
Mit einem kreativen batch-Datei, die Sie können string -, diese zwei zusammen mit einem
FOR
Befehl. Allerdings würde ich empfehlen, versuchen zu lösen, in Ihrem Arbeitsbereich problem zuerst, denn das ist der Weg, der TFS soll.Eines Arbeitsbereichs wird ein mapping zwischen dem Quell-repository-Standort und der Stelle des Dateisystems, so dass keine Sie nicht bekommen kann Weg mit nicht mit einem Arbeitsbereich. Aber Sie können leicht auf-und abzubauen, ein Arbeitsbereich, wenn Sie müssen.
Hier ist eine einfache TFS Aufgabe, die ich verwenden, um meine Datenbank-source-Dateien von TFS vor zu tun, einige text-Ersetzungen und Bau Sie in ein Datenbank-update-Paket. Sie können ganz einfach übersetzen Sie diese, um unabhängig von der syntax Ihrer aktuellen build-Skripte benötigen:
TFS ist Ihr Quell-repository, aber Sie hat nicht explizit erwähnt, was Ihre build-Skripte konzipiert wurden. Sie sollten wirklich migrieren Sie zu einer TFS-build-Skript, dann können Sie vereinfachen Ihren build, zum Beispiel, die Sie nicht haben, um sorgen über die Zuordnung von Arbeitsbereichen oder immer den neusten Quellcode, weil TFS übernimmt das für Sie, alles, was Sie haben Grund zur Sorge ist, jede benutzerdefinierte build-Schritte und eventuell Archivierung Ihrer build-Ergebnisse.
Neno Loje erstellt ein kleines utility, das genau das tut, was Sie brauchen. Zum boot-es kann auch entfernen Sie alle source control bindings aus der Lösung und Projekt-Datei, sollten Sie das brauchen.
C# hat die VersionControlServer Bibliothek und Sie können Sie verwenden VersionControlServer.GetItems Aufruf von fetch TFS Artikel. Wenn das ItemType-Datei rufen Sie dann DownloadFile, um die Datei abzurufen.
GetItems
tut.GetItems
bekommt die Informationen über dieItem
s in TFS. Es muss nicht laden Sie Sie auf das Dateisystem.Ich weiß nicht, warum Ihr buildscripts löschen Sie den workspace-Verzeichnisse jedes mal. Aber um deine Frage zu beantworten ich glaube nicht, dass Sie können get source code von TFS ohne eine Arbeitsfläche. Vielleicht können Sie versuchen, erstellen Sie eine worspace jedes mal, bevor Sie eine bekommen. Der Befehl ist
Könnten Sie dies leicht tun mit SourceSafe: Holen Sie sich jede version zu einem spezifischen Verzeichnis, das Sie wollte. Und es war sehr oft sehr praktisch. Es gibt Häufig Anlässe, warum man das wollen würde, dies zu tun. Schade (wenn) TFS nicht unterstützt, ist es eine fehlende Funktionalität, imho.