Commit Briefs

14dab6fc9f Thomas Adam

bump version number


2ee2b2692e Thomas Adam

CHANGES for 0.92


2becf66303 Thomas Adam

sync files from diff.git dc306c6bd88271ab911e205539974da98be82d17

This restores the traditional diff -p behaviour in Got.


484d974bd6 Thomas Adam

prevent overlapping repo and work tree in 'got checkout'

Some people are eager to try to make Got work just like Git by overlaying the repository and work tree. This causes problems with unveil conflicts at run-time. Fail as early as possible during 'got checkout' when users attempt this. cosmetic tweaks + ok op@


ce775af4ec Thomas Adam

add a test case which removes a missing locally-added file

Based on a patch by gonzalo@ ok op@


97f9158ff1 Thomas Adam

fix deletion of missing locally-added files

If a locally added file in A status gets deleted from disk it will move into missing ! status. If the user then decides to delete the file we must remove the file index entry immediately rather than flagging the file for removal during the next commit operation. The file was never committed and lacks a base-blob and base-commit, so it cannot be removed during the next commit. As a result the commit operation was reporting a bogus "out of date" error. Found while diagnosing a related bug reported by gonzalo@ ok op@


720b08bca9 Thomas Adam

prevent a double-free in got_worktree_commit

If creating the /tmp display diff for a commitable item failed we would free the commitable item while it was already on the path list. Later on when the path list was freed in got_worktree_commit() a double-free would be detected and the program would be aborted. Found by gonzalo@ ok op@


c8b73ac166 Thomas Adam

make gotd flush pending messages before disconnecting the client upon success

This prevents gotd from closing the client connection before ref-update status reports have been sent. Seen while testing gotd on Linux, though I see no obvious reason why this race would not trigger on OpenBSD.


7477a2d224 Thomas Adam

plug line_offsets leak in tog blame view; ok op@


9403b6951f Thomas Adam

tog: don't show the base commit marker in limit view

The limit commit queue is invariably filled with different commits to the queue containing all commits, so the index of the work tree's base commit in the real queue corresponds to a different commit in the limit queue. As such, the marker is drawn on an incorrect commit. Rather than fix this to draw the marker on the correct commit if it happens to be in the limit queue, don't draw the marker at all in limit view. As pointed out by Mikhail on the list, this information is not wanted in the limit view. Patch and report by Mikhail.


d95d69074c Thomas Adam

gotsh: do not set POLLOUT flag when there is no data to send

Prevent an endless polling loop on Linux where POLLOUT and POLLHUP can both be reported via pollfd revents.


d3f5ca65eb Thomas Adam

don't include sys/cdefs.h

"thou shalt not include sys/cdefs.h because it is not standardized", and in this case is not really needed either.


ba133bf369 Thomas Adam

document that the log -d option implies log -P

We did consider making -d and -P options conflict but doing so would not be very helpful. Instead, document -d as a superset of -P. ok op, jamsek



b38bef130a Thomas Adam

gotwebd: fix branches modification time with show_repo_age off

If show_repo_age is set to off, got_get_repo_age() returns without setting the timestamp. got_get_repo_age() is also used by the branch listing to show how old they are however, and we end up rendering the stack garbage. Instead, respect `show_repo_age off' one layer above, and always return a timestamp in got_get_repo_age(). While here, initialize the timestamp to zero so it's set also in case of failures. Issue reported on IRC by xs, thanks!


49dff0bd5f Thomas Adam

tog: fix log view search infinite loop

When the current matched and selected entry is the last loaded commit, we keep looping the same code path because search_entry is always NULL. Before poking the log thread for more commits, set search_entry to the currently selected commit, which is where the search resumes. Patch by Mikhail



947f374dd4 Thomas Adam

got: regress for log -x keyword and log -dPp combinations

Plus multiple copypasta fixes where I was cmp(1)ing stdout instead of stderr! Fortunately, we were doing the right thing despite not checking it properly. The log -dPp test is from op@. ok + tweaks op@


308ce28964 Thomas Adam

fix 'got log -dPp' diffstat duplication bug

Only collect changed paths once if both -d and -P are specified; we already checked for -d and -p. Reported by Lucas on IRC. Regress for this and the previous (got log -x keyword) commit still due. ok stsp@ and op@


ef1538260f Thomas Adam

got: allow 'got log -x' to accept keywords

Suggested by Lucas on IRC. ok stsp@ and op@


c060419155 Thomas Adam

bump the deltify table resize step

By incrementing the resize step from 64 to 256 deltifying takes less time on modestly sized files; the resize is still a small number instead of a fraction of the current table size (which would be more usual for a hash table) since this code is also used in gotd. ok stsp


fff2d77497 Thomas Adam

use INT32_MAX rather than INT_MAX for GOT_FILEIDX_MAX_ENTRIES

it's a different way to spell the same number, but it's more evocative since the on-disk format is 32 bits wide. ok stsp


dcc9ed6346 Thomas Adam

speed up read_fileindex_path()

Use a local buffer instead of calling reallocarray() every 8 bytes; the speed up is measurable. The downside is that we're now limited to paths long at most PATH_MAX bytes, but since this is the fileindex it's not an issue in practice. ok jamsek stsp


ecd443d247 Thomas Adam

zap unused got_commit_object var; ok op@


4c3671a956 Thomas Adam

allow modified files to be deleted during merges if content exists in the repo

This makes histedit folding work when a file is modified by commit A and then deleted in commit B, with A being folded into B. Problem reported by naddy@