zed/crates/git/test_data/blame_incremental_simple
Thorsten Ball 7f54935324
Add git blame (#8889)
This adds a new action to the editor: `editor: toggle git blame`. When
used it turns on a sidebar containing `git blame` information for the
currently open buffer.

The git blame information is updated when the buffer changes. It handles
additions, deletions, modifications, changes to the underlying git data
(new commits, changed commits, ...), file saves. It also handles folding
and wrapping lines correctly.

When the user hovers over a commit, a tooltip displays information for
the commit that introduced the line. If the repository has a remote with
the name `origin` configured, then clicking on a blame entry opens the
permalink to the commit on the code host.

Users can right-click on a blame entry to get a context menu which
allows them to copy the SHA of the commit.

The feature also works on shared projects, e.g. when collaborating a
peer can request `git blame` data.

As of this PR, Zed now comes bundled with a `git` binary so that users
don't have to have `git` installed locally to use this feature.

### Screenshots

![screenshot-2024-03-28-13 57
43@2x](https://github.com/zed-industries/zed/assets/1185253/ee8ec55d-3b5e-4d63-a85a-852da914f5ba)

![screenshot-2024-03-28-14 01
23@2x](https://github.com/zed-industries/zed/assets/1185253/2ba8efd7-e887-4076-a87a-587a732b9e9a)
![screenshot-2024-03-28-14 01
32@2x](https://github.com/zed-industries/zed/assets/1185253/496f4a06-b189-4881-b427-2289ae6e6075)

### TODOs

- [x] Bundling `git` binary

### Release Notes

Release Notes:

- Added `editor: toggle git blame` command that toggles a sidebar with
git blame information for the current buffer.

---------

Co-authored-by: Antonio <antonio@zed.dev>
Co-authored-by: Piotr <piotr@zed.dev>
Co-authored-by: Bennet <bennetbo@gmx.de>
Co-authored-by: Mikayla <mikayla@zed.dev>
2024-03-28 18:32:11 +01:00

71 lines
2.1 KiB
Plaintext

0000000000000000000000000000000000000000 3 3 1
author Not Committed Yet
author-mail <not.committed.yet>
author-time 1709895274
author-tz +0100
committer Not Committed Yet
committer-mail <not.committed.yet>
committer-time 1709895274
committer-tz +0100
summary Version of index.js from index.js
previous a7037b4567dd171bfe563c761354ec9236c803b3 index.js
filename index.js
0000000000000000000000000000000000000000 7 7 2
previous a7037b4567dd171bfe563c761354ec9236c803b3 index.js
filename index.js
c8d34ae30c87e59aaa5eb65f6c64d6206f525d7c 7 6 1
author Thorsten Ball
author-mail <mrnugget@example.com>
author-time 1709808710
author-tz +0100
committer Thorsten Ball
committer-mail <mrnugget@example.com>
committer-time 1709808710
committer-tz +0100
summary Make a commit
previous 6ad46b5257ba16d12c5ca9f0d4900320959df7f4 index.js
filename index.js
6ad46b5257ba16d12c5ca9f0d4900320959df7f4 2 2 1
author Joe Schmoe
author-mail <joe.schmoe@example.com>
author-time 1709741400
author-tz +0100
committer Joe Schmoe
committer-mail <joe.schmoe@example.com>
committer-time 1709741400
committer-tz +0100
summary Joe's cool commit
previous 486c2409237a2c627230589e567024a96751d475 index.js
filename index.js
6ad46b5257ba16d12c5ca9f0d4900320959df7f4 3 4 1
previous 486c2409237a2c627230589e567024a96751d475 index.js
filename index.js
6ad46b5257ba16d12c5ca9f0d4900320959df7f4 13 9 1
previous 486c2409237a2c627230589e567024a96751d475 index.js
filename index.js
486c2409237a2c627230589e567024a96751d475 3 1 1
author Thorsten Ball
author-mail <mrnugget@example.com>
author-time 1709129122
author-tz +0100
committer Thorsten Ball
committer-mail <mrnugget@example.com>
committer-time 1709129122
committer-tz +0100
summary Get to a state where eslint would change code and imports
previous 504065e448b467e79920040f22153e9d2ea0fd6e index.js
filename index.js
504065e448b467e79920040f22153e9d2ea0fd6e 3 5 1
author Thorsten Ball
author-mail <mrnugget@example.com>
author-time 1709128963
author-tz +0100
committer Thorsten Ball
committer-mail <mrnugget@example.com>
committer-time 1709128963
committer-tz +0100
summary Add some stuff
filename index.js
504065e448b467e79920040f22153e9d2ea0fd6e 21 10 1
filename index.js