Mercurial > hg
view tests/test-xdg.t @ 35035:96dcc78468e3 stable
tr-summary: keep a weakref to the unfiltered repository
Repoview can have a different life cycle, causing issue in some corner
cases. The particular instance that revealed this comes from localpeer. The
localpeer hold a reference to the unfiltered repository, but calling 'local()'
will create an on-demand 'visible' repoview. That repoview can be garbaged
collected any time. Here is a simplified step by step reproduction::
1) tr = peer.local().transaction('foo')
2) tr.close()
After (1), the repoview object is garbage collected, so weakref used in (2)
point to nothing.
Thanks to Sean Farley for helping raising and debugging this issue.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Fri, 24 Nov 2017 21:51:41 -0500 |
parents | 7d8da7b54dc0 |
children | a4b3b8dee0a8 |
line wrap: on
line source
#if no-windows no-osx $ mkdir -p xdgconf/hg $ echo '[ui]' > xdgconf/hg/hgrc $ echo 'username = foobar' >> xdgconf/hg/hgrc $ XDG_CONFIG_HOME="`pwd`/xdgconf" ; export XDG_CONFIG_HOME $ unset HGRCPATH $ hg config ui.username 2>/dev/null foobar #endif