Yann Simon schrieb: > The idea is to add a missing parent to a certain commit. > I wrote the following bash script: > > #!/bin/sh > die () { > echo >&2 "$@" > exit 1 > } > [ "$#" -eq 3 ] || die "usage: add_parent <commit_to_update> > <present_parent> <parent_to_add>" > git filter-branch --parent-filter \ > 'test $GIT_COMMIT = $1 && \ > echo "-p $2 -p $3" \ > || cat' \ > --tag-name-filter 'cat' \ > $2..master > > When I try to use it an a test repository, I get the following error: > > ./add_parent.sh ad12d20974cad91ddedd055f5335b7471e48dd1d > 1541f3ae456556edc7e15cead1ae76f470961be0 > 88b5d6f190f9d7135148c67c4d949c0c06e179ff > Rewrite ad12d20974cad91ddedd055f5335b7471e48dd1d (1/1)test: 3: =: > argument expected The $1, $2, $3 are expanded too late in your script, namely when the --parent-filter is evaluated, not when it is passed as argument to filter-branch. Make it git filter-branch --parent-filter " test \$GIT_COMMIT = $1 && echo -p $2 -p $3 || cat" \ --tag-name-filter cat \ $2..master Of course, you can achieve this particular task slightly easier using a graft as the manual of filter-branch shows. -- Hannes -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html