def diff_worktree(paths=None): modified = [] submodules = set() if paths is None: paths = [] filter_paths = ['--'] + paths status, out, err = git.diff_files(z=True, *filter_paths) if status != 0: # handle git init out = git.ls_files(modified=True, z=True)[STDOUT] if out: modified = out[:-1].split('\0') return modified, submodules while out: rest, out = out.split('\0', 1) name, out = out.split('\0', 1) status = rest[-1] if '160000' in rest[1:14]: submodules.add(name) elif status in 'DAMT': modified.append(name) return modified, submodules
def diff_worktree(paths=None): modified = [] deleted = set() submodules = set() if paths is None: paths = [] args = ['--'] + paths status, out, err = git.diff_files(z=True, *args) for path, status, is_submodule in _parse_raw_diff(out): if is_submodule: submodules.add(path) if status in 'DAMT': modified.append(path) if status == 'D': deleted.add(path) return modified, deleted, submodules
def diff_worktree(): modified = [] submodules = set() status, out, err = git.diff_files(z=True) if status != 0: # handle git init out = git.ls_files(modified=True, z=True)[STDOUT] if out: modified = out[:-1].split("\0") return modified, submodules while out: rest, out = out.split("\0", 1) name, out = out.split("\0", 1) status = rest[-1] if "160000" in rest[1:14]: submodules.add(name) elif status in "DAMT": modified.append(name) return modified, submodules
def diff_worktree(): modified = [] submodules = set() status, output = git.diff_files(z=True, with_status=True) if status != 0: # handle git init ls_files = core.decode(git.ls_files(modified=True, z=True)) if ls_files: modified = ls_files[:-1].split('\0') return modified, submodules while output: rest, output = output.split('\0', 1) name, output = output.split('\0', 1) status = rest[-1] name = core.decode(name) if '160000' in rest[1:14]: submodules.add(name) elif status in 'DAMT': modified.append(name) return modified, submodules
def diff_worktree(): modified = [] submodules = set() output = git.diff_files(z=True, with_stderr=True) if output.startswith("fatal:"): # handle git init ls_files = core.decode(git.ls_files(modified=True, z=True)) if ls_files: modified = ls_files[:-1].split("\0") return modified, submodules while output: rest, output = output.split("\0", 1) name, output = output.split("\0", 1) status = rest[-1] name = core.decode(name) if "160000" in rest[1:14]: submodules.add(name) elif status in "DAMT": modified.append(name) return modified, submodules