Svn 项目目录结构和源代码管理的最佳实践
我正试图找到一种规范的方法来构造我的源代码项目。我使用JetBrains IntelliJ IDEA和Subversion(1.6.12)(使用SmartSVN作为我的GUI) 我创建了如下的源目录结构:Svn 项目目录结构和源代码管理的最佳实践,svn,Svn,我正试图找到一种规范的方法来构造我的源代码项目。我使用JetBrains IntelliJ IDEA和Subversion(1.6.12)(使用SmartSVN作为我的GUI) 我创建了如下的源目录结构: project + trunk + branches + tags 然后在trunk目录中打开一个新的IDEA项目。我写了一些代码:-) 现在,我要将该项目添加到我在SVN服务器上创建的新存储库中(svnadmin create myproject)。我正在使用SmartSVN
project
+ trunk
+ branches
+ tags
然后在trunk
目录中打开一个新的IDEA项目。我写了一些代码:-)
现在,我要将该项目添加到我在SVN服务器上创建的新存储库中(svnadmin create myproject
)。我正在使用SmartSVN 6.6.2
在SmartSVN中,我告诉它将代码导入一个新项目,并使用SVN+SSH将其指向我的存储库。SmartSVN警告我,我正在导入的目录不是常规的主干
,因为我为它提供了顶级项目
目录。我很困惑。我不应该将整个目录结构导入SVN吗
谢谢。当使用标准Subversion目录结构时,您通常不会在您的计算机上签出所有的
主干
、分支
和标记
,因为一旦您有多个标记或分支,您的系统上就会有许多相同文件的副本。相反,您通常只签出了trunk
,以后可能会将签出切换到指向分支或标记,或者在单独的目录中签出您感兴趣的分支或标记(如果需要处理它们)
我以前没有使用过SmartSVN,但听起来它希望在创建新项目时只提供
trunk
目录,因为它希望您只签出该目录。将您描述的目录结构放在服务器上是完全正确的,只是不希望在导入时得到它。请注意,如果您已经在客户机上的标记或分支文件夹中创建了任何内容,Subversion将不知道它们与主干的关系,因此只将它们视为完全独立的文件。但是,如果导入时这些目录为空,您应该很好,这只是警告您导入代码的方式有点意外。您应该在服务器上创建trunk/tags/branchs结构,而不是在客户端。你办理的第一次登机手续将转到trunk
您希望能够从/svn/repos/project/trunk
签出
另外,不要为每个新项目创建新的存储库,以支持代码的重用