我是SVN的新手,我想使用TortoiseSVN向SVN提交代码。我有C ++标题和代码的来源,但我不知道如何在将版本上传到SVN之前以有效的方式组织文件夹。关于人们通常如何做的任何建议?不同语言的代码结构之间是否有任何区别,例如C ++或java。我应该遵守任何具体规则吗?
因此,在检查答案后,我让事情变得更加清晰。对于一个项目,通常的文件夹结构如下:
/trunk
/branches
/tags
但我也找到了一个我喜欢的类似结构,它是:
/trunk #Keep it to developement mode always.
/samples #samples of use
/modules #software modules
/project_modName
/include # .hpp files
/src # .cpp files
/test #unitary tests
/branches #experimental developements (copies of trunk at various stages)
/tags #estable versions
/extras
/3rdparty #libs
/data #necessary data for developement
/doc #documentation
/resources #for window applications
至少我喜欢多媒体应用程序代码。
此更新仅用于解释我如何创建存储库。我创建了一个名为 structure_svn 的文件夹。在里面我创建了上面显示的结构。我右键单击父文件夹并选择导入。在URL中我写了文件夹路径(file:/// c:/ svn_repos),所以自动在svn_repos下创建结构,没有文件夹structure_svn 。
我想注意这一点,因为您右键单击要导入的文件夹将永远不会出现。我刚刚意识到,当我尝试它的时候,并且也会对它进行解释。
下一步是成功地将我的代码划分到创建的结构中。
答案 0 :(得分:9)
以下是我在编程项目中构建树的方法(主要是从C / C ++的角度来看):
一些注意事项:
如果我正在编写一个库(我正在使用C / C ++),我将首先在两个名为“src / include”和“src / source”的文件夹中组织我的源文件,然后按模块。如果它是一个应用程序,那么我将按模块组织它们(标题和来源将放在同一个文件夹中)。
我在 italics 中列出的文件和目录我不会添加到代码存储库中。
编辑:请注意,我使用的是Mercurial,而不是SVN,因此上面的结构是为该版本控制系统量身定制的。无论如何,我从你的更新中看到你已经找到了一个你喜欢的。
答案 1 :(得分:4)
向前迈出的一大步是确保所有项目都进行源外构建,即将临时文件放在$ TEMP中,并将所有输出文件放在专用的bin / lib目录中。如果操作正确,这将为您提供仅包含源的源目录。名称中的内容..除了'纯'源文件外,还要确保构建源所需的一切都在存储库中:项目文件/生成器,资源。
一旦你正确地实现了这一点,你很有可能只需要将一些典型的项目生成文件(如* .suo for Visual Studio)放入SVN的忽略列表中,然后就可以提交了。
答案 2 :(得分:4)
基本上你可以放入你想要的svn。您可以考虑遵循的唯一标准是标准存储库布局:请参阅here:
在项目中,您确实存在多种最佳实践。每种语言都有所不同。例如,Java包由命名空间组织。在C ++世界中,我已经看到了两种主要的组织方式:
然后你需要一个用于第三方库的文件夹,另一个用于目标文件和其他文件夹,例如构建文件或文档。
答案 3 :(得分:4)
如果你是svn的noob,你在下一个Link有一个很好的解释!!