paverで最新のソースを取得する
僕はsvnやhgなどで落としてるライブラリをあるdir配下にまとめている。
こんなカンジで。
(あくまで例ですよ)
./
-- bespin -- bruce-tpt-read-only -- ctypesgen-read-only -- django -- django-command-extensions -- eventlet -- gaeutilities-read-only -- google_appengine -- jaikuengine-read-only -- jinja2-main -- mako -- nevow -- paver-read-only -- pinax -- pinsor -- projectmgr -- py3k -- pypy-dist -- pyquery -- python26 -- python27 -- remedie -- rope -- ropemode -- ropevim -- snake-guice -- sqlalchemy -- tg2 -- tgdevtools -- twisted -- unladen-swallow-read-only -- unladen-swallow-tests -- virtualenv -- web2py -- werkzeug-main -- whoosh -- windmill -- wphp `-- zine-main
ほぼコードを読む用なんだけどね。
でソース読むとかする際、こいつらをイチイチひとつずつupdateするのがめんどい。
なのでpaverを使う。
pavement.py
from __future__ import with_statement from paver.easy import * from paver.svn import update as svnupdate def run_svn(dir): print "svn update %s" % dir svnupdate(dir) def run_hg(dir): print "hg update %s" % dir sh('hg pull && hg update') @task def all_update(): current = path("./") for lib_dir in current.dirs(): with pushd(lib_dir): vcs = lambda x:x for f in current.listdir(): if f == "./.svn": vcs = run_svn elif f == "./.hg": vcs = run_hg try: vcs(lib_dir) except: pass
これをライブラリを置いてる一番上のdirにおいて
paver all_update
と叩くと全部最新のソースになる。
paver便利!!!