源控制(SVN)最佳实践

时间:2012-08-23 14:39:45

标签: svn version-control

我正在寻找使用SVN的一些建议(可能不是SVN特定的)。

我们只是开始使用Source控件,因为公司现在开始增长(我知道我知道,我们应该一直使用它; - ))。

每个项目都有不同的文件,您可能希望从源代码控制中排除这些文件,即内容图像,dll的文件等,但有一些具体示例我不完全确定如何处理。

1)SQL DB文件 - 我正在考虑单独支持这些(作为我们的备份例程的一部分),然后每个分支只让开发人员签入更改脚本

2)bin文件夹中的DLL。我正在考虑只签入那些属于应用程序的内容而不是任何应该存在于GAC中的内容。其次,我打算排除任何dll来自另一个本身受源代码控制的本地项目?

非常感谢您给予的任何建议。

由于 人

3 个答案:

答案 0 :(得分:0)

关于

  • SQL DB文件

你认为是正确的......这应该单独备份,你可以创建分支来保留它们。

  • bin文件夹中的DLL

我认为单个项目所需的所有DLL都应该与存储库中的项目一起使用,以便您的工作单元完整。

此外,每个项目都应该在存储库中拥有它...不建议在项目源代码控制中保持重叠。

修改

Own Repository意味着每个项目都有trunkbranchestags

答案 1 :(得分:0)

对于1)应该有一般的“设置脚本”为源控件中的每个修订填充一个新的数据库。可选的更改脚本很好,但请确保您只需一步即可轻松设置整个数据库。

“实时”数据的备份当然不应该存在于存储库中。

关于2),这听起来像是在用.Net做点什么。在这种情况下,我建议在项目文件的某处处理DLL,因为它们是构建依赖项。请记住,在指定项目依赖项时,MSBuild可以很好地“拉动”所有必需的依赖程序集。

在我看来,永远不应该使用任何内容签入“build”(或“bin”)文件夹。它只在项目建成时才填充。

答案 2 :(得分:0)

包含未由构建创建的所有内容,基本上是在make clean

之后留下的所有内容

外部lib和dll非常适合包含在SVN中,因此如果您升级这些组件,则可以始终重新创建早期版本。与任何测试或样本数据相同。

SVN有效地存储差异以及文件何时发生变化,因此通常没有问题,包括大量静态数据