autobuild 1.5.24 → 1.5.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,6 @@
1
+ == Version 1.5.25
2
+ * small bugfixes
3
+
1
4
  == Version 1.5.24
2
5
  * fix bug with git importer and the push_to option. The pushurl configuration
3
6
  option was not set in just-cloned repositories
@@ -76,6 +76,15 @@ module Autobuild
76
76
  # If set, both commit and tag have to be nil.
77
77
  attr_accessor :branch
78
78
 
79
+ # The branch that should be used on the local clone
80
+ #
81
+ # If not set, it defaults to #branch
82
+ attr_writer :local_branch
83
+
84
+ def local_branch
85
+ @local_branch || branch
86
+ end
87
+
79
88
  # The tag we are pointing to. It is a tag name.
80
89
  #
81
90
  # If set, both branch and commit have to be nil.
@@ -117,11 +126,11 @@ module Autobuild
117
126
  end
118
127
  Subprocess.run(package, :import, Autobuild.tool('git'), 'config',
119
128
  "--replace-all", "remote.autobuild.fetch", "+refs/heads/*:refs/remotes/autobuild/*")
120
- if branch
129
+ if local_branch
121
130
  Subprocess.run(package, :import, Autobuild.tool('git'), 'config',
122
- "--replace-all", "branch.#{branch}.remote", "autobuild")
131
+ "--replace-all", "branch.#{local_branch}.remote", "autobuild")
123
132
  Subprocess.run(package, :import, Autobuild.tool('git'), 'config',
124
- "--replace-all", "branch.#{branch}.merge", "refs/heads/#{branch}")
133
+ "--replace-all", "branch.#{local_branch}.merge", "refs/heads/#{branch}")
125
134
  end
126
135
 
127
136
  # We are checking out a specific commit. We just call git fetch
@@ -159,7 +168,7 @@ module Autobuild
159
168
  remote_commit = nil
160
169
  if only_local
161
170
  Dir.chdir(package.srcdir) do
162
- remote_commit = `git show-ref -s refs/heads/#{branch}`.chomp
171
+ remote_commit = `git show-ref -s refs/heads/#{local_branch}`.chomp
163
172
  end
164
173
  else
165
174
  remote_commit = fetch_remote(package)
@@ -181,7 +190,7 @@ module Autobuild
181
190
  # current directory is the package's directory
182
191
  def on_target_branch?
183
192
  current_branch = `git symbolic-ref HEAD`.chomp
184
- current_branch == "refs/heads/#{branch}"
193
+ current_branch == "refs/heads/#{local_branch}"
185
194
  end
186
195
 
187
196
  class Status < Importer::Status
@@ -230,7 +239,7 @@ module Autobuild
230
239
 
231
240
  def merge_status(fetch_commit)
232
241
  common_commit = `git merge-base HEAD #{fetch_commit}`.chomp
233
- head_commit = `git rev-parse #{branch}`.chomp
242
+ head_commit = `git rev-parse #{local_branch}`.chomp
234
243
 
235
244
  status = if common_commit != fetch_commit
236
245
  if common_commit == head_commit
@@ -266,19 +275,19 @@ module Autobuild
266
275
  if !on_target_branch?
267
276
  # Check if the target branch already exists. If it is the
268
277
  # case, check it out. Otherwise, create it.
269
- if system("git", "show-ref", "--verify", "--quiet", "refs/heads/#{branch}")
270
- package.progress "switching branch of %s to %s" % [package.name, branch]
271
- Subprocess.run(package, :import, Autobuild.tool('git'), 'checkout', branch)
278
+ if system("git", "show-ref", "--verify", "--quiet", "refs/heads/#{local_branch}")
279
+ package.progress "switching branch of %s to %s" % [package.name, local_branch]
280
+ Subprocess.run(package, :import, Autobuild.tool('git'), 'checkout', local_branch)
272
281
  else
