Mercurial > hgsubversion
annotate README @ 69:63ece4ea25c9
hg_delta_editor: register copies only if files are unchanged between source and dest
Handle copies of items from revision X into revision Y where X is not the
parent of Y. This cannot happen in Mercurial because copies always happen
between parents and children. A file copy is recorded if:
1- Source and destination revs are in the same branch.
2- The file is unchanged (content, type, removal) through all revisions between
destination and source, not including source and destination.
Directory copies are registered only if the previous rules apply on all copied
items.
[1] is there because file copies across branches are meaningless in Mercurial
world. We could have tried to remap the source rev to a similar one in the
correct branch, but anyway the intent is wrong.
[2] is more questionable but I think it's better this way for we live in a
non-perfect svn world. In theory, 99% of copies out there should come from the
direct parent. But the direct parent is a fuzzy notion when you can have a
working directory composed of different directory at different revisions. So we
assume that stuff copied from past revisions exactly matching the content of
the direct parent revision is really copied from the parent revision. The
alternative would be to discard the copy, which would always happen unless
people kept updating the working directory after every commit (see
tests).
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Wed, 05 Nov 2008 13:37:08 +0100 |
parents | b61d49e3f91c |
children | 31923684e4dc |
rev | line source |
---|---|
4
23eccbc18d01
Misunderstood how this is supposed to work.
Augie Fackler <durin42@gmail.com>
parents:
3
diff
changeset
|
1 -*-restructuredtext-*- |
3
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
2 |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
3 About |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
4 ----- |
2
89f88df794d3
Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents:
0
diff
changeset
|
5 hgsubversion is an extension for Mercurial that allows using Mercurial as a |
89f88df794d3
Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents:
0
diff
changeset
|
6 Subversion client. |
0
f2636cfed115
Initial import of hgsubversion into a public repository.
Augie Fackler <durin42@gmail.com>
parents:
diff
changeset
|
7 |
2
89f88df794d3
Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents:
0
diff
changeset
|
8 Right now it is *not* ready for production use. You should only be using this if |
89f88df794d3
Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents:
0
diff
changeset
|
9 you're ready to hack on it, and go diving into the internals of Mercurial and/or |
89f88df794d3
Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents:
0
diff
changeset
|
10 Subversion. |
89f88df794d3
Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents:
0
diff
changeset
|
11 |
5
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
12 Installation |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
13 ------------ |
50
80b923ab242b
Drop any pretense of supporting svn 1.4.x.
Augie Fackler <durin42@gmail.com>
parents:
30
diff
changeset
|
14 You need to have Subversion installed with the SWIG Python bindings from Subversion 1.5 or later. |
53
b61d49e3f91c
crew-stable does not have what I need after all. Oops.
Augie Fackler <durin42@gmail.com>
parents:
50
diff
changeset
|
15 You need a recent Mercurial. At present, the required memctx and rebase code is in mercurial_ and crew_, but not crew-stable_ or mercurial-stable_. Install Mercurial from one of mercurial or crew if you have not already. Personally, I use crew_. |
5
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
16 |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
17 .. _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
|
18 .. _mercurial-stable: http://selenic.com/repo/hg-stable |
5
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
19 .. _crew: http://hg.intevation.org/mercurial/crew |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
20 .. _crew-stable: http://hg.intevation.org/mercurial/crew-stable |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
21 |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
22 If you are unfamiliar with installing Mercurial extensions, please see the UsingExtensions_ page in the Mercurial wiki. Look at the example for specifying an absolute path near the bottom of the page. You want to give the path to the top level of your clone of this repository. |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
23 |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
24 .. _UsingExtensions: http://www.selenic.com/mercurial/wiki/index.cgi/UsingExtensions |
0548662e2f34
Add a section on installation.
Augie Fackler <durin42@gmail.com>
parents:
4
diff
changeset
|
25 |
30
9867250e0a4a
Add a segment on running the tests before use.
Augie Fackler <durin42@gmail.com>
parents:
24
diff
changeset
|
26 Before using hgsubversion, I *strongly* encourage you to run the automated tests. Just use nose_ if you have it (or ``easy_install nose`` if you want it), or use ``python tests/run.py`` to run the suite with the conventional test runner. Note that because I use nose, there's a lot of stdout spew in the tests right now. The important part is that all the tests pass. |
9867250e0a4a
Add a segment on running the tests before use.
Augie Fackler <durin42@gmail.com>
parents:
24
diff
changeset
|
27 |
9867250e0a4a
Add a segment on running the tests before use.
Augie Fackler <durin42@gmail.com>
parents:
24
diff
changeset
|
28 .. _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
|
29 |
3
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
30 Basic Use |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
31 ----------- |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
32 Get a new clone of an svn server:: |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
33 |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
34 $ hg svnclone <svn URI> [destination] |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
35 |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
36 Real example:: |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
37 |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
38 $ hg svnclone http://python-nose.googlecode.com/svn nose-hg |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
39 |
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
40 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
|
41 |
3
735fdc6c130a
Change the readme to be reST.
Augie Fackler <durin42@gmail.com>
parents:
2
diff
changeset
|
42 $ hg svn 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
|
43 |
89f88df794d3
Cleanup to 80 columns and add a couple of notes on basic use.
Augie Fackler <durin42@gmail.com>
parents:
0
diff
changeset
|
44 For more information, see 'hg svn help' while in a converted repo. |