Re: [PATCH] Make sure the diff machinery outputs \ No newline ... in english
On Mon, 5 Sep 2005, Linus Torvalds wrote: On Mon, 5 Sep 2005, Fredrik Kuivinen wrote: After a quick look through the diff source I didn't find anything else. It's quite possible that I haved missed something though. Most of the translated messages are related to error reporting, which I guess might be nice to have in the user specified language. Is it possible that we could integrate the diff algorithm into git, and get rid of the dependency on an external GNU diff? It would also make the portability problems go away (ie old diff's being broken). It would also potentially speed up the normal built-in diff a lot, since we wouldn't have to execute a whole other program to generate a diff, just call a helper function the way we do for xdiff.. Unreasonable? The algorithm actually used by GNU diff is pretty complicated, and I don't really understand the actual implementation, which evidentally has a few important refinements over the original paper. I've written my own diff, mainly to try a different algorithm, and it seems to work, but the code isn't yet appropriate to submit. This algorithm also has the advantage that it can identify moved sections and is less interested in interleaving a removed function with a new function to provide the shortest possible diff. I expect that I could get it to work if I put in a day on it; it's mostly writing a hashtable implementation for non-NULL-terminated string-keyed hash tables. -Daniel *This .sig left intentionally blank* - To unsubscribe from this list: send the line unsubscribe git in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Make sure the diff machinery outputs \ No newline ... in english
On Sun, Sep 04, 2005 at 11:48:08AM -0700, Junio C Hamano wrote: Fredrik Kuivinen [EMAIL PROTECTED] writes: In non-english locales diff(1) do sometimes output \ No newline at end of file in some other language. Set LC_ALL to C before execing diff to avoid this behaviour. Signed-off-by: Fredrik Kuivinen [EMAIL PROTECTED] I was thinking about this when I was examining your other patch. What else, other than the incomplete line marker (and timestamp output it uses by default, which we disable by passing explicit -L flags), are affected by locale in diff output? After a quick look through the diff source I didn't find anything else. It's quite possible that I haved missed something though. Most of the translated messages are related to error reporting, which I guess might be nice to have in the user specified language. Especially, if the diff output is more readable for human consumers (i.e. reviewers) without making it harder to use to machine consumers (i.e. patch or git-apply) when generated under a locale that is 'native' to the data, this patch robs from users the possibility of doing so. IOW, in a Swedes-only project that tracks a document in Swedish, it _might_ be friendlier and more useful to the users if allowed generating diffs under sv_SE locale, as long as such a diff does not make the processing by patch and git-apply more difficult (which your other patch already solved for git-apply). I agree that it's kind of evil to remove the option of generating the output in some other language. Another possibility is to set LC_MESSAGES to C instead. If we go this way the user can override it by setting LC_ALL. The difference is that in most configurations the user has to make an active choice to get the 'native' language output and english will be the default. - Fredrik - To unsubscribe from this list: send the line unsubscribe git in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] Make sure the diff machinery outputs \ No newline ... in english
In non-english locales diff(1) do sometimes output \ No newline at end of file in some other language. Set LC_ALL to C before execing diff to avoid this behaviour. Signed-off-by: Fredrik Kuivinen [EMAIL PROTECTED] --- diff.c |1 + 1 files changed, 1 insertions(+), 0 deletions(-) eb6261334d65c3134d9dd822fd64e33ed8ad2dfc diff --git a/diff.c b/diff.c --- a/diff.c +++ b/diff.c @@ -207,6 +207,7 @@ static void builtin_diff(const char *nam } } fflush(NULL); + putenv(LC_ALL=C); execlp(/bin/sh,sh, -c, cmd, NULL); } - To unsubscribe from this list: send the line unsubscribe git in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] Make sure the diff machinery outputs \ No newline ... in english
Fredrik Kuivinen [EMAIL PROTECTED] writes: In non-english locales diff(1) do sometimes output \ No newline at end of file in some other language. Set LC_ALL to C before execing diff to avoid this behaviour. Signed-off-by: Fredrik Kuivinen [EMAIL PROTECTED] I was thinking about this when I was examining your other patch. What else, other than the incomplete line marker (and timestamp output it uses by default, which we disable by passing explicit -L flags), are affected by locale in diff output? Especially, if the diff output is more readable for human consumers (i.e. reviewers) without making it harder to use to machine consumers (i.e. patch or git-apply) when generated under a locale that is 'native' to the data, this patch robs from users the possibility of doing so. IOW, in a Swedes-only project that tracks a document in Swedish, it _might_ be friendlier and more useful to the users if allowed generating diffs under sv_SE locale, as long as such a diff does not make the processing by patch and git-apply more difficult (which your other patch already solved for git-apply). - To unsubscribe from this list: send the line unsubscribe git in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html