Subversion:是否有可能在不推送本地修订的情况下提交本地修订,并在以后推送它们 - 或者缺少此功能,为什么它被称为“集中式”?
答案 0 :(得分:53)
使用Subversion进行本地提交是不可能的。
这是因为,作为一个集中式版本控制系统,您的本地工作副本没有服务器有关过去修订版,日志条目等的所有信息,如果它是分布式版本控制系统,它将具有该信息。 DVCS)。
subversion工作副本包含所有文件的副本,因此您可以在不联系服务器的情况下还原已更改的文件。
如果你真的想做本地提交,你应该看看SVK,它建立在Subversion之上,并提供类似DVCS的功能。
答案 1 :(得分:35)
以上大部分都已经过时了,因为这个问题在谷歌搜索“svn local commit”时出现了,这里有一个更新:
使用包“git-svn”(以及“git-gui”,如果你不知道git)来使用完全远程SVN集成来使本地提交既可行又简单。一个体面的概述/教程/用例是here。我刚刚开始在Sourceforge项目中使用这个过程,所以我还不能报告任何问题。一定要正确获取作者文件!
编辑:更新了链接。谢谢,hdl!
答案 2 :(得分:5)
如果您将SVN服务器与GIT或Mercurial Bridge连接,您可以这样做。由于GIT和Mercurial能够进行本地提交,因此您可以像这样使用它们。也许看看git-svn或类似的东西(我记得有一个集市-svn但不确定)。
答案 3 :(得分:2)
这就是它被称为集中化的原因。您可以尝试在回购中使用回购。一个是本地的,另一个是远程的。然后,将整个内部存储库提交到远程。
答案 4 :(得分:2)
正如其他人所说,没有。
我会强烈建议尝试使用svn远程使用任何东西。
我没有使用SVK足以推荐它,它似乎很好。但是我怀疑在整个项目中使用SVN之上构建的任何东西都没有任何破坏。我已经足够使用SVN知道,如果你不小心,即使是正常的工作周期也可以举杯。
我们在工作中使用SVN。我一直在使用bzr和bzr-svn来完成我的所有交互,它的工作原理是奇妙。我的工作流程如下:
$ bzr branch file:///var/svn/project ~/project
(hack,hack,hack)
$ bzr commit -m "commit log"
(重复)
当我准备好了
$ bzr push
是的,而不是更新你有$ bzr merge
并提交更改(可能搁置您正在处理的内容),但本地提交是一个非常好事,并且搁置也是(搁置就像还原并带有保存)
我认为git也可以处理这个问题。我听说它没有bzr-svn那么完整,但我无法证实这一点。
但是使用带有svn存储库的DVCS是一个很好的方法!
答案 5 :(得分:2)
除了BobC的回答,对于mercurial,你会使用hgsubversion
。
答案 6 :(得分:1)
没有!但是git可以做到这一点,你可以使用git-svn来实现 与原始存储库保持同步。
答案 7 :(得分:1)
为了充分利用这两个世界,SVK建立在Subversion之上,但保持本地状态,以便您可以进行本地提交......