Show More
@@ -1576,6 +1576,15 b' def commit(ui, repo, *pats, **opts):' | |||
|
1576 | 1576 | |
|
1577 | 1577 | Returns 0 on success, 1 if nothing changed. |
|
1578 | 1578 | """ |
|
1579 | wlock = lock = None | |
|
1580 | try: | |
|
1581 | wlock = repo.wlock() | |
|
1582 | lock = repo.lock() | |
|
1583 | return _docommit(ui, repo, *pats, **opts) | |
|
1584 | finally: | |
|
1585 | release(lock, wlock) | |
|
1586 | ||
|
1587 | def _docommit(ui, repo, *pats, **opts): | |
|
1579 | 1588 | if opts.get('interactive'): |
|
1580 | 1589 | opts.pop('interactive') |
|
1581 | 1590 | cmdutil.dorecord(ui, repo, commit, None, False, |
@@ -205,7 +205,7 b' Aborting lock does not prevent fncache w' | |||
|
205 | 205 | $ cat > exceptionext.py <<EOF |
|
206 | 206 | > import os |
|
207 | 207 | > from mercurial import commands, error |
|
208 | > from mercurial.extensions import wrapfunction | |
|
208 | > from mercurial.extensions import wrapcommand, wrapfunction | |
|
209 | 209 | > |
|
210 | 210 | > def lockexception(orig, vfs, lockname, wait, releasefn, *args, **kwargs): |
|
211 | 211 | > def releasewrap(): |
@@ -219,6 +219,22 b' Aborting lock does not prevent fncache w' | |||
|
219 | 219 | > |
|
220 | 220 | > cmdtable = {} |
|
221 | 221 | > |
|
222 | > # wrap "commit" command to prevent wlock from being '__del__()'-ed | |
|
223 | > # at the end of dispatching (for intentional "forced lcok failure") | |
|
224 | > def commitwrap(orig, ui, repo, *pats, **opts): | |
|
225 | > repo = repo.unfiltered() # to use replaced repo._lock certainly | |
|
226 | > wlock = repo.wlock() | |
|
227 | > try: | |
|
228 | > return orig(ui, repo, *pats, **opts) | |
|
229 | > finally: | |
|
230 | > # multiple 'relase()' is needed for complete releasing wlock, | |
|
231 | > # because "forced" abort at last releasing store lock | |
|
232 | > # prevents wlock from being released at same 'lockmod.release()' | |
|
233 | > for i in range(wlock.held): | |
|
234 | > wlock.release() | |
|
235 | > | |
|
236 | > def extsetup(ui): | |
|
237 | > wrapcommand(commands.table, "commit", commitwrap) | |
|
222 | 238 | > EOF |
|
223 | 239 | $ extpath=`pwd`/exceptionext.py |
|
224 | 240 | $ hg init fncachetxn |
@@ -81,10 +81,10 b' pretxncommit and commit hooks can see bo' | |||
|
81 | 81 | pretxncommit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b HG_PENDING=$TESTTMP/a |
|
82 | 82 | 2:ee9deb46ab31 |
|
83 | 83 | pretxnclose hook: HG_PENDING=$TESTTMP/a HG_TXNID=TXN:* HG_TXNNAME=commit (glob) |
|
84 | created new head | |
|
84 | 85 | txnclose hook: HG_TXNID=TXN:* HG_TXNNAME=commit (glob) |
|
85 | 86 | commit hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b |
|
86 | 87 | commit.b hook: HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2 HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b |
|
87 | created new head | |
|
88 | 88 | $ hg merge 1 |
|
89 | 89 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
90 | 90 | (branch merge, don't forget to commit) |
@@ -563,9 +563,9 b' make sure --traceback works' | |||
|
563 | 563 | foo |
|
564 | 564 | committing manifest |
|
565 | 565 | committing changelog |
|
566 | committed changeset 1:52998019f6252a2b893452765fcb0a47351a5708 | |
|
566 | 567 | calling hook commit.auto: hgext_hookext.autohook |
|
567 | 568 | Automatically installed hook |
|
568 | committed changeset 1:52998019f6252a2b893452765fcb0a47351a5708 | |
|
569 | 569 | |
|
570 | 570 | $ hg showconfig hooks |
|
571 | 571 | hooks.commit.auto=<function autohook at *> (glob) |
@@ -141,8 +141,8 b' Commit with several checks' | |||
|
141 | 141 | committing manifest |
|
142 | 142 | committing changelog |
|
143 | 143 | overwriting a expanding keywords |
|
144 | committed changeset 1:ef63ca68695bc9495032c6fda1350c71e6d256e9 | |
|
144 | 145 | running hook commit.test: cp a hooktest |
|
145 | committed changeset 1:ef63ca68695bc9495032c6fda1350c71e6d256e9 | |
|
146 | 146 | $ hg status |
|
147 | 147 | ? hooktest |
|
148 | 148 | $ hg debugrebuildstate |
General Comments 0
You need to be logged in to leave comments.
Login now