~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to baz_import.py

  • Committer: Robert Collins
  • Date: 2005-09-08 11:21:38 UTC
  • mto: (147.2.6) (364.1.3 bzrtools)
  • mto: This revision was merged to the branch mainline in revision 324.
  • Revision ID: robertc@robertcollins.net-20050908112138-033369d3cacacb55
test and deliver basic pending-merges into bzr so that merging is recorded

Show diffs side-by-side

added added

removed removed

Lines of Context:
419
419
 
420
420
    for i in range(len(ancestors)):
421
421
        revision = ancestors[i]
 
422
        direct_merges = []
422
423
        if verbose:
423
424
            version = str(revision.version)
424
425
            if version != previous_version:
432
433
            revdir = os.path.join(tempdir, "rd")
433
434
            baz_inv, log = get_revision(revdir, revision, 
434
435
                                        skip_symlinks=skip_symlinks)
 
436
            # cached so we can delete the log
 
437
            log_date = log.date
 
438
            log_summary = log.summary
 
439
            log_creator = log.creator
435
440
            if os.path.exists(output_dir):
436
441
                bzr_dir = os.path.join(output_dir, '.bzr')
437
442
                new_bzr_dir = os.path.join(tempdir, "rd", '.bzr')
451
456
            os.rename(old, new)
452
457
            baz_inv, log = apply_revision(revdir, revision, 
453
458
                                          skip_symlinks=skip_symlinks)
 
459
            log_date = log.date
 
460
            log_summary = log.summary
 
461
            log_creator = log.creator
 
462
            direct_merges = get_direct_merges(revdir, revision)
454
463
            os.rename(new, old)
455
464
            branch = find_branch(revdir, find_root=False)
456
 
        timestamp = email.Utils.mktime_tz(log.date + (0,))
 
465
        timestamp = email.Utils.mktime_tz(log_date + (0,))
457
466
        rev_id = revision_id(revision)
458
467
        branch.lock_write()
459
468
        try:
 
469
            for merge in direct_merges:
 
470
                branch.add_pending_merge(revision_id(merge.revision))
460
471
            branch.set_inventory(baz_inv)
461
472
            bzrlib.trace.silent = True
462
 
            branch.commit(log.summary, verbose=False, committer=log.creator,
 
473
            branch.commit(log_summary, verbose=False, committer=log_creator,
463
474
                          timestamp=timestamp, timezone=0, rev_id=rev_id)
464
475
        finally:
465
476
            bzrlib.trace.silent = False   
467
478
    yield Progress("revisions", len(ancestors), len(ancestors))
468
479
    unlink_unversioned(branch, revdir)
469
480
 
 
481
def get_direct_merges(revdir, revision):
 
482
    from fai.cmdutil import pylon, direct_merges
 
483
    if pybaz.WorkingTree(revdir).tree_version != revision.version:
 
484
        pybaz.WorkingTree(revdir).set_tree_version(revision.version)
 
485
    log_path = "%s/{arch}/%s/%s/%s/%s/patch-log/%s" % (revdir, 
 
486
        revision.category.nonarch, revision.branch.nonarch, 
 
487
        revision.version.nonarch, revision.archive, revision.patchlevel)
 
488
    temp_path = "templog"
 
489
    os.rename(log_path, temp_path)
 
490
    merges = list(pylon.iter_new_merges(revdir, revision.version))
 
491
    direct = direct_merges (merges)
 
492
    os.rename(temp_path, log_path)
 
493
    return direct
 
494
 
470
495
def unlink_unversioned(branch, revdir):
471
496
    for unversioned in branch.working_tree().extras():
472
497
        path = os.path.join(revdir, unversioned)