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
	
	 Eric Sunshine
						Eric Sunshine