Skip to main content

ZC buildout recipe to checkout a dir from a svn repository and archive it in a folder

Project description

This product is used to download packages from svn and tar them in a directory.

We need some buildout vars:

>>> write('buildout.cfg',
... """
... [buildout]
... parts=svn-package
...
... [svn-package]
... recipe=iw.recipe.subversion
... urls=
...   file:///%s/my_package/trunk my_package
... """ % repository)

We need a repository:

>>> create_repository()

Then, the recipe should work:

>>> print system(buildout)
Installing svn-package.
A    /sample-buildout/parts/svn-package/my_package/__init__.py
A    /sample-buildout/parts/svn-package/my_package/sub
A    /sample-buildout/parts/svn-package/my_package/sub/__init__.py
A    /sample-buildout/parts/svn-package/my_package/README.txt
...
<BLANKLINE>

Ok, we got it:

>>> ls('parts', 'svn-package')
d my_package

If a download-cache directory is given, then an archive is created in the specified path:

>>> write('buildout.cfg',
... """
... [buildout]
... download-cache=cache
... parts=svn-package
...
... [svn-package]
... recipe=iw.recipe.subversion
... urls=
...   file:///%s/my_package/trunk my_package
... """ % repository)

>>> rmtree('parts')
>>> cache = join(os.getcwd(), 'cache')
>>> mkdir(cache)

>>> print system(buildout)
Creating directory '/sample-buildout/parts'.
Uninstalling svn-package.
Installing svn-package.
A    /sample-buildout/parts/svn-package/my_package/__init__.py
A    /sample-buildout/parts/svn-package/my_package/sub
A    /sample-buildout/parts/svn-package/my_package/sub/__init__.py
A    /sample-buildout/parts/svn-package/my_package/README.txt
...
Creating archive: my_package-dev.tar.gz

>>> ls(cache)
d  dist
-  my_package-dev.tar.gz

Ok, now we can work offline. The package will be installed from the cache directory:

>>> write('buildout.cfg',
... """
... [buildout]
... install-from-cache=true
... download-cache=cache
... parts=svn-package
...
... [svn-package]
... recipe=iw.recipe.subversion
... urls=
...   file:///%s/my_package/trunk my_package
... """ % repository)

>>> rmtree(repository)
>>> rmtree('parts')
>>> print system(buildout)
Creating directory '/sample-buildout/parts'.
Uninstalling svn-package.
Installing svn-package.
<BLANKLINE>


>>> ls('parts', 'svn-package')
d  my_package

>>> ls('parts', 'svn-package', 'my_package')
-  README.txt
-  __init__.py
d  sub

Well, it’s ok for a trunk url. But when working with tagged version, we don’t want to use subversion if we already have an archive:

>>> write('buildout.cfg',
... """
... [buildout]
... download-cache=cache
... parts=svn-package
...
... [svn-package]
... recipe=iw.recipe.subversion
... urls=
...   file:///%s/my_package/tags/v1_0_0 my_package
... """ % repository)

At the first time, we need to update and built the archive:

>>> create_repository()
>>> print system(buildout)
Uninstalling svn-package.
Installing svn-package.
A    /sample-buildout/parts/svn-package/my_package/__init__.py
A    /sample-buildout/parts/svn-package/my_package/sub
A    /sample-buildout/parts/svn-package/my_package/sub/__init__.py
A    /sample-buildout/parts/svn-package/my_package/README.txt
...
Creating archive: my_package-v1_0_0.tar.gz
<BLANKLINE>

>>> ls('parts', 'svn-package', 'my_package')
d  .svn
-  README.txt
-  __init__.py
d  sub

>>> ls(cache)
d  dist
-  my_package-v1_0_0.tar.gz

Then we work can work offline:

>>> write('buildout.cfg',
... """
... [buildout]
... offline=true
... download-cache=cache
... parts=svn-package
...
... [svn-package]
... recipe=iw.recipe.subversion
... urls=
...   file:///%s/my_package/tags/v1_0_0 my_package
... """ % repository)

>>> rmtree(repository)
>>> rmtree('parts')
>>> print system(buildout)
Creating directory '/sample-buildout/parts'.
Uninstalling svn-package.
Installing svn-package.
<BLANKLINE>

>>> ls('parts', 'svn-package', 'my_package')
-  README.txt
-  __init__.py
d  sub

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iw.recipe.subversion-0.3.1.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

iw.recipe.subversion-0.3.1-py2.4.egg (31.1 kB view details)

Uploaded Source

File details

Details for the file iw.recipe.subversion-0.3.1.tar.gz.

File metadata

File hashes

Hashes for iw.recipe.subversion-0.3.1.tar.gz
Algorithm Hash digest
SHA256 34c6a7a5e8cd9f1a268152e3fecc89f0f6bf78b522f7ef0022f7999b252e5670
MD5 872e21922d9311617f1db2a527f8852c
BLAKE2b-256 67ddc1a934bb77ad73a0cdd5a3ac543b32967fe7b56e1ea5e33462ce2d25dc23

See more details on using hashes here.

File details

Details for the file iw.recipe.subversion-0.3.1-py2.4.egg.

File metadata

File hashes

Hashes for iw.recipe.subversion-0.3.1-py2.4.egg
Algorithm Hash digest
SHA256 0665668f306d93721aafc61c1d5c394a79ae53c90e1f3f0452ab861c4f45277c
MD5 1f0f05b68bf7daf94f50c9019b7aa743
BLAKE2b-256 c4efded70b6e00dc905279e3423788aaf10c77315469c2098bd8f95e3125e6cb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page