Mercurial > hg
annotate tests/lockdelay.py @ 30646:ea3540e66fd8
convert: config option for git rename limit
By default, Git applies rename and copy detection to 400 files. The
diff.renamelimit config option and -l argument to diff commands can
override this.
As part of converting some repositories in the wild, I was hitting
the default limit. Unfortunately, the warnings that Git prints in this
scenario are swallowed because the process running functionality in
common.py redirects stderr to /dev/null by default. This seems like
a bug, but a bug for another day.
This commit establishes a config option to send the rename limit
through to `git diff-tree`. The added tests demonstrate a too-low
rename limit doesn't result in copy metadata being recorded.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 18 Dec 2016 12:53:20 -0800 |
parents | a76d5ba7ac43 |
children | 2372284d9457 |
rev | line source |
---|---|
28289
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
1 # Dummy extension that adds a delay after acquiring a lock. |
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
2 # |
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
3 # This extension can be used to test race conditions between lock acquisition. |
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
4 |
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
5 from __future__ import absolute_import |
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
6 |
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
7 import os |
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
8 import time |
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
9 |
30068
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
10 def reposetup(ui, repo): |
28289
d493d64757eb
hg: obtain lock when creating share from pooled repo (issue5104)
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
11 |
30068
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
12 class delayedlockrepo(repo.__class__): |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
13 def lock(self): |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
14 delay = float(os.environ.get('HGPRELOCKDELAY', '0.0')) |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
15 if delay: |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
16 time.sleep(delay) |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
17 res = super(delayedlockrepo, self).lock() |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
18 delay = float(os.environ.get('HGPOSTLOCKDELAY', '0.0')) |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
19 if delay: |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
20 time.sleep(delay) |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
21 return res |
a76d5ba7ac43
pull: grab wlock during pull
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
28289
diff
changeset
|
22 repo.__class__ = delayedlockrepo |