/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 tests/test_ids.py

  • Committer: John Arbash Meinel
  • Date: 2009-10-29 16:15:43 UTC
  • mto: This revision was merged to the branch mainline in revision 4780.
  • Revision ID: john@arbash-meinel.com-20091029161543-tdqlm2l4e2z5o7le
We don't have to pad 'short' records.

When writing a row, we reserve 120 bytes from the first node so that we
can write our 'B+Tree Graph Index' signature and other meta-information.
For the root node, we don't always use the 120 bytes, and for non-root
rows, we don't use that data at all. So we usually pad back that
record. However, for indexes that fit entirely in the root record,
we don't pad them to 4096, and it turns out we don't need to pad
them with the spare 120 bytes either.

I was doing a test with lots of 'chained' btree indexes, and this
extra padding ended up being 4.6M => 4.3M of wasted space. I imagine
that bzr-search will have a similar issue with tiny indexes.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2007 Jelmer Vernooij <jelmer@samba.org>
2
 
#
3
 
# This program is free software; you can redistribute it and/or modify
4
 
# it under the terms of the GNU General Public License as published by
5
 
# the Free Software Foundation; either version 2 of the License, or
6
 
# (at your option) any later version.
7
 
#
8
 
# This program is distributed in the hope that it will be useful,
9
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 
# GNU General Public License for more details.
12
 
#
13
 
# You should have received a copy of the GNU General Public License
14
 
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
 
 
17
 
from bzrlib.plugins.git import tests
18
 
from bzrlib.plugins.git.mapping import default_mapping
19
 
 
20
 
 
21
 
class TestRevidConversion(tests.TestCase):
22
 
 
23
 
    def test_simple_git_to_bzr_revision_id(self):
24
 
        self.assertEqual("git-experimental:"
25
 
                         "c6a4d8f1fa4ac650748e647c4b1b368f589a7356",
26
 
                         default_mapping.revision_id_foreign_to_bzr(
27
 
                            "c6a4d8f1fa4ac650748e647c4b1b368f589a7356"))
28
 
 
29
 
    def test_simple_bzr_to_git_revision_id(self):
30
 
        self.assertEqual("c6a4d8f1fa4ac650748e647c4b1b368f589a7356",
31
 
                         default_mapping.revision_id_bzr_to_foreign(
32
 
                            "git-experimental:"
33
 
                            "c6a4d8f1fa4ac650748e647c4b1b368f589a7356"))