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>maint
parent
83d4b5ff29
commit
ad51743007
|
@ -10,20 +10,25 @@
|
||||||
|
|
||||||
OPTIONS_SPEC="\
|
OPTIONS_SPEC="\
|
||||||
doc-diff [options] <from> <to> [-- <diff-options>]
|
doc-diff [options] <from> <to> [-- <diff-options>]
|
||||||
|
doc-diff (-c|--clean)
|
||||||
--
|
--
|
||||||
j=n parallel argument to pass to make
|
j=n parallel argument to pass to make
|
||||||
f force rebuild; do not rely on cached results
|
f force rebuild; do not rely on cached results
|
||||||
|
c,clean cleanup temporary working files
|
||||||
"
|
"
|
||||||
SUBDIRECTORY_OK=1
|
SUBDIRECTORY_OK=1
|
||||||
. "$(git --exec-path)/git-sh-setup"
|
. "$(git --exec-path)/git-sh-setup"
|
||||||
|
|
||||||
parallel=
|
parallel=
|
||||||
force=
|
force=
|
||||||
|
clean=
|
||||||
while test $# -gt 0
|
while test $# -gt 0
|
||||||
do
|
do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
-j)
|
-j)
|
||||||
parallel=$2; shift ;;
|
parallel=$2; shift ;;
|
||||||
|
-c|--clean)
|
||||||
|
clean=t ;;
|
||||||
-f)
|
-f)
|
||||||
force=t ;;
|
force=t ;;
|
||||||
--)
|
--)
|
||||||
|
@ -34,6 +39,17 @@ do
|
||||||
shift
|
shift
|
||||||
done
|
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"
|
if test -z "$parallel"
|
||||||
then
|
then
|
||||||
parallel=$(getconf _NPROCESSORS_ONLN 2>/dev/null)
|
parallel=$(getconf _NPROCESSORS_ONLN 2>/dev/null)
|
||||||
|
@ -50,9 +66,6 @@ to=$1; shift
|
||||||
from_oid=$(git rev-parse --verify "$from") || exit 1
|
from_oid=$(git rev-parse --verify "$from") || exit 1
|
||||||
to_oid=$(git rev-parse --verify "$to") || exit 1
|
to_oid=$(git rev-parse --verify "$to") || exit 1
|
||||||
|
|
||||||
cd_to_toplevel
|
|
||||||
tmp=Documentation/tmp-doc-diff
|
|
||||||
|
|
||||||
if test -n "$force"
|
if test -n "$force"
|
||||||
then
|
then
|
||||||
rm -rf "$tmp"
|
rm -rf "$tmp"
|
||||||
|
|
Loading…
Reference in New Issue