mirror of
https://github.com/facebook/sapling.git
synced 2024-10-06 23:07:18 +03:00
dirstate: don't write repo.currenttransaction to repo.dirstate if repo
is None (issue4983) Some hooks, such as post-init and post-clone, do not get a repo parameter in their environment. If there is no repo, there is no repo.currenttransaction(); attempting to retrieve it anyway was causing crashes. Now currenttransaction is only retrieved and written if the repo is not None.
This commit is contained in:
parent
4e3200d742
commit
f5fed5a270
@ -120,10 +120,11 @@ def _exthook(ui, repo, name, cmd, args, throw):
|
||||
env = {}
|
||||
|
||||
# make in-memory changes visible to external process
|
||||
tr = repo.currenttransaction()
|
||||
repo.dirstate.write(tr)
|
||||
if tr and tr.writepending():
|
||||
env['HG_PENDING'] = repo.root
|
||||
if repo is not None:
|
||||
tr = repo.currenttransaction()
|
||||
repo.dirstate.write(tr)
|
||||
if tr and tr.writepending():
|
||||
env['HG_PENDING'] = repo.root
|
||||
|
||||
for k, v in args.iteritems():
|
||||
if callable(v):
|
||||
|
@ -681,10 +681,19 @@ new tags must be visible in pretxncommit (issue3210)
|
||||
$ hg tag -f foo
|
||||
['a', 'foo', 'tip']
|
||||
|
||||
new commits must be visible in pretxnchangegroup (issue3428)
|
||||
post-init hooks must not crash (issue4983)
|
||||
This also creates the `to` repo for the next test block.
|
||||
|
||||
$ cd ..
|
||||
$ hg init to
|
||||
$ cat << EOF >> hgrc-with-post-init-hook
|
||||
> [hooks]
|
||||
> post-init = printenv.py post-init
|
||||
> EOF
|
||||
$ HGRCPATH=hgrc-with-post-init-hook hg init to
|
||||
post-init hook: HG_ARGS=init to HG_OPTS={'insecure': None, 'remotecmd': '', 'ssh': ''} HG_PATS=['to'] HG_RESULT=0
|
||||
|
||||
new commits must be visible in pretxnchangegroup (issue3428)
|
||||
|
||||
$ echo '[hooks]' >> to/.hg/hgrc
|
||||
$ echo 'prechangegroup = hg --traceback tip' >> to/.hg/hgrc
|
||||
$ echo 'pretxnchangegroup = hg --traceback tip' >> to/.hg/hgrc
|
||||
|
Loading…
Reference in New Issue
Block a user