如何保存diff以便以后重用 - 这个功能类似于TFS中的shelveset?

时间:2011-06-16 15:44:13

标签: svn tfs tortoisesvn diff shelveset

我对文件进行了一些更改,但发现我需要以其他方式对其进行修改 - 这需要我暂时将其当前更改保存到其他位置并稍后应用。我怎么能在svn / subversion工具中做到这一点,例如TortoiseSVN的?

我提到的功能与制作shelveset非常相似,并在TFS中取消了它。

如果你知道如何,请帮忙。谢谢!

4 个答案:

答案 0 :(得分:16)

AntonyW的答案有效,但它可能有点过分,特别是如果你有很多代码!

我不熟悉TFS'shelveset,但svn为您提供了svn diff命令来完成您正在寻找的内容:制作差异并保存它以便您以后可以应用它。只需获取svn diff的输出并将其保存在.patch或.diff文件中。

svn diff myfile > myfile.patch

因为你正在使用TortoiseSVN,this is even easier to do

答案 1 :(得分:4)

您还可以使用更改创建分支。它甚至可以比在磁盘上存储差异更好。


编辑: 那么你在工作副本中有不同的变化吗? 要保留的文件和要保存为diff的文件?   在这种情况下,也许从TortoiseSVN创建补丁更好。

但是如果你想从工作副本中修改补丁,那么在我看来创建分支会更好。  在Tortoise中这很容易:

  1. 创建分支/标记并将工作副本标记为分支来源(不要检查以切换到新分支)。
  2. Tortoise创建分支后还原所有本地更改
  3. 进行其他更改
  4. 提交主干
  5. 切换到分支并合并来自主干的更改
  6. 将分支重新整合到主干
  7. 对于shure来说,它大部分时间都适用于我,补丁适用于代码审查,而不是用于创建未完成更改的本地工具集;)

答案 2 :(得分:1)

关于上述答案,我(个人)不同意这些答案(批量等......)。至于我(我也在使用它),这是目前仅由团队基础支持的优秀功能之一,可以在网络中使用。在以下情况下,这有很大帮助:

  1. 首先,最突出的是,您可以在没有主要源代码中的已签入(和不完整)代码的情况下对其他人进行审核。
  2. 如果您有多个解决方案,您可以拥有多个可在应用程序中测试的搁置集。
  3. 如果另一个人在办理登机手续之前需要您的某些货架进行部分测试,则可以使用。
  4. 我搜索了这个功能,发现大多数其他产品(SVN,mercurial)将来会引入这个功能,但它尚未推出。

    ......要求宽恕而非许可总是更好......

答案 3 :(得分:0)

我通常会在新位置结账,然后在那里进行更改。

稍后,我会对原始位置进行更新,以将更改合并到我之前修改过的版本中。