Mercurial > hg-stable
diff README @ 0:9117c6561b0b
Add back links from file revisions to changeset revisions
Add simple transaction support
Add hg verify
Improve caching in revlog
Fix a bunch of bugs
Self-hosting now that the metadata is close to finalized
author | mpm@selenic.com |
---|---|
date | Tue, 03 May 2005 13:16:10 -0800 |
parents | |
children | 273ce12ad8f1 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README Tue May 03 13:16:10 2005 -0800 @@ -0,0 +1,80 @@ +Setting up Mercurial in your home directory: + + Note: Debian fails to include bits of distutils, you'll need + python-dev to install. Alternately, shove everything somewhere in + your path. + + $ tar xvzf mercurial-<ver>.tar.gz + $ cd mercurial-<ver> + $ python setup.py install --home ~ + $ export PYTHONPATH=${HOME}/lib/python # add this to your .bashrc + $ export HGMERGE=tkmerge # customize this + $ hg # test installation, show help + + If you get complaints about missing modules, you probably haven't set + PYTHONPATH correctly. + + You may also want to install psyco, the python specializing compiler. + It makes commits more than twice as fast. The relevant Debian package + is python-psyco + +Setting up a Mercurial project: + + $ cd linux/ + $ hg init # creates .hg + $ hg status # show changes between repo and working dir + $ hg diff # generate a unidiff + $ hg addremove # add all unknown files and remove all missing files + $ hg commit # commit all changes, edit changelog entry + + Mercurial will look for a file named .hgignore in the root of your + repository contains a set of regular expressions to ignore in file + paths. + +Mercurial commands: + + $ hg history # show changesets + $ hg log Makefile # show commits per file + $ hg checkout # check out the tip revision + $ hg checkout <hash> # check out a specified changeset + $ hg add foo # add a new file for the next commit + $ hg remove bar # mark a file as removed + $ hg verify # check repo integrity + +Branching and merging: + + $ cd .. + $ mkdir linux-work + $ cd linux-work + $ hg branch ../linux # create a new branch + $ hg checkout # populate the working directory + $ <make changes> + $ hg commit + $ cd ../linux + $ hg merge ../linux-work # pull changesets from linux-work + +Importing patches: + + Fast: + $ patch < ../p/foo.patch + $ hg addremove + $ hg commit + + Faster: + $ patch < ../p/foo.patch + $ hg commit `lsdiff -p1 ../p/foo.patch` + + Fastest: + $ cat ../p/patchlist | xargs hg import -p1 -b ../p + +Network support (highly experimental): + + # export your .hg directory as a directory on your webserver + foo$ ln -s .hg ~/public_html/hg-linux + + # merge changes from a remote machine + bar$ hg merge http://foo/~user/hg-linux + + This is just a proof of concept of grabbing byte ranges, and is not + expected to perform well. +