[Buildroot] [PATCH 1/4] support/download/cvs: add support to use a date instead of a tag

Fabio Porcedda fabio.porcedda at gmail.com
Wed May 6 09:19:30 UTC 2015


On Mon, May 4, 2015 at 6:47 PM, Arnout Vandecappelle <arnout at mind.be> wrote:
> On 04/05/15 09:53, Fabio Porcedda wrote:
>> On Sat, May 2, 2015 at 12:20 PM, Arnout Vandecappelle <arnout at mind.be> wrote:
>>> On 27/04/15 01:40, Fabio Porcedda wrote:
>>>> This is useful when a tag is not avaiable.
>>>
>>>  Actually, we currently only support a date. The cvs co -r option has the
>>> following syntax: -r tag[:date] - so we currently always interpret the version
>>> as a date, since we put a : in front of it.
>>
>> Where have you found such documentation? I've checked the "man cvs"
>> but I've found only this:
>>
>>   -r tag
>>
>>          Use the revision specified by the tag argument ....
>
>  I guess my Debian sid has a different cvs version. Mine is
> 1.12.13-MirDebian-11 - which seems to indicate that there could be some
> Debian-specific patches in there.
>
>  So this means that the current code simply doesn't work at all for you, right?
>
>>
>>
>>>  The :date extension is only valid when the tag is not a tag but a branch. If
>>> the tag is empty, it refers to the trunk.
>>>
>>>  AFAICS, the -D option is completely equivalent to -r :date .
>>>
>>>  I applied just the third patch of this series and could build expect successfully.
>>
>> Are you sure about that? I've tried to download the source without
>> using this patch but it fails:
>
>  Yes I'm sure,
>
> [snip]
>>>> +if [[ ${rev} =~ ^[0-9] ]]; then
>>>> +    # Date, because a tag cannot begin with a number
>>>> +    select="-D ${rev}"
>>>> +else
>>>> +    # Tag
>>>> +    select=-"r :${rev}"
>>>
>>>  Note that this won't work, since the space will be interpreted as a tag name.
>>> It should be
>>>
>>>         select="-r :\"${rev}\""
>>>
>>> and remove the quotes from where ${select} is used.
>>>
>>
>> It fails on my pc (Fedora 22):
>>>>> expect expect_5_45 Downloading
>> rev: expect_5_45
>> cvs [checkout aborted]: tag `:"expect_5_45"' must start with a letter
>
>  Which kind of proves my point - the current situation doesn't work on F22.
>
>>
>> e.g. it's works using this:
>>              select=-"r ${rev}"
>>
>> IMHO the simplest solution is:
>>
>> +if [[ ${rev} =~ ^[0-9] ]]; then
>> +    # Date, because a tag cannot begin with a number
>> +    select="-D"
>> +else
>> +    # Tag
>> +    select="-r"
>> +fi
>> +
>> +export TZ=UCT
>
>  Small nit: UCT is correct, but I see more people use UTC (which is also what
> e.g. LANG=C date -u prints) so let's stick to that.

OK

>>  ${CVS} ${verbose} -z3 -d":pserver:anonymous@${repo}" \
>> -       co -d "${basename}" -r ":${rev}" -P "${rawname}"
>> +       co -d "${basename}" ${select} "${rev}" -P "${rawname}"
>
>  Looks good to me. Will you cook up a proper patch?

Sure

>  It would be nice if it would be possible to give _both_ a branch and a date,
> but that is probably pushing it a little - especially for a VCS that is almost
> dead...

Using a branch just works because the "-r" option accept a tag or a
branch, maybe i update the documentation.

BR
-- 
Fabio Porcedda


More information about the buildroot mailing list