知道任何源控制“藏匿”程序吗?

时间:2009-03-23 16:37:42

标签: version-control

我曾经遇到过Windows的商业工具,它允许你在源代码控制之外“隐藏”代码更改,但现在我不记得它的名称了。它会将当前版本的文档复制到备份位置,并在源代码管理中撤消签出。然后,您可以稍后重新引入备份的更改。我相信它适用于多个源控制系统。有谁知道我想描述的是什么节目?

我提出的问题的目的有两个:第一是找到一个很好的方法来做到这一点。第二个原因是因为我不记得那个darn程序是什么,这让我发疯了。

8 个答案:

答案 0 :(得分:6)

Git:http://git-scm.com/

您可以使用git stash暂时删除当前的更改集:http://git-scm.com/docs/git-stash。这会在本地存储您的更改(不提交它们),并允许您稍后将它们重新引入工作副本。

Git不是商业广告,但很快就会从Subversion这样的工具中获得很多转换。

答案 1 :(得分:1)

我自己并不是git用户,但我的几位同事都是,并且他们似乎正是为了这个目的。他们使用各种git包装器对他们公司使用的SCM系统进行“真正的”更改,但是在他们的驱动器上保留私有git存储库,他们可以保留他们不一定要提交的更改。

当他们准备好承诺公司的SCM服务器时,他们只是合并并提交上游。那是你想要做的吗?

答案 2 :(得分:1)

将私人更改存储在私有分支中是不是更好的主意,例如, svn switch可以在需要时更改为主分支?

答案 3 :(得分:1)

Mercurial有Shelve Extension可以做你想要的。

如果您真的想要,您甚至可以从单个文件中选择要搁置的更改。

答案 4 :(得分:1)

我认为您所考虑的产品是SmartBear Software的“CodePickle”。但是,它似乎已停产。

似乎用于您正在寻找的功能类型的术语似乎是“搁置”。

微软的团队系统有一个“搁置”功能。

Perforce有几个不受支持的脚本,包括p4tarp4 shelve

Subversion有几种“搁置”工具,但我不知道它们有多强大。

答案 5 :(得分:0)

Darcs中,您要么不记录要隐藏的更改(要求您在录制新修补程序时单独包含每个更改),要么将它们放在不推送的单独修补程序中上游。

无需将本地私人回购与公共/上游/其他私有回购完全同步。您可以选择想要推送到其他地方的补丁。选择补丁也可以使用模式完成,因此如果您采用隐藏补丁的命名约定,您可以轻松地推送所有内容。

这样,您的私人更改仍处于修订控制状态,但在您希望它们发布之前不会共享。

答案 6 :(得分:0)

我发现了一篇关于使用Subversion分支获取类似功能的优秀文章: Shelves-in-subversion

答案 7 :(得分:0)

然后是旧的后备......'补丁',甚至旧的“将所有内容复制到另一个位置,然后还原”。

这两种方法都不如使用大多数VCS系统中的工具那么方便。