This page will show you how to get set up with Source code. We use Mercurial (also called Hg) for source code version control. It is hosted by BitBucket for Source Members to share plugins, source project files, and get access to the source code.
If you would like access to the source code, please complete the following steps if you have not already done so:
- Create a BitBucket account (https://bitbucket.org/)
- Fill out the TIME Source Code Licence Agreement and email it to Geoff Davis
- After we receive your completed Licence Agreement we will send you a BitBucket invitation – click on the link in the invitation and log in after creating an account
- Install SourceTree (https://www.sourcetreeapp.com/)
- Restart your computer
See: Sg (Source Get)
Note: Please don’t include special characters into your username or password (particularly ‘:’, ‘/’, ‘\’, ‘.’ or ‘@’).
Mercurial Home Page: http://mercurial.selenic.com/
Quick Start guide available: http://mercurial.selenic.com/learn/
Detailed description of Mercurial (also called Hg): http://hginit.com/
The main change from Subversion is that everyone has the entire repository on their machine. This means an Update in subversion becomes a two-step process:
- Pull changes from the central repository to your local repository
- Update your local code to the latest version on your local repository
You can Pull then Update all of the repositories using hgall.bat:
This also means the process for making changes requires a two-step process to make changes to the central repository. The general process will be:
- Commit changes into your local repository
- Pull changes from the server
- Merge the changes into your repository
- Push the changes back to the server.
Rather than having one large repository we have a few smaller repositories that can be seen on BitBucket:
https://bitbucket.org/ewater
You will / have all been given access to a number of Source plugin repositories as well as the repositories needed for Source.
Changes for the core repositories are made by doing a Pull Request. Details of how to do a Pull Request can be found here: Fork a Repo, Compare Code and Create a Pull Request
Download Video: Hg Demonstration Video.mp4
Troubleshooting
Issue: hg update fails complaining about uncommitted changes.
Answer: You may need to either Revert these changes (getting rid of them), or Commit the changes to your local repository before you can update. For more advanced users it is possible to Shelve the changes.
Issue: hg times out while pulling.
Answer: try with a small repository first. If the issue persists it could mean that you need to configure hg to understand your proxy.
In this case you will need to go to the .hg\hgrc file in each repository and add to the end the lines
[http_proxy]
host =proxyname:port
Compiling
To compile you will need Visual Studio 2017 with the .net 4.7.2 SDK.
Main Solution file to be opened with Visual Studio is RiverSystem\Solutions\Source.sln
To clear dll's you use RiverSystem\Build\RepositoryScripts\ClearAll.bat