From 03fddb24358bde6bd458cdfb4440e67dbeec715b Mon Sep 17 00:00:00 2001 From: detachhead Date: Tue, 21 Jul 2026 20:53:55 +1000 Subject: [PATCH 1/4] move build instructions from README.md to CONTRIBUTING.md part 1 (splitting this change into separate commits so that git still keeps the history of the build instructions to make upstream merging easier) --- CONTRIBUTING.md | 46 ---------------------------------------------- 1 file changed, 46 deletions(-) delete mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 798e18a18f524..0000000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,46 +0,0 @@ -# Contributing to JetBrains IDEs Open Source - -Thanks for your interest in contributing to the JetBrains IDEs open-source repository! - -## What kinds of contributions we welcome - -- **Bug fixes (preferred).** Most contributions we accept are fixes for reproducible issues. Tests should supply those fixes if possible. -- **Features (by prior agreement only).** If you want to add a feature, please discuss it with us first. We accept features only when they - align with our roadmap for the relevant subsystem. -- **“Patch welcome” issues.** We maintain a list of feature requests and improvements that we warmly welcome from the community: - https://youtrack.jetbrains.com/issues?q=%23patch_welcome - -Before you start, make sure you: - -- Have an existing YouTrack ticket for the issue you plan to work on (or create one if needed): https://youtrack.jetbrains.com/ -- Have read: - - [IntelliJ Coding Guidelines](https://plugins.jetbrains.com/docs/intellij/intellij-coding-guidelines.html) - - [Contribute Code](https://www.jetbrains.com/opensource/idea/) - - Follow the recommended [commit message format](#commit-message-format) - -## Commit message format - -We strongly recommend following this commit message format: - - ``` - ( )* (: )? - - ? - ``` - -E.g.: - - ``` - IDEA-125730 Groovy: declare explicit type - - Broken template should revert all its changes and move the caret back to the original position - ``` - -Avoid including links to any discussions in commit messages (Slack, https://platform.jetbrains.com/, etc.). Instead, summarize the -discussion right in the commit message, or create a YouTrack ticket and summarize it there. - -## Building the IDE - -Please read the [README.md](README.md) in order to understand how to build or -run the IDE on your machine. - From 92e678862bd42cf4f81f4b03ba0999a9739f0a2a Mon Sep 17 00:00:00 2001 From: detachhead Date: Tue, 21 Jul 2026 20:57:16 +1000 Subject: [PATCH 2/4] move build instructions from README.md to CONTRIBUTING.md part 2 (splitting this change into separate commits so that git still keeps the history of the build instructions to make upstream merging easier) --- README.md => CONTRIBUTING.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README.md => CONTRIBUTING.md (100%) diff --git a/README.md b/CONTRIBUTING.md similarity index 100% rename from README.md rename to CONTRIBUTING.md From a56a4cb2a18d788e9d82183c91ddf990ad2df703 Mon Sep 17 00:00:00 2001 From: detachhead Date: Tue, 21 Jul 2026 21:05:22 +1000 Subject: [PATCH 3/4] move build instructions from README.md to CONTRIBUTING.md part 3 (splitting this change into separate commits so that git still keeps the history of the build instructions to make upstream merging easier) --- CONTRIBUTING.md | 121 +++++------------------------------------------- README.md | 99 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+), 110 deletions(-) create mode 100644 README.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c4713428013eb..d1a2f39ff90e8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,109 +1,10 @@ -
- -

Rebased

-

A git client based on the IntelliJ platform.

