tests/test-push-hook-lock.t
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Mon, 25 May 2015 01:26:19 +0900
branchstable
changeset 25267 69c5cab0b893
parent 23349 7dd1870120b2
child 25126 00e4c5601c74
permissions -rw-r--r--
transaction: separate calculating TXNID from creating transaction object Before this patch, transaction ID (TXNID) is calculated from `transaction` object itself by `id()`, but this prevents TXNID from being passed to `pretxnopen` hooks, which should be executed before starting transaction processing (also any preparations for it, like writing journal files out). As a preparation for passing TXNID to `pretxnopen` hooks, this patch separates calculation of TXNID from creation of `transaction` object. This patch uses "random" library for reasonable unique ID. "uuid" library can't be used, because it was introduced since Python 2.5 and isn't suitable for Mercurial 3.4.x stable line. `%f` formatting for `random.random()` is used with explicit precision number 40, because default precision for `%f` is 6. 40 should be long enough, even if 10**9 transactions are executed in a short time (a second or less). On the other hand, `time.time()` is used to ensures uniqueness of TXNID in a long time, for safety. BTW, platform not providing `/dev/urandom` or so may cause failure of `import random` itself with some Python versions (see Python issue15340 for detail http://bugs.python.org/issue15340). But this patch uses "random" without any workaround, because: - "random" is already used directly in some code paths, - such platforms are very rare (e.g. Tru64 and HPUX), and http://bugs.python.org/issue15340#msg170000 - updating Python runtime can avoid this issue
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
     1
  $ hg init 1
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
     2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
     3
  $ echo '[ui]' >> 1/.hg/hgrc
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
     4
  $ echo 'timeout = 10' >> 1/.hg/hgrc
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
     5
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
     6
  $ echo foo > 1/foo
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
     7
  $ hg --cwd 1 ci -A -m foo
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
     8
  adding foo
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
     9
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    10
  $ hg clone 1 2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    11
  updating to branch default
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    12
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    13
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    14
  $ hg clone 2 3
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    15
  updating to branch default
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    16
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    17
23349
7dd1870120b2 tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 22559
diff changeset
    18
  $ cat <<EOF > $TESTTMP/debuglocks-pretxn-hook.sh
7dd1870120b2 tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 22559
diff changeset
    19
  > hg debuglocks
7dd1870120b2 tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 22559
diff changeset
    20
  > true
7dd1870120b2 tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 22559
diff changeset
    21
  > EOF
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    22
  $ echo '[hooks]' >> 2/.hg/hgrc
23349
7dd1870120b2 tests: move a multi-statement debuglocks hook into a shell script for Windows
Matt Harbison <matt_harbison@yahoo.com>
parents: 22559
diff changeset
    23
  $ echo "pretxnchangegroup.a = sh $TESTTMP/debuglocks-pretxn-hook.sh" >> 2/.hg/hgrc
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    24
  $ echo 'changegroup.push = hg push -qf ../1' >> 2/.hg/hgrc
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    25
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    26
  $ echo bar >> 3/foo
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    27
  $ hg --cwd 3 ci -m bar
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    28
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    29
  $ hg --cwd 3 push ../2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    30
  pushing to ../2
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    31
  searching for changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    32
  adding changesets
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    33
  adding manifests
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    34
  adding file changes
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    35
  added 1 changesets with 1 changes to 1 files
22559
4e0b696a1cb3 commands: add debuglocks to report/clear lock state
Matt Mackall <mpm@selenic.com>
parents: 12279
diff changeset
    36
  lock:  user *, process * (*s) (glob)
4e0b696a1cb3 commands: add debuglocks to report/clear lock state
Matt Mackall <mpm@selenic.com>
parents: 12279
diff changeset
    37
  wlock: free
12279
28e2e3804f2e combine tests
Adrian Buehlmann <adrian@cadifra.com>
parents: 1839
diff changeset
    38