Commit Briefs
gotwebd: don't special case BLOB, BLOBRAW and RSS
shuffle some code to handle all the page types in the switch. ok tracey@
avoid gitwrapper printing a warning when /etc/gotd.conf does not exist
gotd still requires the config file, of course, but gitwrapper must treat is as optional and remain silent if the file cannot be found.
gitwrapper: execl() directly without fork()ing
Since we're going to unconditionally execute gotsh or git-*-pack, don't bother fork()ing and having the main process to wait(2), just execle()! ok stsp@
some formatting fixes for gitwrapper.1
- new sentence, new line - use Pa where needed - move ENVIRONMENT before FILES
add gitwrapper(1)
ok op@, tracey@ earlier version
gotwebd: provide gotweb_render_page() entrypoint for all pages
simplify gotweb_process_request more, handling all the pages inside the big switch. There's only one entrypoint for rendering the templates gotweb_render_page() that takes the page' content as argument. The only real difference is that gotweb_render_index() now skips directory entries which fails to handle. ok tracey@
handle files changing into directories during 'got update'
problem found by naddy@
gotwebd: handle short reads and timeouts
If a short read happens, or if all the fastcgi record to read don't fit in the buffer, gotwebd fails to continue reading and hits the timeout. If this happens before gotweb_process_request is called, it will crash in gotweb_free_transport since c->t will be NULL. This register the event with EV_PERSIST so fcgi_request is called again when there's more to read and guards gotweb_free_transport. It also makes spaces for the records as soon as they're successfully parsed. With lots of help from stsp ok stsp@
dial: fix quoting for git-shell
Escape the path to the repository when connecting via SSH. This is needed if the path contains spaces, quotes or other "funny" characters, but also by git-shell which requires the argument to be surrounded by single-quote characters. Issue with git-shell reported by James Cook, fix based on an initial diff by stsp@. ok stsp@
make diffing files which changed into dirs and vice-versa possible
Problem marked with a TODO comment by me ages ago and rediscovered by naddy@ ok op@
clone.sh: fix copy-paste error
`got log' is ran twice against $testroot/repo so log-repo and log-repo-clone are identical. Instead, run `got log' on the clone repo the second time. ok stsp@
support histedit fold operations which delete a file and then add it again
problem found by naddy@ ok op@
fix gotd sending too large pack files in some cases
Make gotsh pass all have-lines sent by clients onwards to gotd, reducing size of pack files generated by the repo_read process. Problem reported by naddy@ ok jamsek
Close the message template file before calling edit_logmsg().
Fixes a race condition on NFS where the file's modify time may change while the file is being edited, causing the editor to complain. OK stsp