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="\ | ||||
| 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" | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Eric Sunshine
						Eric Sunshine