Commit Briefs

980c6786a4 Stefan Sperling

make 'got rebase' work when the to-be-rebased branch has no parent commit

found by and ok op@, who also provided the test case


49a1ae4b7f Stefan Sperling

fix 'got rebase' not detecting an out-of-date work tree in some cases

ok jamsek, op


b2b3fce13e Omar Polo

respect umask when creating or changing files and directories

This behaviour is already documented in got-worktree(5) but wasn't actually implemented. ok stsp@


2c75f174ea Christian Weisgerber

rebase.sh: remove accidentally included absolute path to "got"



442ede73ea Stefan Sperling

forbid rebase of references outside the refs/heads/ namespace

ok jrick


5e91dae4dd Stefan Sperling

remove trailing whitespace; patch by Josiah Frentsos


1004841d7c Omar Polo

don't undef GOT_AUTHOR in regress

unset only in the subshell so further cose is unaffected. ok stsp@


50e7a649ac Stefan Sperling

do not require local author info during 'got rebase'

My commit to reset committer info during rebase was too strict in some use cases. Even when simply forwarding a branch the rebase operation could now fail if GOT_AUTHOR is not set. To fix this, fall back on existing commiter information if no author is configured. And try to obtain author info from Git config in case GOT_AUTHOR is not set. Problems reported by Mikhail.


598eac4331 Stefan Sperling

reset committer during rebase and histedit

ok op@


67ba616121 Stefan Sperling

leave work tree in a usable state after 'got rebase' fails path-prefix checks

reported by naddy


49c543a6fe Christian Weisgerber

use test(1) -eq and -ne to compare integers, and reduce quoting

This brings the rest of the regression test scripts in line with patch.sh.


3d42b26601 Josh Rickmar

switch branches during noop rebases

Always update to the specified branch even if the branch is already rebased (no commits needed to be rebased, and the branch does not need a fast forward). With the old behavior of erroring and staying on the current branch, I sometimes found myself ignoring the error message, treating it as information and assuming the branch update, and later on committing on top of origin/main instead of the main branch. feedback and ok stsp


41f061b2f4 Stefan Sperling

ignore unversioned files while aborting rebase, histedit, merge or operations

ok jrick





a966211500 Christian Weisgerber

add missing "return 1" to failure handling in the regress scripts

ok stsp@



643b85bcb4 Stefan Sperling

new -X option for removing backups created by got rebase and got histedit

ok semarie


54d5be0776 Stefan Sperling

fix unrelated changes being merged by got cherrypick/backout/rebase/histedit

This was a long-standing and very annoying bug. The two xfail tests in the cherrypick test suite are passing now.



e600f1246e Stefan Sperling

ensure that old commits remain referenced after rebase and histedit

Create automatic "backup" references which ensure that objects from the pre-rebase or pre-histedit state remain in the repository. A new -l option for 'got rebase' and 'got histedit' lists old commits. This makes it easier to recover from botched rebase or histedit operations. Removal of such objects currently requires got ref -d and git-gc. This will be made more convenient in the future. testing and ok jrick