如何从CVS仅导出特定时间段内已更改(已提交)的文件? 我想这样做,所以我可以发送一个只有已更改的文件(保留目录结构)的“补丁”到客户端,而不是整个代码库。
我发现这个答案(http://stackoverflow.com/a/2343054/421243)给了我一个列表,但有没有办法导出以便我可以在批处理文件中编写脚本?
答案 0 :(得分:0)
好吧,我不能让这个谎言,所以这里是一个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