diff --git a/README.md b/README.md index 457cc383..06efd3bc 100644 --- a/README.md +++ b/README.md @@ -309,6 +309,8 @@ Any other questions? Please check out our [FAQ](./FAQ.md), and if your question * [Unified Push Distributors](#unified-push-distributors) * [Version Control](#version-control) * [Version Control Clients and Tooling](#version-control-clients-and-tooling) + * [Interface Alternatives](#version-control-interface-alternatives) + * [Version Control System Alternatives](#version-control-system-alternatives) * [Version Control Servers](#version-control-servers) * [Virtualization](#virtualization) * [Volunteer Computing](#volunteer-computing) @@ -3150,28 +3152,35 @@ This section is strictly for software implementing a core set of UNIX-like (or M ### Version Control Clients and Tooling -| Name | Last Untainted Version or Commit ID | Tags and Evidence | +| Name | Last Untainted
Version/Commit ID | Evidence | |---|:---:|---| -| [Breezy](https://github.com/breezy-team/breezy/) | [`4559cec`](https://github.com/breezy-team/breezy/commit/4559cec280b280e9624da79624baf31d2791fa85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/breezy-team/breezy/pull/270/)) | +| [Breezy](https://github.com/breezy-team/breezy) | [`4559cec`](https://github.com/breezy-team/breezy/commit/4559cec280b280e9624da79624baf31d2791fa85) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/breezy-team/breezy/pull/270)) | | [Fossil](https://fossil-scm.org/home/doc/trunk/www/index.wiki) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://fossil-scm.org/forum/forumpost/3c8adaef712ce350)) | -| [Gerrit](https://www.gerritcodereview.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.gerritcodereview.com/3.14.html#review-agent-ai-chat), [2](https://storage.googleapis.com/gerrit-talks/summit/2025/AI.Code-Review.for.Gerrit.pdf))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GerritCodeReview/gerrit/blob/b1cbca0715cc3cc4d41f1b04752abbac25cc3fba/AGENTS.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/GerritCodeReview/gerrit/blob/master/SUBMITTING_PATCHES#L58)) | +| [Gerrit](https://www.gerritcodereview.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://www.gerritcodereview.com/3.14.html#review-agent-ai-chat), [2](https://storage.googleapis.com/gerrit-talks/summit/2025/AI.Code-Review.for.Gerrit.pdf))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GerritCodeReview/gerrit/blob/master/AGENTS.md))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/GerritCodeReview/gerrit/blob/master/SUBMITTING_PATCHES#L58)) | | [Git](https://git-scm.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git/git/pull/2189), [2](https://github.com/git/git/commit/fb1b786ebfab18b851ce1fa94d5063daf11f647f)) | | [Git for Windows](https://gitforwindows.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/git-for-windows/git-for-windows-automation/blob/4f62410e5279fe972eee0366992143980a44306d/.github/workflows/rebase-shears.yml), [2](https://github.com/git-for-windows/git-for-windows-automation/commit/052cb1f2ce3dd38ac21c57d4561fa00c20bab643), [3](https://github.com/git-for-windows/build-extra/commit/d1afe4dfd6383c4d51ac5558b9d150ca97b91c41)) | -| [GitButler](https://gitbutler.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.gitbutler.com/features/branch-management/ai-assistance), [2](https://github.com/gitbutlerapp/gitbutler/tree/2b9da0d6d88bfc117da72f3cd06baac8d194fd18/apps/desktop/src/lib/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gitbutlerapp/gitbutler/blob/87180b105ced4d3fa908c96c641068b58073be29/AGENTS.md), [2](https://github.com/gitbutlerapp/gitbutler/commit/ab5b3fae080df9f0b34d16e3395dc4a5abac4024)) | -| [gitoxide](https://github.com/GitoxideLabs/gitoxide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GitoxideLabs/gitoxide/blob/main/CONTRIBUTING.md#please-disclose-the-use-of-ai), [2](https://github.com/GitoxideLabs/gitoxide/blob/main/.claude/instructions.md), [3](https://github.com/GitoxideLabs/gitoxide/commit/61c504dfdd6505eeeda22a6c4254c7342b78d6e3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/GitoxideLabs/gitoxide/pull/2584), [2](https://github.com/GitoxideLabs/gitoxide/pull/2379), [3](https://github.com/GitoxideLabs/gitoxide/pull/2514)) | +| [GitButler](https://gitbutler.com/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![AI Functionality](./badges/ai-functionality.svg)](#ai-functionality) ([1](https://docs.gitbutler.com/features/branch-management/ai-assistance), [2](https://github.com/gitbutlerapp/gitbutler/tree/master/apps/desktop/src/lib/ai))
[![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/gitbutlerapp/gitbutler/blob/master/AGENTS.md), [2](https://github.com/gitbutlerapp/gitbutler/commit/ab5b3fae080df9f0b34d16e3395dc4a5abac4024)) | +| [gitoxide](https://github.com/GitoxideLabs/gitoxide) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/GitoxideLabs/gitoxide/blob/main/CONTRIBUTING.md#prevent-agent-impersonation), [2](https://github.com/GitoxideLabs/gitoxide/blob/main/.claude/instructions.md), [3](https://github.com/GitoxideLabs/gitoxide/commit/61c504dfdd6505eeeda22a6c4254c7342b78d6e3))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/GitoxideLabs/gitoxide/pull/2584), [2](https://github.com/GitoxideLabs/gitoxide/pull/2379), [3](https://github.com/GitoxideLabs/gitoxide/pull/2514)) | | [Jujutsu](https://www.jj-vcs.dev/latest/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://discord.com/channels/968932220549103686/1458877549034864703), [2](https://github.com/jj-vcs/jj/pull/9076), [3](https://github.com/jj-vcs/jj/pull/9083)) | -| [lazygit](https://github.com/jesseduffield/lazygit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jesseduffield/lazygit/blob/master/AGENTS.md), [2](https://github.com/jesseduffield/lazygit/commit/21d58085f4e5d60a18d161da81fb0d9298dbe4ed), [3](https://github.com/jesseduffield/lazygit/commit/4f6cdedb1e5ea8c13d0ccbf57d772a387ef5728f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jesseduffield/lazygit/pull/5277), [2](https://github.com/jesseduffield/lazygit/pull/5273), [3](https://github.com/jesseduffield/lazygit/pull/5392))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/jesseduffield/lazygit/blob/master/README.md)) | +| [lazygit](https://github.com/jesseduffield/lazygit) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/jesseduffield/lazygit/blob/master/AGENTS.md), [2](https://github.com/jesseduffield/lazygit/commit/21d58085f4e5d60a18d161da81fb0d9298dbe4ed), [3](https://github.com/jesseduffield/lazygit/commit/4f6cdedb1e5ea8c13d0ccbf57d772a387ef5728f))
[![AI Code Reviews](./badges/ai-code-reviews-purple.svg)](#ai-code-reviews) ([1](https://github.com/jesseduffield/lazygit/pull/5277), [2](https://github.com/jesseduffield/lazygit/pull/5273), [3](https://github.com/jesseduffield/lazygit/pull/5392))
[![AI sponsored](./badges/ai-sponsored-blue.svg)](#sponsored-by-ai) ([1](https://github.com/jesseduffield/lazygit/blob/master/README.md)) | | [Mercurial](https://mercurial-scm.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://foss.heptapod.net/mercurial/mercurial-devel/-/merge_requests/1914)) | | [Pijul](https://pijul.org/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://nest.pijul.com/pijul/pijul:main/tree/IQYEBPLRBGL34.WCRAA), [2](https://nest.pijul.com/pijul/pijul:main/tree/IQYEBPLRBGL34.2W7AA)) | -| [prek](https://prek.j178.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/j178/prek/blob/aca63eefe1b9139fb5c0a97063ff975f5ae8d092/.github/copilot-instructions.md), [2](https://github.com/j178/prek/pull/1842), [3](https://github.com/j178/prek/pull/1679)) | [pre-commit](https://pre-commit.com) | +| [prek](https://prek.j178.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI Policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/j178/prek/blob/master/AGENTS.md), [2](https://github.com/j178/prek/pull/1842), [3](https://github.com/j178/prek/pull/1679)) | [pre-commit](https://pre-commit.com/) | | [Radicle](https://radicle.dev/) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://radicle.network/nodes/seed.radicle.dev/rad:z4D5UCArafTzTQpDZNQRuqswh3ury/tree/CLAUDE.md)) | | [Sapling](https://github.com/facebook/sapling) | [![Request for Help](./badges/request-for-help.svg)](#request-for-help) | [![Permissive AI policy](./badges/permissive-ai-policy-orange.svg)](#permissive-ai-policy) ([1](https://github.com/facebook/sapling/tree/0298ebd8e7/eden), [2](https://github.com/facebook/sapling/blob/ddbd9814bc/eden/scm/.claude/settings.json#L9)) | -> [!Note] -> #### Alternative Version Control Systems +> [!NOTE] +> #### Version Control Interface Alternatives +> | Name | UI | Notes | +> |---|:---:|---| +> | [Gitte](https://codeberg.org/ckruse/Gitte) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/ckruse/Gitte/src/branch/main/README.md#contributing)) | GUI | Git client for Linux, [macOS](https://gitlab.com/dehesselle/gitte_macos) | +> | [Magit](https://github.com/magit/magit) | TUI | Emacs mode for Git | +> | [tig](https://github.com/jonas/tig) | TUI | ncurses-based interface for Git | +> +> #### Version Control System Alternatives > * [BitKeeper](https://github.com/bitkeeper-scm/bitkeeper) > * [Darcs](https://darcs.net/) -> * [Game of Trees] +> * [Game of Trees (Got)](https://gameoftrees.org/) [![Anti-AI Policy](./badges/anti-ai-policy.svg)](#anti-ai-policy) ([1](https://codeberg.org/gameoftrees/got/src/branch/main/README#L224-L227)) ### Version Control Servers @@ -3376,7 +3385,6 @@ This repository is licensed under the Creative Commons Attribution Share Alike 4 [ffplay]: https://ffmpeg.org/ffplay.html [find]: https://cgit.git.savannah.gnu.org/cgit/findutils.git/ [Flask]: https://github.com/pallets/flask -[Game of Trees]: https://gameoftrees.org/ [GNOME Boxes]: https://gnomeboxes.org [grep]: https://en.wikipedia.org/wiki/Grep [Guile]: https://www.gnu.org/software/guile/