{ "info": { "author": "Beno\u00eet Bryon", "author_email": "benoit@marmelune.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4" ], "description": "###########\npsykorebase\n###########\n\nEasily perform merge-based rebases, i.e. rebases that don't alter history.\n\nYou can read the full rationale behind this idea here:\n\n* http://tech.novapost.fr/merging-the-right-way-en.html\n* http://tech.novapost.fr/psycho-rebasing-en.html\n\n\n*****\nWhat?\n*****\n\nAs a summary:\n\n* ``git checkout topic && git merge master`` is the wrong way to merge.\n Get ready for bad things to happen.\n\n* ``git checkout topic && git rebase master`` is better but:\n\n * it alters history. It is safe from merge conflicts but doesn't guarantee\n that merged code works. You are losing some intermediate states of your\n work.\n\n * it is incompatible with branches you already pushed to shared repository.\n\n``psykorebase``:\n\n* mimics the \"rebase\" workflow, but only using merges, no history alteration.\n It replays \"topic\" changes on top of \"master\" in \"topic\" branch (just like\n rebase), without deleting \"topic\" changes.\n\n* preserves all states of your code.\n\n* is compatible with pushed branches.\n\n* the main (and only?) counterpart is that there are more entries in history.\n There are more commits and more merges. Is that a drawback? If you look\n carefully, things are clear and clean. But some developers don't like it...\n\n\n*******\nInstall\n*******\n\nCurrently developped against Python 2.7.x.\nSupports only Git for now.\n\n.. code-block:: sh\n\n sudo pip install https://github.com/benoitbryon/psykorebase/archive/master.tar.gz#egg=psykorebase\n\nUninstall with ``sudo pip uninstall psykorebase``.\n\n\n*****\nUsage\n*****\n\nGit\n===\n\nCurrent, in-development prototype\n---------------------------------\n\n``psykorebase MASTER [TOPIC]`` performs a \"psycho-rebase\" of TOPIC branch on\ntop of MASTER. Where TOPIC is optional and defaults to current branch.\n\nExample:\n\n.. code-block:: sh\n\n git checkout master && git pull --rebase origin master # Update master.\n git checkout topic && psykorebase master # Psykorebase topic on top of master.\n\nPlanned usage (in development)\n------------------------------\n\nThe default, issues one merge for each (new) commit in topic branch:\n\n``git checkout topic && psykorebase master``.\n\nThe quick'n'dirty, issues one big merge which includes all (new) commits from\ntopic branch (merges heads):\n\n``git checkout topic && psykorebase --fast master``\n\nThe default is safer, the ``--fast`` works well when there are poor chances of\nproblems.\r\nCHANGELOG\n=========\n\n1.0.1 (2015-07-29)\n==================\n\n- Fix setup.py\n\n\n1.0.0 (2015-07-29)\n==================\n\n- Add Python3 support.\n- Add Git support\n- Add ``psykorebase BRANCH`` and ``psykorebase --continue`` functionality.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/benoitbryon/psykorebase", "keywords": "git merge rebase", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "psykorebase", "package_url": "https://pypi.org/project/psykorebase/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/psykorebase/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/benoitbryon/psykorebase" }, "release_url": "https://pypi.org/project/psykorebase/1.0.1/", "requires_dist": null, "requires_python": null, "summary": "Easily perform safe (merge-based) rebases.", "version": "1.0.1" }, "last_serial": 1658038, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "9c6936ed165aa0f2c080e4b35b06e5dd", "sha256": "03157e7acf598b68f2201ac83428d60cc57c14a4970b2b1a5e980895736c2e2d" }, "downloads": -1, "filename": "psykorebase-1.0.0.zip", "has_sig": false, "md5_digest": "9c6936ed165aa0f2c080e4b35b06e5dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12871, "upload_time": "2015-07-29T14:01:44", "url": "https://files.pythonhosted.org/packages/57/7f/54656dab6c161163f06a1ef253eaf7c2f1d47bbf19d55a4c9864c49419f7/psykorebase-1.0.0.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "844569e7f39da52afcd13926201866fb", "sha256": "3b93caea16fa055088ac70a469312c6f58bdf7c4cfea4d5fd31de8a98314cfe8" }, "downloads": -1, "filename": "psykorebase-1.0.1.zip", "has_sig": false, "md5_digest": "844569e7f39da52afcd13926201866fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13073, "upload_time": "2015-07-29T14:04:54", "url": "https://files.pythonhosted.org/packages/28/af/ebacb6407d4fcd01aaa2899c1e572736a9cf8ca5d7276dc3f4cffea4b632/psykorebase-1.0.1.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "844569e7f39da52afcd13926201866fb", "sha256": "3b93caea16fa055088ac70a469312c6f58bdf7c4cfea4d5fd31de8a98314cfe8" }, "downloads": -1, "filename": "psykorebase-1.0.1.zip", "has_sig": false, "md5_digest": "844569e7f39da52afcd13926201866fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13073, "upload_time": "2015-07-29T14:04:54", "url": "https://files.pythonhosted.org/packages/28/af/ebacb6407d4fcd01aaa2899c1e572736a9cf8ca5d7276dc3f4cffea4b632/psykorebase-1.0.1.zip" } ] }