~marienz/+junk/import-dsc-hack

« back to all changes in this revision

Viewing changes to import_dsc.py

  • Committer: James Westby
  • Date: 2009-08-24 17:33:44 UTC
  • mfrom: (360.1.49 builddeb)
  • Revision ID: james.westby@canonical.com-20090824173344-1g17an4vkwj6chcu
Merge merge-package command from Muharem.

merge-package allows you to merge another package branch, ensuring that
there aren't spurious conflicts due to divergence in the upstream ancestry.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1570
1570
        finally:
1571
1571
            shutil.rmtree(tempdir)
1572
1572
 
1573
 
    def _extract_upstream_tree(self, upstream_tip, basedir):
 
1573
    def extract_upstream_tree(self, upstream_tip, basedir):
1574
1574
        # Extract that to a tempdir so we can get a working
1575
1575
        # tree for it.
1576
1576
        # TODO: should stack rather than trying to use the repository,
1577
1577
        # as that will be more efficient.
 
1578
        # TODO: remove the _extract_upstream_tree alias below.
1578
1579
        to_location = os.path.join(basedir, "upstream")
1579
1580
        dir_to = self.branch.bzrdir.sprout(to_location,
1580
1581
                revision_id=upstream_tip,
1582
1583
        self.upstream_tree = dir_to.open_workingtree()
1583
1584
        self.upstream_branch = self.upstream_tree.branch
1584
1585
 
 
1586
    _extract_upstream_tree = extract_upstream_tree
 
1587
 
1585
1588
    def _create_empty_upstream_tree(self, basedir):
1586
1589
        to_location = os.path.join(basedir, "upstream")
1587
1590
        to_transport = get_transport(to_location)
1615
1618
            shutil.rmtree(tempdir)
1616
1619
            raise
1617
1620
 
1618
 
    def _revid_of_upstream_version_from_branch(self, version):
 
1621
        """The private method below will go away eventually."""
 
1622
        return self.revid_of_upstream_version_from_branch(version)
 
1623
 
 
1624
    def revid_of_upstream_version_from_branch(self, version):
 
1625
        # TODO: remove the _revid_of_upstream_version_from_branch alias below.
1619
1626
        assert isinstance(version, str)
1620
1627
        tag_name = self.upstream_tag_name(version)
1621
1628
        if self._has_version(self.branch, tag_name):
1629
1636
        tag_name = self.upstream_tag_name(version)
1630
1637
        return self.branch.tags.lookup_tag(tag_name)
1631
1638
 
 
1639
    _revid_of_upstream_version_from_branch = revid_of_upstream_version_from_branch
 
1640
 
1632
1641
    def merge_upstream(self, tarball_filename, version, previous_version,
1633
1642
            upstream_branch=None, upstream_revision=None, merge_type=None):
1634
1643
        assert self.upstream_branch is None, \
1639
1648
            if previous_version is not None:
1640
1649
                if self.has_upstream_version_in_packaging_branch(
1641
1650
                        previous_version.upstream_version):
1642
 
                    upstream_tip = self._revid_of_upstream_version_from_branch(
 
1651
                    upstream_tip = self.revid_of_upstream_version_from_branch(
1643
1652
                            previous_version.upstream_version)
1644
 
                    self._extract_upstream_tree(upstream_tip, tempdir)
 
1653
                    self.extract_upstream_tree(upstream_tip, tempdir)
1645
1654
                elif (upstream_branch is not None and 
1646
1655
                      previous_upstream_revision is not None):
1647
1656
                    upstream_tip = RevisionSpec.from_string(previous_upstream_revision).as_revision_id(upstream_branch)
1648
1657
                    assert isinstance(upstream_tip, str)
1649
 
                    self._extract_upstream_tree(upstream_tip, tempdir)
 
1658
                    self.extract_upstream_tree(upstream_tip, tempdir)
1650
1659
                else:
1651
1660
                    raise BzrCommandError("Unable to find the tag for the "
1652
1661
                            "previous upstream version, %s, in the branch: "