Difference between revisions of "Subversion"

From ReactOS Wiki
Jump to: navigation, search
m (Messages: Fix revision number)
m (remove outdated and unofficial commit log page)
Line 64: Line 64:
* The CIA-''n'' IRC bot in #reactos notifies the room of the event
* The CIA-''n'' IRC bot in #reactos notifies the room of the event
* The [http://cia.vc/stats/project/ReactOS ReactOS CIA page] also shows the message of the last few commits.
* The [http://cia.vc/stats/project/ReactOS ReactOS CIA page] also shows the message of the last few commits.
* The [http://reactos-cia.tumblr.com/ ReactOS CIA Tumblr] Blog is also a way to see commits.
== Request commit (write) access ==
== Request commit (write) access ==

Revision as of 16:39, 26 April 2010

Subversion is a version control system used by ReactOS.

ReactOS source code was in a CVS repository up to December 30th 2004. Since January 1st 2005, the source code is in a Subversion (SVN) repository.

Access the sources

To download the sources, you will need an SVN client.

Source code locations:


For Windows, it is recommended to use the TortoiseSVN client, which nicely integrates into the Windows Explorer.

Another SVN Client is the SVN command line client. This one is also bundled with the ReactOS Build Environment for Windows.

Other platforms

  • The command line client for some other platforms is available here
  • Subclipse (Plugin for Eclipse)

Browse the sources online

You can also view the sources in the repository online by visiting our ViewVC with a browser, or browse through a daily updated cross-referenced doxygen database.

Usage of the SVN clients

The usage of the SVN clients is described in a separate article for each client:


Commits are data added to the ReactOS SVN. The term data is used because it is not limited to code, but may include any other media including icons and sound. If a piece of code is committed then it means that its part of the ReactOS source code. Every commit has its own unique identification number and a message explaining its purpose.


In an effort to lessen the load when changelogs need to be written for releases, this is the proposed commit message format. The general idea is that a script can be run from one SVN revision to another and populate the changelog by putting all commits for one component into a single category. To do this, a commit needs to identify which component(s) it is for.

[Component Name]
-Description of change.

An example of this would be the following (commit by Johannes Anderwald, r44141):

* Don't access freed memory in GetVolumeNameForVolumeMountPointW


When commits are made, it makes notifications is several ways.

  • Mails with changes in each commit are sent to the mailing list ros-diffs. They will be plain text mails, which contain the differences in this revision.
  • The CIA-n IRC bot in #reactos notifies the room of the event
  • The ReactOS CIA page also shows the message of the last few commits.

Request commit (write) access

Prerequisites [WIP]

There are a few mandatory prerequisites to getting a direct, full write access (aka "commit access") to the main repository:

  • Ability to communicate in written English.
  • Be ready to disclose a full real name and postal address to at least the project's official (e.g. development lead or project lead), and preferably disclose full real name for public access.
  • Have no legal restrictions related to contributing code to open source projects.

Applying for write access

Once you have started submitting patches and new code to the project you can be considered for application. We would prefer not to give access to someone who makes two or three updates and then never again. Also, if you are only going to submit patches now and again, you should file a bug in our Bugzilla and attach the patch file to it. If, however, you become a contributing developer on a continuing basis, you should definitely consider applying for write access.

Who to ask

Join the ReactOS IRC channel on FreeNode #reactos and ask.

Read ReactOS IRC Channels for more information


SVN Update says: Object with the same name already exists

When you update your working copy, you may get the error message object with the same name already exists.

Subversion displays the error message because the directory is replaced in the repository and your working copy contains data which is unknown to Subversion (Your working copy is locally modified). Since Subversion does everything it can to not cause harm to your data, you must remove or move the data which is not in the repository out of the working copy.

This scenario won't happen very often though. You have two options to correctly resolve the problem:

  • Remove the affected directory and update your working copy again.
  • Remove all files and directories in the working copy that are unknown to Subversion and then update your working copy again.


See Subversion/Branches

More information

A complete book about Subversion is available online at http://svnbook.red-bean.com.