/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
0.200.45 by David Allouche
More performance hacking, introduce sqlite cache, escape characters in commits that break serializers.
1
# Copyright (C) 2006-2007 Jelmer Vernooij <jelmer@samba.org>
2
#               2007 David Allouche <ddaa@ddaa.net>
3
4
# This program is free software; you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation; either version 2 of the License, or
7
# (at your option) any later version.
8
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
"""Git cache directory access."""
18
19
# Shamelessly copied from bzr-svn.
20
21
import os
22
0.200.49 by Jelmer Vernooij
Add warnings when sqlite3 is not available. Add support for using
23
import bzrlib
0.200.45 by David Allouche
More performance hacking, introduce sqlite cache, escape characters in commits that break serializers.
24
from bzrlib.config import config_dir, ensure_config_dir_exists
0.200.49 by Jelmer Vernooij
Add warnings when sqlite3 is not available. Add support for using
25
from bzrlib.trace import warning
0.200.45 by David Allouche
More performance hacking, introduce sqlite cache, escape characters in commits that break serializers.
26
27
28
def create_cache_dir():
29
    """Create the top-level bzr-git cache directory.
30
31
    :return: Path to cache directory.
32
    """
33
    ensure_config_dir_exists()
34
    cache_dir = os.path.join(config_dir(), 'git-cache')
35
36
    if not os.path.exists(cache_dir):
37
        os.mkdir(cache_dir)
38
39
        open(os.path.join(cache_dir, "README"), 'w').write(
40
"""This directory contains information cached by the bzr-git plugin.
41
42
It is used for performance reasons only and can be removed
43
without losing data.
44
45
""")
46
    return cache_dir
0.200.49 by Jelmer Vernooij
Add warnings when sqlite3 is not available. Add support for using
47
48
49
def check_pysqlite_version(sqlite3):
50
    """Check that sqlite library is compatible.
51
52
    """
53
    if (sqlite3.sqlite_version_info[0] < 3 or 
54
            (sqlite3.sqlite_version_info[0] == 3 and 
55
             sqlite3.sqlite_version_info[1] < 3)):
56
        warning('Needs at least sqlite 3.3.x')
57
        raise bzrlib.errors.BzrError("incompatible sqlite library")
58
59
try:
60
    try:
61
        import sqlite3
62
        check_pysqlite_version(sqlite3)
63
    except (ImportError, bzrlib.errors.BzrError), e: 
64
        from pysqlite2 import dbapi2 as sqlite3
65
        check_pysqlite_version(sqlite3)
66
except:
67
    warning('Needs at least Python2.5 or Python2.4 with the pysqlite2 '
68
            'module')
69
    raise bzrlib.errors.BzrError("missing sqlite library")