我正在考虑从mercurial迁移到SVN,因为维护起来似乎更简单,并且有更多人拥有SVN客户端而不是可用的mercurial客户端。但是我对文件结构有疑问 -
据我所知,典型的SVN结构是正确的:
/中继线
.... /这里的当前版本文件
/ branch
... /修正错误
... / newfeature
... /店3
.... / branchN
/标签
.... /版本1.0
.... /版本2.0
.... /版本n.n
我的问题是这个因素如何影响到多个操作系统?我的软件目前为每个操作系统的我的软件的GUI / CLI版本都有单独的mercurial存储库,因为你不仅可以检查mercurial中的目录。但是,据我所知,你可以在SVN。结构是否会像:
/ Windows(或Linux,或其他)
/中继线
... / CLI
..... /这里的当前版本文件
.... / GUI
..... /这里的当前版本文件
/ branch
... / CLI
..... /修正错误
..... / newfeature
..... /店3
..... / branchN
.... / GUI
..... /修正错误
..... / newfeature
..... /店3
..... / branchN
/标签
... / CLI
..... /版本1.0
..... /版本2.0
..... /版本n.n
.... / GUI
..... /版本1.0
..... /版本2.0
..... /版本n.n
或者我这太复杂了?您是否建议将GUI版本存储在单独的存储库中?这些典型目录中的哪些是预编译的可执行文件存储?
我理解这些问题似乎是新手,但事实是我对SVN完全不熟悉。谢谢你的帮助!
答案 0 :(得分:1)
我现在只使用SVN大约3或4年,你看起来对我很好,我不会将GUI版本存储在一个单独的仓库中。在我的工作中,我们将所有项目都放在一个仓库下,只是不同的文件夹,这是有效的,因为正如你所说,你可以查看你想要的任何文件夹。
还有一些人认为你不应该在SVN回购中存储二进制数据(例如预编译的可执行文件),因为它会使回购膨胀,因为它不能像以前的版本那样与文本一样。这或多或少是我工作中不成文的政策。在我的个人SVN的家里,我将检查我知道不会经常更改的重要可执行文件或库文件,只是在我需要它们时它们就在那里。我并不担心臃肿,并且能够退回到其他版本的exe有时候很难看到进展。
就分支和标签而言,我从未使用它们。我知道我应该这样做,但我的大多数项目都是“概念证明”,所以我的主干完全是我构建的。我基本上使用SVN作为一个非常好的备份和时间线工具。但是我应该开始使用标签和分支。