Skip to content

Commit

Permalink
Toc readme (#653)
Browse files Browse the repository at this point in the history
  • Loading branch information
Stephan Dilly committed May 27, 2021
1 parent cb77e61 commit 43c55f3
Showing 1 changed file with 35 additions and 21 deletions.
56 changes: 35 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,21 @@

![](demo.gif)

# Features
## <a name="table-of-contents"></a> Table of Contents

1. [Features](#features)
2. [Benchmarks](#bench)
3. [Motivation](#motivation)
4. [Roadmap](#roadmap)
5. [Limitations](#limitations)
6. [Installation](#installation)
7. [Build](#build)
8. [Diagnostics](#diagnostics)
9. [Color Theme](#theme)
10. [Key Bindings](#bindings)
11. [Inspiration](#inspiration)

## 1. <a name="features"></a> Features <small><sup>[Top ▲](#table-of-contents)</sup></small>

- Fast and intuitive **keyboard only** control
- Context based help (**no need to memorize** tons of hot-keys)
Expand All @@ -36,7 +50,7 @@
- Scalable terminal UI layout
- Async git API for fluid control

# Benchmarks
## 2. <a name="bench"></a> Benchmarks <small><sup>[Top ▲](#table-of-contents)</sup></small>

For a [RustBerlin meetup presentation](https://youtu.be/rpilJV-eIVw?t=5334) ([slides](https://github.com/extrawurst/gitui-presentation)) I compared `lazygit`,`tig` and `gitui` by parsing the entire Linux git repository (which contains over 900k commits):

Expand All @@ -46,13 +60,24 @@ For a [RustBerlin meetup presentation](https://youtu.be/rpilJV-eIVw?t=5334) ([sl
| `lazygit` | 57 s | 2.6 | 16 | Yes | Sometimes |
| `tig` | 4 m 20 s | 1.3 | **0.6**| Sometimes | **No**|

# Motivation
## 3. <a name="motivation"></a> Motivation <small><sup>[Top ▲](#table-of-contents)</sup></small>

I do most of my git usage in a terminal but I frequently found myself using git UIs for some use cases like: index, commit, diff, stash and log.

Over the last 2 years my go-to GUI tool for this was [fork](https://git-fork.com) because it was snappy, free, and not bloated. Unfortunately the _free_ part will [change soon](https://github.com/ForkIssues/TrackerWin/issues/571) and so I decided to build a fast and simple terminal tool to help with features I use the most.

# Known Limitations
## 4. <a name="roadmap"></a> Road(map) to 1.0 <small><sup>[Top ▲](#table-of-contents)</sup></small>

These are the high level goals before calling out `1.0`:

* merging with conflicts ([#485](https://github.com/extrawurst/gitui/issues/485))
* log search (commit, author, sha) ([#449](https://github.com/extrawurst/gitui/issues/449),[#429](https://github.com/extrawurst/gitui/issues/429))
* file history log ([#381](https://github.com/extrawurst/gitui/issues/381))
* more tag support ([#483](https://github.com/extrawurst/gitui/issues/483))
* file blame ([#484](https://github.com/extrawurst/gitui/issues/484))
* visualize branching structure in log tab ([#81](https://github.com/extrawurst/gitui/issues/81))

## 5. <a name="limitations"></a> Known Limitations <small><sup>[Top ▲](#table-of-contents)</sup></small>

- no support for conflict resolution yet (see [#485](https://github.com/extrawurst/gitui/issues/485))
- no support for [bare repositories](https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server) (see [#100](https://github.com/extrawurst/gitui/issues/100))
Expand All @@ -64,7 +89,7 @@ Currently, this tool does not fully substitute the _git shell_, however both too

All support is welcomed! Sponsors as well! ❤️

# Installation
## 6. <a name="installation"></a> Installation <small><sup>[Top ▲](#table-of-contents)</sup></small>

For the time being this product is in alpha and is not considered production ready. However, for personal use it is reasonably stable and is being used while developing itself.

Expand Down Expand Up @@ -129,7 +154,7 @@ Binaries available for:
- macOS
- Windows

# Build
## 7. <a name="build"></a> Build <small><sup>[Top ▲](#table-of-contents)</sup></small>

### Requirements

Expand All @@ -140,7 +165,7 @@ Binaries available for:

The simplest way to start playing around with `gitui` is to have `cargo` build and install it with `cargo install gitui`

# Diagnostics
## 8. <a name="diagnostics"></a> Diagnostics <small><sup>[Top ▲](#table-of-contents)</sup></small>

To run with logging enabled run `gitui -l`.

Expand All @@ -151,30 +176,19 @@ This will log to:
- Linux: `$HOME/.cache/gitui/gitui.log`
- Windows: `%LOCALAPPDATA%/gitui/gitui.log`

# Color Theme
## 9. <a name="theme"></a> Color Theme <small><sup>[Top ▲](#table-of-contents)</sup></small>

![](assets/light-theme.png)

`gitui` should automatically work on both light and dark terminal themes.

However, you can customize everything to your liking: See [Themes](THEMES.md).

# Key Bindings
## 10. <a name="bindings"></a> Key Bindings <small><sup>[Top ▲](#table-of-contents)</sup></small>

The key bindings can be customized: See [Key Config](KEY_CONFIG.md) on how to set them to `vim`-like bindings.

# Road(map) to 1.0

These are the high level goals before calling out `1.0`:

* merging with conflicts ([#485](https://github.com/extrawurst/gitui/issues/485))
* log search (commit, author, sha) ([#449](https://github.com/extrawurst/gitui/issues/449),[#429](https://github.com/extrawurst/gitui/issues/429))
* file history log ([#381](https://github.com/extrawurst/gitui/issues/381))
* more tag support ([#483](https://github.com/extrawurst/gitui/issues/483))
* file blame ([#484](https://github.com/extrawurst/gitui/issues/484))
* visualize branching structure in log tab ([#81](https://github.com/extrawurst/gitui/issues/81))

# Inspiration
## 11. <a name="inspiration"></a> Inspiration <small><sup>[Top ▲](#table-of-contents)</sup></small>

- [lazygit](https://github.com/jesseduffield/lazygit)
- [tig](https://github.com/jonas/tig)
Expand Down

0 comments on commit 43c55f3

Please sign in to comment.