/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 breezy/git/cache.py

  • Committer: Jelmer Vernooij
  • Date: 2019-03-05 07:32:38 UTC
  • mto: (7290.1.21 work)
  • mto: This revision was merged to the branch mainline in revision 7311.
  • Revision ID: jelmer@jelmer.uk-20190305073238-zlqn981opwnqsmzi
Add appveyor configuration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Map from Git sha's to Bazaar objects."""
18
18
 
 
19
from __future__ import absolute_import
 
20
 
19
21
from dulwich.objects import (
20
22
    sha_to_hex,
21
23
    hex_to_sha,
28
30
    )
29
31
 
30
32
from .. import (
31
 
    bedding,
32
33
    errors as bzr_errors,
33
34
    osutils,
34
35
    registry,
39
40
    index as _mod_index,
40
41
    versionedfile,
41
42
    )
 
43
from ..sixish import (
 
44
    viewitems,
 
45
    viewkeys,
 
46
    viewvalues,
 
47
    )
42
48
from ..transport import (
43
 
    get_transport_from_path,
 
49
    get_transport,
44
50
    )
45
51
 
46
52
 
47
53
def get_cache_dir():
48
 
    path = os.path.join(bedding.cache_dir(), "git")
49
 
    if not os.path.isdir(path):
50
 
        os.mkdir(path)
51
 
    return path
 
54
    try:
 
55
        from xdg.BaseDirectory import xdg_cache_home
 
56
    except ImportError:
 
57
        from ..config import config_dir
 
58
        ret = os.path.join(config_dir(), "git")
 
59
    else:
 
60
        ret = os.path.join(xdg_cache_home, "breezy", "git")
 
61
    if not os.path.isdir(ret):
 
62
        os.makedirs(ret)
 
63
    return ret
52
64
 
53
65
 
54
66
def get_remote_cache_transport(repository):
62
74
        path = os.path.join(get_cache_dir(), uuid)
63
75
        if not os.path.isdir(path):
64
76
            os.mkdir(path)
65
 
    return get_transport_from_path(path)
 
77
    return get_transport(path)
66
78
 
67
79
 
68
80
def check_pysqlite_version(sqlite3):
329
341
    def lookup_git_sha(self, sha):
330
342
        if not isinstance(sha, bytes):
331
343
            raise TypeError(sha)
332
 
        for entry in self._by_sha[sha].values():
 
344
        for entry in viewvalues(self._by_sha[sha]):
333
345
            yield entry
334
346
 
335
347
    def lookup_tree_id(self, fileid, revision):
339
351
        return self._by_revid[revid]
340
352
 
341
353
    def revids(self):
342
 
        for key, entries in self._by_sha.items():
343
 
            for (type, type_data) in entries.values():
 
354
        for key, entries in viewitems(self._by_sha):
 
355
            for (type, type_data) in viewvalues(entries):
344
356
                if type == "commit":
345
357
                    yield type_data[0]
346
358
 
347
359
    def sha1s(self):
348
 
        return self._by_sha.keys()
 
360
        return viewkeys(self._by_sha)
349
361
 
350
362
 
351
363
class SqliteCacheUpdater(CacheUpdater):
704
716
        return ret
705
717
 
706
718
    def _keys(self):
707
 
        return self.db.keys()
 
719
        try:
 
720
            return self.db.keys()
 
721
        except AttributeError:  # python < 3
 
722
            return self.db.iterkeys()
708
723
 
709
724
    def revids(self):
710
725
        """List the revision ids known."""
833
848
            except bzr_errors.FileExists:
834
849
                pass
835
850
            return cls(transport.clone('git'))
836
 
        return cls(get_transport_from_path(get_cache_dir()))
 
851
        from ..transport import get_transport
 
852
        return cls(get_transport(get_cache_dir()))
837
853
 
838
854
    def __repr__(self):
839
855
        if self._transport is not None: