我正在考虑从Mercurial移动到SVN,因为它似乎更简单才能维持,更多的人拥有比可用的Mercurial客户端的SVN客户端。但是我有一个关于文件结构的问题 -

我明白典型的适当的SVN结构是:

/ trunk
.... /当前版本文件在这里

/ branch
.... / bugfix
.... / newfeature
.... / branch3
.... / branchn

标签
.... /版本1.0
.... /版本2.0
.... /版本N.N

我的问题是这个因素如何进入多个oS?我的软件目前对每个操作系统的GUI / CLI版本的GUI / CLI版本的单独的Mercurial存储库是因为您不能只检查Mercurial目录。但是,我理解你可以在svn中。结构看起来像:

/ windows(或linux,或其他)

/ trunk
.... / cli
..... /当前版本文件在这里
.... / gui
..... /当前版本文件在此处

/ branch
.... / cli
..... / Bugfix
..... / newfeature
..... / Branch3
..... / Branchn
.... / gui
..... / Bugfix
..... / newfeature
..... / Branch3
..... / Branchn

标签
.... / cli
..... /版本1.0
..... /版本2.0
..... /版本N.N
.... / gui
..... /版本1.0
..... /版本2.0
..... /版本N.N

或者我让这太复杂了吗?您是否建议将GUI版本存储在单独的存储库中?同样在哪些典型目录中是存储的预编译可执行文件?

我理解这些问题可能似乎是新手,但事实是我对SVN完全新的。谢谢你的帮助!

有帮助吗?

解决方案

我已经使用svn仅为3或4年来,您对我看起来非常好,我不会在单独的回购中存储GUI版本。在我的工作中,我们在一个回购中拥有我们所有的项目,只是不同的文件夹,这是作品,因为正如您所说,您可以查看所需的任何文件夹。

还有一些人在那里争辩说,您不应该在SVN repo中存储二进制数据(如预先编译的可执行文件),因为它将膨胀回购,因为它不能与先前的版本如此如此。这或多或少是我工作的不成文政策。在我个人的SVN上,我将检查我知道不会定期更改的重要的可执行文件或图书馆文件,就在我需要它们时。我不担心臃肿,并且能够通过其他版本的exe退回有点酷,有时会看到进展。

就分支和标签来,我从未使用过它们。我知道我可能应该,但我的大多数项目都是“概念证明”,无论如何,我的主干真的是我构建的。我基本上使用SVN为非常好的备份和时间线工具。但我应该开始使用标签和分支。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top