From: H. Peter Anvin Date: Fri, 27 May 2005 16:10:10 GMT Subject: Re: Suggestion: superceded tags Message-ID: <42974662.3040106@zytor.com> In-Reply-To: <1117193179.1957.28.camel@sisko.sctweedie.blueyonder.co.uk> Stephen C. Tweedie wrote: > Hi, > > On Fri, 2005-05-27 at 06:29, H. Peter Anvin wrote: > > >>When a tag is moved, a new tag object is created. This tag object will >>have a "supercedes" header which references the old tag object. > > Strictly speaking, don't you need to allow multiple "supercedes" lines > to cover all the cases? The pathological case is when you've got > multiple trees all with different variants of the same tag name, and you > try to merge them all at once with a multi-parent commit. > > Sure, tags refer to trees, not commits, so you don't necessarily have to > do this tag resolution at commit time (indeed, since commits don't refer > to tags, you *can't* do that resolution atomically on commit.) > > But if you do pull tags into the local .git/refs/tags on merge, then you > will want to either resolve the conflict or supercede those tags, and at > that point you've got multiple equally valid tags in the histories that > are being superceded. Doing so is a porcelain issue, but the core will > still need to understand tags with multiple supercedes: lines. > Indeed, multiple supercedes lines are useful to conver the resolution of a tag conflict. -hpa