Mercurial > hg
annotate contrib/plan9/9mail @ 26633:020b12d591f3
dirstate: make functions for backup aware of transaction activity
Some comments in this patch assume that subsequent patch changes
'dirstate.write()' like as below:
def write(self, repo):
if not self._dirty:
return
tr = repo.currenttransaction()
if tr:
tr.addfilegenerator('dirstate', (self._filename,),
self._writedirstate, location='plain')
return # omit actual writing out
st = self._opener('dirstate', "w", atomictemp=True)
self._writedirstate(st)
This patch makes '_savebackup()' write in-memory changes out, and it
causes clearing 'self._dirty'. If dirstate isn't changed after
'_savebackup()', subsequent 'dirstate.write()' never invokes
'tr.addfilegenerator()' because 'not self._dirty' is true.
Then, 'tr.writepending()' unintentionally returns False, if there is
no other (e.g. changelog) changes pending, even though dirstate
changes are already written out at '_savebackup()'.
To avoid such situation, this patch makes '_savebackup()' explicitly
invoke 'tr.addfilegenerator()', if transaction is running.
'_savebackup()' should get awareness of transaction before 'write()',
because the former depends on the behavior of the latter before this
patch.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Wed, 14 Oct 2015 02:49:17 +0900 |
parents | 4bfd3c7160d9 |
children |
rev | line source |
---|---|
19613
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
1 #!/bin/rc |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
2 # 9mail - Mercurial email wrapper for upas/marshal |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
3 |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
4 fn usage { |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
5 echo >[1=2] usage: mercurial/9mail -f from to [cc] |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
6 exit usage |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
7 } |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
8 |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
9 from=() |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
10 cc=() |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
11 to=() |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
12 |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
13 switch($1){ |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
14 case -f |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
15 from=$2 |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
16 case * |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
17 usage |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
18 } |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
19 |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
20 to=($3) |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
21 if(~ $#* 4) |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
22 cc=(-C $4) |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
23 |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
24 upasname=$from |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
25 upas/marshal $cc $to |
4bfd3c7160d9
9mail: new script to add support for Plan 9 upas/marshal email wrapper
Jeff Sickel <jas@corpus-callosum.com>
parents:
diff
changeset
|
26 |