I'm working on a set of network services using SSH, like SFTP, backup,
fsnotify, (text/video) chat, connection forwarding using my own SSH
implementation. See:
https://github.com/stefbon/OSNS
Now I want to also provide support for browsing remote git
repositories using my ssh libraries, which will provide the transport
layer.
Is it possible to use git in combination with my own libraries? Or do
I have to use libgit2 for that or something else?
Thanks in advance,
Stef Bon
On Fri, Mar 5, 2021 at 12:14 AM Stef Bon [off-list ref] wrote:
I'm working on a set of network services using SSH, like SFTP, backup,
fsnotify, (text/video) chat, connection forwarding using my own SSH
implementation. See:
https://github.com/stefbon/OSNS
Now I want to also provide support for browsing remote git
repositories using my ssh libraries, which will provide the transport
layer.
Git doesn't use any SSH libraries directly, as far as I'm aware. It
forks ssh and that does what it does. Git has an
ssh.variant/GIT_SSH_VARIANT[1] toggle can be used to tell it a bit
about how it should expect ssh to behave so it can assemble the right
command line.
That implies you'd need to use your libraries to build at least a
minimal ssh command you could configure Git to use. GIT_SSH[2] can be
used to tell Git where to find the ssh binary.
Is it possible to use git in combination with my own libraries? Or do
I have to use libgit2 for that or something else?
Thanks in advance,
Stef Bon
Hi Bryan,
thanks for your reaction. Git itself can thus deal with a different
ssh implementation, only I cannot use that for
my fuse fs. I need I library which "talks" git.
What is libgit2 in this context? Is it a library which uses the git
internals, or is git self written in libgit2?
And can I use that to use custom ssh libraries and build a fuse fs with it?
Stef
From: brian m. carlson <hidden> Date: 2021-03-05 21:54:34
On 2021-03-05 at 14:22:42, Stef Bon wrote:
Hi Bryan,
thanks for your reaction. Git itself can thus deal with a different
ssh implementation, only I cannot use that for
my fuse fs. I need I library which "talks" git.
What is libgit2 in this context? Is it a library which uses the git
internals, or is git self written in libgit2?
And can I use that to use custom ssh libraries and build a fuse fs with it?
libgit2 is an independent implementation of Git as a library. Git and
libgit2 generally don't share code, although some code has been copied
from one to the other. It supports SSH using libssh2, although you
could probably patch it to use a different library.
That's the only general purpose C-compatible implementation of Git as a
library that I'm aware of.
--
brian m. carlson (he/him or they/them)
Houston, Texas, US