diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2018-08-31 02:33:17 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-08-31 11:49:51 -0700 |
commit | ad51743007d408ba6f1f670126d57722bb397ce6 (patch) | |
tree | eed9b91c5848bc41dbd1d18ef824723ea1851b90 /Documentation/doc-diff | |
parent | doc-diff: fix non-portable 'man' invocation (diff) | |
download | tgif-ad51743007d408ba6f1f670126d57722bb397ce6.tar.xz |
doc-diff: add --clean mode to remove temporary working gunk
As part of its operation, doc-diff creates a bunch of temporary
working files and holds onto them in order to speed up subsequent
invocations. These files are never deleted. Moreover, it creates a
temporary working tree (via git-wortkree) which likewise never gets
removed.
Without knowing the implementation details of the tool, a user may not
know how to clean up manually afterward. Worse, the user may find it
surprising and alarming to discover a working tree which s/he did not
create explicitly.
To address these issues, add a --clean mode which removes the
temporary working tree and deletes all generated files.
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/doc-diff')
-rwxr-xr-x | Documentation/doc-diff | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/Documentation/doc-diff b/Documentation/doc-diff index 6ce040ea05..cece4fd537 100755 --- a/Documentation/doc-diff +++ b/Documentation/doc-diff @@ -10,20 +10,25 @@ OPTIONS_SPEC="\ doc-diff [options] <from> <to> [-- <diff-options>] +doc-diff (-c|--clean) -- j=n parallel argument to pass to make f force rebuild; do not rely on cached results +c,clean cleanup temporary working files " SUBDIRECTORY_OK=1 . "$(git --exec-path)/git-sh-setup" parallel= force= +clean= while test $# -gt 0 do case "$1" in -j) parallel=$2; shift ;; + -c|--clean) + clean=t ;; -f) force=t ;; --) @@ -34,6 +39,17 @@ do shift done +cd_to_toplevel +tmp=Documentation/tmp-doc-diff + +if test -n "$clean" +then + test $# -eq 0 || usage + git worktree remove --force "$tmp/worktree" 2>/dev/null + rm -rf "$tmp" + exit 0 +fi + if test -z "$parallel" then parallel=$(getconf _NPROCESSORS_ONLN 2>/dev/null) @@ -50,9 +66,6 @@ to=$1; shift from_oid=$(git rev-parse --verify "$from") || exit 1 to_oid=$(git rev-parse --verify "$to") || exit 1 -cd_to_toplevel -tmp=Documentation/tmp-doc-diff - if test -n "$force" then rm -rf "$tmp" |