【发布时间】:2014-02-14 20:06:53
【问题描述】:
看来 SVN 的“补丁”功能并不是我想要的。我真正想要的是在修订之间创建文件差异。所以,我会选择 rev1 和 rev 2 并最终得到一个文件夹,其中包含在这些修订之间更改或添加的所有文件。
这可以用 Tortoise SVN 或普通的 svn 完成吗?
【问题讨论】:
-
两次修订之间删除的文件怎么办?
标签: svn tortoisesvn diff patch
看来 SVN 的“补丁”功能并不是我想要的。我真正想要的是在修订之间创建文件差异。所以,我会选择 rev1 和 rev 2 并最终得到一个文件夹,其中包含在这些修订之间更改或添加的所有文件。
这可以用 Tortoise SVN 或普通的 svn 完成吗?
【问题讨论】:
标签: svn tortoisesvn diff patch
您可以从命令行执行以下操作。
在您的主文件夹中创建一个补丁,其中包含来自“my_project”文件夹中所有已更改文件的修订 123 和 124 之间的所有更改:
svn diff -r123:124 path/to/my_project > ~/my_project_changes_123_124.patch
在您的主文件夹中创建一个补丁,其中包含仅来自一个文件的修订 123 和 124 之间的所有更改,名称为“my_project.php”:
svn diff -r123:124 path/to/my_project/my_project.php > ~/my_project_changes_123_124.patch
【讨论】:
这可以在乌龟SVN本身中实现。右键单击要从中创建补丁的分支(文件夹)>>Show Log>>选择您需要为其创建补丁的所有修订>>右键单击并选择Compare revisions>>这将显示更改的文件>>选择所有文件>>右键单击并选择Export Revision To>>在您的机器中提供任何路径>>文件将在相应的文件夹结构中导出。
您也可以通过脚本来实现这一点。请参考以下链接:
http://www.electrictoolbox.com/subversion-export-changed-files-cli
【讨论】:
Export Revision To,你可以选择Show differences as unified diff来创建补丁文件。
嗯...svn diff 怎么样?只需将所需的修订传递给它。
http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.diff.html
在 TortoiseSVN 中,如果您在“显示日志”对话框中突出显示您想要的修订,甚至还有一个上下文菜单项可以将更改显示为差异,然后您可以将其保存在某个地方。
【讨论】: