-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b01310c
commit 5e9be33
Showing
1 changed file
with
38 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- | ||
name: Configure git to diff Bun's lockb lockfile | ||
--- | ||
|
||
To teach `git` how to generate a human-readable diff of Bun's binary lockfile format (`.lockb`), add the following to your local or global `.gitattributes` file: | ||
|
||
```js | ||
*.lockb binary diff=lockb | ||
``` | ||
|
||
--- | ||
|
||
Then add the following to you local git config with: | ||
|
||
```sh | ||
$ git config diff.lockb.textconv bun | ||
$ git config diff.lockb.binary true | ||
``` | ||
|
||
--- | ||
|
||
To globally configure git to diff Bun's lockfile, add the following to your global git config with: | ||
|
||
```sh | ||
$ git config --global diff.lockb.textconv bun | ||
$ git config --global diff.lockb.binary true | ||
``` | ||
|
||
--- | ||
|
||
## How this works | ||
|
||
Why this works: | ||
|
||
- `textconv` tells git to run bun on the file before diffing | ||
- `binary` tells git to treat the file as binary (so it doesn't try to diff it line-by-line) | ||
|
||
In Bun, you can execute Bun's lockfile (`bun ./bun.lockb`) to generate a human-readable version of the lockfile and `git diff` can then use that to generate a human-readable diff. |