Source Control Tools

Created on January 22, 2020

Working with RDK code requires  Git, Repo and various other tools.


Git is designed to handle large projects that are distributed over multiple repositories. RDK uses Git for local operations such as local branching, commits, diffs, and edits. One of the challenges in setting up the RDK project was figuring out how to best support the outside community—from the hobbyist community to large OEMs building mass-market consumer devices. We wanted components to be replaceable, and we wanted interesting components to have a life of their own outside of RDK. We first chose a Legacy revision control system, then narrowed it down to Git.

For familarise various git commands, refer to Git Command Reference.


Repo unifies Git repositories when necessary, performs uploads to the Gerrit revision control system, and automates parts of the RDK development workflow.

Repo comes in two parts: The Repo Launcher that you download from git-repo-downloads is the first part. It’s a Python script that knows how to initialize a checkout and can download the second part, the full Repo tool. The full Repo tool is by default in $SRCDIR/.repo/repo/… and receives forwarded commands from the downloaded Repo Launcher.

Repo is on the top of Git.  The repo command is an executable Python script that you can put anywhere in your path. 

For familarise various repo commands, refer to Repo Command Reference.

Other tools

Gerrit is a web-based code review system for projects that use Git. Gerrit encourages a more centralized use of Git by allowing all authorized users to submit changes, which are automatically merged if they pass code review. In addition, Gerrit makes reviewing easy, displaying changes side by side in the browser and enabling inline comments.

RDK Code Search allows you to search through code base without downloading anything. You can use Code Search to view the source code, switch between open source branches.

Leave a Reply

Your email address will not be published. Required fields are marked *

Go To Top