summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorLibravatar Eric Sunshine <sunshine@sunshineco.com>2018-08-31 02:33:17 -0400
committerLibravatar Junio C Hamano <gitster@pobox.com>2018-08-31 11:49:51 -0700
commitad51743007d408ba6f1f670126d57722bb397ce6 (patch)
treeeed9b91c5848bc41dbd1d18ef824723ea1851b90 /Documentation
parentdoc-diff: fix non-portable 'man' invocation (diff)
downloadtgif-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')
-rwxr-xr-xDocumentation/doc-diff19
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"