annotate README @ 611:b70f7c82b9b8

svncommands: fix layering violation & tweak error messages. Importing `SubversionException' directly from `svn.core' is a layering violation: Anything within the Subversion bindings should only be accessed via svnwrap. The advantages to doing this are twofold: we only need to intercept missing bindings in one place, and we have the option of supporting alternate bindings. As an added bonus, the recently-added support for intercepting missing Subversion bindings actually works. Two error messages are tweaked to remove `It appears...' from one error message (just blaming Subversion instead) and make both errors include the URL in the suggested command line.
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Fri, 14 May 2010 20:22:32 +0200
parents ebecf034e52a
children f12257bf8b91
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
288
982c46e7d167 BitBucket supports having the ReST declaration in a comment.
Augie Fackler <durin42@gmail.com>
parents: 280
diff changeset
1 .. -*-restructuredtext-*-
3
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
2
192
246ca614f04e Promote first heading to a real title.
Martin Geisler <mg@daimi.au.dk>
parents: 191
diff changeset
3 ============
246ca614f04e Promote first heading to a real title.
Martin Geisler <mg@daimi.au.dk>
parents: 191
diff changeset
4 hgsubversion
246ca614f04e Promote first heading to a real title.
Martin Geisler <mg@daimi.au.dk>
parents: 191
diff changeset
5 ============
246ca614f04e Promote first heading to a real title.
Martin Geisler <mg@daimi.au.dk>
parents: 191
diff changeset
6
161
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
7 hgsubversion is an extension for Mercurial that allows using Mercurial
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
8 as a Subversion client.
0
f2636cfed115 Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
9
515
9fadbf0686a1 README: updated reason users might want to avoid hgsubversion
Augie Fackler <durin42@gmail.com>
parents: 477
diff changeset
10 At this point, hgsubversion is usable by users reasonably familiar with
9fadbf0686a1 README: updated reason users might want to avoid hgsubversion
Augie Fackler <durin42@gmail.com>
parents: 477
diff changeset
11 Mercurial as a VCS. It's not recommended to dive into hgsubversion as an
9fadbf0686a1 README: updated reason users might want to avoid hgsubversion
Augie Fackler <durin42@gmail.com>
parents: 477
diff changeset
12 introduction to Mercurial, since hgsubversion "bends the rules" a little
9fadbf0686a1 README: updated reason users might want to avoid hgsubversion
Augie Fackler <durin42@gmail.com>
parents: 477
diff changeset
13 and violates some of the typical assumptions of early Mercurial users.
2
89f88df794d3 Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
14
5
0548662e2f34 Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents: 4
diff changeset
15 Installation
0548662e2f34 Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents: 4
diff changeset
16 ------------
161
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
17 You need to have Subversion installed with the SWIG Python bindings
476
64cc119d8a9e README: Mercurial 1.3 is no longer in development
Martin Geisler <mg@lazybytes.net>
parents: 391
diff changeset
18 from Subversion 1.5 or later. You need Mercurial 1.3 or later.
5
0548662e2f34 Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents: 4
diff changeset
19
0548662e2f34 Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents: 4
diff changeset
20 .. _mercurial: http://selenic.com/repo/hg
53
b61d49e3f91c crew-stable does not have what I need after all. Oops.
Augie Fackler <durin42@gmail.com>
parents: 50
diff changeset
21 .. _mercurial-stable: http://selenic.com/repo/hg-stable
5
0548662e2f34 Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents: 4
diff changeset
22 .. _crew: http://hg.intevation.org/mercurial/crew
0548662e2f34 Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents: 4
diff changeset
23 .. _crew-stable: http://hg.intevation.org/mercurial/crew-stable
0548662e2f34 Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents: 4
diff changeset
24
161
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
25 If you are unfamiliar with installing Mercurial extensions, please see
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
26 the UsingExtensions_ page in the Mercurial wiki. Look at the example
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
27 for specifying an absolute path near the bottom of the page. You want
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
28 to give the path to the top level of your clone of this repository.
5
0548662e2f34 Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents: 4
diff changeset
29
477
3855865ba53d README: update URL to Mercurial wiki
Martin Geisler <mg@lazybytes.net>
parents: 476
diff changeset
30 .. _UsingExtensions: http://mercurial.selenic.com/wiki/UsingExtensions
5
0548662e2f34 Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents: 4
diff changeset
31
161
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
32 Before using hgsubversion, I *strongly* encourage you to run the
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
33 automated tests. Just use nose_ if you have it (or ``easy_install
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
34 nose`` if you want it), or use ``python tests/run.py`` to run the
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
35 suite with the conventional test runner. Note that because I use nose,
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
36 there's a lot of stdout spew in the tests right now. The important
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
37 part is that all the tests pass.
30
9867250e0a4a Add a segment on running the tests before use.
Augie Fackler <durin42@gmail.com>
parents: 24
diff changeset
38
9867250e0a4a Add a segment on running the tests before use.
Augie Fackler <durin42@gmail.com>
parents: 24
diff changeset
39 .. _nose: http://code.google.com/p/python-nose/
9867250e0a4a Add a segment on running the tests before use.
Augie Fackler <durin42@gmail.com>
parents: 24
diff changeset
40
3
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
41 Basic Use
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
42 -----------
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
43 Get a new clone of an svn server::
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
44
258
4ab27ddbae51 Updated readme a little bit for the new UI.
Augie Fackler <durin42@gmail.com>
parents: 192
diff changeset
45 $ hg clone <svn URI> [destination]
3
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
46
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
47 Real example::
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
48
391
dbdcb97b38af README: svn+http is outdated.
Augie Fackler <durin42@gmail.com>
parents: 288
diff changeset
49 $ hg clone http://python-nose.googlecode.com/svn nose-hg
3
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
50
161
47127255145c Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents: 149
diff changeset
51 Note, you should pull from the root subversion directory, not specific
391
dbdcb97b38af README: svn+http is outdated.
Augie Fackler <durin42@gmail.com>
parents: 288
diff changeset
52 folders (such as trunk).
113
31923684e4dc Better note on how to pull a repository.
John Paulett <john.paulett@gmail.com>
parents: 53
diff changeset
53
3
735fdc6c130a Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents: 2
diff changeset
54 Pull new revisions into an already-converted repo::
2
89f88df794d3 Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
55
258
4ab27ddbae51 Updated readme a little bit for the new UI.
Augie Fackler <durin42@gmail.com>
parents: 192
diff changeset
56 $ hg pull
2
89f88df794d3 Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
57
191
0e912d37cbab Mark command line and svn:externals as literal text.
Martin Geisler <mg@daimi.au.dk>
parents: 190
diff changeset
58 For more information, see ``hg help svn`` while in a converted repo.
177
71d170253a6f README: document svn:externals support
Patrick Mezard <pmezard@gmail.com>
parents: 161
diff changeset
59
191
0e912d37cbab Mark command line and svn:externals as literal text.
Martin Geisler <mg@daimi.au.dk>
parents: 190
diff changeset
60 Support for ``svn:externals``
0e912d37cbab Mark command line and svn:externals as literal text.
Martin Geisler <mg@daimi.au.dk>
parents: 190
diff changeset
61 -----------------------------
0e912d37cbab Mark command line and svn:externals as literal text.
Martin Geisler <mg@daimi.au.dk>
parents: 190
diff changeset
62 All ``svn:externals`` properties are serialized into a single
565
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
63 ``.hgsvnexternals`` file having the following syntax::
190
078425d0187d Fix reST syntax error in README.
Martin Geisler <mg@daimi.au.dk>
parents: 189
diff changeset
64
078425d0187d Fix reST syntax error in README.
Martin Geisler <mg@daimi.au.dk>
parents: 189
diff changeset
65 [.]
565
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
66 common1 http://path/to/external/svn/repo1
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
67 ...additional svn:externals properties lines...
190
078425d0187d Fix reST syntax error in README.
Martin Geisler <mg@daimi.au.dk>
parents: 189
diff changeset
68 [dir2]
565
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
69 common2 -r123 http://path/to/external/svn/repo2
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
70 ...additional svn:externals properties lines...
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
71
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
72 A header line in brackets specifies the directory the property applies
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
73 to, where '.' indicates the project root directory. The property content
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
74 follows the header, **with every content line being prefixed by a single
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
75 space**. Note that the property lines have a format identical to
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
76 svn:externals properties as used in Subversion, and do not support the
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
77 hgsubversion extended svn+http:// URL format.
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
78
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
79 Issuing the command ``hg svn updateexternals`` with the
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
80 ``.hgsvnexternals`` example above would fetch the latest revision of
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
81 repo1 into the subdirectory ./common1, and revision 123 of repo2 into
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
82 dir2/common2. Note that ``.hgsvnexternals`` must be tracked by Mercurial
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
83 before this will work. If ``.hgsvnexternals`` is created or changed, it
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
84 will not be pushed to the related Subversion repository, *but its
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
85 contents will be used to update ``svn:externals`` properties on the
ebecf034e52a README: improved documentation of svn:externals support
Mark Edgington <edgimar@gmail.com>
parents: 515
diff changeset
86 related Subversion repository*.