forked from searleser97/graphite-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.CHANGELOG
473 lines (324 loc) · 21.5 KB
/
.CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
# 0.18.6 2021-05-20
- Fixed a bug where running `gt branch rename` on submitted branches would result in `gt` becoming largely unusable.
- Added a new `--force/-f` option to `gt branch rename` that is required for already-submitted branches.
- `gt branch rename` now respects character replacement settings.
# 0.18.5 2021-05-19
- `.` and `/` are no longer replaced in branch names.
- Fixed a regression where the current branch wouldn't be selected by default in `gt branch checkout` interactive mode.
- Upgraded `node` and `yarn` dependencies, please let us know if you see any weirdness!
# 0.18.4 2021-05-16
- `gt downstack sync` no longer requires turning on a configuration option to use (for real this time)
# 0.18.3 2021-05-13
- Rewrote `gt downstack sync` using a different mechanism for fetching remote stack dependencies.
- `gt downstack sync` no longer requires turning on a configuration option to use.
- Fixed an issue in `submit` where in-progress PR title wouldn't be saved if the user cancelled while writing the body.
# 0.18.2 2021-05-12
- Fixed certain cases of an issue where restacking after `stack edit` and `commit create` would use an incorrect upstream. A broader fix is coming in v0.19.0.
- Fixed an issue where after certain `downstack edit` or `upstack onto` flows, branches would be pushed to GitHub in an order that caused them to be closed prematurely.
- Added `gt branch-prefix --reset` to turn off the user prefix for automatically generated branch names.
- Cleaned up copy in `submit` commands.
# 0.18.1 2021-05-10
- `gt repo sync` and `gt repo fix` now prompt to delete closed branches in addition to merged ones.
- Added more customization for auto-generated branch name prefixes. Check out `gt user branch-date` and `gt user branch-replacement`.
- Config files are now written with 600 permissions instead of 644.
- Fixed an issue where `downstack sync` would overwrite the local copy of a branch even if the user chose not to.
- Fixed an issue where a misconfigured trunk wouldn't be brought to the user's attention.
- Fixed an issue where Graphite would fail to parse repo owner/name.
- Removed deprecation warning for `gt stacks` - it's been long enough.
- Cleaned up interactive mode copy for `submit`.
# 0.18.0 2021-05-04
**New functionality**
- Added an experimental command `gt downstack sync` to pull down the remote copy of a branch and its downstack dependencies from remote. This feature is gated behind a configuration by default, and we are still working on the documentation. If you would like to try it out and help us iterate on the feature, please join the #experimental channel in the Graphite community Slack server!
- Added additional functionality to `submit` to support the experimental collaboration features. Gated by default.
- Added additional functionality to `gt repo sync` to support the experimental collaboration features. Gated by default.
**New commands**
- Added a new command `gt branch edit` that runs a native `git rebase --interactive` over the commits on the current branch. This command is intended for advanced Git users who want to make use of the commit structure within a branch while working with Graphite.
- Added a new command `gt branch show` that runs a native `git log` over the commits on the current branch. Includes a `--patch/-p` option to view the diffs.
**New ways to use existing commands**
- Added an `--insert` option to `gt branch create` which restacks all children of the parent of the new branch onto the new branch itself.
- Added interactive branch selection for `gt upstack onto` (similar to `gt branch checkout`). No longer requires a positional argument.
- `gt repo sync` now handles `--no-interactive` correctly.
- `gt commit amend --no-edit` now fails and warns the user when there are no staged changes, just like `gt commmit create`.
- `--no-edit` is now aliased to `-n` for `gt continue` and `gt commit amend`.
- `gt continue` now supports `--all/-a` to stage all changes.
- `submit --no-interactive` no longer un-publishes submitted PRs (unless `--draft` is specified).
- `gt downstack edit` now supports an `exec/x` option to execute arbitrary shell commands in between branch restacks (based on `git rebase --interactive`).
- `gt branch delete` now supports deleting the current branch. It checks out the parent (or trunk if Graphite cannot find a parent).
**Fixes**
- Fixed a bug where `submit --no-interactive` could prompt the user for reviewers.
- Fixed a bug where `gt repo owner` would set the remote as well, breaking `sync` and resulting in having to manually edit the configuration file to get Graphite working again.
- Fixed a bug where `submit` would fail for certain classes of branch name.
- Fixed a bug where comments in the `gt downstack edit` file were not respected.
- Fixed a bug where `p` as an alias for `pick` in `gt downstack edit` did not work properly.
- Fixed a bug where `fix` could swallow a rebase exception and leave the repo in a bad state.
- Fixed a bug where `gt branch checkout` interactive selection would fail if executed from an untracked branch.
- Fixed a bug where `gt branch delete` could fail to delete the branch but leave it in a corrupt state.
**Improvements**
- Improved the speed of `gt downstack edit` and `gt upstack onto` by being smarter about when a rebase is actually necessary.
- Improved the speed of stack validation for some commands.
- Cleaned up output of various commands and added more `--debug` logging.
**Under the hood**
- Added infra to backfill the SHA of branch parent in metadata globally wherever it is safe to do so to prepare for an upcoming update to the stack validation algorithm that we expect to improve performance and reduce hangs.
- Added plenty of tests and refactored code core to many commands for stability and future extensibility.
# 0.17.11 2021-04-23
- Fix an issue introduced in the previous version where the async calls to fill in PR info on `submit` would not be awaited serially, resulting in a poor user experience.
# 0.17.10 2021-04-22
- `sync` commands no longer allow pushing to branches associated with closed/merged PRs.
- Rename `gt branch sync` to `gt branch pr-info` as its behavior is not aligned with the other `sync` commands.
- Fix some output formatting for `sync` and `submit` commands.
- Fix an issue where pr data could be overwritten on `submit`.
- Decreased max branch name length slightly to support an upcoming feature.
- Start tracking SHA of branch parent in metadata, a requirement for some upcoming features.
- This version includes some initial changes to sync branch metadata with remote, gated by a hidden flag.
# 0.17.9 2021-04-14
- Flipped `gt log short` view to match other log commands and `up`/`down` naming convention. `↳` → `↱`!
- Graphite now asks for confirmation if the user tries to submit an empty branch.
- Graphite now displays an info message when it creates an empty commit on a new branch.
- The empty commit copy in the commit editor now only appears when Graphite has created an empty commit.
- Added support for remotes not named `origin` - use the new `gt repo remote` command to set the name of your remote.
- Added support for branch names up to GitHub's max supported length (256 bytes including `/refs/heads` gives us room for 245 bytes).
- Allowlisted many git commands for passthrough.
- Added autocomplete support for `gt branch delete`.
- Changed force option on `gt branch delete` from `-D` to `-f`.
- Cleaned up output on `gt branch delete` failure.
- Fixed an issue where a branch could not be submitted if its name matched a file in the repository.
- Fixed an issue where `gt repo max-branch-length` wouldn't print the configured value.
- Added more debug information for the `--debug` option.
# 0.17.8 2021-04-08
- Happy Friday! This should fix many hangs that users are experiencing.
# 0.17.7 2021-04-08
- Graphite no longer cleans up local branches that share a name with merged branches on remote unless they have been associated with the merged PR (via a `submit` command).
- Fix bug where PR info wasn't being synced periodically.
- Added a new command `upstack fix`, similar to `stack fix` that only runs upstack of the current branch.
- `commit create` and `commit amend` now internally run an `upstack fix` instead of a `stack fix`.
- Fix a hang related to `git config diff.external` being set.
- Fix autocompletions for `gt branch checkout`.
# 0.17.6 2021-03-29
- Support handling corrupted `.graphite_merge_conflict` files.
# 0.17.5 2021-03-23
- Add deprecation warnings for `gt branch next` and `gt branch prev` in favor of `gt branch up` and `gt branch down`, respectively.
- Add `gt bu` and `gt bd` shortcuts for `gt branch up` and `gt branch down`, respectively.
- Change `gt branch delete` shortcut to `gt bdl`.
- Support passing through `gt stash` as `git stash`.
- Fix bug where `fish` users couldn't add backticks to commit message using the `-m` option.
- Silence retype errors.
- Minor copy updates.
# 0.17.4 2021-02-25
- Refactored config loading to reduce race conditions.
- Add quotes around commit message in ammend command.
- Minor copy updates.
# 0.17.3 2021-02-25
- Fix bug regarding repo config file reading from repo subdirs.
# 0.17.2 2021-02-16
- Support numbers when generating a branch name from a commit message through `gt bc -m <message>`
- Prompt for a commit message when autogenerating an empty commit when running `branch create` with no staged changes.
# 0.17.1 2021-02-15
- Support creating new branches with no staged changes, by automatically creating an empty commit.
# 0.17.0 2021-02-15
- Enable changing existing PRs' draft status using the `--draft` flag on submit.
- Add a new command, `gt downstack edit` which enables interactive reordering of stack branches.
- Update implementation of `gt stack submit` to avoid GitHub rate limitted when submitting large stacks.
# 0.16.8 2021-02-02
- Enable manually setting reviewers on submit with the `-r` flag.
# 0.16.7 2021-02-01
- Allow Graphite to run when there are untracked files.
# 0.16.6 2021-01-27
- Fix issue with detecting downstack/upstack branches on submit
# 0.16.5 2021-01-07
- Fix issue with detecting some PR templates
# 0.16.4 2021-12-13
- Wildcard matching for ignored branches (`gt repo ignored-branches --set`) now accepts glob-patterns
- Option to remove a branch from ignored list (`gt repo ignored-branches --unset`)
- Submit now supports --update-only option which will only update-existing PRs and not create new ones.
- Bugfix: Submit to honor the --no-verify flag
- Better logging and documentation to clarify behavior
# 0.16.3 2021-12-3
- Support up and down aliases for `gt branch` next/prev respectively.
- Fix issue where `gt tips` could not be disabled.
- Inherit shell editor preference for user from env ($GIT_EDITOR/$EDITOR) and prompt user to set shell editor preference on submit if env not set.
- Allow user to change editor preference using `gt user editor`
# 0.16.2 2021-10-25
- Support for `gt continue` to continue the previous Graphite command when interrupted by a rebase.
# 0.16.1 2021-10-14
- Fix issue with `gt repo sync` deleting metadata for existing branches.
- Reduce merge conflicts caused by `gt commit amend`.
# 0.16.0 2021-10-12
- Support for branch autocomplete functionality on gt branch-related commands. Enable this functionality by running `gt completion` and adding the ouputted bash script to your relevant bash profile (e.g. ~/.bashrc, ~/.zshrc).
- Added functionality to query users for feedback on the Graphite CLI.
- Refactor the suite of gt submit commands to make them more easily cancellable; re-ordered submit to edit all PRs locally before doing any writes and cancelling mid-submit will save any previously entered data (e.g. title and body).
- Submit also now includes a `--dry-run` flag to show the user what will be submitted in the invocation.
- Submit queries GitHub for PRs before submitting, resolving an issue where submit would sometimes try to create a new PR though one already existed for that head branch/base branch combo on GitHub (Graphite just didn't know about it).
# 0.15.1 2021-10-4
- Fix `gt commit create -m` multi-word commit messages.
# 0.15.0 2021-10-4
- Support for `gt stack top` and `gt stack bottom`.
- Adjusted logic for cleaning metadata in `gt repo sync`.
# 0.14.4 2021-10-1
- Improve performance of stack logic on repos with a high number of local branches.
- Allow `gt commit create` to be used without `-m`, launching the system editor.
- Infer the body of a PR from the commit message body (if it exists).
- Add `gt repo trunk --set`.
# 0.14.3 2021-09-30
- Improved `gt repo sync` performance when repos have a high number of stale branches. `gt repo sync` now deletes branches more eagerly and has an optional flag to show progress (`--show-delete-progress`).
- New command `gt repo fix` searches for common problems that cause degraded Graphite performance and suggests common remediations.
# 0.14.2 2021-09-29
- Tacit support for merge-based workflows; merges no longer cause exponential branching in `gt log` and hang `gt upstack onto`.
- Fixes to recreation of debug state in `gt feedback debug-context --recreate`.
# 0.14.1 2021-09-27
- Assorted improvements to the `gt repo sync` merged branch deletion logic and options to fix dangling branches.
- `gt branch parent --reset` resets Graphite's recorded parent for a branch (to undefined).
- `gt branch sync --reset` resets Graphite's recorded PR info a branch (to undefined).
# 0.14.0 2021-09-16
- `gt debug-context` captures debug metadata from your repo and can send that to Screenplay to help troubleshoot issues.
- `gt repo sync` now pulls in PR information for all local branches from GitHub to link any PRs Graphite doesn't know about/better remove already-merged branches.
- Re-enable metadata deletion from `repo sync`.
- Re-enable pull request base pushing from `repo sync`.
- `gt branch create -m` now has `-a` flag to include staged changes in the commit.
# 0.13.1 2021-09-01
- Disable metadata deletion from "repo sync"
- Disable pull request base pushing from "repo sync"
# 0.13.0 2021-08-31
- "stack submit" now checks if update is needed for each branch.
- Support "upstack submit" and "branch submit"
- Fixed bug which was preventing "upstack" from having the alias "us"
- Added a command "branch rename" to rename branches and correctly update metadata.
- Better support cancelling out of prompts.
- Rename "stack clean" to "repo sync" and update to be able to be run from any branch.
- Update "repo sync" to delete old branch metadata refs.
- Update "repo sync" to update PR merge bases if necessary.
- Support passing through commands to git which aren't supported by Graphite.
- Add experimental command "stack test".
- Fix bug causing branches to show up twice in log commands.
- Show PR and commit info in "log" command
- Add tip advising against creating branches without commits.
# 0.12.3 2021-08-23
- Fix outdated copy reference to gp.
- Print error stack trace when --debug flag is used.
- Flag midstack untracked branches in `gt ls` output.
- Improve submit to correctly support `gt stack submit` and `gt downstack submit`
- Reduce unnecessary git ref calls to improve performance in large repos.
- Support graceful handling of sigint.
# 0.12.2 2021-08-23
- Fix bug in `gt ls` stack traversal.
# 0.12.1 2021-08-23
- Fix bug resulting in always showing tips for `gt ls`.
# 0.12.0 2021-08-23
- Disallow branching off an ignored branch.
- Disallow sibling branches on top of trunk branch.
- Establish pattern of toggleable CLI tips.
- Rewrite `gt ls` to improve speed and output formatting.
- Optimize git ref traversal and memoization.
# 0.11.0 2021-08-18
- Support PR templates in "stack submit" command.
- Update "stack submit" to support interactive title and description setting.
- Update "stack submit" to support creating draft PRs.
- Allow max branch length to be configured (from the default of 50).
- Fix a crash in logging that happened in a edge case involving trailing trunk branches.
- Hide remote branches in "log long" output.
# 0.10.0 2021-08-17
- Fix case where commands fail if a branch's stack parent had been deleted.
- Fix copy across CLI to use "gt" rather than the old "gp".
- Add more shortcut aliases for commands such as "s" for "submit"
- Fix copy around "repo-config" to "repo"
- Add command "branch checkout"
- Refactor "stacks" command into "log short"
- Update "log" command to support "log", "log short" and "log long"
- Support dropping the space on double-alias shortcuts. Eg "branch next" = "b n" = "bn", "stack submit" = "ss" etc
- Throw actionable errors if two branches point at the same commit.
- Add top level "graphite" alias such that the CLI can be called using both "gt" and "graphite".
# 0.9.1 2021-08-15
- Fix "gp" alias deprecation warning for homebrew installations.
# 0.9.0 2021-08-15
- Rename graphite CLI alias to "gt" from "gp" per feedback.
# 0.8.2 2021-08-13
- Improved performance of `gp stacks` command, particularly in repos with a large number of stale branches.
- Changed search-space limiting settings to live at the top level and apply to both stacks and log. (`gp repo max-stacks-behind-trunk`, `gp repo max-days-behind-trunk`).
# 0.8.1 2021-08-10
- Improved performance of `gp log` command, particularly in repos with a large number of stale branches.
- Users can now set the maximum number of stacks to show behind trunk in `gp log` (`gp repo log max-stacks-behind-trunk`) as well as the maximum age of stacks to show (`gp repo log max-days-behind-trunk`).
- `gp log` also now has `--on-trunk` and `--behind-trunk` options.
- Improved CLI documentation and copy.
## 0.8.0 2021-08-07
- Autogenerated branch name date format change.
- stack fix command now has "stack f" alias.
- branch create command now has "branch c" alias.
- branch create command now has "branch c" alias.
- `stack regen` is deprecated, and is now a flag for `stack fix --regen`.
- `stack fix` now shows an interactive prompt by default.
## 0.7.1 2021-08-06
- Dont zero count months when generating branch names.
- Improve help text for amend.
- Improve help auth print out.
## 0.7.0 2021-08-05
- Refactor `gp log` command, while supporting old behavior with `gp log --commits/-c`
- Check for updates in orphaned child process, making all commands faster.
- More helpful validation error messaging.
- `gp branch next/prev` now support interactive choices and stepping multiple branches.
- `gp branch create [-m]` now doesn't commit by default. It can also autogenerate branch names from commit messages.
- Added `gp commit create -m` for creating commits and fixing upstack.
- Added `gp commit amend -m` for amending commits and fixing upstack.
- Added `gp user branch-prefix [--set]` reading and setting your branch prefix.
- Added `gp branch parent [--set]` plumbing command for reading and setting a branch parent.
- Added `gp branch children` plumbing command for reading the children of a branch.
## 0.6.3 2021-08-02
- Better telemetry for measuring cli performance.
- `gp l` alias for log command.
## 0.6.2 2021-08-02
- `stack fix` now works for a individual stack. (Upstack inclusive for now)
## 0.6.1 2021-08-02
- Fix homebrew release to not include a dev dependency on "chai".
## 0.6.0 2021-08-02
- Support `--no-verify` flag when running `branch create` to skip precommit hooks.
- Validation passes when a branch points to the same commit as trunk HEAD.
- Add `repo init` command.
- Self heal `.graphite_repo_config` file.
- Always track trunk branch and ignored branches.
- Update `stack regen` to always set stack foundations to trunk.
- Update `stack regen` such that, when from from trunk, regenerates all stacks.
- `branch next/prev` now traverses based on Graphite's stack metadata.
- Refactor `gp stacks` print output.
## 0.5.4 2021-07-30
- Update `stack regen` to operate across entire stack rather than just upstack.
- `stack submit` infers PR title from single-commit branches.
- Using trunk branch inference, ignore trunk parents such as trailing "prod" branches.
## 0.5.3 2021-07-29
- Begin infering trunk branch from .git config.
- Ignore trunk parent branches during validation and other operations.
## 0.5.2 2021-07-28
- `upstack onto` can now move branches with no parent branches.
- `validate` now passes cases where branches point to the same commit.
- `stack fix` now prints better messaging during rebase conflicts.
- Removed unused args from `stack submit` and `stack fix`.
- Updated copy
## 0.5.1 2021-07-28
- Dont automatically create repo config file.
## 0.5.0 2021-07-27
- Improved `stack submit` command and promoted command out of expermental status.
## 0.4.3 2021-07-27
- Update all copy to match new termonology from the 4.0.0 refactor.
## 0.4.2 2021-07-27
- Update `branch create` command to accept optional positional argument for branch name.
## 0.4.1 2021-07-27
- Fix demo command and downstack string.
## 0.4.0 2021-07-27
- Refactor all command names into a noun-verb subcommand pattern.
- Introduce concept of `upstack` and `downstack`.
- Simplify documentation.
- Minor bug fixes.
## 0.3.4 2021-07-25
- Fix bug in checking for uncommitted changes.
## 0.3.3 2021-07-25
- Self heal if branch metadata parent somehow becomes self.
- Diff rolls back changes if commit hook fails.
- Fix bug in metadata stack traversal used by `fix` command.
- Restack fails fast if there are uncommitted changes.
## 0.3.2 2021-07-24
- Slim down size of homebrew artifact.
## 0.3.1 2021-07-24
- Diff now only commits staged changes.
## 0.3.0 2021-07-24
- Support resolving merge conflicts during a recursive restack.
- Update `sync` command to be visable in `--help`.
## 0.2.0 2021-07-22
- Update unlisted `gp sync` command to support trunk argument.
- Update unlisted `gp sync` command to prompt before deleting branches.