Subversion/Using TortoiseGit

From ReactOS Wiki
Jump to: navigation, search

TortoiseGit Is an easy to use gui-based git client for windows. With the included git-svn module it is also possible to use subversion repositories. If you use git locally, you can use all git features like stashing and local branches but still use the subversion repository. Even if you don't have subversion commit access, you can create branches in git.

Installation

To use TortoiseGit, you both have to install Git for Windows and TortoiseGit.

Checking out the sources

Right click in the windows explorer in the (parent) directory where you want check out the ReactOS source and choose "Git Clone". Enter the following settings in the clone dialog:

  • URL: svn://svn.reactos.org/reactos/trunk/reactos
  • Uncheck: Load Putty Key
  • Check: From SVN Repository
  • Uncheck: Trunk, Tags, Branch
  • Check: From, and enter the svn revision where you want to start downloading. For example 71645. You can check http://code.reactos.org/changelog/reactos the last revision number.

If you don't enter the revision number, you will download all history. This will take a lot of time. If you really want the complete history, it is probably better to add the github mirror as a git remote after checkout. That allows you to download the full history using the git protocol, which is more efficient than subversion.

Branching

Right-click on the folder and choose "TortoiseGit - Create Branch..." to create a local working branch. This is optional, you can also work in the master branch.

Committing local changes

You can right-click on the folder and choose "Git Commit -> master...". Enter a commit message and check the files which should be included in the commit. Changed files are automatically checked, new files have to be checked manually.

Updating the sources

Right-click on the folder and choose "TortoiseGit - SVN Rebase" to download changes from the subversion server.

  • If you have local uncommitted changes, it will first ask to stash your changes. After the rebase you will be asked to reapply the changes (stash pop).
  • Next it will fetch changes from subversion.
  • If you have created commits, they will have to rebased (re-applied) on top of the svn changes. As subversion is linear, you cannot merge svn changes on top of your changes.

Committing to subversion

If you have subversion commit (write) access, you can make changes to the subversion repository. You first have to create the commits in git. Also make sure you are in sync with subversion using svn rebase. Right-click on the folder and choose "TortoiseGit - SVN DCommit" to send the local commits to subversion.

More information