~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/intset.py

  • Committer: John Arbash Meinel
  • Date: 2008-07-09 21:42:24 UTC
  • mto: This revision was merged to the branch mainline in revision 3543.
  • Revision ID: john@arbash-meinel.com-20080709214224-r75k87r6a01pfc3h
Restore a real weave merge to 'bzr merge --weave'.

To do so efficiently, we only add the simple LCAs to the final weave
object, unless we run into complexities with the merge graph.
This gives the same effective result as adding all the texts,
with the advantage of not having to extract all of them.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
 
 
17
 
from __future__ import absolute_import
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18
16
 
19
17
# Author: Martin Pool <mbp@canonical.com>
20
18
 
62
60
    True
63
61
    >>> list(a)
64
62
    [10]
65
 
 
 
63
    
66
64
    """
67
65
    __slots__ = ['_val']
68
66
 
82
80
 
83
81
        >>> bool(IntSet())
84
82
        False
85
 
 
 
83
        
86
84
        >>> bool(IntSet([0]))
87
85
        True
88
86
        """
131
129
        """
132
130
        if not isinstance(other, IntSet):
133
131
            raise NotImplementedError(type(other))
134
 
        return IntSet(bitmask=(self._val | other._val))
 
132
        return IntSet(bitmask=(self._val | other._val))        
135
133
 
136
134
 
137
135
    def __eq__(self, other):
171
169
            v = v >> 1
172
170
            o = o + 1
173
171
 
174
 
 
 
172
        
175
173
    def update(self, to_add):
176
174
        """Add all the values from the sequence or intset to_add"""
177
175
        if isinstance(to_add, IntSet):