From: Brandon Casey Date: Mon, 24 Mar 2008 18:37:23 GMT Subject: Re: [PATCH 2/2] filter-branch.sh: support nearly proper tag name filtering Message-ID: <47E7F4E3.8050406@nrlssc.navy.mil> In-Reply-To: Johannes Schindelin wrote: > Hi, > > On Mon, 24 Mar 2008, Brandon Casey wrote: > >> Johannes Schindelin wrote: >> >>> On Mon, 24 Mar 2008, Brandon Casey wrote: >>> >>>> So right now, tags matching the refspec are rewritten. They are >>>> currently rewritten with a lightweight tag. >>> That is unintended. My understanding of a tag was always that it is >>> something immutable. I mean, _really_ immutable. If you released a >>> certain version, then that is tagged. You must not rewrite the tag. >>> Ever. >> Then what is the intended behavior for --tag-name-filter? > > To be honest, I wanted to rip that part out before posting the initial > filter-branch patches, and forgot/was too lazy. > > IMO there should be clean semantics first, and a default mode that does > _not_ rewrite tags at all first. There isn't really a "default" mode for --tag-name-filter, a script must always be supplied. The name of the option (--tag- _name_ -filter) implies that it is intended for changing the names of tags. If the user decides not to change the name, then I think the user would expect the old tag to be replaced. So the user could choose to: Rewrite tag ref: --tag-name-filter cat or Give new tags a new name: --tag-name-filter 'sed -e s/$/.new/' or Save original tags: --tag-name-filter 'sed -e s/$/.orig/' Then create new ones: --tag-name-filter 'sed -e s/\.orig$//' [plus additional filtering] More precise control over tag filtering should probably have an option with a different name like --tag-filter, at which point --tag-name-filter could be deprecated. -brandon