You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by mark benedetto king <mb...@lowlatency.com> on 2003/07/12 14:52:39 UTC

Re: svn commit: rev 6453 - in trunk/tools/cvs2svn: . test-data/bogus-tag-cvsrepos test-data/bogus-tag-cvsrepos/CVSROOT

On Fri, Jul 11, 2003 at 05:20:08PM -0500, kfogel@tigris.org wrote:
> +    # CVS tag names must start with a letter, and contain only
> +    # letters, digits, hyphens, and underscores.  It turned out to
> +    # be surprisingly hard to find a reference for this on the
> +    # Internet; I finally managed to track one down at:
> +    #
> +    # http://cvsbook.red-bean.com/cvsbook.html#Marking_A_Moment_In_Time__Tags_
> +    #
> +    # I'm not sure I trust that guy, though, so if anyone has better
> +    # reference, please put it here.  -kfogel
> +    #

Well, he literally wrote the book on CVS so maybe you should cut him
just a little bit a slack. :-)

Some quick testing shows me that my CVS (1.10 'Halibut') does indeed
allow '/' in tags.

Here are some interesting messages, though:

$ cvs tag . foo
cvs [tag aborted]: tag `.' must start with a letter

$ cvs tag a. foo
cvs [tag aborted]: tag `a.' must not contain the characters `$,.:;@'


This is unfortunate, since unix filesystems do not allow '/' in filenames,
and we like to lay things out as .../tags/tagname/.

I see a few options:

1.) catch the '/' and throw a fatal error, recommending that the user
    does "cvs rtag -r old/bad/tag/name new_spiffy_tag_name module" and
    tries again.

2.) catch the '/' and throw a fatal error, unless a "tag name mapping"
    file/option is present that lets cvs2svn know what to use instead

3.) map the '/' to another character.  I propose '.', in particular,
    because it is not allowed in CVS tag names, so this mapping
    will not cause any collisions.

--ben



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: rev 6453 - in trunk/tools/cvs2svn: . test-data/bogus-tag-cvsrepos test-data/bogus-tag-cvsrepos/CVSROOT

Posted by kf...@collab.net.
mark benedetto king <mb...@lowlatency.com> writes:
> Some quick testing shows me that my CVS (1.10 'Halibut') does indeed
> allow '/' in tags.

Huh, that's a surprise!  What operations did you try?  Did it tolerate
'/' in all operations involving tags, or just setting them?

> 3.) map the '/' to another character.  I propose '.', in particular,
>     because it is not allowed in CVS tag names, so this mapping
>     will not cause any collisions.

I think that's an excellent strategy, thanks!  And there's absolutely
no reason for us not to tolerate them, then -- whether they are
problematic for some CVS operations or not, the user is now converting
the data to SVN, after all.

I'll make the change.

-Karl


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: rev 6453 - in trunk/tools/cvs2svn: . test-data/bogus-tag-cvsrepos test-data/bogus-tag-cvsrepos/CVSROOT

Posted by kf...@collab.net.
mark benedetto king <mb...@lowlatency.com> writes:
> Ah, good thinking.  Yes, ',' is probably better than the others.

Check (just confirming that I saw this :-) ).

-K

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: rev 6453 - in trunk/tools/cvs2svn: . test-data/bogus-tag-cvsrepos test-data/bogus-tag-cvsrepos/CVSROOT

Posted by mark benedetto king <mb...@lowlatency.com>.
On Sat, Jul 12, 2003 at 03:59:31PM +0100, Max Bowsher wrote:
> mark benedetto king wrote:
> ...
> > Some quick testing shows me that my CVS (1.10 'Halibut') does indeed
> > allow '/' in tags.
> >
  [...]
> > $ cvs tag a. foo
> > cvs [tag aborted]: tag `a.' must not contain the characters `$,.:;@'
> >
  [...]
> >
> > 3.) map the '/' to another character.  I propose '.', in particular,
> >     because it is not allowed in CVS tag names, so this mapping
> >     will not cause any collisions.
> 
> Dots at the end of the filename don't work on Windows.
> If option 3 is chosen, please could one of the other invalid characters be
> used? Maybe ','?
> 

Ah, good thinking.  Yes, ',' is probably better than the others.

--ben


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: rev 6453 - in trunk/tools/cvs2svn: . test-data/bogus-tag-cvsrepos test-data/bogus-tag-cvsrepos/CVSROOT

Posted by mark benedetto king <mb...@lowlatency.com>.
On Sat, Jul 12, 2003 at 11:16:11AM -0400, Sergey A. Lipnevich wrote:
> mark benedetto king wrote:
> >
> >>>3.) map the '/' to another character.  I propose '.', in particular,
> >>>   because it is not allowed in CVS tag names, so this mapping
> >>>   will not cause any collisions.
> >>
> >>Dots at the end of the filename don't work on Windows.
> >>If option 3 is chosen, please could one of the other invalid characters be
> >>used? Maybe ','?
> >>
> >
> >
> >Ah, good thinking.  Yes, ',' is probably better than the others.
> >
> 
> Not that it matters but many tools replace invalid characters with 
> underscore `_'. I'm thinking of examples and could come up with CD 
> writing tools so far. My $.01 ;-).
> 

Underscore is dangerous because there might be two tags, one called "foo/"
and one called "foo_".  

--ben


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: rev 6453 - in trunk/tools/cvs2svn: . test-data/bogus-tag-cvsrepos test-data/bogus-tag-cvsrepos/CVSROOT

Posted by "Sergey A. Lipnevich" <se...@optimaltec.com>.
mark benedetto king wrote:
> 
>>>3.) map the '/' to another character.  I propose '.', in particular,
>>>    because it is not allowed in CVS tag names, so this mapping
>>>    will not cause any collisions.
>>
>>Dots at the end of the filename don't work on Windows.
>>If option 3 is chosen, please could one of the other invalid characters be
>>used? Maybe ','?
>>
> 
> 
> Ah, good thinking.  Yes, ',' is probably better than the others.
> 

Not that it matters but many tools replace invalid characters with 
underscore `_'. I'm thinking of examples and could come up with CD 
writing tools so far. My $.01 ;-).

P.S.: I've turned off return receipt, I did not forget to do it :-O!


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: rev 6453 - in trunk/tools/cvs2svn: . test-data/bogus-tag-cvsrepos test-data/bogus-tag-cvsrepos/CVSROOT

Posted by Max Bowsher <ma...@ukf.net>.
mark benedetto king wrote:
...
> Some quick testing shows me that my CVS (1.10 'Halibut') does indeed
> allow '/' in tags.
>
> Here are some interesting messages, though:
>
> $ cvs tag . foo
> cvs [tag aborted]: tag `.' must start with a letter
>
> $ cvs tag a. foo
> cvs [tag aborted]: tag `a.' must not contain the characters `$,.:;@'
>
>
> This is unfortunate, since unix filesystems do not allow '/' in filenames,
> and we like to lay things out as .../tags/tagname/.
>
> I see a few options:
>
> 1.) catch the '/' and throw a fatal error, recommending that the user
>     does "cvs rtag -r old/bad/tag/name new_spiffy_tag_name module" and
>     tries again.
>
> 2.) catch the '/' and throw a fatal error, unless a "tag name mapping"
>     file/option is present that lets cvs2svn know what to use instead
>
> 3.) map the '/' to another character.  I propose '.', in particular,
>     because it is not allowed in CVS tag names, so this mapping
>     will not cause any collisions.

Dots at the end of the filename don't work on Windows.
If option 3 is chosen, please could one of the other invalid characters be
used? Maybe ','?

Max.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org