Mercurial > hgsubversion
comparison tests/test_push_command.py @ 1539:0ebcc5bbf692
tests: when making a `memctx`, make sure to use a single repo instance
The way self.repo is dynamic produces bad lock behavior because the
`context.memctx` ends up with a different instance than self in
`localrepo.commitctx`, which means the callbacks in the `memctx` get
an unlocked repo instance. This causes lock warning failures. When
it's not a code freeze for core, we should probably:
* Make lock failures hard, not just warnings
* Stop holding a repo reference in memctx, or otherwise check it's the same
instance as `self` during `localrepo.commitctx`
That's my best guess based on the (very hard to debug) test failures here.
| author | Augie Fackler <raf@durin42.com> |
|---|---|
| date | Sat, 28 Oct 2017 21:34:52 -0400 |
| parents | 1122a90e329a |
| children | 8410a978c650 |
comparison
equal
deleted
inserted
replaced
| 1538:b0eca4d96a53 | 1539:0ebcc5bbf692 |
|---|---|
| 275 data=path, | 275 data=path, |
| 276 islink=False, | 276 islink=False, |
| 277 isexec=False, | 277 isexec=False, |
| 278 copied=False) | 278 copied=False) |
| 279 oldtiphash = self.repo['default'].node() | 279 oldtiphash = self.repo['default'].node() |
| 280 ctx = context.memctx(self.repo, | 280 lr = self.repo |
| 281 (self.repo[0].node(), revlog.nullid,), | 281 ctx = context.memctx(lr, |
| 282 (lr[0].node(), revlog.nullid,), | |
| 282 'automated test', | 283 'automated test', |
| 283 ['gamma', ], | 284 ['gamma', ], |
| 284 filectxfn, | 285 filectxfn, |
| 285 'testy', | 286 'testy', |
| 286 '2008-12-21 16:32:00 -0500', | 287 '2008-12-21 16:32:00 -0500', |
| 287 {'branch': 'localbranch', }) | 288 {'branch': 'localbranch', }) |
| 288 newhash = self.repo.commitctx(ctx) | 289 newhash = lr.commitctx(ctx) |
| 289 ctx = context.memctx(self.repo, | 290 ctx = context.memctx(lr, |
| 290 (newhash, revlog.nullid), | 291 (newhash, revlog.nullid), |
| 291 'automated test2', | 292 'automated test2', |
| 292 ['delta', ], | 293 ['delta', ], |
| 293 filectxfn, | 294 filectxfn, |
| 294 'testy', | 295 'testy', |
| 295 '2008-12-21 16:32:00 -0500', | 296 '2008-12-21 16:32:00 -0500', |
| 296 {'branch': 'localbranch', }) | 297 {'branch': 'localbranch', }) |
| 297 newhash = self.repo.commitctx(ctx) | 298 newhash = lr.commitctx(ctx) |
| 298 repo = self.repo | 299 repo = self.repo |
| 299 hg.update(repo, newhash) | 300 hg.update(repo, newhash) |
| 300 commands.push(repo.ui, repo) | 301 commands.push(repo.ui, repo) |
| 301 self.assertEqual(self.repo['tip'].parents()[0].parents()[0].node(), oldtiphash) | 302 self.assertEqual(self.repo['tip'].parents()[0].parents()[0].node(), oldtiphash) |
| 302 self.assertEqual(self.repo['tip'].files(), ['delta', ]) | 303 self.assertEqual(self.repo['tip'].files(), ['delta', ]) |
