Commits


fix some integers that had a slightly wrong type; patch by Omar Polo


add 'static' qualifier to local functions in got-read-pack; patch by Omar Polo


mark some function parameters as 'const', as they should be; patch by Omar Polo


fix 'got update' of an added + obstructed file When 'got update' tried to add a new file to the work tree and this file was obstructed by, say, a directory on disk, the update failed: $ got update ? new got: new: Is a directory $ And the work tree was not updated. With this commit this situation is properly detected as an obstruction and the update succeeds: $ got update ~ new Updated to refs/heads/master: c1f85b4938dc4c668a88f13df2b98a520fc077cc File paths obstructed by a non-regular file: 1 $ Extend a corresponding test case to cover this issue. ok tracey


stop using the term 'obstructed' ambiguously in the got.1 man page Specifically, obstructed files are versioned files which should be on disk but have been replaced on disk by a non-regular file (e.g. by a directory). The man page used the phrase "deletion was obstructed" which is unrelated to the above concept and can be expressed as "deletion was prevented" instead.


stop caring about obstructed versioned files in 'got merge' Tyring to write a test to cover this case I found that obstructed files are (correctly) detected as local modifications in the work tree. Thus they trigger the pre-condition check for local modications and 'got merge' will not even start to do any work in the presence of obstructed files.


plug memory leak in got_worktree_merge_in_progress(); spotted by tracey


add a test for 'got merge' which covers a no-op merge situation


add a 'got merge' command for creating merge commits Additional testing by Thomas Adam. ok tracey


show parent commit IDs of merge commits in the tog diff view ok tracey


update TODO note about HTTP; libtls will more likely be used from dial.c


fix 'got send' with tree objects which contain symlinks; reported by Omar


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.


update README blurb about 'ssh 127.0.0.1' requirement for regress tests


tog: use sched_yield(2) instead of pthread_yield(3) for portability pthread_yield(3) is an optional POSIX 2001 extension while sched_yield(2) is part of POSIX 2008. On OpenBSD they are actually equivalent, albeit not documented as such. Using sched_yield(2) helps the -portable version. Patch by Quentin Rameau


tog: document why _XOPEN_SOURCE_EXTENDED is set and don't undefine it


'got status' does not have a -q option; remove it from got.1 synopsis


add -S option to 'got status' synopsis in got.1 man page


bump version number


CHANGES for 0.60


shell code fixes Escape sequences are not handled by every echo(1), e.g. not on FreeBSD. '?' is a glob character and must be quoted. '!' is not a shell meta character. ok tracey stsp


make 'got send' regression tests run 'git fsck' on all involved repositories


fix another instance of 'got send' sending branches the server already has


bump version number


CHANGES for 0.59