我签出了 CVS 存储库。原始存储库不再存在。是否可以在签出时运行类似于“导出”的操作?我希望最终得到的是来自签出的所有文件的集合,并删除之后添加的文件。
例如:我查看 superProject,并得到
superProject/checkedoutFile1.txt
superProject/checkedoutFile2.txt
superProject/checkedoutFile3.txt
然后我添加
superProject/someFile1.txt
superProject/someFile2.txt
superProject/someFile3.txt
并删除所有不在原始签出中的文件。
答案1
答案2
刚刚注意到您的评论并相应地修改了我的答案。
我最初的回答是:只需删除所有名为“CVS”的目录
当然,如果已将更多内容添加到已签出目录中,则应采用不同的方法。CVS 将其元数据保存在CVS
每个已签出目录中的子目录中。各种文件在第 16 页中进行了描述塞德奎斯特手动的。
就您而言,有趣的信息保存在Entries
文件中,该文件有两种不同的行格式:
/filename/...other stuff...
D/directory/...filler...
第一个用于普通文件,第二个用于目录;没有特定的顺序。
您可以编写一个脚本,遍历目录树,从这些Entries
文件中提取目录和文件名。您可以将此列表输入到目录中,cpio -pmdv target-dir
以创建目录结构的副本,其中包含cvs export
要创建的文件。
我希望这有帮助