Skip to content
Snippets Groups Projects
Commit 9f272bf3b342 authored by Durham Goode's avatar Durham Goode
Browse files

hooks: always include HG_PENDING

Previously we would only include HG_PENDING in the hook args if the
transaction's writepending() actually wrote something. This is a bad criteria,
since it's possible that a previous call to writepending() wrote stuff and the
hooks want to still see that.

The solution is to always have hooks execute within the scope of the pending
changes by always putting HG_PENDING in the environment.
parent e5a1df51bb25
No related branches found
No related tags found
No related merge requests found
......@@ -122,7 +122,8 @@
# make in-memory changes visible to external process
tr = repo.currenttransaction()
repo.dirstate.write(tr)
if tr and tr.writepending():
if tr:
tr.writepending()
env['HG_PENDING'] = repo.root
for k, v in args.iteritems():
......
......@@ -113,7 +113,7 @@
$ hg pull ../a
pulling from ../a
searching for changes
prechangegroup hook: HG_SOURCE=pull HG_TXNID=TXN:* HG_URL=file:$TESTTMP/a (glob)
prechangegroup hook: HG_PENDING=$TESTTMP/b HG_SOURCE=pull HG_TXNID=TXN:* HG_URL=file:$TESTTMP/a (glob)
adding changesets
adding manifests
adding file changes
......@@ -272,7 +272,7 @@
listkeys hook: HG_NAMESPACE=bookmarks HG_VALUES={'bar': '0000000000000000000000000000000000000000', 'foo': '0000000000000000000000000000000000000000'}
no changes found
pretxnopen hook: HG_TXNID=TXN:* HG_TXNNAME=push (glob)
prepushkey.forbid hook: HG_BUNDLE2=1 HG_KEY=baz HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000 HG_SOURCE=push HG_TXNID=TXN:* HG_URL=push (glob)
prepushkey.forbid hook: HG_BUNDLE2=1 HG_KEY=baz HG_NAMESPACE=bookmarks HG_NEW=0000000000000000000000000000000000000000 HG_PENDING=$TESTTMP/a HG_SOURCE=push HG_TXNID=TXN:* HG_URL=push (glob)
pushkey-abort: prepushkey hook exited with status 1
abort: exporting bookmark baz failed!
[255]
......@@ -306,7 +306,7 @@
$ hg pull ../a
pulling from ../a
searching for changes
prechangegroup.forbid hook: HG_SOURCE=pull HG_TXNID=TXN:* HG_URL=file:$TESTTMP/a (glob)
prechangegroup.forbid hook: HG_PENDING=$TESTTMP/b HG_SOURCE=pull HG_TXNID=TXN:* HG_URL=file:$TESTTMP/a (glob)
abort: prechangegroup.forbid hook exited with status 1
[255]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment