Releases: facebook/sapling
0.2.20240219-172743+3e819974
Sapling
- Enable smarter merge algorithms for open source version (see ‘sl help automerge’ for more information)
- Optionally limit the number of PRs created in each submission (#824)
- Trim commit description from SSL (#820)
- Fix AttributeError.name issue for Python < 3.10 (#825)
- Avoid linkifying example URL (#813)
ISL
The full list of ISL features is here.
- New DAG-based renderer
- Fill blank commit messages from previous commits
- Improvements to split UI tracking copied files
- Fix dragging commits in edit stack being misaligned with the cursor
- Node >= 16 is now required for running sl isl / sl web
0.2.20240116-133042+8acecb66
Sapling
- Support ‘--amend’ for copy and rename command (link)
- Enable cross-platform stdin listfile:pattern (link)
- Rewrite mergestage in Rust (link)
- Add configurable limits for files count in a commit (link)
- Use Rust status for every operations (link)
ISL
The full list of ISL features is here.
- Multiple improvements to Interactive Split
- Previewing system was rewritten with several improvements, such as commits not appearing duplicated during a rebase
- Added Bulk actions dropdown to the top bar to add actions that act on all commits at once
Community Contributions
0.2.20231113-145254+995db0d6
Below are the major changes of this release:
Sapling
- Aside from ISL,
sl
now runs as a single binary on all platforms - New copy tracing algorithm for automatically detecting renames and resolving rename-update conflict
- Symlink Support on Windows (requires enabling Developer Mode on Windows)
- A new Sapling DSL for dynamically picking a merge tool per-file
chg
was disabled on macOS- Fix build issues (thrift error, install-oss pep-0440 error etc)
ISL (Interactive Smartlog)
The full list of ISL changelog is here:
- Conflict-free diff stack editing and reordering
- Interactive Split UI, this lets you make multiple commits out of a single large commit
sl isl
on the command line to open a dedicated OS window instead of just a browser tab- Many UI improvements, like Syntax highlighting, easier to drag & drop commit during rebase operations
Community Contributions
- @ahornby fix many issues about EdenFS build and ReviewStack (link)
- @alex-statsig fix many issues about ISL and ReviewStack (link)
- @ktf avoids display issues with multiple hunks on macOS (#755)
- @vegerot fix Makefile target-specific variable values (#741)
- @touilleMan fix subcommands list in github extension's sl pr -h command (#737)
- @vegerot fix version number when building with old Sapling (#712)
- @vegerot set publicheads to remote HEAD when cloning (#607)
- @0o001 fix function names typo (#705)
- @Flameeyes use my-fork consistently (#702)
- @Vertexwahn improve doc (#677)
- @skevy add “goto” zsh completion (#666)
- @tomasreimers updates repository.ts (#604)
- @skevy fix empty path in dirfilter (#601)
- @skevy fix subcommands in pr.md (#596)
Full Changelog: 0.2.20230523-092610+f12b7eee...0.2.20231113-145254+995db0d6
0.2.20230523-092610+f12b7eee
- Fixed (
--no-root-relative
) handling for the status command (bb37a6e) - Added shell completion for
sl {hide, unhide, show}
(9f2cfe4)
See Sapling VS Code extension changelog for changes to the sl web UI
Full Changelog: 0.2.20230426-145232+7ea1f245...0.2.20230523-092610+f12b7eee
0.2.20230426-145232+7ea1f245
- @tomasreimers had several fixes for the ISL UI (#589, #604)
- @skevy fixed documentation for PR command (#596)
- @skevy fixed empty paths not being handled by dirfilter in fsmonitor (#601)
- @vegerot fixed publicheads commits not getting set as public when cloned (#607)
Note that our version numbers changed to be compatible with PEP 440 in #606
See Sapling VS Code extension changelog for changes to the sl web UI
Full Changelog: 0.2.20230330-193452-h69692651...0.2.20230426-145232+7ea1f245
0.2.20230330-193452-h69692651
This release includes fixes in various areas:
- @vegerot fixed a crash on macOS when the user belongs to more than 16 unix groups (#573).
- @steveluscher improved
githelp
to properly include--dirs
forclean
command (#575). - @steveluscher improved Ubuntu build by including build dependencies (#576, #577).
- Ctrl+C is now properly handled (1a697a2).
0.2.20230228-144002-h9440b05e
This release mainly brings better file move detection as well as various improvements to the sl pr submit
command
- Added file moves detection for sl diff.
- @discentem added a config option to disable the ReviewStack message in PRs created by
sl pr submit
(#427). The ReviewStack message is auto disabled for single-commit stack. - Fixed "mark landed PRs" hook to work when
sl
not in PATH (71d6e67) - Fixed
sl pr submit
to not try to update closed PRs (5a354f7) - Fixed
sl pr submit
to use "overlapping" PR strategy by default (a050359) - Fix
sl pr submit
crash using non-placeholder issue approach (18a1987) - @vegerot added and improved shell completion and prompt (#369 #349 #348).
- @vegerot added support for
sl init --git
on a non-empty directory. - Fixed not being able to launch
sl web
just after building withmake oss
.
0.2.20230124-180750-hf8cd450a
This release focuses on bug fixes and improvements around the pr and ghstack commands.
- Fixed an issue where
sl pr list
did not work correctly in combination withchg
(a1187e8). - @discentem (BK) Updated
sl pr pull
to throw an appropriate error if no args were specified (#357). - Reverted the behavior introduced in the previous release that introduced the practice of using placeholder issues when creating GitHub pull requests. While this approach made it possible to create pull requests in parallel and had desirable guarantees with respect to PR numbers and branch names, it turned out to have a number of downsides that outweighed the benefits, as explained in 7ce516d .
- @discentem (BK) Fixed a bug where
sl clone
silently failed for some repositories (#375) with (#386). - Added a PR revset (4720a2e). Now commands such as
sl goto pr123
,sl log -r PR456
should work, even without having to manually download some pull request. Using sl pr pull is still necessary, however, if one wants to get the most recent version of some PR. - Fix
sl ghstack land
to properly rebase, avoiding spurious “non-fast forward” push errors (ebbe7d8), resolving #333 .
0.2.20230124-124516-h352feeef
mirror: Log less and make concurrency customisable Summary: Slices were very noisy, so I made them log less. Plus now you can specify the concurrency of the command via CLI args. I tweaked it and saw no improvements though :( Reviewed By: markbt Differential Revision: D42683915 fbshipit-source-id: 5930a44c6a24fd48560512dd83a630c283c9a351
0.2.20221222-152408-ha6a66d09
This release focuses on correctness issues around handling submodules as well as various usability/workflow improvements.
- We made a number of improvements to working in repos with submodules:
- Rebasing past an update to a submodule no longer adds the submodule change to the bottom of the stack that was rebased: 2f0f0fd
- Rebasing a stack that contains a submodule change will preserve the change in the destination if the destination does not change the submodules: 1f5424d
- Rebasing a stack with a conflicting submodule change no longer crashes: 2b94b6f
- Improvements to the
sl pr
command:- You must now specify
sl pr submit
explicitly:submit
is no longer the default subcommand forsl pr
, buts
can be used as an alias forsubmit
: 56b5e3e - The
sl pr submit
command now supports a--draft
flag: 6e9c3d7 - New
sl pr pull
subcommand: if you usesl pr submit
to create a stack of pull requests, now you can usesl pr pull
to import the stack back into your working copy: d09d598 - New
sl pr list
subcommand that mirrors the functionality ofgh pr list
: 8f0a657 - Experimental new command for creating stacks:
sl --config github.pr_workflow=single pr submit
. See #302 and 166e264 for details. sl pr submit
now appends the stack information to the end of the pull request body instead of prepending it to the top: 8910d18- The branch name for a PR created by
sl pr submit
is now guaranteed to match the PR number: e77e67b
- You must now specify
- Improvements to commands involving remote names and bookmarks:
- SCP-style URIs (such as
git@github.com:git/git-reference
) are now supported for remote names: 67fa848 sl clone --git <URL> --updaterev <branch/commit>
can now be used to clone a specific branch or commit: 9804c66sl rebase -b
was reworked for better selecting branching points by avoiding public commits (reverse rebase now works): 96b767esl bookmark --remote
can be used to list remote branches. Further,sl bookmark --remote-path myfork --remote tags
will list tags from remotemyfork
:- e8f57d7
- SCP-style URIs (such as
- It is now possible to specify the Git committer for newly created commit objects by specifying the
git.committer
config option when running a command. For example,sl --config git.committer="User <user@example.com>" amend
would update the committer for the current commit toUser <user@example.com>
. Though note that ifgit.committer
is not set, the value defaults to theui.username
config. This means thatsl metaedit --user IDENTITY
will not update the committer toIDENTITY
if thegit.committer
config is not set, butsl metaedit --config ui.username=IDENTITY --user IDENTITY
would. See 7f88efd for details. - Removed a dependency on
gdbm
in the Python code, that was causing crashes for some users: cfbb6a2