我正在尝试为Base ClearCase编写一个脚本,该脚本将查找给定分支和标签上的所有文件,并执行这些文件与另一个分支的简单合并,然后使用不同的标签标记新合并的文件。
例如,在分支\main\Proj\Proj_INT1
上标记为Ver4
的给定文件,我想将文件合并到\main\Proj
分支,并用Ver4X
标记它们(如果它们是需要合并)。
我知道我可以使用-fver "\main\Proj\Proj_INT1\Ver4"
来查找我要合并的文件版本,但我不确定如何将合并与应用标签结合起来。
从文档中看,看起来不可能cleartool findmerge ... -merge -exec "cleartool mklabel ..."
,所以我当前正在尝试cleartool findmerge ... -log <out_file.log> -print
,然后解析生成的日志以获取所有文件版本。但是,假设findmerge
命令在目录处停止,我需要多次重复此操作,直到所有目录和文件都合并为止(尝试编写和解析cleartool输出时有点头疼)。
是否有惯用或简单的方法来执行合并然后标记文件?也许我可以执行合并并让cleartool生成一个日志,显示合并文件的版本(所以我然后可以标记)?
此外,如果我执行cleartool findmerge ... -merge
操作,它如何处理非平凡的合并?我不期待任何非平凡的合并,但我想跳过一个如果遇到非平凡的合并,则错误或完全停止合并。
答案 0 :(得分:1)
正如我在&#34; ClearCase: When using clearfsimport to perform a reset merge, how can I keep it from creating evil twins?&#34;中所提到的,你需要:
findmerge
个文件夹(-type d
),然后是文件(-type f
)findmerge -abort
来解决任何会导致findmerge失败的手动合并。我没有使用findmerge ... -merge
,而是使用-exec "cleartool merge $CLEARCASE_PN..."
语法使用import os
import hashlib
def hash_function(input_str):
"""Run pbkdf2_hmac with a 20byte salt, and 120,000 round on the input."""
salt = os.urandom(20)
return hashlib.pbkdf2_hmac('sha256', input_str, salt, 120000)
。