存储库和开发机器上的项目目录结构不同

发布于 2024-12-17 07:36:55 字数 481 浏览 0 评论 0原文

我正在开发一个大型项目的模块。存储库的目录结构设计为每个模块都有单独的分支/标签/主干文件夹。

module 1
    - branches
    - tags
    - trunk

module 2
    - branches
    - tags
    - trunk

module 3
    - branches
    - tags
    - trunk

在开发机器(Windows XP)上,我们必须将来自各个模块的文件放在一个完全不同的文件夹结构中(甚至来自不同模块的文件位于同一目录中)。

现在我的问题是如何将此类开发项目文件夹置于版本控制之下?现在我正在做的是,我单独签出我的模块,每当我更改开发文件夹中的任何内容时,我都会将文件复制到签出文件夹,然后从那里提交。但我可以直接从开发文件夹提交,因为在当前设置中,我可能会错过一些东西。

编辑: 注意:我无法更改存储库的目录结构。

I am working on a module of a large project. The repository's directory structure is designed in such a way that each module has separate branches/tags/trunk folders.

module 1
    - branches
    - tags
    - trunk

module 2
    - branches
    - tags
    - trunk

module 3
    - branches
    - tags
    - trunk

On the development machine(Windows XP), we have to club the files from various modules in an all together different folder structure(even files from different modules are in same directory).

Now my problem is how to keep such type of development project folder under version control? Right now what I am doing is that I keep a separate checkout of my module and whenever I change any thing in the development folder, I copy the file to the checkout folder and then commit it from there. But I something so that I can directly commit from the development folder as in the current setup there are chances that I may miss something.

EDIT:
Note: I cannot change the directory structure of the repository.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

老旧海报 2024-12-24 07:36:55

我有一个类似的项目,使用 SVN 外部运行得很好。创建一个主项目,它没有自己的文件,但有一个 svn:externals 声明,例如:

^/module1/trunk module1
^/module2/trunk module2
^/module3/trunk module3

如果您检出主项目,您想要的目录结构也会随之检出。

I've got a similar project running just fine with SVN externals. Create a master project that has no files of its own, but has a svn:externals declaration like:

^/module1/trunk module1
^/module2/trunk module2
^/module3/trunk module3

If you check out the master project, your desired directory structure will be checked out along.

白云不回头 2024-12-24 07:36:55

这不是问题的答案,更多的是一个旁注,对于评论来说太长了

IMO,这是一个错误的项目结构。由于您已经在 PC 上合并了模块,因此您也应该在 SVN 中执行此操作。它应该是这样的:

- branches
    project
      module1
      module2
      module3
- tags
    project
      module1
      module2
      module3
- trunk
    project
      module1
      module2
      module3

或者看看将 module2/3 作为 module1 svn 的外部包含在内(例如 将外部项目添加到 subversion 存储库)

This is not an answer to the question, more of a sidenote which is too long for a comment

IMO that is a wrong project structure. Since you already merge the modules on your PC you should do that in SVN as well. It should be like so:

- branches
    project
      module1
      module2
      module3
- tags
    project
      module1
      module2
      module3
- trunk
    project
      module1
      module2
      module3

Alternatively look at including module2/3 as externals to module1 svn (e.g. Add external project to subversion repository)

我要还你自由 2024-12-24 07:36:55

正如 Krom 指出的那样,这可能不是在存储库中构建代码的最佳方法,但如果您无法更改它,我可以建议使用一个简单的批处理脚本来为您进行结帐。

这样,您只需运行脚本即可从多个位置检出您需要的所有文件,并且仍然保留 svn 信息。

然后,当您更改工作副本上的任何文件时,您所要做的就是检查它们,无需担心它们在存储库中的位置。

顺便说一句,该脚本甚至可以存储在 svn 中,供其他开发人员使用以及供您的构建服务器等使用。

as Krom pointed out, this may not be the best way to structure your code in the repo, but if you cannot change it, I could suggest using a simple batch script to do the checkout for you.

that way, you only have to run the script to take care of checking out all the files you need from multiple location, and you will still retain svn information.

Then when you change any of the files on your working copy, all you have to do is check them out, no need to worry about their location on the repo.

btw, that script could even be stored in svn, for other developers to use and for your Build Server and so on..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文