/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/repofmt/knitrepo.py

  • Committer: John Arbash Meinel
  • Date: 2009-10-13 16:44:43 UTC
  • mto: This revision was merged to the branch mainline in revision 4741.
  • Revision ID: john@arbash-meinel.com-20091013164443-b92lnyiir2ucyguj
Stop using hash() because of bugs wrt pyrex 0.9.8.5

Rather than going directly to the Py_TYPE() object, I also use PyObject_Hash()
everywhere now. This simplifies the code a little bit, as I can declare it
returns -1 as an exception, rather than having to manually check the return
value.

What is really strange is that pyrex 0.9.7.2 gets it right, strange
regression to have. cython 0.11.3 also gets it right, but I don't know
that all versions of cython handle it correctly, either.


The main problem is that we are mixing, and then comparing
'other_hash = this_hash'. If we always used the 32-bit form, we would
be okay for our purposes, or always use the 64-bit form. I'm focusing
on the latter.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2007-2010 Canonical Ltd
 
1
# Copyright (C) 2005, 2006, 2007 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
24
24
    lockdir,
25
25
    osutils,
26
26
    revision as _mod_revision,
27
 
    trace,
28
27
    transactions,
29
28
    versionedfile,
30
29
    xml5,
43
42
    RepositoryFormat,
44
43
    RootCommitBuilder,
45
44
    )
 
45
from bzrlib.trace import mutter, mutter_callsite
46
46
 
47
47
 
48
48
class _KnitParentsProvider(object):
342
342
        :param shared: If true the repository will be initialized as a shared
343
343
                       repository.
344
344
        """
345
 
        trace.mutter('creating repository in %s.', a_bzrdir.transport.base)
 
345
        mutter('creating repository in %s.', a_bzrdir.transport.base)
346
346
        dirs = ['knits']
347
347
        files = []
348
348
        utf8_files = [('format', self.get_format_string())]
360
360
        result.revisions.get_parent_map([('A',)])
361
361
        result.signatures.get_parent_map([('A',)])
362
362
        result.unlock()
363
 
        self._run_post_repo_init_hooks(result, a_bzrdir, shared)
364
363
        return result
365
364
 
366
365
    def open(self, a_bzrdir, _found=False, _override_transport=None):
445
444
    repository_class = KnitRepository
446
445
    _commit_builder_class = RootCommitBuilder
447
446
    rich_root_data = True
448
 
    experimental = True
449
447
    supports_tree_reference = True
450
448
    @property
451
449
    def _serializer(self):