Mercurial > hg
view tests/lockdelay.py @ 29629:b33c0c38d68f stable
update: fix bug when update tries to modify folder symlink
In 1e4512eac59e0114bc60ecbcdc4157fc0fa0439d, I introduced a new bug:
when a symlink points to a folder in commit A and to another folder
in commit B, while updating from A to B, Mercurial will try to use
removedir on this symlink, which will fail. This is a very bad bug,
since it basically renders symlinks to folders unusable in repos.
Added test case fails without a fix and passes with it.
author | Kostia Balytskyi <ikostia@fb.com> |
---|---|
date | Thu, 21 Jul 2016 15:55:47 -0700 |
parents | d493d64757eb |
children | a76d5ba7ac43 |
line wrap: on
line source
# Dummy extension that adds a delay after acquiring a lock. # # This extension can be used to test race conditions between lock acquisition. from __future__ import absolute_import import os import time from mercurial import ( lock as lockmod, ) class delaylock(lockmod.lock): def lock(self): delay = float(os.environ.get('HGPRELOCKDELAY', '0.0')) if delay: time.sleep(delay) res = super(delaylock, self).lock() delay = float(os.environ.get('HGPOSTLOCKDELAY', '0.0')) if delay: time.sleep(delay) return res def extsetup(ui): lockmod.lock = delaylock