Re: [PATCH] git-filter-branch.txt: mention absolute path for scripts in --tree-filter
- From
Johannes Sixt <j.sixt@viscovery.net>
- Date
- Mar 15, 2010, 11:57 UTC
- Message-ID
- <4B9E20BD.3090705@viscovery.net>
- In-Reply-To
- <87k4td95xm.fsf@jondo.cante.net>
Jari Aalto schrieb:
Show 18 quoted lines
> J6t: >> Your choice of words is ambiguous: The --tree-filter is not the name of a >> shell script, but rather the shell script itself; the example you gave is >> just a shell script that happens to run only a shell on a file whose name >> must be specified as an absolute path. > > Full context was: > > --tree-filter <command>:: > This is the filter for rewriting the tree and its contents. > The argument is evaluated in shell with the working > directory set to the root of the checked out tree. The new tree > is then used as-is (new files are auto-added, disappeared files > are auto-removed - neither .gitignore files nor any other ignore > rules *HAVE ANY EFFECT*!). > + > In case the <command> is a shell script, provide an absolute path. > An example: --tree-filter 'sh /path/to/filter.sh'
I am complaining that you say "In case the <command> is a shell script...". There are no other cases; <command> is always a shell script.
What you meant to say is: "If you have your filter written down in a separate shell script, you must invoke it using an absolute path, for example, --tree-filter '/path/to/filter.sh'".
Show 8 quoted lines
>> But doesn't the recommendation to use absolute paths apply not only to >> --tree-filters, but >> >> - to all filters; >> >> - to all references to external files that the filters make. > > I don't know.
It was a rethoric question. The hint about paths to files outside the working directory should go to the general description of filters.
Show 10 quoted lines
> cd <gir repo> > git filter-branch --tree-filter "sh $(pwd)/filter.sh" HEAD > > And that didn't work quit either. Script was run, but paths weren't no > longer relative to the "working dir" I was cd'd to: > > rm file \ > dir/file \ > dir/file \ > ..
I don't understand what you are trying to say, and I don't understand why it helped to run
git filter-branch --tree-filter "sh /the/git/repo/filter.sh" HEAD
when the above did not work - from filter-branch's POV there is simply no difference between the two invocations.
-- Hannes
PS: Please keep Cc list.