Commit Briefs

Thomas Adam

regress: consistently use ed -s

didn't know about -s when writing those tests; saves some output redirection. ok jamsek


Thomas Adam

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@


Thomas Adam

reset committer during rebase and histedit

ok op@



Thomas Adam

histedit: make sure mesg is only used after pick or edit

It doesn't really make sense to use mesg after a fold or drop, or after another mesg. it currently "works" as intended, but the behaviour is confusing and not useful, better abort the operation as it's probably not what the user intended. Suggested by and ok stsp@


Thomas Adam

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.



Thomas Adam

regress: provide a sed wrapper

In order to portably handle the difference in how 'sed -i' works between *BSD and Linux, provide a wrapper to invoke the underying system sed(1) based on which OSTYPE is in use.


Thomas Adam

regress: use gdate/gln if on *BSD

To minimise the amount of churn between the difference in date(1) and ln(n) semantics, use gdate and gln from coreutils.


Thomas Adam

add test for merge result when lines are inserted at the top of a file

Based on a patch by Omar Polo




Thomas Adam

regress: fix test failures using date(1)

This patch fixes test failures related the date(1) utility. In the long term we could add a wrapper function to detect valid options for date(1) and use the variant which works on the current OS. For now, this makes some tests pass and shows us where the problems are. OK thomas.adam


Stefan Sperling

fix histedit_no_op test which was failing randomly

A no-op replayed history ends up having exactly the same commit IDs if all commits are created at roughly the same moment in time. There are no content changes involved so if commit timestamps do not differ then commit hashes will be the same. In which case there is no fork in history for 'got histedit -l' to display, yet the test was always expecting a fork in history to be displayed. Update the test to take this issue into account. The test will now pass no matter which result is produced by the histedit operation. Problem found by Lucas who observed that this test was randomly failing. Patch also provided by Lucas.




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

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



Stefan Sperling

implicitly mark all files in work tree as up-to-date after rebase/histedit

This should always be correct, since rebase and histedit start out with a clean and single-base-commit worktree, and end up committing all changes across the entire work tree when they are successful. tested by jrick and myself



Stefan Sperling

add a basic test case for histedit -f



Stefan Sperling

make 'got histedit' collapse folded add+delete operations into a no-op

If a merged commit wants to delete a locally added file, and this locally added file matches the content which was deleted in the commit being merged, we can go ahead with the deletion because there is no risk of data loss. fixes the histedit problem reported by jrick on freenode