我目前正在使用TortoiseSVN管理我目前正在进行的几个项目。当我第一次将所有内容都移动到源代码控制中时,我并不确定应该如何布置所有内容,因此我最终将每个项目放入其自己的存储库中。

我想知道将它们全部移动到一个大型存储库并将它们拆分为项目文件夹对我来说是个好主意吗?其他人都做了什么?

目前,他们都没有共享共同的代码,但他们可能会在将来共享。如果它们在一起的话,它会更容易管理。

感谢。

有帮助吗?

解决方案

在某种程度上取决于您对“项目”的意思。

我有一个通用的本地存储库,其中包含我写的随机内容(包括我的网站,因为它很小)。单个用户本地SVN存储库在您花费很多年打字之前不会遇到明显的性能问题。到那时SVN会更快。所以我还没有后悔把所有东西扔进一个存储库,尽管其中的一些东西完全不相关,除了我写的全部。

如果是“项目”,表示“来自班级的作业”,或“我用来驾驶我的TiVo的脚本”,或“我学习新语言的进步”,然后创建每个项目的回购对我来说似乎有点不必要。然后,它也没有任何成本。所以我想我会说不要改变你正在做的事情。除非您真的想要重新组织存储库的经验,否则会改变您正在做的事情: - )

但是,如果通过“项目”你的意思是一个'真正'的软件项目,公共访问存储库,然后我认为每个项目的单独回购是有意义的:部分是因为它干净地划分事物,每个项目独立扩展,但也因为它是人们期望看到的

在单独的存储库之间共享代码不像您想象的那么严重,因为svn具有相当可爱的“svn:externals”和“svn:externals”。特征。这使您可以将存储库的目录指向另一个存储库中的目录,并自动检查这些内容以及您的内容。有关详细信息,请参阅SVN一书。

其他提示

我会将它们存储在同一个存储库中。它有点整洁。另外,为什么持续集成会很重要 - 您可以随时从存储库中提取特定文件夹。

管理起来也更容易 - 帐户到一个存储库,访问一个存储库的日志等。

我的经验法则是巩固一起交付的东西。换句话说,如果您可以单独交付项目X和项目Y,则将它们放在单独的回购中。

是的,有时这意味着你有一个包含大量组件的项目的庞大回购,但人们可以在回购的子树上操作,这迫使他们想到“整个项目”。当他们对回购交易所提交更改时。

我绝对会将每个项目保存在自己的存储库中,与其他项目分开。这将为每个项目提供自己的提交历史。一个项目的回滚不会影响其他项目。

我个人更喜欢它自己的存储库中的每个项目

如果您与很多其他人合作,您可能会考虑每个人是否都需要对每个项目进行相同级别的访问。我认为如果将每个项目放在一个单独的存储库中,那么为每个人提供访问权限会更容易。 ~~~

如果您要为每个项目使用单独的存储库,则可以使用外部标记用于引用其他存储库 - 例如共享代码。

只要每个项目都有/ trunk / tags和/ branches,你就会很好。正确的持续集成是这里的标准。

是的,将所有内容都放在源代码管理中。

如果您正在使用SVN,请将项目保存在自己的存储库中 - svn速度慢,速度慢。

如果您的项目是独立的,可以将它们保存在单独的存储库中。如果他们共享组件,那么将它们放在一起。

对于Subversion,我建议将所有内容放在同一个存储库中;设置新存储库的管理开销太高,无法让它变得简单,因此您更有可能不会对某些内容进行版本控制并在以后后悔。如果您需要限制对存储库的一部分的访问,Subversion提供了大量细粒度的访问控制。

然而,当我开始将项目迁移到Mercurial时,我已经切换到为每个项目创建一个存储库,因为它只需要一个“hg init”。创建一个新的,我可以使用 hg forest 扩展以轻松地对嵌套存储库执行操作。 Subversion有svn:externals,它有些类似,但需要更多的管理开销。

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