2011-07-27 16 views
0

當我在TFS2010中執行tf rename $/Project/Main/File1.cs $/Project/Main/File2.cs時,我知道一旦我登錄,將在$/Project/Main/File2.cs插槽上出現「重命名」更改,並在$/Project/Main/File1.cs插槽上發生「刪除,源重命名」更改。Tfs2010:如何在重命名操作中使用擱置中的掛起更改來獲取源文件的服務器路徑?

但是,雖然更改仍處於待定狀態,但只有重命名更改作爲掛起的更改而存在。掛起更改中未顯示更改,表示$/Project/Main/File1.cs正在重命名。實際上,如果您執行tf status $/Project/Main/File1.cs tf.exe聲明,則沒有未完成的更改,這完全是錯誤的。

在我的情況下,我有一系列約100個文件,我手動合併爲分支集成操作的一部分,並且在命令行重新執行tf merge命令後,我只是試圖撤消它們適用的文件,以便我可以取消擱置合併的更改。

但是,Tfs對象模型的PendingChange對象只能爲我提供ServerPath,它指的是「源重命名」項目,而不是「重命名」項目。我對如何追蹤我擱置的需要在工作空間內撤銷的項目的未決更改感到茫然。

如何獲取已重命名的貨架中的項目的原始預重命名服務器路徑?

回答

0

您可以獲得特定版本,以確保文件正確映射並記錄路徑。

此外,你可以嘗試TF回滾。如果您在手動合併這100個文件的位置提供更改集,那麼至少應該回滾所有相關文件的列表(您不必檢查回滾,而只是使用它來可視化文件)。從那裏,你應該能夠找出相關的文件。

+0

啊,抱歉 - 很明顯,當我提到預先重命名時,我正在談論重命名操作之前的名字,這些名字還在等待處理。我只是對變更集中的100個文件進行選擇性撤消感興趣,而變更集由分支之間的合併操作引起的數千個待處理更改組成。我想撤銷它們的原因是我可以取消擱置這些相同的文件,但是我希望使用shelveset的內容作爲撤消操作的驅動程序以確保準確性。 – bwerks

+0

本質上,我試圖實現「tf unshelve/force」 – bwerks

+0

我明白了。在我的情況下,我總是從更改集仍然解析爲有效路徑的時間開始獲取特定版本,然後將其計算出來。除了我的想法,我想不出任何其他方式來做到這一點。我認爲沒有辦法從TF或TFPT或UI獲取這些路徑。 –

相關問題