-
+# Contributing -![](screenshot.png) - -## Motivation - -Rebased is an open-source remake of the short-lived [jetbrains git client](https://youtrack.jetbrains.com/issue/IJPL-72504/Make-git-client-a-standalone-app#focus=Comments-27-12868395.0-0). -It's basically just a JetBrains IDE with all the bundled plugins removed except the git integration, with some additional UI tweaks. - -See [this youtrack issue](https://youtrack.jetbrains.com/issue/IJPL-72504/Make-git-client-a-standalone-app) for the many reasons people have been requesting this for almost a decade. At the time of writing, it's the #3 most upvoted open issue on YouTrack. - -## Installation - -### Linux - -Download the appimage from [GitHub releases](https://github.com/DetachHead/rebased/releases). - -We recommend using either [AppManager](https://github.com/kem-a/AppManager) or [Gear Lever](https://github.com/mijorus/gearlever) to install it to your applications menu, and for automatic updates. - -### Windows - -You can either download the installer `.exe` from [GitHub releases](https://github.com/DetachHead/rebased/releases) or install via winget: - -```ps1 -winget install detachhead.rebased --source winget -``` - -### macOS - -Install with [homebrew](https://brew.sh/): - -```bash -brew install detachhead/tap/rebased -``` - -
- Manual installation - - Download the `.dmg` from [GitHub releases](https://github.com/DetachHead/rebased/releases) - - After copying `Rebased.app` to your Applications folder, you may see the following error message: - > "Rebased.app" is damaged and can't be opened. You should move it to the Bin. - - **This is Apple lying to you.** Nothing is "damaged", it's just not code-signed with an Apple Developer certificate. To fix it, run the following command: - ```bash - xattr -rd com.apple.quarantine /Applications/Rebased.app - ``` -
- -## Exclusive Features - -In addition to all the git-related features from [IntelliJ IDEA Community Edition](https://github.com/jetbrains/intellij-community), Rebased has some additional features which aren't available in any of the official JetBrains IDEs. - -### Customizable git log location - -By default, the git log in Rebased is located in the main editor window, as the graph is typically the main focus of a git GUI client. -However, if you prefer it to be in the tool window at the bottom like in JetBrains IDEs, you can disable this behavior: - -1. Go to *Settings > Version Control > Log* -2. Uncheck "Show the log in the editor window" - -### Option to disable the `.idea` directory - -Unlike the `.vscode` directory, most of the config files generated by JetBrains IDEs are unfortunately not suitable to commit, as they often contain device-specific file paths that don't work if shared with other members of your team. - -Rebased is intended to be used with a wider variety of projects, which means you're more likely to use it with repos that weren't intended to be opened in a JetBrains IDE. This means `.idea` config files aren't committed nor are they excluded in `.gitignore`. This results in Rebased generating unwanted config files most of the time. - -To address this problem, Rebased allows you to disable the creation of the `.idea` directory in the project root: - -1. Go to *Settings > Appearance and Behavior > System Settings* -2. Uncheck "Store project settings in the project root directory" - -> [!NOTE] -> This does not disable project-level config. Instead, Rebased will store each project's config inside a single centralized `.idea` directory in the same place as the IDE's global settings. - -### Additional TextMate bundles - -IntelliJ Community Edition includes syntax highlighting for many languages, even when their corresponding language plugin is not installed, thanks to the [TextMate Bundles](https://plugins.jetbrains.com/plugin/7221) plugin. - -Unfortunately however, syntax highlighting is only available for some languages in their respective paid plugins/IDEs. - -One of the goals of Rebased is to prevent users from having to install bloated plugins when they only want basic editor/git functionality, so we ship some additional TextMate bundles that aren't present in IntelliJ: - -- [vue](https://github.com/vuejs/language-tools) - -(currently only one language, but feel free to open an [issue](https://github.com/DetachHead/rebased/issues/new/choose) or [PR](https://github.com/DetachHead/rebased/compare) for others) - -## Credits - -- https://github.com/obiscr/intellij-community - a previous attempt at creating a JetBrains git client that I cherrypicked some commits from -- JetBrains (obviously) - -## Contributing - -> [!NOTE] -> This section is mostly unchanged from the upstream intellij-community repo, but with a few small tweaks to match the changes I've made to the build process. - -### Getting the Source Code +## Getting the Source Code This section will guide you through getting the project sources and help avoid common issues in git config and other steps before opening it in the IDE. -##### Prerequisites +#### Prerequisites - [Git](https://git-scm.com/) installed - Install [IntelliJ IDEA 2023.2](https://www.jetbrains.com/idea/download) or higher. - For **Windows** set these git config to avoid common issues during cloning: @@ -112,7 +13,7 @@ This section will guide you through getting the project sources and help avoid c git config --global core.autocrlf input ``` -##### Clone Main Repository +#### Clone Main Repository Rebased is available from the [GitHub repository](https://github.com/detachhead/rebased). The **master** (_default_) branch contains the source code which is periodically merged with upstream, however Rebased tracks upstream IntelliJ Community releases in [separate release branches](https://github.com/DetachHead/rebased/pulls?q=is%3Apr+label%3A%22release+branch%22). Releases are always published from the latest release branch instead of the master branch. @@ -132,7 +33,7 @@ Alternatively, follow the steps below in a terminal: > - Cloning in IntelliJ IDEA also supports creating shallow clone. --- -### Building Rebased +## Building Rebased These instructions will help you build Rebased from source code, which is based on the IntelliJ community edition. IntelliJ IDEA '**2023.2**' or newer is required. @@ -144,13 +45,13 @@ IntelliJ IDEA '**2023.2**' or newer is required. > * Building the project using only IDE built-in capabilities is not supported anymore, so make sure the [Bazel plugin](https://plugins.jetbrains.com/plugin/22977-bazel) is installed and enabled. > * Known issue: some tests are not yet possible to be run with Bazel. In case of any issues, please depend on the `tests.cmd` script mentioned in the [Running IntelliJ IDEA in CI/CD environment](#running-intellij-idea-in-cicd-environment) section. -#### Opening the Rebased Source Code in the IDE +### Opening the Rebased Source Code in the IDE Using the latest IntelliJ IDEA, click '**File | Open**', select the `` directory. If IntelliJ IDEA displays a message about a missing or out-of-date required plugin (e.g. Kotlin), [enable, upgrade, or install that plugin](https://www.jetbrains.com/help/idea/managing-plugins.html) and restart IntelliJ IDEA. -#### Build Configuration Steps +### Build Configuration Steps 1. **JDK Setup** - Use JetBrains Runtime 25 (without JCEF) to compile @@ -172,7 +73,7 @@ If IntelliJ IDEA displays a message about a missing or out-of-date required plug - With notably higher available RAM, Increase "**User-local heap size**" to `3000`. -#### Building the Rebased Application from Source +### Building the Rebased Application from Source **To build Rebased from source**, choose '**Build | Build Project**' from the main menu. @@ -194,7 +95,7 @@ Installer build examples: > You can also call it directly from IDEA, using run configuration `Build Rebased Installers (current OS)`. -##### Dockerized Build Environment +#### Dockerized Build Environment To build installation packages inside a Docker container with preinstalled dependencies and tools, run the following command in `` directory (on Windows, use PowerShell): ```bash docker build . --target intellij_idea --tag intellij_idea_env @@ -206,7 +107,7 @@ docker run --rm --user "$(id -u)" --volume "${PWD}:/community" intellij_idea_env > This prevents issues with permissions for the checked-out repository, the build output, if any. --- -### Running Rebased +## Running Rebased To run the version of Rebased that was built from source, choose '**Run | Run**' from the main menu. This will use the preconfigured run configuration `Rebased`. To run tests on the build, apply these settings to the '**Run | Edit Configurations... | Templates | JUnit**' configuration tab: @@ -214,7 +115,7 @@ To run tests on the build, apply these settings to the '**Run | Edit Configurati * VM options: `-ea` -#### Running Rebased in CI/CD environment +### Running Rebased in CI/CD environment To run tests outside of IntelliJ IDEA, run the `tests.cmd` command in `` directory.`tests.cmd` can be used in both Windows and Unix systems. Options to run tests are passed as system properties to `tests.cmd` command. diff --git a/README.md b/README.md new file mode 100644 index 0000000000000..fb29f44e81a41 --- /dev/null +++ b/README.md @@ -0,0 +1,99 @@ +
+ +

Rebased

+

A git client based on the IntelliJ platform.

+
+ +![](screenshot.png) + +## Motivation + +Rebased is an open-source remake of the short-lived [jetbrains git client](https://youtrack.jetbrains.com/issue/IJPL-72504/Make-git-client-a-standalone-app#focus=Comments-27-12868395.0-0). +It's basically just a JetBrains IDE with all the bundled plugins removed except the git integration, with some additional UI tweaks. + +See [this youtrack issue](https://youtrack.jetbrains.com/issue/IJPL-72504/Make-git-client-a-standalone-app) for the many reasons people have been requesting this for almost a decade. At the time of writing, it's the #3 most upvoted open issue on YouTrack. + +## Installation + +### Linux + +Download the appimage from [GitHub releases](https://github.com/DetachHead/rebased/releases). + +We recommend using either [AppManager](https://github.com/kem-a/AppManager) or [Gear Lever](https://github.com/mijorus/gearlever) to install it to your applications menu, and for automatic updates. + +### Windows + +You can either download the installer `.exe` from [GitHub releases](https://github.com/DetachHead/rebased/releases) or install via winget: + +```ps1 +winget install detachhead.rebased --source winget +``` + +### macOS + +Install with [homebrew](https://brew.sh/): + +```bash +brew install detachhead/tap/rebased +``` + +
+ Manual installation + +Download the `.dmg` from [GitHub releases](https://github.com/DetachHead/rebased/releases) + +After copying `Rebased.app` to your Applications folder, you may see the following error message: +> "Rebased.app" is damaged and can't be opened. You should move it to the Bin. + +**This is Apple lying to you.** Nothing is "damaged", it's just not code-signed with an Apple Developer certificate. To fix it, run the following command: + ```bash + xattr -rd com.apple.quarantine /Applications/Rebased.app + ``` +
+ +## Exclusive Features + +In addition to all the git-related features from [IntelliJ IDEA Community Edition](https://github.com/jetbrains/intellij-community), Rebased has some additional features which aren't available in any of the official JetBrains IDEs. + +### Customizable git log location + +By default, the git log in Rebased is located in the main editor window, as the graph is typically the main focus of a git GUI client. +However, if you prefer it to be in the tool window at the bottom like in JetBrains IDEs, you can disable this behavior: + +1. Go to *Settings > Version Control > Log* +2. Uncheck "Show the log in the editor window" + +### Option to disable the `.idea` directory + +Unlike the `.vscode` directory, most of the config files generated by JetBrains IDEs are unfortunately not suitable to commit, as they often contain device-specific file paths that don't work if shared with other members of your team. + +Rebased is intended to be used with a wider variety of projects, which means you're more likely to use it with repos that weren't intended to be opened in a JetBrains IDE. This means `.idea` config files aren't committed nor are they excluded in `.gitignore`. This results in Rebased generating unwanted config files most of the time. + +To address this problem, Rebased allows you to disable the creation of the `.idea` directory in the project root: + +1. Go to *Settings > Appearance and Behavior > System Settings* +2. Uncheck "Store project settings in the project root directory" + +> [!NOTE] +> This does not disable project-level config. Instead, Rebased will store each project's config inside a single centralized `.idea` directory in the same place as the IDE's global settings. + +### Additional TextMate bundles + +IntelliJ Community Edition includes syntax highlighting for many languages, even when their corresponding language plugin is not installed, thanks to the [TextMate Bundles](https://plugins.jetbrains.com/plugin/7221) plugin. + +Unfortunately however, syntax highlighting is only available for some languages in their respective paid plugins/IDEs. + +One of the goals of Rebased is to prevent users from having to install bloated plugins when they only want basic editor/git functionality, so we ship some additional TextMate bundles that aren't present in IntelliJ: + +- [vue](https://github.com/vuejs/language-tools) + +(currently only one language, but feel free to open an [issue](https://github.com/DetachHead/rebased/issues/new/choose) or [PR](https://github.com/DetachHead/rebased/compare) for others) + +## Contributing + +See [`CONTRIBUTING.md`](./CONTRIBUTING.md) + +## Credits + +- https://github.com/obiscr/intellij-community - a previous attempt at creating a JetBrains git client that I cherrypicked some commits from +- JetBrains (obviously) From 881615038db11e5b339334cc0ce23d1b9083dc14 Mon Sep 17 00:00:00 2001 From: detachhead Date: Tue, 21 Jul 2026 21:10:25 +1000 Subject: [PATCH 4/4] ai code policy --- CONTRIBUTING.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d1a2f39ff90e8..2b20772617fd7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,5 +1,13 @@ # Contributing +## AI Code Policy + +This project does not accept any AI generated code. + +Please also refrain from unnecessarily padding out your issues, comments or PR descriptions using LLMs. Though you may use AI to assist with translations if you aren't fluent in English. + +If you are interested in the motivation behind this decision, [see here](https://detachhead.codeberg.page/workproperly/blog/2026/07/21/i-dont-like-ai/). + ## Getting the Source Code This section will guide you through getting the project sources and help avoid common issues in git config and other steps before opening it in the IDE.