我已经玩了一点CVS,并不是最熟悉它的所有功能,但对我来说,一个巨大的烦恼是试图添加包含更多目录的新目录.运行" cvs add
"只会添加当前目录的内容,并且使用" cvs import
"看起来不是正确的事情,因为它仍然是我正在生成的所有代码(这个如何声明导入是针对第三方源)
你们知道以任何方式递归地将给定目录中的所有内容添加到当前的CVS项目中(或者如果SVN或git使这更容易)吗?
小智 73
我发现这非常有效:
首先,添加所有目录,但不添加任何命名的"CVS":
find . -type d \! -name CVS -exec cvs add '{}' \;
Run Code Online (Sandbox Code Playgroud)
然后添加所有文件,不包括CVS目录中的任何内容:
find . \( -type d -name CVS -prune \) -o \( -type f -exec cvs add '{}' \; \)
Run Code Online (Sandbox Code Playgroud)
现在,如果有人能够治愈在这个时代使用CVS的尴尬......
Mar*_*son 10
啊,空格.这将适用于空格:
find . -type f -print0| xargs -0 cvs add
Run Code Online (Sandbox Code Playgroud)
我用这个:
首先递归地添加所有目录,而不是CVS:
$> find . -type d \! -name CVS -exec cvs add '{}' \;
Run Code Online (Sandbox Code Playgroud)
第二步添加所有文件,少于CVS目录:
find . \( -type d -name CVS -prune \) -o \( -type f -exec cvs add '{}' \; \)
第三,像"第一版"评论一样递归"提交":
find . \( -type d -name CVS -prune \) -o \( -type f -exec cvs commit -m "first version" '{}' \; \)
最后一次递归标记:
find . \( -type d -name CVS -prune \) -o \( -type f -exec cvs tag -F MY_CVS_TAG '{}' \; \)
小智 6
首先将所有目录添加到CVS
find . -type d -print0| xargs -0 cvs add
Run Code Online (Sandbox Code Playgroud)
然后将目录中的所有文件添加到CVS
find . -type f | grep -v CVS | xargs cvs add
Run Code Online (Sandbox Code Playgroud)
为我工作