我通常在项目中处理大量代码,并且不时必须将我的数据备份到补丁:
svn diff > /backups/assignment-XX_diff-YY.patch
然后我恢复并更新我的本地工作副本:
svn revert -R . && svn up
然后我开始处理我的其他任务,当它被提交时,我在本地清理并恢复,然后从我之前所做的工作中重新应用我的补丁:
svn revert -R .
svn up
patch -p0 < /backups/assignment-XX_diff-YY.patch
我注意到的一件事是,当我创建一个新文件时,然后添加该文件,例如:
touch newFile.cpp
svn add newFile.cpp
新添加的文件及其内容在我创建的补丁中,并且在我应用补丁时会重新创建文件,但是在我应用补丁时不会自动设置“已添加”状态。这导致我应用了一个准备好提交的补丁,但只有“修改”的文件被提交,而不是“添加的”文件。此外,“新”文件(如果它们已经存在)现在将整个补丁附加到 EOF,从而破坏它们。
因此,总而言之:当将补丁应用于我的本地工作副本时,是否可以patch
自动对新/添加的文件发出命令?svn add