From b649f224a1b9e5d4c541c6dc8767ef0dda4db8b7 Mon Sep 17 00:00:00 2001 From: Sylvain Joyeux Date: Wed, 16 Aug 2017 11:46:41 -0300 Subject: [PATCH 1/6] git: fix submodule updates --- test/data/gitrepo-submodule-child.tar | Bin 0 -> 51200 bytes test/data/gitrepo-submodule-master.tar | Bin 0 -> 61440 bytes test/import/test_git.rb | 38 ++++++++++++++++++++++++- 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 test/data/gitrepo-submodule-child.tar create mode 100644 test/data/gitrepo-submodule-master.tar diff --git a/test/data/gitrepo-submodule-child.tar b/test/data/gitrepo-submodule-child.tar new file mode 100644 index 0000000000000000000000000000000000000000..ee9aba31f00b978f15610ec4ff2972aabed716db GIT binary patch literal 51200 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 literal 0 HcmV?d00001 diff --git a/test/import/test_git.rb b/test/import/test_git.rb index 482304d3..8dda7510 100644 --- a/test/import/test_git.rb +++ b/test/import/test_git.rb @@ -3,7 +3,7 @@ describe Autobuild::Git do attr_reader :pkg, :importer, :gitrepo before do - untar('gitrepo.tar') + tempdir = untar('gitrepo.tar') @gitrepo = File.join(tempdir, 'gitrepo.git') @pkg = Autobuild::Package.new 'test' pkg.srcdir = File.join(tempdir, 'git') @@ -504,5 +504,41 @@ def pin_importer(id, options = Hash.new) common_commit_and_tag_behaviour end end + + describe "submodule handling" do + before do + tempdir = untar 'gitrepo-submodule-master.tar' + untar 'gitrepo-submodule-child.tar' + srcdir = File.join(tempdir, 'gitrepo-submodule-master') + @pkg = Autobuild::Package.new 'submodule_test' + pkg.srcdir = srcdir + @importer = Autobuild.git("#{srcdir}.git", with_submodules: true) + pkg.importer = importer + end + it "checks submodules out on checkout" do + importer.import(pkg) + assert File.exist?(File.join(pkg.srcdir, 'child', '.git')) + assert_equal "Commit 1", File.read(File.join(pkg.srcdir, 'child', 'FILE')).strip + end + it "properly updates submodules if the checkout is pinned to a tag or commit" do + importer.relocate(importer.repository, commit: '80910fa21d92b8f387503d366a52c14b1ced4041') + importer.import(pkg) + assert File.exist?(File.join(pkg.srcdir, 'child', '.git')) + assert_equal "Commit 0", File.read(File.join(pkg.srcdir, 'child', 'FILE')).strip + end + it "updates submodules on update" do + importer.relocate(importer.repository, commit: '80910fa21d92b8f387503d366a52c14b1ced4041') + importer.import(pkg) + importer.relocate(importer.repository, commit: nil) + importer.import(pkg) + assert_equal "Commit 1", File.read(File.join(pkg.srcdir, 'child', 'FILE')).strip + end + it "updates submodules on reset" do + importer.import(pkg) + importer.relocate(importer.repository, commit: '80910fa21d92b8f387503d366a52c14b1ced4041') + importer.import(pkg, reset: :force) + assert_equal "Commit 0", File.read(File.join(pkg.srcdir, 'child', 'FILE')).strip + end + end end From 107bcda601b90871eb453dabf13f88c126a1d9b5 Mon Sep 17 00:00:00 2001 From: Sylvain Joyeux Date: Wed, 16 Aug 2017 11:48:42 -0300 Subject: [PATCH 2/6] git: allow resetting the tag and/or commit argument in #relocate --- lib/autobuild/import/git.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/autobuild/import/git.rb b/lib/autobuild/import/git.rb index 6a3fbc81..90008bb5 100644 --- a/lib/autobuild/import/git.rb +++ b/lib/autobuild/import/git.rb @@ -1095,8 +1095,8 @@ def relocate(repository, options = Hash.new) @local_branch = local_branch @remote_branch = remote_branch end - @tag = options[:tag] || @tag - @commit = options[:commit] || @commit + @tag = options.fetch(:tag, @tag) + @commit = options.fetch(:commit, @commit) @repository = repository.to_str @repository_id = options[:repository_id] || From ad2a6f750360d6dc2dbaaeb02fbde2ba3c7d09a2 Mon Sep 17 00:00:00 2001 From: Sylvain Joyeux Date: Wed, 16 Aug 2017 11:49:04 -0300 Subject: [PATCH 3/6] git: update submodules when in #update --- lib/autobuild/import/git.rb | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/autobuild/import/git.rb b/lib/autobuild/import/git.rb index 90008bb5..3507ad85 100644 --- a/lib/autobuild/import/git.rb +++ b/lib/autobuild/import/git.rb @@ -1029,6 +1029,10 @@ def update(package, options = Hash.new) else merge_if_simple(package, target_commit) end + + if with_submodules? + run_git(package, "submodule", "update") + end end # @api private From 4bf2071c91676785bbcd77b218b2f40cb17c8738 Mon Sep 17 00:00:00 2001 From: Sylvain Joyeux Date: Wed, 16 Aug 2017 13:29:12 -0300 Subject: [PATCH 4/6] git: improve test readability by moving common code in helpers --- test/import/test_git.rb | 71 +++++++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 20 deletions(-) diff --git a/test/import/test_git.rb b/test/import/test_git.rb index 8dda7510..018e5b93 100644 --- a/test/import/test_git.rb +++ b/test/import/test_git.rb @@ -507,6 +507,7 @@ def pin_importer(id, options = Hash.new) describe "submodule handling" do before do + @master_root_commit = '8fc7584' tempdir = untar 'gitrepo-submodule-master.tar' untar 'gitrepo-submodule-child.tar' srcdir = File.join(tempdir, 'gitrepo-submodule-master') @@ -515,30 +516,60 @@ def pin_importer(id, options = Hash.new) @importer = Autobuild.git("#{srcdir}.git", with_submodules: true) pkg.importer = importer end - it "checks submodules out on checkout" do - importer.import(pkg) - assert File.exist?(File.join(pkg.srcdir, 'child', '.git')) - assert_equal "Commit 1", File.read(File.join(pkg.srcdir, 'child', 'FILE')).strip + + describe "checkout" do + it "checkouts submodules" do + import + assert_checkout_file_exist 'child', '.git' + assert_equal "Commit 1\n", checkout_read('child', 'FILE') + end + it "checkouts submodules at the state of the tag/commit pin" do + import commit: @master_root_commit + assert_equal "Commit 0\n", checkout_read('child', 'FILE') + end end - it "properly updates submodules if the checkout is pinned to a tag or commit" do - importer.relocate(importer.repository, commit: '80910fa21d92b8f387503d366a52c14b1ced4041') - importer.import(pkg) - assert File.exist?(File.join(pkg.srcdir, 'child', '.git')) - assert_equal "Commit 0", File.read(File.join(pkg.srcdir, 'child', 'FILE')).strip + + describe "update" do + it "updates submodules" do + import commit: @master_root_commit + import commit: nil + assert_equal "Commit 1\n", checkout_read('child', 'FILE') + end end - it "updates submodules on update" do - importer.relocate(importer.repository, commit: '80910fa21d92b8f387503d366a52c14b1ced4041') - importer.import(pkg) - importer.relocate(importer.repository, commit: nil) - importer.import(pkg) - assert_equal "Commit 1", File.read(File.join(pkg.srcdir, 'child', 'FILE')).strip + + describe "reset" do + it "resets submodules" do + import + force_reset commit: @master_root_commit + assert_equal "Commit 0\n", checkout_read('child', 'FILE') + end end - it "updates submodules on reset" do - importer.import(pkg) - importer.relocate(importer.repository, commit: '80910fa21d92b8f387503d366a52c14b1ced4041') - importer.import(pkg, reset: :force) - assert_equal "Commit 0", File.read(File.join(pkg.srcdir, 'child', 'FILE')).strip + end + + def assert_checkout_file_exist(*file) + assert File.exist?(checkout_path(*file)) + end + def refute_checkout_file_exist(*file) + refute File.exist?(checkout_path(*file)) + end + def checkout_path(*file) + File.join(pkg.srcdir, *file) + end + def checkout_read(*file) + File.read(checkout_path(*file)) + end + def force_reset(**options) + if !options.empty? + importer.relocate(importer.repository, **options) + end + importer.import(pkg, reset: :force) + end + + def import(**options) + if !options.empty? + importer.relocate(importer.repository, **options) end + importer.import(pkg) end end From 8358484cdaa7b04fdc73874b4a1830e785548613 Mon Sep 17 00:00:00 2001 From: Sylvain Joyeux Date: Wed, 16 Aug 2017 13:29:54 -0300 Subject: [PATCH 5/6] git: fix update and reset in case new submodules are added by the target commit --- lib/autobuild/import/git.rb | 2 +- test/data/gitrepo-submodule-master.tar | Bin 61440 -> 81920 bytes test/import/test_git.rb | 12 ++++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/autobuild/import/git.rb b/lib/autobuild/import/git.rb index 3507ad85..da5c1450 100644 --- a/lib/autobuild/import/git.rb +++ b/lib/autobuild/import/git.rb @@ -1031,7 +1031,7 @@ def update(package, options = Hash.new) end if with_submodules? - run_git(package, "submodule", "update") + run_git(package, "submodule", "update", '--init') end end diff --git a/test/data/gitrepo-submodule-master.tar b/test/data/gitrepo-submodule-master.tar index f2c798ff64093b67dc37e8dfa0e2d897b68799e4..f94ffa122cffa8d50f3df0820e99ba1f04267d50 100644 GIT binary patch delta 3913 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 diff --git a/test/import/test_git.rb b/test/import/test_git.rb index 018e5b93..ecf579f9 100644 --- a/test/import/test_git.rb +++ b/test/import/test_git.rb @@ -535,6 +535,12 @@ def pin_importer(id, options = Hash.new) import commit: nil assert_equal "Commit 1\n", checkout_read('child', 'FILE') end + it "initializes new submodules" do + import commit: @master_root_commit + FileUtils.rm_rf checkout_path('commit1_submodule') + import commit: nil + assert_equal "Commit 1\n", checkout_read('commit1_submodule', 'FILE') + end end describe "reset" do @@ -543,6 +549,12 @@ def pin_importer(id, options = Hash.new) force_reset commit: @master_root_commit assert_equal "Commit 0\n", checkout_read('child', 'FILE') end + it "initializes new submodules" do + import + refute_checkout_file_exist 'commit0_submodule' + force_reset commit: @master_root_commit + assert_equal "Commit 1\n", checkout_read('commit0_submodule', 'FILE') + end end end From eda8e55c45ad95b7663a15af393eaf05d2624f6f Mon Sep 17 00:00:00 2001 From: Sylvain Joyeux Date: Wed, 16 Aug 2017 13:30:25 -0300 Subject: [PATCH 6/6] git: add helper scripts to handle fixture git repos --- test/data/git-expand-tar | 11 +++++++++++ test/data/git-make-tar | 11 +++++++++++ 2 files changed, 22 insertions(+) create mode 100755 test/data/git-expand-tar create mode 100755 test/data/git-make-tar diff --git a/test/data/git-expand-tar b/test/data/git-expand-tar new file mode 100755 index 00000000..92ab1cc6 --- /dev/null +++ b/test/data/git-expand-tar @@ -0,0 +1,11 @@ +#! /bin/sh -e + +gitrepo=$1 +if ! test -f $gitrepo.tar; then + echo "$gitrepo.tar does not exist" + exit 1 +fi + +rm -rf $gitrepo $gitrepo.git +tar xf $gitrepo.tar +git clone $gitrepo.git $gitrepo diff --git a/test/data/git-make-tar b/test/data/git-make-tar new file mode 100755 index 00000000..a493ce45 --- /dev/null +++ b/test/data/git-make-tar @@ -0,0 +1,11 @@ +#! /bin/sh -e + +gitrepo=$1 +if ! test -d $gitrepo; then + echo "$gitrepo does not exist" + exit 1 +fi + +rm -rf $gitrepo.git $gitrepo.tar +git clone --bare $gitrepo $gitrepo.git +tar cf $gitrepo.tar $gitrepo.git