Patchwork fetch2/svn.py: fix Unable to fetch URL bug

login
register
mail settings
Submitter Wenlin Kang
Date June 3, 2014, 1:55 a.m.
Message ID <1401760525-17167-1-git-send-email-wenlin.kang@windriver.com>
Download mbox | patch
Permalink /patch/73099/
State New
Headers show

Comments

Wenlin Kang - June 3, 2014, 1:55 a.m.
For svn source, when download a revsion on branches, if the download
revsion < the branch created time revsion, then it will fail.

The detail description reference the Yocto Project bugzilla, please see:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=6258

Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
---
 lib/bb/fetch2/svn.py |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
Saul Wold - June 3, 2014, 3:30 a.m.
On 06/02/2014 06:55 PM, Wenlin Kang wrote:
> For svn source, when download a revsion on branches, if the download
> revsion < the branch created time revsion, then it will fail.
>

> The detail description reference the Yocto Project bugzilla, please see:
> https://bugzilla.yoctoproject.org/show_bug.cgi?id=6258
>
> Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
> ---
>   lib/bb/fetch2/svn.py |    3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/lib/bb/fetch2/svn.py b/lib/bb/fetch2/svn.py
> index 8847461..75e21df 100644
> --- a/lib/bb/fetch2/svn.py
> +++ b/lib/bb/fetch2/svn.py
> @@ -98,7 +98,8 @@ class Svn(FetchMethod):
>               suffix = ""
>               if ud.revision:
>                   options.append("-r %s" % ud.revision)
> -                suffix = "@%s" % (ud.revision)
> +                #follow this line can make the fetch fail when download a revsion on branches if the download revsion < the branch created time revsion.
> +                #suffix = "@%s" % (ud.revision)
>
Will this cause other failures if there versions requests at a specific 
revision?  can you detail how you tested this?


>               if command == "fetch":
>                   svncmd = "%s co %s %s://%s/%s%s %s" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module, suffix, ud.module)
>
Wenlin Kang - June 3, 2014, 7:13 a.m.
On 2014?06?03? 11:30, Saul Wold wrote:
> On 06/02/2014 06:55 PM, Wenlin Kang wrote:
>> For svn source, when download a revsion on branches, if the download
>> revsion < the branch created time revsion, then it will fail.
>>
>
>> The detail description reference the Yocto Project bugzilla, please see:
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=6258
>>
>> Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
>> ---
>> lib/bb/fetch2/svn.py | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/bb/fetch2/svn.py b/lib/bb/fetch2/svn.py
>> index 8847461..75e21df 100644
>> --- a/lib/bb/fetch2/svn.py
>> +++ b/lib/bb/fetch2/svn.py
>> @@ -98,7 +98,8 @@ class Svn(FetchMethod):
>> suffix = ""
>> if ud.revision:
>> options.append("-r %s" % ud.revision)
>> - suffix = "@%s" % (ud.revision)
>> + #follow this line can make the fetch fail when download a revsion 
>> on branches if the download revsion < the branch created time revsion.
>> + #suffix = "@%s" % (ud.revision)
>>
> Will this cause other failures if there versions requests at a 
> specific revision? can you detail how you tested this?
For a specific revsion download, I also do test, but I don't see failure 
now.
My test follow, you can reference it.

First, you need to create a svn server, eg, my is svnroot
$svnadmin create ~/workspace/svnroot

Second, on the client side do:
$mkdir -p ~/workspace/svntest
$cd ~/workspace/svntest
$mkdir -p test/{trunk,branches,tag}
$mkdir -p test/trunk/tdir0/tdir1/tdir2
$touch test/trunk/{hello.c}
$touch test/trunk/tdir0/tdir1/tdir2/test2.c
$touch test/trunk/tdir0/tdir1/test1.c
$touch test/trunk/tdir0/test0.c

$svn import -m "create the project test" test/ 
svn://xxx.xxx.xxx.xxx/svnroot/test

Then, do some commit,...
Such, we now get "r15"

$svn cp -m "create a branch test_debug-1.0" 
svn://xxx.xxx.xxx.xxx/svnroot/test/trunk 
svn://xxx.xxx.xxx.xxx/svnroot/test/branches/test_debug-1.0

