如何從CVS僅導出在特定時間段內更改(提交)的文件? 我想這樣做,所以我可以只發送已修改文件(保留目錄結構)到客戶端的「補丁」,而不是整個代碼庫。CVS導出在兩個日期之間發生更改的所有文件
我發現了這個答案(http://stackoverflow.com/a/2343054/421243),它給了我一個列表,但有沒有辦法導出,以便我可以在批處理文件中編寫腳本?
如何從CVS僅導出在特定時間段內更改(提交)的文件? 我想這樣做,所以我可以只發送已修改文件(保留目錄結構)到客戶端的「補丁」,而不是整個代碼庫。CVS導出在兩個日期之間發生更改的所有文件
我發現了這個答案(http://stackoverflow.com/a/2343054/421243),它給了我一個列表,但有沒有辦法導出,以便我可以在批處理文件中編寫腳本?
嗯,我不能讓這個謊言,所以這裏是一個Windows批處理文件解決方案。基本上是:已使用CVS更改的文件的
代碼:
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
如果你打開文件列表,你可以通過一次調用cvs來完成,而不是循環中的多次調用。在Linux上,我會使用'xargs'。不確定Windows上的等效物是什麼。 – 2012-08-10 07:17:57
難道一個實際的補丁就足夠了嗎?即。 'cvs rdiff -D date1 -D date2' – 2012-08-09 21:57:44
這可能就足夠了,但是看起來更容易,更不容易出錯,可以讓客戶端解壓縮代碼庫而不是應用補丁文件。 – 2012-08-10 04:10:17