在TortoiseSVN搁置?
我已经从TFS转移到SVN(TortoiseSVN)与我目前的公司。 我真的很想念TFS的“Shelve”function。 我已经阅读了关于如何与SVN“搁置”的各种文章,但是我没有看到任何提供非常简单的经验来“搁置”工作的东西。
理想情况下,我想要添加到TortoiseSVN上下文菜单中的额外项目 – “Shelve”和“Unshelve”。 “Shelve”将删除当前的搁置集,并在由用户选项定义的适当path下上载工作目录。 “Unshelve”会将该集合与工作副本合并。
有这样的事情吗? 任何人都可以提出任何方法来在GUI中“破解”这个function吗?
注意:以下链接并不能真正实现我所寻找的用户体验:
搁置颠覆
TFS Shelve最伟大的事情之一是使用起来是多么容易…
我不相信SVN内置在服务器产品中的这个function。 我也不相信像我这样使用过的任何客户,包括TortoiseSVN。
为了解决这个问题,我使用了诸如git或者mercurial的DVCS,以便在将内容推回到SVN之前在本地分支/合并/搁置。 这可以说是一个混乱,但它运作得很好。
我希望有帮助。 祝你好运!
如果你了解SVN分支是如何工作的,那么在SVN中模拟Shelve是不言而喻的:
- 在存储库中创build一个分支(在服务器上)
- 切换您的本地副本
- 将您的更改提交给新分支
- 将您的本地副本切换回主干
当您准备好回到搁置的更改(“搁置”)时,只需将搁板分支合并回本地副本即可。
如果你不知道命令行SVN和龟SVN是否足以完成上述操作,下面是关于如何在龟龟SVN中执行的详细步骤:
- 做“SVN更新”来更新你的工作副本到最新版本的主干。 这样,您的本地副本和主干之间的唯一区别就是您的更改。
- 从上下文菜单中select“分支/标签”
- “版本库中的版本”选项是默认选中的。 保持这一点。
- 更改“To Url”来指定分支名称,例如
http://server/repository/project1/branches/shelf1
- 检查“切换工作副本到新分支/标签”框
- 点击确定创build分支并切换到它
- 执行“SVN提交…”并将您的更改提交给新创build的分支
- 从上下文菜单中select“切换…”
- 将“到URL”更改为主干URL,例如
http://server/repository/project1/trunk
- 点击确定切换回中继线
请参阅此链接了解更多详细信息以及与上述相同的命令行:
架子在颠覆
另一个select是使用TortoiseSvn中的“创build补丁”工具创build补丁文件并恢复更改。 补丁文件稍后可以重新应用,以恢复您的位置。
如果您不得不更新工作副本,您仍然可能会进行一些粘性合并。
你可以使用DVCS,但是这是一种混合物。 DVCS中的“搁置”仅在本地存储您的更改。 只有当你想检查点你的工作回滚,如果你打破进一步的工作,但最好你想要保存在服务器上的工作。
在没有明确搁置命令的情况下,在SVN中执行此操作的一种方法是将您的工作副本切换到不同的svn位置,然后在那里执行而不是在主要的repo上执行。 这实际上就像创build一个临时分支并在工作期间一样工作。 我认为你甚至不需要合并,因为SVN会在切换时为你做,因为你的本地修改将被保留。
不幸的是,你不能切换到一个不存在的位置,所以你第一次这样做,你将不得不创build“分支”搁置。 我想整个事情可以自动化。