2010-09-21 71 views
1

我想要想出一个规范的方式来构建我的源代码项目。我使用JetBrains IntelliJ IDEA和Subversion(1.6.12)(使用SmartSVN作为我的GUI)。项目目录结构和源代码控制的最佳实践

我创建了一个源代码目录结构是这样的:

project 
    + trunk 
    + branches 
    + tags 

并打开trunk目录中一个新的IDEA项目。我写了一些代码:-)。

我现在要将项目添加到我在SVN服务器上创建的新存储库(svnadmin create myproject)。我正在使用SmartSVN 6.6.2。

在SmartSVN中,我告诉它将代码导入到一个新项目中,并使用SVN + SSH将其指向我的存储库。 SmartSVN向我发出警告,说我正在导入一个不属于惯例trunk的目录,因为我给了它顶层目录project。我很困惑。我不应该将整个目录结构导入SVN吗?

谢谢。

回答

3

当使用标准的Subversion的目录结构,你通常不会拥有所有的trunkbranchestags检查了你的机器上,因为这会给你系统上的相同文件的很多很多的副本,一旦你有多个标签或分支。相反,您通常只需登录trunk,并且稍后可能会将您的结帐切换为指向分支或标记,或者如果需要处理它们,请在您单独的目录中检出您感兴趣的分支或标记。

我以前没有使用过SmartSVN,但它听起来像是在创建一个新项目时预计只给出trunk目录,因为它期望您只能检出。拥有你在服务器上描述的目录结构是完全正确的,它只是不希望得到那个导入。请注意,如果您已经在客户端的标签或分支文件夹中创建了任何内容,Subversion将不知道它们如何与trunk相关,因此将它们视为完全独立的文件。但是如果这些目录在导入时是空的,那么你应该很好,它只是警告你以一种意想不到的方式导入代码。

0

您应该在服务器上创建trunk/tags/branches结构,而不是在客户端。你做的第一张支票将转到主干。

您希望能够从<server>/svn/repos/project/trunk退房。

此外,不要为每个新项目创建新的存储库,以便重新使用代码。