| Index: scm.py
|
| diff --git a/scm.py b/scm.py
|
| index 2e135558801223059bba50f4fa0b892f1f7e5571..db4711e366bb7b1472d067248dd51e139b777493 100644
|
| --- a/scm.py
|
| +++ b/scm.py
|
| @@ -177,12 +177,17 @@ class GIT(object):
|
| return upstream_branch
|
|
|
| @staticmethod
|
| - def GenerateDiff(cwd, branch=None):
|
| - """Diffs against the upstream branch or optionally another branch."""
|
| + def GenerateDiff(cwd, branch=None, full_move=False):
|
| + """Diffs against the upstream branch or optionally another branch.
|
| +
|
| + full_move means that move or copy operations should completely recreate the
|
| + files, usually in the prospect to apply the patch for a try job."""
|
| if not branch:
|
| branch = GIT.GetUpstream(cwd)
|
| - diff = GIT.Capture(['diff-tree', '-p', '--no-prefix', branch, 'HEAD'],
|
| - cwd).splitlines(True)
|
| + command = ['diff-tree', '-p', '--no-prefix', branch, 'HEAD']
|
| + if not full_move:
|
| + command.append('-C')
|
| + diff = GIT.Capture(command, cwd).splitlines(True)
|
| for i in range(len(diff)):
|
| # In the case of added files, replace /dev/null with the path to the
|
| # file being added.
|
| @@ -524,7 +529,9 @@ class SVN(object):
|
| """Diffs a single file.
|
|
|
| Be sure to be in the appropriate directory before calling to have the
|
| - expected relative path."""
|
| + expected relative path.
|
| + full_move means that move or copy operations should completely recreate the
|
| + files, usually in the prospect to apply the patch for a try job."""
|
| # Use svn info output instead of os.path.isdir because the latter fails
|
| # when the file is deleted.
|
| if SVN.CaptureInfo(filename).get("Node Kind") == "directory":
|
|
|