Differences between revisions 1 and 24 (spanning 23 versions)
Revision 1 as of 2005-09-09 00:49:32
Size: 1839
Editor: mpm
Comment:
Revision 24 as of 2007-10-16 13:40:39
Size: 2034
Editor: 78-61-46-216
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 stat
us # show all non-ignored files
$ hg add # add those 'u
nknown' 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 48: Line 51:
Exporting a patch: == Exporting a patch ==
Line 58: Line 61:
Network support: == Network support ==
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

QuickStart (last edited 2024-05-20 06:56:26 by AntonShestakov)