c++ - 如何为 C++ 代码组织 SVN 存储库

标签 c++ svn tortoisesvn

我是 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 — 包含下载所用版本的链接
    • ide — 我将项目文件存储在这里
      • vc10 — 我通过 IDE 整理项目文件
    • bin — 已编译的二进制文件放在此处
    • obj — 编译器的构建文件
      • gcc — 如果您的项目大小合理,请为每个编译器的文件创建一个单独的文件夹
    • doc — 任何类型的文档
    • 自述文件
    • 安装
    • 正在复制
    • makefile — 用于自动生成 IDE 项目文件的东西。我更喜欢 CMake。

一些注意事项:

  1. 如果我正在编写一个库(并且我正在使用 C/C++),我将首先在名为“src/include”和“src/source”的两个文件夹中组织我的源文件,然后按模块。如果它是一个应用程序,那么我将只按模块组织它们( header 和源代码将放在同一个文件夹中)。

  2. 我不会将上面以斜体 列出的文件和目录添加到代码存储库中。

编辑:请注意,我使用的是 Mercurial,而不是 SVN,因此它上面的结构是为该版本控制系统量身定制的。不管怎样,我从你的更新中看到你已经找到了你喜欢的。

关于c++ - 如何为 C++ 代码组织 SVN 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8589479/

相关文章:

svn - 如何SVN合并两个分支,其中相同的文件夹添加到两个分支

svn - Tortoise SVN 合并两个分支

Svn 错误 "Previous operation has not finished"

svn - Tortoise SVN - 将整个项目移动到文件夹

c++ - 嵌入式系统时钟

svn - 颠覆 "Replacing"操作

apache - 无法打开文件 'svn/repo/db/txn-current-lock' : Permission denied

c++ - C++函数调用后SSBO的内容无效

c++ - 在框架上用opencv绘制一个矩形

c++ - 使用 char* 运算符的随机输出