如何从 CVS 仅导出在特定时间段内已更改(提交)的文件?我想这样做,以便我可以将仅包含已更改文件(保留目录结构)的“补丁”发送给客户端,而不是整个代码库。
我发现了这个答案(http://stackoverflow.com/a/2343054/421243),它给了我一个列表,但是有没有办法导出以便我可以在批处理文件中编写脚本?
如何从 CVS 仅导出在特定时间段内已更改(提交)的文件?我想这样做,以便我可以将仅包含已更改文件(保留目录结构)的“补丁”发送给客户端,而不是整个代码库。
我发现了这个答案(http://stackoverflow.com/a/2343054/421243),它给了我一个列表,但是有没有办法导出以便我可以在批处理文件中编写脚本?
好吧,我不能让这个撒谎,所以这里有一个 Windows 批处理文件解决方案。基本上:
代码:
REM Exports only files changed between %DATEFROM% and %DATETO%
REM See CVS -D switch for details on date/time input: http://docs.freebsd.org/info/cvs/cvs.info.Common_options.html
cvs -Q -d %CVSROOT% diff -N -c -D %DATEFROM% -D %DATETO% | grep "Index:" > diff.tmp
echo Extracting changed source files from CVS
for /f "tokens=2*" %%f in (diff.tmp) do (
echo %MODULE%/%%f
cvs -Q -d %CVSROOT% export -r HEAD -d %TARGETDIR% -N %MODULE%/%%f > NUL 2> NUL
)
del diff.tmp