Clearcase 太糟糕了。看来我不能快速保存对项目的修改。我所说的快速是指不到 1 秒的时间。
我找到的解决方案是使用组合clearcase + git。我使用快照视图是因为我可以轻松劫持我的文件,而不必每次想要进行重构时都签出项目中的所有文件。
问题是,当我使用 git 并在新旧版本之间导航时,clearcase 认为所有文件都被劫持了。然后我需要执行以下操作。
- 清除工具更新
- 清除工具 ls -recurse | grep“被劫持”| xargs cleartool diff -prev [...] > 已更改
- 猫变了 | xargs 清除工具有限公司
- 猫变了 | xargs cleartool ci -c '一些话......'
- rm **/*.保留
- git 结帐。
使用 git 进行约 2 秒的“clearcase Push”操作将持续至少 10 分钟。关于这个问题我只看到两种解释:
- 我真的不知道如何使用clearcase
- Clearcase真的很烂!
有人知道如何使用 Clearcase 而不是 UCM 版本快速签出然后签入修改后的劫持文件吗?
Edit:
遵循以下建议Vonc https://stackoverflow.com/users/6309/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 设置匹配文件模式
也许其他人已经制作了这样的脚本......