* Non-http dumb protocols
@ 2007-06-30 20:19 Daniel Barkalow
2007-07-01 2:58 ` Junio C Hamano
0 siblings, 1 reply; 6+ messages in thread
From: Daniel Barkalow @ 2007-06-30 20:19 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano
Do we actually support local-fetch and ssh-fetch/ssh-push any more? They
seem to me to have been entirely supplanted with respect to functionality
for a long time now, but the programs are still there. This complicates
http-fetch, because only one -fetch can be linked into a binary as
currently designed, and we may want to make http-fetch builtin at some
point. Can we remove the other dumb protocols and merge fetch.c into
http-fetch.c?
-Daniel
*This .sig left intentionally blank*
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Non-http dumb protocols
2007-06-30 20:19 Non-http dumb protocols Daniel Barkalow
@ 2007-07-01 2:58 ` Junio C Hamano
2007-07-01 5:48 ` Julian Phillips
2007-07-01 14:32 ` Johannes Schindelin
0 siblings, 2 replies; 6+ messages in thread
From: Junio C Hamano @ 2007-07-01 2:58 UTC (permalink / raw)
To: Daniel Barkalow; +Cc: git
Daniel Barkalow <barkalow@iabervon.org> writes:
> Do we actually support local-fetch and ssh-fetch/ssh-push any more? They
> seem to me to have been entirely supplanted with respect to functionality
> for a long time now, but the programs are still there. This complicates
> http-fetch, because only one -fetch can be linked into a binary as
> currently designed, and we may want to make http-fetch builtin at some
> point. Can we remove the other dumb protocols and merge fetch.c into
> http-fetch.c?
I have a feeling that nobody uses commit walkers other than
http. I do not see a point in ssh-fetch/push (we said it is
deprecated long time ago, and I was just too lazy to propose and
actually remove it when I did 1.5.2). local-fetch _might_ be
useful as a debugging tool when you have trouble not related to
libcurl in http-fetch, but other than that I do not see a point
to it either.
I am personally Ok with removing them on the sole basis of "they
are practically disused"; but there may be people on the list
with different opinions (at least here, they are not stupid nor
ugly).
However, from "technical" point of view, I do not think the
commit walker framework "fetch.c" is beyond salvaging, as you
make it sound, to make it a built-in. The commit walker
framework was your work IIRC, so this may be preaching to the
choir, but my understanding is that it wants the following
functions defined in the transport backend module:
extern int fetch(unsigned char *sha1);
extern void prefetch(unsigned char *sha1);
extern int fetch_ref(char *ref, unsigned char *sha1);
and exports the following symbols to be set:
extern int get_tree;
extern int get_history;
extern int get_all;
extern int get_verbosely;
extern int get_recover;
I think you could define
struct fetch_backend {
int (*fetch_fn)(const unsigned char *);
void (*prefetch_fn)(const unsigned char *);
int (*fetch_ref_fn)(const char *, const unsigned char *);
int get_tree;
int get_history;
int get_all;
int get_verbosely;
int get_recover;
};
and have the backend "main()" pass a pointer to it to functions
pull(), pull_targets_stdin() and such, that are defined in
fetch.c. That way, you can have multiple backend linked in.
To be linked with the rest of git, I think the global symbols
fetch.c has are named a little too generically, and they would
need to be fixed first. It may make sense to do the "backend
descriptor" code restructure first _before_ linking anything
with the rest of git. We can rename main() in *-fetch.c to
cmd_*_fetch() only for the ones that we choose to make built-in
when the conversion is ready.
Having said that, I have a feeling that many people do not build
any of the commit walkers, and especially the http walker,
because they have no need for dumb protocols, and libcurl-dev is
just another piece of dependency they do not have to have. If
we were to do a built-in http-fetch, we also need to make sure
it is done in such a way that people can choose to configure it
out.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Non-http dumb protocols
2007-07-01 2:58 ` Junio C Hamano
@ 2007-07-01 5:48 ` Julian Phillips
2007-07-01 14:32 ` Johannes Schindelin
1 sibling, 0 replies; 6+ messages in thread
From: Julian Phillips @ 2007-07-01 5:48 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Daniel Barkalow, git
On Sat, 30 Jun 2007, Junio C Hamano wrote:
> Daniel Barkalow <barkalow@iabervon.org> writes:
>
>> Do we actually support local-fetch and ssh-fetch/ssh-push any more? They
>> seem to me to have been entirely supplanted with respect to functionality
>> for a long time now, but the programs are still there. This complicates
>> http-fetch, because only one -fetch can be linked into a binary as
>> currently designed, and we may want to make http-fetch builtin at some
>> point. Can we remove the other dumb protocols and merge fetch.c into
>> http-fetch.c?
> To be linked with the rest of git, I think the global symbols
> fetch.c has are named a little too generically, and they would
> need to be fixed first. It may make sense to do the "backend
> descriptor" code restructure first _before_ linking anything
> with the rest of git. We can rename main() in *-fetch.c to
> cmd_*_fetch() only for the ones that we choose to make built-in
> when the conversion is ready.
>
> Having said that, I have a feeling that many people do not build
> any of the commit walkers, and especially the http walker,
> because they have no need for dumb protocols, and libcurl-dev is
> just another piece of dependency they do not have to have. If
> we were to do a built-in http-fetch, we also need to make sure
> it is done in such a way that people can choose to configure it
> out.
As part of making fetch a builtin, I also made http-fetch a builtin so
that I reuse some of the code. When I did this it kept the same optional
build status as the original separate program. Since Daniel based his
work on mine, he should have this change too ... however I didn't do any
renaming of symbols in builtin-http-fetch.c other than the minimum
necessary to make it a builtin.
--
Julian
---
Taxes are going up so fast, the government is likely to price itself
out of the market.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Non-http dumb protocols
2007-07-01 2:58 ` Junio C Hamano
2007-07-01 5:48 ` Julian Phillips
@ 2007-07-01 14:32 ` Johannes Schindelin
2007-07-01 18:47 ` Daniel Barkalow
1 sibling, 1 reply; 6+ messages in thread
From: Johannes Schindelin @ 2007-07-01 14:32 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Daniel Barkalow, git
Hi,
On Sat, 30 Jun 2007, Junio C Hamano wrote:
> Having said that, I have a feeling that many people do not build
> any of the commit walkers, and especially the http walker,
> because they have no need for dumb protocols, and libcurl-dev is
> just another piece of dependency they do not have to have.
Interestingly, I just was involved in a discussion on IRC, where somebody
(out of quotat concerns) wants to use sftp to push to a bare repository,
which is served via HTTP.
Unfortunately, it seems that all persons wanting to have some support for
that, expect others to do the work for them.
However, there is a miniscule non-zero chance that eventually somebody
might want to realise an sftp push protocol (where you basically need the
ls-remote part of the fetcher, too, to determine what to pack and send).
And to complete a dumb sftp fetch protocol, you'd need a commit walker,
so I'd like to have at least a minimal interface for commit walkers
waiting for that saviour.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Non-http dumb protocols
2007-07-01 14:32 ` Johannes Schindelin
@ 2007-07-01 18:47 ` Daniel Barkalow
2007-07-01 20:53 ` Johannes Schindelin
0 siblings, 1 reply; 6+ messages in thread
From: Daniel Barkalow @ 2007-07-01 18:47 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Junio C Hamano, git
On Sun, 1 Jul 2007, Johannes Schindelin wrote:
> Hi,
>
> On Sat, 30 Jun 2007, Junio C Hamano wrote:
>
> > Having said that, I have a feeling that many people do not build
> > any of the commit walkers, and especially the http walker,
> > because they have no need for dumb protocols, and libcurl-dev is
> > just another piece of dependency they do not have to have.
>
> Interestingly, I just was involved in a discussion on IRC, where somebody
> (out of quotat concerns) wants to use sftp to push to a bare repository,
> which is served via HTTP.
>
> Unfortunately, it seems that all persons wanting to have some support for
> that, expect others to do the work for them.
>
> However, there is a miniscule non-zero chance that eventually somebody
> might want to realise an sftp push protocol (where you basically need the
> ls-remote part of the fetcher, too, to determine what to pack and send).
> And to complete a dumb sftp fetch protocol, you'd need a commit walker,
> so I'd like to have at least a minimal interface for commit walkers
> waiting for that saviour.
Okay, I think I'll go for ditching ssh-fetch/-push, making the
commit-walker code more modular, and possibly moving more of the smarts of
http-fetch into the common code so that local-fetch is a better test for
it and sftp fetch would be possible.
-Daniel
*This .sig left intentionally blank*
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Non-http dumb protocols
2007-07-01 18:47 ` Daniel Barkalow
@ 2007-07-01 20:53 ` Johannes Schindelin
0 siblings, 0 replies; 6+ messages in thread
From: Johannes Schindelin @ 2007-07-01 20:53 UTC (permalink / raw)
To: Daniel Barkalow; +Cc: Junio C Hamano, git
Hi,
On Sun, 1 Jul 2007, Daniel Barkalow wrote:
> Okay, I think I'll go for ditching ssh-fetch/-push, making the
> commit-walker code more modular, and possibly moving more of the smarts
> of http-fetch into the common code so that local-fetch is a better test
> for it and sftp fetch would be possible.
Thanks,
Dscho
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2007-07-01 20:53 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-30 20:19 Non-http dumb protocols Daniel Barkalow
2007-07-01 2:58 ` Junio C Hamano
2007-07-01 5:48 ` Julian Phillips
2007-07-01 14:32 ` Johannes Schindelin
2007-07-01 18:47 ` Daniel Barkalow
2007-07-01 20:53 ` Johannes Schindelin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).