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 prcommand:- You must now specify
sl pr submitexplicitly:submitis no longer the default subcommand forsl pr, butscan be used as an alias forsubmit: 56b5e3e - The
sl pr submitcommand now supports a--draftflag: 6e9c3d7 - New
sl pr pullsubcommand: if you usesl pr submitto create a stack of pull requests, now you can usesl pr pullto import the stack back into your working copy: d09d598 - New
sl pr listsubcommand 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 submitnow 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 submitis 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 -bwas reworked for better selecting branching points by avoiding public commits (reverse rebase now works): 96b767esl bookmark --remotecan be used to list remote branches. Further,sl bookmark --remote-path myfork --remote tagswill 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.committerconfig option when running a command. For example,sl --config git.committer="User <user@example.com>" amendwould update the committer for the current commit toUser <user@example.com>. Though note that ifgit.committeris not set, the value defaults to theui.usernameconfig. This means thatsl metaedit --user IDENTITYwill not update the committer toIDENTITYif thegit.committerconfig is not set, butsl metaedit --config ui.username=IDENTITY --user IDENTITYwould. See 7f88efd for details. - Removed a dependency on
gdbmin the Python code, that was causing crashes for some users: cfbb6a2