Mercurial > hgsubversion
annotate README @ 937:fb6f6b7fa5a5
editor: implement file batons
The concept of current.file is incorrect, svn_delta.h documents open
file lifetime as:
* 5. When the producer calls @c open_file or @c add_file, either:
*
* (a) The producer must follow with any changes to the file
* (@c change_file_prop and/or @c apply_textdelta, as applicable),
* followed by a @c close_file call, before issuing any other file
* or directory calls, or
*
* (b) The producer must follow with a @c change_file_prop call if
* it is applicable, before issuing any other file or directory
* calls; later, after all directory batons including the root
* have been closed, the producer must issue @c apply_textdelta
* and @c close_file calls.
So, an open file can be kept open until after the root directory is
closed and have deltas applied afterwards. In the meantime, other files
may have been opened and patched, overwriting the current.file variable.
This patch fixes it by introducing file batons bound to file paths, and
using them to deduce the correct target in apply_textdelta(). In theory,
open files could be put in a staging area until they are closed and
moved in the RevisionData. But the current code registers files copied
during a directory copy as open files and these will not receive a
close_file() event. This separation will be enforced later.
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Sun, 23 Sep 2012 19:52:48 +0200 |
parents | 050f03a3bdf5 |
children | 3df6ed4e7561 |
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 ------------ |
679
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
17 You need to have either have Subversion 1.5 (or later) installed along with |
732
050f03a3bdf5
setup/README: update Subvertpy requirement to 0.7.4.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
679
diff
changeset
|
18 either Subvertpy 0.7.4 (or later) or the Subversion SWIG Python bindings. You |
679
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
19 need Mercurial 1.3 or later. |
5
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
20 |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
21 .. _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
|
22 .. _mercurial-stable: http://selenic.com/repo/hg-stable |
5
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
23 .. _crew: http://hg.intevation.org/mercurial/crew |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
24 .. _crew-stable: http://hg.intevation.org/mercurial/crew-stable |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
25 |
161
47127255145c
Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents:
149
diff
changeset
|
26 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
|
27 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
|
28 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
|
29 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
|
30 |
477
3855865ba53d
README: update URL to Mercurial wiki
Martin Geisler <mg@lazybytes.net>
parents:
476
diff
changeset
|
31 .. _UsingExtensions: http://mercurial.selenic.com/wiki/UsingExtensions |
5
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
32 |
161
47127255145c
Wrapped long lines in README.
Martin Geisler <mg@daimi.au.dk>
parents:
149
diff
changeset
|
33 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
|
34 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
|
35 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
|
36 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
|
37 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
|
38 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
|
39 |
9867250e0a4a
Add a segment on running the tests before use.
Augie Fackler <durin42@gmail.com>
parents:
24
diff
changeset
|
40 .. _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
|
41 |
679
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
42 You can check that hgsubversion is installed and properly activated using the |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
43 following command:: |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
44 |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
45 $ hg version --svn |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
46 Mercurial Distributed SCM (version ...) |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
47 |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
48 Copyright (C) 2005-2010 Matt Mackall <mpm@selenic.com> and others |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
49 This is free software; see the source for copying conditions. There is NO |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
50 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
51 |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
52 hgsubversion: ... |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
53 Subversion: ... |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
54 bindings: Subvertpy ... |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
55 |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
56 If your bindings are listed as `SWIG`, please consider installing Subvertpy_. |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
57 |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
58 .. _Subvertpy: http://pypi.python.org/pypi/subvertpy |
0b4e323ebedd
README: mention Subvertpy.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
662
diff
changeset
|
59 |
662
a8d5eec1326b
README: remove usage instructions, and refer to the help topic instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
646
diff
changeset
|
60 Further Reading |
a8d5eec1326b
README: remove usage instructions, and refer to the help topic instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
646
diff
changeset
|
61 --------------- |
3
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
62 |
662
a8d5eec1326b
README: remove usage instructions, and refer to the help topic instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
646
diff
changeset
|
63 More information on how to use hgsubversion is available from within Mercurial |
a8d5eec1326b
README: remove usage instructions, and refer to the help topic instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
646
diff
changeset
|
64 in the `subversion` help topic. To view it, use:: |
3
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
65 |
662
a8d5eec1326b
README: remove usage instructions, and refer to the help topic instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
646
diff
changeset
|
66 $ hg help subversion |
3
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
67 |
662
a8d5eec1326b
README: remove usage instructions, and refer to the help topic instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
646
diff
changeset
|
68 The Restructured Text source for this topic is also available in the file |
a8d5eec1326b
README: remove usage instructions, and refer to the help topic instead.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
646
diff
changeset
|
69 ``hgsubverson/help/subversion.rst``. |