{ "info": { "author": "ACSONE SA/NV", "author_email": "info@acsone.eu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python" ], "description": "git-autoshare\n=============\n\n.. image:: https://img.shields.io/badge/license-GPL--3-blue.svg\n :target: http://www.gnu.org/licenses/gpl-3.0-standalone.html\n :alt: License: GPL-3\n.. image:: https://badge.fury.io/py/git-autoshare.svg\n :target: http://badge.fury.io/py/git-autoshare\n.. image:: https://travis-ci.org/acsone/git-autoshare.svg?branch=master\n :target: https://travis-ci.org/acsone/git-autoshare\n.. image:: https://codecov.io/gh/acsone/git-autoshare/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/acsone/git-autoshare\n\nA git clone wrapper that automatically uses `--reference\n`_\nto save disk space and download time.\n\n.. contents::\n\nInstallation\n~~~~~~~~~~~~\n\nTo install git-autoshare in a fancy way, we recommend using `pipx `_.\n\nAfter installing ``pipx`` simply run::\n\n $ pipx install git-autoshare\n\nTo upgrade git-autoshare at any time::\n\n $ pipx upgrade git-autoshare\n\nIf you want ``git autoshare-clone`` to be invoked transparently in place of ``git clone``,\ncreate the following bash script, name it ``git``, and place it in your ``PATH`` before ``/usr/bin/git``:\n\n .. code:: bash\n\n #!/bin/bash\n if [ \"$1\" == \"clone\" ]\n then\n shift\n /usr/bin/git autoshare-clone \"$@\"\n else\n /usr/bin/git \"$@\"\n fi\n\nUsage\n~~~~~\n\nConfiguration file\n------------------\n\nTo configure it, create a file named ``git-autoshare/repos.yml`` in your user configuration\ndirectory (often ``~/.config`` on Linux). This file must have the following structre::\n\n host:\n repo:\n orgs:\n - organization\n - ...\n private: (True|False)\n ...:\n ...:\n\nIt lists all git hosts, repositories, and organizations that are subject to the sharing\nof git objects. Here is an example::\n\n github.com:\n odoo:\n orgs:\n - odoo\n - OCA\n enterprise:\n orgs:\n - odoo\n - acsone\n private: True\n mis-builder:\n # shortcut to provides organizations\n - OCA\n - acsone\n\nNote the use of the ``private`` option, used to force fetching using the ssh protocol.\n\nIt is also possible to use ``*`` as a wildcard for repository name, to have\nautoshare applied to all repos of some organizations::\n\n github.com:\n \"*\":\n orgs:\n - odoo\n - OCA\n - acsone\n private: True\n\n.. note::\n\n In this configuration, ``git-autoshare-prefetch`` without arguments\n will not fetch any wildcard repo. This could be improved in the future\n to refetch repos that are already present in cache.\n\ngit autoshare-clone command\n---------------------------\n\nIf configured like the example above, when you git clone the odoo or mis-builder repositories\nfrom one of these github organizations, ``git autoshare-clone`` will automatically insert the\n``--reference`` option in the git clone command. For example::\n\n $ git autoshare-clone https://github.com/odoo/odoo\n\nwill be transformed into::\n\n $ /usr/bin/git clone --reference ~/.cache/git-autoshare/github.com/odoo https://github.com/odoo/odoo\n\n\ngit autoshare-submodule-add command\n-----------------------------------\n\nSame as ``git autoshare-clone`` command, you can add submodules with a\nreference. for example::\n\n $ git autoshare-submodule-add https://github.com/odoo/odoo ./odoo\n\nwill be transformed into::\n\n $ /usr/bin/git submodule add --reference ~/.cache/git-autoshare/github.com/odoo https://github.com/odoo/odoo ./odoo\n\n\ngit autoshare-prefetch command\n------------------------------\n\nThe ``autoshare-prefetch`` command is mostly meant to be run in a cron job::\n\n $ git autoshare-prefetch --quiet\n\nwill update the cache directory by fetching all repositories mentioned in repos.yml.\n\nIt can also prefetch one single repository, for example::\n\n $ git autoshare-prefetch https://github.com/odoo/odoo.git\n\nEnvironment variables\n---------------------\n\nThe cache directory is named ``git-autoshare`` where `appdirs `_.user_cache_dir is\n(usually ~/.cache/git-autoshare/).\nThis location can be configured with the ``GIT_AUTOSHARE_CACHE_DIR`` environment variable.\n\nThe default configuration file is named ``repos.yml`` where `appdirs `_.user_config_dir is\n(usually ~/.config/git-autoshare/).\nThis location can be configured with the ``GIT_AUTOSHARE_CONFIG_DIR`` environment variable.\n\nBy default ``git-autoshare`` invokes ``git`` as ``/usr/bin/git``. This can be configured with the ``GIT_AUTOSHARE_GIT_BIN``\nenvironment variable.\n\nCredits\n~~~~~~~\n\nAuthor:\n\n * St\u00e9phane Bidoul (`ACSONE `__)\n\nContributors\n\n * Simone Orsi (`Camptocamp `__)\n * Mykhailo Panarin\n\nMaintainer:\n\n.. image:: https://www.acsone.eu/logo.png\n :alt: ACSONE SA/NV\n :target: https://www.acsone.eu\n\nThis project is maintained by ACSONE SA/NV.\n\nChanges\n~~~~~~~\n\n.. Future (?)\n.. ----------\n.. -\n\n1.0.0b4 (2019-07-14)\n--------------------\n- support ssh:// urls, remove dependency on giturlparse\n\n1.0.0b3 (2019-07-13)\n--------------------\n- always prefetch cache before cloning, to make sure the cache is updated\n regularly\n\n1.0.0b2 (2019-03-17)\n--------------------\n- add submodule-add command\n- use safe_load to parse configuration\n- allow wildcards in configuration\n- internal refactoring\n\n1.0.0b1 (2018-01-07)\n--------------------\n- support for private repositories\n- better handling of remotes in prefetch\n- prefetch with --prun\n\n1.0.0a2 (2017-10-10)\n--------------------\n- first packaged version\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/acsone/git-autoshare", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "git-autoshare", "package_url": "https://pypi.org/project/git-autoshare/", "platform": "", "project_url": "https://pypi.org/project/git-autoshare/", "project_urls": { "Homepage": "http://github.com/acsone/git-autoshare" }, "release_url": "https://pypi.org/project/git-autoshare/1.0.0b4/", "requires_dist": [ "appdirs", "click", "pyyaml" ], "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "summary": "A git clone wrapper that automatically uses --reference to save time and space.", "version": "1.0.0b4" }, "last_serial": 5531095, "releases": { "1.0.0a2": [ { "comment_text": "", "digests": { "md5": "cdf84aacae330153a13fb462c621589f", "sha256": "4dd6cb0f70a4727f4c2a0f7fa0f0920a62e167fa6dbb16d7a874a0091c782460" }, "downloads": -1, "filename": "git_autoshare-1.0.0a2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cdf84aacae330153a13fb462c621589f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 8305, "upload_time": "2017-10-10T13:59:38", "url": "https://files.pythonhosted.org/packages/c7/d4/8de45b9d144f2deba531c2219f308895c8e68e587ba32e9b6d22430f8e2f/git_autoshare-1.0.0a2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c912cd6302de7820ef048fc079fff30c", "sha256": "ef6e81db9317bbfdab814201ee97987c02701c1d880dc7f19c3c956b34692064" }, "downloads": -1, "filename": "git-autoshare-1.0.0a2.tar.gz", "has_sig": false, "md5_digest": "c912cd6302de7820ef048fc079fff30c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 20732, "upload_time": "2017-10-10T13:59:41", "url": "https://files.pythonhosted.org/packages/fd/36/3111f9c38daac63abba551157d152d9f39c9b7fc2a6a6d1baf84cd0ef23a/git-autoshare-1.0.0a2.tar.gz" } ], "1.0.0b1": [ { "comment_text": "", "digests": { "md5": "daa241a2fe8e00fd39dc4c837e549597", "sha256": "b53e140e4e5d1e633152ec42f56c152a52b77c2e9f996408037e51c6070406d9" }, "downloads": -1, "filename": "git_autoshare-1.0.0b1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "daa241a2fe8e00fd39dc4c837e549597", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 9006, "upload_time": "2018-01-07T11:56:16", "url": "https://files.pythonhosted.org/packages/71/27/a12aacbd2bd0478c0216c0490f0c210a25c2bec6b2e1fef3502c66a70fdd/git_autoshare-1.0.0b1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf319c133d4ed46642e63312076dd228", "sha256": "a1fee5024025a7ba69ba9adfb372110fbc9d775a5df81bb8c290dcb2d143594a" }, "downloads": -1, "filename": "git-autoshare-1.0.0b1.tar.gz", "has_sig": false, "md5_digest": "bf319c133d4ed46642e63312076dd228", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 21436, "upload_time": "2018-01-07T11:56:17", "url": "https://files.pythonhosted.org/packages/7b/e2/16a626d08bee87c66b2f8f1658c383650f85984389609bbfe04fc4b180a7/git-autoshare-1.0.0b1.tar.gz" } ], "1.0.0b2": [ { "comment_text": "", "digests": { "md5": "f4b722c52c6d9c5fbc1c906de03f0b34", "sha256": "182f0780978c6cfb6ae241ef1ccd6c36fdc129914f964c198a2f33a665bf5a27" }, "downloads": -1, "filename": "git_autoshare-1.0.0b2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f4b722c52c6d9c5fbc1c906de03f0b34", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 19351, "upload_time": "2019-03-17T16:34:00", "url": "https://files.pythonhosted.org/packages/d9/07/eb0f5f5900acdd80abce55d53f8b159e5379ecd9f792632f0a6c7882c3fe/git_autoshare-1.0.0b2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f374c0a594db3c709a8b9a9054327ff", "sha256": "3b14f168a5e786c7a3ccd0feb3795a083076947edd3d1fc4ca6bc9d2783fd22b" }, "downloads": -1, "filename": "git-autoshare-1.0.0b2.tar.gz", "has_sig": false, "md5_digest": "7f374c0a594db3c709a8b9a9054327ff", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 21411, "upload_time": "2019-03-17T16:34:01", "url": "https://files.pythonhosted.org/packages/d0/01/fcf45cb8814ed6ceb7b3677a327f6c3082b8af5a51b165da3a5e3256cd31/git-autoshare-1.0.0b2.tar.gz" } ], "1.0.0b3": [ { "comment_text": "", "digests": { "md5": "e3a0a65b89ac8ed41ea0f7951b4c2425", "sha256": "8ed3f1d70e62c004fab2b183aa9e4a03ece2a7a1449131e654c9c0bee68cfb31" }, "downloads": -1, "filename": "git_autoshare-1.0.0b3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e3a0a65b89ac8ed41ea0f7951b4c2425", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 19386, "upload_time": "2019-07-12T08:18:39", "url": "https://files.pythonhosted.org/packages/1c/4c/04dcf3f409328d0555612c911c5c3b963f87d3bf929239c85ff21a9cbbe7/git_autoshare-1.0.0b3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6e4e965f22cd551047ff764805ef010c", "sha256": "50d466bb1fa309b4279adc1588238011f2b229714a718c6d1665b711afae694b" }, "downloads": -1, "filename": "git-autoshare-1.0.0b3.tar.gz", "has_sig": false, "md5_digest": "6e4e965f22cd551047ff764805ef010c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 21478, "upload_time": "2019-07-12T08:18:41", "url": "https://files.pythonhosted.org/packages/b0/bf/90aa9756cc85d33b2ff900f239557cda0333b279a6de1cc0e8627ca988e6/git-autoshare-1.0.0b3.tar.gz" } ], "1.0.0b4": [ { "comment_text": "", "digests": { "md5": "c18b2115f86fe83f94b64f8ec90bd619", "sha256": "d5e5417aee29ab29e5df34c317ba377074de73de92248c87380c458514d44ce3" }, "downloads": -1, "filename": "git_autoshare-1.0.0b4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c18b2115f86fe83f94b64f8ec90bd619", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 20094, "upload_time": "2019-07-14T14:12:46", "url": "https://files.pythonhosted.org/packages/77/3e/e19230c45f528c7b62e0cdb5175f782e57aea0087eb97ffc35b311fde098/git_autoshare-1.0.0b4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f60cac324da05889c556f852c6a72d65", "sha256": "102c605130b05bdce8e6a02e628bebd8d69c098d00e5b7ffdf5d60469bb69dd1" }, "downloads": -1, "filename": "git-autoshare-1.0.0b4.tar.gz", "has_sig": false, "md5_digest": "f60cac324da05889c556f852c6a72d65", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 22159, "upload_time": "2019-07-14T14:12:48", "url": "https://files.pythonhosted.org/packages/70/65/74a37bc6312e55f414fdfae624d256d221c624b92115d0056e50596c7924/git-autoshare-1.0.0b4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c18b2115f86fe83f94b64f8ec90bd619", "sha256": "d5e5417aee29ab29e5df34c317ba377074de73de92248c87380c458514d44ce3" }, "downloads": -1, "filename": "git_autoshare-1.0.0b4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c18b2115f86fe83f94b64f8ec90bd619", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 20094, "upload_time": "2019-07-14T14:12:46", "url": "https://files.pythonhosted.org/packages/77/3e/e19230c45f528c7b62e0cdb5175f782e57aea0087eb97ffc35b311fde098/git_autoshare-1.0.0b4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f60cac324da05889c556f852c6a72d65", "sha256": "102c605130b05bdce8e6a02e628bebd8d69c098d00e5b7ffdf5d60469bb69dd1" }, "downloads": -1, "filename": "git-autoshare-1.0.0b4.tar.gz", "has_sig": false, "md5_digest": "f60cac324da05889c556f852c6a72d65", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "size": 22159, "upload_time": "2019-07-14T14:12:48", "url": "https://files.pythonhosted.org/packages/70/65/74a37bc6312e55f414fdfae624d256d221c624b92115d0056e50596c7924/git-autoshare-1.0.0b4.tar.gz" } ] }