/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 server.py

Adapt to current import_git_objects API

Show diffs side-by-side

added added

removed removed

Lines of Context:
46
46
    PackData,
47
47
    write_pack_index_v2,
48
48
    )
49
 
 
 
49
from dulwich.objects import (
 
50
    ShaFile,
 
51
    sha_to_hex,
 
52
    hex_to_sha,
 
53
    )
50
54
 
51
55
class BzrBackend(Backend):
52
56
 
83
87
 
84
88
        p = PackData(path)
85
89
        entries = p.sorted_entries()
 
90
        heads = []
 
91
        for e in entries:
 
92
            sha = e[0]
 
93
            offset = e[1]
 
94
            t, o = p.get_object_at (offset)
 
95
            if t == 1 or t == 4:
 
96
                heads.append(sha)
86
97
        write_pack_index_v2(path[:-5]+".idx", entries, p.calculate_checksum())
87
98
 
88
 
        def get_objects():
89
 
            pack = Pack(path[:-5])
90
 
            for obj in pack.iterobjects():
91
 
                yield obj
 
99
        repo_dir = BzrDir.open_from_transport(self.transport)
 
100
        target = repo_dir.find_repository()
92
101
 
93
 
        target = Repository.open_from_transport(self.transport)
 
102
        objects = {}
 
103
        for tup in p.iterobjects():
 
104
            obj_type, obj = p.get_object_at (tup[0])
 
105
            if obj_type in range(1, 4):
 
106
                sf = ShaFile.from_raw_string (obj_type, obj)
 
107
                objects[hex_to_sha(sf.id)] = sf
94
108
 
95
109
        target.lock_write()
96
110
        try:
97
111
            target.start_write_group()
98
112
            try:
99
 
                import_git_objects(target, self.mapping, iter(get_objects()))
 
113
                import_git_objects(target, self.mapping, objects,
 
114
                                   BazaarObjectStore (target, self.mapping),
 
115
                                   heads)
100
116
            finally:
101
117
                target.commit_write_group()
102
118
        finally: