terminal user interface to jujutsu. Focused on speed and clarity
9
fork

Configure Feed

Select the types of activity you want to include in your feed.

readme

+23 -4
+23 -4
README.md
··· 1 1 # Jujutsu TUI 2 2 [![nix](https://github.com/faldor20/jj_tui/actions/workflows/build-nix.yml/badge.svg)](https://github.com/faldor20/jj_tui/actions/workflows/build-nix.yml) 3 - A TUI for the new version control system Jujutsu 3 + A TUI for the Jujutsu version control system 4 4 5 5 6 6 ![jj_tui-ezgif com-optimize](https://github.com/faldor20/jj_tui/assets/26968035/fb053320-484a-4d6f-9b66-e5b9d0d49e5d) ··· 11 11 `Space` to select/deselect revisions (multi-select in graph view) 12 12 `Enter` to widen the diff and scroll through it 13 13 14 + ## Key features 15 + 16 + ### Normal jj operations 17 + - `c`ommiting 18 + - `r`ebasing 19 + - `g`it pushing and pulling 20 + - Adding, moving and deleting `b`ookmarks 21 + - `s`quashing and `s`plitting commits 22 + - `space` can be used to select multiple commits for copying, rebasing etc, starting a `n`ew commit on top of etc 23 + 24 + ### Creating commits from the file view: 25 + - `space` can be used to select files to `c`ommit seperately or `m`ove to different commit 26 + - Files and be sent to `N`ext or `P`revious commits 27 + 28 + ### filtering by revsets 29 + - `f`ilter by any revest you like 30 + 14 31 List of graph commands: 15 32 16 33 ![jj_tui commands](https://github.com/user-attachments/assets/1e446a3d-1736-4207-b311-29d8e4bdc333) 17 34 18 - Please provide any suggestions. I'm new to jujutsu so I'm sure people have workflows I couldn't even dream of. 19 35 ## Installing 20 36 `linux`: Grab the latest release. It's statically linked and should work on any linux machine. 21 37 `mac`: Grab a prebuild. Let me know if you have any issues as I can't test on a mac. ··· 32 48 You can make a `config.yaml` config file in the following directories to customize key inputs 33 49 `linux`: $XDG_CONFIG_HOME/jj_tui/ 34 50 `macos`: ~/Library/preferences/jj_tui/ 35 - see `./jj_tui/lib/key_map.ml` for a spec for the keymap and `./jj_tui/lib/config.ml` for the config 51 + See `./jj_tui/lib/key_map.ml` for a spec for the keymap and `./jj_tui/lib/config.ml` for the config 36 52 The keymap config lets you fully customize all the commands and their sub menus as well as remap the arrow keys. 53 + 54 + Eg: 37 55 ``` yaml 38 56 key_map: 39 57 remap: ··· 52 70 s: "squash_into_parent" 53 71 # If the terminal is smaller than this width, the UI will change to a single pane view 54 72 single_pane_width_threshold: 110 73 + # Sets the limit to how many commits are ever rendered in jj_tui. Usefull for not slowing down too much when viewing 'all()' revest. 74 + max_commits: 100 55 75 ``` 56 76 For a full list of commands ids see [`jj_tui/bin/graph_commands.ml`](jj_tui/bin/graph_commands.ml) and [`jj_tui/bin/file_commands.ml`](jj_tui/bin/file_commands.ml) 57 77 58 78 # logs: 59 79 `linux`: $XDG_STATE_HOME/jj_tui/ 60 80 `macos`: ~/Library/logs/jj_tui/ 61 - 62 81 63 82 # Dev 64 83 Can be built with nix `nix build` or open a nix shell with `nix develop`