Commit Briefs
make 'got fetch' work with URLs which refer to $HOME via a tilde ~
'got clone' already happens to support such URLs via scp-style syntax: user@127.0.0.1:~/test.git While the clone operation succeded, subsequent fetch operations would raise an error: '/~/test.git' does not appear to be a git repository Make such URLs work when they are read back from got.conf, and also on the clone command line in canonical form: ssh://user@127.0.0.1/~/test.git Not adding a test case because I don't see an easy way to add test coverage for this without spilling test data into home directories or modifying ~/.ssh/ssh_config. Problem found by Jesper Wallin.
Rename got-http helper to got-fetch-http to match naming scheme.
We aren't planning to support sending anyway. ok stsp@
Add initial read-only http fetch support using a got-http helper.
Currently we only support the smart protocol with a limited feature set. ok stsp@ tobhe@
improve execv error message
spotted using -portable on a system without openssh installed. Showing the program we've failed to exec can be handy. ok stsp@
significantly reduce the amount of code linked into gitwrapper
By moving got_serve_parse_command() from lib/serve.c into lib/dial.c as got_dial_parse_command(), we can significantly reduce the amount of symbols gitwrapper depends on indirectly. As a downside, gotsh now needs to link to dial.c. But it only uses the same parsing routine, and any other routines in dial.c would likely cause pledge violations in gotsh if used. No functional change.
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@
add missing freaddrinfo
also spotted by valgrind. ok stsp@
build with -Wwrite-strings
Throwing this into the mix for a while, we can always get rid of it again if it becomes annoying. No objections from stsp@
build with -Wmissing-prototypes
ok stsp@
fix level of indirection
ok stsp
rename got_fetch_parse_uri() to got_dial_parse_uri()
This function is now being used by both 'got fetch' and 'got send' so its former name was misleading.
move duplicated dial_ssh() and dial_git() functions into a common file
These functions are used by 'got send' and 'got fetch' in order to open network connections to a server. Move them into new file lib/dial.c and declare relevant functions in got_dial.h and lib/got_lib_dial.h. No functional change.