Now, we create a bb file(eg, mytest.bb) to down "tdir1" with the verion 
< test_debug-1.0 created time version, eg, download r12
in bb file has:
SRCREV = "12"
SRC_URI = 
"svn://xxx.xxx.xxx.xxx/svnroot/test/branches/test_debug-1.0;module=test0/tdir1"

Last, run fetch for mytest.bb
>
>
>> if command == "fetch":
>> svncmd = "%s co %s %s://%s/%s%s %s" % (ud.basecmd, " ".join(options), 
>> proto, svnroot, ud.module, suffix, ud.module)
>>
>
>
Wenlin Kang - June 11, 2014, 8:18 a.m.
On 2014?06?03? 15:13, Wenlin Kang wrote:
> On 2014?06?03? 11:30, Saul Wold wrote:
>> On 06/02/2014 06:55 PM, Wenlin Kang wrote:
>>> For svn source, when download a revsion on branches, if the download
>>> revsion < the branch created time revsion, then it will fail.
>>>
>>
>>> The detail description reference the Yocto Project bugzilla, please 
>>> see:
>>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=6258
>>>
>>> Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
>>> ---
>>> lib/bb/fetch2/svn.py | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/lib/bb/fetch2/svn.py b/lib/bb/fetch2/svn.py
>>> index 8847461..75e21df 100644
>>> --- a/lib/bb/fetch2/svn.py
>>> +++ b/lib/bb/fetch2/svn.py
>>> @@ -98,7 +98,8 @@ class Svn(FetchMethod):
>>> suffix = ""
>>> if ud.revision:
>>> options.append("-r %s" % ud.revision)
>>> - suffix = "@%s" % (ud.revision)
>>> + #follow this line can make the fetch fail when download a revsion 
>>> on branches if the download revsion < the branch created time revsion.
>>> + #suffix = "@%s" % (ud.revision)
>>>
>> Will this cause other failures if there versions requests at a 
>> specific revision? can you detail how you tested this?
> For a specific revsion download, I also do test, but I don't see 
> failure now.
> My test follow, you can reference it.
>
> First, you need to create a svn server, eg, my is svnroot
> $svnadmin create ~/workspace/svnroot
>
> Second, on the client side do:
> $mkdir -p ~/workspace/svntest
> $cd ~/workspace/svntest
> $mkdir -p test/{trunk,branches,tag}
> $mkdir -p test/trunk/tdir0/tdir1/tdir2
> $touch test/trunk/{hello.c}
> $touch test/trunk/tdir0/tdir1/tdir2/test2.c
> $touch test/trunk/tdir0/tdir1/test1.c
> $touch test/trunk/tdir0/test0.c
>
> $svn import -m "create the project test" test/ 
> svn://xxx.xxx.xxx.xxx/svnroot/test
>
> Then, do some commit,...
> Such, we now get "r15"
>
> $svn cp -m "create a branch test_debug-1.0" 
> svn://xxx.xxx.xxx.xxx/svnroot/test/trunk 
> svn://xxx.xxx.xxx.xxx/svnroot/test/branches/test_debug-1.0
>
> Now, we create a bb file(eg, mytest.bb) to down "tdir1" with the 
> verion < test_debug-1.0 created time version, eg, download r12
> in bb file has:
> SRCREV = "12"
> SRC_URI = 
> "svn://xxx.xxx.xxx.xxx/svnroot/test/branches/test_debug-1.0;module=test0/tdir1"

    Replace "module=test0/tdir1"  with "module=tdir0/tdir1"

     //Wenlin

