~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/atomicfile.py

  • Committer: John Arbash Meinel
  • Date: 2006-08-09 14:43:27 UTC
  • mto: This revision was merged to the branch mainline in revision 1912.
  • Revision ID: john@arbash-meinel.com-20060809144327-d604af2edf646794
Clean up and write tests for permissions. Now we use fstat which should be cheap, and lets us check the permissions and the file size

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
 
26
26
from bzrlib import (
27
27
    errors,
 
28
    osutils,
28
29
    symbol_versioning,
29
30
    )
30
31
from bzrlib.osutils import rename
33
34
_pid = os.getpid()
34
35
_hostname = socket.gethostname()
35
36
 
36
 
# On win32 O_BINARY will set binary versus text mode
37
 
# but the constant doesn't exist on platforms where it isn't
38
 
# needed
39
 
_binary = getattr(os, 'O_BINARY', 0)
40
 
 
41
37
 
42
38
class AtomicFile(object):
43
39
    """A file that does an atomic-rename to move into place.
61
57
        
62
58
        flags = os.O_EXCL | os.O_CREAT | os.O_WRONLY
63
59
        if mode == 'wb':
64
 
            flags |= _binary
 
60
            flags |= osutils.O_BINARY
65
61
        
66
62
        self._new_mode = new_mode
67
63
        # Use a low level fd operation to avoid chmodding later.