svn:本地提交

Subversion:是否可以提交本地修订而不推送它们,并在以后推送它们?还是缺less这个function,为什么称为“集中式”?

Subversion不可能进行本地提交。

这是因为,如果是分布式版本控制系统(DVCS),作为一个集中式的版本控制系统,你的本地工作副本并不具有服务器对过去版本,日志条目等的所有信息。

一个颠覆的工作副本包含所有文件的副本,因为他们签出,所以你可以恢复更改的文件,而无需联系服务器。

如果你真的想做本地提交,你应该看看在Subversion之上构build的SVK ,并提供类似于DVCS的特性。

上面的大部分已经变得有点过时了,因为这个问题在谷歌search“svn本地提交”中出现了一个更新:

考虑使用包“git-svn”(以及“git-gui”,如果你不知道git),通过完整的远程SVN集成,使本地提交变得既简单又容易。 一个体面的概述/教程/用例在这里 。 我刚刚开始使用Sourceforge项目的这个过程,所以我还不能报告任何问题。 一定要获得作者文件!

编辑:更新的链接。 谢谢,hdl!

你可以做这样的事情,所以如果你连接SVN服务器与GIT或Mercurial桥。 由于GIT和Mercurial能够执行本地提交,因此您可以像这样使用它们。 也许看看git-svn或者类似的东西(我记得有一个bazaar-svn但是不确定)。

正如其他人所说,没有。

强烈build议尝试远程使用任何与svn janky。

我没有使用SVK足以推荐它,这似乎很好。 不过,我怀疑在整个项目中使用任何构build在SVN之上的东西,而没有任何破坏。 我已经足够使用SVN知道,即使正常的工作周期可以敬酒,如果你不小心。

我们在工作中使用SVN。 我一直在使用bzr和bzr-svn来完成我所有的交互,而且工作起来非常棒 。 我的工作stream程如下所示:

$ bzr branch file:///var/svn/project ~/project

(黑客,黑客,黑客)

$ bzr commit -m "commit log" (重复)

当我准备好了

$ bzr push

是的,而不是更新你$ bzr merge和提交更改(可能搁置你正在工作),但本地提交是一个非常好的东西, 搁置也是(搁置就像恢复保存

我认为git也可以处理这个问题。 我听说它不如bzr-svn完整,但我不能证实这一点。

但是使用带有svn存储库的DVCS是一个好方法!

除了BobC的回答,对于mercurial你会使用hgsubversion

这就是为什么它被称为集中。 你可以尝试在回购里面使用回购。 一个是本地的,另一个是远程的。 然后您将整个内部存储库提交给远程。

没有! git可以做到这一点,你可以使用git-svn保持与原始存储库同步。

为了两全其美, SVKbuild立在Subversion之上,但是维护本地状态,所以你可以做本地提交。