Clearcase糟透了。看来我不能快速保存对项目的修改。我的意思是不到1秒。
我找到的解决方案是使用组合clearcase + git。我使用快照视图是因为我可以轻松地劫持我的文件而无需每次想要进行重构时都检查项目中的所有文件。
问题是,当我使用git并在新旧版本之间导航时,clearcase认为所有文件都被劫持。然后我需要做以下事情。
该操作包括" clearcase push"使用git大约需要2秒钟将持续至少10分钟。我只看到关于这个问题的两个解释:
有人知道如何快速结账,然后使用Clearcase而不是UCM版本签入修改过的劫持文件吗?
修改:
根据Vonc的建议,我制作了一个使用clearfsimport
的脚本:
#!/bin/bash/
OUT="$(mktemp -d)"
DST=/vob/project_root/
echo -e "\nCreating temporary folder..."
echo $OUT
echo -e "\nCopying relevant elements..."
find . | grep -E '.*?\.(c|h|inc|asm|mac|def|ldf|rst)$' | xargs -I % cp --parents % $OUT
DOUT=$(cygpath -d $OUT/*)
DDST=$(cygpath -d $DST)
echo -e "\nImporting new elements to cleacase..."
clearfsimport -rec -unco -nset $DOUT $DDST
echo -e "\nRemoving temporary files..."
rm -rf $OUT
我需要复制我的存储库的原因是clearfsimport
无法直接排除文件或目录,并且通配符选项不适用于此工具。它按原样采用目录树。另外,我不想从我的工作目录中删除所有未经文档的文件,例如目标文件甚至.git。
我认为通过使用git识别自上次执行脚本以来发生更改的所有文件,我可以使这个脚本更好。可能有点棘手...
我也可以使用.gitignore
设置匹配的文件模式也许其他人已经制作了这样的剧本......
答案 0 :(得分:1)
从git工作树更新ClearCase文件的顺序几乎是“最优”的,这意味着它不会更快。
当using ClearCase and Git为 clearfsimport ,并且有2个ClearCase视图时,我一直在玩一个替代方案。
clearfsimport
允许您使用任何工作树(由ClearCase管理或不管理,它不关心),并在ClearCase视图中导入它(顺便说一下it can be a dynamic view),并且:
这是一个比传播所有内容更有效的过程,它应该更多更快。
这并不意味着快
毕竟,它仍然是 ClearCase 。