{ "info": { "author": "Stephen Moore", "author_email": "delfick755@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Gitmit\n======\n\nThis is a library for finding the commit times of all the files under a git\nrepository.\n\nCan be used from the commandline::\n\n $ cd /some/repository\n $ gitmit\n\nOr as a library::\n\n from gitmit.mit import GitTimes\n print(GitTimes(root_folder, \".\").find())\n\nOptions to both include:\n\nparent_dir\n The relative folder to the root of the repository that we care about. The\n rest of the filters are then relative to here.\n\ntimestamps_for\n A list of globs specifying what to include (i.e. anything not covered by the\n globs is ignored)\n\nexclude\n A list of globs specifying what to exclude after timestamps_for is taken into\n account\n\ninclude\n A list of globs specifying what should be re-included after exclude is\n taken into account\n\nwith_cache\n Boolean saying whether we should write the resulting commit times to a file\n under the .git folder that we can reuse in the future.\n\ndebug\n Currently the only difference with debug is outputting the commits per second\n as we traverse the commits in the repository.\n\nWhy/History\n-----------\n\nI needed this ability in my Docker client (http://harpoon.readthedocs.org) so\nthat I could maintain the modified times of the files in the context sent to the\ndocker daemon between builds on my build servers (doing a git clone sets the\nmodified times of the files to the time of the clone).\n\nOriginally I was shelling out to git log for every file. This was slow! I then\nmoved to dulwich (python implementation of git) which was faster, but still\nslow. Then I implemented it with pygit2 (libgit2 c bindings in python) and\ndecided to make it a separate library.\n\nUnfortunately it's still not as fast as doing a ``git whatchanged --pretty=%at``\nand interpreting the results, but I rather a solution that uses libraries rather\nthan interpreting text from the output of a program and the speed is not a\nproblem for reasonably sized repositories.\n\nIn September 2018 I moved back to using dulwich. This is because pygit2 is a bit\nof a pain because of how it pins to particular versions of libgit2, which itself\ncan be annoying to get installed such that pygit2 can find it.\n\nInstallation\n------------\n\nJust use pip::\n\n $ pip install gitmit\n\nChangelog\n---------\n\n0.5 - TBD\n * Switch to dulwich over pygit2. This is because pygit2 is a pain to install.\n The downside is it is slower, but only by a few seconds.\n\nBefore 0.5 no changelog was maintained\n\nTests\n-----\n\nInstall testing deps and run the helpful script::\n\n $ pip install -e .\n $ pip install -e \".[tests]\"\n $ ./test.sh\n\nOr use tox::\n\n $ pip install tox\n $ tox", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/delfick/gitmit", "keywords": "git,commit,mtime", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "gitmit", "package_url": "https://pypi.org/project/gitmit/", "platform": "", "project_url": "https://pypi.org/project/gitmit/", "project_urls": { "Homepage": "https://github.com/delfick/gitmit" }, "release_url": "https://pypi.org/project/gitmit/0.5/", "requires_dist": null, "requires_python": "", "summary": "Python library to discover commit times of all files under a git repository", "version": "0.5" }, "last_serial": 4274192, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "89b9385e830257049306ebb1d5ea8c4a", "sha256": "a01a2bf3e61d308a802a2dc27db6d5545e5fdab0652cc9db524c14d1a30d4f15" }, "downloads": -1, "filename": "gitmit-0.1.tar.gz", "has_sig": false, "md5_digest": "89b9385e830257049306ebb1d5ea8c4a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9441, "upload_time": "2016-05-02T00:15:51", "url": "https://files.pythonhosted.org/packages/6f/e7/f7bdcbbd1d7123cba8bed593409fa76912d9117fe25f091b47b671a6bbc5/gitmit-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "f752881f20c07ebb224d144ce15f8037", "sha256": "385f29672161f0c33a903b7f9bfaa3991045af4fd915a971667add271e7a1681" }, "downloads": -1, "filename": "gitmit-0.2.tar.gz", "has_sig": false, "md5_digest": "f752881f20c07ebb224d144ce15f8037", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9417, "upload_time": "2016-05-24T04:21:34", "url": "https://files.pythonhosted.org/packages/40/7a/ce9d9b63d66a9d547ff583a712d3e4299caf584abad6a013d143b0bec686/gitmit-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "c3ab2bf11c4d516590dd7cb1fa5f186a", "sha256": "ba220e5e1984033cdae54381b93d3c40956b3fc15a3a8ffcb2defcade974efa4" }, "downloads": -1, "filename": "gitmit-0.3.tar.gz", "has_sig": false, "md5_digest": "c3ab2bf11c4d516590dd7cb1fa5f186a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9430, "upload_time": "2016-09-06T07:19:01", "url": "https://files.pythonhosted.org/packages/50/99/43acf69a259c8ebff22230602e05800f705feeaf80409ba3e2cd0de6cac2/gitmit-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "a1b3df2c81d1b1d4ac3673bebe452e5b", "sha256": "59c16fed9ac4c46a97ac479d54403eb37e8f55438460f491f7cefe08165d5cfa" }, "downloads": -1, "filename": "gitmit-0.4.tar.gz", "has_sig": false, "md5_digest": "a1b3df2c81d1b1d4ac3673bebe452e5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9432, "upload_time": "2017-11-24T00:33:30", "url": "https://files.pythonhosted.org/packages/c9/bf/57f0c51f6b2146c8c1156e10ded4340994ec89bde54eb1eaf17ca9990acf/gitmit-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "0634516a7ed22a765a00aa8a957b9234", "sha256": "b0abf605894a29b4e340c55644313f42e01dc3904849057e85b5006bad09b24a" }, "downloads": -1, "filename": "gitmit-0.4.1.tar.gz", "has_sig": false, "md5_digest": "0634516a7ed22a765a00aa8a957b9234", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9426, "upload_time": "2017-11-24T02:17:16", "url": "https://files.pythonhosted.org/packages/9a/27/1ebe6e66f03a1fc9c929567a098a4a68f073ba96fedefd17c44c8501c39a/gitmit-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "caadbad38b7838253775f818478360cf", "sha256": "e4b6ef3734cc1fe5b5d26cb44f9135bbc548553e18f1f53e30282d5afcdf7145" }, "downloads": -1, "filename": "gitmit-0.5.tar.gz", "has_sig": false, "md5_digest": "caadbad38b7838253775f818478360cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11052, "upload_time": "2018-09-15T01:27:51", "url": "https://files.pythonhosted.org/packages/4a/1c/235c8e310fc485e9400f427b2ed69fa9ca2d560cf413a1defe49e4fae93d/gitmit-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "caadbad38b7838253775f818478360cf", "sha256": "e4b6ef3734cc1fe5b5d26cb44f9135bbc548553e18f1f53e30282d5afcdf7145" }, "downloads": -1, "filename": "gitmit-0.5.tar.gz", "has_sig": false, "md5_digest": "caadbad38b7838253775f818478360cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11052, "upload_time": "2018-09-15T01:27:51", "url": "https://files.pythonhosted.org/packages/4a/1c/235c8e310fc485e9400f427b2ed69fa9ca2d560cf413a1defe49e4fae93d/gitmit-0.5.tar.gz" } ] }