Re: [TopGit PATCH] tg-patch: fix invocation in sub working tree directory
- From
Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
- Date
- Mar 17, 2009, 08:33 UTC
- Message-ID
- <20090317083326.GA22384@pengutronix.de>
- In-Reply-To
- <1237241299-25515-1-git-send-email-bert.wesarg@googlemail.com>
Hello again,
On Mon, Mar 16, 2009 at 11:08:19PM +0100, Bert Wesarg wrote:
Show 19 quoted lines
> --- a/tg-patch.sh
> +++ b/tg-patch.sh
> @@ -50,13 +50,18 @@ cat_file "$topic:.topmsg"
> echo
> [ -n "$(git grep $diff_opts '^[-]--' ${diff_committed_only:+"$name"} -- ".topmsg")" ] || echo '---'
>
> +# if we are in a sub working tree dir, we need to prefix all file names from
> +# git diff --name-only with this cdup
> +cdup=$(git rev-parse --show-cdup)
> +
> # Evil obnoxious hack to work around the lack of git diff --exclude
> git_is_stupid="$(mktemp -t tg-patch-changes.XXXXXX)"
> git diff --name-only $diff_opts "$base_rev" ${diff_committed_only:+"$name"} -- |
> fgrep -vx ".topdeps" |
> fgrep -vx ".topmsg" >"$git_is_stupid" || : # fgrep likes to fail randomly?
> if [ -s "$git_is_stupid" ]; then
> - cat "$git_is_stupid" | xargs git diff --patch-with-stat $diff_opts "$base_rev" ${diff_committed_only:+"$name"} --
> + sed -e "s#^#$cdup#" "$git_is_stupid" |
> + xargs git diff --patch-with-stat $diff_opts "$base_rev" ${diff_committed_only:+"$name"} --My not move pretty_tree from tg-export.sh to tg.sh and use that. i.e.
git diff $someopts "$(pretty_tree "$base_rev")" "$(pretty_tree "...")"
then we wouldn't need that git_is_stupid-hack and the relative path name thinggy wouldn hurt us.
Best regards Uwe
-- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ |