| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 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 # Copyright (C) 2008 Evan Martin <martine@danga.com> | 6 # Copyright (C) 2008 Evan Martin <martine@danga.com> |
| 7 | 7 |
| 8 """A git-command for integrating reviews on Rietveld and Gerrit.""" | 8 """A git-command for integrating reviews on Rietveld and Gerrit.""" |
| 9 | 9 |
| 10 from __future__ import print_function | 10 from __future__ import print_function |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 Returns default in all other cases. | 169 Returns default in all other cases. |
| 170 """ | 170 """ |
| 171 assert value_type in (int, str, bool) | 171 assert value_type in (int, str, bool) |
| 172 if branch is False: # Distinguishing default arg value from None. | 172 if branch is False: # Distinguishing default arg value from None. |
| 173 branch = GetCurrentBranch() | 173 branch = GetCurrentBranch() |
| 174 | 174 |
| 175 if not branch: | 175 if not branch: |
| 176 return default | 176 return default |
| 177 | 177 |
| 178 args = ['config'] | 178 args = ['config'] |
| 179 if value_type == int: | 179 if value_type == bool: |
| 180 args.append('--int') | |
| 181 elif value_type == bool: | |
| 182 args.append('--bool') | 180 args.append('--bool') |
| 181 # git config also has --int, but apparently git config suffers from integer |
| 182 # overflows (http://crbug.com/640115), so don't use it. |
| 183 args.append(_git_branch_config_key(branch, key)) | 183 args.append(_git_branch_config_key(branch, key)) |
| 184 code, out = RunGitWithCode(args) | 184 code, out = RunGitWithCode(args) |
| 185 if code == 0: | 185 if code == 0: |
| 186 value = out.strip() | 186 value = out.strip() |
| 187 if value_type == int: | 187 if value_type == int: |
| 188 return int(value) | 188 return int(value) |
| 189 if value_type == bool: | 189 if value_type == bool: |
| 190 return bool(value.lower() == 'true') | 190 return bool(value.lower() == 'true') |
| 191 return value | 191 return value |
| 192 return default | 192 return default |
| 193 | 193 |
| 194 | 194 |
| 195 def _git_set_branch_config_value(key, value, branch=None, **kwargs): | 195 def _git_set_branch_config_value(key, value, branch=None, **kwargs): |
| 196 """Sets the value or unsets if it's None of a git branch config. | 196 """Sets the value or unsets if it's None of a git branch config. |
| 197 | 197 |
| 198 Valid, though not necessarily existing, branch must be provided, | 198 Valid, though not necessarily existing, branch must be provided, |
| 199 otherwise currently checked out branch is used. | 199 otherwise currently checked out branch is used. |
| 200 """ | 200 """ |
| 201 if not branch: | 201 if not branch: |
| 202 branch = GetCurrentBranch() | 202 branch = GetCurrentBranch() |
| 203 assert branch, 'a branch name OR currently checked out branch is required' | 203 assert branch, 'a branch name OR currently checked out branch is required' |
| 204 args = ['config'] | 204 args = ['config'] |
| 205 # Check for boolean first, becuase bool is int, but int is not bool. | 205 # Check for boolean first, becuase bool is int, but int is not bool. |
| 206 if value is None: | 206 if value is None: |
| 207 args.append('--unset') | 207 args.append('--unset') |
| 208 elif isinstance(value, bool): | 208 elif isinstance(value, bool): |
| 209 args.append('--bool') | 209 args.append('--bool') |
| 210 value = str(value).lower() | 210 value = str(value).lower() |
| 211 elif isinstance(value, int): | |
| 212 args.append('--int') | |
| 213 value = str(value) | |
| 214 else: | 211 else: |
| 212 # git config also has --int, but apparently git config suffers from integer |
| 213 # overflows (http://crbug.com/640115), so don't use it. |
| 215 value = str(value) | 214 value = str(value) |
| 216 args.append(_git_branch_config_key(branch, key)) | 215 args.append(_git_branch_config_key(branch, key)) |
| 217 if value is not None: | 216 if value is not None: |
| 218 args.append(value) | 217 args.append(value) |
| 219 RunGit(args, **kwargs) | 218 RunGit(args, **kwargs) |
| 220 | 219 |
| 221 | 220 |
| 222 def add_git_similarity(parser): | 221 def add_git_similarity(parser): |
| 223 parser.add_option( | 222 parser.add_option( |
| 224 '--similarity', metavar='SIM', type=int, action='store', | 223 '--similarity', metavar='SIM', type=int, action='store', |
| (...skipping 4977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5202 if __name__ == '__main__': | 5201 if __name__ == '__main__': |
| 5203 # These affect sys.stdout so do it outside of main() to simplify mocks in | 5202 # These affect sys.stdout so do it outside of main() to simplify mocks in |
| 5204 # unit testing. | 5203 # unit testing. |
| 5205 fix_encoding.fix_encoding() | 5204 fix_encoding.fix_encoding() |
| 5206 setup_color.init() | 5205 setup_color.init() |
| 5207 try: | 5206 try: |
| 5208 sys.exit(main(sys.argv[1:])) | 5207 sys.exit(main(sys.argv[1:])) |
| 5209 except KeyboardInterrupt: | 5208 except KeyboardInterrupt: |
| 5210 sys.stderr.write('interrupted\n') | 5209 sys.stderr.write('interrupted\n') |
| 5211 sys.exit(1) | 5210 sys.exit(1) |
| OLD | NEW |