libv8 5.2.361.43.1 → 5.3.332.38.0beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/CHANGELOG.md +4 -0
  4. data/README.md +1 -0
  5. data/Rakefile +4 -4
  6. data/ext/libv8/paths.rb +1 -1
  7. data/lib/libv8/version.rb +1 -1
  8. data/libv8.gemspec +1 -1
  9. data/patches/0001-Build-a-standalone-static-library.patch +4 -4
  10. data/patches/0002-Don-t-compile-unnecessary-stuff.patch +4 -4
  11. data/patches/0003-Use-the-fPIC-flag-for-the-static-library.patch +4 -4
  12. data/patches/0004-Reinterpret-thread-hash-for-FreeBSD-too.patch +8 -8
  13. data/spec/location_spec.rb +1 -1
  14. data/vendor/depot_tools/README.gclient.md +67 -0
  15. data/vendor/depot_tools/README.git-cl.md +112 -0
  16. data/vendor/depot_tools/README.md +50 -36
  17. data/vendor/depot_tools/bootstrap/win/README.md +5 -5
  18. data/vendor/depot_tools/bootstrap/win/git_bootstrap.py +203 -0
  19. data/vendor/depot_tools/bootstrap/win/git_version.txt +1 -0
  20. data/vendor/depot_tools/bootstrap/win/git_version_bleeding_edge.txt +1 -0
  21. data/vendor/depot_tools/bootstrap/win/win_tools.bat +1 -148
  22. data/vendor/depot_tools/cit.py +27 -21
  23. data/vendor/depot_tools/codereview.settings +1 -1
  24. data/vendor/depot_tools/cpplint.py +1 -1
  25. data/vendor/depot_tools/fix_encoding.py +1 -1
  26. data/vendor/depot_tools/gclient.py +4 -3
  27. data/vendor/depot_tools/gclient_scm.py +20 -9
  28. data/vendor/depot_tools/gclient_utils.py +84 -13
  29. data/vendor/depot_tools/gerrit_util.py +1 -1
  30. data/vendor/depot_tools/git_cl.py +374 -218
  31. data/vendor/depot_tools/git_cl_completion.sh +34 -0
  32. data/vendor/depot_tools/git_common.py +11 -7
  33. data/vendor/depot_tools/infra/config/OWNERS +1 -0
  34. data/vendor/depot_tools/infra/config/cq.cfg +3 -12
  35. data/vendor/depot_tools/infra/config/recipes.cfg +1 -1
  36. data/vendor/depot_tools/presubmit_canned_checks.py +4 -2
  37. data/vendor/depot_tools/presubmit_support.py +26 -40
  38. data/vendor/depot_tools/recipe_modules/bot_update/api.py +31 -11
  39. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/apply_gerrit_ref.json +26 -0
  40. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic.json +1 -1
  41. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_output_manifest.json +1 -1
  42. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/basic_with_branch_heads.json +1 -1
  43. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/clobber.json +1 -1
  44. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/forced.json +1 -1
  45. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/gerrit_no_rebase_patch_ref.json +44 -0
  46. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/gerrit_no_reset.json +1 -1
  47. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/no_shallow.json +1 -1
  48. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/off.json +1 -1
  49. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/reset_root_solution_revision.json +1 -1
  50. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange.json +1 -1
  51. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/trychange_oauth2.json +1 -1
  52. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob.json +1 -1
  53. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail.json +1 -1
  54. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch.json +1 -1
  55. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_fail_patch_download.json +3 -3
  56. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle.json +1 -1
  57. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8.json +1 -1
  58. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/tryjob_v8_head_by_default.json +1 -1
  59. data/vendor/depot_tools/recipe_modules/bot_update/example.py +35 -18
  60. data/vendor/depot_tools/recipe_modules/bot_update/resources/apply_gerrit.py +33 -0
  61. data/vendor/depot_tools/recipe_modules/bot_update/resources/bot_update.py +45 -76
  62. data/vendor/depot_tools/recipe_modules/bot_update/test_api.py +13 -18
  63. data/vendor/depot_tools/recipe_modules/cipd/__init__.py +10 -0
  64. data/vendor/depot_tools/recipe_modules/cipd/api.py +244 -0
  65. data/vendor/depot_tools/recipe_modules/cipd/example.expected/basic.json +445 -0
  66. data/vendor/depot_tools/recipe_modules/cipd/example.expected/describe-failed.json +128 -0
  67. data/vendor/depot_tools/recipe_modules/cipd/example.expected/describe-many-instances.json +453 -0
  68. data/vendor/depot_tools/recipe_modules/cipd/example.expected/install-failed.json +31 -0
  69. data/vendor/depot_tools/recipe_modules/cipd/example.expected/mac64.json +445 -0
  70. data/vendor/depot_tools/recipe_modules/cipd/example.expected/win64.json +445 -0
  71. data/vendor/depot_tools/recipe_modules/cipd/example.py +115 -0
  72. data/vendor/depot_tools/recipe_modules/cipd/resources/bootstrap.py +218 -0
  73. data/vendor/depot_tools/recipe_modules/cipd/test_api.py +102 -0
  74. data/vendor/depot_tools/recipe_modules/gclient/api.py +34 -53
  75. data/vendor/depot_tools/recipe_modules/gclient/config.py +22 -128
  76. data/vendor/depot_tools/recipe_modules/gclient/example.expected/basic.json +44 -6
  77. data/vendor/depot_tools/recipe_modules/gclient/example.expected/revision.json +44 -6
  78. data/vendor/depot_tools/recipe_modules/gclient/example.expected/tryserver.json +44 -17
  79. data/vendor/depot_tools/recipe_modules/gclient/example.py +1 -1
  80. data/vendor/depot_tools/recipe_modules/gclient/test_api.py +4 -9
  81. data/vendor/depot_tools/recipe_modules/git/api.py +25 -7
  82. data/vendor/depot_tools/recipe_modules/git/example.expected/basic.json +3 -0
  83. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_branch.json +3 -0
  84. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_file_name.json +3 -0
  85. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_hash.json +3 -0
  86. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_ref.json +3 -0
  87. data/vendor/depot_tools/recipe_modules/git/example.expected/basic_submodule_update_force.json +3 -0
  88. data/vendor/depot_tools/recipe_modules/git/example.expected/can_fail_build.json +3 -0
  89. data/vendor/depot_tools/recipe_modules/git/example.expected/cannot_fail_build.json +3 -0
  90. data/vendor/depot_tools/recipe_modules/git/example.expected/cat-file_test.json +3 -0
  91. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_delta.json +3 -0
  92. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_failed.json +3 -0
  93. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output.json +3 -0
  94. data/vendor/depot_tools/recipe_modules/git/example.expected/count-objects_with_bad_output_fails_build.json +3 -0
  95. data/vendor/depot_tools/recipe_modules/git/example.expected/curl_trace_file.json +2 -1
  96. data/vendor/depot_tools/recipe_modules/git/example.expected/git-cache-checkout.json +41 -3
  97. data/vendor/depot_tools/recipe_modules/git/example.expected/platform_win.json +7 -1
  98. data/vendor/depot_tools/recipe_modules/git/example.expected/rebase_failed.json +3 -0
  99. data/vendor/depot_tools/recipe_modules/git/example.expected/remote_not_origin.json +3 -0
  100. data/vendor/depot_tools/recipe_modules/git/example.expected/set_got_revision.json +3 -0
  101. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch.json +4 -1
  102. data/vendor/depot_tools/recipe_modules/tryserver/example.expected/with_wrong_patch_new.json +4 -1
  103. data/vendor/depot_tools/recipes.py +8 -2
  104. data/vendor/depot_tools/roll-dep-svn.bat +10 -10
  105. data/vendor/depot_tools/roll_dep.py +0 -1
  106. data/vendor/depot_tools/third_party/upload.py +1 -25
  107. data/vendor/depot_tools/upload_to_google_storage.py +1 -1
  108. metadata +24 -32
  109. data/release/armhf-linux/Vagrantfile +0 -97
  110. data/release/armhf-linux/initrd.img +0 -0
  111. data/release/armhf-linux/vmlinuz +0 -0
  112. data/release/x86-linux/Vagrantfile +0 -85
  113. data/release/x86_64-freebsd-10/Vagrantfile +0 -88
  114. data/release/x86_64-linux/Vagrantfile +0 -85
  115. data/vendor/depot_tools/README.codereview +0 -99
  116. data/vendor/depot_tools/README.gclient +0 -82
  117. data/vendor/depot_tools/README.git-cl +0 -52
  118. data/vendor/depot_tools/chrome-update-create-task.bat +0 -52
  119. data/vendor/depot_tools/chrome-update.bat +0 -5
  120. data/vendor/depot_tools/chrome-update.py +0 -91
  121. data/vendor/depot_tools/create-chromium-git-src +0 -200
  122. data/vendor/depot_tools/drover +0 -25
  123. data/vendor/depot_tools/drover.bat +0 -9
  124. data/vendor/depot_tools/drover.py +0 -648
  125. data/vendor/depot_tools/gcl +0 -8
  126. data/vendor/depot_tools/gcl.bat +0 -6
  127. data/vendor/depot_tools/gcl.py +0 -1523
  128. data/vendor/depot_tools/git-try +0 -9
  129. data/vendor/depot_tools/git_try.py +0 -76
  130. data/vendor/depot_tools/luci_hacks/README.md +0 -35
  131. data/vendor/depot_tools/luci_hacks/__init__.py +0 -0
  132. data/vendor/depot_tools/luci_hacks/luci_recipe_run.isolate +0 -12
  133. data/vendor/depot_tools/luci_hacks/luci_recipe_run.py +0 -81
  134. data/vendor/depot_tools/luci_hacks/trigger_luci_job.py +0 -128
  135. data/vendor/depot_tools/recipe_modules/bot_update/example.expected/svn_mode.json +0 -59
  136. data/vendor/depot_tools/trychange.py +0 -1265
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 43fd1487e4187e22711a0c704444c5a9ccf0234d
4
- data.tar.gz: 4613f878a90eb8def2bbd281877ef734a0cfecfb
3
+ metadata.gz: a5f9904721cb788c2cf3da6f3424e1b78d4e6925
4
+ data.tar.gz: 47b9b3818f8d63c41817886545634287ac5b3bca
5
5
  SHA512:
