Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH] filter-branch: use sh -c instead of eval

From: Johannes Sixt <hidden>
Date: 2016-06-15 22:43:14

Matthias Lederhofer wrote:
quoted hunk ↗ jump to hunk
If filters use variables with the same name as variables
used in the script the script breaks.  Executing the filters
in a separate process prevents accidential modification of
the variables in the main process.
@@ -349,21 +349,21 @@ while read commit; do
 
 eval "$(set_ident AUTHOR <../commit)"
 eval "$(set_ident COMMITTER <../commit)"
-     eval "$filter_env" < /dev/null
+     sh -c "$filter_env" < /dev/null
NACK.

The eval is on purpose here. $filter_env must be able export GIT_AUTHOR* and
GIT_COMMITTER* variables here.

Generally, it might be useful that one filter sets or exports variables that
are then available for subsequent filters or the next commit. Therefore, I
think it's actually a feature to have eval instead of sh -c even if there
is a chance that the filter overwrites internal variables. 

-- Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help