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

In .testr.conf; run all git-relevant tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
275
275
        if stat.S_ISDIR(child_mode):
276
276
            subinvdelta, grandchildmodes = import_git_tree(texts, mapping,
277
277
                child_path, name, (child_base_hexsha, child_hexsha), base_inv,
278
 
                file_id, revision_id, parent_invs, lookup_object, 
 
278
                file_id, revision_id, parent_invs, lookup_object,
279
279
                (child_base_mode, child_mode), store_updater, lookup_file_id,
280
280
                allow_submodules=allow_submodules)
281
281
        elif S_ISGITLINK(child_mode): # submodule
305
305
 
306
306
 
307
307
def verify_commit_reconstruction(target_git_object_retriever, lookup_object,
308
 
    o, rev, ret_tree, parent_trees, mapping, unusual_modes):
 
308
    o, rev, ret_tree, parent_trees, mapping, unusual_modes, verifiers):
309
309
    new_unusual_modes = mapping.export_unusual_file_modes(rev)
310
310
    if new_unusual_modes != unusual_modes:
311
311
        raise AssertionError("unusual modes don't match: %r != %r" % (
312
312
            unusual_modes, new_unusual_modes))
313
313
    # Verify that we can reconstruct the commit properly
314
 
    rec_o = target_git_object_retriever._reconstruct_commit(rev, o.tree, True)
 
314
    rec_o = target_git_object_retriever._reconstruct_commit(rev, o.tree, True,
 
315
        verifiers)
315
316
    if rec_o != o:
316
317
        raise AssertionError("Reconstructed commit differs: %r != %r" % (
317
318
            rec_o, o))
377
378
        base_inv = None
378
379
    rev.inventory_sha1, inv = repo.add_inventory_by_delta(basis_id,
379
380
              inv_delta, rev.revision_id, rev.parent_ids, base_inv)
380
 
    # FIXME: Check verifiers
 
381
    # Check verifiers
381
382
    testament = StrictTestament3(rev, inv)
382
383
    calculated_verifiers = { "testament3-sha1": testament.as_sha1() }
383
384
    if roundtrip_revid is not None:
396
397
    if "verify" in debug.debug_flags:
397
398
        verify_commit_reconstruction(target_git_object_retriever, 
398
399
            lookup_object, o, rev, ret_tree, parent_trees, mapping,
399
 
            unusual_modes)
 
400
            unusual_modes, verifiers)
400
401
 
401
402
 
402
403
def import_git_objects(repo, mapping, object_iter,
518
519
            interesting_heads = None
519
520
        def determine_wants(refs):
520
521
            if interesting_heads is None:
521
 
                ret = [sha for (ref, sha) in refs.iteritems() if not ref.endswith("^{}")]
 
522
                todo = [(sha, None) for (ref, sha) in refs.iteritems() if not ref.endswith("^{}")]
522
523
            else:
523
 
                ret = [self.source.lookup_bzr_revision_id(revid)[0] for revid in interesting_heads if revid not in (None, NULL_REVISION)]
524
 
            return [rev for rev in ret if not self.target.has_revision(self.source.lookup_foreign_revision_id(rev))]
525
 
        (pack_hint, _, remote_refs) = self.fetch_objects(determine_wants, mapping, pb)
 
524
                todo = [(self.source.lookup_bzr_revision_id(revid)[0], revid) for revid in interesting_heads if revid not in (None, NULL_REVISION)]
 
525
            ret = []
 
526
            for (sha, revid) in todo:
 
527
                if revid is None:
 
528
                    revid = self.source.lookup_foreign_revision_id(sha)
 
529
                if not self.target.has_revision(revid):
 
530
                    ret.append(sha)
 
531
            return ret
 
532
 
 
533
        (pack_hint, _, remote_refs) = self.fetch_objects(determine_wants,
 
534
            mapping, pb)
526
535
        if pack_hint is not None and self.target._format.pack_compresses:
527
536
            self.target.pack(hint=pack_hint)
528
537
        return remote_refs