Simple Hg Server is a lightweight OS X app that enables you to create and run an Hg / Mercurial service on your Mac in just a few simple steps. The entire setup process takes well under a minute.
You can follow our simple guide to learn how to revision your documents with Mercurial, or just use the quick start to get going instantly. A short overview of Mercurial's decentralized model is also available. And it just works Mercurial strives to deliver on each of its promises. Game Server List. Join HG Discord. Join HG TeamSpeak. Top10 Player Awards. Recruiting is a fairly simple process and it helps the community in so many. Cloning a local repository is simple. Run the command: hg clone originalrepositorydirectoryname newrepositorydirectoryname. As long as the original repository directory exists and has a workable.hg folder in it, a new clone of that original directory will be created that is up to date with the repository files. If you want a “single master source tree”, then set up a single master Hg/Git server for your team to use (instead of a single master SVN server). As SVN relies on the network for so many basic operations, it’s going to be slower and less reliable, in addition to merges being much more difficult.
// Features
Easy to use Control Panel
Our control panel allows you to quickly setup Git, Subversion or Hg repositories and provide permission based access to project users.Project Management Software
Our control panel allows you to automatically setup a Trac or Redmine project in just a few seconds. Both provide you with an excellent tool for managing your development projects.Unlimited Users/Developers for each Repository
All of our plans feature no limits on the number of repository/project users that you may add to each project/repostiory.Hook Script Integration
We provide hooks scripts to integrate with Trac, FogBugz, LightHouse, Basecamp, Web Hooks and more (Hooks vary depending on repository type)Secure Access & Hourly Backups
All repositories are accessible securely using SSH(Git, Hg) or HTTPS (Subversion) and we keep your data safe by using RAID and backing up every server hourly.Free 24/7 Personal Technical Support
If you have any questions or run into any issues using our service, we are available 24/7 via our online help desk or our live chat room.Free Migration Assistance
If you are using another repository hosting service or hosting your repository yourself, you can import the repository yourself using our control panel or we will be happy to help you in any way that we can to migrate your data over to our service for no additional cost.30 Day Money Back Guarantee
If you are not satisfied with our service for any reason, after you cancel your account within the first 30 days, simply send us an email requesting a refund and we will provide you a no questions asked full refund.
How to get going at once.
Part 0: Instant usage
(you know this from the main page)
Clone a project and create a patch
Create a project and commit
Part 1: Using Mercurial
Aside from the practical Quick Start above, there are only a few commands you need to startworking.
Even if you stick to these basics, Mercurial is quite powerful. And they are very easy touse, once you see the model behind them: Each repository has the whole history, and history isnot necessarily linear (part 2 explains that model in a bit more detail). All that history isstored in the '.hg' directory inside the top-level folder of your project.
A quick overview of the basic commands:
- hg init: create a new repository
- hg commit: save your changes in the current repository
- hg log: see all changes in your repository
- hg pull: get all changes from another repository into the current one
- hg push: get all changes from your repository into another one
- hg serve: create an instant-webserver. People can see the history there and pull from it
- hg merge: join different lines of history
If you want to see a nice graph of the history, just do hg serve in your repository and then direct your browser to
This also helps getting a feeling for what the commands do.
Simple Hg Servers
(you can also do a lot of finegrained stuff by using different command options. Just call 'hg help <command>' to see them).
One step you'll likely want to do is setting your username in your Mercurial config file.
For this you can configure a proper name and email address in ~/.hgrc (or on a Windows system in %USERPROFILE%Mercurial.ini) by adding lines such as the following:
I you want more than this quick overview, please have a look at our longer practical guide.
Part 2: Understanding Mercurial in 6 steps
Simple Git Server Windows
Now we'll look at some of the basic concepts of Mercurial to get a better understanding of its internals:
- Like in Subversion, history consists of a number of commits. They're called changesets in Mercurial.
- Subversion requires a strict linear ordering of the commits and gives nice linear revision numbers to them. So revision N has only one child revision, N+1. This is simple, but it requires a central server to make sure that everybody agrees on the revision numbers.
- Mercurial generalizes this by letting each changeset have multiple children. If I work alone and make commits I'll make
by making three commits.The commit C3 with no children is a 'head'. It is also the newest changeset in the repository -- called 'tip'. If I shared C1 with you and you started your work from that, your commits will build a repository like this:
Here C3' is a head in your repository and I don't know anything about C2' and C3' yet. - If I pull from you, or you push to me, the two repositories are compared. By default, all missing changesets are transferred. This is all there is to push/pull: compare two graphs of changesets and transfer the missing ones.After a pull from you my repository will look like this:
Here C1 has two child changesets, and the repository has two heads since the development has diverged.The changeset C3' will be the new tip since it is the newest changeset in the repository. Note that tip is always a head, but a head need not be the tip. - Having two heads suggest that someone should merge them -- otherwise the changes from one will never be combined with the changed made in the other head.When merging with 'hg merge' the task is to figure out the canonical way to combine the changesets. If the changes do not overlap this is usually trivial, otherwise you have to do a three-way merge. The merge must be committed and this creates a changeset which explains to the world how you think the two heads should be combined:
Note that the merge changeset M has two parents.If you do not merge C3 and C3' and try to push, you get the 'new remote head' message and push aborts. It aborts since it is a little 'impolite' to leave the job of merging to someone else -- he who created the two heads by pulling in some code should also normally do the merging. - It helped my understanding a lot to think in terms of the changeset graph. Just remember that:
- 'hg commit' adds a new node. The parent changesets of the new node is given by 'hg parents'
- 'hg push' and 'hg pull' transfer nodes in the graph between two repositories.
- 'hg update' updates the working copy to reflect a given node in the history graph. This also changes the parent changeset of the next commit, see 'hg parents'.
And if you want to quickly look up something, you can use one of the Mercurial cheatsheets.
Compiled from a great email by Martin Geisler.
Download now Mercurial
- Another OS?
Get Mercurial for: - Mac OS X
- Windows
- other