{ "info": { "author": "John Sirois", "author_email": "john.sirois@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Topic :: Software Development :: Version Control" ], "description": "== Installation:\n\nTo install the python library you can do one of the following:\n1.) use easy_install to install from the PyPI registry: http://pypi.python.org/pypi/sapling\n$ sudo easy_install sapling\n2.) use pip to install from PyPI\n$ sudo pip install sapling\n3.) Or you can get the source distribution and run the following from its root:\n$ sudo python setup.py install\n\nThen to link the porcelain into git-core, do:\n$ sudo sapling.py --install\n\nGet help\n$ git sap -h\n\n== Configuration\n\nSapling (git sap) is configured with a .saplings file at the root of your git repository. Here's\nan example .saplings configuration for a scala project with common component and a hack component\nthat uses it:\n\ncommon = {\n # The logical name of the split - listed by git sap.\n 'name': 'common',\n\n # The paths that comprise this split. These paths will form the saplings split from and merged\n # into your repository when using git sap --split and git sap --merge respectively\n 'paths': [\n 'project',\n 'src/main/scala/com/twitter/common',\n 'src/main/resources/com/twitter/common',\n 'src/test/scala/com/twitter/common',\n ]\n}\n\nhack = {\n 'name': 'hack',\n 'paths': [\n 'project',\n 'src/main/scala/com/twitter/hack',\n ]\n}\n\n# This is all git sap looks for - a list of splits named 'splits'. Each split in the list must be\n# a dict with the keys shown/described above.\nsplits = [\n common,\n hack\n]\n\n== Use\n\nTo verify your .saplings is correct, you can view the current splits (assuming .saplings above)\nwith:\n$ git sap\ncommon\nhack\n\nYou could split out the common split to a new repo like so:\n$ git sap --split common\n$ git push git@github.com:jsirois/common.git sapling_split_common:master\n\nYou can merge changes back in from a split branch or repo using standard git tools:\n$ git pull git@github.com:jsirois/common.git master\n\nThis will maintain a parallel history of changes to the split which can make for confusing looking\n\"double commits\". An alternative that allows for more controlled imports is to apply patches from\nthe split onto the mainline using a combination of:\n1.) (split branch)$ git format-patch ... \\\n --ignore-if-in-upstream ..[remote split tracking branch] > /tmp/mbox\n2.) (master)$ git am -k ... < /tmp/mbox\n\n== Development:\n\nTo run all tests, you can use something like:\n$ PYTHONPATH=$PYTHONPATH:. py.test test/*.py -v\n\n== Known Issues:\n\nThere is no way currently to do differential splits. Although a split for fixed branch/split config\nwill always produce the same split branch (identical shas), it will always re-run over the entire\nsource branch which can take a long time for big branches.\n\n== Roadmap:\n\n0.1.x\n + support differential splitting\n + built in support for patch merging strategy\n\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/jsirois/sapling", "keywords": null, "license": "Apache License Version 2.0", "maintainer": null, "maintainer_email": null, "name": "sapling", "package_url": "https://pypi.org/project/sapling/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/sapling/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/jsirois/sapling" }, "release_url": "https://pypi.org/project/sapling/0.0.11/", "requires_dist": null, "requires_python": null, "summary": "A git porcelain to manage bidirectional subtree syncing with foreign git repositories", "version": "0.0.11" }, "last_serial": 1067221, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c67d9a4c233a2026223cf0d35d87d4fd", "sha256": "bfc29a6739fca0077abc79241aaecec6e8f67b4b9f518f00b35125aa39384174" }, "downloads": -1, "filename": "sapling-0.0.1.tar.gz", "has_sig": true, "md5_digest": "c67d9a4c233a2026223cf0d35d87d4fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10960, "upload_time": "2010-10-29T20:59:34", "url": "https://files.pythonhosted.org/packages/df/0a/7a134cce57525ad759474188a5e8be92d6647687d54397763ca61f575979/sapling-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "5ef23d5872ee478ae222a9a44883759c", "sha256": "7c461470430da1aeb5e0afe306ffdd342c57b3c23f64fe45de1782761b43fa22" }, "downloads": -1, "filename": "sapling-0.0.10.tar.gz", "has_sig": true, "md5_digest": "5ef23d5872ee478ae222a9a44883759c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12416, "upload_time": "2011-12-13T14:41:53", "url": "https://files.pythonhosted.org/packages/f0/d6/ac9faa4e920e655abf12b02e93afb97a5a354e2304ae0e21607647277f51/sapling-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "131391329dfcfcb567fc6fdae1c29268", "sha256": "a6315985b4d415896b2dd97fa96f62116b8d8df8ceb915ab72f3061ad280065f" }, "downloads": -1, "filename": "sapling-0.0.11.tar.gz", "has_sig": true, "md5_digest": "131391329dfcfcb567fc6fdae1c29268", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13063, "upload_time": "2014-04-21T23:18:23", "url": "https://files.pythonhosted.org/packages/6d/f6/53004a85271795128fc810dbcd11971de123d336aadf2579af545a0dc209/sapling-0.0.11.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4231e5c83b02e71a8dd108892cd9d62c", "sha256": "f3c51f6bd3367a89f60865e618de5047efec9519ace659ac17499c568253a6f6" }, "downloads": -1, "filename": "sapling-0.0.2.tar.gz", "has_sig": true, "md5_digest": "4231e5c83b02e71a8dd108892cd9d62c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11474, "upload_time": "2010-11-01T14:51:58", "url": "https://files.pythonhosted.org/packages/18/fb/f54dbf3456772a1c6003809d2c95344556fe20182c27b6ef6716482b3b03/sapling-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "f7e0151a5ab6409d2c1d330e84f58879", "sha256": "009ae779b1c33e6f381160f8c08e27b79bc554d3080081dbe6d483c888552e83" }, "downloads": -1, "filename": "sapling-0.0.3.tar.gz", "has_sig": true, "md5_digest": "f7e0151a5ab6409d2c1d330e84f58879", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11041, "upload_time": "2010-11-01T14:57:18", "url": "https://files.pythonhosted.org/packages/09/9c/73bcea414f6fb4118ab3528dfa68ad992464d5011386a602b49828683c73/sapling-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "0836e2d832d110835771295dfa459cf1", "sha256": "459f24db38a77a74f3a747eb32cc10ad3d9c1ac670fa7f0765224c506e834500" }, "downloads": -1, "filename": "sapling-0.0.4.tar.gz", "has_sig": true, "md5_digest": "0836e2d832d110835771295dfa459cf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11815, "upload_time": "2010-11-02T22:04:02", "url": "https://files.pythonhosted.org/packages/14/63/5a683a7acb95813b26720f46067d4b341f8276d26ca8439ab21686512e20/sapling-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "c01004b80d09c6eef4bd8ec78e32594a", "sha256": "0eba191ff02722f1c8d3a41a9ca3872be1f682588339fff6d48dd3b004935789" }, "downloads": -1, "filename": "sapling-0.0.5.tar.gz", "has_sig": true, "md5_digest": "c01004b80d09c6eef4bd8ec78e32594a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12029, "upload_time": "2010-11-05T04:05:05", "url": "https://files.pythonhosted.org/packages/9f/ee/709ae991a959c1bc8e5dca622a1471143787660d2ac4001c8e673d15166a/sapling-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "a670323ee434b6899a7714ea337f1d49", "sha256": "58ad96255ab4307d050005c49d515a9e699ad18ff0e9e27a1c5348f186b2d411" }, "downloads": -1, "filename": "sapling-0.0.6.tar.gz", "has_sig": true, "md5_digest": "a670323ee434b6899a7714ea337f1d49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12296, "upload_time": "2010-11-30T21:05:54", "url": "https://files.pythonhosted.org/packages/08/53/7bd84ba432f6cbea83bcf2d6184174248ef60f0cf7dfe9e727c2cf6e5248/sapling-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "b68fcab2863471cf1e8e525c00492d31", "sha256": "5dc6d0be5172a4d450c530438af23fe1bd63c7a14602f3c17ac57443a2c5ce60" }, "downloads": -1, "filename": "sapling-0.0.7.tar.gz", "has_sig": true, "md5_digest": "b68fcab2863471cf1e8e525c00492d31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12286, "upload_time": "2010-11-30T21:19:40", "url": "https://files.pythonhosted.org/packages/35/15/c2569e2212c5c26f211be0b39ce3b94745a1d9e34ef35b1600a70fd50fbd/sapling-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "36a9a641801a7846da494111a6aff9dd", "sha256": "70953daa1cc15741b78d6f781cd54013d1ec1f7de8a8d4926345095963a693e2" }, "downloads": -1, "filename": "sapling-0.0.8.tar.gz", "has_sig": true, "md5_digest": "36a9a641801a7846da494111a6aff9dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12181, "upload_time": "2011-03-01T17:32:10", "url": "https://files.pythonhosted.org/packages/9e/a3/6dc14527f4e5b6795e3919431f166b2fdbcdbca4f22c23fc72a123ddaf4e/sapling-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "95d2577c5d73f78234f19b0a18f33727", "sha256": "205f71d1e8e5787dbf872598f06279122c394d19df5b715f1ad75e9571c64d46" }, "downloads": -1, "filename": "sapling-0.0.9.tar.gz", "has_sig": true, "md5_digest": "95d2577c5d73f78234f19b0a18f33727", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12654, "upload_time": "2011-03-02T17:16:48", "url": "https://files.pythonhosted.org/packages/a7/52/6e544750979c72f4bf0d2f32dad4c55ee5613677836452cf9f12f99df314/sapling-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "131391329dfcfcb567fc6fdae1c29268", "sha256": "a6315985b4d415896b2dd97fa96f62116b8d8df8ceb915ab72f3061ad280065f" }, "downloads": -1, "filename": "sapling-0.0.11.tar.gz", "has_sig": true, "md5_digest": "131391329dfcfcb567fc6fdae1c29268", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13063, "upload_time": "2014-04-21T23:18:23", "url": "https://files.pythonhosted.org/packages/6d/f6/53004a85271795128fc810dbcd11971de123d336aadf2579af545a0dc209/sapling-0.0.11.tar.gz" } ] }