-=[ Mr. Bumblebee ]=-
_Indonesia_
Oc @@ s d Z d d l m Z d d l m Z e e d d d l m Z m Z d Z d e
j f d YZ d e e
j
f d
YZ d e j f d YZ e e _ d
e f d YZ d e f d YZ d S( s7 MutableTree object.
See MutableTree for more details.
i ( t absolute_import( t lazy_imports
import operator
import os
import re
from bzrlib import (
add,
controldir,
errors,
hooks,
inventory as _mod_inventory,
osutils,
revisiontree,
trace,
transport as _mod_transport,
tree,
)
( t needs_read_lockt needs_write_lockc @ s+ f d } j | _ j | _ | S( s; Decorate unbound to take out and release a tree_write lock.c @ s0 | j z | | | SWd | j Xd S( N( t lock_tree_writet unlock( t selft argst kwargs( t unbound( s6 /usr/lib/python2.7/dist-packages/bzrlib/mutabletree.pyt tree_write_locked1 s
( t __doc__t __name__( R R
( ( R s6 /usr/lib/python2.7/dist-packages/bzrlib/mutabletree.pyt needs_tree_write_lock/ s t MutableTreec B@ s
e Z d Z d Z d Z e d d d Z d Z d Z d Z
d Z e d d d Z
d Z e d d
Z e d Z e d Z d
Z d Z e d d Z d Z e d Z e d Z e d Z e d e d Z RS( s3 A MutableTree is a specialisation of Tree which is able to be mutated.
Generally speaking these mutations are only possible within a lock_write
context, and will revert if the lock is broken abnormally - but this cannot
be guaranteed - depending on the exact implementation of the mutable state.
The most common form of Mutable Tree is WorkingTree, see bzrlib.workingtree.
For tests we also have MemoryTree which is a MutableTree whose contents are
entirely in memory.
For now, we are not treating MutableTree as an interface to provide
conformance tests for - rather we are testing MemoryTree specifically, and
interface testing implementations of WorkingTree.
A mutable tree always has an associated Branch and ControlDir object - the
branch and bzrdir attributes.
c O@ s&