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

Supported by

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