From: Steffen Prohaska Date: Tue, 15 Jan 2008 20:52:53 GMT Subject: Re: [PATCH] safecrlf: Add flag to convert_to_git() to disable safecrlf check Message-ID: In-Reply-To: <7vk5mchsct.fsf@gitster.siamese.dyndns.org> On Jan 15, 2008, at 12:58 AM, Junio C Hamano wrote: > Steffen Prohaska writes: > >> We want to verify if an autocrlf conversion is reversible only if >> the converted data is actually written to the repository. Only >> in this case the file would be modified during the next checkout. >> But convert_to_git() is used for some other purposes. >> This commit adds a flag to convert_to_git() that controls if the >> safecrlf check is enabled... > > At first this felt dirty to me as convert_to_git() is not > limited to crlf, but about external vs canonical representation. > The variable name being "checksafe" however makes it much more > palatable. It is clear that it is talking about irreversible > conversion. > > When running diff with a work tree file and the index (or a > named tree), we read the work tree file and run convert_to_git() > on it before comparing it with what we have in the object store > (either index or a named tree). When running apply without > touching the index, we also use convert_to_git() on the work > tree file. The patch file is supposed to record the data in > canonical format, I think. > > Of course, "git add" on the path will warn or fail with your > patch, but we may somehow want to be warned about the breakage > before "git add" on that path triggers it. Perhaps we can have > a separate "check-work-tree" command that iterates over locally > modified work tree files and runs convert_to_git() with checking > enabled. We could certainly have such a command, yet the question remains when to call it. Do you have in mind calling it when we enter the work tree, such that all files in the work tree will always be verified? Running the check once during start up should be sufficient and we could switch it off for the remainder of the execution. We would certainly print all paths with an irreversible conversion and only die() afterwards if requested by core.safecrlf=true. All information would be printed at once in an ordered way. This could be more user friendly than the current approach. I'll work on this. Steffen