• R/O
  • HTTP
  • SSH
  • HTTPS

提交

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

mrubyを超漢字で動作させる


Commit MetaInfo

修訂98285e6b16ec43ce921e779478eddbb2060cd33f (tree)
時間2015-11-16 11:43:56
作者Zachary Scott <e@zzak...>
CommiterZachary Scott

Log Message

This patch changes git gem behavior to never pull gems unless specified.

Since mgem's function almost the same as git gems, but you can see they already
avoid pulling from source after the gem has already been cloned.

You can see from the load_special_path_gem method found in the file

mruby_build_gem.rake, or extracted here:

ruby
if File.exist? mgem_list_dir

git.run_pull mgem_list_dir, mgem_list_url if $pull_gems

else

FileUtils.mkdir_p mgem_list_dir
git.run_clone mgem_list_dir, mgem_list_url, "--depth 1"

end

Also, later in this same method; mgem will set the git params.
Doing this will trigger the following block:

ruby
if File.exist?(gemdir)

if $pull_gems
git.run_pull gemdir, url
else
gemdir
end

else

# ... clone

end

You can see here, this checks if $pull_gems is enabled before pulling.

Lastly, the final condition for this method is here:

ruby
if params[:checksum_hash]

# Jump to the specified commit
git.run_checkout gemdir, params[:checksum_hash]

else

# Jump to the top of the branch
git.run_checkout gemdir, branch if $pull_gems

end

What we changed was the else condition of this block to follow the same
behavior as the aforementioned code. In doing so, we can avoid two things:

* Excess clone calls can slow down builds (times number of gems used)
* We _don't_ want our code to _update_ during build

To explain, if during build time there are some changes in the gem we are
depending upon: updating during compile time could actually break our
application.

This is what we're trying to avoid.

Change Summary

差異

--- a/tasks/mruby_build_gem.rake
+++ b/tasks/mruby_build_gem.rake
@@ -106,7 +106,7 @@ module MRuby
106106 git.run_checkout gemdir, params[:checksum_hash]
107107 else
108108 # Jump to the top of the branch
109- git.run_checkout gemdir, branch
109+ git.run_checkout gemdir, branch if $pull_gems
110110 end
111111 else
112112 fail "unknown gem option #{params}"