mr.tennant

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


Keywords
git, zope, crazy
License
GPL-2.0+
Install
pip install mr.tennant==1.0a1

Documentation

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 utility 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