6
- metadata.gz: 70b10268110dac25734e44eee8f95fbb0a21d9b10de5af76ad35b1742e60287e252697409d9476baa37d6c81a59ee6775ad834fa154744b63bbcee04030a5c24
7
- data.tar.gz: 1342f8040961ac0ff62e9b8f90805e576a0f71f81a7e70b5b774d510db90f137b8b244fb25b3133c83938e90abf52862881fbd0776c799245beaadfacf5458b8
6
+ metadata.gz: 2b650b61307b044fa5fa195fa87ccbbcf41477ebfd92bdcfc91d42445e97c6dd54a5f02049502e3325b1776302796c4355aba319de453132105a321d306661b6
7
+ data.tar.gz: 106f6c78794dced5caab933e5df6371391da190118af1b8e31b1bddf39a133c91a9ed618104d49830ee7aa97eb4fae15c87243494bc2f1b0ee9c48057e3696cf
@@ -20,6 +20,7 @@ matrix:
20
20
  - rvm: 1.9.3
21
21
  allow_failures:
22
22
  - rvm: 1.9.3
23
+ - rvm: rbx
23
24
  fast_finish: true
24
25
  dist: trusty
25
26
  addons:
@@ -1,3 +1,7 @@
1
+ ### Unreleased
2
+
3
+ * Update upstream v8 version to 5.3.332.38
4
+
1
5
  ### 5.2.361.43.0, 5.2.361.43.1 - 2016-06-26:
