Commits


make it possible to profile gotweb; tracey had the same diff


unveil gmon.out if gotweb is being profiled ok tracey


use socketpair(2) instead of pipe(2) for bi-directional communication On Linux, pipes returned from pipe(2) only work in one direction. This broke 'got clone' over ssh in the -portable version because got-fetch-pack assumes it can use its fetchfd for both reading and writing. I wrote a complicated diff to use two pipe(2) calls instead of one, but millert suggested a simpler solution: Use socketpair(2) instead of pipe(2). ok millert jrick tracey


fix hang in commit regress test. ok stsp


use Patience diff for merging during cherrypick/backout/histedit/rebase This has been shown to prevent mis-merges in some cases. It's probably not a final solution. We should look at what Git's "recursive merge" is doing and implement something similar. Keep using Myers during update/unstage. The advantage of Myers is that it produces smaller conflict chunks, and there are no known cases of mis-merges which affect update/unstage.


check for close(2) error in got_repo_close() and propagate errors up ok tracey


close all opened repo->gitdir_fd's and set open_repo static. ok naddy (with static change)


in addblk(), only read data into buffer1 if we will compare it to buffer2 suggested by and ok naddy@


addblk() may seek in its input file; reposition the file pointer afterwards


addblk: iterate over the correct number of entries after growing the array ok naddy


addblk: be more careful about expanding the blocks array when we outgrow it fixes + ok naddy


check a block's hash as well as its length before expensive comparisons suggested by + ok naddy, and Ori agrees


remove stray debug print which was accidentally committed


avoid uninitialized error being returned from got_repo_get_packfile_info()


simplify deflate checksumming code; fixes errors with upcoming 'gotadmin pack' tweak + ok naddy


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.


switch merge_file_cb() to using merge_file() instead of merge_blob()


decouple merge_file() parameters for 2nd derived version and merge target file


in merge_file(), remove allocation of a base_path which is unused


move merge_file()'s f_deriv parameter next to the f_orig parameter


make merge_file() accept FILEs instead of paths for orig and deriv inputs


refactor merge_file() such that it no longer requires a blob object parameter


add an xfail test for a cherrypick bug where unrelated changes get merged The test case I am using here is a bit large but I could not yet find a way to make it smaller. If someone knows a smaller test case, please let me know. naddy caught a small bug in the new test code I had written, thanks!


dial_git(): fix memory leak and simplify Simplify dial_git() by formatting the initial Git protocol packet with dprintf, suggested by millert, and stop leaking an asprintf buffer. ok stsp


validate reference names in open_ref() This catches invalid reference names passed to 'got ref -l' and will also be needed to validate reference names passed to a future 'gotadmin pack' command. ok naddy@