我在找一个自动化的Windows XP文件结构(维基)到CVS的备份。
通过反复调用cvs commit和cvs add我可以识别并提交已更改的文件和新添加的文件,但我看不到一个cvs命令,它可以让我知道本地文件已被删除。CVS自动化:如何检测一个本地文件已被删除,从而引发CVS删除?
一种可能是更新与库中的最新文件并行文件结构,然后删除只出现在第二结构中的那些文件,但我一直希望有一个更有效的解决方案?
我在找一个自动化的Windows XP文件结构(维基)到CVS的备份。
通过反复调用cvs commit和cvs add我可以识别并提交已更改的文件和新添加的文件,但我看不到一个cvs命令,它可以让我知道本地文件已被删除。CVS自动化:如何检测一个本地文件已被删除,从而引发CVS删除?
一种可能是更新与库中的最新文件并行文件结构,然后删除只出现在第二结构中的那些文件,但我一直希望有一个更有效的解决方案?
您需要执行cvs更新,并解析结果。它会告诉你哪些文件已被添加,删除等。然后你可以使用它们来运行正确的命令。警告:CVS不易自动化,因为它与其消息不太一致。但最终你会得到它的工作。
你可以做一个
cvs -nq update
,寻找线,如
cvs update: warning: SourceControlledFile.xml was lost
UPDATE:
我使用Windows XP CVSNT 05年2月5日。发现,如果你只是在一个目录(不-f
PARAM)运行
cvs remove -R
它只会删除实际上从文件系统丢失的文件。对于那些仍然存在的文件,它只会丢弃自动化脚本可以安全忽略的消息。
这是伟大的剧本太境外使用。现在,我可以只运行:
cvs -nq update | findstr /C:"U "
检查,以确保这些都是真正的文件,我想去掉,然后在同一目录运行:
cvs remove -R
我已经成功在Windows XP与CVSNT使用
cvs -nq update | findstr /C:"U "
这产生的结果是这样的:
U file1.cs
U file2_23.cs
U directory_1/Reports/test.rpt
对于coures,这个想法(和其他想法)只适用于自动化,如果这些文件实际上没有可能是自你上次更新工作副本后添加到存储库的文件。
我个人使用CMD只是为了创造我需要做一个承诺之前手动做cvs remove
文件的列表。