[英]TFS PowerShell Snapin: How To Read Team Foundation Workspace Version
[英]Team foundation client command to reset workspace
是否有一個命令(或一系列命令)將TFVC工作區與服務器同步,以確保磁盤上的內容與檢入服務器中的內容完全匹配。
tf vc scorch
幾乎可以完成所需的工作,因為它會將客戶端工作區與該工作區的服務器版本同步,但是如果在客戶端上創建了一個新項目並將其添加到源代碼管理中,盡管尚未簽入,則該項目在燒焦后仍會保留運行。 注:我使用的是燒焦的TF客戶端版本,而不是電動工具的版本,因為我用VS2017工作( scorch
從VS2013 SP1的支持),應該使任何區別。
相關的,我知道電動工具包括一個treeclean
命令; 但是,這只會影響不受源代碼控制的項目; 而不是未添加到版本控制中但未檢入的內容。https://adamprescott.net/2011/09/12/clean-tfs-workspaces-with-scorch-treeclean/ 。
我能想到的唯一方法是刪除( tf vc workspace /delete /collection:"https://$MyInstance.visualstudio.com/DefaultCollection" $MyWorkspace
)並重新創建( tf workspace /new $MyWorkspace /collection:"https://$MyInstance.visualstudio.com/DefaultCollection"
),然后運行遞歸獲取以重新填充新文件夾。 但是,這感覺就像是漫長的嘗試,我認為這很簡單...
我們使用TFVC
而不是Git
因為我們正在使用Dynamics AX
,它本身並不支持Git
。
我要刪除此類對象的原因是因為此腳本將在構建服務器上運行,在此我想確保我們完全構建了檢入到源代碼管理中的內容。 從理論上講,沒有人應該在構建服務器上創建新對象,但我不希望依賴於這種假設/想要使此腳本盡可能健壯。
我錯過了撤消命令: TF.exe vc undo * /recursive /noprompt
。
在運行get然后焦燒之前運行此命令可確保我的工作空間與最新的服務器版本完全匹配。
這是用於將當前工作空間與服務器同步的完整代碼。 注意:此命令假定path
環境變量中包含tf.exe
的目錄(或者您可以將tf
替換為"...\\path\\to\\tf.exe"
),當前目錄/工作目錄已映射到源代碼控制,並且您的tf憑據已緩存(否則,請在/login
參數中添加用戶名和密碼)。 我沒有在get
命令中包括/all
,'/ overwrite'或'/ force',因為scorch
總會解決這個問題。 get
此處的主要目的是確保我們的工作區“指向”最新定義。
tf vc undo * /recursive /noprompt
tf vc get * /recursive /noprompt
tf vc scorch * /recursive /noprompt /diff
注意:上面的vc是多余的/只是確保系統可能存在歧義的可能性,系統會知道使用命令的tfvc
版本而不是git
版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.