# Represent git statuses more faithfully \(\#23082\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/a41d72ee81f1031c62a6b809be41b5a7a2c8325d)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: a41d72ee81f1031c62a6b809be41b5a7a2c8325d

Requested commit: a41d72ee81f1031c62a6b809be41b5a7a2c8325d

Commit: a41d72ee81f1031c62a6b809be41b5a7a2c8325d

Tree: d091e8426b07cb67cb6b19f6809debe9b4221a53

Author: Cole Miller

Committer: GitHub

## Message

```
Represent git statuses more faithfully (#23082)

First, parse the output of `git status --porcelain=v1` into a
representation that can handle the full "grammar" and doesn't lose
information.

Second, as part of pushing this throughout the codebase, expand the use
of the existing `GitSummary` type to all the places where status
propagation is in play (i.e., anywhere we're dealing with a mix of files
and directories), and get rid of the previous `GitSummary ->
GitFileStatus` conversion.

- [x] Synchronize new representation over collab
  - [x] Update zed.proto
  - [x] Update DB models
- [x] Update `GitSummary` and summarization for the new `FileStatus`
- [x] Fix all tests
  - [x] worktree
  - [x] collab
- [x] Clean up `FILE_*` constants
- [x] New collab tests to exercise syncing of complex statuses
- [x] Run it locally and make sure it looks good

Release Notes:

- N/A

---------

Co-authored-by: Mikayla <mikayla@zed.dev>
Co-authored-by: Conrad <conrad@zed.dev>
```

## Parents

- [224f3d47466ec2c95146430bb6901acfc13fc43a](https://git.cafe/gitcafe/zed/commit/224f3d47466ec2c95146430bb6901acfc13fc43a?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/a41d72ee81f1031c62a6b809be41b5a7a2c8325d?format=markdown)
