On Tue, Mar 13, 2018 at 10:07 AM, Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> wrote: > > On Tue, Mar 13 2018, Michal Novotny jotted: > >> Hello, >> >> currently, if I try to create a tag that has tilde "~" in name, an >> error is raised. E.g. >> >> $ git tag rpkg-util-1.4~rc1 >> fatal: 'rpkg-util-1.4~rc1' is not a valid tag name. >> >> Now, actually it would be very cool if tilde was allowed in a tag name >> because we would like to use it for tagging pre-releases of (not-only >> rpm) packages. >> >> Is there some deep technical reason why tilde cannot be present in a >> tag name? I tried that e.g. > > Yes, because a trailing tilde is part of git's rev syntax, see "man > git-rev-parse", or try in any repo: > > git show HEAD > git show HEAD~2 > git show HEAD^~2 Right, reading the man pages: <rev>~<n>, e.g. master~3 A suffix ~<n> to a revision parameter means the commit object that is the <n>th generation ancestor of the named commit object, following only the first parents. I.e. <rev>~3 is equivalent to <rev>^^^ which is equivalent to <rev>^1^1^1. See below for an illustration of the usage of this form. Would it be acceptable to disallow only ~<n> (<n> as [0-9]+) in a tag name but allow ~[^0-9].*, i.e. if the immediately following symbol after '~' is a letter, do not interpret ~ as a special character. Could it work? Thank you! clime > > etc. > > Although I guess git could learn to disambiguate that form from the tag > you're trying to create. > >> git tag rpkg-util-1.4%rc1 >> >> but percentage sign does not seem to be particular fitting for >> pre-release marking. >> >> Thank you >> clime