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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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