Re: [PATCH v2] filter-branch: use printf instead of echo -e
Michele Locati <michele@locati.it> writes:
Show 12 quoted lines
> In order to echo a tab character, it's better to use printf instead of
> "echo -e", because it's more portable (for instance, "echo -e" doesn't work
> as expected on a Mac).
>
> This solves the "fatal: Not a valid object name" error in git-filter-branch
> when using the --state-branch option.
>
> Furthermore, let's switch from "/bin/echo" to just "echo", so that the
> built-in echo command is used where available.
>
> Signed-off-by: Michele Locati <michele@locati.it>
> ---
Show 23 quoted lines
> git-filter-branch.sh | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/git-filter-branch.sh b/git-filter-branch.sh
> index 1b7e4b2cd..98c76ec58 100755
> --- a/git-filter-branch.sh
> +++ b/git-filter-branch.sh
> @@ -627,12 +627,12 @@ then
> print H "$_:$f\n" or die;
> }
> close(H) or die;' || die "Unable to save state")
> - state_tree=$(/bin/echo -e "100644 blob $state_blob\tfilter.map" | git mktree)
> + state_tree=$(printf '100644 blob %s\tfilter.map\n' "$state_blob" | git mktree)
> if test -n "$state_commit"
> then
> - state_commit=$(/bin/echo "Sync" | git commit-tree "$state_tree" -p "$state_commit")
> + state_commit=$(echo "Sync" | git commit-tree "$state_tree" -p "$state_commit")
> else
> - state_commit=$(/bin/echo "Sync" | git commit-tree "$state_tree" )
> + state_commit=$(echo "Sync" | git commit-tree "$state_tree" )
> fi
> git update-ref "$state_branch" "$state_commit"
> fi