git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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.
Previous: Jari AaltoNext: Junio C Hamano
Message 4 of 5 in “git-filter-branch.txt: mention absolute path for scripts in --tree-filter”
  1. git-filter-branch.txt: mention absolute path for scripts in --tree-filterJari Aalto, Mar 15, 2010
  2. Johannes SixtMar 15, 2010
  3. Jari AaltoMar 15, 2010
  4. Johannes SixtMar 15, 2010
  5. Junio C HamanoMar 15, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.