Inkscape's Repositories

Inkscape uses the git repository system to manage project files. This is a quick guide to getting started using git and some common commands. If you want to go see the inkscape codebase, go here.

Most version control systems use some shared location to publish the most up-to-date version of the project. (We will from now on assume that the project contains the source code for a program.) We will call this place the trunk. The first thing to do when starting work on a project is to download its source code, which is called creating a checkout. The files in your checkout are called the working copy. A checkout contains copies of files belonging to the project, where you can make changes. When you are ready to send your changes to others, you commit them, and they are stored in the shared location for others to see. The state of the project after someone's changes is called a revision, and each revision in git is assigned an SHA-1 hash value, called the revision hash or commit hash. These are unique identifiers for each commit. To receive the latest changes introduced by others, you update your checkout. The update command does not remove any of your uncommitted changes - they are automatically merged.

Git uses the following commands for the above functionality.

$ git clone project_trunk_url

This checks out the source code of a project stored at the specified URL.

$ git commit -a

This packages your changes, and they are ready to be sent to the shared location. It will display an editor window, where you should enter the summary of your changes. This description will be visible when using the git log command.

$ git push

This sends your changes to the shared location, so others can see them.

$ git pull

This updates your working copy to the latest public revision.

Useful basic commands

$ git add file

When you edit a file it is at first "unstaged", this means that it's not being considered for commit.  Using the -a (all) flag above gets around this issue and automatically adds unstaged files. But there is still a need to add files that git has never seen before and this command can be used to add these new files.

$ git rm -f file

This removes a file and its contents from version control and deletes it from disk. The next commit command will remove it from the shared location. Use the --cached option instead of -f if you want to remove it from the shared location but keep it as an unversioned file in your working copy.