{ "info": { "author": "Marcin Kasperski", "author_email": "Marcin.Kasperski@mekk.waw.pl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: DFSG approved", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Topic :: Software Development :: Version Control" ], "description": ".. -*- mode: rst; compile-command: \"rst2html README.txt README.html\" -*-\n\n=======================================================\nMercurial BitBucketize\n=======================================================\n\nPublish your next repo to bitbucket without clicking through the web\ninterface. Also switch it easily from private to public (or back), set\ndescription, enable or disable wiki and issue tracker\u2026\n\n.. contents::\n :local:\n :depth: 2\n\n.. sectnum::\n\nSynopsis\n=======================================================\n\nIn simplest configuration extension works just as generic BitBucket_\nclient::\n\n hg bitbucket_create acme-toolkit --wiki --private --forks=private\n\n hg bitbucket_modify acme-toolkit --public -m \"THE toolkit above all toolkits\"\n\n hg bitbucket_status acme-toolkit\n\n hg bitbucket_delete acme-toolkit\n\n hg bitbucket_goto acme-toolkit\n\nThose commands operate on ``https://bitbucket.org/\u00abUSER\u00bb/acme-toolkit``\nwhere ``\u00abUSER\u00bb`` is your BitBucket username (configured in extension\nconfiguration).\n\nPaired with `Path Pattern`_ it can also deduce *appropriate name*\nfor the current repository::\n\n # Create private bitbucket clone of current repo\n hg bitbucket_create\n # ... or maybe public one\n hg bitbucket_create --issues --public -l python -m \"Webapp for nowhere.com\"\n\n hg bitbucket_status\n\n hg bitbucket_modify --language=perl\n\n hg bitbucket_goto --issues\n\n hg bitbucket_delete\n\nTo save typing, all commands have shorter aliases (``hg bb_create``,\n``hg bb_status``, etc).\n\nEnabling and configuring the extension\n=======================================================\n\nInstall the extension as described below (see\n`Installation`_ section). Then enable it and configure a few crucial\nparameters by writing in ``~/.hgrc``::\n\n [extensions]\n mercurial_bitbucketize = \n\n [bitbucketize]\n user = John\n login = johny@gmail.com\n path_alias = bitbucket\n\nHere: ``user`` is your short BitBucket username (the name present in\nURLs of your repositories) and ``login`` is your Atlassian login (the\nusername you enter while performing browser login), \n\nThe ``path_alias`` is optional and means, that in case such alias\n(here: ``bitbucket``) is defined for current repository, it can be\nused to deduce the name of BitBucket repository to operate on. That\nworks great if you install and enable `Path Pattern`_ and define\nappropriate pattern, for example::\n\n [extensions] \n mercurial_bitbucketize = \n mercurial_path_pattern = \n\n [bitbucketize]\n user = John\n login = johny@gmail.com\n path_alias = bitbucket\n\n [path_pattern]\n bitbucket.local = ~/devel/{below}\n bitbucket.remote = https://bitbucket.org/John/{below:/=-}\n \n(with such settings ``bitbucketize`` will know that ``~/devel/libs/acme``\nshould be paired with ``https://bitbucket.org/John/libs-acme`` on BitBucket).\n\nIt is also strongly recommended that you install Keyring_ to avoid\nbeing repeatably prompted for BitBucket password (``bitbucketize``\nhappily uses `Keyring`_ to save password in secure storage). \n\n.. note::\n\n In case you happen to issue ``hg pull bitbucket`` or ``hg push bitbucket``\n over HTTP (instead of ssh), you will likely want to add::\n\n [auth]\n bitbucket.prefix = https://bitbucket.org\n bitbucket.username = John.Smith@some.where.com\n\n Those settings are irrelevant from the Bitbucketize point of view,\n but one usually wants to keep them in sync with ``bitbucketize``\n settings.\n\n\nCommands\n=======================================================\n\nStandard help is available for all commands (``hg help bitbucket_create``,\netc), check it out for detailed list of all options.\n\nAll commands have shorter aliases prefixed with ``bb_`` (instead of\n``hg bitbucket_modify`` you can type ``hg bb_modify``).\n\n------------------------------------------------------------\nCreating BitBucket repository (``hg bitbucket_create``)\n------------------------------------------------------------\n\nCreates new repository on BitBucket. You can give the name::\n\n hg bitbucket_create tinyapps-acme\n\n(then the command is context-less) or rely on deduction::\n\n hg bitbucket_create\n\n(the latter depends on proper ``path_alias`` configuration).\n\nBy default repository is private, has no wiki, no issue\ntracker, and no description. Some of those can be specified,\nfor example::\n\n hg bb_create --wiki --issues --descr=\"My repo\" --public\n\n.. note::\n\n I usually prefer to create repository as private, push the code,\n verify README appearance, and later, when I am generally happy and\n ready for the release, switch to public.\n\nThe ``bitbucket_create`` command does not push the code (created\nrepository is empty). This is done on purpose, to let you verify\nthe name and settings before you push.\n\n------------------------------------------------------------\nToggling repository features (``hg bitbucket_modify``)\n------------------------------------------------------------\n\nUse ``bitbucket_modify`` command to modify repository features.\n\nIt can be used to switch it to public::\n\n hg bitbucket_modify --public\n\nor back to private::\n\n hg bitbucket_modify --private\n\nand correct metadata::\n\n hg bitbucket_modify --lang=Perl --descr=\"TIMTOWTDI\"\n\nExamples above operated on *deduced* repository. Of course\nspecifying the name is also possible::\n\n hg bitbucket_modify tinylibs-acme --public --wiki\n\nSimilarly toggle wiki and issues::\n\n hg bitbucket_modify --wiki\n hg bitbucket_modify --no-wiki\n hg bitbucket_modify --issues\n hg bitbucket_modify --no-issues\n\n.. warning::\n\n Disabling wiki or issue tracker is destructive, dangerous\n operation. At the moment there is no additional warning or prompt\n (I plan to add one in the future).\n\n\n------------------------------------------------------------\nChecking repository status (``hg bitbucket_status``)\n------------------------------------------------------------\n\nUse ``bitbucket_status`` command to check whether \nrepository exists, and print it's metadata::\n\n hg bitbucket_status\n\nor::\n\n hg bitbucket_status tinylibs-acme\n\n------------------------------------------------------------\nDeleting the BitBucket clone (``hg bitbucket_delete``)\n------------------------------------------------------------\n\nUse ``bitbucket_delete`` to remove BitBucket clone::\n\n hg bitbucket_delete\n\nor, to delete repository with specific name::\n\n hg bitbucket_delete acme\n\n.. warning::\n\n This is irrecoverable operation. Even if you still have the code\n (and can push it back), there is no way to recover issues, wiki,\n downloads, or permissions.\n\n Use this command to delete temporary ad hoc repos, for more serious\n removals consider web interface.\n\n------------------------------------------------------------\nVisiting BitBucket web pages (``hg bitbucket_goto``)\n------------------------------------------------------------\n\nSimple shortcut to open respository related web pages on BitBucket.\n\nTo visit overview::\n\n hg bitbucket_goto tinylibs-acme\n\nor (with name deduction)::\n\n hg bb_goto\n\nTo visit specific page::\n\n hg bitbucket_goto tinylibs-acme --issues\n\nor (with name deduction)::\n\n hg bb_goto -l\n\n(see ``hg help bb_goto`` for list of all pages supported).\n\nDefault system browser is used (established according to various\nsystem-specific conventions). If that guess is incorrect, it\ncan be configured in ``.hgrc``. Either by something like::\n\n [browser]\n type = firefox\n\nwhere ``type`` is one of webbrowser_ supported values (``firefox``,\n``chrome``, ``safari``, ``opera``, ``konqueror``, \u2026) or::\n\n [browser]\n command = /usr/bin/firefox\n\n(the former is slightly preferable as it can give browser incentive\nto raise the window).\n\n\nInstallation\n=======================================================\n\n------------------------------------------------------------\nLinux/Unix\n------------------------------------------------------------\n\nInstalling from PyPi\n------------------------------------------------------------\n\nTo install for the first time, just::\n\n pip install --user mercurial_bitbucketize\n\nThis should install both the extension itself, and all it's\ndependencies. Of course other methods of installing Python\npackages work too (like ``sudo easy_install mercurial_bitbucketize``). \n\nActivate by writing in ``~/.hgrc``::\n\n [extensions]\n mercurial_bitbucketize =\n\nTo upgrade::\n\n pip install --upgrade --user mercurial_bitbucketize\n\nAs I already said, it is strongly recommended that you install also\nKeyring_ and `Path Pattern`_.\n\n\nInstalling for development\n------------------------------------------------------------\n\nClone the extension itself, and it's dependencies\n(PyBitBucket_ and `mercurial_extension_utils`_)::\n\n hg clone git+https://bitbucket.org/atlassian/python-bitbucket.git\n # Or git clone https://bitbucket.org/atlassian/python-bitbucket.git\n\n hg clone https://bitbucket.org/Mekk/mercurial-extension_utils \n\n hg clone https://bitbucket.org/Mekk/mercurial-bitbucketize\n\nUpdate to newest tags if you prefer to work on stable versions. \n\nInstall them for development (dependencies first)::\n\n pip install --user --edit python-bitbucket\n pip install --user --edit mercurial-extension_utils\n pip install --user --edit mercurial-bitbucketize\n\nActivate as usual::\n\n [extensions]\n mercurial_bitbucketize =\n\nTo upgrade just pull changes and update in appropriate repositories.\n\n\n\n------------------------------------------------------------\nWindows\n------------------------------------------------------------\n\nIf you have Python installed, install necessary modules with ``pip``,\njust like on Linux::\n\n pip install --user mercurial_bitbucketize\n\nAs Mercurial (whether taken from TortoiseHg_, or own package)\nuses it's own bundled Python, you must activate by specifying the path::\n\n [extensions]\n mercurial_bitbucketize = C:/Python27/Lib/site-packages/mercurial_bitbucketize.py\n ;; Or wherever pip installed it\n\nExtension will take care of finding necessary modules.\n\nIf you don't have Python, you may try the method described above in\n`Installing for development`_, but I suspect you will face missing\ndependencies. So preferably install Python.\n\n\nRelated extensions\n=======================================================\n\nMercurial wiki quotes BitbucketExtension_. Original repository\nseems gone, but some copy lives on as hgbb_. \n\nThat extension seems concentrated on different parts of BitBucket_\n(making aliases, fork management) than BitBucketize (which is mostly\nabout creating repositories and maintaining their metadata).\n\nAlso Bitbucketize is using mostly 2.0 BitBucket API while hgbb_ so far\nsticks to 1.0 version. This shows up in lack of some\nfields/attributes.\n\n.. _BitbucketExtension: https://www.mercurial-scm.org/wiki/BitbucketExtension\n\n.. _hgbb: https://bitbucket.org/seanfarley/hgbb\n\n\nHistory\n=======================================================\n\nSee `HISTORY.txt`_\n\n\nDevelopment, bug reports, enhancement suggestions\n=======================================================\n\nDevelopment is tracked on BitBucket, see \nhttp://bitbucket.org/Mekk/mercurial-bitbucketize/\n\nUse BitBucket issue tracker for bug reports and enhancement\nsuggestions.\n\nKnown problems\n=======================================================\n\n-------------------------------------------------------\n``Value error`` on repository creation\n-------------------------------------------------------\n\nIf ``hg bitbucket_create`` ends with::\n\n ValueError: dictionary update sequence element #0 has length 1; 2 is required\n\nyou observe effect of recurring bug in ``pybitbucket``. \n\nUpgrading ``pybitbucket`` to version 0.6.1 or newer should resolve\nthe problem.\n\nIf this is not feasible at the moment, you can also ignore the error\n(failure happens after repository was created, it's only consequence\nis that you do not see the confirmation message). Use ``hg bitbucket_details``\nto check whether repository state is correct.\n\n\nAdditional notes\n=======================================================\n\nInformation about this extension is also available\non Mercurial Wiki: http://mercurial.selenic.com/wiki/BitBucketizeExtension\n\nCheck also `other Mercurial extensions I wrote`_.\n\n.. _other Mercurial extensions I wrote: http://mekk.bitbucket.io/mercurial.html\n\n.. _Mercurial: http://mercurial.selenic.com\n.. _HISTORY.txt: http://bitbucket.org/Mekk/mercurial-update_version/src/tip/HISTORY.txt\n.. _mercurial_extension_utils: https://bitbucket.org/Mekk/mercurial-extension_utils/\n.. _TortoiseHg: http://tortoisehg.bitbucket.org/\n.. _PyBitBucket: https://bitbucket.org/atlassian/python-bitbucket\n.. _BitBucket: https://bitbucket.org\n.. _Path Pattern: https://bitbucket.org/Mekk/mercurial-path_pattern\n.. _Keyring: https://bitbucket.org/Mekk/mercurial_keyring\n.. _BitBucket: https://bitbucket.org\n.. _webbrowser: https://docs.python.org/2/library/webbrowser.html\n.. _my pybitbucket fork: https://bitbucket.org/Mekk/python-bitbucket\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitbucket.org/Mekk/mercurial-bitbucketize", "keywords": "mercurial hg bitbucket", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "mercurial_bitbucketize", "package_url": "https://pypi.org/project/mercurial_bitbucketize/", "platform": "", "project_url": "https://pypi.org/project/mercurial_bitbucketize/", "project_urls": { "Homepage": "http://bitbucket.org/Mekk/mercurial-bitbucketize" }, "release_url": "https://pypi.org/project/mercurial_bitbucketize/0.9.2/", "requires_dist": null, "requires_python": "", "summary": "Mercurial Bitbucketize Extension", "version": "0.9.2" }, "last_serial": 4134427, "releases": { "0.5.0": [ { "comment_text": "", "digests": { "md5": "0c882f5db50edac2a72a55ddc859ecb6", "sha256": "e81af8707a00e2609b44ee66d588fd62a476d3ec9022e20ffcfab6800b8c5ca5" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.5.0.tar.gz", "has_sig": false, "md5_digest": "0c882f5db50edac2a72a55ddc859ecb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12108, "upload_time": "2015-11-23T22:38:07", "url": "https://files.pythonhosted.org/packages/64/cc/08b5a101a1b4a3a9b28476ccff43ad084662a6544a84a3493a32206a685d/mercurial_bitbucketize-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "56d52058fb4f85ed025b6d2f50e735d0", "sha256": "2bef2073a7ac6a6765365d1ee68300c303e003f7c466905f4b6b1b113dfc30c5" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.5.1.tar.gz", "has_sig": false, "md5_digest": "56d52058fb4f85ed025b6d2f50e735d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12468, "upload_time": "2015-11-27T20:20:00", "url": "https://files.pythonhosted.org/packages/49/86/c9663e10162b61c524d69944dd987401ba5b6d7192f74e70fdeac43c76e8/mercurial_bitbucketize-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "90c6a22438f7f70d551654ea3a30c0a4", "sha256": "ccfd8a7ef5bf11074dfe26583e210d885ef186d150867064d1e5cf2c127192d3" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.6.0.tar.gz", "has_sig": false, "md5_digest": "90c6a22438f7f70d551654ea3a30c0a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14667, "upload_time": "2015-11-28T07:52:53", "url": "https://files.pythonhosted.org/packages/d6/27/536bf1a47fe39f29ee72a1fe0d3120b2bfd350697b72c2aaca9c84b57436/mercurial_bitbucketize-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "41d279a34fabd9d1040b51fd72ac6940", "sha256": "67fd7029a4950e26477f21c41d1acbe44e2587b502a0b6756905d3c3ed264f70" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.6.1.tar.gz", "has_sig": false, "md5_digest": "41d279a34fabd9d1040b51fd72ac6940", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15149, "upload_time": "2015-12-01T16:49:15", "url": "https://files.pythonhosted.org/packages/1b/08/09fa171e5ea8b312068f6dad2facea05062ebade9f4f7deae012cbe8d687/mercurial_bitbucketize-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "44c30d60992a8a773a4809c518fedbc5", "sha256": "4eb0b73e7a9def93dae0ae1db378d29c164475b442009dcf93497f95cb062a67" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.6.2.tar.gz", "has_sig": false, "md5_digest": "44c30d60992a8a773a4809c518fedbc5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15152, "upload_time": "2015-12-01T16:51:30", "url": "https://files.pythonhosted.org/packages/4a/85/1165579c11343e6dc54bc1ac861a3bb0860355797979299111ebc2c03ff6/mercurial_bitbucketize-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "9521f3cfd741ecb3daf54f21a7367965", "sha256": "feff7a1e39832be7213860285b31677a855f80ec55cdb664951f2399bc8b50ba" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.6.3.tar.gz", "has_sig": false, "md5_digest": "9521f3cfd741ecb3daf54f21a7367965", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15247, "upload_time": "2015-12-02T20:57:08", "url": "https://files.pythonhosted.org/packages/67/9d/ce854c370b57faa3a69cd3b15132e74bafe93b5686b52926fc90dd5b84ce/mercurial_bitbucketize-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "dea17b79e2c7348ae59e184bb8077a2b", "sha256": "49db53bc1d4ffe31b0372702362bf29628354a0e1640fcdc384c28e75434f661" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.6.4.tar.gz", "has_sig": false, "md5_digest": "dea17b79e2c7348ae59e184bb8077a2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15200, "upload_time": "2016-03-10T22:39:35", "url": "https://files.pythonhosted.org/packages/f7/fc/c26517ba00c144466258e45d44385d64a19a9fe0ca7601c29c82165163d3/mercurial_bitbucketize-0.6.4.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "97cacd5933575941b4e32f863cedb62a", "sha256": "be2765e78a059e59d3544009e00374ae8173fc38a96cf2dbfbb133d8127ac5b7" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.7.0.tar.gz", "has_sig": false, "md5_digest": "97cacd5933575941b4e32f863cedb62a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14285, "upload_time": "2016-04-26T17:56:30", "url": "https://files.pythonhosted.org/packages/81/b4/1331c8b462e726ba6d6edab227dc270cd4e980e5ac6b482a189cb2cc1773/mercurial_bitbucketize-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "54f35874924e1d80153e8acfa4154153", "sha256": "daf91ff2f1a31eabf8be05fcb95cef4c02f74b6d3662401a6e70ffb9abd67bb1" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.8.0.tar.gz", "has_sig": false, "md5_digest": "54f35874924e1d80153e8acfa4154153", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16154, "upload_time": "2016-12-18T08:10:10", "url": "https://files.pythonhosted.org/packages/58/b1/3da4aa113c7fbe32ab40667fb4276029c23ce473a94530b203ce656e5df6/mercurial_bitbucketize-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "7158cd34db85901cba42fc9d7f8bf177", "sha256": "c3588c7177ae67d1a97617aa8534a8b4541ae33c844389d1c46aeb8f25990b25" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.9.0.tar.gz", "has_sig": false, "md5_digest": "7158cd34db85901cba42fc9d7f8bf177", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16529, "upload_time": "2017-05-18T16:20:20", "url": "https://files.pythonhosted.org/packages/7f/9a/0d697cb0cdd9a41b4d59e8e1284de0918bab06fce1001f0706178411ebe6/mercurial_bitbucketize-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "2fdf8ec565235c3a127477a3f8747bd0", "sha256": "d8ad172cea4ed2bc34d5ac1bc678ab28376836609f259bd6ed7146ed66e7aa0a" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.9.1.tar.gz", "has_sig": false, "md5_digest": "2fdf8ec565235c3a127477a3f8747bd0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15209, "upload_time": "2018-05-26T00:27:42", "url": "https://files.pythonhosted.org/packages/70/27/0b18ffcaaf2c8c9835f074c593c5140fc9bde418c6f0152ba0cea63c9df2/mercurial_bitbucketize-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "ddbe8eade20603f443b2a3d0ba69c172", "sha256": "da30fc91e22d7d194bae4610bd46d28c9594017c3bf1de19c1c5354f244a03e8" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.9.2.tar.gz", "has_sig": false, "md5_digest": "ddbe8eade20603f443b2a3d0ba69c172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15206, "upload_time": "2018-08-03T23:30:01", "url": "https://files.pythonhosted.org/packages/f8/91/66bbe2e0408671fab104946a1f92bd6d7c3ca404c80e6751b1705e8ebd19/mercurial_bitbucketize-0.9.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ddbe8eade20603f443b2a3d0ba69c172", "sha256": "da30fc91e22d7d194bae4610bd46d28c9594017c3bf1de19c1c5354f244a03e8" }, "downloads": -1, "filename": "mercurial_bitbucketize-0.9.2.tar.gz", "has_sig": false, "md5_digest": "ddbe8eade20603f443b2a3d0ba69c172", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15206, "upload_time": "2018-08-03T23:30:01", "url": "https://files.pythonhosted.org/packages/f8/91/66bbe2e0408671fab104946a1f92bd6d7c3ca404c80e6751b1705e8ebd19/mercurial_bitbucketize-0.9.2.tar.gz" } ] }