{ "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 All Dirs extension\n====================================\n\nExecute the same Mercurial command in many repositories.\n\n.. contents::\n :local:\n :depth: 2\n\n.. sectnum::\n\nExample\n=====================\n\nImagine you have Mercurial repositories in ``~/src/libs/acme``, \n``~/src/libs/net/aaa``, and ``~/src/libs/net/bbb``. Then::\n\n cd ~/src/libs\n hg alldirs status\n # \u2026 shows status in all three repos\n hg alldirs heads -t\n # \u2026 and heads\n hg alldirs log -l 2\n # \u2026 and recent commit\n\nand even::\n\n hg alldirs commit -m \"Documentation updates\"\n # Commit in all three repos\n hg alldirs push bb\n # \u2026 and pushes them all\n\nRelative file names are resolved against given repo root (the\ncommand chdirs to every repo before actually executing it)::\n\n hg alldirs commit -m \"Version update\" setup.py src/version.py \n\n.. note::\n\n In practice I usually shortcut the command and type::\n\n hg alld status\n # etc\n\nNote that ``alldirs`` does not require any kind of *parent\nrepository*.\n\nIn case you are already inside some repo, command is executed on\nit, so ``alld`` does not matter::\n\n cd ~/src/libs/net/aaa\n hg status\n hg alld status\n # \u2026 Both do the same\n\n\nFailure handling\n=================================================\n\nIn case given command is not known (``hg alldirs badcommand``), or\ngot invalid options (``hg alldirs log -s``), error is reported\nimmediately and processing stops.\n\n.. note::\n\n Technically: command name and params are parsed once, before\n visiting subdirs.\n\nIn case given commands fails during execution (``hg alldirs pull\nnosuchalias``), ``alldirs`` executes the command in every repo\n(doesn't stop). After finishing the job, it summarizes list of\nrepositories in which the command failed.\n\n.. note::\n\n That is done on purpose, I do not want my ``hg alld pull``\n to break if some repo lacks default path.\n\nIn both cases whole command returns exit status signalling\nan error. \n\n\nInstallation\n=================================================\n\nLinux/Unix (from PyPI)\n~~~~~~~~~~~~~~~~~~~~~~\n\nIf you have working ``pip`` or ``easy_install``::\n\n pip install --user mercurial_all_dirs\n\nor maybe::\n\n sudo pip install mercurial_all_dirs\n\n(or use ``easy_install`` instead of ``pip``). Then activate by::\n\n [extensions]\n mercurial_all_dirs =\n\nTo upgrade, repeat the same command with ``--upgrade`` option, for\nexample::\n\n pip install --user --upgrade mercurial_all_dirs\n\nLinux/Unix (from source)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you don't have ``pip``, or wish to follow development more closely:\n\n- clone both this repository and `mercurial_extension_utils`_ and put\n them in the same directory, for example::\n\n cd ~/sources\n hg clone https://bitbucket.org/Mekk/mercurial-extension_utils/\n hg clone https://bitbucket.org/Mekk/mercurial-all_dirs/\n\n- update to newest tags,\n\n- activate by::\n\n [extensions]\n mercurial_all_dirs = ~/sources/mercurial-all_dirs/mercurial_all_dirs.py\n\nTo upgrade, pull and update.\n\nSee `mercurial_extension_utils`_ for longer description of this kind\nof installation.\n\nWindows\n~~~~~~~~~~~~~~~~~~~~~~~\n\nIf you have any Python installed, you may install with ``pip``::\n\n pip install mercurial_all_dirs\n\nStill, as 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_all_dirs = C:/Python27/Lib/site-packages/mercurial_all_dirs.py\n ;; Or wherever pip installed it\n\nTo upgrade to new version::\n\n pip --upgrade mercurial_all_dirs\n\nIf you don't have any Python, clone repositories::\n\n cd c:\\hgplugins\n hg clone https://bitbucket.org/Mekk/mercurial-extension_utils/\n hg clone https://bitbucket.org/Mekk/mercurial-all_dirs/\n\nupdate to tagged versions and activate by path::\n\n [extensions]\n mercurial_all_dirs = C:/hgplugins/mercurial-all_dirs/mercurial_all_dirs.py\n ;; Or wherever you cloned\n\nSee `mercurial_extension_utils`_ documentation for more details on\nWindows installation. \n\n\n\nRelated extensions\n==================================================\n\nThere are a few extensions which support operations on repository\ngroups - `Subrepos Extension`_, `OnSub Extension`_, `Forest\nExtension`_. They all require using parent repository, which defines\nthe project structure. So, to pull all repos below ``~/src`` you\nmust ``hg init src``, create file like ``.hgsub`` there, etc.\n\nAll Dirs does not require such a parent repo. It just works on\nwhatever is found on the disk. You decided to keep some repositories\nbelow ``~/src``? Fine, you can ``hg alld status`` them all.\n\nCommand syntax also matters. I strongly prefer typing::\n\n hg alld pull --update\n\nto typing::\n\n hg onsub \"hg pull --update\"\n\nAt the same time, All Dirs does not support any kind of declaration\nthat some repositories are related, group cloning, version\nrelationship etc. If you are interested in such features, consider\n`Subrepos Extension`_.\n\nHistory\n==================================================\n\nSee `HISTORY.txt`_\n\nDevelopment, bug reports, enhancement suggestions\n===================================================\n\nDevelopment is tracked on BitBucket, see \nhttp://bitbucket.org/Mekk/mercurial-all_dirs/\n\nUse BitBucket issue tracker for bug reports and enhancement\nsuggestions.\n\nAdditional notes\n================\n\nInformation about this extension is also available\non Mercurial Wiki: http://mercurial.selenic.com/wiki/AllDirsExtension\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-all-dirs/src/tip/HISTORY.txt\n.. _mercurial_extension_utils: https://bitbucket.org/Mekk/mercurial-extension_utils/\n.. _dynamic_username: http://bitbucket.org/Mekk/mercurial-dynamic_username/\n\n.. _TortoiseHg: http://tortoisehg.bitbucket.org/\n\n.. _OnSub Extension: https://www.mercurial-scm.org/wiki/OnsubExtension\n.. _Subrepos Extension: https://www.mercurial-scm.org/wiki/Subrepository\n.. _Forest Extension: https://www.mercurial-scm.org/wiki/ForestExtension\n\n.. |drone-badge| \n image:: https://drone.io/bitbucket.org/Mekk/mercurial-all_dirs/status.png\n :target: https://drone.io/bitbucket.org/Mekk/mercurial-all_dirs/latest\n :align: middle\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-all_dirs", "keywords": "mercurial subdirs multi alias", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "mercurial_all_dirs", "package_url": "https://pypi.org/project/mercurial_all_dirs/", "platform": "", "project_url": "https://pypi.org/project/mercurial_all_dirs/", "project_urls": { "Homepage": "http://bitbucket.org/Mekk/mercurial-all_dirs" }, "release_url": "https://pypi.org/project/mercurial_all_dirs/1.0.4/", "requires_dist": null, "requires_python": "", "summary": "Mercurial All Dirs Extension", "version": "1.0.4" }, "last_serial": 4452975, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "0245a04dbc2094c7e285dd80569dc55f", "sha256": "d3c24d2fcfe636775347b7e03ab8a4969178f8f19dbf406208d8ef6dae1f2c97" }, "downloads": -1, "filename": "mercurial_all_dirs-0.3.0.tar.gz", "has_sig": false, "md5_digest": "0245a04dbc2094c7e285dd80569dc55f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3692, "upload_time": "2015-10-25T05:46:20", "url": "https://files.pythonhosted.org/packages/12/93/0c616558e4aa542d1d17348f608495e1f51c327275f2d32863b4dabeff91/mercurial_all_dirs-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "0ddebfedd6d6c21852cbcf7ae73fb83c", "sha256": "34b1eefd011df207d4dfa4a3ff1cbfd4e953a0e1f2269c9ffc22234e7b6476f8" }, "downloads": -1, "filename": "mercurial_all_dirs-0.4.0.tar.gz", "has_sig": false, "md5_digest": "0ddebfedd6d6c21852cbcf7ae73fb83c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4123, "upload_time": "2015-10-28T22:58:14", "url": "https://files.pythonhosted.org/packages/8e/bb/68a6059bf801b95b870fbe4f1772cab8c7507c38559f7f8c05f190b40ce3/mercurial_all_dirs-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "36c5729460b10abeb55a5334da086883", "sha256": "e70e3f1077c45614e4e9aa2e43fc60d6c34beb8d7a7a8776fda572122b3cb046" }, "downloads": -1, "filename": "mercurial_all_dirs-0.4.1.tar.gz", "has_sig": false, "md5_digest": "36c5729460b10abeb55a5334da086883", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8436, "upload_time": "2015-11-08T07:03:34", "url": "https://files.pythonhosted.org/packages/d9/44/884db11bf4e55c0066763fe14d5ae4b54566dabf27bfce909a8ad5d39e1f/mercurial_all_dirs-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "37b56c21f156221a741f1e71b71da327", "sha256": "27aaaf80518c3b1467bde8d87e728c9a9ff04e1384cfadf183ae297bb181f919" }, "downloads": -1, "filename": "mercurial_all_dirs-0.4.2.tar.gz", "has_sig": false, "md5_digest": "37b56c21f156221a741f1e71b71da327", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8417, "upload_time": "2015-11-08T07:10:47", "url": "https://files.pythonhosted.org/packages/ef/c5/691d437bfdffbe2e66548cf721800706886ba954038c14e3bf920a088e20/mercurial_all_dirs-0.4.2.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "6113ffe5bf28b1a6df8a251afca5dfa3", "sha256": "87a08806f2003ee9bf67324e781618646e1a285f4057470e72ea244e861f294c" }, "downloads": -1, "filename": "mercurial_all_dirs-0.5.0.tar.gz", "has_sig": false, "md5_digest": "6113ffe5bf28b1a6df8a251afca5dfa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8817, "upload_time": "2015-12-07T23:43:28", "url": "https://files.pythonhosted.org/packages/72/c7/40a9ed1bceb0c026bec854b6127e7c0473ce26c4427b0bda29adf758e228/mercurial_all_dirs-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "b0baf309a2575a0c1f7a5d23de49f1fe", "sha256": "20cc0fb7673c9ca35e9a0c312189cbd96593f78f3bc02c91287eca62234b632a" }, "downloads": -1, "filename": "mercurial_all_dirs-0.6.0.tar.gz", "has_sig": false, "md5_digest": "b0baf309a2575a0c1f7a5d23de49f1fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8759, "upload_time": "2016-03-10T22:49:50", "url": "https://files.pythonhosted.org/packages/a9/bd/65ccdb49c3f9822cd052ec7c9c3121178bb21cbdc008152028d072e6aa37/mercurial_all_dirs-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "d744bbe07c486bb2a8bafead1e89c7cc", "sha256": "3c3ee94e59d234097f623a6d8423c9b0697945505eec5bebec3685277e33839b" }, "downloads": -1, "filename": "mercurial_all_dirs-0.6.1.tar.gz", "has_sig": false, "md5_digest": "d744bbe07c486bb2a8bafead1e89c7cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8764, "upload_time": "2016-11-13T11:34:59", "url": "https://files.pythonhosted.org/packages/91/4a/84d0405cbb6ed9e7fe81641ac49c6c4bd935843aebe1ad7b3528a5e59b33/mercurial_all_dirs-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "bf65b2bc638dde1c18954393da782aa8", "sha256": "f9db46278d54944e54a4de95dcb2c19ff4cca8b6afe27e380451c322e64c067e" }, "downloads": -1, "filename": "mercurial_all_dirs-0.6.2.tar.gz", "has_sig": false, "md5_digest": "bf65b2bc638dde1c18954393da782aa8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8769, "upload_time": "2017-01-14T20:32:50", "url": "https://files.pythonhosted.org/packages/3e/42/80e5149ce7b6bf9ca689271aa39928177b9bcc6b3e8c6c01cea31d15c0c1/mercurial_all_dirs-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "4cd50dc7c17402f9e5b4ca54da74298e", "sha256": "b8048273ef150abdcaabf53b88d86c94966d3518480c49168148cdffa31d000f" }, "downloads": -1, "filename": "mercurial_all_dirs-0.6.3.tar.gz", "has_sig": false, "md5_digest": "4cd50dc7c17402f9e5b4ca54da74298e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9443, "upload_time": "2017-05-18T14:41:43", "url": "https://files.pythonhosted.org/packages/91/20/e56acfd9756f4f11148f448fca58343dc477aa0dd4cf51eb3fb3c1b3843e/mercurial_all_dirs-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "471e6de21ff3819e5c291c738eb9e6b0", "sha256": "f66e13f4671855a7ded195caaea1b843e9a6bdc9825afb21e6e9c98fe3210bd9" }, "downloads": -1, "filename": "mercurial_all_dirs-0.6.4.tar.gz", "has_sig": false, "md5_digest": "471e6de21ff3819e5c291c738eb9e6b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9439, "upload_time": "2017-05-18T14:52:18", "url": "https://files.pythonhosted.org/packages/e7/5d/6a0080ae3e1e4d2145154237d19c58f67979d3582a66a6f5c8ef7f993bf9/mercurial_all_dirs-0.6.4.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "3b121b94d12f6cc63dc28b86c848e4e4", "sha256": "176f6b8d140f11aadd9156c7306731300a31dd02cddd12f642014d3378829809" }, "downloads": -1, "filename": "mercurial_all_dirs-1.0.0.tar.gz", "has_sig": false, "md5_digest": "3b121b94d12f6cc63dc28b86c848e4e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8610, "upload_time": "2018-05-25T23:20:16", "url": "https://files.pythonhosted.org/packages/2d/c1/79b574faaea5dbb66ce2fc0faa7f37628fa342f4d6127943c25a6bd378f1/mercurial_all_dirs-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "692a67b8e745def39b53eb4f6785938a", "sha256": "46166211bb91dc25fb6a8197d007b36ad61b8321c07f93897d78be8b529a019a" }, "downloads": -1, "filename": "mercurial_all_dirs-1.0.1.tar.gz", "has_sig": false, "md5_digest": "692a67b8e745def39b53eb4f6785938a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8612, "upload_time": "2018-05-26T00:13:41", "url": "https://files.pythonhosted.org/packages/b7/0d/7b2a957d92ca6700e9b2047aa3a96658c450ef48d6c8869df78ed268f0fa/mercurial_all_dirs-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "24459fa42486260c0d5f7fc917829278", "sha256": "ad0a5d3d20e2f716bc34e41200b1cef64916ee186afde15e8eedfe9daeda31cb" }, "downloads": -1, "filename": "mercurial_all_dirs-1.0.2.tar.gz", "has_sig": false, "md5_digest": "24459fa42486260c0d5f7fc917829278", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8616, "upload_time": "2018-08-03T23:19:42", "url": "https://files.pythonhosted.org/packages/6f/61/beb0a595d589832b263e3c420aa1eef2f7237dd51f0a94edee8a23e9aab6/mercurial_all_dirs-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "3721515acf113e550c95d3d6246d1d51", "sha256": "977b7544a9c8792436ca6d5cda9e5d0dd7c30f58df2de097a17b801d2b84b565" }, "downloads": -1, "filename": "mercurial_all_dirs-1.0.3.tar.gz", "has_sig": false, "md5_digest": "3721515acf113e550c95d3d6246d1d51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8612, "upload_time": "2018-08-03T23:21:30", "url": "https://files.pythonhosted.org/packages/94/4c/c4479105dddef6d8c50b215c1898e47e96c2c8695ec045a1f86a1792dbd2/mercurial_all_dirs-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "60692514ce54a5a48a551403a54e82b1", "sha256": "82f1ffbc05fa671635ce56c4313a87bb537831ce1d43747083667c4c820b896d" }, "downloads": -1, "filename": "mercurial_all_dirs-1.0.4.tar.gz", "has_sig": false, "md5_digest": "60692514ce54a5a48a551403a54e82b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9445, "upload_time": "2018-11-05T13:50:00", "url": "https://files.pythonhosted.org/packages/36/29/4874663aa6729a97ad05c566523865a7d7722ba8267aac68149d155e28b6/mercurial_all_dirs-1.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "60692514ce54a5a48a551403a54e82b1", "sha256": "82f1ffbc05fa671635ce56c4313a87bb537831ce1d43747083667c4c820b896d" }, "downloads": -1, "filename": "mercurial_all_dirs-1.0.4.tar.gz", "has_sig": false, "md5_digest": "60692514ce54a5a48a551403a54e82b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9445, "upload_time": "2018-11-05T13:50:00", "url": "https://files.pythonhosted.org/packages/36/29/4874663aa6729a97ad05c566523865a7d7722ba8267aac68149d155e28b6/mercurial_all_dirs-1.0.4.tar.gz" } ] }