diff --git a/git_cl.py b/git_cl.py index 7fa0c2d31..2c63d7330 100755 --- a/git_cl.py +++ b/git_cl.py @@ -51,21 +51,9 @@ def DieWithError(message): sys.exit(1) -def QuoteCommand(command): - """Quotes command on Windows so it runs fine even with & and | in the string. - """ - if sys.platform == 'win32': - def fix(arg): - if ('&' in arg or '|' in arg) and '"' not in arg: - arg = '"%s"' % arg - return arg - command = [fix(arg) for arg in command] - return command - - def RunCommand(args, error_ok=False, error_message=None, **kwargs): try: - return subprocess2.check_output(QuoteCommand(args), **kwargs) + return subprocess2.check_output(args, shell=False, **kwargs) except subprocess2.CalledProcessError, e: if not error_ok: DieWithError( @@ -545,7 +533,8 @@ or verify this branch is set up to track another (via the --track argument to # If the change was never uploaded, use the log messages of all commits # up to the branch point, as git cl upload will prefill the description # with these log messages. - description = CreateDescriptionFromLog([upstream_branch + '..']) + description = RunCommand(['git', 'log', '--pretty=format:%s%n%n%b', + '%s...' % (upstream_branch)]).strip() if not author: author = RunGit(['config', 'user.email']).strip() or None @@ -890,7 +879,7 @@ def CreateDescriptionFromLog(args): log_args = [args[0] + '..' + args[1]] else: log_args = args[:] # Hope for the best! - return RunGit(['log', '--pretty=format:%s%n%n%b'] + log_args) + return RunGit(['log', '--pretty=format:%s\n\n%b'] + log_args) def ConvertToInteger(inputval): diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py index 7034b1424..e0705fad6 100755 --- a/tests/git_cl_test.py +++ b/tests/git_cl_test.py @@ -112,11 +112,11 @@ class TestGitCl(TestCase): 'M\t.gitignore\n'), ((['git', 'config', 'branch.master.rietveldissue'],), ''), ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), - ((['git', 'log', '--pretty=format:%s%n%n%b', 'master..'],), 'foo'), + ((['git', 'log', '--pretty=format:%s%n%n%b', 'master...'],), 'foo'), ((['git', 'config', 'user.email'],), 'me@example.com'), ((['git', 'diff', '--no-ext-diff', '--stat', '-M', 'master...'],), '+dat'), - ((['git', 'log', '--pretty=format:%s%n%n%b', 'master..'],), 'desc\n'), + ((['git', 'log', '--pretty=format:%s\n\n%b', 'master..'],), 'desc\n'), ] @staticmethod @@ -345,7 +345,7 @@ class TestGitCl(TestCase): 'M\t.gitignore\n'), ((['git', 'config', 'branch.master.rietveldissue'],), ''), ((['git', 'config', 'branch.master.rietveldpatchset'],), ''), - ((['git', 'log', '--pretty=format:%s%n%n%b', 'master..'],), 'foo'), + ((['git', 'log', '--pretty=format:%s%n%n%b', 'master...'],), 'foo'), ((['git', 'config', 'user.email'],), 'me@example.com'), ((['git', 'diff', '--no-ext-diff', '--stat', '-M', 'master...'],), '+dat'), @@ -354,7 +354,7 @@ class TestGitCl(TestCase): @staticmethod def _gerrit_upload_calls(description, reviewers): calls = [ - ((['git', 'log', '--pretty=format:%s%n%n%b', 'master..'],), + ((['git', 'log', '--pretty=format:%s\n\n%b', 'master..'],), description), ((['git', 'config', 'rietveld.cc'],), '') ]