Size: 1849
Comment:
|
Size: 2034
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
$ hg init # creates .hg $ hg addremove # add all unknown files and remove all missing files $ hg commit # commit all changes, edit changelog entry |
$ hg init # creates .hg $ <create .hgignore file> $ hg status # show all non-ignored files $ hg add # add those 'unknown' files $ hg commit # commit all changes, edit changelog entry |
Line 10: | Line 12: |
Mercurial will look for a file named ''.hgignore'' in the root of your | Mercurial will look for a file named [".hgignore"] in the root of your |
Line 23: | Line 25: |
$ hg update -m # merge the new tip from linux-work into | $ hg merge # merge the new tip from linux-work into # (old versions used "hg update -m" instead) |
Line 32: | Line 35: |
$ patch < ../p/foo.patch $ hg addremove $ hg commit |
$ patch < ../p/foo.patch $ hg addremove # add and remove files added/removed by the patch $ hg commit |
Line 73: | Line 76: |
bar$ hg update -m # merge changes into your working directory | bar$ hg merge # merge changes into your working directory |
Line 76: | Line 79: |
foo$ cp hgweb.cgi ~/public_html/hg/index.cgi | foo$ cp hgwebdir.cgi ~/public_html/hg/index.cgi |
Setting up a Mercurial project
$ cd project/ $ hg init # creates .hg $ <create .hgignore file> $ hg status # show all non-ignored files $ hg add # add those '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 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 merge # merge the new tip from linux-work into # (old versions used "hg update -m" instead) # our working directory $ hg commit # commit the result of the merge
Importing patches
Fast:
$ patch < ../p/foo.patch $ hg addremove # add and remove files added/removed by the patch $ 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 merge # merge changes into your working directory # Set up a CGI server on your webserver foo$ cp hgwebdir.cgi ~/public_html/hg/index.cgi foo$ emacs ~/public_html/hg/index.cgi # adjust the defaults