svn:本地提交

时间:2009-07-03 22:44:43

标签: svn commit

Subversion:是否有可能在不推送本地修订的情况下提交本地修订,并在以后推送它们 - 或者缺少此功能,为什么它被称为“集中式”?

8 个答案:

答案 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之上,但保持本地状态,以便您可以进行本地提交......