273
- package.progress "checking out branch %s for %s" % [branch, package.name]
274
- Subprocess.run(package, :import, Autobuild.tool('git'), 'checkout', '-b', branch, "FETCH_HEAD")
282
+ package.progress "checking out branch %s for %s" % [local_branch, package.name]
283
+ Subprocess.run(package, :import, Autobuild.tool('git'), 'checkout', '-b', local_branch, "FETCH_HEAD")
275
284
  end
276
285
  end
277
286
 
278
287
  status = merge_status(fetch_commit)
279
288
  if status.needs_update?
280
289
  if !merge? && status.status == Status::NEEDS_MERGE
281
- raise PackageException, "the local and remote branches #{branch} of #{package.name} have diverged, and I therefore refuse to update automatically. Go into #{package.srcdir} and either reset the local branch or merge the remote changes"
290
+ raise PackageException, "the local branch '#{local_branch}' and the remote branch #{branch} of #{package.name} have diverged, and I therefore refuse to update automatically. Go into #{package.srcdir} and either reset the local branch or merge the remote changes"
282
291
  end
283
292
  Subprocess.run(package, :import, Autobuild.tool('git'), 'merge', fetch_commit)
284
293
  end
@@ -308,12 +317,12 @@ module Autobuild
308
317
  end
309
318
 
310
319
  current_branch = `git symbolic-ref HEAD`.chomp
311
- if current_branch == "refs/heads/#{branch}"
320
+ if current_branch == "refs/heads/#{local_branch}"
312
321
  Subprocess.run(package, :import, Autobuild.tool('git'),
313
- 'reset', '--hard', "autobuild/#{branch}")
322
+ 'reset', '--hard', "autobuild/#{branch}")
314
323
  else
315
324
  Subprocess.run(package, :import, Autobuild.tool('git'),
316
- 'checkout', '-b', branch, "autobuild/#{branch}")
325
+ 'checkout', '-b', local_branch, "autobuild/#{branch}")
317
326
  end
318
327
  end
319
328
  end
@@ -376,6 +376,18 @@ module Autobuild
376
376
  end
377
377
  end
378
378
 
379
+ # Returns the name of all the packages +self+ depends on
380
+ def all_dependencies(result = Set.new)
381
+ dependencies.each do |pkg_name|
382
+ pkg = Autobuild::Package[pkg_name]
383
+ if !result.include?(pkg.name)
384
+ result << pkg.name
385
+ pkg.all_dependencies(result)
386
+ end
387
+ end
388
+ result
389
+ end
390
+
379
391
  # Returns true if this package depends on +package_name+ and false
380
392
  # otherwise.
381
393
  def depends_on?(package_name)
@@ -1,6 +1,6 @@
1
1
  module Autobuild
2
2
  def self.dummy(spec)
3
- ImporterPackage.new(spec)
3
+ DummyPackage.new(spec)
4
4
  end
5
5
 
6
6
  class DummyPackage < Package
@@ -17,11 +17,11 @@ module Autobuild
17
17
 
18
18
  def prepare
19
19
  %w{import prepare build doc}.each do |phase|
20
- Rake.task("#{name}-#{phase}")
20
+ task "#{name}-#{phase}"
21
21
  t = Rake::Task["#{name}-#{phase}"]
22
22
  def t.needed?; false end
23
23
  end
24
- Rake.task(installstamp)
24
+ task(installstamp)
25
25
  t = Rake::Task[installstamp]
26
26
  def t.needed?; false end
27
27
 
@@ -1,5 +1,5 @@
1
1
  module Autobuild
2
- VERSION = "1.5.24" unless defined? Autobuild::VERSION
2
+ VERSION = "1.5.25" unless defined? Autobuild::VERSION
3
3
  end
4
4
 
5
5
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autobuild
3
3
  version: !ruby/object:Gem::Version
4
- hash: 51
4
+ hash: 49
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 5
9
- - 24
10
- version: 1.5.24
9
+ - 25
10
+ version: 1.5.25
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sylvain Joyeux
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-18 00:00:00 +01:00
18
+ date: 2010-11-24 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency