Subject: Re: [PATCH] Make gc a builtin.

From: "Shawn O. Pearce" <[email-masked]>
Date: Wed, 14 Mar 2007 02:07:27 -0400

James Bowes <[email-masked]> wrote:
> Signed-off-by: James Bowes <[email-masked]>

ACK.  Very nicely done.

...
> +	if (pack_refs && run_command_v_opt(argv_pack_refs, RUN_GIT_CMD))
> +		return error(FAILED_RUN, argv_pack_refs[0]);
> +
> +	if (run_command_v_opt(argv_reflog, RUN_GIT_CMD))
> +		return error(FAILED_RUN, argv_reflog[0]);
> +
> +	if (run_command_v_opt(argv_repack, RUN_GIT_CMD))
> +		return error(FAILED_RUN, argv_repack[0]);
> +
> +	if (prune && run_command_v_opt(argv_prune, RUN_GIT_CMD))
> +		return error(FAILED_RUN, argv_prune[0]);
> +
> +	if (run_command_v_opt(argv_rerere, RUN_GIT_CMD))
> +		return error(FAILED_RUN, argv_rerere[0]);

And isn't the above so much more readable than this mess?

> -test "true" != "$pack_refs" ||
> -git-pack-refs --prune &&
> -git-reflog expire --all &&
> -git-repack -a -d -l &&
> -$no_prune git-prune &&
> -git-rerere gc || exit

Which is why I like builtins, and why I think Dscho does too.

-- 
Shawn.