Index: git_cl.py |
diff --git a/git_cl.py b/git_cl.py |
index 7a9bff92d10e9ff14eb0b16983b0550aa00c939c..6de71b007928669af44871554d2a311eb75edf71 100755 |
--- a/git_cl.py |
+++ b/git_cl.py |
@@ -1862,9 +1862,12 @@ def CMDpatch(parser, args): |
"""Patches in a code review.""" |
parser.add_option('-b', dest='newbranch', |
help='create a new branch off trunk for the patch') |
- parser.add_option('-f', action='store_true', dest='force', |
+ parser.add_option('-f', '--force', action='store_true', |
help='with -b, clobber any existing branch') |
- parser.add_option('--reject', action='store_true', dest='reject', |
+ parser.add_option('-d', '--directory', action='store', metavar='DIR', |
+ help='Change to the directory DIR immediately, ' |
+ 'before doing anything else.') |
+ parser.add_option('--reject', action='store_true', |
help='failed patches spew .rej files rather than ' |
'attempting a 3-way merge') |
parser.add_option('-n', '--no-commit', action='store_true', dest='nocommit', |
@@ -1885,10 +1888,11 @@ def CMDpatch(parser, args): |
RunGit(['checkout', '-b', options.newbranch, |
Changelist().GetUpstreamBranch()]) |
- return PatchIssue(issue_arg, options.reject, options.nocommit) |
+ return PatchIssue(issue_arg, options.reject, options.nocommit, |
+ options.directory) |
-def PatchIssue(issue_arg, reject, nocommit): |
+def PatchIssue(issue_arg, reject, nocommit, directory): |
if type(issue_arg) is int or issue_arg.isdigit(): |
# Input is an issue id. Figure out the URL. |
issue = int(issue_arg) |
@@ -1930,6 +1934,8 @@ def PatchIssue(issue_arg, reject, nocommit): |
# pick up file adds. |
# The --index flag means: also insert into the index (so we catch adds). |
cmd = ['git', 'apply', '--index', '-p0'] |
+ if directory: |
+ cmd.extend(('--directory', directory)) |
if reject: |
cmd.append('--reject') |
elif IsGitVersionAtLeast('1.7.12'): |
@@ -2160,7 +2166,7 @@ def CMDdiff(parser, args): |
RunGit(['checkout', '-q', '-b', TMP_BRANCH, base_branch]) |
try: |
# Patch in the latest changes from rietveld. |
- rtn = PatchIssue(cl.GetIssue(), False, False) |
+ rtn = PatchIssue(cl.GetIssue(), False, False, None) |
if rtn != 0: |
return rtn |