8000 GitHub - rorybyrne/git-plan at v0.2.3
[go: up one dir, main page]

Skip to content

rorybyrne/git-plan

{"props":{"initialPayload":{"allShortcutsEnabled":false,"path":"/","repo":{"id":336980883,"defaultBranch":"main","name":"git-plan","ownerLogin":"rorybyrne","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-02-08T06:26:57.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/9436784?v=4","public":true,"private":false,"isOrgOwned":false},"currentUser":null,"refInfo":{"name":"v0.2.3","listCacheKey":"v0:1734004922.0","canEdit":false,"refType":"tag","currentOid":"ff592cbb545ff1bee1f01c52f1a76c8c7bfdce54"},"tree":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"git_plan","path":"git_plan","contentType":"directory"},{"name":"tests","path":"tests","contentType":"directory"},{"name":".coveragerc","path":".coveragerc","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":".pre-commit-config.yaml","path":".pre-commit-config.yaml","contentType":"file"},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"mypy.ini","path":"mypy.ini","contentType":"file"},{"name":"poetry.lock","path":"poetry.lock","contentType":"file"},{"name":"pyproject.toml","path":"pyproject.toml","contentType":"file"},{"name":"tox.ini","path":"tox.ini","contentType":"file"}],"templateDirectorySuggestionUrl":null,"readme":null,"totalCount":14,"showBranchInfobar":false},"fileTree":null,"fileTreeProcessingTime":null,"foldersToFetch":[],"treeExpanded":false,"symbolsExpanded":false,"isOverview":true,"overview":{"banners":{"shouldRecommendReadme":false,"isPersonalRepo":false,"showUseActionBanner":false,"actionSlug":null,"actionId":null,"showProtectBranchBanner":false,"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_repo","releasePath":"/rorybyrne/git-plan/releases/new?marketplace=true","showPublishActionBanner":false},"interactionLimitBanner":null,"showInvitationBanner":false,"inviterName":null,"actionsMigrationBannerInfo":{"releaseTags":[],"showImmutableActionsMigrationBanner":false,"initialMigrationStatus":null}},"codeButton":{"contactPath":"/contact","isEnterprise":false,"local":{"protocolInfo":{"httpAvailable":true,"sshAvailable":null,"httpUrl":"https://github.com/rorybyrne/git-plan.git","showCloneWarning":null,"sshUrl":null,"sshCertificatesRequired":null,"sshCertificatesAvailable":null,"ghCliUrl":"gh repo clone rorybyrne/git-plan","defaultProtocol":"http","newSshKeyUrl":"/settings/ssh/new","setProtocolPath":"/users/set_protocol"},"platformInfo":{"cloneUrl":"https://desktop.github.com","showVisualStudioCloneButton":false,"visualStudioCloneUrl":"https://windows.github.com","showXcodeCloneButton":false,"xcodeCloneUrl":"xcode://clone?repo=https%3A%2F%2Fgithub.com%2Frorybyrne%2Fgit-plan","zipballUrl":"/rorybyrne/git-plan/archive/refs/tags/v0.2.3.zip"}},"newCodespacePath":"/codespaces/new?hide_repo_select=true\u0026ref=v0.2.3\u0026repo=336980883"},"popovers":{"rename":null,"renamedParentRepo":null},"commitCount":"112","overviewFiles":[{"displayName":"README.md","repoName":"git-plan","refName":"v0.2.3","path":"README.md","preferredFileType":"readme","tabName":"README","richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\u003cp align=\"center\" dir=\"auto\"\u003e\n \u003ca target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://user-images.githubusercontent.com/9436784/110315084-a7e39f80-8000-11eb-8a14-3799c7e2cfd3.png\"\u003e\u003cimg src=\"https://user-images.githubusercontent.com/9436784/110315084-a7e39f80-8000-11eb-8a14-3799c7e2cfd3.png\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\" dir=\"auto\"\u003e\n \u003cb\u003eA better workflow for git.\u003c/b\u003e\n\u003c/p\u003e\n\u003chr\u003e\n\u003cp align=\"center\" dir=\"auto\"\u003e\n \u003ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https://github.com/synek/git-plan/workflows/Full%20Tests/badge.svg\"\u003e\u003cimg src=\"https://github.com/synek/git-plan/workflows/Full%20Tests/badge.svg\" style=\"max-width: 100%;\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eGit plan allows you to write your commit messages in-advance, before you start coding. Then you can use those planned-commits as a template for your commit message when you are ready to commit your work. This makes it easier to plan your work and stay on-track.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThis tool is in \u003cem\u003ealpha\u003c/em\u003e stage. If anything breaks, please open an issue.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eInstallation\u003c/h2\u003e\u003ca id=\"user-content-installation\" class=\"anchor\" aria-label=\"Permalink: Installation\" href=\"#installation\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003e\u003ccode\u003epip install git-plan\u003c/code\u003e\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eUsage\u003c/h2\u003e\u003ca id=\"user-content-usage\" class=\"anchor\" aria-label=\"Permalink: Usage\" href=\"#usage\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eTo use the tool, run \u003ccode\u003egit plan init\u003c/code\u003e (or simply \u003ccode\u003egp \u0026lt;command\u0026gt;\u003c/code\u003e) to initialize, and then \u003ccode\u003egit plan add\u003c/code\u003e to plan a new commit. When you are ready to make a \u003ccode\u003ecommit\u003c/code\u003e to git, use \u003ccode\u003egit plan commit\u003c/code\u003e to use the plan as a template for your commit message.\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003egit plan init\u003c/code\u003e - initialize git plan in the \u003ccode\u003e.plan/\u003c/code\u003e directory\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit plan\u003c/code\u003e - create a new plan, or list existing plans\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit plan --version\u003c/code\u003e - print version info\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit plan --help\u003c/code\u003e - print help\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit plan list [-l/--long] [-a/--all]\u003c/code\u003e - list existing plans\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit plan add\u003c/code\u003e - plan a new commit\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit plan edit\u003c/code\u003e - edit an existing plan\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit plan delete\u003c/code\u003e - delete a plan\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003egit plan commit\u003c/code\u003e - commit your work, choosing a plan as your commit message template\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eContributing\u003c/h2\u003e\u003ca id=\"user-content-contributing\" class=\"anchor\" aria-label=\"Permalink: Contributing\" href=\"#contributing\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDownload the tool and try it out\u003c/li\u003e\n\u003cli\u003eCreate an \u003ca href=\"https://github.com/synek/git-plan/issues\"\u003eissue\u003c/a\u003e if you find a bug\u003c/li\u003e\n\u003cli\u003eOpen a \u003ca href=\"https://github.com/synek/git-plan/discussions\"\u003ediscussion topic\u003c/a\u003e if you have a suggestion or question\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://guides.github.com/activities/forking/\"\u003eFork\u003c/a\u003e the repository, fix a bug or add a feature, and open a PR\u003c/li\u003e\n\u003cli\u003eIf you'd like making a contribution please ask and we can help you.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eDevelopment\u003c/h3\u003e\u003ca id=\"user-content-development\" class=\"anchor\" aria-label=\"Permalink: Development\" href=\"#development\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eClone: \u003ccode\u003egit clone https://github.com/synek/git-plan \u0026amp;\u0026amp; cd git-plan\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eCreate a virtualenv: \u003ccode\u003epython -m venv .venv \u0026amp;\u0026amp; source .venv/bin/activate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eInstall: \u003ccode\u003epoetry install\u003c/code\u003e (installs in the virtualenv)\u003c/li\u003e\n\u003cli\u003eCheck: \u003ccode\u003egit plan --version\u003c/code\u003e or \u003ccode\u003egp --version\u003c/code\u003e (must be run from within the virtualenv)\u003c/li\u003e\n\u003cli\u003eRun tests: \u003ccode\u003etox\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eInstall pre-commit hooks: \u003ccode\u003epoetry run pre-commit install\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp dir=\"auto\"\u003eYou the minimum support Python version is \u003ccode\u003e3.8\u003c/code\u003e but there is an \u003ca href=\"https://github.com/synek/git-plan/issues/73\" data-hovercard-type=\"issue\" data-hovercard-url=\"/rorybyrne/git-plan/issues/73/hovercard\"\u003eopen issue\u003c/a\u003e to support \u003ccode\u003e3.6\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003ePre-Commit hooks\u003c/h3\u003e\u003ca id=\"user-content-pre-commit-hooks\" class=\"anchor\" aria-label=\"Permalink: Pre-Commit hooks\" href=\"#pre-commit-hooks\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eFailure on any of the hooks will prevent the action taking place.\u003c/p\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://pylint.org/\" rel=\"nofollow\"\u003epylint\u003c/a\u003e on changed source files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"http://mypy-lang.org/\" rel=\"nofollow\"\u003emypy\u003c/a\u003e on changed source files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://tox.readthedocs.io/en/latest/\" rel=\"nofollow\"\u003etox\u003c/a\u003e test suite runs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eBackground and Future Work\u003c/h2\u003e\u003ca id=\"user-content-background-and-future-work\" class=\"anchor\" aria-label=\"Permalink: Background and Future Work\" href=\"#background-and-future-work\"\u003e\u003csvg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eHere is an interesting \u003ca href=\"https://arialdomartini.wordpress.com/2012/09/03/pre-emptive-commit-comments/\" rel=\"nofollow\"\u003eblog post\u003c/a\u003e about pre-emptive commit comments, and \u003ca href=\"https://rory.bio/posts/git-plan\" rel=\"nofollow\"\u003eanother\u003c/a\u003e about this project itself.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eThe next step for \u003ccode\u003egit plan\u003c/code\u003e is to add support for importing plans from Github and Linear. There is a gap between \"project planning\" tools like Linear, and \"project building\" tools like git. I'd like to close that gap.\u003c/p\u003e\n\u003cp dir=\"auto\"\u003eAfter that, I would like to make it less painful to context-switch while writing code. \u003ccode\u003egit plan\u003c/code\u003e will be able to context-switch with you, and automatically stage your changes for you when you want to commit your work.\u003c/p\u003e\n\u003c/article\u003e","loaded":true,"timedOut":false,"errorMessage":null,"headerInfo":{"toc":[{"level":2,"text":"Installation","anchor":"installation","htmlText":"Installation"},{"level":2,"text":"Usage","anchor":"usage","htmlText":"Usage"},{"level":2,"text":"Contributing","anchor":"contributing","htmlText":"Contributing"},{"level":3,"text":"Development","anchor":"development","htmlText":"Development"},{"level":3,"text":"Pre-Commit hooks","anchor":"pre-commit-hooks","htmlText":"Pre-Commit hooks"},{"level":2,"text":"Background and Future Work","anchor":"background-and-future-work","htmlText":"Background and Future Work"}],"siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Frorybyrne%2Fgit-plan%2Ftree%2Fv0.2.3"}},{"displayName":"CODE_OF_CONDUCT.md","repoName":"git-plan","refName":"v0.2.3","path":"CODE_OF_CONDUCT.md","preferredFileType":"code_of_conduct","tabName":"Code of conduct","richText":null,"loaded":false,"timedOut":false,"errorMessage":null,"headerInfo":{"toc":null,"siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Frorybyrne%2Fgit-plan%2Ftree%2Fv0.2.3"}},{"displayName":"LICENSE","repoName":"git-plan","refName":"v0.2.3","path":"LICENSE","preferredFileType":"license","tabName":"License","richText":null,"loaded":false,"timedOut":false,"errorMessage":null,"headerInfo":{"toc":null,"siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Frorybyrne%2Fgit-plan%2Ftree%2Fv0.2.3"}}],"overviewFilesProcessingTime":0}},"appPayload":{"helpUrl":"https://docs.github.com","findFileWorkerPath":"/assets-cdn/worker/find-file-worker-7d7eb7c71814.js","findInFileWorkerPath":"/assets-cdn/worker/find-in-file-worker-96e76d5fdb2c.js","githubDevUrl":null,"enabled_features":{"copilot_workspace":null,"code_nav_ui_events":false,"overview_shared_code_dropdown_button":false,"react_blob_overlay":false,"copilot_smell_icebreaker_ux":true,"accessible_code_button":true}}}}

Repository files navigation

A better workflow for git.


Git plan allows you to write your commit messages in-advance, before you start coding. Then you can use those planned-commits as a template for your commit message when you are ready to commit your work. This makes it easier to plan your work and stay on-track.

This tool is in alpha stage. If anything breaks, please open an issue.

Installation

pip install git-plan

Usage

To use the tool, run git plan init (or simply gp <command>) to initialize, and then git plan add to plan a new commit. When you are ready to make a commit to git, use git plan commit to use the plan as a template for your commit message.

  • git plan init - initialize git plan in the .plan/ directory
  • git plan - create a new plan, or list existing plans
  • git plan --version - print version info
  • git plan --help - print help
  • git plan list [-l/--long] [-a/--all] - list existing plans
  • git plan add - plan a new commit
  • git plan edit - edit an existing plan
  • git plan delete - delete a plan
  • git plan commit - commit your work, choosing a plan as your commit message template

Contributing

  • Download the tool and try it out
  • Create an issue if you find a bug
  • Open a discussion topic if you have a suggestion or question
  • Fork the repository, fix a bug or add a feature, and open a PR
  • If you'd like making a contribution please ask and we can help you.

Development

  • Clone: git clone https://github.com/synek/git-plan && cd git-plan
  • Create a virtualenv: python -m venv .venv && source .venv/bin/activate
  • Install: poetry install (installs in the virtualenv)
  • Check: git plan --version or gp --version (must be run from within the virtualenv)
  • Run tests: tox
  • Install pre-commit hooks: poetry run pre-commit install

You the minimum support Python version is 3.8 but there is an open issue to support 3.6.

Pre-Commit hooks

Failure on any of the hooks will prevent the action taking place.

  • pylint on changed source files
  • mypy on changed source files
  • tox test suite runs

Background and Future Work

Here is an interesting blog post about pre-emptive commit comments, and another about this project itself.

The next step for git plan is to add support for importing plans from Github and Linear. There is a gap between "project planning" tools like Linear, and "project building" tools like git. I'd like to close that gap.

After that, I would like to make it less painful to context-switch while writing code. git plan will be able to context-switch with you, and automatically stage your changes for you when you want to commit your work.

0