You're reading the documentation for an older, but still supported, version of ROS 2. For information on the latest version, please have a look at Humble.
Maintain source checkout
Note
For instructions on maintaining a source checkout of the latest development version of ROS 2, refer to Maintaining a source checkout of ROS 2 Rolling
If you have installed ROS 2 from source, there may have been changes made to the source code since the time that you checked it out.
To keep your source checkout up to date, you will have to periodically update your ros2.repos
file, download the latest sources, and rebuild your workspace.
Update your repository list
Each ROS 2 release includes a ros2.repos
file that contains the list of repositories and their version for that release.
Release versions
If you wish to update a particular release, you can get its repository list by specifying the codename of the release in the URL of the following step, e.g. foxy:
cd ~/ros2_ws
mv -i ros2.repos ros2.repos.old
wget https://raw.githubusercontent.com/ros2/ros2/foxy-release/ros2.repos
cd ~/ros2_ws
mv -i ros2.repos ros2.repos.old
wget https://raw.githubusercontent.com/ros2/ros2/foxy-release/ros2.repos
# CMD
cd \dev\ros2
curl -sk https://raw.githubusercontent.com/ros2/ros2/foxy-release/ros2.repos -o ros2.repos
# PowerShell
cd \dev\ros2
curl https://raw.githubusercontent.com/ros2/ros2/foxy-release/ros2.repos -o ros2.repos
The format of the name of the release comes from the tag associated with the release here.
Release development branches
If you wish to checkout development branches for a particular release, you can get its repository list by specifying the codename of the release in the URL of the following step, e.g. foxy:
cd ~/ros2_ws
mv -i ros2.repos ros2.repos.old
wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos
cd ~/ros2_ws
mv -i ros2.repos ros2.repos.old
wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos
# CMD
cd \dev\ros2
curl -sk https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos -o ros2.repos
# PowerShell
cd \dev\ros2
curl https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos -o ros2.repos
Latest ROS 2 Foxy branches
If you wish to checkout the latest code for ROS 2 Foxy, you can get the relevant repository list by running:
cd ~/ros2_foxy
mv -i ros2.repos ros2.repos.old
wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos
cd ~/ros2_foxy
mv -i ros2.repos ros2.repos.old
wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos
# CMD
cd \dev\ros2_foxy
curl -sk https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos -o ros2.repos
# PowerShell
cd \dev\ros2_foxy
curl https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos -o ros2.repos
Update your repositories
You will notice that in the ros2.repos file, each repository has a version
associated with it that points to a particular commit hash, tag, or branch name.
It is possible that these versions refer to new tags/branches that your local copy of the repositories will not recognize as they are out-of-date.
Because of this, you should update the repositories that you have already checked out with the following command:
vcs custom --args remote update
Download the new source code
You should now be able to download the sources associated with the new repository list with:
vcs import src < ros2.repos
vcs pull src
vcs import src < ros2.repos
vcs pull src
# CMD
vcs import src < ros2.repos
vcs pull src
# PowerShell
vcs import --input ros2.repos src
vcs pull src
Rebuild your workspace
Now that the workspace is up to date with the latest sources, remove your previous install and rebuild your workspace with, for example:
colcon build --symlink-install
Inspect your source checkout
During your development you may have deviated from the original state of your workspace from when you imported the repository list. If you wish to know the versions of the set of repositories in your workspace, you can export the information using the following command:
cd ~/ros2_foxy
vcs export src > my_ros2.repos
cd ~/ros2_foxy
vcs export src > my_ros2.repos
cd \dev\ros2_foxy
vcs export src > my_ros2.repos
This my_ros2.repos
file can then be shared with others so that they can reproduce the state of the repositories in your workspace.