view tests/fixtures/project_root_at_repo_root.svndump @ 1550:67b28d657f62

sqliterevmap: break ".hashes()" cycle in a safer way The `fromsvn()` revset implementation could cause weakref error when using sqliterevmap like: File "hgsubversion/util.py", line 357, in <lambda> return subset.filter(lambda r: tonode(r) in hashes) File "hgsubversion/maps.py", line 542, in __contains__ return self.get(key) != None File "hgsubversion/maps.py", line 533, in get for row in self.revmap._query( ReferenceError: weakly-referenced object no longer exists Basically the seemingly harmless assignment could break surprisingly: # dangerous: `hashes` does not have a reference of `meta.revmap` and may # become unavailable after `meta`, `revmap` being released by refcount. hashes = meta.revmap.hashes() The above syntax is nice to support while avoiding cycles is also nice. This patch removes `revmap._hashes` so the revmap no longer owns a reference of a `ReverseRevMap` object so the `ReverseRevMap` object no longer needs to use weakref for `self.revmap`. This could actually be caught by `comprehensive/test_sqlite_revmap.py`. I was not careful enough verifying the "fromsvn()" patch.
author Jun Wu <quark@fb.com>
date Thu, 21 Dec 2017 17:39:52 -0800
parents 537de0300510
children
line wrap: on
line source

SVN-fs-dump-format-version: 2

UUID: e72213dc-9746-48d2-846a-a19c2c569b0d

Revision-number: 0
Prop-content-length: 56
Content-length: 56

K 8
svn:date
V 27
2008-10-09T14:46:06.470091Z
PROPS-END

Revision-number: 1
Prop-content-length: 111
Content-length: 111

K 7
svn:log
V 11
Empty dirs.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:07.147162Z
PROPS-END

Node-path: branches
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10

PROPS-END


Node-path: tags
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10

PROPS-END


Node-path: trunk
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10

PROPS-END


Revision-number: 2
Prop-content-length: 114
Content-length: 114

K 7
svn:log
V 14
Initial Files.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:08.147874Z
PROPS-END

Node-path: trunk/alpha
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: 8717538ba2f18a613eaa4892e8d178f7
Content-length: 25

PROPS-END
This is alpha.


Node-path: trunk/beta
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 14
Text-content-md5: 952a13b33256f343982d0a8f0e0af277
Content-length: 24

PROPS-END
This is beta.


Node-path: trunk/delta
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: e48d0bca73f04e800e7bd9fb58d49a62
Content-length: 25

PROPS-END
This is delta.


Revision-number: 3
Prop-content-length: 110
Content-length: 110

K 7
svn:log
V 10
Tag rev 1.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:10.131807Z
PROPS-END

Node-path: tags/rev1
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: trunk
Prop-content-length: 34
Content-length: 34

K 13
svn:mergeinfo
V 0

PROPS-END


Node-path: tags/rev1/alpha
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/alpha
Text-copy-source-md5: 8717538ba2f18a613eaa4892e8d178f7


Node-path: tags/rev1/beta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/beta
Text-copy-source-md5: 952a13b33256f343982d0a8f0e0af277


Node-path: tags/rev1/delta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/delta
Text-copy-source-md5: e48d0bca73f04e800e7bd9fb58d49a62


Revision-number: 4
Prop-content-length: 116
Content-length: 116

K 7
svn:log
V 16
Branch to crazy.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:12.131174Z
PROPS-END

Node-path: branches/crazy
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: trunk
Prop-content-length: 34
Content-length: 34

K 13
svn:mergeinfo
V 0

PROPS-END


Node-path: branches/crazy/alpha
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/alpha
Text-copy-source-md5: 8717538ba2f18a613eaa4892e8d178f7


Node-path: branches/crazy/beta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/beta
Text-copy-source-md5: 952a13b33256f343982d0a8f0e0af277


Node-path: branches/crazy/delta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/delta
Text-copy-source-md5: e48d0bca73f04e800e7bd9fb58d49a62


Revision-number: 5
Prop-content-length: 108
Content-length: 108

K 7
svn:log
V 9
Add gamma
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:13.143196Z
PROPS-END

Node-path: trunk/gamma
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: 255b705986e84fbb13db9c5a832739ae
Content-length: 25

PROPS-END
This is gamma.


Revision-number: 6
Prop-content-length: 108
Content-length: 108

K 7
svn:log
V 9
Add omega
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:14.144244Z
PROPS-END

Node-path: branches/crazy/omega
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: 22219e00c8dbb47ce790f0eb658e8014
Content-length: 25

PROPS-END
This is omega.


Revision-number: 7
Prop-content-length: 121
Content-length: 121

K 7
svn:log
V 21
Branch to more_crazy.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:16.135900Z
PROPS-END

Node-path: branches/more_crazy
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: trunk
Prop-content-length: 34
Content-length: 34

K 13
svn:mergeinfo
V 0

PROPS-END


Node-path: branches/more_crazy/alpha
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/alpha
Text-copy-source-md5: 8717538ba2f18a613eaa4892e8d178f7


Node-path: branches/more_crazy/beta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/beta
Text-copy-source-md5: 952a13b33256f343982d0a8f0e0af277


Node-path: branches/more_crazy/delta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/delta
Text-copy-source-md5: e48d0bca73f04e800e7bd9fb58d49a62


Node-path: branches/more_crazy/gamma
Node-kind: file
Node-action: add
Node-copyfrom-rev: 5
Node-copyfrom-path: trunk/gamma
Text-copy-source-md5: 255b705986e84fbb13db9c5a832739ae