ROSプロジェクトなど、各所に散らばっているリポジトリを一々手で入力してるとミスする可能性が増えてきます。
そんな時、vcstoolが使えるかもしれません
実際のところ
$ pip install -U vcstool
標準入力からいれる
こんなファイルがあったとして
$ echo ros_controls.humble.repos repositories: ros-controls/realtime_tools: type: git url: https://github.com/ros-controls/realtime_tools.git version: master ros-controls/control_msgs: type: git url: https://github.com/ros-controls/control_msgs.git version: humble ros-controls/ros2_control: type: git url: https://github.com/ros-controls/ros2_control.git version: humble ros-controls/ros2_controllers: type: git url: https://github.com/ros-controls/ros2_controllers.git version: humble ros-controls/kinematics_interface: type: git url: https://github.com/ros-controls/kinematics_interface.git version: master ros-controls/gz_ros2_control: type: git url: https://github.com/ros-controls/gz_ros2_control.git version: humble ros-controls/gazebo_ros2_control: type: git url: https://github.com/ros-controls/gazebo_ros2_control.git version: humble ros-controls/ros2_control_demos: type: git url: https://github.com/ros-controls/ros2_control_demos.git version: humble ros-controls/control_toolbox: type: git url: https://github.com/ros-controls/control_toolbox.git version: ros2-master
vcsのサブコマンド群をつかうと、必要なところに入ってくれます
$ vcs import src < ros_controls.humble.repos
リモートファイルからもイケる
先ほどは標準入力からやりました。
これは、"--input -"が省略されているため、できた挙動です。
という事はYAMLであればローカルファイルや、リモートファイルから導入することも可能という事です。
上の例は、以下のようなコマンドに書き換える事ができます。
$ vcs import --input https://raw.githubusercontent.com/ros-controls/control.ros.org/master/ros_controls.$ROS_DISTRO.repos src