[bitbake-devel] [PATCH] fetch2/svn: Enhance to cope with subversion 1.7 upgrade

Martin Jansa martin.jansa at gmail.com
Tue Jul 3 18:03:32 UTC 2012


On Mon, Jul 02, 2012 at 09:23:04PM +0100, Richard Purdie wrote:
> svn changed working checkout formats between 1.6 and 1.7. Its convoluted to
> detect what format a given working copy is in so the simplest solution is simply
> to run "svn upgrade" within the working copy.
> 
> The base svn command variable is relocated slightly to enable this new code to
> work effectively.
> 

Tested-by: Martin Jansa <Martin.Jansa at gmail.com>

but as described in [YOCTO #2409] I was using 1.7 on premirror as well
as builder so all my checkouts/tarballs were already in 1.7 format.

Cheers,

> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
> ---
> diff --git a/bitbake/lib/bb/fetch2/svn.py b/bitbake/lib/bb/fetch2/svn.py
> index 59d7ccb..bc5b96b 100644
> --- a/bitbake/lib/bb/fetch2/svn.py
> +++ b/bitbake/lib/bb/fetch2/svn.py
> @@ -49,6 +49,8 @@ class Svn(FetchMethod):
>          if not "module" in ud.parm:
>              raise MissingParameterError('module', ud.url)
>  
> +        ud.basecmd = d.getVar('FETCHCMD_svn', True)
> +
>          ud.module = ud.parm["module"]
>  
>          # Create paths to svn checkouts
> @@ -69,8 +71,6 @@ class Svn(FetchMethod):
>          command is "fetch", "update", "info"
>          """
>  
> -        basecmd = data.expand('${FETCHCMD_svn}', d)
> -
>          proto = ud.parm.get('proto', 'svn')
>  
>          svn_rsh = None
> @@ -88,7 +88,7 @@ class Svn(FetchMethod):
>              options.append("--password %s" % ud.pswd)
>  
>          if command == "info":
> -            svncmd = "%s info %s %s://%s/%s/" % (basecmd, " ".join(options), proto, svnroot, ud.module)
> +            svncmd = "%s info %s %s://%s/%s/" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module)
>          else:
>              suffix = ""
>              if ud.revision:
> @@ -96,9 +96,9 @@ class Svn(FetchMethod):
>                  suffix = "@%s" % (ud.revision)
>  
>              if command == "fetch":
> -                svncmd = "%s co %s %s://%s/%s%s %s" % (basecmd, " ".join(options), proto, svnroot, ud.module, suffix, ud.module)
> +                svncmd = "%s co %s %s://%s/%s%s %s" % (ud.basecmd, " ".join(options), proto, svnroot, ud.module, suffix, ud.module)
>              elif command == "update":
> -                svncmd = "%s update %s" % (basecmd, " ".join(options))
> +                svncmd = "%s update %s" % (ud.basecmd, " ".join(options))
>              else:
>                  raise FetchError("Invalid svn command %s" % command, ud.url)
>  
> @@ -117,6 +117,11 @@ class Svn(FetchMethod):
>              logger.info("Update " + loc)
>              # update sources there
>              os.chdir(ud.moddir)
> +            # We need to attempt to run svn upgrade first in case its an older working format
> +            try:
> +                runfetchcmd(ud.basecmd + " upgrade", d)
> +            except FetchError:
> +                pass
>              logger.debug(1, "Running %s", svnupdatecmd)
>              bb.fetch2.check_network_access(d, svnupdatecmd, ud.url)
>              runfetchcmd(svnupdatecmd, d)
> 
> 
> 
> _______________________________________________
> bitbake-devel mailing list
> bitbake-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/bitbake-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/bitbake-devel/attachments/20120703/cfd82fbb/attachment-0001.sig>


More information about the bitbake-devel mailing list