autobuild 1.9.0.b1 → 1.9.0.b2
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|