The only extra diff options (given either with -O/--diff-opts) that would affect "stg status" were -C and -M, and those made it crash because it couldn't handle them. So remove those options.
Signed-off-by: Karl Hasselström <kha@treskal.com>
---
stgit/commands/status.py | 16 +++-------------
stgit/git.py | 9 ++++++---
t/t0002-status.sh | 5 -----
3 files changed, 9 insertions(+), 21 deletions(-)
Show changes to 3 files +9 −21
stgit/commands/status.py, stgit/git.py, t/t0002-status.sh
diff --git a/stgit/commands/status.py b/stgit/commands/status.py
index 20614b0..94d0b57 100644
--- a/stgit/commands/status.py
+++ b/stgit/commands/status.py
@@ -59,22 +59,18 @@ options = [make_option('-m', '--modified',
make_option('-x', '--noexclude',
help = 'do not exclude any files from listing',
action = 'store_true'),
- make_option('-O', '--diff-opts',
- help = 'options to pass to git-diff'),
make_option('--reset',
help = 'reset the current tree changes',
action = 'store_true')]
def status(files = None, modified = False, new = False, deleted = False,
- conflict = False, unknown = False, noexclude = False,
- diff_flags = []):
+ conflict = False, unknown = False, noexclude = False):
"""Show the tree status
"""
cache_files = git.tree_status(files,
unknown = (not files),
- noexclude = noexclude,
- diff_flags = diff_flags)
+ noexclude = noexclude)
filtered = (modified or new or deleted or conflict or unknown)
if filtered:
@@ -116,11 +112,5 @@ def func(parser, options, args):
resolved_all()
git.reset()
else:
- if options.diff_opts:
- diff_flags = options.diff_opts.split()
- else:
- diff_flags = []
-
status(args, options.modified, options.new, options.deleted,
- options.conflict, options.unknown, options.noexclude,
- diff_flags = diff_flags)
+ options.conflict, options.unknown, options.noexclude)
diff --git a/stgit/git.py b/stgit/git.py
index 8e6bdf4..35579d4 100644
--- a/stgit/git.py
+++ b/stgit/git.py
@@ -192,6 +192,9 @@ def ls_files(files, tree = 'HEAD', full_name = True):
'Some of the given paths are either missing or not known to GIT'
def parse_git_ls(output):
+ """Parse the output of git diff-index, diff-files, etc. Doesn't handle
+ rename/copy output, so don't feed it output generated with the -M
+ or -C flags."""
t = None
for line in output.split('\0'):
if not line:
@@ -205,7 +208,7 @@ def parse_git_ls(output):
t = None
def tree_status(files = None, tree_id = 'HEAD', unknown = False,
- noexclude = True, verbose = False, diff_flags = []):
+ noexclude = True, verbose = False):
"""Get the status of all changed files, or of a selected set of
files. Returns a list of pairs - (status, filename).
@@ -252,7 +255,7 @@ def tree_status(files = None, tree_id = 'HEAD', unknown = False,
# specified when calling the function (i.e. report all files) or
# files were specified but already found in the previous step
if not files or files_left:
- args = diff_flags + [tree_id]
+ args = [tree_id]
if files_left:
args += ['--'] + files_left
for t, fn in parse_git_ls(GRun('diff-index', '-z', *args).raw_output()):
@@ -268,7 +271,7 @@ def tree_status(files = None, tree_id = 'HEAD', unknown = False,
# function (i.e. report all files) or files were specified but
# already found in the previous step
if not files or files_left:
- args = list(diff_flags)
+ args = []
if files_left:
args += ['--'] + files_left
for t, fn in parse_git_ls(GRun('diff-files', '-z', *args).raw_output()):
diff --git a/t/t0002-status.sh b/t/t0002-status.sh
index 69c29a0..a030739 100755
--- a/t/t0002-status.sh
+++ b/t/t0002-status.sh
@@ -182,9 +182,4 @@ test_expect_success 'Status after renaming a file' '
diff -u expected.txt output.txt
'
-test_expect_failure 'Status after renaming a file (with rename detection)' '
- stg status --diff-opts=-M > output.txt &&
- diff -u expected.txt output.txt
-'
-
test_done