为什么会去了解vcstool,在想要手动编译并且获取ROS源码的时候,有一个Get ROS 2 code的章节中使用到了这个工具。

mkdir -p ~/ros2_foxy/src
cd ~/ros2_foxy
wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos
vcs import src < ros2.repos

vcstool

用于维护来自多个版本控制系统的项目工作区的命令行工具。

vcstool 提供了基于单个工作区定义文件(.repos 或 .rosinstall)来管理多个本地 SCM 存储库(支持 git、mercurial、subversion、bazaar)的命令。

vcstool 替换wstool。与 wstool 相比,它在文件系统中存储库的工作目录旁边没有任何状态。

为了与rosinstall_generator兼容,可以读取 .rosinstall 文件。vcs export生成的 .repos 文件的文件格式提供了更严格的保证(例如,所有条目在获取它们时都是无冲突的)。

安装

对于在Debian的平台

sudo apt install python3-vcstool

或者

sudo pip install -U vcstool

在Ubuntu平台

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://pool.sks-keyservers.net --recv-key 0xAB17C654
sudo apt-get update
sudo apt-get install python3-vcstool

使用

脚本vcs的使用类似于VCS客户端git,hg等。help命令提供了可用命令的列表以及其他说明:

vcs help

导出仓库集

vcs export可以把当前工作空间以YAML格式输出所有仓库的路径,vcs类型,URL和版本信息。

vcs export > my.repos

导入仓库集

mkdir -p ~/ws/src
cd ~/ws
vcs import src < PATH_TO_ROSINSTALL_FILE.rosinstall #从`.repos`或者`.rosinstall`填充文件到工作区
vcs pull #更新文件

验证仓库文件

vcs validate命令获取一个YAML文件,该文件通过stdin传入并验证其内容和格式。先前导出的文件或手工生成的文件的数据通过管道传递到:

vcs validate < my.repos

validate命令还支持rosinstall文件格式的输入。

总之就是,这个工具很适合管理多个仓库相互依赖的工作空间,例如ROS2的工作空间管理就是使用这个工具。

vcstool是什么?的更多相关文章

  1. GO语言的开源库

    Indexes and search engines These sites provide indexes and search engines for Go packages: godoc.org ...

  2. Go语言(golang)开源项目大全

    转http://www.open-open.com/lib/view/open1396063913278.html内容目录Astronomy构建工具缓存云计算命令行选项解析器命令行工具压缩配置文件解析 ...

  3. [转]Go语言(golang)开源项目大全

    内容目录 Astronomy 构建工具 缓存 云计算 命令行选项解析器 命令行工具 压缩 配置文件解析器 控制台用户界面 加密 数据处理 数据结构 数据库和存储 开发工具 分布式/网格计算 文档 编辑 ...

  4. go语言项目汇总

    Horst Rutter edited this page 7 days ago · 529 revisions Indexes and search engines These sites prov ...

  5. ROS2 MAC OS Install

    ROS2 MAC OS Install(非原创),安装过程记录一下 注意: (1)如果安装了anaconda,请将~/.bash_profile文件中的export PATH="/anaco ...

  6. Golang优秀开源项目汇总, 10大流行Go语言开源项目, golang 开源项目全集(golang/go/wiki/Projects), GitHub上优秀的Go开源项目

    Golang优秀开源项目汇总(持续更新...)我把这个汇总放在github上了, 后面更新也会在github上更新. https://github.com/hackstoic/golang-open- ...

  7. 基于ros2 dashing的建图导航探索

    基于ros2 dashing的建图导航探索 1. 环境准备 安装ros2 dashing, 参考链接: https://index.ros.org/doc/ros2/Installation/Dash ...

随机推荐

  1. 02Prism WPF 入门实战 - 建项

    1.概要 Prism介绍 Github: https://github.com/PrismLibrary/Prism 开发文档:https://prismlibrary.com/docs/ Prism ...

  2. 初学Python-day7 案例(乘法口诀 已更新!!)

    案例::(乘法口诀)  用for循环做乘法口诀: 1 # 第一种 2 for i in range(1, 10): 3 for j in range(1, i + 1): 4 print('{} * ...

  3. Java:死锁编码及定位分析

    Java:死锁编码及定位分析 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 概念 死锁是指两个或多个以上的进程在执行过程中,因争夺资源而造成一种互相等待的现象, ...

  4. [no_code][Alpha]项目展示博客

    $( "#cnblogs_post_body" ).catalog() 团队项目链接 github 后端 github OCR文档-含部分所需测试代码目前private API调用 ...

  5. OO2020 助教工作总结

    1 我的初衷 这一学期的OO助教工作是我一段宝贵的经历,在其中我学习了很多.见识了很多,收获满满.当时报名OO的初衷主要有三方面.首先,我想说OO是我所上过的最好的一门课之一,这门课有这一套从理论讲授 ...

  6. Noip模拟70 2021.10.6

    T1 暴雨 放在第一道的神仙题,不同的做法,吊人有的都在用线段树维护$set$预处理 我是直接$dp$的,可能代码的复杂度比那种的稍微小一点 设$f[i][j][p][0/1]$表示考虑了前$i$列, ...

  7. Noip模拟29(瞎眼忌) 2021.8.3

    T1 最长不下降子序列 在此记录自己的瞎眼... 考场上像一个傻$der$,自己为了防范上升序列和不下降序列的不同特意的造了一组$hack$数据来卡自己:(第一行是序列长度,第二行是序列) 6 1 5 ...

  8. [调试笔记] 晚测5 T1 容易题

    众所周知,sbwzx在考试一结束就嚷嚷T1是个sb题.那他为什么调了2小时才调出来呢?快和小编一起看看吧. Sb题:指除了sbwzx别人都能做出来的题 1.CE:震惊!sbwzx竟然连map都不会用, ...

  9. SCons - 简单而强大的项目编译脚本(原文https://www.cnblogs.com/binchen-china/p/5646791.html)

    N年前学的makefile,当时还勉强能写一些简单的工程编译,现在已经基本忘了.makefile确实编写复杂,而且平时也不是经常使用,容易忘记.偶识了scons,一切都变的简单了.最近研究了下scon ...

  10. Luogu P2149 [SDOI2009]Elaxia的路线 | 图论

    题目链接 题解: 题面中给了最简洁清晰的题目描述:"求无向图中,两对点间最短路的最长公共路径". 对于这个问题我们可以先考虑图中的哪些边对这两对点的最短路产生了贡献. 比如说下面这 ...