Vampire
04/19/2024, 9:41 PM$ gt --version
1.3.2
$ gt sync
🌲 Pulling master from remote...
UNCAUGHT EXCEPTION: fetch failed
UNCAUGHT EXCEPTION: TypeError: fetch failed
at Object.fetch (node:internal/deps/undici/undici:11457:11)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Object.request (C:\Users\bkautler\AppData\Roaming\npm\node_modules\@withgraphite\graphite-cli\graphite.js:3:1303363)
at async i (C:\Users\bkautler\AppData\Roaming\npm\node_modules\@withgraphite\graphite-cli\graphite.js:3:1302781)
at async a (C:\Users\bkautler\AppData\Roaming\npm\node_modules\@withgraphite\graphite-cli\graphite.js:3:1131032)
😿Jacob Gold
04/22/2024, 8:51 PMJacob Gold
04/29/2024, 9:53 PMgt get, gt sync, and gt submit. The new versions will be rolled back out with this release.
• Fixed an issue where post-checkout hooks were swallowed, resulting in issues when interactive scripts are used.
• Fixed some typos in command output.
• gt demo now skips all Git hooks (with an implicit global --no-verify).
• gt sync no longer prints out Restacking branches if there are no branches to restack.
• Added details about troubleshooting to gt --help.Brendan Ngo
05/22/2024, 9:21 PMgt modify to leave descendants in an unrestacked state when there are conflicts.
• Updated gt split behavior to skip git hooks.
• Fixed bug where local version was being overwritten by remote even when user selected no from prompt.
• Fixed bug where remote rebase-only changes were not reconciled during gt sync.
• Fixed bug where staged changes were incorrectly detected as unstaged.
• Fixed bug where files changed in parent directories were not detected.
• Fixed bug where children of split branches were not being tracked.
• Fixed bug where pre-push hooks were not being run from the repo root.
• Removed references to deprecated command names.Jeremías Díaz
05/23/2024, 3:31 PMBrendan Ngo
05/29/2024, 9:50 PMgt feedback to not require to be run in a repo
• Fixed bug where a command could trigger thousands of parallel git commands at once causing spawn issues
• Fixed bug where gt get would try to checkout a branch that was just deletedBrendan Ngo
06/06/2024, 9:16 PMgt modify to print out conflicts when it cannot restack cleanly
• Added better error handling in gt sync/get for server-side errors
• Fixed more cases of the bug where local version was being overwritten by remote even when user selected no from prompt.
• Fixed bug where remote tracking errors would cause commands to fail completely
• Fixed bug where staged changes were incorrectly detected because of a stale index cacheBrendan Ngo
06/13/2024, 4:02 PMgt absorb to print the number of hunks that were not absorbed
• Updated gt log to not show updated remotely since it does not respect the new sync changes
• Fixed bug where gt sync would always ask to reconcile when there were local changesBrendan Ngo
06/18/2024, 6:00 PMgt demo to initialize Graphite automatically if the current repo has not yet been initializedBrendan Ngo
06/28/2024, 8:47 PMgt squash to no-op when there are no commits to squash or only a single commit
• Updated all prompt suggestions to support fuzzy searching branchesBrendan Ngo
07/10/2024, 9:10 PMgt config > Repository-level settings > Trunk branches > Add additional trunk branch. After configuring additional trunks, you can now pass in --all to commands like log, checkout, move, and sync to see and perform actions across all your trunks. By default, we only show and sync branches for the trunk you’re currently based on. Everything else should work normally and single trunk workflows should have no affect.
NOTE: docs and guides are not up-to-date with these changes and will be updated once we move to stable
1.4.0 2024-07-03
• Major changes to the internal gt data model to support having multiple trunks at once
• Added new gt config repository options to:
◦ Add an additional trunk
◦ Remove additional trunks
◦ Configure a local trunk to open all PRs against a different target trunk, supporting workflows where users work locally off a descendant of their remote trunk
• Updated gt trunk to print out the current trunk name instead of checkout the trunk
• Added a --all option to gt trunk to print out all the configured trunks
• Added a --all option to gt log to show all branches across all configured trunks
• Added a --all option to gt checkout to show all branches across all configured trunks in the interactive selector
• Added a --all option to gt move to show all branches across all configured trunks in the interactive selector
• Added a --all option to gt sync to pull all configured trunks and sync all branches across all these trunks. By default only syncs the current trunk branches.
• Added a --target-trunk option to gt submit to define what trunk to open PRs against on remote.
• Updated gt sync and gt submit to handle cases where a merged PR’s merge commit is not actually included in the up-to-date trunk
• Updated gt init to reset gt back to single trunk, warning the user if they have multiple trunks currently configured
• Fixed a bug during command initialization that caused the CLI to hang infinitely
1.4.1 2024-07-10
• Added a --trunk/-t to gt checkout to switch to the current trunk
• Fixed bug where gt sync would try to update a trunk you don’t have configured
• Fixed bug in gt demo that incorrectly created a “-p” directory to run the demo in
• Updated gt init --reset to also reset PR metadata
• Reduced the maximum number of parallel git calls in order to reduce spawn errorsBrendan Ngo
08/01/2024, 10:21 PM--verbose/-v in gt create and gt modify to include the diff in the commit message template
• Added a --add flag to gt trunk to configure an additional trunk branch
• Updated list of unmerged conflict files to print paths relative to the current working directory
• Updated gt create to suppress the detached HEAD message on every create
• Update pre-push hook error messages to include more details
• Updated gt demo to work in repos the user cannot submit to yet
• Fixed a bug where the branch name date prefix was incorrect in gt config
• Fixed a bug where gt submit would not fetch the branch before submitting to determine if it needs submitting
• Fixed a bug where gt continue would swallow the post-rewrite git hook output
• Fixed a bug where gt track would incorrectly tell you to track the branch
• Fixed a bug where the --force flag was not respected in gt submit when the remote was updated
• Fixed a bug in the interactive selector with --all where trunks could not be correctly selectedZiyao Wei
08/14/2024, 3:48 PM--stack flag to gt checkout to only show current stack
• Fixed a bug where gt log and gt checkout don’t work on untracked branches
• Fixed a bug where unsetting a trunk would not fully unset it
• Fixed a bug where gt throws a cannot read undefined error while reading ‘validationResult’
• Fixed a bug where gt track might get into an infinite loop while recovering diverged branches
• Improved merge conflict status to handle unstaged changes during rebasing
• Updated instructions for committing untracked files to be more clear
• Updated networking error diagnostics
• Updated gt pr, gt docs, and gt dash to print out the URL being openedBrendan Ngo
09/03/2024, 2:53 PMgt unlink command to unlink a branch from the currently associated PR
• Added better support for re-using branch names
• Added support for passing a branch name to gt info
• Added installation information to CLI releases
• Fixed a bug where rebases would not handle commits without a parent commit (e.g. original or orphaned commits)
• Fixed a bug where rebases with merge commits would cause conflicts with already merged commits
• Fixed a bug where request error logs could cause circular structure errors
• Updated gt rename to use the correct name when asking for a rename confirmation
• Updated gt create --insert to leave descendants in an un-restacked state when there are conflicts
• Updated gt delete to also prune branches
• Updated pre-push git hooks to better handle running in repo rootBrendan Ngo
09/17/2024, 8:04 PMgt sync --all would only clean up branches on the current trunk
• Improved gt submit performance by skipping unnecessary fetches
• Improved performance of deleting branches by only deleting required metadata
• Updated gt checkout to work while on a detached head
• Updated gt submit to submit branches that have never been submitted with Graphite
• Updated gt sync to better handle cases where the branch was updated outside of Graphite
• Updated gt init --trunk to warn against setting a trunk that does not exist locally
• Updated gt sync and gt get to work on untracked branchesBrendan Ngo
09/27/2024, 3:30 PMgt sync would not update trunk if there were no previously submitted branches
• Updated gt submit --branch to work while checked out untracked branches
• Updated support for git pre-push hooks on Windows machinesBrendan Ngo
10/31/2024, 8:09 PMgt demo that would corrupt the repo’s name and owner
• Updated sending non-info cli output to stderr instead of sending everything to stdout
1.4.8 is now in beta!
• Added additional debugging information for pr info updatesBrendan Ngo
12/10/2024, 8:46 PMBrendan Ngo
12/10/2024, 8:49 PMgt abort and gt undo, now in beta!
• Introduced gt abort, which aborts the current rebase operation and restores the repository state to before the original command that introduced the conflict
• Introduced gt undo, which undoes the most recent Graphite mutation, restoring the repository to its state before the mutation was applied.
• Fixed a bug where submitting a moved branch could temporarily result in incorrect diffs on remote
• Updated gt create to prompt for a branch name for empty branches if one was not providedDavid Bradford
01/02/2025, 10:07 PMgraphite-base branches if a submit fails to push to remote
• Fixed a bug where graphite-base branches were incorrectly introduced in trailing trunk multi-trunk configurations
• Fixed a bug where gt submit could lead to incorrect diffs upstack if submit was not run on the full stack
• Fixed a bug where gt rename did not use configured branch prefixes
• Fixed a bug where gt commands could fail with EAGAIN errors
• Fixed a bug where gt delete could fail when run on untracked branchesDavid Bradford
03/21/2025, 9:12 PM-m flags in gt create, gt modify, and gt squash.
• Provided additional context when commands fail due to Graphite maintenance and incidents.
• Use commit message for branch name if there are no staged changes.
• Updated output colors to avoid difficult to read output.
• Fixed a bug where gt feedback could fail due to large log files.
• Fixed a bug where the remote repository could be marked as ''.
• Fixed a bug where a large number of commits can cause "Invalid string length" exceptions.
• Fixed a bug where whitespace in the repository path is not handled correctly when worktrees are used.
• Dropped official support for Node 18 in anticipation of its end-of-life date on 2024-04-30 (note: this is only a minor version bump because we don't expect any breaking changes).
• Removed gt interactiveJacob Gold
03/26/2025, 3:46 PMgit subprocesses.David Bradford
05/09/2025, 5:31 PMgt track shows the exact number of commits that will go into the new branch, making it easier to spot oversized stacks.
• Updated git fetch commands to no longer fetch tags, reducing network usage and speeding up operations.
• Fixed a bug in gt pr where branch names were interpreted as a PR number if they started with a digit.
• Fixed a bug in gt submit where PR descriptions were being generated larger than the GitHub PR description limit.
• Fixed a bug in gt submit where PR titles were being generated larger than the GitHub PR title limit.
• Fixed a bug in gt submit where pushing all the branches in a stack could partially fail leading to inconsistent diffs in some PRs.
• Fixed a bug in gt submit where temporary branches were not being cleaned up correctly.
• Fixed a bug in gt create where the branch name was incorrectly added to the commit message.David Bradford
05/23/2025, 5:54 PMgt submit and gt sync could incorrectly report a new remote version.
• Fixed a bug where gt submit may try to push the same branch twice.
• Fixed a bug where help text would be displayed in a single column when piped to another command.
• Fixed an issue where polling in the vscode extension could cause large amounts of log file usage.David Bradford
06/11/2025, 5:13 PMgt checkout command to avoid accidental invocations.
• Fixed an issue where some vscode extension activity could cause excessive log file usage.David Bradford
06/18/2025, 1:47 PMgt get or gt sync encounter merge conflicts.
• Fixed an issue where gt submit would incorrectly warn about missing remote changes.Maya Bakir
07/14/2025, 3:14 PMDavid Bradford
08/11/2025, 3:07 PMgt submit.
• Fixed an issue where gt sync and gt get could result in slow operations.
• Fixed an issue where gt feedback incorrectly reported a failure.
• Fixed an issue where gt submit incorrectly required the --force flag.
• Fixed an issue where gt log with -n 0 would report the incorrect branch.
• Fixed an issue where gt revert would fail to perform any action.
• Fixed an issue where git hooks configured absolute paths would not be found.Ronak Malik
09/08/2025, 7:05 PMgt freeze and gt unfreeze commands. Freezing a branch prevents modifications to that branch.
• New branches from gt get will be frozen by default.
• Added warnings for newly empty branches after restack operations.
• Added a cap to debug log size.
• Improved gt feedback experience and reliability.
•
• Fixed issue where gt undo could remove unstaged or untracked changes.
• Fixed bug where gt undo sometimes failed after gt continue.
• Fixed issue where org prefixes were duplicated for team reviewers in PRs.
• Fixed branch sync to correctly detect trunk status when upstream is missing.
• Fixed issue where gt sync would hang when branches were too far behind trunk.
• Automatically set --no-interactive mode when stdin/stdout are not TTYs.Rishan
10/03/2025, 6:54 PM--reset-author flag to gt modify for resetting commit authorship.
• Added the ability to gt get PRs opened outside of Graphite.
• Fixed bug where progress indicators would sometimes interfere with prompts for ssh key passphrases.
• Fixed autocomplete output formatting for better terminal compatibility.