summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/Config.md2
-rw-r--r--docs/Custom_Command_Keybindings.md1
-rw-r--r--docs/keybindings/Keybindings_en.md1
-rw-r--r--docs/keybindings/Keybindings_nl.md1
-rw-r--r--docs/keybindings/Keybindings_pl.md1
-rw-r--r--docs/keybindings/Keybindings_zh.md1
-rw-r--r--pkg/commands/git.go3
-rw-r--r--pkg/commands/git_commands/bisect.go164
-rw-r--r--pkg/commands/git_commands/bisect_info.go103
-rw-r--r--pkg/commands/git_commands/commit.go14
-rw-r--r--pkg/commands/models/commit.go11
-rw-r--r--pkg/commands/oscommands/cmd_obj.go40
-rw-r--r--pkg/commands/oscommands/cmd_obj_runner.go56
-rw-r--r--pkg/config/user_config.go3
-rw-r--r--pkg/gui/bisect.go204
-rw-r--r--pkg/gui/commits_panel.go9
-rw-r--r--pkg/gui/custom_commands.go6
-rw-r--r--pkg/gui/filetree/commit_file_manager.go3
-rw-r--r--pkg/gui/filetree/file_manager.go3
-rw-r--r--pkg/gui/filetree/presentation.go (renamed from pkg/gui/presentation/files.go)47
-rw-r--r--pkg/gui/gui.go3
-rw-r--r--pkg/gui/keybindings.go8
-rw-r--r--pkg/gui/list_context_config.go3
-rw-r--r--pkg/gui/modes.go65
-rw-r--r--pkg/gui/presentation/commit_files.go49
-rw-r--r--pkg/gui/presentation/commits.go132
-rw-r--r--pkg/gui/view_helpers.go6
-rw-r--r--pkg/i18n/english.go38
-rw-r--r--pkg/utils/formatting.go7
-rw-r--r--test/integration/bisect/expected/.git_keep/BISECT_ANCESTORS_OK0
-rw-r--r--test/integration/bisect/expected/.git_keep/BISECT_EXPECTED_REV1
-rw-r--r--test/integration/bisect/expected/.git_keep/BISECT_LOG16
-rw-r--r--test/integration/bisect/expected/.git_keep/BISECT_NAMES1
-rw-r--r--test/integration/bisect/expected/.git_keep/BISECT_START1
-rw-r--r--test/integration/bisect/expected/.git_keep/BISECT_TERMS2
-rw-r--r--test/integration/bisect/expected/.git_keep/COMMIT_EDITMSG1
-rw-r--r--test/integration/bisect/expected/.git_keep/FETCH_HEAD0
-rw-r--r--test/integration/bisect/expected/.git_keep/HEAD1
-rw-r--r--test/integration/bisect/expected/.git_keep/config10
-rw-r--r--test/integration/bisect/expected/.git_keep/description1
-rw-r--r--test/integration/bisect/expected/.git_keep/indexbin0 -> 137 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/info/exclude7
-rw-r--r--test/integration/bisect/expected/.git_keep/logs/HEAD25
-rw-r--r--test/integration/bisect/expected/.git_keep/logs/refs/heads/master20
-rw-r--r--test/integration/bisect/expected/.git_keep/logs/refs/heads/test1
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/00/750edc07d6415dcc07ae0351e9397b0222b7babin0 -> 17 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/07/552205114379b7c1abd7cb39575cb7a30a2e8cbin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/0c/fbf08886fca9a91cb753ec8734c84fcbe52c9fbin0 -> 17 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/11/0046b8d92b877def6cda61639cf8f37bc2829cbin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/12/a951328c3156482355edebf6c81ded5480aff43
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/12/e46e3c37d1a43a26b909a346ecd2d97677c641bin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/1b/01733c2b372c7b5544c7f2293c3b7341824112bin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/1b/06712fea4c03c8fce8e2b3862c059f8d7f8268bin0 -> 148 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/1e/2780095cd8e95b93f89268f72cda21d528ab382
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/1e/8b314962144c26d5e0e50fd29d2ca327864913bin0 -> 17 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/1f/d41e04d86ee95083d607da4e22abef9a570abcbin0 -> 148 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/20/9e3ef4b6247ce746048d5711befda46206d235bin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/27/584027b768a0d33ba92ad8784c09589de325b9bin0 -> 147 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/2c/dabd5c24e74e22323744543a8ebcbfb33c7f6ebin0 -> 148 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/2c/e3bf88f382c762d97ac069eea18bed43a1bab23
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/30/5a009f27eb14858ea0a3a1a740a5346a543537bin0 -> 146 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/3c/032078a4a21c5c51d3c93d91717c1dabbb8cd0bin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/3e/02ce90348f3386128ebb2972515fb1a3788818bin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/3f/f8b0f3820fd2eb3da53a5b803f94caf30dc2abbin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/42/fb40334713a02429d4f8d72f7fe7376caef15bbin0 -> 148 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/43/78c740dfa0de7a973216b54b99c45a3c03f83cbin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/45/a4fb75db864000d01701c0f7a51864bd4daabfbin0 -> 17 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/48/082f72f087ce7e6fa75b9c41d7387daecd447bbin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/4b/65d66c089cd4f6bfa69dff2d7ba4c27337cd23bin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/54/3c0ef66d928051f16f8b9d7d33d6c4ea1f4e4fbin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/55/30322be194fc9dea08ef86c9306bddeacb92dbbin0 -> 146 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/60/d3b2f4a4cd5f1637eba020358bfe5ecb5edcf2bin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/66/19c0a1a3eb6449eb15ce6cd0916fec0e410c101
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/68/8bdfce6d5b16ebd7f5c6d6d5d68de7ea5344edbin0 -> 148 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/7e/d6ff82de6bcc2a78243fc9c54d3ef5ac14da69bin0 -> 17 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/7f/8f011eb73d6043d2e6db9d2c101195ae2801f2bin0 -> 17 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/80/eeef1a7c49b376f3373ea26c6ba44d69d90d9cbin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/81/0c10a66b1dabfe117eecdfb0f638bb1cd0ede53
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/83/51c19397f4fcd5238d10034fa7fa384f14d580bin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/91/36f315e5952043f1e7ecdc0d28c208eaeaed71bin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/98/c3099431a8777741ea114272919d6645418037bin0 -> 147 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/98/d9bcb75a685dfbfd60f611c309410152935b3dbin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/ac/324deab67f1749eeec1531b37dfaff41e559cabin0 -> 147 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/ae/95e9aa3b8881aedb7a526c86ec5d60f371ca6cbin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/af/f6316148f1524977997c486bcfe624c9094c4ebin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/b1/bd38b62a0800a4f6a80c34e21c5acffae52c7ebin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/b4/de3947675361a7770d29b8982c407b0ec6b2a0bin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/b5/31696093a6482eca9ad4bcab63407172225b931
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/b6/a7d89c68e0ca66e96a9a51892cc33db66fb8a3bin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/b7/cd988a171f7f99b7e190ca2b46060074cb379a2
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/b8/626c4cff2849624fb67f87cd0ad72b163671adbin0 -> 17 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/ba/8e7277a0ee7cdf84cd5c6138057adb85947a90bin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/c0/9b924073b6a6cc1b2208f9a00f7b73bec2add2bin0 -> 147 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/d0/0491fd7e5bb6fa28c517a0bb32b8b506539d4dbin0 -> 17 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/d5/42aa84743f8ba1380358d4009408f03dbfb247bin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/d6/b24041cf04154f8f902651969675021f4d93a5bin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/d9/cc608eedd5d2cc63c262272b7a0f6ab6aed5ddbin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/dd/9d90ed2d1fa5a284adba081199f18458977547bin0 -> 146 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/ea/684d3f868c358400465f2ec16a640c319ea6a3bin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/ec/635144f60048986bc560c5576355344005e6e7bin0 -> 17 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/ee/930b55b61910c0830b0c6ea1cf9ada066d27fcbin0 -> 147 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/f2/7c6ae26adb8396d3861976ba268f87ad8afa0bbin0 -> 49 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/f5/99e28b8ab0d8c9c57a486c89c4a5132dcbd3b2bin0 -> 18 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/f8/174a4db5bb2082ebe73b29a47448a300fea7aebin0 -> 145 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/objects/fb/bb6006074afe8cc9009b649fae19f920b604eabin0 -> 148 bytes
-rw-r--r--test/integration/bisect/expected/.git_keep/packed-refs1
-rw-r--r--test/integration/bisect/expected/.git_keep/refs/bisect/bad1
-rw-r--r--test/integration/bisect/expected/.git_keep/refs/bisect/good-ac324deab67f1749eeec1531b37dfaff41e559ca1
-rw-r--r--test/integration/bisect/expected/.git_keep/refs/bisect/good-fbbb6006074afe8cc9009b649fae19f920b604ea1
-rw-r--r--test/integration/bisect/expected/.git_keep/refs/bisect/skip-1b06712fea4c03c8fce8e2b3862c059f8d7f82681
-rw-r--r--test/integration/bisect/expected/.git_keep/refs/bisect/skip-ee930b55b61910c0830b0c6ea1cf9ada066d27fc1
-rw-r--r--test/integration/bisect/expected/.git_keep/refs/heads/master1
-rw-r--r--test/integration/bisect/expected/.git_keep/refs/heads/test1
-rw-r--r--test/integration/bisect/expected/file1
-rw-r--r--test/integration/bisect/recording.json1
-rw-r--r--test/integration/bisect/setup.sh15
-rw-r--r--test/integration/bisect/test.json4
117 files changed, 1012 insertions, 103 deletions
diff --git a/docs/Config.md b/docs/Config.md
index 6dea632fc..ab701623c 100644
--- a/docs/Config.md
+++ b/docs/Config.md
@@ -205,6 +205,7 @@ keybinding:
resetCherryPick: '<c-R>'
copyCommitMessageToClipboard: '<c-y>'
openLogMenu: '<c-l>'
+ viewBisectOptions: 'b'
stash:
popStash: 'g'
commitFiles:
@@ -389,6 +390,7 @@ gui:
```
You can use wildcard to set a unified color in case your are lazy to customize the color for every author or you just want a single color for all/other authors:
+
```yaml
gui:
authorColors:
diff --git a/docs/Custom_Command_Keybindings.md b/docs/Custom_Command_Keybindings.md
index 8b0c769c2..1dd27fef3 100644
--- a/docs/Custom_Command_Keybindings.md
+++ b/docs/Custom_Command_Keybindings.md
@@ -69,6 +69,7 @@ For a given custom command, here are the allowed fields:
| prompts | a list of prompts that will request user input before running the final command | no |
| loadingText | text to display while waiting for command to finish | no |
| description | text to display in the keybindings menu that appears when you press 'x' | no |
+| stream | whether you want to stream the command's output to the Command Log panel | no |
### Contexts
diff --git a/docs/keybindings/Keybindings_en.md b/docs/keybindings/Keybindings_en.md
index 53f3db648..f0b2f78a8 100644
--- a/docs/keybindings/Keybindings_en.md
+++ b/docs/keybindings/Keybindings_en.md
@@ -149,6 +149,7 @@ _This file is auto-generated. To update, make the changes in the pkg/i18n direct
<kbd>ctrl+r</kbd>: reset cherry-picked (copied) commits selection
<kbd>ctrl+y</kbd>: copy commit message to clipboard
<kbd>o</kbd>