Mercurial > hg
annotate tests/test-custom-filters.t @ 39270:37e56607cbb9
lfs: add a progress bar when searching for blobs to upload
The search itself can take an extreme amount of time if there are a lot of
revisions involved. I've got a local repo that took 6 minutes to push 1850
commits, and 60% of that time was spent here (there are ~70K files):
\ 58.1% wrapper.py: extractpointers line 297: pointers = extractpointers(...
| 57.7% wrapper.py: pointersfromctx line 352: for p in pointersfromctx(ct...
| 57.4% wrapper.py: pointerfromctx line 397: p = pointerfromctx(ctx, f, ...
\ 38.7% context.py: __contains__ line 368: if f not in ctx:
| 38.7% util.py: __get__ line 82: return key in self._manifest
| 38.7% context.py: _manifest line 1416: result = self.func(obj)
| 38.7% manifest.py: read line 472: return self._manifestctx.re...
\ 25.6% revlog.py: revision line 1562: text = rl.revision(self._node)
\ 12.8% revlog.py: _chunks line 2217: bins = self._chunks(chain, ...
| 12.0% revlog.py: decompressline 2112: ladd(decomp(buffer(data, ch...
\ 7.8% revlog.py: checkhash line 2232: self.checkhash(text, node, ...
| 7.8% revlog.py: hash line 2315: if node != self.hash(text, ...
| 7.8% revlog.py: hash line 2242: return hash(text, p1, p2)
\ 12.0% manifest.py: __init__ line 1565: self._data = manifestdict(t...
\ 16.8% context.py: filenode line 378: if not _islfs(fctx.filelog(...
| 15.7% util.py: __get__ line 706: return self._filelog
| 14.8% context.py: _filelog line 1416: result = self.func(obj)
| 14.8% localrepo.py: file line 629: return self._repo.file(self...
| 14.8% filelog.py: __init__ line 1134: return filelog.filelog(self...
| 14.5% revlog.py: __init__ line 24: censorable=True)
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Fri, 24 Aug 2018 17:45:46 -0400 |
parents | 6e713711331b |
children | ee9981bc8b44 |
rev | line source |
---|---|
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
1 $ hg init |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
2 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
3 $ cat > .hg/hgrc <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
4 > [extensions] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
5 > prefixfilter = prefix.py |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
6 > [encode] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
7 > *.txt = stripprefix: Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
8 > [decode] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
9 > *.txt = insertprefix: Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
10 > EOF |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
11 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
12 $ cat > prefix.py <<EOF |
26587
56b2bcea2529
error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
12316
diff
changeset
|
13 > from mercurial import error |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
14 > def stripprefix(s, cmd, filename, **kwargs): |
38071
6e713711331b
py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
15 > header = b'%s\n' % cmd |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
16 > if s[:len(header)] != header: |
38071
6e713711331b
py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
17 > raise error.Abort(b'missing header "%s" in %s' % (cmd, filename)) |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
18 > return s[len(header):] |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
19 > def insertprefix(s, cmd): |
38071
6e713711331b
py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
20 > return b'%s\n%s' % (cmd, s) |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
21 > def reposetup(ui, repo): |
38071
6e713711331b
py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
22 > repo.adddatafilter(b'stripprefix:', stripprefix) |
6e713711331b
py3: add b'' prefixes in tests/test-custom-filters.t
Pulkit Goyal <7895pulkit@gmail.com>
parents:
26587
diff
changeset
|
23 > repo.adddatafilter(b'insertprefix:', insertprefix) |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
24 > EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
25 |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
26 $ cat > .hgignore <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
27 > .hgignore |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
28 > prefix.py |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
29 > prefix.pyc |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
30 > EOF |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
31 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
32 $ cat > stuff.txt <<EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
33 > Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
34 > Some stuff to ponder very carefully. |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
35 > EOF |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
36 $ hg add stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
37 $ hg ci -m stuff |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
38 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
39 Repository data: |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
40 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
41 $ hg cat stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
42 Some stuff to ponder very carefully. |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
43 |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
44 Fresh checkout: |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
45 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
46 $ rm stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
47 $ hg up -C |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
48 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
49 $ cat stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
50 Copyright 2046, The Masters |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
51 Some stuff to ponder very carefully. |
12125
e5ccb9ea8266
test-custom-filter: heredoc is not required for single line operations
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12124
diff
changeset
|
52 $ echo "Very very carefully." >> stuff.txt |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
53 $ hg stat |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
54 M stuff.txt |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
55 |
12125
e5ccb9ea8266
test-custom-filter: heredoc is not required for single line operations
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
12124
diff
changeset
|
56 $ echo "Unauthorized material subject to destruction." > morestuff.txt |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
57 |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
58 Problem encoding: |
6066
f3a8b5360100
Strip filter name from command before passing to filter function.
Jesse Glick <jesse.glick@sun.com>
parents:
diff
changeset
|
59 |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
60 $ hg add morestuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
61 $ hg ci -m morestuff |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
62 abort: missing header "Copyright 2046, The Masters" in morestuff.txt |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
12125
diff
changeset
|
63 [255] |
12124
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
64 $ hg stat |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
65 M stuff.txt |
7edda6c7985d
tests: unify test-custom-filters
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8742
diff
changeset
|
66 A morestuff.txt |