mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #4899 from dearblue/build-git
Use `git checkout` instead of `git reset`
This commit is contained in:
@@ -279,7 +279,7 @@ module MRuby
|
||||
|
||||
class Command::Git < Command
|
||||
attr_accessor :flags
|
||||
attr_accessor :clone_options, :pull_options, :checkout_options, :reset_options
|
||||
attr_accessor :clone_options, :pull_options, :checkout_options, :checkout_detach_options, :reset_options
|
||||
|
||||
def initialize(build)
|
||||
super
|
||||
@@ -288,6 +288,7 @@ module MRuby
|
||||
@clone_options = "clone %{flags} %{url} %{dir}"
|
||||
@pull_options = "--git-dir %{repo_dir}/.git --work-tree %{repo_dir} pull"
|
||||
@checkout_options = "--git-dir %{repo_dir}/.git --work-tree %{repo_dir} checkout %{checksum_hash}"
|
||||
@checkout_detach_options = "--git-dir %{repo_dir}/.git --work-tree %{repo_dir} checkout --detach %{checksum_hash}"
|
||||
@reset_options = "--git-dir %{repo_dir}/.git --work-tree %{repo_dir} reset %{checksum_hash}"
|
||||
end
|
||||
|
||||
@@ -302,12 +303,17 @@ module MRuby
|
||||
end
|
||||
|
||||
def run_checkout(dir, checksum_hash)
|
||||
_pp "GIT CHECKOUT", checksum_hash
|
||||
_pp "GIT CHECKOUT", dir, checksum_hash
|
||||
_run checkout_options, { :checksum_hash => checksum_hash, :repo_dir => shellquote(dir) }
|
||||
end
|
||||
|
||||
def run_checkout_detach(dir, checksum_hash)
|
||||
_pp "GIT CHECKOUT DETACH", dir, checksum_hash
|
||||
_run checkout_detach_options, { :checksum_hash => checksum_hash, :repo_dir => shellquote(dir) }
|
||||
end
|
||||
|
||||
def run_reset_hard(dir, checksum_hash)
|
||||
_pp "GIT RESET", checksum_hash
|
||||
_pp "GIT RESET", dir, checksum_hash
|
||||
_run reset_options, { :checksum_hash => checksum_hash, :repo_dir => shellquote(dir) }
|
||||
end
|
||||
|
||||
|
||||
@@ -86,14 +86,13 @@ module MRuby
|
||||
|
||||
if File.exist?(gemdir)
|
||||
if $pull_gems
|
||||
git.run_pull gemdir, url
|
||||
# Jump to the top of the branch
|
||||
git.run_checkout(gemdir, branch)
|
||||
git.run_reset_hard gemdir, "origin/#{branch}"
|
||||
git.run_checkout gemdir, branch
|
||||
git.run_pull gemdir, url
|
||||
elsif params[:checksum_hash]
|
||||
git.run_reset_hard(gemdir, params[:checksum_hash])
|
||||
git.run_checkout_detach gemdir, params[:checksum_hash]
|
||||
elsif lock
|
||||
git.run_reset_hard(gemdir, lock['commit'])
|
||||
git.run_checkout_detach gemdir, lock['commit']
|
||||
end
|
||||
else
|
||||
options = [params[:options]] || []
|
||||
@@ -105,9 +104,9 @@ module MRuby
|
||||
|
||||
# Jump to the specified commit
|
||||
if params[:checksum_hash]
|
||||
git.run_reset_hard gemdir, params[:checksum_hash]
|
||||
git.run_checkout_detach gemdir, params[:checksum_hash]
|
||||
elsif lock
|
||||
git.run_reset_hard gemdir, lock['commit']
|
||||
git.run_checkout_detach gemdir, lock['commit']
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user