##// END OF EJS Templates
copies: add config option for writing copy metadata to file and/or changset...
copies: add config option for writing copy metadata to file and/or changset This introduces a config option that lets you choose to write copy metadata to the changeset extras instead of to filelog. There's also an option to write it to both places. I imagine that may possibly be useful when transitioning an existing repo. The copy metadata is stored as two fields in extras: one for copies since p1 and one for copies since p2. I may need to add more information later in order to make copy tracing faster. Specifically, I'm thinking out recording which files were added or removed so that copies._chaincopies() doesn't have to look at the manifest for that. But that would just be an optimization and that can be added once we know if it's necessary. I have also considered saving space by using replacing the destination file path by an index into the "files" list, but that can also be changed later (but before the feature is ready to release). Differential Revision: https://phab.mercurial-scm.org/D6183

File last commit:

r41885:c70bdd22 default
r42317:0e41f40b default
Show More
test-patch-offset.t
82 lines | 1.7 KiB | text/troff | Tads3Lexer
/ tests / test-patch-offset.t
Matt Mackall
tests: unify test-patch-offset
r12477
$ cat > writepatterns.py <<EOF
> import sys
>
> path = sys.argv[1]
> patterns = sys.argv[2:]
>
Pulkit Goyal
py3: replace file() with open() in test-patch-offset.t...
r36037 > fp = open(path, 'wb')
Matt Mackall
tests: unify test-patch-offset
r12477 > for pattern in patterns:
> count = int(pattern[0:-1])
Pulkit Goyal
py3: encode sys.argv to bytes using .encode()...
r38384 > char = pattern[-1].encode('utf8') + b'\n'
FUJIWARA Katsunori
tests: bulk changes to avoid whitespace errors of check-code.py...
r41885 > fp.write(char * count)
Matt Mackall
tests: unify test-patch-offset
r12477 > fp.close()
> EOF
prepare repo
$ hg init a
$ cd a
These initial lines of Xs were not in the original file used to generate
the patch. So all the patch hunks need to be applied to a constant offset
within this file. If the offset isn't tracked then the hunks can be
applied to the wrong lines of this file.
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" ../writepatterns.py a 34X 10A 1B 10A 1C 10A 1B 10A 1D 10A 1B 10A 1E 10A 1B 10A
Matt Mackall
tests: unify test-patch-offset
r12477 $ hg commit -Am adda
adding a
This is a cleaner patch generated via diff
In this case it reproduces the problem when
the output of hg export does not
import patch
$ hg import -v -m 'b' -d '2 0' - <<EOF
> --- a/a 2009-12-08 19:26:17.000000000 -0800
> +++ b/a 2009-12-08 19:26:17.000000000 -0800
> @@ -9,7 +9,7 @@
> A
> A
> B
> -A
> +a
> A
> A
> A
> @@ -53,7 +53,7 @@
> A
> A
> B
> -A
> +a
> A
> A
> A
> @@ -75,7 +75,7 @@
> A
> A
> B
> -A
> +a
> A
> A
> A
> EOF
applying patch from stdin
patching file a
Hunk #1 succeeded at 43 (offset 34 lines).
Hunk #2 succeeded at 87 (offset 34 lines).
Hunk #3 succeeded at 109 (offset 34 lines).
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Matt Mackall
tests: unify test-patch-offset
r12477 a
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Greg Ward
import: simplify status reporting logic (and make it more I18N-friendly)...
r15194 created 189885cecb41
Matt Mackall
tests: unify test-patch-offset
r12477
compare imported changes against reference file
Matt Harbison
tests: quote PYTHON usage...
r39743 $ "$PYTHON" ../writepatterns.py aref 34X 10A 1B 1a 9A 1C 10A 1B 10A 1D 10A 1B 1a 9A 1E 10A 1B 1a 9A
Matt Mackall
tests: unify test-patch-offset
r12477 $ diff aref a
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..