README
author Patrick Mezard <pmezard@gmail.com>
Fri, 27 May 2011 21:50:10 +0200
branchstable
changeset 958 e763012a55e5
parent 886 a8ae86023c67
child 984 a4ea5c2d3ff3
child 1345 ea8abd9436ee
permissions -rw-r--r--
patch: use temporary files to handle intermediate copies git patches may require copies to be handled out-of-order. For instance, take the following sequence: * modify a * copy a into b Here, we have to generate b from a before its modification. To do so, applydiff() was scanning for copy metadata and performing the copies before processing the other changes in-order. While smart and efficient, this approach complicates things by handling file copies and file creations at different places and times. While a new file must not exist before being patched a copied file already exists before applying the first hunk. Instead of copying the files at their final destination before patching, we store them in a temporary file location and retrieve them when patching. The filestore always stores file content in real files but nothing prevents adding a cache layer. The filestore class was kept separate from fsbackend for at least two reasons: - This class is likely to be reused as a temporary result store for a future repository patching call (entries just have to be extended to contain copy sources). - Delegating this role to backends might be more efficient in a repository backend case: the source files are already available in the repository itself and do not need to be copied again. It also means that third-parties backend would have to implement two other methods. If we ever decide to merge the filestore feature into backend, a minimalistic approach would be to compose with filestore directly. Keep in mind this copy overhead only applies for copy/rename sources, and may even be reduced to copy sources which have to handled ahead of time. [ original upstream message ]
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
190
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     1
$Id$
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     2
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     3
keyword extension for Mercurial SCM
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     4
===================================
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
     5
561
efeb09cb3760 Refer users to distribution or 0.9.2compat branch
Christian Ebert <blacktrash@gmx.net>
parents: 321
diff changeset
     6
CAVEAT: Please use the keyword extension distributed with
efeb09cb3760 Refer users to distribution or 0.9.2compat branch
Christian Ebert <blacktrash@gmx.net>
parents: 321
diff changeset
     7
Mercurial > 1.0.2!
efeb09cb3760 Refer users to distribution or 0.9.2compat branch
Christian Ebert <blacktrash@gmx.net>
parents: 321
diff changeset
     8
For Mercurial 0.9.2 to 1.0.2 install the 0.9.2compat branch.
efeb09cb3760 Refer users to distribution or 0.9.2compat branch
Christian Ebert <blacktrash@gmx.net>
parents: 321
diff changeset
     9
efeb09cb3760 Refer users to distribution or 0.9.2compat branch
Christian Ebert <blacktrash@gmx.net>
parents: 321
diff changeset
    10
The default and stable branches are meant for development.
efeb09cb3760 Refer users to distribution or 0.9.2compat branch
Christian Ebert <blacktrash@gmx.net>
parents: 321
diff changeset
    11
190
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    12
install
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    13
-------
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    14
562
b1aa7b64890b Add run-tests.py from main and update README
Christian Ebert <blacktrash@gmx.net>
parents: 561
diff changeset
    15
Run "python setup.py install".
190
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    16
See also "pyton setup.py --help".
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    17
Then add the line:
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    18
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    19
[extensions]
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    20
keyword = /path/to/hgkw/keyword.py
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    21
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    22
to your hgrc, where /path/to/ is somewhere in your $PYTHONPATH.
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    23
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    24
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    25
first steps and online help
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    26
---------------------------
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    27
321
ce5474dd2a9a README: fix help instruction
Christian Ebert <blacktrash@gmx.net>
parents: 239
diff changeset
    28
$ hg help keyword 
190
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    29
$ hg kwdemo
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    30
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    31
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    32
testing
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    33
-------
100d35923d5f Add README
Christian Ebert <blacktrash@gmx.net>
parents:
diff changeset
    34
562
b1aa7b64890b Add run-tests.py from main and update README
Christian Ebert <blacktrash@gmx.net>
parents: 561
diff changeset
    35
$ cd tests
886
a8ae86023c67 README: minimal test command line
Christian Ebert <blacktrash@gmx.net>
parents: 562
diff changeset
    36
$ ./run-tests.py --with-hg=/path/to/hg