簡體   English   中英

Team Foundation Client命令重置工作區

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM