如果它们是相同的,那么Cleartool命令如何撤消检出?

3

如果一个powershell文件没有签名,我会检出它并进行签名,然后再次检入。但是当我检入时,会提示与之前版本相同,无法检入。请问如何使用cleartool命令撤销检出,以便回到之前的版本?


我已经编辑了我的答案。 - VonC
1个回答

0

你可以简单地尝试:

cleartool unco

这是 "撤销签出"。

现在你不能在checkin命令本身中执行此操作。

你可以使用cleartool diff:如果没有检测到差异,则取消签出,如果有差异,则进行check in。

你可以在这个线程中找到详细的方法:

你可能需要与以前的版本进行比较,但是你可以使用类似于diff <file> <file>@@/main/branch/version的东西,如果不同(或者如果它们不同返回的是什么),则允许checkin成功。否则,也许可以使用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

基本上,我们会对文件的前一个版本进行 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'

在checkin命令本身中,如果相同,则需要执行撤销检出操作。因为如果它是一个单独的命令,那么check-in已经失败了,并且CI工具将把它视为失败。 - Samselvaprabu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接