我对我们的代码进行了大量更改,在我提交之前,我想要一位朋友进行审核。有没有办法让SVN获取我的工作副本的副本(捆绑包中的所有内容)并将我迄今为止所做的更改应用到另一台机器而不必提交?
过去,使用另一个源控制系统,我能够执行以下操作来“打包”和“解压缩”我的更改。与SVN有什么相似之处吗?
sourcecontrol.exe pack myChanges.pack
sourcecontrol.exe apply myChanges.pack
谢谢!
答案 0 :(得分:2)
当然,您可以使用svn diff
命令创建patch file。
svn diff >my-changes.patch
您可以使用任何常用方法将此补丁文件发送给其他人进行审核(因为它只是一个文本文件)。要应用更改,
patch <my-changes.patch
请注意,如果您对任何非文本文件进行了更改,则svn diff
的默认行为是省略与补丁文件的实际差异(因为补丁文件本身是文本文件而不能包含其他类型的内容,如图像)。
新一代的分布式版本控制工具(如Git和Mercurial)处理得更加优雅,包括共享多个提交(一组更改)的能力。
答案 1 :(得分:0)
虽然可以导出所有工作副本(使用SVN的export
功能),提交分支要好得多,让你的朋友与该分支进行差异化,如果需要,可以进行选择性修补。
这适用于正确的工作流程:始终在某处提交您的版本,这就是您首先使用VCS的原因! SVN分支机构价格便宜,易于创建,一旦您不需要它们就容易忘记。但最重要的是,如果“意外”发生,它们很容易恢复。
答案 2 :(得分:0)
没有。你能做的最好的事就是创建一个分支。这是使用诸如Git的DVCS的优点之一。如果您只想分享差异,可以运行svn diff
,但如果有很多,那么查找并分享它就不是一种方便的方式。