⇤ ← Revision 1 as of 2005-09-09 00:49:32
Size: 1839
Comment:
|
Size: 1849
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 48: | Line 48: |
Exporting a patch: | == Exporting a patch == |
Line 58: | Line 58: |
Network support: | == Network support == |
Setting up a Mercurial project
$ cd project/ $ hg init # creates .hg $ 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 which contains a set of regular expressions to ignore in file paths.
Branching and merging
$ hg clone linux linux-work # create a new branch $ cd linux-work $ <make changes> $ hg commit $ cd ../linux $ hg pull ../linux-work # pull changesets from linux-work $ hg update -m # merge the new tip from linux-work into # our working directory $ hg commit # commit the result of the merge
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
Exporting a patch
(make changes) $ hg commit $ hg tip 28237:747a537bd090880c29eae861df4d81b245aa0190 $ hg export 28237 > foo.patch # export changeset 28237
Network support
# pull from the primary Mercurial repo foo$ hg clone http://selenic.com/hg/ foo$ cd hg # export your current repo via HTTP with browsable interface foo$ hg serve -n "My repo" -p 80 # pushing changes to a remote repo with SSH foo$ hg push ssh://user@example.com/~/hg/ # merge changes from a remote machine bar$ hg pull http://foo/ bar$ hg update -m # merge changes into your working directory # 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