2
6
 
3
7
  * Compare compiler versions part by part as integers instead of using string
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
  [![Gem Version](https://badge.fury.io/rb/libv8.svg)](http://badge.fury.io/rb/libv8)
3
3
  [![Build Status](https://travis-ci.org/cowboyd/libv8.svg?branch=master)](https://travis-ci.org/cowboyd/libv8)
4
4
  [![Join the chat at https://gitter.im/cowboyd/therubyracer](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/cowboyd/therubyracer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
5
+ [![Code Triagers Badge](https://www.codetriage.com/cowboyd/libv8/badges/users.svg)](https://www.codetriage.com/cowboyd/libv8)
5
6
 
6
7
  A gem for distributing the v8 runtime libraries and headers in both
7
8
  source and binary form.
data/Rakefile CHANGED
@@ -57,10 +57,10 @@ namespace :build do
57
57
  arch_dir = Pathname(__FILE__).dirname.join("release/#{arch}")
58
58
  Dir.chdir(arch_dir) do
59
59
  ENV['RUBYLIB'] = nil # https://github.com/mitchellh/vagrant/issues/6158
60
- # sh "vagrant up"
61
- # sh "vagrant ssh -c 'rm -rf ~/libv8'"
62
- # sh "vagrant ssh -c 'git clone /libv8/.git ~/libv8 --recursive'"
63
- # sh "vagrant ssh -c 'cd ~/libv8 && bundle install --path vendor/bundle'"
60
+ sh "vagrant up"
61
+ sh "vagrant ssh -c 'rm -rf ~/libv8'"
62
+ sh "vagrant ssh -c 'git clone /libv8/.git ~/libv8 --recursive'"
63
+ sh "vagrant ssh -c 'cd ~/libv8 && bundle install --path vendor/bundle'"
64
64
  sh "vagrant ssh -c 'cd ~/libv8 && MAKEFLAGS+=-j4 bundle exec rake binary'"
65
65
  sh "vagrant ssh -c 'cp ~/libv8/pkg/*.gem /vagrant'"
66
66
  sh "vagrant destroy"
@@ -11,7 +11,7 @@ module Libv8
11
11
  end
12
12
 
13
13
  def object_paths
14
- [:base, :libplatform, :libbase, :snapshot].map do |name|
14
+ [:base, :libplatform, :libsampler, :libbase, :snapshot].map do |name|
15
15
  Shellwords.escape libv8_object(name)
16
16
  end
17
17
  end
@@ -1,3 +1,3 @@
1
1
  module Libv8
2
- VERSION = "5.2.361.43.1"
2
+ VERSION = "5.3.332.38.0beta2"
3
3
  end
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.rubyforge_project = "libv8"
16
16
 
17
- s.files = `git ls-files`.split("\n")
17
+ s.files = `git ls-files`.split("\n").reject {|f| f =~ /^release\//}
18
18
 
19
19
  submodules = `git submodule --quiet foreach 'echo $path'`.split("\n").map(&:chomp)
20
20
  submodules.each do |submodule|
@@ -1,4 +1,4 @@
1
- From 84470a0b6c696f42aa7f86ba5ffd22b17e0047c4 Mon Sep 17 00:00:00 2001
1
+ From 8e34b0f097ea5ea5bbde4ee8b7fd6521d40dd5e3 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Mon, 25 Jul 2016 00:00:19 +0300
4
4
  Subject: [PATCH 1/4] Build a standalone static library
@@ -8,10 +8,10 @@ Subject: [PATCH 1/4] Build a standalone static library
8
8
  1 file changed, 3 insertions(+)
9
9
 
10
10
  diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
11
- index 630c45e..1a69c6f 100644
11
+ index c6c26fb..a59e12b 100644
12
12
  --- a/gypfiles/standalone.gypi
13
13
  +++ b/gypfiles/standalone.gypi
14
- @@ -488,6 +488,9 @@
14
+ @@ -505,6 +505,9 @@
15
15
  }], # fastbuild!=0
16
16
  ],
17
17
  'target_conditions': [
@@ -22,5 +22,5 @@ index 630c45e..1a69c6f 100644
22
22
  'defines!': [
23
23
  'DEBUG',
24
24
  --
25
- 2.9.0
25
+ 2.9.3
26
26
 
@@ -1,4 +1,4 @@
1
- From 930d596106fb3289f6aa37cdf8abaec3106c31b9 Mon Sep 17 00:00:00 2001
1
+ From 48d4b7ae6cbb8a2109555f57845fa5f6aa4fa30a Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Mon, 25 Jul 2016 00:04:07 +0300
4
4
  Subject: [PATCH 2/4] Don't compile unnecessary stuff
@@ -9,10 +9,10 @@ Subject: [PATCH 2/4] Don't compile unnecessary stuff
9
9
  2 files changed, 1 insertion(+), 38 deletions(-)
10
10
 
11
11
  diff --git a/Makefile b/Makefile
12
- index 0f8f93a..68778e9 100644
12
+ index ffb5192..8e60aab 100644
13
13
  --- a/Makefile
14
14
  +++ b/Makefile
15
- @@ -264,12 +264,7 @@ GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \
15
+ @@ -265,12 +265,7 @@ GYPFILES = third_party/icu/icu.gypi third_party/icu/icu.gyp \
16
16
  gypfiles/shim_headers.gypi gypfiles/features.gypi \
17
17
  gypfiles/standalone.gypi \
18
18
  gypfiles/toolchain.gypi gypfiles/all.gyp gypfiles/mac/asan.gyp \
@@ -70,5 +70,5 @@ index ff1bea4..96820a0 100644
70
70
  }
71
71
  ]
72
72
  --
73
- 2.9.0
73
+ 2.9.3
74
74
 
@@ -1,4 +1,4 @@
1
- From 8873d0ee6e1304e256bf3181b287e189bc68a9c8 Mon Sep 17 00:00:00 2001
1
+ From 44da612b4aa078bc2090cad3bd42506f444dd900 Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Mon, 25 Jul 2016 00:05:47 +0300
4
4
  Subject: [PATCH 3/4] Use the -fPIC flag for the static library
@@ -8,10 +8,10 @@ Subject: [PATCH 3/4] Use the -fPIC flag for the static library
8
8
  1 file changed, 1 insertion(+), 1 deletion(-)
9
9
 
10
10
  diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
11
- index 1a69c6f..b19304f 100644
11
+ index a59e12b..4e64f2e 100644
12
12
  --- a/gypfiles/standalone.gypi
13
13
  +++ b/gypfiles/standalone.gypi
14
- @@ -744,7 +744,7 @@
14
+ @@ -772,7 +772,7 @@
15
15
  [ 'visibility=="hidden" and v8_enable_backtrace==0', {
16
16
  'cflags': [ '-fvisibility=hidden' ],
17
17
  }],
@@ -21,5 +21,5 @@ index 1a69c6f..b19304f 100644
21
21
  }],
22
22
  [ 'clang==0 and coverage==1', {
23
23
  --
24
- 2.9.0
24
+ 2.9.3
25
25
 
@@ -1,17 +1,17 @@
1
- From 0f376ac8f77980b86bfbfb55e3a1714201a0f78f Mon Sep 17 00:00:00 2001
1
+ From cf7ec827796ccaef75e77bd83771e7f31b645d2f Mon Sep 17 00:00:00 2001
2
2
  From: Petko Bordjukov <bordjukov@gmail.com>
3
3
  Date: Wed, 27 Jul 2016 06:20:13 +0300
4
4
  Subject: [PATCH 4/4] Reinterpret thread hash for FreeBSD, too
5
5
 
6
6
  ---
7
- src/profiler/sampler.cc | 2 +-
7
+ src/libsampler/v8-sampler.cc | 2 +-
8
8
  1 file changed, 1 insertion(+), 1 deletion(-)
9
9
 
10
- diff --git a/src/profiler/sampler.cc b/src/profiler/sampler.cc
11
- index ae47dca..4eb8780 100644
12
- --- a/src/profiler/sampler.cc
13
- +++ b/src/profiler/sampler.cc
14
- @@ -210,7 +210,7 @@ void* ThreadKey(pthread_t thread_id) {
10
+ diff --git a/src/libsampler/v8-sampler.cc b/src/libsampler/v8-sampler.cc
11
+ index edf6df1..9b2a718 100644
12
+ --- a/src/libsampler/v8-sampler.cc
13
+ +++ b/src/libsampler/v8-sampler.cc
14
+ @@ -194,7 +194,7 @@ void* ThreadKey(pthread_t thread_id) {
15
15
 
16
16
  // Returns hash value for hash map.
17
17
  uint32_t ThreadHash(pthread_t thread_id) {
@@ -21,5 +21,5 @@ index ae47dca..4eb8780 100644
21
21
  #else
22
22
  return static_cast<uint32_t>(thread_id);
23
23
  --
24
- 2.9.0
24
+ 2.9.3
25
25
 
@@ -64,7 +64,7 @@ describe "libv8 locations" do
64
64
  end
65
65
 
66
66
  it "prepends the locations of any libv8 objects on the the ldflags" do
67
- expect(@context.ldflags).to eql "/foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libplatform.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libbase.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_snapshot.a -lobjc -lpthread"
67
+ expect(@context.ldflags).to eql "/foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_base.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libplatform.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libsampler.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_libbase.a /foo\\ bar/v8/out/x64.release/obj.target/tools/gyp/libv8_snapshot.a -lobjc -lpthread"
68
68
  end
69
69
  end
70
70
  end
@@ -0,0 +1,67 @@
1
+ # gclient
2
+
3
+ gclient is a tool for managing a modular checkout of source code from multiple
4
+ source code repositories. It wraps underlying source code management commands
5
+ to provide support for distributing tree updates, status commands, and diffs
6
+ across multiple checked-out working directories.
7
+
8
+ The gclient script is controlled by a `.gclient` file at the top of a directory
9
+ tree which will contain source code from multiple locations. A `.gclient` file
10
+ is a Python script that defines a list of `solutions` with the following format:
11
+
12
+ solutions = [
13
+ { "name" : "src",
14
+ "url" : "svn://svnserver/component/trunk/src",
15
+ "custom_deps" : {
16
+ # To use the trunk of a component instead of what's in DEPS:
17
+ #"component": "https://svnserver/component/trunk/",
18
+ # To exclude a component from your working copy:
19
+ #"data/really_large_component": None,
20
+ }
21
+ },
22
+ ]
23
+
24
+ A `solution` is a collection of component pieces of software that will be
25
+ checked out in a specific directory layout for building together.
26
+
27
+ Each entry in the `solutions` list is defined by a Python dictionary that
28
+ contains the following items:
29
+
30
+ - `name`: The name of the directory in which the solution will be checked out.
31
+ - `url`: The URL from which this solution will be checked out. gclient expects
32
+ that the checked-out solution will contain a file named `DEPS` that in turn
33
+ defines the specific pieces that must be checked out to create the working
34
+ directory layout for building and developing the solution's software.
35
+ - `deps_file`: A string containing just the filename (not a path) of the file in
36
+ the solution dir to use as the list of dependencies. This tag is optional, and
37
+ defaults to `DEPS`.
38
+ - `custom_deps`: A dictionary containing optional custom overrides for entries
39
+ in the solution's `DEPS` file. This can be used to have the local working
40
+ directory *not* check out and update specific components, or to sync the local
41
+ working-directory copy of a given component to a different specific revision,
42
+ or a branch, or the head of a tree. It can also be used to append new entries
43
+ that do not exist in the `DEPS` file.
44
+
45
+ Within each checked-out solution, gclient expects to find a file typically named
46
+ `DEPS` (it actually uses the value of the `deps_file` key above) which defines
47
+ the different component pieces of software that must be checked out for the
48
+ solution. The `DEPS` file is a Python script that defines a dictionary named
49
+ `deps`:
50
+
51
+ deps = {
52
+ "src/outside": "https://outside-server/one/repo.git@12345677890123456778901234567789012345677890",
53
+ "src/component": "https://dont-use-github.com/its/unreliable.git@0000000000000000000000000000000000000000",
54
+ "src/relative": "/another/repo.git@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
55
+ }
56
+
57
+ Each item in the `deps` dictionary consists of a key-value pair. The key is the
58
+ directory into which the component will be checked out, relative to the
59
+ directory containing the `.gclient` file. The value is the URL from which that
60
+ directory will be checked out. If there is no address scheme (that is, no
61
+ `http:` or `svn:` prefix), then the value must begin with a slash and is treated
62
+ relative to the root of the solution's repository.
63
+
64
+ The URL typically contains a specific revision or change number (as appropriate
65
+ for the underlying SCM system) to `freeze` the external software at a specific,
66
+ known state. Alternatively, if there is no revision or change number, the URL
67
+ will track the latest changes on the specific trunk or branch.
@@ -0,0 +1,112 @@
1
+ # git-cl
2
+
3
+ The git-cl README describes the git-cl command set. This document describes how
4
+ code review and git work together in general, intended for people familiar with
5
+ git but unfamiliar with the code review process supported by Rietveld and
6
+ Gerrit.
7
+
8
+
9
+ ## Reitveld concepts and terms
10
+
11
+ A Rietveld review is for discussion of a single change or patch. You upload a
12
+ proposed change, the reviewer comments on your change, and then you can upload a
13
+ revised version of your change. Rietveld stores the history of uploaded patches
14
+ as well as the comments, and can compute diffs in between these patches. The
15
+ history of a patch is very much like a small branch in git, but since Rietveld
16
+ is VCS-agnostic the concepts don't map perfectly. The identifier for a single
17
+ review+patches+comments in Rietveld is called an `issue`.
18
+
19
+ Rietveld provides a basic uploader that understands git. This program is used by
20
+ git-cl, and is included in the git-cl repo as upload.py.
21
+
22
+
23
+ ## Basic interaction with git
24
+
25
+ The fundamental problem you encounter when you try to mix git and code review is
26
+ that with git it's nice to commit code locally, while during a code review
27
+ you're often requested to change something about your code. There are a few
28
+ different ways you can handle this workflow with git:
29
+
30
+ 1. Rewriting a single commit. Say the origin commit is O, and you commit your
31
+ initial work in a commit A, making your history like O--A. After review
32
+ comments, you commit --amend, effectively erasing A and making a new commit
33
+ A', so history is now O--A'. (Equivalently, you can use git reset --soft or
34
+ git rebase -i.)
35
+ 2. Writing follow-up commits. Initial work is again in A, and after review
36
+ comments, you write a new commit B so your history looks like O--A--B. When
37
+ you upload the revised patch, you upload the diff of O..B, not A..B; you
38
+ always upload the full diff of what you're proposing to change.
39
+
40
+ The Rietveld patch uploader just takes arguments to `git diff`, so either of the
41
+ above workflows work fine. If all you want to do is upload a patch, you can use
42
+ the upload.py provided by Rietveld with arguments like this:
43
+
44
+ upload.py --server server.com <args to "git diff">
45
+
46
+ The first time you upload, it creates a new issue; for follow-ups on the same
47
+ issue, you need to provide the issue number:
48
+
49
+ upload.py --server server.com --issue 1234 <args to "git diff">
50
+
51
+
52
+ ## git-cl to the rescue
53
+
54
+ git-cl simplifies the above in the following ways:
55
+
56
+ 1. `git cl config` puts a persistent --server setting in your .git/config.
57
+ 2. The first time you upload an issue, the issue number is associated with the
58
+ current *branch*. If you upload again, it will upload on the same issue.
59
+ (Note that this association is tied to a branch, not a commit, which means
60
+ you need a separate branch per review.)
61
+ 3. If your branch is _tracking_ (in the `git checkout --track` sense) another
62
+ one (like origin/master), calls to `git cl upload` will diff against that
63
+ branch by default. (You can still pass arguments to `git diff` on the
64
+ command line, if necessary.)
65
+
66
+ In the common case, this means that calling simply `git cl upload` will always
67
+ upload the correct diff to the correct place.
68
+
69
+
70
+ ## Patch series
71
+
72
+ The above is all you need to know for working on a single patch.
73
+
74
+ Things get much more complicated when you have a series of commits that you want
75
+ to get reviewed. Say your history looks like O--A--B--C. If you want to upload
76
+ that as a single review, everything works just as above.
77
+
78
+ But what if you upload each of A, B, and C as separate reviews? What if you
79
+ then need to change A?
80
+
81
+ 1. One option is rewriting history: write a new commit A', then use git rebase
82
+ -i to insert that diff in as O--A--A'--B--C as well as squash it. This is
83
+ sometimes not possible if B and C have touched some lines affected by A'.
84
+ 2. Another option, and the one espoused by software like topgit, is for you to
85
+ have separate branches for A, B, and C, and after writing A' you merge it
86
+ into each of those branches. (topgit automates this merging process.) This
87
+ is also what is recommended by git-cl, which likes having different branch
88
+ identifiers to hang the issue number off of. Your history ends up looking
89
+ like:
90
+
91
+ O---A---B---C
92
+ \ \ \
93
+ A'--B'--C'
94
+
95
+ Which is ugly, but it accurately tracks the real history of your work, can be
96
+ thrown away at the end by committing A+A' as a single `squash` commit.
97
+
98
+ In practice, this comes up pretty rarely. Suggestions for better workflows are
99
+ welcome.
100
+
101
+ ## Bash auto complition
102
+
103
+ 1. Ensure that your base git commands are autocompleted
104
+ [doc](https://git-scm.com/book/en/v1/Git-Basics-Tips-and-Tricks).
105
+ 2. Add this to your .bashrc:
106
+
107
+ # The next line enables bash completion for git cl.
108
+ if [ -f "$HOME/bin/depot_tools/git_cl_completion.sh" ]; then
109
+ . "$HOME/bin/depot_tools/git_cl_completion.sh"
110
+ fi
111
+
112
+ 3. Profit.
@@ -1,55 +1,69 @@
1
- This package contains tools for working with Chromium development:
1
+ # depot_tools
2
2
 
3
- chrome-update-create-task.bat
4
- Creates a scheduled task to do an automatic local chromium build every day.
3
+ This package contains tools for working with Chromium development. It requires
4
+ python 2.7.
5
5
 
6
- cpplint.py
7
- A copy of our linting tool which enforces Google style. Fetched from
8
- http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py
9
6
 
10
- gcl
11
- A tool for uploading and managing code reviews on the Chromium
12
- project, using the Rietveld code review tool. More info at:
13
- http://code.google.com/p/rietveld/
7
+ ## Tools
14
8
 
15
- gclient
16
- A script for managing a workspace with modular dependencies that
17
- are each checked out independently from different repositories.
18
- More info at:
19
- http://code.google.com/p/gclient/
9
+ The most important tools are:
20
10
 
21
- It updates itself automatically when running `gclient` tool. To disable
22
- auto update, set the environment variable DEPOT_TOOLS_UPDATE=0
11
+ - `fetch`: A `gclient` wrapper to checkout a project. Use `fetch --help` for
12
+ more details.
13
+ - `gclient`: A meta-checkout tool. Think
14
+ [repo](https://source.android.com/source/using-repo.html) or [git
15
+ submodules](https://git-scm.com/docs/git-submodule), except that it support
16
+ OS-specific rules, e.g. do not checkout Windows only dependencies when
17
+ checking out for Android. Use `gclient help` for more details and
18
+ [README.gclient.md](README.gclient.md).
19
+ - `git cl`: A code review tool to interact with Rietveld or Gerrit. Use `git cl
20
+ help` for more details and [README.git-cl.md](README.git-cl.md).
21
+ - `roll-dep`: A gclient dependency management tool to submit a _dep roll_,
22
+ updating a dependency to a newer revision.
23
23
 
24
- To update package manually, run .\update_depot_tools.bat on Windows,
25
- or ./update_depot_tools on Linux or Mac.
24
+ There are a lot of git utilities included.
26
25
 
27
- Note: on Windows if svn, git and python are not accessible, they will be
28
- downloaded too.
29
26
 
27
+ ## Updating
30
28
 
31
- ## Contributing
29
+ `depot_tools` updates itself automatically when running `gclient` tool. To
30
+ disable auto update, set the environment variable `DEPOT_TOOLS_UPDATE=0`.
31
+
32
+ To update package manually, run `update_depot_tools.bat` on Windows,
33
+ or `./update_depot_tools` on Linux or Mac.
34
+
35
+ On Windows only, running `gclient` will install `svn` (not for long), `git`,
36
+ `python`.
32
37
 
33
- The "gclient" wrapper knows how to keep this repository updated to
34
- the latest versions of these tools as found at:
35
38
 
36
- https://chromium.googlesource.com/chromium/tools/depot_tools.git
39
+ ## Contributing
37
40
 
38
41
  To contribute change for review:
39
42
 
40
43
  git new-branch <somename>
41
- git add <yourchanges>
42
- git commit
44
+ # Hack
45
+ git add .
46
+ git commit -a -m "Fixes goat teleporting"
43
47
  # find reviewers
44
48
  git cl owners
45
- git log <yourfiles>
46
- # upload
47
- git cl upload -r reviewer1@chromium.org,reviewer2 --send-mail
48
- # open https://codereview.chromium.org/ and send mail
49
-
50
- # if change is approved, flag it to be commited
51
- git cl set_commit
52
- # if change needs more work
49
+ git log -- <yourfiles>
50
+
51
+ # Request a review.
52
+ git cl upload -r reviewer1@chromium.org,reviewer2@chromium.org --send-mail
53
+
54
+ # Edit change description if needed.
55
+ git cl desc
56
+
57
+ # If change is approved, flag it to be commited.
58
+ git cl set-commit
59
+
60
+ # If change needs more work.
53
61
  git rebase-update
54
62
  ...
55
- git cl upload
63
+ git cl upload -t "Fixes goat teleporter destination to be Australia"
64
+
65
+
66
+ ### cpplint.py
67
+
68
+ To update cpplint.py, please submit the change upstream first at
69
+ https://github.com/google/styleguide/tree/gh-pages/cpplint then copy it down.