Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-29 Thread Junio C Hamano
Junio C Hamano writes: > If you are depending on a single topic in 'next', it is better to > build on the tip of that topic, not on 'next', if you can figure out > where the tip is. In practice, while we are exchanging patches via > e-mail, there should be no noticeable

Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-29 Thread Junio C Hamano
Lars Schneider writes: >> That's right. There might be some code sharing opportunity with Ben's >> code that is already in "next": >> https://github.com/git/git/blob/next/convert.c#L660-L677 >> >> Would it be useful for you if I send v5 with the changes rebased >>

Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-29 Thread Lars Schneider
> On 23 May 2017, at 10:43, Lars Schneider wrote: > > >> On 23 May 2017, at 07:22, Junio C Hamano wrote: >> >> Lars Schneider writes: >> > + sigchain_pop(SIGPIPE); > + > + if (err || errno == EPIPE) {

Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-23 Thread Lars Schneider
> On 23 May 2017, at 07:22, Junio C Hamano wrote: > > Lars Schneider writes: > + sigchain_pop(SIGPIPE); + + if (err || errno == EPIPE) { >>> >>> This looks strange, at first glance. >>> Do we set errno to 0 before ? >>> Or is

Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-22 Thread Junio C Hamano
Lars Schneider writes: >>> + sigchain_pop(SIGPIPE); >>> + >>> + if (err || errno == EPIPE) { >> >> This looks strange, at first glance. >> Do we set errno to 0 before ? >> Or is there a trick that EPIPE can only be reached, >> if it is "our" error ? > > You are

Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-22 Thread Lars Schneider
> On 22 May 2017, at 21:58, Torsten Bögershausen wrote: > > On 2017-05-22 15:50, Lars Schneider wrote: >> + >> +int async_query_available_blobs(const char *cmd, struct string_list >> *delayed_paths) >> +{ >> +int err; >> +char *line; >> +struct cmd2process *entry; >>

Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-22 Thread Lars Schneider
> On 22 May 2017, at 21:52, Torsten Bögershausen wrote: > > On 2017-05-22 15:50, Lars Schneider wrote: >> +After Git received the pathnames, it will request the corresponding >> +blobs again. These requests contain a pathname and an empty content >> +section. The filter is

Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-22 Thread Torsten Bögershausen
On 2017-05-22 15:50, Lars Schneider wrote: > + > +int async_query_available_blobs(const char *cmd, struct string_list > *delayed_paths) > +{ > + int err; > + char *line; > + struct cmd2process *entry; > + struct child_process *process; > + struct strbuf filter_status =

Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-22 Thread Torsten Bögershausen
On 2017-05-22 15:50, Lars Schneider wrote: > +After Git received the pathnames, it will request the corresponding > +blobs again. These requests contain a pathname and an empty content > +section. The filter is expected to respond with the smudged content > +in the usual way as explained above. >

Re: [PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-22 Thread Taylor Blau
I have no remaining concerns about the protocol specification in terms of implementing a filter with this capability.

[PATCH v4 4/4] convert: add "status=delayed" to filter process protocol

2017-05-22 Thread Lars Schneider
Some `clean` / `smudge` filters might require a significant amount of time to process a single blob (e.g. the Git LFS smudge filter might perform network requests). During this process the Git checkout operation is blocked and Git needs to wait until the filter is done to continue with the