2013-01-15 31 views
1

我正在寫一個腳本這在我的工作場所從ClearCase的含汞+吉拉項目轉換。我在移動文件時遇到問題。我正在使用'lsact -long'來在活動中更改文件。問題是,例如,當目錄被重新命名時,更改僅在其父目錄中顯而易見,並且如'describe'那樣列出:查找移動的文件

添加了目錄元素「new_name」。 未編目的目錄元素「OLD_NAME

麻煩的是,它並沒有明確指定一個目錄移動,所以它可能是有人刪除的舊目錄,並創建一個新的。

我怎麼知道無論目錄中的文件變更被感動?

回答

1

對於任何遷移到水銀或Git的,我從來沒有與該信息困擾。

我只需從ClearCase的(一個UCM基線,或完整的標籤)連貫修訂,並添加它到版本庫(Hg或git)。
我在修改後重複過程修訂。

汞柱或Git會自動檢測重命名(文件或目錄)。

換句話說,由VCS記錄的任何元數據不會像Git或Mercurial中那樣被翻譯。
關於改名,這些DVCS會分析它們各自的修訂和推導出重命名,如果你問他們,已經進口的一切,同時使用您的回購(如git diff -M例如,或者hg log --follow

那就是說,如果你想告訴汞柱一個元件移動(如「How to rename a directory in Mercurial and continue to track all file changes‘),你可以檢查(如果尚未修剪)是父目錄的歷史事件,或在’new_name」了一把:

cleartool lshist -long ... 

這些事件可能已經記錄了重命名或移動操作。

+0

關於遷移 - 當我們遷移,我們希望提交的水銀粒度理想地是一個ClearCase活動 - 即每「ChangeRequest」(不知道這是「全球性」 CC術語或我們自己的定義)應該是一個在Mercurial中提交。 –

+0

@AmirRachum ClearCase活動是一個很好的單元,但最終太複雜以至於無法跟蹤(特別是當涉及交付/重新分配活動時,它會掩蓋貢獻活動(http://stackoverflow.com/a/13565533/6309和http: //stackoverflow.com/a/14022262/6309)。 – VonC

+0

@AmirRachum我只需選擇基線,從最舊到最新,確保他們充分* *基線,而其內容複製到工作區中的汞,提交各一臺。您只需要記住「每個UCM組件的一個回購」(而不是試圖將所有內容導入到一個Hg回購庫中) – VonC