* [PATCH] filter-branch: Export variable `workdir' for --commit-filter
@ 2011-08-07 2:44 Michael Witten
2011-08-08 19:11 ` Junio C Hamano
0 siblings, 1 reply; 2+ messages in thread
From: Michael Witten @ 2011-08-07 2:44 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
According to `git help filter-branch':
--commit-filter <command>
...
You can use the _map_ convenience function in this filter,
and other convenience functions, too...
...
However, it turns out that `map' hasn't been usable because it depends
on the variable `workdir', which is not propogated to the environment
of the shell that runs the commit-filter <command> because the
shell is created via a simple-command rather than a compound-command
subshell:
@SHELL_PATH@ -c "$filter_commit" "git commit-tree" \
$(git write-tree) $parentstr < ../message > ../map/$commit ||
die "could not write rewritten commit"
One solution is simply to export `workdir'. However, it seems rather
heavy-handed to export `workdir' to the environments of all commands,
so instead this commit exports `workdir' for only the duration of the
shell command in question:
workdir=$workdir @SHELL_PATH@ -c "$filter_commit" "git commit-tree" \
$(git write-tree) $parentstr < ../message > ../map/$commit ||
die "could not write rewritten commit"
Signed-off-by: Michael Witten <mfwitten@gmail.com>
---
git-filter-branch.sh | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 962a93b..6b5f225 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -363,7 +363,7 @@ while read commit parents; do
sed -e '1,/^$/d' <../commit | \
eval "$filter_msg" > ../message ||
die "msg filter failed: $filter_msg"
- @SHELL_PATH@ -c "$filter_commit" "git commit-tree" \
+ workdir=$workdir @SHELL_PATH@ -c "$filter_commit" "git commit-tree" \
$(git write-tree) $parentstr < ../message > ../map/$commit ||
die "could not write rewritten commit"
done <../revs
--
1.7.6.134.gcf13f6
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] filter-branch: Export variable `workdir' for --commit-filter
2011-08-07 2:44 [PATCH] filter-branch: Export variable `workdir' for --commit-filter Michael Witten
@ 2011-08-08 19:11 ` Junio C Hamano
0 siblings, 0 replies; 2+ messages in thread
From: Junio C Hamano @ 2011-08-08 19:11 UTC (permalink / raw)
To: Michael Witten; +Cc: git
Michael Witten <mfwitten@gmail.com> writes:
> According to `git help filter-branch':
>
> --commit-filter <command>
> ...
> You can use the _map_ convenience function in this filter,
> and other convenience functions, too...
> ...
>
> However, it turns out that `map' hasn't been usable because it depends
> on the variable `workdir', which is not propogated to the environment
> of the shell that runs the commit-filter <command>...
Thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-08-08 19:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-07 2:44 [PATCH] filter-branch: Export variable `workdir' for --commit-filter Michael Witten
2011-08-08 19:11 ` Junio C Hamano
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).