Skip to content

Releases: facebook/sapling

0.2.20240219-172743+3e819974

20 Feb 02:59
Compare
Choose a tag to compare

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

16 Jan 21:56
Compare
Choose a tag to compare

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

13 Nov 23:13
Compare
Choose a tag to compare

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

Full Changelog: 0.2.20230523-092610+f12b7eee...0.2.20231113-145254+995db0d6

0.2.20230523-092610+f12b7eee

23 May 16:50
Compare
Choose a tag to compare
  • 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

26 Apr 22:39
Compare
Choose a tag to compare
  • @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

31 Mar 18:25
Compare
Choose a tag to compare

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 for clean command (#575).
  • @steveluscher improved Ubuntu build by including build dependencies (#576, #577).
  • Ctrl+C is now properly handled (1a697a2).

0.2.20230228-144002-h9440b05e

28 Feb 23:07
Compare
Choose a tag to compare

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 with make oss.

0.2.20230124-180750-hf8cd450a

25 Jan 02:34
Compare
Choose a tag to compare

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 with chg (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

24 Jan 21:13
Compare
Choose a tag to compare
Pre-release
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

23 Dec 01:47
Compare
Choose a tag to compare

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 for sl pr, but s can be used as an alias for submit: 56b5e3e
    • The sl pr submit command now supports a --draft flag: 6e9c3d7
    • New sl pr pull subcommand: if you use sl pr submit to create a stack of pull requests, now you can use sl pr pull to import the stack back into your working copy: d09d598
    • New sl pr list subcommand that mirrors the functionality of gh 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
  • 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: 9804c66
    • sl rebase -b was reworked for better selecting branching points by avoiding public commits (reverse rebase now works): 96b767e
    • sl bookmark --remote can be used to list remote branches. Further, sl bookmark --remote-path myfork --remote tags will list tags from remote myfork:
    • e8f57d7
  • 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 to User <user@example.com>. Though note that if git.committer is not set, the value defaults to the ui.username config. This means that sl metaedit --user IDENTITY will not update the committer to IDENTITY if the git.committer config is not set, but sl 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