~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/lockable_files.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-06-03 20:18:35 UTC
  • mfrom: (1185.82.137 w-changeset)
  • Revision ID: pqm@pqm.ubuntu.com-20060603201835-1c9a1725641ccd24
Implement bundles

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
# Copyright (C) 2005, 2006 Canonical Ltd
2
 
#
 
2
 
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
5
5
# the Free Software Foundation; either version 2 of the License, or
6
6
# (at your option) any later version.
7
 
#
 
7
 
8
8
# This program is distributed in the hope that it will be useful,
9
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
11
# GNU General Public License for more details.
12
 
#
 
12
 
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
19
#import traceback
20
20
 
21
21
import bzrlib
22
 
from bzrlib.decorators import (needs_read_lock,
23
 
        needs_write_lock)
 
22
from bzrlib.decorators import *
24
23
import bzrlib.errors as errors
25
24
from bzrlib.errors import BzrError
26
25
from bzrlib.osutils import file_iterator, safe_unicode
27
 
from bzrlib.symbol_versioning import (deprecated_method, 
28
 
        zero_eight)
 
26
from bzrlib.symbol_versioning import *
29
27
from bzrlib.trace import mutter, note
30
28
import bzrlib.transactions as transactions
31
 
import bzrlib.urlutils as urlutils
32
 
 
33
29
 
34
30
# XXX: The tracking here of lock counts and whether the lock is held is
35
31
# somewhat redundant with what's done in LockDir; the main difference is that
77
73
        :param lock_class: Class of lock strategy to use: typically
78
74
            either LockDir or TransportLock.
79
75
        """
 
76
        object.__init__(self)
80
77
        self._transport = transport
81
78
        self.lock_name = lock_name
82
79
        self._transaction = None
 
80
        self._find_modes()
83
81
        self._lock_mode = None
84
82
        self._lock_count = 0
85
 
        self._find_modes()
86
83
        esc_name = self._escape(lock_name)
87
84
        self._lock = lock_class(transport, esc_name,
88
85
                                file_modebits=self._file_mode,
122
119
            file_or_path = '/'.join(file_or_path)
123
120
        if file_or_path == '':
124
121
            return u''
125
 
        return urlutils.escape(safe_unicode(file_or_path))
 
122
        return bzrlib.transport.urlescape(safe_unicode(file_or_path))
126
123
 
127
124
    def _find_modes(self):
128
125
        """Determine the appropriate modes for files and directories."""