Merge lp:~jelmer/bzr-builddeb/merge-6 into lp:~bzr-builddeb-hackers/bzr-builddeb/trunk-old

Proposed by Jelmer Vernooij
Status: Rejected
Rejected by: Jelmer Vernooij
Proposed branch: lp:~jelmer/bzr-builddeb/merge-6
Merge into: lp:~bzr-builddeb-hackers/bzr-builddeb/trunk-old
Diff against target: None lines
To merge this branch: bzr merge lp:~jelmer/bzr-builddeb/merge-6
Reviewer Review Type Date Requested Status
Robert Collins (community) Needs Fixing
Bzr-builddeb-hackers Pending
Review via email: mp+5610@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

The attached patch makes exporting the upstream source from a branch
possible when not working in merge mode.

Cheers,

Jelmer

Revision history for this message
Robert Collins (lifeless) wrote :

Tests?

review: Needs Fixing

Unmerged revisions

Recent revisions are not available due to the source branch being remote.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'cmds.py'
2--- cmds.py 2009-04-15 11:50:06 +0000
3+++ cmds.py 2009-04-16 12:23:13 +0000
4@@ -304,30 +304,29 @@
5 source = True
6 return branch, build_options, source
7
8- def _get_upstream_branch(self, merge, export_upstream,
9+ def _get_upstream_branch(self, export_upstream,
10 export_upstream_revision, config):
11 upstream_branch = None
12 upstream_revision = None
13- if merge:
14- if export_upstream is None:
15- export_upstream = config.export_upstream
16- if export_upstream:
17- upstream_branch = Branch.open(export_upstream)
18- upstream_branch.lock_read()
19- try:
20- if export_upstream_revision is None:
21- export_upstream_revision = \
22- config.export_upstream_revision
23- if export_upstream_revision is None:
24- upstream_revision = \
25- upstream_branch.last_revision()
26- else:
27- upstream_revspec = RevisionSpec.from_string(
28- export_upstream_revision)
29- upstream_revision = \
30- upstream_revspec.as_revision_id(upstream_branch)
31- finally:
32- upstream_branch.unlock()
33+ if export_upstream is None:
34+ export_upstream = config.export_upstream
35+ if export_upstream:
36+ upstream_branch = Branch.open(export_upstream)
37+ upstream_branch.lock_read()
38+ try:
39+ if export_upstream_revision is None:
40+ export_upstream_revision = \
41+ config.export_upstream_revision
42+ if export_upstream_revision is None:
43+ upstream_revision = \
44+ upstream_branch.last_revision()
45+ else:
46+ upstream_revspec = RevisionSpec.from_string(
47+ export_upstream_revision)
48+ upstream_revision = \
49+ upstream_revspec.as_revision_id(upstream_branch)
50+ finally:
51+ upstream_branch.unlock()
52 return (upstream_branch, upstream_revision)
53
54 def run(self, branch_or_build_options_list=None, verbose=False,
55@@ -358,8 +357,9 @@
56 result_dir, build_dir, orig_dir = self._get_dirs(config, is_local,
57 result_dir, result, build_dir, orig_dir)
58
59+ config.version = changelog.version
60 upstream_branch, upstream_revision = \
61- self._get_upstream_branch(merge, export_upstream,
62+ self._get_upstream_branch(export_upstream,
63 export_upstream_revision, config)
64
65 upstream_provider = UpstreamProvider(tree, branch,
66
67=== modified file 'import_dsc.py'
68--- import_dsc.py 2009-03-11 07:23:20 +0000
69+++ import_dsc.py 2009-04-15 22:04:11 +0000
70@@ -548,7 +548,7 @@
71 return True
72 return False
73
74- def has_upstream_version(self, version, md5=None):
75+ def has_upstream_version(self, version, package=None, md5=None):
76 """Whether this branch contains the upstream version specified.
77
78 The version must be judged present by having the appropriate tag
79@@ -563,27 +563,28 @@
80 :return: True if the upstream branch contains the specified upstream
81 version of the package. False otherwise.
82 """
83- tag_name = self.upstream_tag_name(version)
84- if self._has_version(self.upstream_branch, tag_name, md5=md5):
85- return True
86- tag_name = self.upstream_tag_name(version, distro="debian")
87- if self._has_version(self.upstream_branch, tag_name, md5=md5):
88- return True
89- tag_name = self.upstream_tag_name(version, distro="ubuntu")
90- if self._has_version(self.upstream_branch, tag_name, md5=md5):
91- return True
92+ for tag_name in self.possible_upstream_tag_names(version, package):
93+ if self._has_version(self.upstream_branch, tag_name, md5=md5):
94+ return True
95 return False
96
97- def has_upstream_version_in_packaging_branch(self, version, md5=None):
98- tag_name = self.upstream_tag_name(version)
99- if self._has_version(self.branch, tag_name, md5=md5):
100- return True
101- tag_name = self.upstream_tag_name(version, distro="debian")
102- if self._has_version(self.branch, tag_name, md5=md5):
103- return True
104- tag_name = self.upstream_tag_name(version, distro="ubuntu")
105- if self._has_version(self.branch, tag_name, md5=md5):
106- return True
107+ def possible_upstream_tag_names(self, version, package=None):
108+ tags = [self.upstream_tag_name(version),
109+ self.upstream_tag_name(version, distro="debian"),
110+ self.upstream_tag_name(version, distro="ubuntu")]
111+ if package is not None:
112+ tags.extend(["%s-%s" % (package, version),
113+ "%s-%s" % (package, version)])
114+ tags.extend(["v%s" % version,
115+ "release-%s" % version,
116+ version])
117+ return tags
118+
119+ def has_upstream_version_in_packaging_branch(self, version, package=None,
120+ md5=None):
121+ for tag_name in self.possible_upstream_tag_names(version, package):
122+ if self._has_version(self.branch, tag_name, md5=md5):
123+ return True
124 return False
125
126 def contained_versions(self, versions):
127@@ -673,7 +674,7 @@
128 return self.branch.tags.lookup_tag(ubuntu_tag_name)
129 return self.branch.tags.lookup_tag(tag_name)
130
131- def revid_of_upstream_version(self, version):
132+ def revid_of_upstream_version(self, version, package=None):
133 """Returns the revision id corresponding to the upstream version.
134
135 :param version: the Version object to extract the upstream version
136@@ -682,15 +683,9 @@
137 :return: the revision id corresponding to the upstream portion
138 of the version
139 """
140- tag_name = self.upstream_tag_name(version)
141- if self._has_version(self.upstream_branch, tag_name):
142- return self.upstream_branch.tags.lookup_tag(tag_name)
143- tag_name = self.upstream_tag_name(version, distro="debian")
144- if self._has_version(self.upstream_branch, tag_name):
145- return self.upstream_branch.tags.lookup_tag(tag_name)
146- tag_name = self.upstream_tag_name(version, distro="ubuntu")
147- if self._has_version(self.upstream_branch, tag_name):
148- return self.upstream_branch.tags.lookup_tag(tag_name)
149+ for tag_name in self.possible_upstream_tag_names(version, package):
150+ if self._has_version(self.upstream_branch, tag_name):
151+ return self.upstream_branch.tags.lookup_tag(tag_name)
152 tag_name = self.upstream_tag_name(version)
153 return self.upstream_branch.tags.lookup_tag(tag_name)
154
155@@ -1515,16 +1510,10 @@
156 shutil.rmtree(tempdir)
157 raise
158
159- def _revid_of_upstream_version_from_branch(self, version):
160- tag_name = self.upstream_tag_name(version)
161- if self._has_version(self.branch, tag_name):
162- return self.branch.tags.lookup_tag(tag_name)
163- tag_name = self.upstream_tag_name(version, distro="debian")
164- if self._has_version(self.branch, tag_name):
165- return self.branch.tags.lookup_tag(tag_name)
166- tag_name = self.upstream_tag_name(version, distro="ubuntu")
167- if self._has_version(self.branch, tag_name):
168- return self.branch.tags.lookup_tag(tag_name)
169+ def _revid_of_upstream_version_from_branch(self, version, package=None):
170+ for tag_name in self.possible_upstream_tag_names(version, package):
171+ if self._has_version(self.branch, tag_name):
172+ return self.branch.tags.lookup_tag(tag_name)
173 tag_name = self.upstream_tag_name(version)
174 return self.branch.tags.lookup_tag(tag_name)
175

Subscribers

People subscribed via source and target branches