mirror of
https://gerrit.googlesource.com/git-repo
synced 2025-01-04 16:14:25 +00:00
Option for 'repo diff' to generate output suitable for 'patch' cmd
The -u option causes 'repo diff' to generate diff output with file paths relative to the repository root, so the output can be applied to the Unix 'patch' command. The name '-u' was selected for convenience, because both 'diff' and 'git diff' accept the option with the same name to generate an 'unified diff' output suitable for 'patch' command. Change-Id: I79c8356db4ed20ecaccc258b3ba139db76666fe0 Reviewed-on: https://gerrit-review.googlesource.com/34380 Reviewed-by: Shawn Pearce <sop@google.com> Tested-by: Shawn Pearce <sop@google.com>
This commit is contained in:
parent
e9d6b611c5
commit
d67872d2f4
@ -749,7 +749,7 @@ class Project(object):
|
|||||||
|
|
||||||
return 'DIRTY'
|
return 'DIRTY'
|
||||||
|
|
||||||
def PrintWorkTreeDiff(self):
|
def PrintWorkTreeDiff(self, absolute_paths=False):
|
||||||
"""Prints the status of the repository to stdout.
|
"""Prints the status of the repository to stdout.
|
||||||
"""
|
"""
|
||||||
out = DiffColoring(self.config)
|
out = DiffColoring(self.config)
|
||||||
@ -757,6 +757,9 @@ class Project(object):
|
|||||||
if out.is_on:
|
if out.is_on:
|
||||||
cmd.append('--color')
|
cmd.append('--color')
|
||||||
cmd.append(HEAD)
|
cmd.append(HEAD)
|
||||||
|
if absolute_paths:
|
||||||
|
cmd.append('--src-prefix=a/%s/' % self.relpath)
|
||||||
|
cmd.append('--dst-prefix=b/%s/' % self.relpath)
|
||||||
cmd.append('--')
|
cmd.append('--')
|
||||||
p = GitCommand(self,
|
p = GitCommand(self,
|
||||||
cmd,
|
cmd,
|
||||||
|
@ -20,8 +20,21 @@ class Diff(PagedCommand):
|
|||||||
helpSummary = "Show changes between commit and working tree"
|
helpSummary = "Show changes between commit and working tree"
|
||||||
helpUsage = """
|
helpUsage = """
|
||||||
%prog [<project>...]
|
%prog [<project>...]
|
||||||
|
|
||||||
|
The -u option causes '%prog' to generate diff output with file paths
|
||||||
|
relative to the repository root, so the output can be applied
|
||||||
|
to the Unix 'patch' command.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def _Options(self, p):
|
||||||
|
def cmd(option, opt_str, value, parser):
|
||||||
|
setattr(parser.values, option.dest, list(parser.rargs))
|
||||||
|
while parser.rargs:
|
||||||
|
del parser.rargs[0]
|
||||||
|
p.add_option('-u', '--absolute',
|
||||||
|
dest='absolute', action='store_true',
|
||||||
|
help='Paths are relative to the repository root')
|
||||||
|
|
||||||
def Execute(self, opt, args):
|
def Execute(self, opt, args):
|
||||||
for project in self.GetProjects(args):
|
for project in self.GetProjects(args):
|
||||||
project.PrintWorkTreeDiff()
|
project.PrintWorkTreeDiff(opt.absolute)
|
||||||
|
Loading…
Reference in New Issue
Block a user