{"id":21171616,"url":"https://github.com/0k/git-irebase","last_synced_at":"2025-03-14T17:40:43.859Z","repository":{"id":28034319,"uuid":"31529761","full_name":"0k/git-irebase","owner":"0k","description":"Incremental git rebase and automation.","archived":false,"fork":false,"pushed_at":"2020-01-16T17:38:57.000Z","size":14,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T10:51:18.084Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0k.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-03-02T08:12:49.000Z","updated_at":"2020-01-30T13:09:23.000Z","dependencies_parsed_at":"2022-09-04T09:11:32.296Z","dependency_job_id":null,"html_url":"https://github.com/0k/git-irebase","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0k%2Fgit-irebase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0k%2Fgit-irebase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0k%2Fgit-irebase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0k%2Fgit-irebase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0k","download_url":"https://codeload.github.com/0k/git-irebase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243622499,"owners_count":20320982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T16:08:54.484Z","updated_at":"2025-03-14T17:40:43.835Z","avatar_url":"https://github.com/0k.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"===========\ngit-irebase\n===========\n\n\nOverview\n========\n\n``git-irebase`` can be installed and used by anybody to replace ``git-rebase``\non a branch.\n\n  ``irebase`` for incremental rebase. So instead rebasing your patches to \n  the new ref of your tracked branch, it'll make sure the rebase is incrementally\n  done on each new commit of the tracked branch.\n  This ensures that you'll individualise and identify smallest conflict possible.\n  And some conflict scenario are suceptible to be resolved automatically.\n\n``irebase-manager`` is intended to be executed on a server (can be indenpendant)\non a regular basis (with cron). It'll perform a ``git-irebase`` on a list of\nrepositories and branches.\n\n  This script is intended to be executed on an instance that will run periodically\n  and warn you when it can't rebase automatically to the target branch. It also\n  take care to push back the reference.\n\n\nMaturity\n========\n\nThis code is in alpha stage. Provided only for sharing ideas.\n\n\nDependencies\n============\n\nBoth requires the `kal-shlib-pretty`_ package.\n\n.. _kal-shlib-pretty: https://github.com/vaab/kal-shlib-pretty\n\n``git-irebase`` doesn't have much more dependency than ``bash`` and ``git``.\n\n``irebase-manager`` requires ``shyaml`` to be installed.\n\n\nConfig file\n===========\n\nThe config file is only for ``irebase-manager``. It is located in ``/etc/irebase-manager.rc``.\nIt uses ``yaml``.\n\nFor example::\n\n    work-dir: /srv/irebase-manager\n    send-report:\n      mail:\n        recipients:\n          - valentin.lab_irebase-manager@kalysto.org\n      slack:\n        slackaccountlabel:\n          token: \"xoxb-3381751679-gtdywBrfpwHasWcfBjwQqfFF\"\n          msg:\n            success:\n              - to: [\"#irebase\"]\n                body: \u003e\n                  rebased ${patchpile_count}c of $walking_branch onto\n                  new ${revlist_count}c of $target_branch.\n            failure:\n              - to: [vlab, \"#irebase\"]\n                body: \u003e\n                  I'm afraid I'll need some help on this. Can you push back on\n                  repository $walking_repos the branch $walking_branch after solving\n                  the conflict I've faced ?\n\n                  Don't forget to get the last version of the branches:\n\n                      git fetch \"$target_repos\" \"$target_branch\"\n                      git branch \"$target_branch\" FETCH_HEAD -f\n                      git fetch \"$walking_repos\" \"$walking_branch\"\n                      git branch \"$walking_branch\" FETCH_HEAD -f\n                      git checkout \"$walking_branch\"\n                      git rebase $target_branch\n\n                  $report\n\n                  Many thanks.\n\n      irebase:\n        odoo:\n          - walking-branch:\n              branch-name: 0k/8.0-odoo-auto-rebase\n              repository: /var/git/0k/odoo.git\n            target-branch:\n              branch-name: 8.0\n              repository: https://github.com/odoo/odoo.git\n          - walking-branch:\n              branch-name: 0k/8.0-ocb-auto-rebase\n              repository: /var/git/0k/odoo.git\n            target-target:\n              branch-name: 8.0\n              repository: https://github.com/oca/ocb.git\n\n\nInstall\n=======\n\n- Install Dependencies first.\n- clone this repository\n- link ``git-irebase`` to use it as a normal command::\n\n    ln -sf $MYPATH/bin/git-irebase /usr/lib/git-core/\n\n- you may want to put ``irebase-manager`` in you ``$PATH``,\n  so you could::\n\n    ln -sf $MYPATH/bin/irebase-manager /usr/local/bin/\n\nYou are done.\n\n\nUsage\n=====\n\nYou can launch ``irebase-manager``::\n\n    irebase-manager [--send-report MYPATH]\n\nThe send-report must be an executable that we receive several\nenvironment variable and some stdin report from ``git-irebase``.\nThis script job is to send it by any means toward who should\nreceive it.\n\nIf not specified, ``mail`` system command is used.\n\nA slacker executable is provided in\n``share/git-irebase/send-report/slack`` and will use the configuration\nstore in ``/etc/irebase-manager.rc``.\n\n\nTodo\n====\n\n- a real doc.\n- test should be easily hookable to rebase to stop when test fails\n- slack message interface example\n- should look at ``git imerge``\n\n\nPush Request Guidelines\n-----------------------\n\nYou can send any code. I'll look at it and will integrate it myself in\nthe code base and leave you as the author. This process can take time and\nit'll take less time if you follow the following guidelines:\n\n- separate your commits per smallest concern.\n- each commit should pass the tests (to allow easy bisect)\n- each functionality/bugfix commit should contain the code, tests,\n  and doc.\n- prior minor commit with typographic or code cosmetic changes are\n  very welcome. These should be tagged in their commit summary with\n  ``!minor``.\n- the commit message should follow gitchangelog rules (check the git\n  log to get examples)\n- if the commit fixes an issue or finished the implementation of a\n  feature, please mention it in the summary.\n\nIf you have some questions about guidelines which is not answered here,\nplease check the current ``git log``, you might find previous commit that\nwould show you how to deal with your issue.\n\n\nLicense\n=======\n\nCopyright (c) 2015 Valentin Lab.\n\nLicensed under the `BSD License`_.\n\n.. _BSD License: http://raw.github.com/0k/git-irebase/master/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0k%2Fgit-irebase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0k%2Fgit-irebase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0k%2Fgit-irebase/lists"}