【发布时间】:2012-05-20 12:01:12
【问题描述】:
我通常在项目中处理大量代码,并且有时必须将我的数据备份到补丁:
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 将补丁应用到我的本地工作副本时,是否可以让 patch 自动对新/添加的文件发出 svn add 命令?
【问题讨论】:
标签: svn versioning patch