public inbox for nncp-devel@lists.cypherpunks.ru
Atom feed
From: John Goerzen <jgoerzen@complete•org>
To: Sergey Matveev <stargrave@stargrave•org>
Cc: nncp-devel@lists.cypherpunks.ru
Subject: Re: Announcing gitsync-nncp
Date: Fri, 20 Aug 2021 07:53:50 -0500	[thread overview]
Message-ID: <87sfz4e0pt.fsf@complete.org> (raw)
In-Reply-To: <YR+G3DmkqCLZUosR@stargrave.org>


On Fri, Aug 20 2021, Sergey Matveev wrote:

> Greetings!
>
> *** John Goerzen [2021-08-18 11:16]:
>>https://github.com/jgoerzen/gitsync-nncp
>
> Impressive! My appreciation!
>
> Just out of curiosity, possibly I read badly and too quickly, 
> possibly I
> am not taking in account something, or forget how git works, 
> but: each
> remote gitsync-accessible repository is "identified" only by a 
> single
> branch in your scheme. Can remote/branch be used instead of a 
> single
> branch? Instead of "gitsync-nncp/bob" branch, can there be used
> "gitsync-bob" git-remote with possibly several branches in it 
> instead
> (and dummy send/fetch URLs)? Git-remote can be considered as a 
> some kind
> of a namespace/aggregation of branches (plus some URLs/rules 
> where to
> push/fetch it) in my opinion. Or using "git remotes" abstraction 
> brings
> more problems and complications? But you won't be limited to the 
> single branch.

You are quite right.  Actually Joey Hess (author of git-annex) 
pointed out that git has an entire interface for defining custom 
remotes, at https://www.git-scm.com/docs/gitremote-helpers , 
though it doesn't look to be async-friendly initially.

I just didn't implement all of that because of the complexity, and 
I guess because I didn't need it.  The guts of this thing is about 
160 lines of code and I wanted it to be a simple-ish demonstration 
of using NNCP for a really neat purpose, something that's 
difficult to achieve otherwise.  I initially considered writing 
the thing in Rust and using https://crates.io/crates/git2 , which 
definitely has a number of advantages and would be more suitable 
once we start talking about these more complex kinds of 
scenarios... but 160 lines of code beckoned and I am using it 
quite happily for my own use case already.  I may yet redo it in 
Rust for these sorts of things; I do feel that I'm sort of pushing 
the shell to about the limits of how far it should reasonably go 
already.

- John

      reply	other threads:[~2021-08-20 12:55 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-18 16:16 Announcing gitsync-nncp John Goerzen
2021-08-18 19:49 ` Jonathan Lane
2021-08-18 20:19   ` John Goerzen
2021-08-20 10:41 ` Sergey Matveev
2021-08-20 12:53   ` John Goerzen [this message]