Chromium Code Reviews| 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.""" | 8 """A git-command for integrating reviews on Rietveld.""" |
| 9 | 9 |
| 10 import datetime | |
| 10 from distutils.version import LooseVersion | 11 from distutils.version import LooseVersion |
| 11 import glob | 12 import glob |
| 12 import json | 13 import json |
| 13 import logging | 14 import logging |
| 14 import optparse | 15 import optparse |
| 15 import os | 16 import os |
| 16 import Queue | 17 import Queue |
| 17 import re | 18 import re |
| 18 import stat | 19 import stat |
| 19 import sys | 20 import sys |
| 20 import textwrap | 21 import textwrap |
| 22 import time | |
| 21 import threading | 23 import threading |
| 22 import urllib2 | 24 import urllib2 |
| 23 import urlparse | 25 import urlparse |
| 24 import webbrowser | 26 import webbrowser |
| 25 | 27 |
| 26 try: | 28 try: |
| 27 import readline # pylint: disable=F0401,W0611 | 29 import readline # pylint: disable=F0401,W0611 |
| 28 except ImportError: | 30 except ImportError: |
| 29 pass | 31 pass |
| 30 | 32 |
| (...skipping 1709 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1740 | 1742 |
| 1741 def IsSubmoduleMergeCommit(ref): | 1743 def IsSubmoduleMergeCommit(ref): |
| 1742 # When submodules are added to the repo, we expect there to be a single | 1744 # When submodules are added to the repo, we expect there to be a single |
| 1743 # non-git-svn merge commit at remote HEAD with a signature comment. | 1745 # non-git-svn merge commit at remote HEAD with a signature comment. |
| 1744 pattern = '^SVN changes up to revision [0-9]*$' | 1746 pattern = '^SVN changes up to revision [0-9]*$' |
| 1745 cmd = ['rev-list', '--merges', '--grep=%s' % pattern, '%s^!' % ref] | 1747 cmd = ['rev-list', '--merges', '--grep=%s' % pattern, '%s^!' % ref] |
| 1746 return RunGit(cmd) != '' | 1748 return RunGit(cmd) != '' |
| 1747 | 1749 |
| 1748 | 1750 |
| 1749 def SendUpstream(parser, args, cmd): | 1751 def SendUpstream(parser, args, cmd): |
| 1750 """Common code for CmdPush and CmdDCommit | 1752 """Common code for CMDland and CmdDCommit |
| 1751 | 1753 |
| 1752 Squashes branch into a single commit. | 1754 Squashes branch into a single commit. |
| 1753 Updates changelog with metadata (e.g. pointer to review). | 1755 Updates changelog with metadata (e.g. pointer to review). |
| 1754 Pushes/dcommits the code upstream. | 1756 Pushes/dcommits the code upstream. |
| 1755 Updates review and closes. | 1757 Updates review and closes. |
| 1756 """ | 1758 """ |
| 1757 parser.add_option('--bypass-hooks', action='store_true', dest='bypass_hooks', | 1759 parser.add_option('--bypass-hooks', action='store_true', dest='bypass_hooks', |
| 1758 help='bypass upload presubmit hook') | 1760 help='bypass upload presubmit hook') |
| 1759 parser.add_option('-m', dest='message', | 1761 parser.add_option('-m', dest='message', |
| 1760 help="override review description") | 1762 help="override review description") |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1999 If your project has a true writeable upstream repository, you probably want | 2001 If your project has a true writeable upstream repository, you probably want |
| 2000 to run 'git cl push' instead. | 2002 to run 'git cl push' instead. |
| 2001 Choose wisely, if you get this wrong, your commit might appear to succeed but | 2003 Choose wisely, if you get this wrong, your commit might appear to succeed but |
| 2002 will instead be silently ignored.""" | 2004 will instead be silently ignored.""" |
| 2003 print(message) | 2005 print(message) |
| 2004 ask_for_data('[Press enter to dcommit or ctrl-C to quit]') | 2006 ask_for_data('[Press enter to dcommit or ctrl-C to quit]') |
| 2005 return SendUpstream(parser, args, 'dcommit') | 2007 return SendUpstream(parser, args, 'dcommit') |
| 2006 | 2008 |
| 2007 | 2009 |
| 2008 @subcommand.usage('[upstream branch to apply against]') | 2010 @subcommand.usage('[upstream branch to apply against]') |
| 2009 def CMDpush(parser, args): | 2011 def CMDland(parser, args): |
| 2010 """Commits the current changelist via git.""" | 2012 """Commits the current changelist via git.""" |
| 2011 if settings.GetIsGitSvn(): | 2013 if settings.GetIsGitSvn(): |
| 2012 print('This appears to be an SVN repository.') | 2014 print('This appears to be an SVN repository.') |
| 2013 print('Are you sure you didn\'t mean \'git cl dcommit\'?') | 2015 print('Are you sure you didn\'t mean \'git cl dcommit\'?') |
| 2014 ask_for_data('[Press enter to push or ctrl-C to quit]') | 2016 ask_for_data('[Press enter to push or ctrl-C to quit]') |
| 2015 return SendUpstream(parser, args, 'push') | 2017 return SendUpstream(parser, args, 'push') |
| 2016 | 2018 |
| 2017 | 2019 |
| 2020 @subcommand.usage('[upstream branch to apply against]') | |
| 2021 def CMDpush(parser, args): | |
| 2022 """Temporary alias for 'land'. | |
|
szager1
2014/05/01 21:11:11
One-line comment (move trailing """ up).
| |
| 2023 """ | |
| 2024 print( | |
| 2025 "\n=======\n" | |
| 2026 "'git cl push' has been renamed to 'git cl land'.\n" | |
| 2027 "Currently they are treated as synonyms, but 'git cl push' will stop\n" | |
| 2028 "working after 2014/07/01.\n" | |
|
Nico
2014/07/16 17:53:52
Why stop supporting the old thing, and why print t
| |
| 2029 "=======\n") | |
| 2030 now = datetime.datetime.utcfromtimestamp(time.time()) | |
| 2031 if now > datetime.datetime(2014, 7, 1): | |
| 2032 print('******\nReally, you should not use this command anymore... \n' | |
| 2033 'Pausing 10 sec to help you remember :-)') | |
|
szager1
2014/05/01 21:11:11
Better, I think, to hang at the terminal:
sys.std
| |
| 2034 for n in xrange(10): | |
| 2035 time.sleep(1) | |
| 2036 print('%s seconds...' % (n+1)) | |
| 2037 print('******') | |
| 2038 return CMDland(parser, args) | |
| 2039 | |
| 2040 | |
| 2018 @subcommand.usage('<patch url or issue id>') | 2041 @subcommand.usage('<patch url or issue id>') |
| 2019 def CMDpatch(parser, args): | 2042 def CMDpatch(parser, args): |
| 2020 """Patches in a code review.""" | 2043 """Patches in a code review.""" |
| 2021 parser.add_option('-b', dest='newbranch', | 2044 parser.add_option('-b', dest='newbranch', |
| 2022 help='create a new branch off trunk for the patch') | 2045 help='create a new branch off trunk for the patch') |
| 2023 parser.add_option('-f', '--force', action='store_true', | 2046 parser.add_option('-f', '--force', action='store_true', |
| 2024 help='with -b, clobber any existing branch') | 2047 help='with -b, clobber any existing branch') |
| 2025 parser.add_option('-d', '--directory', action='store', metavar='DIR', | 2048 parser.add_option('-d', '--directory', action='store', metavar='DIR', |
| 2026 help='Change to the directory DIR immediately, ' | 2049 help='Change to the directory DIR immediately, ' |
| 2027 'before doing anything else.') | 2050 'before doing anything else.') |
| (...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2566 ('AppEngine is misbehaving and returned HTTP %d, again. Keep faith ' | 2589 ('AppEngine is misbehaving and returned HTTP %d, again. Keep faith ' |
| 2567 'and retry or visit go/isgaeup.\n%s') % (e.code, str(e))) | 2590 'and retry or visit go/isgaeup.\n%s') % (e.code, str(e))) |
| 2568 | 2591 |
| 2569 | 2592 |
| 2570 if __name__ == '__main__': | 2593 if __name__ == '__main__': |
| 2571 # These affect sys.stdout so do it outside of main() to simplify mocks in | 2594 # These affect sys.stdout so do it outside of main() to simplify mocks in |
| 2572 # unit testing. | 2595 # unit testing. |
| 2573 fix_encoding.fix_encoding() | 2596 fix_encoding.fix_encoding() |
| 2574 colorama.init() | 2597 colorama.init() |
| 2575 sys.exit(main(sys.argv[1:])) | 2598 sys.exit(main(sys.argv[1:])) |
| OLD | NEW |