tests/test-issue1102.t
author Gregory Szorc <gregory.szorc@gmail.com>
Thu, 05 Apr 2018 16:31:45 -0700
changeset 37443 65250a66b55c
parent 28251 4591cd6b6794
child 49518 805419729e11
permissions -rw-r--r--
revlog: move censor logic into main revlog class Previously, the revlog class implemented dummy methods for various censor-related functionality. Revision censoring was (and will continue to be) only possible on filelog instances. So filelog implemented these methods to perform something reasonable. A problem with implementing censoring on filelog is that it assumes filelog is a revlog. Upcoming work to formalize the filelog interface will make this not true. Furthermore, the censoring logic is security-sensitive. I think action-at-a-distance with custom implementation of core revlog APIs in derived classes is a bit dangerous. I think at a minimum the censor logic should live in revlog.py. I was tempted to created a "censored revlog" class that basically pulled these methods out of filelog. But, I wasn't a huge fan of overriding core methods in child classes. A reason to do that would be performance. However, the censoring code only comes into play when: * hash verification fails * delta generation * applying deltas from changegroups The new code is conditional on an instance attribute. So the overhead for running the censored code when the revlog isn't censorable is an attribute lookup. All of these operations are at least a magnitude slower than a Python attribute lookup. So there shouldn't be a performance concern. Differential Revision: https://phab.mercurial-scm.org/D3151
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11847
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
     1
  $ rm -rf a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
     2
  $ hg init a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
     3
  $ cd a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
     4
  $ echo a > a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
     5
  $ hg ci -Am0
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
     6
  adding a
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
     7
  $ hg tag t1 # 1
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
     8
  $ hg tag --remove t1 # 2
6671
938eddd76237 tag: record tag we're superseding, if any (issue 1102)
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     9
11847
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
    10
  $ hg co 1
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
    11
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
13135
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 11847
diff changeset
    12
  $ hg tag -f -r0 t1
11847
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
    13
  $ hg tags
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
    14
  tip                                3:a49829c4fc11
1eb77c1a281f tests: unify test-1102
Martin Geisler <mg@lazybytes.net>
parents: 6671
diff changeset
    15
  t1                                 0:f7b1eb17ad24
6671
938eddd76237 tag: record tag we're superseding, if any (issue 1102)
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    16
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 13135
diff changeset
    17
  $ cd ..