libv8 6.2.414.42.1 → 6.3.292.48.0beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/libv8/version.rb +1 -1
- data/vendor/depot_tools/PRESUBMIT.py +38 -0
- data/vendor/depot_tools/bootstrap/win/manifest.txt +3 -1
- data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +2 -0
- data/vendor/depot_tools/checkout.py +1 -1
- data/vendor/depot_tools/cipd_manifest.txt +1 -1
- data/vendor/depot_tools/gclient_scm.py +23 -14
- data/vendor/depot_tools/gerrit_util.py +15 -10
- data/vendor/depot_tools/git_cl.py +23 -11
- data/vendor/depot_tools/git_drover.py +2 -1
- data/vendor/depot_tools/git_upstream_diff.py +2 -1
- data/vendor/depot_tools/gsutil.py +1 -1
- data/vendor/depot_tools/infra/config/recipes.cfg +1 -1
- data/vendor/depot_tools/presubmit_canned_checks.py +8 -1
- data/vendor/depot_tools/presubmit_support.py +2 -1
- data/vendor/depot_tools/recipes/README.recipes.md +56 -43
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +1 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +1 -4
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +105 -0
- data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +5 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/__init__.py +6 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +25 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +75 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +12 -0
- data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.py +10 -1
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +13 -11
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_rietveld_patch.json +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_rietveld_patch_new.json +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +2 -0
- data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +2 -0
- data/vendor/depot_tools/recipes/trigger_recipe_roller.txt +1 -0
- data/vendor/depot_tools/roll_dep.py +116 -78
- data/vendor/depot_tools/scm.py +6 -4
- data/vendor/depot_tools/split_cl.py +45 -18
- metadata +7 -5
- data/patches/0005-avoid-constructor-inheritance-due-to-compilation-iss.patch +0 -81
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 61c3bf8a873f670cef6d2846cb09c8e6e8837160
|
|
4
|
+
data.tar.gz: 3ab377edad709714dfc61f7be3f37f3801ce1b3d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8645f9ffc99b2b8226880f664f088e76f49038138ed73984d546f88fb2a4bb07f659eb7540aa2694442cc6ea7327fbf39283c86d4c459ef44dd87bbecdc86fb6
|
|
7
|
+
data.tar.gz: 3fdcabaa1d2e7bebd1439a79a79fd0e52ffeebda196fd5b595895314e3128e0ae43a49b1fa17602ffdc1274db1df0eac5a4300f15a777aeaaafc122da70fdc6c
|
data/CHANGELOG.md
CHANGED
data/lib/libv8/version.rb
CHANGED
|
@@ -12,6 +12,16 @@ import fnmatch
|
|
|
12
12
|
import os
|
|
13
13
|
|
|
14
14
|
|
|
15
|
+
ENSURE_FILE_TEMPLATE = r'''
|
|
16
|
+
$VerifiedPlatform linux-386 linux-amd64 linux-arm64 linux-armv6l linux-mips64
|
|
17
|
+
$VerifiedPlatform linux-ppc64 linux-ppc64le linux-s390x
|
|
18
|
+
$VerifiedPlatform mac-amd64
|
|
19
|
+
$VerifiedPlatform windows-386 windows-amd64
|
|
20
|
+
|
|
21
|
+
%s %s
|
|
22
|
+
'''
|
|
23
|
+
|
|
24
|
+
|
|
15
25
|
def DepotToolsPylint(input_api, output_api):
|
|
16
26
|
"""Gather all the pylint logic into one place to make it self-contained."""
|
|
17
27
|
white_list = [
|
|
@@ -59,6 +69,34 @@ def CommonChecks(input_api, output_api, tests_to_black_list):
|
|
|
59
69
|
tests.extend(unit_tests)
|
|
60
70
|
else:
|
|
61
71
|
print('Warning: not running unit tests on Windows')
|
|
72
|
+
|
|
73
|
+
# Validate CIPD manifests.
|
|
74
|
+
root = input_api.os_path.normpath(
|
|
75
|
+
input_api.os_path.abspath(input_api.PresubmitLocalPath()))
|
|
76
|
+
rel_file = lambda rel: input_api.os_path.join(root, rel)
|
|
77
|
+
cipd_manifests = set(rel_file(input_api.os_path.join(*x)) for x in (
|
|
78
|
+
('cipd_manifest.txt',),
|
|
79
|
+
('bootstrap', 'win', 'manifest.txt'),
|
|
80
|
+
('bootstrap', 'win', 'manifest_bleeding_edge.txt'),
|
|
81
|
+
|
|
82
|
+
# Also generate a file for the cipd client itself.
|
|
83
|
+
('cipd_client_version',),
|
|
84
|
+
))
|
|
85
|
+
affected_manifests = input_api.AffectedFiles(
|
|
86
|
+
include_deletes=False,
|
|
87
|
+
file_filter=lambda x:
|
|
88
|
+
input_api.os_path.normpath(x.AbsoluteLocalPath()) in cipd_manifests)
|
|
89
|
+
for path in affected_manifests:
|
|
90
|
+
path = path.AbsoluteLocalPath()
|
|
91
|
+
if path.endswith('.txt'):
|
|
92
|
+
tests.append(input_api.canned_checks.CheckCIPDManifest(
|
|
93
|
+
input_api, output_api, path=path))
|
|
94
|
+
else:
|
|
95
|
+
pkg = 'infra/tools/cipd/${platform}'
|
|
96
|
+
ver = input_api.ReadFile(path)
|
|
97
|
+
tests.append(input_api.canned_checks.CheckCIPDManifest(
|
|
98
|
+
input_api, output_api, content=ENSURE_FILE_TEMPLATE % (pkg, ver)))
|
|
99
|
+
|
|
62
100
|
results.extend(input_api.RunTests(tests))
|
|
63
101
|
return results
|
|
64
102
|
|
|
@@ -11,8 +11,10 @@
|
|
|
11
11
|
# string "cpython" and ends with the CIPD tag "version:VERSION". It uses this
|
|
12
12
|
# to extract VERSION.
|
|
13
13
|
|
|
14
|
+
$VerifiedPlatform windows-386 windows-amd64
|
|
15
|
+
|
|
14
16
|
@Subdir python
|
|
15
17
|
infra/python/cpython/windows-386 version:2.7.6
|
|
16
18
|
|
|
17
19
|
@Subdir git
|
|
18
|
-
infra/git
|
|
20
|
+
infra/git/windows-${arch} version:2.15.1.2.chromium12
|
|
@@ -301,7 +301,7 @@ class GitCheckout(CheckoutBase):
|
|
|
301
301
|
if errors:
|
|
302
302
|
raise PatchApplicationFailed(errors, verbose)
|
|
303
303
|
found_files = self._check_output_git(
|
|
304
|
-
['diff', '--ignore-submodules',
|
|
304
|
+
['-c', 'core.quotePath=false', 'diff', '--ignore-submodules',
|
|
305
305
|
'--name-only', '--staged']).splitlines(False)
|
|
306
306
|
if sorted(patches.filenames) != sorted(found_files):
|
|
307
307
|
extra_files = sorted(set(found_files) - set(patches.filenames))
|
|
@@ -11,7 +11,7 @@ $VerifiedPlatform windows-386 windows-amd64
|
|
|
11
11
|
infra/tools/luci/vpython/${platform} git_revision:a3d636052088db3daa48413b3e209eed4f5cb4ad
|
|
12
12
|
|
|
13
13
|
# LUCI editor
|
|
14
|
-
infra/tools/luci/led/${platform} git_revision:
|
|
14
|
+
infra/tools/luci/led/${platform} git_revision:54b6b3102fbb15ca3e3bd762ff3df7b08057d653
|
|
15
15
|
|
|
16
16
|
# Mac toolchain installer
|
|
17
17
|
infra/tools/mac_toolchain/${os=mac}-${arch} git_revision:2b69be6203f56a970202d9b5984557c0453b4eb0
|
|
@@ -270,12 +270,19 @@ class GitWrapper(SCMWrapper):
|
|
|
270
270
|
# time-stamp of the currently checked out revision.
|
|
271
271
|
return self._Capture(['log', '-n', '1', '--format=%ai'])
|
|
272
272
|
|
|
273
|
+
def _GetDiffFilenames(self, base):
|
|
274
|
+
"""Returns the names of files modified since base."""
|
|
275
|
+
return self._Capture(
|
|
276
|
+
# Filter to remove base if it is None.
|
|
277
|
+
filter(bool, ['-c', 'core.quotePath=false', 'diff', '--name-only', base])
|
|
278
|
+
).split()
|
|
279
|
+
|
|
273
280
|
def diff(self, options, _args, _file_list):
|
|
274
281
|
try:
|
|
275
282
|
merge_base = [self._Capture(['merge-base', 'HEAD', self.remote])]
|
|
276
283
|
except subprocess2.CalledProcessError:
|
|
277
284
|
merge_base = []
|
|
278
|
-
self._Run(['diff'] + merge_base, options)
|
|
285
|
+
self._Run(['-c', 'core.quotePath=false', 'diff'] + merge_base, options)
|
|
279
286
|
|
|
280
287
|
def pack(self, _options, _args, _file_list):
|
|
281
288
|
"""Generates a patch file which can be applied to the root of the
|
|
@@ -305,7 +312,8 @@ class GitWrapper(SCMWrapper):
|
|
|
305
312
|
# actually in a broken state here. The index will have both 'a' and 'A',
|
|
306
313
|
# but only one of them will exist on the disk. To progress, we delete
|
|
307
314
|
# everything that status thinks is modified.
|
|
308
|
-
output = self._Capture([
|
|
315
|
+
output = self._Capture([
|
|
316
|
+
'-c', 'core.quotePath=false', 'status', '--porcelain'], strip=False)
|
|
309
317
|
for line in output.splitlines():
|
|
310
318
|
# --porcelain (v1) looks like:
|
|
311
319
|
# XY filename
|
|
@@ -324,7 +332,8 @@ class GitWrapper(SCMWrapper):
|
|
|
324
332
|
self._Fetch(options, prune=True, quiet=options.verbose)
|
|
325
333
|
self._Scrub(revision, options)
|
|
326
334
|
if file_list is not None:
|
|
327
|
-
files = self._Capture(
|
|
335
|
+
files = self._Capture(
|
|
336
|
+
['-c', 'core.quotePath=false', 'ls-files']).splitlines()
|
|
328
337
|
file_list.extend([os.path.join(self.checkout_path, f) for f in files])
|
|
329
338
|
|
|
330
339
|
def _DisableHooks(self):
|
|
@@ -358,7 +367,6 @@ class GitWrapper(SCMWrapper):
|
|
|
358
367
|
self.Print('FAILED to break lock: %s: %s' % (to_break, ex))
|
|
359
368
|
raise
|
|
360
369
|
|
|
361
|
-
|
|
362
370
|
def update(self, options, args, file_list):
|
|
363
371
|
"""Runs git to update or transparently checkout the working copy.
|
|
364
372
|
|
|
@@ -440,7 +448,8 @@ class GitWrapper(SCMWrapper):
|
|
|
440
448
|
self._DeleteOrMove(options.force)
|
|
441
449
|
self._Clone(revision, url, options)
|
|
442
450
|
if file_list is not None:
|
|
443
|
-
files = self._Capture(
|
|
451
|
+
files = self._Capture(
|
|
452
|
+
['-c', 'core.quotePath=false', 'ls-files']).splitlines()
|
|
444
453
|
file_list.extend([os.path.join(self.checkout_path, f) for f in files])
|
|
445
454
|
if not verbose:
|
|
446
455
|
# Make the output a little prettier. It's nice to have some whitespace
|
|
@@ -625,8 +634,7 @@ class GitWrapper(SCMWrapper):
|
|
|
625
634
|
raise gclient_utils.Error(switch_error)
|
|
626
635
|
else:
|
|
627
636
|
# case 3 - the default case
|
|
628
|
-
rebase_files = self.
|
|
629
|
-
['diff', upstream_branch, '--name-only']).split()
|
|
637
|
+
rebase_files = self._GetDiffFilenames(upstream_branch)
|
|
630
638
|
if verbose:
|
|
631
639
|
self.Print('Trying fast-forward merge to branch : %s' % upstream_branch)
|
|
632
640
|
try:
|
|
@@ -719,7 +727,8 @@ class GitWrapper(SCMWrapper):
|
|
|
719
727
|
# merge-base by default), so doesn't include untracked files. So we use
|
|
720
728
|
# 'git ls-files --directory --others --exclude-standard' here directly.
|
|
721
729
|
paths = scm.GIT.Capture(
|
|
722
|
-
['
|
|
730
|
+
['-c', 'core.quotePath=false', 'ls-files',
|
|
731
|
+
'--directory', '--others', '--exclude-standard'],
|
|
723
732
|
self.checkout_path)
|
|
724
733
|
for path in (p for p in paths.splitlines() if p.endswith('/')):
|
|
725
734
|
full_path = os.path.join(self.checkout_path, path)
|
|
@@ -729,7 +738,6 @@ class GitWrapper(SCMWrapper):
|
|
|
729
738
|
|
|
730
739
|
return self._Capture(['rev-parse', '--verify', 'HEAD'])
|
|
731
740
|
|
|
732
|
-
|
|
733
741
|
def revert(self, options, _args, file_list):
|
|
734
742
|
"""Reverts local modifications.
|
|
735
743
|
|
|
@@ -763,7 +771,7 @@ class GitWrapper(SCMWrapper):
|
|
|
763
771
|
return self.update(options, [], file_list)
|
|
764
772
|
|
|
765
773
|
if file_list is not None:
|
|
766
|
-
files = self.
|
|
774
|
+
files = self._GetDiffFilenames(deps_revision)
|
|
767
775
|
|
|
768
776
|
self._Scrub(deps_revision, options)
|
|
769
777
|
self._Run(['clean', '-f', '-d'], options)
|
|
@@ -788,10 +796,11 @@ class GitWrapper(SCMWrapper):
|
|
|
788
796
|
merge_base = [self._Capture(['merge-base', 'HEAD', self.remote])]
|
|
789
797
|
except subprocess2.CalledProcessError:
|
|
790
798
|
merge_base = []
|
|
791
|
-
self._Run(
|
|
792
|
-
|
|
799
|
+
self._Run(
|
|
800
|
+
['-c', 'core.quotePath=false', 'diff', '--name-status'] + merge_base,
|
|
801
|
+
options, stdout=self.out_fh, always=options.verbose)
|
|
793
802
|
if file_list is not None:
|
|
794
|
-
files = self.
|
|
803
|
+
files = self._GetDiffFilenames(merge_base[0] if merge_base else None)
|
|
795
804
|
file_list.extend([os.path.join(self.checkout_path, f) for f in files])
|
|
796
805
|
|
|
797
806
|
def GetUsableRev(self, rev, options):
|
|
@@ -956,7 +965,7 @@ class GitWrapper(SCMWrapper):
|
|
|
956
965
|
branch=None, printed_path=False, merge=False):
|
|
957
966
|
"""Attempt to rebase onto either upstream or, if specified, newbase."""
|
|
958
967
|
if files is not None:
|
|
959
|
-
files.extend(self.
|
|
968
|
+
files.extend(self._GetDiffFilenames(upstream))
|
|
960
969
|
revision = upstream
|
|
961
970
|
if newbase:
|
|
962
971
|
revision = newbase
|
|
@@ -30,7 +30,9 @@ import gclient_utils
|
|
|
30
30
|
from third_party import httplib2
|
|
31
31
|
|
|
32
32
|
LOGGER = logging.getLogger()
|
|
33
|
-
|
|
33
|
+
# With a starting sleep time of 1 second, 2^n exponential backoff, and six
|
|
34
|
+
# total tries, the sleep time between the first and last tries will be 31s.
|
|
35
|
+
TRY_LIMIT = 6
|
|
34
36
|
|
|
35
37
|
|
|
36
38
|
# Controls the transport protocol used to communicate with gerrit.
|
|
@@ -258,13 +260,6 @@ class GceAuthenticator(Authenticator):
|
|
|
258
260
|
def _get(url, **kwargs):
|
|
259
261
|
next_delay_sec = 1
|
|
260
262
|
for i in xrange(TRY_LIMIT):
|
|
261
|
-
if i > 0:
|
|
262
|
-
# Retry server error status codes.
|
|
263
|
-
LOGGER.info('Encountered server error; retrying after %d second(s).',
|
|
264
|
-
next_delay_sec)
|
|
265
|
-
time.sleep(next_delay_sec)
|
|
266
|
-
next_delay_sec *= 2
|
|
267
|
-
|
|
268
263
|
p = urlparse.urlparse(url)
|
|
269
264
|
c = GetConnectionObject(protocol=p.scheme)
|
|
270
265
|
resp, contents = c.request(url, 'GET', **kwargs)
|
|
@@ -272,6 +267,15 @@ class GceAuthenticator(Authenticator):
|
|
|
272
267
|
if resp.status < httplib.INTERNAL_SERVER_ERROR:
|
|
273
268
|
return (resp, contents)
|
|
274
269
|
|
|
270
|
+
# Retry server error status codes.
|
|
271
|
+
LOGGER.warn('Encountered server error')
|
|
272
|
+
if TRY_LIMIT - i > 1:
|
|
273
|
+
LOGGER.info('Will retry in %d seconds (%d more times)...',
|
|
274
|
+
next_delay_sec, TRY_LIMIT - i - 1)
|
|
275
|
+
time.sleep(next_delay_sec)
|
|
276
|
+
next_delay_sec *= 2
|
|
277
|
+
|
|
278
|
+
|
|
275
279
|
@classmethod
|
|
276
280
|
def _get_token_dict(cls):
|
|
277
281
|
if cls._token_cache:
|
|
@@ -341,7 +345,7 @@ def ReadHttpResponse(conn, accept_statuses=frozenset([200])):
|
|
|
341
345
|
Common additions include 204, 400, and 404.
|
|
342
346
|
Returns: A string buffer containing the connection's reply.
|
|
343
347
|
"""
|
|
344
|
-
sleep_time =
|
|
348
|
+
sleep_time = 1
|
|
345
349
|
for idx in range(TRY_LIMIT):
|
|
346
350
|
response, contents = conn.request(**conn.req_params)
|
|
347
351
|
|
|
@@ -377,7 +381,8 @@ def ReadHttpResponse(conn, accept_statuses=frozenset([200])):
|
|
|
377
381
|
conn.req_params['uri'],
|
|
378
382
|
http_version, http_version, response.status, response.reason)
|
|
379
383
|
if TRY_LIMIT - idx > 1:
|
|
380
|
-
LOGGER.
|
|
384
|
+
LOGGER.info('Will retry in %d seconds (%d more times)...',
|
|
385
|
+
sleep_time, TRY_LIMIT - idx - 1)
|
|
381
386
|
time.sleep(sleep_time)
|
|
382
387
|
sleep_time = sleep_time * 2
|
|
383
388
|
if response.status not in accept_statuses:
|
|
@@ -716,14 +716,18 @@ def write_try_results_json(output_file, builds):
|
|
|
716
716
|
"""
|
|
717
717
|
|
|
718
718
|
def convert_build_dict(build):
|
|
719
|
+
"""Extracts some of the information from one build dict."""
|
|
720
|
+
parameters = json.loads(build.get('parameters_json', '{}')) or {}
|
|
719
721
|
return {
|
|
720
722
|
'buildbucket_id': build.get('id'),
|
|
721
|
-
'status': build.get('status'),
|
|
722
|
-
'result': build.get('result'),
|
|
723
723
|
'bucket': build.get('bucket'),
|
|
724
|
-
'builder_name':
|
|
725
|
-
|
|
724
|
+
'builder_name': parameters.get('builder_name'),
|
|
725
|
+
'created_ts': build.get('created_ts'),
|
|
726
|
+
'experimental': build.get('experimental'),
|
|
726
727
|
'failure_reason': build.get('failure_reason'),
|
|
728
|
+
'result': build.get('result'),
|
|
729
|
+
'status': build.get('status'),
|
|
730
|
+
'tags': build.get('tags'),
|
|
727
731
|
'url': build.get('url'),
|
|
728
732
|
}
|
|
729
733
|
|
|
@@ -2574,7 +2578,9 @@ class _GerritChangelistImpl(_ChangelistCodereviewBase):
|
|
|
2574
2578
|
|
|
2575
2579
|
def GetMostRecentPatchset(self):
|
|
2576
2580
|
data = self._GetChangeDetail(['CURRENT_REVISION'])
|
|
2577
|
-
|
|
2581
|
+
patchset = data['revisions'][data['current_revision']]['_number']
|
|
2582
|
+
self.SetPatchset(patchset)
|
|
2583
|
+
return patchset
|
|
2578
2584
|
|
|
2579
2585
|
def FetchDescription(self, force=False):
|
|
2580
2586
|
data = self._GetChangeDetail(['CURRENT_REVISION', 'CURRENT_COMMIT'],
|
|
@@ -3877,8 +3883,8 @@ class _GitCookiesChecker(object):
|
|
|
3877
3883
|
|
|
3878
3884
|
@staticmethod
|
|
3879
3885
|
def _parse_identity(identity):
|
|
3880
|
-
"""Parses identity "git-<
|
|
3881
|
-
# Special case:
|
|
3886
|
+
"""Parses identity "git-<username>.domain" into <username> and domain."""
|
|
3887
|
+
# Special case: usernames that contain ".", which are generally not
|
|
3882
3888
|
# distinguishable from sub-domains. But we do know typical domains:
|
|
3883
3889
|
if identity.endswith('.chromium.org'):
|
|
3884
3890
|
domain = 'chromium.org'
|
|
@@ -4427,7 +4433,7 @@ def CMDstatus(parser, args):
|
|
|
4427
4433
|
if issueid:
|
|
4428
4434
|
print(issueid)
|
|
4429
4435
|
elif options.field == 'patch':
|
|
4430
|
-
patchset = cl.
|
|
4436
|
+
patchset = cl.GetMostRecentPatchset()
|
|
4431
4437
|
if patchset:
|
|
4432
4438
|
print(patchset)
|
|
4433
4439
|
elif options.field == 'status':
|
|
@@ -5050,6 +5056,10 @@ def CMDsplit(parser, args):
|
|
|
5050
5056
|
"$directory will be replaced by each CL's directory.")
|
|
5051
5057
|
parser.add_option("-c", "--comment", dest="comment_file",
|
|
5052
5058
|
help="A text file containing a CL comment.")
|
|
5059
|
+
parser.add_option("-n", "--dry-run", dest="dry_run", action='store_true',
|
|
5060
|
+
default=False,
|
|
5061
|
+
help="List the files and reviewers for each CL that would "
|
|
5062
|
+
"be created, but don't create branches or CLs.")
|
|
5053
5063
|
options, _ = parser.parse_args(args)
|
|
5054
5064
|
|
|
5055
5065
|
if not options.description_file:
|
|
@@ -5059,7 +5069,7 @@ def CMDsplit(parser, args):
|
|
|
5059
5069
|
return CMDupload(OptionParser(), args)
|
|
5060
5070
|
|
|
5061
5071
|
return split_cl.SplitCl(options.description_file, options.comment_file,
|
|
5062
|
-
Changelist, WrappedCMDupload)
|
|
5072
|
+
Changelist, WrappedCMDupload, options.dry_run)
|
|
5063
5073
|
|
|
5064
5074
|
|
|
5065
5075
|
@subcommand.usage('DEPRECATED')
|
|
@@ -5357,7 +5367,8 @@ def PushToGitWithAutoRebase(remote, branch, original_description,
|
|
|
5357
5367
|
print('Your patch doesn\'t apply cleanly to \'%s\' HEAD @ %s, '
|
|
5358
5368
|
'the following files have merge conflicts:' %
|
|
5359
5369
|
(branch, parent_hash))
|
|
5360
|
-
print(RunGit(['
|
|
5370
|
+
print(RunGit(['-c', 'core.quotePath=false', 'diff',
|
|
5371
|
+
'--name-status', '--diff-filter=U']).strip())
|
|
5361
5372
|
print('Please rebase your patch and try again.')
|
|
5362
5373
|
RunGitWithCode(['cherry-pick', '--abort'])
|
|
5363
5374
|
break
|
|
@@ -5878,7 +5889,8 @@ def CMDowners(parser, args):
|
|
|
5878
5889
|
def BuildGitDiffCmd(diff_type, upstream_commit, args):
|
|
5879
5890
|
"""Generates a diff command."""
|
|
5880
5891
|
# Generate diff for the current branch's changes.
|
|
5881
|
-
diff_cmd = ['
|
|
5892
|
+
diff_cmd = ['-c', 'core.quotePath=false', 'diff',
|
|
5893
|
+
'--no-ext-diff', '--no-prefix', diff_type,
|
|
5882
5894
|
upstream_commit, '--']
|
|
5883
5895
|
|
|
5884
5896
|
if args:
|
|
@@ -262,7 +262,8 @@ class _Drover(object):
|
|
|
262
262
|
# Files that have been deleted between branch and cherry-pick will not have
|
|
263
263
|
# their skip-worktree bit set so set it manually for those files to avoid
|
|
264
264
|
# git status incorrectly listing them as unstaged deletes.
|
|
265
|
-
repo_status = self._run_git_command(
|
|
265
|
+
repo_status = self._run_git_command(
|
|
266
|
+
['-c', 'core.quotePath=false', 'status', '--porcelain']).splitlines()
|
|
266
267
|
extra_files = [f[3:] for f in repo_status if f[:2] == ' D']
|
|
267
268
|
if extra_files:
|
|
268
269
|
self._run_git_command_with_stdin(
|
|
@@ -34,7 +34,8 @@ def main(args):
|
|
|
34
34
|
print 'fatal: No upstream configured for branch \'%s\'' % opts.branch
|
|
35
35
|
return 1
|
|
36
36
|
|
|
37
|
-
cmd = [git.GIT_EXE, '
|
|
37
|
+
cmd = [git.GIT_EXE, '-c', 'core.quotePath=false',
|
|
38
|
+
'diff', '--patience', '-C', '-C']
|
|
38
39
|
if opts.wordwise:
|
|
39
40
|
cmd += ['--word-diff=color', r'--word-diff-regex=(\w+|[^[:space:]])']
|
|
40
41
|
cmd += [git.get_or_create_merge_base(opts.branch, par)]
|
|
@@ -156,7 +156,7 @@ def parse_args():
|
|
|
156
156
|
bin_dir = os.environ.get('DEPOT_TOOLS_GSUTIL_BIN_DIR', DEFAULT_BIN_DIR)
|
|
157
157
|
|
|
158
158
|
parser = argparse.ArgumentParser()
|
|
159
|
-
parser.add_argument('--force-version', default='4.
|
|
159
|
+
parser.add_argument('--force-version', default='4.28')
|
|
160
160
|
parser.add_argument('--clean', action='store_true',
|
|
161
161
|
help='Clear any existing gsutil package, forcing a new download.')
|
|
162
162
|
parser.add_argument('--fallback', default=DEFAULT_FALLBACK_GSUTIL)
|
|
@@ -1165,15 +1165,22 @@ def CheckCIPDManifest(input_api, output_api, path=None, content=None):
|
|
|
1165
1165
|
if path:
|
|
1166
1166
|
assert content is None, 'Cannot provide both "path" and "content".'
|
|
1167
1167
|
cmd += ['-ensure-file', path]
|
|
1168
|
+
name = 'Check CIPD manifest %r' % path
|
|
1168
1169
|
elif content:
|
|
1169
1170
|
assert path is None, 'Cannot provide both "path" and "content".'
|
|
1170
1171
|
cmd += ['-ensure-file=-']
|
|
1171
1172
|
kwargs['stdin'] = content
|
|
1173
|
+
# quick and dirty parser to extract checked packages.
|
|
1174
|
+
packages = [
|
|
1175
|
+
l.split()[0] for l in (ll.strip() for ll in content.splitlines())
|
|
1176
|
+
if ' ' in l and not l.startswith('$')
|
|
1177
|
+
]
|
|
1178
|
+
name = 'Check CIPD packages from string: %r' % (packages,)
|
|
1172
1179
|
else:
|
|
1173
1180
|
raise Exception('Exactly one of "path" or "content" must be provided.')
|
|
1174
1181
|
|
|
1175
1182
|
return input_api.Command(
|
|
1176
|
-
|
|
1183
|
+
name,
|
|
1177
1184
|
cmd,
|
|
1178
1185
|
kwargs,
|
|
1179
1186
|
output_api.PresubmitError)
|