autobuild 1.9.0.b1 → 1.9.0.b2
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 -8
- data/lib/autobuild/version.rb +1 -1
- data/test/data/gitrepo.tar +0 -0
- data/test/import/test_git.rb +28 -2
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a17e6033c3c9c0a0bf7ff4e8eeccbfcc777a914
|
4
|
+
data.tar.gz: ee6480b0e089711f67ba08a4361a1bd283f7992b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cdbfc5c964b12cc5be90c9f18f8abc9264fa8a07296b75f323c751d3f2a1400bf0a98357f43eeaaed59a0d42313c3098926524adc32fc2d5ee852a2ddf143b7f
|
7
|
+
data.tar.gz: 247a8bbc07a21967916caf4c74b5daba7abfdbc797617b6f842f3d5be16be6fb09321d7883cb5469333fa3434f725d7592e2a72b1bfc532876de803e3d0744b1
|
data/lib/autobuild/import/git.rb
CHANGED
@@ -520,7 +520,10 @@ module Autobuild
|
|
520
520
|
end
|
521
521
|
end
|
522
522
|
|
523
|
-
def rev_parse(package, name)
|
523
|
+
def rev_parse(package, name, object_type = "commit")
|
524
|
+
if object_type
|
525
|
+
name = "#{name}^{#{object_type}}"
|
526
|
+
end
|
524
527
|
run_git_bare(package, 'rev-parse', name).first
|
525
528
|
rescue Autobuild::SubcommandFailed
|
526
529
|
raise PackageException.new(package, 'import'), "failed to resolve #{name}. Are you sure this commit, branch or tag exists ?"
|
@@ -540,12 +543,15 @@ module Autobuild
|
|
540
543
|
# 'commit' is present in the history of 'reference'
|
541
544
|
#
|
542
545
|
# @return [Boolean]
|
543
|
-
def commit_present_in?(package,
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
546
|
+
def commit_present_in?(package, rev, reference)
|
547
|
+
commit = rev_parse(package, rev)
|
548
|
+
begin
|
549
|
+
merge_base = run_git_bare(package, 'merge-base', commit, reference).first
|
550
|
+
merge_base == commit
|
551
|
+
|
552
|
+
rescue Exception => e
|
553
|
+
raise PackageException.new(package, 'import'), "failed to find the merge-base between #{rev} and #{reference}. Are you sure these commits exist ?"
|
554
|
+
end
|
549
555
|
end
|
550
556
|
|
551
557
|
# Computes the update status to update a branch whose tip is at
|
@@ -740,7 +746,7 @@ module Autobuild
|
|
740
746
|
Autobuild.tool('git'), 'clone', '-o', remote_name, *clone_options, repository, package.importdir, retry: true)
|
741
747
|
|
742
748
|
update_remotes_configuration(package)
|
743
|
-
update(package, only_local: true)
|
749
|
+
update(package, only_local: true, reset: true)
|
744
750
|
end
|
745
751
|
|
746
752
|
# Changes the repository this importer is pointing to
|
data/lib/autobuild/version.rb
CHANGED
data/test/data/gitrepo.tar
CHANGED
Binary file
|
data/test/import/test_git.rb
CHANGED
@@ -72,7 +72,7 @@ describe Autobuild::Git do
|
|
72
72
|
assert !importer.has_commit?(pkg, 'blabla')
|
73
73
|
end
|
74
74
|
it "returns false if the specified commit is not present locally" do
|
75
|
-
assert !importer.has_commit?(pkg, '
|
75
|
+
assert !importer.has_commit?(pkg, 'c8cf0798b1d53931314a86bdb3e2ad874eb8deb5')
|
76
76
|
end
|
77
77
|
it "raises for any other error" do
|
78
78
|
flexmock(Autobuild::Subprocess).should_receive(:run).
|
@@ -205,9 +205,35 @@ describe Autobuild::Git do
|
|
205
205
|
end
|
206
206
|
end
|
207
207
|
|
208
|
+
describe "#commit_present_in?" do
|
209
|
+
attr_reader :commits
|
210
|
+
before do
|
211
|
+
importer.import(pkg)
|
212
|
+
@commits = [
|
213
|
+
importer.rev_parse(pkg, 'HEAD'),
|
214
|
+
importer.rev_parse(pkg, 'HEAD~1')]
|
215
|
+
end
|
216
|
+
|
217
|
+
it "returns true if the revision is in the provided branch" do
|
218
|
+
assert importer.commit_present_in?(pkg, 'HEAD', 'master')
|
219
|
+
assert importer.commit_present_in?(pkg, commits[0], 'master')
|
220
|
+
assert importer.commit_present_in?(pkg, 'HEAD~1', 'master')
|
221
|
+
assert importer.commit_present_in?(pkg, commits[1], 'master')
|
222
|
+
end
|
223
|
+
it "returns false if the revision is not in the provided branch" do
|
224
|
+
importer.run_git(pkg, 'branch', 'fork', 'autobuild/fork')
|
225
|
+
assert !importer.commit_present_in?(pkg, commits[0], "refs/heads/fork")
|
226
|
+
end
|
227
|
+
# git rev-parse return the tag ID for annotated tags instead of the
|
228
|
+
# commit ID. This was in turn breaking commit_present_in?
|
229
|
+
it "handles annotated tags properly" do
|
230
|
+
importer.run_git(pkg, 'tag', '-a', '-m', 'tag0', "tag0", "HEAD~1")
|
231
|
+
assert importer.commit_present_in?(pkg, 'tag0', 'master')
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
208
235
|
describe "update" do
|
209
236
|
def self.common_commit_and_tag_behaviour
|
210
|
-
|
211
237
|
it "does not access the repository if the target is already merged and reset is false" do
|
212
238
|
importer.import(pkg)
|
213
239
|
|
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.9.0.
|
4
|
+
version: 1.9.0.b2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Joyeux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -178,5 +178,4 @@ rubygems_version: 2.2.2
|
|
178
178
|
signing_key:
|
179
179
|
specification_version: 4
|
180
180
|
summary: Library to handle build systems and import mechanisms
|
181
|
-
test_files:
|
182
|
-
- test/suite.rb
|
181
|
+
test_files: []
|