我已经开始研究一个项目了。我想使用subversion存储这个项目。我已经安装了VisualSVN服务器和TortoiseSVN。
该项目由几个小项目组成。我每次都需要其中一些,其中一些不是。问题是:
答案 0 :(得分:5)
是的,简而言之 - 但您稍后可以改变主意
subversion项目的典型目录结构是:
project/branches
project/trunk
project/tags
您最初将所有代码放在trunk中,然后在必要时创建标记和分支。
您可能需要考虑最初将所有内容保存在一个svn项目文件夹结构中,因为它会更简单(您不必乱用解决方案文件)。
如果您选择稍后将项目的中断部分放入单独的svn项目中,您可以执行'svn rename'并为它们创建标准分支,主干和标记文件夹。您只需要修改解决方案文件中的引用或使用svn:externals方法。
绝对 - 您应该将所有内容存储在不是由构建生成的存储库中。创建svn:忽略生成的文件夹(例如obj和bin目录)上的属性,因此当您忘记添加重要文件时,'svn status'将为您提供有用的反馈。
有一种机制svn:externals,它允许您创建到subversion存储库(或外部subversion存储库)中另一个位置的链接 - 这可能有助于您从单个文件夹中签出。您可能需要考虑对框架的特定标记进行svn:external引用,以便其他人对框架的更改不会破坏您的项目。
svn:externals会让事情变得混乱,但请谨慎使用。
您可以在subversion
答案 1 :(得分:2)
Subversion存储库通常有三个文件夹trunk,branches和tags。您将把项目放在主干中。如果它们没有直接关系,我会为每个项目创建一个存储库。
是的,我保留.sln文件,但忽略.suo和cproj.user文件。我也忽略了bin和obj文件夹。
如果您将“框架”项目保存在一个存储库中,只需检查trunk文件夹即可。如果您将其保存在另一个存储库中,则可以查看externals
的概念您通常会检查整个行李箱,即使您需要在项目的一小部分工作。
SVN Book可以帮助您了解更多信息。
答案 2 :(得分:1)
将所有内容存储在一个目录中。在目录的基础应该是解决方案文件。这也应该存储在SVN中(使得在新机器上检查SVN的解决方案更加容易)。
对于框架项目 - 尝试将其包含在解决方案中,然后在解决方案的基础项目中引用它。
如果您只需要处理项目的一部分,您可以打开整个解决方案,只需处理您需要的部分,或者只是检查该项目。
答案 3 :(得分:1)
我已经设置了我们的内部SVN回购,如下所示:
SVN-Root
- trunk
- Projects (for each project one folder,
Solutions are in separate folder)
- tag
- Projects
- branch
- Projects
尽管如此,我读到了一个不同的设置:
SVN-Root
- Solution1
- trunk
- tag
- branch
- Solution2
- trunk
- tag
- branch
答案 4 :(得分:1)
由于您正在考虑使用多个SVN存储库,因此应考虑以下事项:在SVN存储库中提交是原子的。提交适用于多个存储库的更改不是。
即使你是唯一一个使用SVN存储库的人,但经验法则是系统的设计允许(理论上)任何人随时更新,并且不会因为不良而获得无法编译的源代码。定时。
总之,如果可能需要同时对文件A和B应用更改以保持项目可编辑,则A和B应位于同一存储库中。
答案 5 :(得分:0)
sln
存储在SVN中。您可以将此sln放在项目目录之一(通常位于GUI csproject
文件夹中)答案 6 :(得分:0)
1。)你喜欢它。这完全取决于你。你想处理几个subversion文件夹还是只想处理一个?
2。)是的,当然。 只保留用户特定的文件(如.user)。
3。)不,好吧,也许吧。如果您将AnkhSVN用作Visual Studio项目,则可以更新解决方案,并使用它更新所有项目文件夹。
4。)仅使用该项目; - )
答案 7 :(得分:0)
您的subversion存储库的设置是一个主题,其中存在许多不同的意见。以下答案基于我的个人经验和偏好:
答案 8 :(得分:0)
可能取决于您希望如何组织事物,各个部分有多大以及哪些部分适合您。试验一下。
您可能想要研究的一件事是外部:(http://svnbook.red-bean.com/en/1.0/ch07s03.html)。这允许您从其他存储库中提取文件和文件夹。
答案 9 :(得分:-1)
对于ME - 经验法则是1 SVN REPO = 1 SOLUTION
我也会检查.sln文件,并与所有参与项目的人一起强制执行相同的目录结构