Math.NET Numerics Sourcecode Repository
We use Git as distributed version control system for our source code repositories, but provide readonly subversion and mercurial mirrors for anyone who can't use git for some reason.
Master Repository
Our master repository is hosted at github. We recommend to clone directly from this master repository in most cases. Whenever we mention mainline, we refer to the master baranch in this repository.
git://github.com/mathnet/mathnet-numerics.git
Mirror Repositories
For backup and convenience (more reach) we also provide read-only mirror repositories.
- Git at gitorious: git://gitorious.org/mathnet-numerics/mainline.git
- Mercurial (HG) at codeplex: https://hg01.codeplex.com/mathnetnumerics
- Subversion (SVN) at github: http://svn.github.com/mathnet/mathnet-numerics.git
Repository Maintainers
If there's a problem with one of the repositories please contact its maintainer directly.
- Git (Github, Gitorious): Christoph Rüegg
- Hg (Codeplex): Marcus Cuda
Forking
Please fork directly from the master git repository at github using the github website. It simplifies our pull request workflow so we can integrate your changes back into mainline more easily. Have a look at the developers page for more details.
Downloading the Sourcecode
Instead of using a version control tool you can also download the whole sources packed in a zip archive:
- Github: Browse to the github project page and click "Downloads" on the right.
- Codeplex: Browse to the sources page at codeplex and click "Download" under "Latest Version" on the right.
Git Tips and Tricks
You'll find various git tutorials and open books at git-scm.com. When installing git on windows we recommend to use the default settings throughout the installer.
In order to keep your local clone and fork up to date with mainline, you should add it as a remote repository like this:
git remote add mathnet git://github.com/mathnet/mathnet-numerics.git
To download the whole content of the remote repository into your clone, you need to fetch it explicitly from time to time. Note that fetching only downloads all the objects and refs pointing to all the branch and tag objects into your clone but doesn't update, merge or rebase any of your branches.
git fetch mathnet
If your local branch tracks one of the remote branches, you may want to integrate all the remote changes into your local branch. If you didn't commit anything to the local branch yourself and your current HEAD hence is a parent of the remote branch, you can do a fast-forward merge. Fast-forward == good. Gitk will show this as a you local HEAD being below the remote branch head but connected by a line. Also, git status will tell you that your head is behind the remote by x commits and that fast forward is possible. To do the fast forward merge you can either use the git merge or the git rebase command. Both will work and have the same result, although git rebase will tell you at the end that there's "nothing to do" (because there were no changes on your side and therefore nothing to rebase).
git rebase mathnet/master
git merge mathnet/master



