Skip to main content

A git remote ZServer type. Yeah. Seriously. It lets you pull TTW code.

Project description

Okay, I’m sorry. But yes. This is real.

Do you have a TTW developed Zope site? Do you really wish you didn’t? mr.tennant exposes a git remote that you can pull from and get a git repository that represents your TTW code as well as its transaction history.

Then change it.

Then push it.

Yeah.

For now it’s just utlity functions, but try:

from AccessControl.SecurityManagement import newSecurityManager
from AccessControl.SecurityManager import setSecurityPolicy
from Testing.makerequest import makerequest
from Products.CMFCore.tests.base.security import PermissiveSecurityPolicy, OmnipotentUser
import tempfile
from mr.tennant.git import dump_objects, serialise_directory, serialise_commit

_policy=PermissiveSecurityPolicy()
_oldpolicy=setSecurityPolicy(_policy)
newSecurityManager(None, OmnipotentUser().__of__(app.acl_users))
app=makerequest(app)
from mr.tennant.git import get_commits_for_history

repo = tempfile.mkdtemp()
objects, HEAD = get_commits_for_history(app.repository)
dump_objects(repo, objects, HEAD=HEAD)
print repo

When you go to the tempfolder it points you to and run ‘git reset –hard’ you’ll get a working repo with a history, containing the contents of app.repository

Project details


Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page