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

Side by Side Diff: git_cl.py

Issue 14854003: Make git-cl more accurately imitate git's editor selection process, and respect $VISUAL. (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Make tests use $GIT_EDITOR instead of $EDITOR (previously they failed for me, as $EDITOR was overriā€¦ Created 7 years, 7 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
« no previous file with comments | « gclient_utils.py ('k') | tests/abandon.sh » ('j') | 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 (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.""" 8 """A git-command for integrating reviews on Rietveld."""
9 9
10 import json 10 import json
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 def __init__(self): 238 def __init__(self):
239 self.default_server = None 239 self.default_server = None
240 self.cc = None 240 self.cc = None
241 self.root = None 241 self.root = None
242 self.is_git_svn = None 242 self.is_git_svn = None
243 self.svn_branch = None 243 self.svn_branch = None
244 self.tree_status_url = None 244 self.tree_status_url = None
245 self.viewvc_url = None 245 self.viewvc_url = None
246 self.updated = False 246 self.updated = False
247 self.is_gerrit = None 247 self.is_gerrit = None
248 self.git_editor = None
248 249
249 def LazyUpdateIfNeeded(self): 250 def LazyUpdateIfNeeded(self):
250 """Updates the settings from a codereview.settings file, if available.""" 251 """Updates the settings from a codereview.settings file, if available."""
251 if not self.updated: 252 if not self.updated:
252 cr_settings_file = FindCodereviewSettingsFile() 253 cr_settings_file = FindCodereviewSettingsFile()
253 if cr_settings_file: 254 if cr_settings_file:
254 LoadCodereviewSettingsFromFile(cr_settings_file) 255 LoadCodereviewSettingsFromFile(cr_settings_file)
255 self.updated = True 256 self.updated = True
256 DownloadHooks(False) 257 DownloadHooks(False)
257 self.updated = True 258 self.updated = True
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 363
363 def GetDefaultCCList(self): 364 def GetDefaultCCList(self):
364 return self._GetConfig('rietveld.cc', error_ok=True) 365 return self._GetConfig('rietveld.cc', error_ok=True)
365 366
366 def GetIsGerrit(self): 367 def GetIsGerrit(self):
367 """Return true if this repo is assosiated with gerrit code review system.""" 368 """Return true if this repo is assosiated with gerrit code review system."""
368 if self.is_gerrit is None: 369 if self.is_gerrit is None:
369 self.is_gerrit = self._GetConfig('gerrit.host', error_ok=True) 370 self.is_gerrit = self._GetConfig('gerrit.host', error_ok=True)
370 return self.is_gerrit 371 return self.is_gerrit
371 372
373 def GetGitEditor(self):
374 """Return the editor specified in the git config, or None if none is."""
375 if self.git_editor is None:
376 self.git_editor = self._GetConfig('core.editor', error_ok=True)
377 return self.git_editor or None
378
372 def _GetConfig(self, param, **kwargs): 379 def _GetConfig(self, param, **kwargs):
373 self.LazyUpdateIfNeeded() 380 self.LazyUpdateIfNeeded()
374 return RunGit(['config', param], **kwargs).strip() 381 return RunGit(['config', param], **kwargs).strip()
375 382
376 383
377 def ShortBranchName(branch): 384 def ShortBranchName(branch):
378 """Convert a name like 'refs/heads/foo' to just 'foo'.""" 385 """Convert a name like 'refs/heads/foo' to just 'foo'."""
379 return branch.replace('refs/heads/', '') 386 return branch.replace('refs/heads/', '')
380 387
381 388
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
846 def prompt(self): 853 def prompt(self):
847 """Asks the user to update the description.""" 854 """Asks the user to update the description."""
848 self._description = ( 855 self._description = (
849 '# Enter a description of the change.\n' 856 '# Enter a description of the change.\n'
850 '# This will be displayed on the codereview site.\n' 857 '# This will be displayed on the codereview site.\n'
851 '# The first line will also be used as the subject of the review.\n' 858 '# The first line will also be used as the subject of the review.\n'
852 ) + self._description 859 ) + self._description
853 860
854 if '\nBUG=' not in self._description: 861 if '\nBUG=' not in self._description:
855 self.append_footer('BUG=') 862 self.append_footer('BUG=')
856 content = gclient_utils.RunEditor(self._description, True) 863 content = gclient_utils.RunEditor(self._description, True,
864 git_editor=settings.GetGitEditor())
857 if not content: 865 if not content:
858 DieWithError('Running editor failed') 866 DieWithError('Running editor failed')
859 867
860 # Strip off comments. 868 # Strip off comments.
861 content = re.compile(r'^#.*$', re.MULTILINE).sub('', content).strip() 869 content = re.compile(r'^#.*$', re.MULTILINE).sub('', content).strip()
862 if not content: 870 if not content:
863 DieWithError('No CL description, aborting') 871 DieWithError('No CL description, aborting')
864 self._description = content 872 self._description = content
865 873
866 def append_footer(self, line): 874 def append_footer(self, line):
(...skipping 1130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1997 'and retry or visit go/isgaeup.\n%s') % (e.code, str(e))) 2005 'and retry or visit go/isgaeup.\n%s') % (e.code, str(e)))
1998 2006
1999 # Not a known command. Default to help. 2007 # Not a known command. Default to help.
2000 GenUsage(parser, 'help') 2008 GenUsage(parser, 'help')
2001 return CMDhelp(parser, argv) 2009 return CMDhelp(parser, argv)
2002 2010
2003 2011
2004 if __name__ == '__main__': 2012 if __name__ == '__main__':
2005 fix_encoding.fix_encoding() 2013 fix_encoding.fix_encoding()
2006 sys.exit(main(sys.argv[1:])) 2014 sys.exit(main(sys.argv[1:]))
OLDNEW
« no previous file with comments | « gclient_utils.py ('k') | tests/abandon.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698