{ "info": { "author": "John Parker", "author_email": "japarker@uchicago.edu", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: MIT License", "Operating System :: MacOS", "Operating System :: POSIX", "Programming Language :: Python", "Topic :: Software Development :: Version Control", "Topic :: Software Development :: Version Control :: Git" ], "description": "# Git-Scan\nGit-Scan is a command-line utility to scan local or remote git repositories for history that is divergent from the remote branch.\nIt is particularly useful when dealing with multiple git repositories across multiple machines where pulls and pushes are missed, stashes are forgotten about, files are left untracked, etc.\n\n## Features\n+ Scan repositories for missing push & pulls, uncommited changes, untracked files, leftover stashes, and dangling branches\n+ Automatically pull or push a group of repositories\n+ Open repositories in need of changes in TMUX windows\n+ Execute over SSH to git-scan on a different computer\n+ Configuration file to list scannable repositories\n\n## Usage\nTo run a git-scan\n```\ngit-scan [--push] [--pull] [--repo] [--tmux] [--ssh]\n```\nwhere the optional arguments are\n+ **``push:``** push repository changes if ahead of remote\n+ **``pull:``** pull repository changes if behind remote and there are no merge conflicts\n+ **``repo:``** list of repositories to scan (defaults to all in the configuration file)\n+ **``tmux:``** open all repositories with problems to fix in a TMUX window\n+ **``ssh:``** run the git-scan on the provided ssh host\n\nTo add a repository to the list of scannable repositories\n```\ngit-scan add /path/to/repository\n```\nTo remove a repository\n```\ngit-scan remove /path/to/repository\n```\nTo list all scannable repositories\n```\ngit-scan list [--resolve]\n```\n\n## Installation\nGit-Scan can be installed with pip\n```shell\npip install git-scan\n```\nIf installed with the ``--user`` flag, make sure to add ``~/.local/bin`` to your PATH\n\n## Configuration File\nA configuration file located at ``~/.config/git-scan/git-scan.conf`` is created.\nThis is a TOML file listing the scannable repositories:\n```\nrepositories = [\"/path/to/repository_1\", \"/path/to/repository_2\"]\n```\nThe config file can be editted manually or changed using the ``add`` and ``remove`` commands.\nGlob patterns and tilde expansions are allowed, i.e. ``\"~/path/to/repos/*\"``\n\n## License\nGit-Scan is licensed under the terms of the MIT license.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/johnaparker/git-scan", "keywords": "git scan ssh tmux repositories", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "git-scan", "package_url": "https://pypi.org/project/git-scan/", "platform": "", "project_url": "https://pypi.org/project/git-scan/", "project_urls": { "Homepage": "https://github.com/johnaparker/git-scan" }, "release_url": "https://pypi.org/project/git-scan/0.2.1/", "requires_dist": [ "termcolor", "toml", "libtmux", "paramiko" ], "requires_python": "", "summary": "Scan local or remote git repositories for history divergent from origin", "version": "0.2.1" }, "last_serial": 5532689, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "f343144f7ba4ba2101378a5f43f5674a", "sha256": "40c62d2d1c4f7c875382e46e58f58d25aa26db5a76f4620b7d0c33b7da60c57b" }, "downloads": -1, "filename": "git_scan-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f343144f7ba4ba2101378a5f43f5674a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7066, "upload_time": "2019-07-15T00:37:53", "url": "https://files.pythonhosted.org/packages/e8/cb/53f10fb68393e103c96a1376b6d27ea3cdaa93713c1fd89730c1acc4c907/git_scan-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "588109a2d861ae722ee9e5eaabb74062", "sha256": "edfd14e6b4d24b79451f5b5b0ff11a71c73a1cca286ea64217d24ada8b663dec" }, "downloads": -1, "filename": "git-scan-0.1.tar.gz", "has_sig": false, "md5_digest": "588109a2d861ae722ee9e5eaabb74062", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6408, "upload_time": "2019-07-15T00:37:55", "url": "https://files.pythonhosted.org/packages/6c/08/94bca4a01db4729017b790cb651059b8f3c77aad54113e7a3e25bf5c2a02/git-scan-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "62a16d53bd666723d2b76b60c1bdc4e4", "sha256": "92709c0333a8b4da4cf18944221b8c34a77c14b63a1c726075074b3f1ff66ed9" }, "downloads": -1, "filename": "git_scan-0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "62a16d53bd666723d2b76b60c1bdc4e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7046, "upload_time": "2019-07-15T00:44:24", "url": "https://files.pythonhosted.org/packages/04/70/e4bf0dc03bccf518417fe5fa08488f20b2e19ba5fcc4b0caf19854b8fd21/git_scan-0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97561d6af862d90a49688fd16a0fda7d", "sha256": "5604d402c2ac40974928b606ee3a017f3c3f5843158715a8d8e9b80e50527f25" }, "downloads": -1, "filename": "git-scan-0.2.tar.gz", "has_sig": false, "md5_digest": "97561d6af862d90a49688fd16a0fda7d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6367, "upload_time": "2019-07-15T00:44:25", "url": "https://files.pythonhosted.org/packages/a1/7f/e37d0d60cf05a641f1b350abeecdd7bc4b08e6ccbd2787fb72172831da3f/git-scan-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "cdfd80e9b675b7c084b5e8fab4800ed1", "sha256": "e329258f672826d9d588aac6098f6c7c5ae25f39e68ae42003cb614b1450f833" }, "downloads": -1, "filename": "git_scan-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cdfd80e9b675b7c084b5e8fab4800ed1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7080, "upload_time": "2019-07-15T01:16:54", "url": "https://files.pythonhosted.org/packages/37/e5/1c521620c5887bb7102349ecc1773d979988aa6e9bd6b08fbdbda81c2bc7/git_scan-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4875163b4d76542055d4cf6e40abd72b", "sha256": "628e43bed2d0a4e18994879b4982a403c93e73805f4384d441ea408dcff46574" }, "downloads": -1, "filename": "git-scan-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4875163b4d76542055d4cf6e40abd72b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6380, "upload_time": "2019-07-15T01:16:55", "url": "https://files.pythonhosted.org/packages/a8/84/480cfcfa2fcd41cd9da516e53f9be24dfe296e1da1accbad0604bbb9f1dd/git-scan-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cdfd80e9b675b7c084b5e8fab4800ed1", "sha256": "e329258f672826d9d588aac6098f6c7c5ae25f39e68ae42003cb614b1450f833" }, "downloads": -1, "filename": "git_scan-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "cdfd80e9b675b7c084b5e8fab4800ed1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7080, "upload_time": "2019-07-15T01:16:54", "url": "https://files.pythonhosted.org/packages/37/e5/1c521620c5887bb7102349ecc1773d979988aa6e9bd6b08fbdbda81c2bc7/git_scan-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4875163b4d76542055d4cf6e40abd72b", "sha256": "628e43bed2d0a4e18994879b4982a403c93e73805f4384d441ea408dcff46574" }, "downloads": -1, "filename": "git-scan-0.2.1.tar.gz", "has_sig": false, "md5_digest": "4875163b4d76542055d4cf6e40abd72b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6380, "upload_time": "2019-07-15T01:16:55", "url": "https://files.pythonhosted.org/packages/a8/84/480cfcfa2fcd41cd9da516e53f9be24dfe296e1da1accbad0604bbb9f1dd/git-scan-0.2.1.tar.gz" } ] }