autobuild 1.7.12.rc6 → 1.8.0
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.
- checksums.yaml +4 -4
- data/lib/autobuild/import/git.rb +14 -6
- data/lib/autobuild/importer.rb +18 -12
- data/lib/autobuild/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 02fbd561a58e387234abbd68df3dcc0cfdad031d
|
4
|
+
data.tar.gz: 4a64a4a2c63cd4d91782577167c92e31f863e14c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 843b80f0b1e84fbf70f687ba6ec597bafa249b14b0dba06c4886d8e6b5874f315a3ba4055df40360f6279f6f3c5eaedf8cd662c0778f9e211c25b98acccbb181
|
7
|
+
data.tar.gz: c018435f7acc876f5c9d0e4e0aa9acbb97c0842d7646eaabf62e64520765bff3e623ccca22a3dbedfb3fb1bc9bf3d9fc25a8c2e0e5c7df9d777816187482e941
|
data/lib/autobuild/import/git.rb
CHANGED
@@ -196,7 +196,7 @@ module Autobuild
|
|
196
196
|
dir = path
|
197
197
|
end
|
198
198
|
|
199
|
-
result = `#{Autobuild.tool(:git)} --git-dir="#{dir}" rev-parse --is-bare-repository`
|
199
|
+
result = `#{Autobuild.tool(:git)} --git-dir="#{dir}" rev-parse --is-bare-repository 2>&1`
|
200
200
|
if $?.success?
|
201
201
|
if result.strip == "true"
|
202
202
|
return dir, :bare
|
@@ -326,6 +326,17 @@ module Autobuild
|
|
326
326
|
commit_id
|
327
327
|
end
|
328
328
|
|
329
|
+
def self.has_uncommitted_changes?(package, with_untracked_files = false)
|
330
|
+
Dir.chdir(package.importdir) do
|
331
|
+
status = `git status --porcelain`.split("\n").map(&:strip)
|
332
|
+
if with_untracked_files
|
333
|
+
!status.empty?
|
334
|
+
else
|
335
|
+
status.any? { |l| l[0, 2] !~ /^\?\?|^ / }
|
336
|
+
end
|
337
|
+
end
|
338
|
+
end
|
339
|
+
|
329
340
|
# Returns a Importer::Status object that represents the status of this
|
330
341
|
# package w.r.t. the root repository
|
331
342
|
def status(package, only_local = false)
|
@@ -347,10 +358,7 @@ module Autobuild
|
|
347
358
|
end
|
348
359
|
|
349
360
|
status = merge_status(package, remote_commit)
|
350
|
-
|
351
|
-
if $?.exitstatus != 0
|
352
|
-
status.uncommitted_code = true
|
353
|
-
end
|
361
|
+
status.uncommitted_code = self.class.has_uncommitted_changes?(package)
|
354
362
|
status
|
355
363
|
end
|
356
364
|
|
@@ -648,7 +656,7 @@ module Autobuild
|
|
648
656
|
# based on the information contained in the git configuration
|
649
657
|
#
|
650
658
|
# @raise [ArgumentError] if the path does not point to a git repository
|
651
|
-
def self.vcs_definition_for(path)
|
659
|
+
def self.vcs_definition_for(path, remote_name = 'autobuild')
|
652
660
|
if !can_handle?(path)
|
653
661
|
raise ArgumentError, "#{path} is either not a git repository, or a bare git repository"
|
654
662
|
end
|
data/lib/autobuild/importer.rb
CHANGED
@@ -284,14 +284,14 @@ class Importer
|
|
284
284
|
def apply(package, path, patch_level = 0); call_patch(package, false, path, patch_level) end
|
285
285
|
def unapply(package, path, patch_level = 0); call_patch(package, true, path, patch_level) end
|
286
286
|
|
287
|
-
def parse_patch_list(patches_file)
|
287
|
+
def parse_patch_list(package, patches_file)
|
288
288
|
File.readlines(patches_file).map do |line|
|
289
289
|
line = line.rstrip
|
290
290
|
if line =~ /^(.*)\s+(\d+)$/
|
291
|
-
path = $1
|
291
|
+
path = File.expand_path($1, package.srcdir)
|
292
292
|
level = Integer($2)
|
293
293
|
else
|
294
|
-
path = line
|
294
|
+
path = File.expand_path(line, package.srcdir)
|
295
295
|
level = 0
|
296
296
|
end
|
297
297
|
[path, level, File.read(path)]
|
@@ -301,12 +301,12 @@ class Importer
|
|
301
301
|
def currently_applied_patches(package)
|
302
302
|
patches_file = patchlist(package)
|
303
303
|
if File.exists?(patches_file)
|
304
|
-
return parse_patch_list(patches_file)
|
304
|
+
return parse_patch_list(package, patches_file)
|
305
305
|
end
|
306
306
|
|
307
307
|
patches_file = File.join(package.importdir, "patches-autobuild-stamp")
|
308
308
|
if File.exists?(patches_file)
|
309
|
-
cur_patches = parse_patch_list(patches_file)
|
309
|
+
cur_patches = parse_patch_list(package, patches_file)
|
310
310
|
save_patch_state(package, cur_patches)
|
311
311
|
FileUtils.rm_f patches_file
|
312
312
|
return currently_applied_patches(package)
|
@@ -319,7 +319,9 @@ class Importer
|
|
319
319
|
# Get the list of already applied patches
|
320
320
|
cur_patches = currently_applied_patches(package)
|
321
321
|
|
322
|
-
|
322
|
+
cur_patches_state = cur_patches.map { |_, level, content| [level, content] }
|
323
|
+
patches_state = patches.map { |_, level, content| [level, content] }
|
324
|
+
if cur_patches_state == patches_state
|
323
325
|
return false
|
324
326
|
end
|
325
327
|
|
@@ -357,14 +359,18 @@ class Importer
|
|
357
359
|
patch_dir = patchdir(package)
|
358
360
|
FileUtils.mkdir_p patch_dir
|
359
361
|
cur_patches = cur_patches.each_with_index.map do |(path, level, content), idx|
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
362
|
+
path = File.join(patch_dir, idx.to_s)
|
363
|
+
File.open(path, 'w') do |patch_io|
|
364
|
+
patch_io.write content
|
365
|
+
end
|
366
|
+
[path, level]
|
365
367
|
end
|
366
368
|
File.open(patchlist(package), 'w') do |f|
|
367
|
-
|
369
|
+
patch_state = cur_patches.map do |path, level|
|
370
|
+
path = Pathname.new(path).relative_path_from(package.srcdir).to_s
|
371
|
+
"#{path} #{level}"
|
372
|
+
end
|
373
|
+
f.write(patch_state.join("\n"))
|
368
374
|
end
|
369
375
|
end
|
370
376
|
|
data/lib/autobuild/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autobuild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Joyeux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -161,9 +161,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
161
161
|
version: 1.9.2
|
162
162
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- - "
|
164
|
+
- - ">="
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
166
|
+
version: '0'
|
167
167
|
requirements: []
|
168
168
|
rubyforge_project:
|
169
169
|
rubygems_version: 2.2.2
|
@@ -171,9 +171,9 @@ signing_key:
|
|
171
171
|
specification_version: 4
|
172
172
|
summary: Library to handle build systems and import mechanisms
|
173
173
|
test_files:
|
174
|
-
- test/test_import_tar.rb
|
175
174
|
- test/test_config.rb
|
176
|
-
- test/test_subcommand.rb
|
177
|
-
- test/test_reporting.rb
|
178
|
-
- test/test_import_svn.rb
|
179
175
|
- test/test_import_cvs.rb
|
176
|
+
- test/test_import_svn.rb
|
177
|
+
- test/test_import_tar.rb
|
178
|
+
- test/test_reporting.rb
|
179
|
+
- test/test_subcommand.rb
|