Mercurial > hgsubversion
annotate README @ 628:4375d37fea1e
svnrepo: fix issue 187: ignore pushable bookmarks in hg 1.6
Mercurial 1.6 introduces two new methods for repo subclasses -- pushkey and
listkeys -- to support pushing/pulling bookmarks between hg repositories.
(See mpm's blog post http://www.selenic.com/blog/?p=644 for details.)
Unfortunately, these are only defined in the subclasses, and not in the repo
base class. Perhaps the bookmarks extension should also be checking the repo
for pushkeys capability by calling repo.capable('pushkey') to check.
It doesn't.
In the meantime, we can implement these ourselves.
svnrepo should declare these methods since it is derived directly from repo.
They do nothing -- listkeys merely returns an empty dictionary; pushkey
returns False; this is the behaviour of httprepo or sshrepo when the remote
end is running an earlier version of Mercurial.
svnlocalrepo should not declare these methods since it derives from a
subclass of localrepo, which already will have them, unless some other badly
behaved extensions are doing something intensely weird.
author | James McKay <code@jamesmckay.net> |
---|---|
date | Sun, 04 Jul 2010 18:21:20 +0100 |
parents | ebecf034e52a |
children | f12257bf8b91 |
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*. |