Commit Briefs

Stefan Sperling

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

reported by naddy


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.


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






Christian Weisgerber

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

ok stsp@



Stefan Sperling

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

ok semarie


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.



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