Michele Locati <mich...@locati.it> writes:

> 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 <mich...@locati.it>
> ---

Thanks; will queue.

>  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

Reply via email to