2

我有多个 Webots 项目,这些项目在每个 git 存储库中进行管理。

如何将项目导入 git 子模块,以便将不同类型的机器人放入项目中?

这些项目具有以下结构:

robotA repo
  \controllers
  \protos
  \worlds
robotB repo
  \controllers
  \protos
  \worlds
project repo
  \controllers
    \robotA -- copied from robotA repo/controllers
    \robotB -- copied from robotB repo/controllers
  \protos
    \robotA -- copied from robotA repo/protos
    \robotB -- copied from robotB repo/protos
  \worlds

我正在手动导入 proto 文件和控制器,但它太容易出错并且不容易跟踪更改。

我正在尝试使用 git 子模块,但我认为 git 不支持仅导入子模块的子目录。

我可以设置一个环境变量,让 Webots 项目可以找到 protos 吗?或者对管理多个机器人有什么建议?

4

1 回答 1

3

不幸的是, git submodules 确实不支持只导入子模块的子目录。

也无法设置环境变量来告诉 Webbot 在哪里可以找到 PROTO 文件。

但这里有一些解决您的问题的可能性:

  1. 您可以编写脚本来复制 PROTO 文件和控制器,这将使您免于耗时且容易出错的手动复制。
  2. 您可以直接在WEBOTS_HOME/projects/robots.
  3. 您可以扩展 Webots 来添加这个可选的环境变量定义,PROTO 文件的列表在这里确定:https ://github.com/omichel/webots/blob/master/src/webots/vrml/WbProtoList.cpp#L34
  4. 如果您使用的是 Linux,则可以将软链接添加到定义 protoWEBOTS_HOME/projects/robots/robotA的本地 repo 文件夹。robotA
于 2019-02-20T07:52:32.730 回答