我对文件进行了一些更改,但意识到我需要以其他方式对其进行修改——这需要我将当前的更改临时保存在其他地方并稍后应用。我如何在 svn/subversion 工具中做到这一点,例如 TortoiseSVN?
我提到的功能与shelveset
在 TFS 中制作和取消搁置它非常相似。
如果你知道怎么做,请帮忙。谢谢!
我对文件进行了一些更改,但意识到我需要以其他方式对其进行修改——这需要我将当前的更改临时保存在其他地方并稍后应用。我如何在 svn/subversion 工具中做到这一点,例如 TortoiseSVN?
我提到的功能与shelveset
在 TFS 中制作和取消搁置它非常相似。
如果你知道怎么做,请帮忙。谢谢!
AntonyW 的答案有效,但它可能有点矫枉过正,特别是如果你有很多代码!
我对 TFS' 不熟悉,shelveset
但 svn 给你svn diff
命令来做你正在寻找的东西:制作一个差异并保存它,以便你以后可以应用它。只需将svn diff
' 的输出保存在 .patch 或 .diff 文件中即可。
svn diff myfile > myfile.patch
由于您使用的是 TortoiseSVN,这更容易做到。
您还可以使用您的更改创建分支。它甚至比将差异存储在磁盘上更好。
编辑:所以你在工作副本中有不同类型的变化?您要保留的文件和要保存到差异的文件?在这种情况下,从 TortoiseSVN 创建补丁可能会更好。
但是,如果您想从工作副本中修补所有更改,我认为创建分支更好。这在 Tortoise 中非常简单:
对于舒尔来说,它在大多数情况下都对我有用,补丁有利于代码审查,而不是创建未完成更改的本地工具集;)
关于给出的上述答案,我(个人)不同意他们(大量等......)。至于我(我也在使用它),这是目前只有团队基础支持并且可以跨网络使用的好功能之一。这在以下情况下很有帮助:
我搜索了这个功能,发现其他大多数产品(SVN,mercurial)将来都会引入这个功能,但现在还没有。
……请求宽恕总比请求许可好……
我通常会结帐到一个新位置,在那里进行更改然后提交。
稍后,我对原始位置进行更新,以将更改合并到我之前修改的版本中。