Miklos Vajna wrote:
> On Wed, Oct 03, 2007 at 01:25:20PM +0200, Mattias Holmlund <[EMAIL 
> PROTECTED]> wrote:
>   
>> However, all the modules in the CVS repository have tags. Some of the tags 
>> are used for all modules (the tags typically represent releases and each 
>> release consists of code from several modules). When I try to run the 
>> conversion, tailor exits with the following message:
>>     
>
>   
>> 12:59:23 [I] /lhome/mattias/nobackup/cvs-to-git/tailor-one-git $ git tag -a 
>> -m BL6 BL6 HEAD
>> 12:59:23 [W] [Status 1]
>> 12:59:23 [C] Couldn't replay changeset
>> 12:59:23 [I] 1 pending changesets in state file
>> 12:59:23 [C] Upstream change application failed
>> Failure applying upstream changes: 
>> /lhome/mattias/nobackup/cvs-to-git/tailor-one-git $ git tag -a -m BL6 BL6 
>> HEAD returned status 1
>>     
>
>   
>> If I try to run the offending command manually I get:
>>     
>
>   
>> [EMAIL PROTECTED]:~/nobackup/cvs-to-git/tailor-one-git$  git tag -a -m BL6 
>> BL6 HEAD
>> tag 'BL6' already exists
>>     
>
>   
>> I guess the following happens: tailor starts with the first module, 
>> processes all the changesets and sets the correct tags. Then it moves on to 
>> the second module and tries to set the same tag again. This fails.
>>     
>
>   
>> Is there any way around this?
>>     
>
> git tags are just nicknames to commit sha1s. a tag can't point to
> multiple sha1s, this is why git tag fails. a possible workaround is to
> use prefixes, like MODULE1_BL6 MODULE2_BL6. if this is acceptable to you
> then you still need to have support for this in tailor, but at least
> then ideally you'll have a workaround
>   
After some more thinking I realised that it doesn't really help if I use 
prefixes for the tags. The CVS tags are per module, so I can use them to 
checkout each module in a specific state. The git tags are for the 
entire repository, so if I checkout tag MODULE2_BL6 I will get the 
contents of MODULE2 at BL6, but since tailor imports the modules one 
after the other into the git repository, I will get the contents of 
MODULE1's HEAD at the time of the import and nothing from MODULE3, since 
that was imported after MODULE3 into the git-repository. I think I will 
just have to keep one git-repository per module to get the same behavior 
as I had with CVS.

Thanks for responding!

/Mattias


_______________________________________________
Tailor mailing list
[email protected]
http://lists.zooko.com/mailman/listinfo/tailor

Reply via email to