有几个人在SVN存储库上工作

有几个人在SVN存储库上工作,svn,version-control,Svn,Version Control,假设我正在与几个朋友通过SVNSubversion存储库开发一个应用程序。我们5岁,把工作分成5部分 我们应该如何继续使用subversion开发一些东西,比如每当有人想要提交时,即使它没有编译,我们也不会遇到存储库中有一个坏项目的问题 每个人是否应该在中央存储库上创建一个分支?我们应该如何管理?此外,有时我们可能需要在没有互联网连接的地方编写代码,因此即使在这种情况下也能提交代码是一个不错的选择 编辑:这是一个颠覆问题。请不要在这里讨论git/mercurial 所以我会有一根树干,然后是5根

假设我正在与几个朋友通过SVNSubversion存储库开发一个应用程序。我们5岁,把工作分成5部分

我们应该如何继续使用subversion开发一些东西,比如每当有人想要提交时,即使它没有编译,我们也不会遇到存储库中有一个坏项目的问题

每个人是否应该在中央存储库上创建一个分支?我们应该如何管理?此外,有时我们可能需要在没有互联网连接的地方编写代码,因此即使在这种情况下也能提交代码是一个不错的选择


编辑:这是一个颠覆问题。请不要在这里讨论git/mercurial

所以我会有一根树干,然后是5根树枝。每个人都会检查他们的分支,然后每天/每周检查一次,或者你们一起检查,让每个人的工作分支合并到主干中。对于没有internet连接的地方,您应该切换到具有某种形式的本地存储库的git/merc。

分支是创建新功能的好主意。我一直在开发软件,我们都是在主干上开发的,但有很多问题。赋予每个功能自己的分支将允许隔离,每当你达到一个重要的里程碑时,你可以将其合并回头部

断开与互联网的连接对你来说并不重要,因为你们每个人都在开发一个单独的作品。在您失去internet之前从SVN中下载最新版本,然后在它恢复时提交您的更改

编辑:
此外,在确保没有故障树干的情况下,您可能需要考虑在生成时执行单元测试,这样您就可以确保在提交之前没有任何更改被破坏。

使用颠覆,您可以轻松地在自己的分支中工作,然后将其合并并重新集成到主干中。可以找到更多信息


当您没有使用subversion访问internet时,您无法提交,除非您使用git之类的东西作为计算机源代码管理的本地工具,并在您返回覆盖范围时使用git svn向主subversion存储库推/拉/出主subversion存储库

如果您没有internet连接,则需要分布式VCS,据我所知,svn不是一个。上述是一个非常好的分布式VCS

如果您一直使用svn,您可以将本地git repos连接到它,使其成为分布式的。我这样做是为了我的一个项目。它为您提供了git的许多好处,但它比git的正常使用要复杂一些。有关更多信息,请参阅

具体请参见基本示例部分

# To create the local repo.
git svn clone http://svn.example.com/project/trunk

# Commit as usual:
git commit ...

# To push to SVN:
git svn fetch
git svn rebase
git svn dcommit

# Don't create branches in git. Create them in svn.
git svn branch branch_name

更新:添加了用法备忘。

事实上,您的需求直接导致使用a而不是Subversion。任何DVC(如git)都可以解决您在旅行/离线时提出的具体问题


如果您坚持使用Subversion,您将不得不使用我们在公司中称之为“工作区”的私有开发分支,并在方便的时候将它们合并到主分支。在Subversion中,离线提交是不可能的。我可以想象一些过于复杂的方式,这在实践中是完全无法管理和完全无用的。过去有一个很好的工具在SVN的“顶部”工作,名为,但它已经不再开发。

我说使用git!不管是谁投票决定关闭,这怎么会偏离主题?是的,这并不是关于编程,而是关于开发,而“关闭/关闭”主题的描述说,问题必须是关于编程或开发。如果你与朋友一起开发,而我认为他们不是你的老板,为什么要限制自己使用SVN?SVN有它的优点,但是如果没有SVN中的故障,您计划做的事情将很难执行。学习使用DVCS,试试看。对你和你的朋友来说,这将是一次很好的经历:因为这只是一个虚构的故事:P。我将在大学的服务器上使用遗留代码w/svn。对此我无能为力:P但很多时候互联网连接几乎无法正常工作,因此我还需要知道如何在没有互联网连接的情况下做到这一点:ph34r: