Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(926)

Side by Side Diff: roll_dep.py

Issue 2047013005: Use different exit code when desired dep roll is a no-op (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2015 The Chromium Authors. All rights reserved. 2 # Copyright 2015 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Rolls DEPS controlled dependency. 6 """Rolls DEPS controlled dependency.
7 7
8 Works only with git checkout and git dependencies. Currently this 8 Works only with git checkout and git dependencies. Currently this
9 script will always roll to the tip of to origin/master. 9 script will always roll to the tip of to origin/master.
10 """ 10 """
11 11
12 import argparse 12 import argparse
13 import os 13 import os
14 import re 14 import re
15 import subprocess 15 import subprocess
16 import sys 16 import sys
17 17
18 NEED_SHELL = sys.platform.startswith('win') 18 NEED_SHELL = sys.platform.startswith('win')
19 19
20 20
21 class Error(Exception): 21 class Error(Exception):
22 pass 22 pass
23 23
24 24
25 class AlreadyRolledError(Error):
26 pass
27
28
25 def check_output(*args, **kwargs): 29 def check_output(*args, **kwargs):
26 """subprocess.check_output() passing shell=True on Windows for git.""" 30 """subprocess.check_output() passing shell=True on Windows for git."""
27 kwargs.setdefault('shell', NEED_SHELL) 31 kwargs.setdefault('shell', NEED_SHELL)
28 return subprocess.check_output(*args, **kwargs) 32 return subprocess.check_output(*args, **kwargs)
29 33
30 34
31 def check_call(*args, **kwargs): 35 def check_call(*args, **kwargs):
32 """subprocess.check_call() passing shell=True on Windows for git.""" 36 """subprocess.check_call() passing shell=True on Windows for git."""
33 kwargs.setdefault('shell', NEED_SHELL) 37 kwargs.setdefault('shell', NEED_SHELL)
34 subprocess.check_call(*args, **kwargs) 38 subprocess.check_call(*args, **kwargs)
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 else: 106 else:
103 raise Error('Expected to find commit %s for %s in DEPS' % (head, key)) 107 raise Error('Expected to find commit %s for %s in DEPS' % (head, key))
104 108
105 print('Found old revision %s' % head) 109 print('Found old revision %s' % head)
106 110
107 check_call(['git', 'fetch', 'origin', '--quiet'], cwd=full_dir) 111 check_call(['git', 'fetch', 'origin', '--quiet'], cwd=full_dir)
108 roll_to = check_output(['git', 'rev-parse', roll_to], cwd=full_dir).strip() 112 roll_to = check_output(['git', 'rev-parse', roll_to], cwd=full_dir).strip()
109 print('Found new revision %s' % roll_to) 113 print('Found new revision %s' % roll_to)
110 114
111 if roll_to == head: 115 if roll_to == head:
112 raise Error('No revision to roll!') 116 raise AlreadyRolledError('No revision to roll!')
113 117
114 commit_range = '%s..%s' % (head[:9], roll_to[:9]) 118 commit_range = '%s..%s' % (head[:9], roll_to[:9])
115 119
116 upstream_url = check_output( 120 upstream_url = check_output(
117 ['git', 'config', 'remote.origin.url'], cwd=full_dir).strip() 121 ['git', 'config', 'remote.origin.url'], cwd=full_dir).strip()
118 log_url = get_log_url(upstream_url, head, roll_to) 122 log_url = get_log_url(upstream_url, head, roll_to)
119 cmd = [ 123 cmd = [
120 'git', 'log', commit_range, '--date=short', '--no-merges', 124 'git', 'log', commit_range, '--date=short', '--no-merges',
121 ] 125 ]
122 logs = check_output( 126 logs = check_output(
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 args.roll_to, 210 args.roll_to,
207 args.key, 211 args.key,
208 reviewers, 212 reviewers,
209 args.bug, 213 args.bug,
210 args.no_log, 214 args.no_log,
211 args.log_limit, 215 args.log_limit,
212 args.ignore_dirty_tree) 216 args.ignore_dirty_tree)
213 217
214 except Error as e: 218 except Error as e:
215 sys.stderr.write('error: %s\n' % e) 219 sys.stderr.write('error: %s\n' % e)
216 return 1 220 return 2 if isinstance(e, AlreadyRolledError) else 1
217 221
218 return 0 222 return 0
219 223
220 224
221 if __name__ == '__main__': 225 if __name__ == '__main__':
222 sys.exit(main()) 226 sys.exit(main())
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698