我是 SVN 的新手,我想使用 TortoiseSVN 向 SVN 提交代码。我有 C++ header 和代码源,但我不知道如何在将版本上传到 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
至少我喜欢它用于多媒体应用程序代码。
更新 2
这个更新只是为了解释我是如何创建我的存储库的。我创建了一个名为 structure_svn 的文件夹。我在里面创建了如上所示的结构。我右键单击父文件夹并选择导入。在 URL 中,我写了文件夹路径 (file:///c:/svn_repos),这样结构就会自动在 svn_repos 下创建,没有文件夹 structure_svn。
我想说明这一点,因为您右键单击导入的文件夹永远不会出现。试了才知道,教程上也有说明。
下一步是在创建的结构中成功划分我的代码。
最佳答案
以下是我在编程项目中构建我的树的方式(主要是从 C/C++ 的角度来看):
- /
- src — 自己写的源文件和头文件
- ext——外部依赖;包含第三方库
- libname-1.2.8
- 包括 — 标题
- lib — 已编译的 lib 文件
- Donwload.txt — 包含下载所用版本的链接
- libname-1.2.8
- ide — 我将项目文件存储在这里
- vc10 — 我通过 IDE 整理项目文件
- bin — 已编译的二进制文件放在此处
- obj — 编译器的构建文件
- gcc — 如果您的项目大小合理,请为每个编译器的文件创建一个单独的文件夹
- doc — 任何类型的文档
- 自述文件
- 安装
- 正在复制
- makefile — 用于自动生成 IDE 项目文件的东西。我更喜欢 CMake。
一些注意事项:
如果我正在编写一个库(并且我正在使用 C/C++),我将首先在名为“src/include”和“src/source”的两个文件夹中组织我的源文件,然后按模块。如果它是一个应用程序,那么我将只按模块组织它们( header 和源代码将放在同一个文件夹中)。
我不会将上面以斜体 列出的文件和目录添加到代码存储库中。
编辑:请注意,我使用的是 Mercurial,而不是 SVN,因此它上面的结构是为该版本控制系统量身定制的。不管怎样,我从你的更新中看到你已经找到了你喜欢的。
关于c++ - 如何为 C++ 代码组织 SVN 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8589479/