Mercurial > hg-stable
view README @ 4451:671158f060cc
Make "hg incoming -r revision_number" work for remote repos (issue566)
Uses the remote repository's lookup method as pull does and only transfers
what is needed to calculate incoming changesets.
One minor problem:
As only the needed changesets are transfered and stored in a local bundle
repository, the tip tag of this bundle is shows despite not being the tip
changeset of the remote repository.
(see "+tag: tip" in tests/test-incoming-outgoing.out in this patch)
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 01 Jun 2007 19:45:05 +0200 |
parents | 048e9bc5cdc2 |
children | 1158d7018052 |
line wrap: on
line source
MERCURIAL QUICK-START Setting up Mercurial: Note: some distributions fails to include bits of distutils by default, you'll need python-dev to install. You'll also need a C compiler and a 3-way merge tool like merge, tkdiff, or kdiff3. First, unpack the source: $ tar xvzf mercurial-<ver>.tar.gz $ cd mercurial-<ver> When installing, change python to python2.3 or python2.4 if 2.2 is the default on your system. To install system-wide: $ python setup.py install --force To install in your home directory (~/bin and ~/lib, actually), run: $ python setup.py install --home=${HOME} --force $ export PYTHONPATH=${HOME}/lib/python # (or lib64/ on some systems) $ export PATH=${HOME}/bin:$PATH # add these to your .bashrc And finally: $ hg debuginstall # run some basic tests $ hg # show help If you get complaints about missing modules, you probably haven't set PYTHONPATH correctly. Setting up a Mercurial project: $ hg init project # creates project directory $ cd project # copy files in, edit them $ hg add # add all unknown files $ hg commit # commit all changes, edit changelog entry Mercurial will look for a file named .hgignore in the root of your repository which contains a set of regular expressions to ignore in file paths. Branching and merging: $ hg clone project project-work # create a new branch $ cd project-work $ <make changes> $ hg commit $ cd ../project $ hg pull ../project-work # pull changesets from project-work $ hg merge # merge the new tip from project-work into # our working directory $ hg commit # commit the result of the merge Importing patches: Simple: $ patch < ../p/foo.patch $ hg commit -A Fast: $ cat ../p/patchlist | xargs hg import -p1 -b ../p Exporting a patch: (make changes) $ hg commit $ hg export tip > foo.patch # export latest change Network support: # pull from the primary Mercurial repo foo$ hg clone http://selenic.com/hg/ foo$ cd hg # make your current repo available via http://server:8000/ foo$ hg serve # pushing and pulling changes to/from a remote repo with SSH foo$ hg push ssh://user@example.com/my/repository foo$ hg pull ssh://user@example.com//home/somebody/his/repository # merge changes from a remote machine (e.g. running 'hg serve') bar$ hg pull http://foo:8000/ bar$ hg merge # merge changes into your working directory bar$ hg commit # commit merge in to your local repository # Set up a CGI server on your webserver foo$ cp hgweb.cgi ~/public_html/hg/index.cgi foo$ emacs ~/public_html/hg/index.cgi # adjust the defaults For more info: Documentation in doc/ Mercurial website at http://selenic.com/mercurial