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 -c 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