Re: [PATCH v1] convert: add "status=delayed" to filter process protocol
- From
Torsten Bögershausen <tboegi@web.de>
- Date
- Jan 8, 2017, 20:14 UTC
- Message-ID
- <20170108201415.GA3569@tb-raspi>
- In-Reply-To
- <20170108191736.47359-1-larsxschneider@gmail.com>
On Sun, Jan 08, 2017 at 08:17:36PM +0100, larsxschneider@gmail.com wrote:
Show 18 quoted lines
> From: Lars Schneider <larsxschneider@gmail.com> > > Some `clean` / `smudge` filters might require a significant amount of > time to process a single blob. During this process the Git checkout > operation is blocked and Git needs to wait until the filter is done to > continue with the checkout. > > Teach the filter process protocol (introduced in edcc858) to accept the > status "delayed" as response to a filter request. Upon this response Git > continues with the checkout operation and asks the filter to process the > blob again after all other blobs have been processed. > > Git has a multiple code paths that checkout a blob. Support delayed > checkouts only in `clone` (in unpack-trees.c) and `checkout` operations. > > Signed-off-by: Lars Schneider <larsxschneider@gmail.com> > --- >
Some feeling tells me that it may be better to leave convert_to_working_tree() as it is. And change convert_to_working_tree_internal as suggested:
int convert_to_working_tree(const char *path, const char *src, size_t len, struct strbuf *dst)
{
- return convert_to_working_tree_internal(path, src, len, dst, 0);
+ return convert_to_working_tree_internal(path, src, len, dst, NULL, 0);
}