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

Re: [PATCH 2/2] filter-branch.sh: support nearly proper tag name filtering

From
Brandon Casey <casey@nrlssc.navy.mil>
Date
Mar 24, 2008, 16:34 UTC
Message-ID
<47E7D818.7090501@nrlssc.navy.mil>
In-Reply-To
<alpine.LSU.1.00.0803241609540.4353@racer.site>
Johannes Schindelin wrote:
Show 26 quoted lines
> Hi,
> 
> On Mon, 24 Mar 2008, Junio C Hamano wrote:
> 
>> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>>
>>> On Sun, 23 Mar 2008, Junio C Hamano wrote:
>>>
>>>> If you tell filter-branch to filter a branch A and a tag T, as the 
>>>> command is advertised to rewrite positive refs that were given from 
>>>> the command line, isn't it natural to expect that the command would 
>>>> attempt its best effort to rewrite such a tag object?
>>> The thing is: signed tags cannot be rewritten.
>> I know that, and you know I know that if you read what you responded 
>> again ;-)
>>
>> And I think stripping of gpg signature part is a reasonable best effort 
>> for the command, _when_ the user told a signed tag to be rewritten.
> 
> Yes.
> 
> BUT.
> 
> You can say "--all", and I actually expect quite a few people to do 
> exactly that.  And then you cannot really say "the user explicitely asked 
> to have that signed tag rewritten".

That sounds like saying that specifying "HEAD" as the revision (_and_ using --tag-name-filter) is not explicitly asking for tags to be rewritten. ?

Aside from that, wouldn't the signed tag currently be rewritten? With current git, if I have a signed tag named "my_signed_release", and I can verify its authenticity using 'git tag -v my_signed_release', and then I run filter-branch with '--tag-name-filter cat', my previously signed tag is replaced with a light weight tag and of course 'git tag -v my_signed_release' fails.

I don't see how the situation for signed tags changes much. The current state is that the signature cannot be preserved, so if "new" signed tags are desired, they must be handled specially. On the other hand, the situation for unsigned tags becomes much easier, assuming you want to retain the tag properties. Aren't unsigned tags more common than signed ones?

So right now, tags matching the refspec are rewritten. They are currently rewritten with a lightweight tag. I don't think you have explained what is wrong with defaulting to creating a new tag object which retains as much information from the original tag object as possible. In other words, why would a user _not_ expect that the tag filter would preserve the tag message?

Can you describe some scenario where a user would use --tag-name-filter and would prefer the creation of new light-weight tags over tag objects? I can't imagine one in my own situation. Maybe there is some example in your own workflow?

-brandon
Previous: Johannes SchindelinNext: Brandon Casey
Message 8 of 23 in “filter-branch.sh: support nearly proper tag name filtering”
  1. 2/2 filter-branch.sh: support nearly proper tag name filteringBrandon Casey, Mar 20, 2008
  2. Johannes SchindelinMar 20, 2008
  3. Brandon CaseyMar 20, 2008
  4. Junio C HamanoMar 24, 2008
  5. Johannes SchindelinMar 24, 2008
  6. Junio C HamanoMar 24, 2008
  7. Johannes SchindelinMar 24, 2008
  8. Brandon CaseyMar 24, 2008
  9. Brandon CaseyMar 24, 2008
  10. Johannes SchindelinMar 24, 2008
  11. Brandon CaseyMar 24, 2008
  12. Johannes SchindelinMar 24, 2008
  13. Brandon CaseyMar 24, 2008
  14. filter-branch --all?Eyvind Bernhardsen, Mar 24, 2008
  15. Brandon CaseyMar 24, 2008
  16. Eyvind BernhardsenMar 24, 2008
  17. Brandon CaseyMar 24, 2008
  18. filter-branch.sh: support nearly proper tag name filteringBrandon Casey, Mar 24, 2008
  19. Brandon CaseyMar 24, 2008
  20. Junio C HamanoMar 25, 2008
  21. filter-branch.sh: support nearly proper tag name filteringBrandon Casey, Mar 25, 2008
  22. Junio C HamanoMar 26, 2008
  23. filter-branch.sh: support nearly proper tag name filteringBrandon Casey, Mar 26, 2008

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.