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

Side by Side Diff: git_footers.py

Issue 1135563005: Improve "dcommit in git repo" error message. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: presubmit fix Created 5 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 | « git_cl.py ('k') | 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 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 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 import argparse 6 import argparse
7 import re 7 import re
8 import sys 8 import sys
9 9
10 from collections import defaultdict 10 from collections import defaultdict
(...skipping 30 matching lines...) Expand all
41 if not all(footers): 41 if not all(footers):
42 return defaultdict(list) 42 return defaultdict(list)
43 43
44 footer_map = defaultdict(list) 44 footer_map = defaultdict(list)
45 for (k, v) in footers: 45 for (k, v) in footers:
46 footer_map[normalize_name(k)].append(v.strip()) 46 footer_map[normalize_name(k)].append(v.strip())
47 47
48 return footer_map 48 return footer_map
49 49
50 50
51 def get_footer_svn_id(branch=None):
52 if not branch:
53 branch = git.root()
54 svn_id = None
55 message = git.run('log', '-1', '--format=%B', branch)
56 footers = parse_footers(message)
57 git_svn_id = get_unique(footers, 'git-svn-id')
58 if git_svn_id:
59 match = GIT_SVN_ID_PATTERN.match(git_svn_id)
60 if match:
61 svn_id = match.group(1)
62 return svn_id
63
64
51 def get_unique(footers, key): 65 def get_unique(footers, key):
52 key = normalize_name(key) 66 key = normalize_name(key)
53 values = footers[key] 67 values = footers[key]
54 assert len(values) <= 1, 'Multiple %s footers' % key 68 assert len(values) <= 1, 'Multiple %s footers' % key
55 if values: 69 if values:
56 return values[0] 70 return values[0]
57 else: 71 else:
58 return None 72 return None
59 73
60 74
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 print '%s: %s' % (k, v) 155 print '%s: %s' % (k, v)
142 return 0 156 return 0
143 157
144 158
145 if __name__ == '__main__': 159 if __name__ == '__main__':
146 try: 160 try:
147 sys.exit(main(sys.argv[1:])) 161 sys.exit(main(sys.argv[1:]))
148 except KeyboardInterrupt: 162 except KeyboardInterrupt:
149 sys.stderr.write('interrupted\n') 163 sys.stderr.write('interrupted\n')
150 sys.exit(1) 164 sys.exit(1)
OLDNEW
« no previous file with comments | « git_cl.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698