>
> Last, run fetch for mytest.bb
>>
>>
>>> if command == "fetch":
>>> svncmd = "%s co %s %s://%s/%s%s %s" % (ud.basecmd, " 
>>> ".join(options), proto, svnroot, ud.module, suffix, ud.module)
>>>
>>
>>
>
>
Wenlin Kang - June 23, 2014, 7:22 a.m.
On 2014?06?11? 16:18, Wenlin Kang wrote:
> On 2014?06?03? 15:13, Wenlin Kang wrote:
>> On 2014?06?03? 11:30, Saul Wold wrote:
>>> On 06/02/2014 06:55 PM, Wenlin Kang wrote:
>>>> For svn source, when download a revsion on branches, if the download
>>>> revsion < the branch created time revsion, then it will fail.
>>>>
>>>
>>>> The detail description reference the Yocto Project bugzilla, please 
>>>> see:
>>>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=6258
>>>>
>>>> Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
>>>> ---
>>>> lib/bb/fetch2/svn.py | 3 ++-
>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/lib/bb/fetch2/svn.py b/lib/bb/fetch2/svn.py
>>>> index 8847461..75e21df 100644
>>>> --- a/lib/bb/fetch2/svn.py
>>>> +++ b/lib/bb/fetch2/svn.py
>>>> @@ -98,7 +98,8 @@ class Svn(FetchMethod):
>>>> suffix = ""
>>>> if ud.revision:
>>>> options.append("-r %s" % ud.revision)
>>>> - suffix = "@%s" % (ud.revision)
>>>> + #follow this line can make the fetch fail when download a revsion 
>>>> on branches if the download revsion < the branch created time revsion.
>>>> + #suffix = "@%s" % (ud.revision)
>>>>
>>> Will this cause other failures if there versions requests at a 
>>> specific revision? can you detail how you tested this?
>> For a specific revsion download, I also do test, but I don't see 
>> failure now.
>> My test follow, you can reference it.
>>
>> First, you need to create a svn server, eg, my is svnroot
>> $svnadmin create ~/workspace/svnroot
>>
>> Second, on the client side do:
>> $mkdir -p ~/workspace/svntest
>> $cd ~/workspace/svntest
>> $mkdir -p test/{trunk,branches,tag}
>> $mkdir -p test/trunk/tdir0/tdir1/tdir2
>> $touch test/trunk/{hello.c}
>> $touch test/trunk/tdir0/tdir1/tdir2/test2.c
>> $touch test/trunk/tdir0/tdir1/test1.c
>> $touch test/trunk/tdir0/test0.c
>>
>> $svn import -m "create the project test" test/ 
>> svn://xxx.xxx.xxx.xxx/svnroot/test
>>
>> Then, do some commit,...
>> Such, we now get "r15"
>>
>> $svn cp -m "create a branch test_debug-1.0" 
>> svn://xxx.xxx.xxx.xxx/svnroot/test/trunk 
>> svn://xxx.xxx.xxx.xxx/svnroot/test/branches/test_debug-1.0
>>
>> Now, we create a bb file(eg, mytest.bb) to down "tdir1" with the 
>> verion < test_debug-1.0 created time version, eg, download r12
>> in bb file has:
>> SRCREV = "12"
>> SRC_URI = 
>> "svn://xxx.xxx.xxx.xxx/svnroot/test/branches/test_debug-1.0;module=test0/tdir1"
>
>    Replace "module=test0/tdir1"  with "module=tdir0/tdir1"
>
>     //Wenlin
>
>>
>> Last, run fetch for mytest.bb
>>>
>>>

Hi, Saul

What can tell me about this? I wan to know the upstream status for the 
patch and test step, thanks.

// Wenlin

>>>> if command == "fetch":
>>>> svncmd = "%s co %s %s://%s/%s%s %s" % (ud.basecmd, " 
>>>> ".join(options), proto, svnroot, ud.module, suffix, ud.module)
>>>>
>>>
>>>
>>
>>
>
>

Patch

diff --git a/lib/bb/fetch2/svn.py b/lib/bb/fetch2/svn.py
index 8847461..75e21df 100644
--- a/lib/bb/fetch2/svn.py
+++ b/lib/bb/fetch2/svn.py
@@ -98,7 +98,8 @@  class Svn(FetchMethod):
             suffix = ""
             if ud.revision:
                 options.append("-r %s" % ud.revision)
-                suffix = "@%s" % (ud.revision)
+                #follow this line can make the fetch fail when download a revsion on branches if the download revsion < the branch created time revsion.
+                #suffix = "@%s" % (ud.revision)
 
             if command == "fetch":
                 svncmd = "%s co %s %s://%s/%s%s %s" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module, suffix, ud.module)