autobuild 1.2.13 → 1.2.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,9 @@
1
+ == Version 1.2.14
2
+ * fix git importer's handling of branch names: the importer now always works on
3
+ a local branch that has the same name than the remote branch.
4
+
1
5
  == Version 1.2.12
2
- * reconfigure orogen packages if orogen itself is newer
6
+ * reconfigure orogen packages if orogen itself has been updated
3
7
 
4
8
  == Version 1.2.11
5
9
  * fix small issues with CMake
data/Rakefile CHANGED
@@ -7,7 +7,7 @@ Hoe.new('autobuild', Autobuild::VERSION) do |p|
7
7
 
8
8
  p.summary = 'Rake-based utility to build and install multiple packages with dependencies'
9
9
  p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
10
- p.url = p.paragraphs_of('README.txt', 1).first.split(/\n/)[1..-1]
10
+ p.url = p.paragraphs_of('README.txt', 1).first.split(/\n/)[1..-1].map { |s| s.gsub('* ', '') }
11
11
  p.changes = p.paragraphs_of('Changes.txt', 0).join("\n\n")
12
12
 
13
13
  p.extra_deps << ['rake', '>= 0.7.0']
@@ -3,6 +3,6 @@ require 'autobuild/reporting'
3
3
  require 'autobuild/package'
4
4
 
5
5
  module Autobuild
6
- VERSION = "1.2.13" unless defined? Autobuild::VERSION
6
+ VERSION = "1.2.14" unless defined? Autobuild::VERSION
7
7
  end
8
8
 
@@ -34,25 +34,33 @@ module Autobuild
34
34
  raise ConfigException, "#{package.srcdir} is not a git repository"
35
35
  end
36
36
 
37
- # Fetch and merge if the merge leads to a fast-forward
37
+ # Fetch the remote reference
38
38
  Subprocess.run(package.name, :import, Autobuild.tool('git'), 'fetch', repository, branch)
39
39
  if !File.readable?( File.join('.git', 'FETCH_HEAD') )
40
40
  return
41
41
  end
42
42
 
43
- fetch_commit = File.readlines( File.join('.git', 'FETCH_HEAD') ).
44
- delete_if { |l| l =~ /not-for-merge/ }
45
- return if fetch_commit.empty?
46
- fetch_commit = fetch_commit.first.split(/\s+/).first
43
+ # Check that we are on the right branch, and if not simply
44
+ # create it from FETCH_HEAD
45
+ current_branch = `git symbolic-ref HEAD`.chomp
46
+ if current_branch != "refs/heads/#{branch}"
47
+ Subprocess.run(package.name, :import, Autobuild.tool('git'), 'checkout', '-b', branch, "FETCH_HEAD")
48
+ else
49
+ # Otherwise, check that the merge is a fast-forward
50
+ fetch_commit = File.readlines( File.join('.git', 'FETCH_HEAD') ).
51
+ delete_if { |l| l =~ /not-for-merge/ }
52
+ return if fetch_commit.empty?
53
+ fetch_commit = fetch_commit.first.split(/\s+/).first
47
54
 
48
- common_commit = `git merge-base HEAD #{fetch_commit}`.chomp
49
- head_commit = `git rev-parse HEAD`.chomp
55
+ common_commit = `git merge-base HEAD #{fetch_commit}`.chomp
56
+ head_commit = `git rev-parse #{current_branch}`.chomp
50
57
 
51
- if common_commit != fetch_commit
52
- if merge? || common_commit == head_commit
53
- Subprocess.run(package.name, :import, Autobuild.tool('git'), 'merge', fetch_commit)
54
- else
55
- raise "importing the current version would lead to a non fast-forward"
58
+ if common_commit != fetch_commit
59
+ if merge? || common_commit == head_commit
60
+ Subprocess.run(package.name, :import, Autobuild.tool('git'), 'merge', fetch_commit)
61
+ else
62
+ raise "importing the current version would lead to a non fast-forward"
63
+ end
56
64
  end
57
65
  end
58
66
  end
@@ -69,8 +77,14 @@ module Autobuild
69
77
  repository, package.srcdir)
70
78
 
71
79
  Dir.chdir(package.srcdir) do
72
- Subprocess.run(package.name, :import, Autobuild.tool('git'),
73
- 'reset', '--hard', "autobuild/#{branch}")
80
+ current_branch = `git symbolic-ref HEAD`.chomp
81
+ if current_branch == "refs/heads/#{branch}"
82
+ Subprocess.run(package.name, :import, Autobuild.tool('git'),
83
+ 'reset', '--hard', "autobuild/#{branch}")
84
+ else
85
+ Subprocess.run(package.name, :import, Autobuild.tool('git'),
86
+ 'checkout', '-b', branch, "autobuild/#{branch}")
87
+ end
74
88
  end
75
89
  end
76
90
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autobuild
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.13
4
+ version: 1.2.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sylvain Joyeux
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-04-03 00:00:00 +02:00
12
+ date: 2009-06-08 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -50,9 +50,26 @@ dependencies:
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 1.12.1
53
+ version: 1.12.2
54
54
  version:
55
- description: This work is licensed under the GPLv2 license. See License.txt for details == What's autobuild ? Autobuild imports, configures, builds and installs various kinds of software packages. It can be used in software development to make sure that nothing is broken in the build process of a set of packages, or can be used as an automated installation tool. Autobuild config files are Ruby scripts which configure rake to * imports the package from a SCM or (optionnaly) updates it * configures it. This phase can handle code generation, configuration (for instance for autotools-based packages), ... * build * install It takes the dependencies between packages into account in its build process, updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+, +LD_LIBRARY_PATH+, ...)
55
+ description: |-
56
+ This work is licensed under the GPLv2 license. See License.txt for details
57
+
58
+ == What's autobuild ?
59
+ Autobuild imports, configures, builds and installs various kinds of software packages.
60
+ It can be used in software development to make sure that nothing is broken in the
61
+ build process of a set of packages, or can be used as an automated installation tool.
62
+
63
+ Autobuild config files are Ruby scripts which configure rake to
64
+ * imports the package from a SCM or (optionnaly) updates it
65
+ * configures it. This phase can handle code generation, configuration (for
66
+ instance for autotools-based packages), ...
67
+ * build
68
+ * install
69
+
70
+ It takes the dependencies between packages into account in its build process,
71
+ updates the needed environment variables (+PKG_CONFIG_PATH+, +PATH+,
72
+ +LD_LIBRARY_PATH+, ...)
56
73
  email: sylvain.joyeux@m4x.org
57
74
  executables:
58
75
  - autobuild
@@ -101,7 +118,9 @@ files:
101
118
  - test/test_subcommand.rb
102
119
  - test/tools.rb
103
120
  has_rdoc: true
104
- homepage: "* http://autobuild.rubyforge.org/autobuild"
121
+ homepage: http://autobuild.rubyforge.org/autobuild
122
+ licenses: []
123
+
105
124
  post_install_message:
106
125
  rdoc_options:
107
126
  - --main
@@ -123,9 +142,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
123
142
  requirements: []
124
143
 
125
144
  rubyforge_project: autobuild
126
- rubygems_version: 1.2.0
145
+ rubygems_version: 1.3.3
127
146
  signing_key:
128
- specification_version: 2
147
+ specification_version: 3
129
148
  summary: Rake-based utility to build and install multiple packages with dependencies
130
149
  test_files:
131
150
  - test/test_import_tar.rb