2015-09-04 26 views

回答

0

你可以簡單地嘗試:

cleartool unco 

這就是 「undo checkout

現在你不能做,在簽入命令本身。

你可以做的是cleartool diff:如果沒有差異檢測,那麼你不合作,如果有,就在檢查

您有辦法詳細in this thread

您可能需要與之前的版本進行比較,但是您可以使用類似diff <file> <file>@@/main/branch/version的東西,如果不同(或者差異如果不同則返回),然後允許簽入成功)。否則可能是unco -rm該文件。

或者:

在我們的Makefile中,我們有基本遵循每個文件的格式如下一段:

call checkin_if_changed.bat "dir1\sub\file.h" 

文件的內容 「checkin_if_changed.bat」如下:

cleartool diff -pre -dif %1 
echo File: %1 diff result: %ERRORLEVEL% 
goto diff%ERRORLEVEL% 
:diff1 
cleartool ci -c "Build box build." %1 
goto end 
:diff0 
cleartool unco -rm %1 
:end 

基本上我們對文件的prev版本做一個cleartool diff。
如果cleartool diff返回0,則表示文件完全相同,因此我們執行unco -rm。 。
如果cleartool diff找到差異則返回1,這意味着文件是不同的,而我們將其簽入

或者:

,我用了有點凌亂:

cleartool lsco -cvi -avo -fmt "ci -nc '%n'\nunco -rm '%n'" | cleartool 

如果文件相同(並且簽入失敗),則取消選中它 了。
如果它不相同,它檢查它,然後unco命令 失敗(因爲它沒有檢出)與一個錯誤(但繼續)。

如果您不想在命令行中看到它,可以將所有輸出轉儲到日誌文件。如果你需要,你可以改進。
如果您有一個強制您輸入評論的帖子簽入觸發器,則 改爲將-nc更改爲-c 'some comment'

+0

可能是我的意思。在簽入命令本身,如果完全相同,我需要執行撤銷簽出。因爲如果它是一個單獨的命令,那麼簽入已經失敗了,它將被CI工具視爲失敗。 – Samselvaprabu