From: Junio C Hamano Date: Mon, 16 Mar 2009 22:33:58 GMT Subject: Re: [TopGit PATCH] tg-patch: fix invocation in sub working tree directory Message-ID: <7vbps1umg9.fsf@gitster.siamese.dyndns.org> In-Reply-To: <1237241299-25515-1-git-send-email-bert.wesarg@googlemail.com> Bert Wesarg writes: > tg patch won't work in a sub directory of the working tree, because 'git diff > --name-only' prints the names relative to the top working tree. "diff --relative --name-only"? > This is only a quick fix which prefixes all file names with 'git rev-parse > --show-cdup'. The right solution would be to cd into the top working tree > somewhere in tg.sh. > > Signed-off-by: Bert Wesarg > > --- > tg-patch.sh | 7 ++++++- > 1 files changed, 6 insertions(+), 1 deletions(-) > > diff --git a/tg-patch.sh b/tg-patch.sh > index d701c54..e33bab2 100644 > --- 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) > ... > + sed -e "s#^#$cdup#" "$git_is_stupid" | Do TopGit folks care about special characters in pathnames?