Subversion Terminology

Last modified by Microchip on 2023/11/09 09:12

The following is a list of commonly used terminology used when working with Subversion. Please refer to the Subversion Book (svn-book.pdf) for more terminology.

Subversion ClientSoftware run by a user to access a Subversion repository locally or on a Subversion server.
Subversion RepositoryLocation where project files are stored. Contains the most recent version as well as past versions of the project.
Project TreeA single project tree contains folders for project management and version control. Typical folders are trunk, branches, tags. These folders are used to keep the working copy, development copy, and code releases or snapshots.
TrunkContains the main project source for team development. Consists of code that can compile, even if it contains stubs for an undeveloped code.
BranchSplit from the main trunk to allow for development. Branches allow development without disrupting the trunk. Branches can remain a separate development path or can be merged back to the trunk later in time.
TagSnapshot of the project at an important point in time. Typically a software release version.
RevisionStored change in a file's state. Revisions are incremented during the commit process where changes are saved.
HeadLatest revision of all project files in the project trunk, branch, or tag.
Working CopyLocal copy of a project's source code checked out from the repository.
Check-outCreates a local working copy for development, testing, or release. Can be the project head, a specific revision, or a tag of the project.
UpdateMerges any changes that have been made in the repository into the local working copy.
CommitChecking in or writing any project changes from the local copy to the repository.
RevertProcess of changing a file back to a previous version of itself. Can be used to resolve conflicts.
MergeProcess of combining the changes made in a working copy of a file in a project to the repository that contains a more recent revision of the same file than what was checked out before modifying it. Typically used in when multiple developers are working on the same file to avoid losing other developers' changes.
ConflictOccurs when changes are made by different developers to the same file and the repository system is unable to reconcile the changes. Typically requires the files to be merged manually to resolve the conflict.