* [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
@ 2008-10-21 20:55 Alexander Gavrilov
2008-10-22 8:20 ` Jeff King
0 siblings, 1 reply; 13+ messages in thread
From: Alexander Gavrilov @ 2008-10-21 20:55 UTC (permalink / raw)
To: git; +Cc: Junio C Hamano
Currently git-blame outputs text from the commit messages
(e.g. the author name and the summary string) as-is, without
even providing any information about the encoding used for
the data. It makes interpreting the data in multilingual
environment very difficult.
This commit changes the blame implementation to recode the
messages using the rules used by other commands like git-log.
Namely, the target encoding can be specified through the
i18n.commitEncoding or i18n.logOutputEncoding options, or
directly on the command line using the --encoding parameter.
Converting the encoding before output seems to be more
friendly to the porcelain tools than simply providing the
value of the encoding header, and does not require changing
the output format.
If anybody needs the old behavior, it is possible to
achieve it by specifying --encoding=none.
Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
---
I intentionally forced binary encoding for files
with the localized strings, to avoid any possible
corruption.
-- Alexander
Documentation/blame-options.txt | 7 +++
Documentation/i18n.txt | 6 +-
builtin-blame.c | 16 +++++--
commit.h | 2 +
pretty.c | 21 ++++++---
t/t8005-blame-i18n.sh | 92 +++++++++++++++++++++++++++++++++++++++
t/t8005/cp1251.txt | Bin 0 -> 68 bytes
t/t8005/sjis.txt | Bin 0 -> 100 bytes
t/t8005/utf8.txt | Bin 0 -> 100 bytes
9 files changed, 130 insertions(+), 14 deletions(-)
create mode 100755 t/t8005-blame-i18n.sh
create mode 100644 t/t8005/cp1251.txt
create mode 100644 t/t8005/sjis.txt
create mode 100644 t/t8005/utf8.txt
diff --git a/Documentation/blame-options.txt b/Documentation/blame-options.txt
index 5428111..1ab1b96 100644
--- a/Documentation/blame-options.txt
+++ b/Documentation/blame-options.txt
@@ -49,6 +49,13 @@ of lines before or after the line given by <start>.
Show the result incrementally in a format designed for
machine consumption.
+--encoding=<encoding>::
+ Specifies the encoding used to output author names
+ and commit summaries. Setting it to `none` makes blame
+ output unconverted data. For more information see the
+ discussion about encoding in the linkgit:git-log[1]
+ manual page.
+
--contents <file>::
When <rev> is not specified, the command annotates the
changes starting backwards from the working tree copy.
diff --git a/Documentation/i18n.txt b/Documentation/i18n.txt
index d2970f8..2cdacd9 100644
--- a/Documentation/i18n.txt
+++ b/Documentation/i18n.txt
@@ -37,9 +37,9 @@ of `i18n.commitencoding` in its `encoding` header. This is to
help other people who look at them later. Lack of this header
implies that the commit log message is encoded in UTF-8.
-. 'git-log', 'git-show' and friends looks at the `encoding`
- header of a commit object, and tries to re-code the log
- message into UTF-8 unless otherwise specified. You can
+. 'git-log', 'git-show', 'git-blame' and friends look at the
+ `encoding` header of a commit object, and try to re-code the
+ log message into UTF-8 unless otherwise specified. You can
specify the desired output encoding with
`i18n.logoutputencoding` in `.git/config` file, like this:
+
diff --git a/builtin-blame.c b/builtin-blame.c
index 48cc0c1..2457e71 100644
--- a/builtin-blame.c
+++ b/builtin-blame.c
@@ -1431,7 +1431,7 @@ static void get_commit_info(struct commit *commit,
int detailed)
{
int len;
- char *tmp, *endp;
+ char *tmp, *endp, *reencoded, *message;
static char author_buf[1024];
static char committer_buf[1024];
static char summary_buf[1024];
@@ -1449,24 +1449,29 @@ static void get_commit_info(struct commit *commit,
die("Cannot read commit %s",
sha1_to_hex(commit->object.sha1));
}
+ reencoded = reencode_commit_message(commit, NULL);
+ message = reencoded ? reencoded : commit->buffer;
ret->author = author_buf;
- get_ac_line(commit->buffer, "\nauthor ",
+ get_ac_line(message, "\nauthor ",
sizeof(author_buf), author_buf, &ret->author_mail,
&ret->author_time, &ret->author_tz);
- if (!detailed)
+ if (!detailed) {
+ free(reencoded);
return;
+ }
ret->committer = committer_buf;
- get_ac_line(commit->buffer, "\ncommitter ",
+ get_ac_line(message, "\ncommitter ",
sizeof(committer_buf), committer_buf, &ret->committer_mail,
&ret->committer_time, &ret->committer_tz);
ret->summary = summary_buf;
- tmp = strstr(commit->buffer, "\n\n");
+ tmp = strstr(message, "\n\n");
if (!tmp) {
error_out:
sprintf(summary_buf, "(%s)", sha1_to_hex(commit->object.sha1));
+ free(reencoded);
return;
}
tmp += 2;
@@ -1478,6 +1483,7 @@ static void get_commit_info(struct commit *commit,
goto error_out;
memcpy(summary_buf, tmp, len);
summary_buf[len] = 0;
+ free(reencoded);
}
/*
diff --git a/commit.h b/commit.h
index 4c05864..3a7b06a 100644
--- a/commit.h
+++ b/commit.h
@@ -65,6 +65,8 @@ enum cmit_fmt {
extern int non_ascii(int);
struct rev_info; /* in revision.h, it circularly uses enum cmit_fmt */
+extern char *reencode_commit_message(const struct commit *commit,
+ const char **encoding_p);
extern void get_commit_format(const char *arg, struct rev_info *);
extern void format_commit_message(const struct commit *commit,
const void *format, struct strbuf *sb,
diff --git a/pretty.c b/pretty.c
index 1e79943..f6ff312 100644
--- a/pretty.c
+++ b/pretty.c
@@ -783,6 +783,20 @@ void pp_remainder(enum cmit_fmt fmt,
}
}
+char *reencode_commit_message(const struct commit *commit, const char **encoding_p)
+{
+ const char *encoding;
+
+ encoding = (git_log_output_encoding
+ ? git_log_output_encoding
+ : git_commit_encoding);
+ if (!encoding)
+ encoding = "utf-8";
+ if (encoding_p)
+ *encoding_p = encoding;
+ return logmsg_reencode(commit, encoding);
+}
+
void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
struct strbuf *sb, int abbrev,
const char *subject, const char *after_subject,
@@ -799,12 +813,7 @@ void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
return;
}
- encoding = (git_log_output_encoding
- ? git_log_output_encoding
- : git_commit_encoding);
- if (!encoding)
- encoding = "utf-8";
- reencoded = logmsg_reencode(commit, encoding);
+ reencoded = reencode_commit_message(commit, &encoding);
if (reencoded) {
msg = reencoded;
}
diff --git a/t/t8005-blame-i18n.sh b/t/t8005-blame-i18n.sh
new file mode 100755
index 0000000..4470a92
--- /dev/null
+++ b/t/t8005-blame-i18n.sh
@@ -0,0 +1,92 @@
+#!/bin/sh
+
+test_description='git blame encoding conversion'
+. ./test-lib.sh
+
+. "$TEST_DIRECTORY"/t8005/utf8.txt
+. "$TEST_DIRECTORY"/t8005/cp1251.txt
+. "$TEST_DIRECTORY"/t8005/sjis.txt
+
+test_expect_success 'setup the repository' '
+ # Create the file
+ echo "UTF-8 LINE" > file &&
+ git add file &&
+ git commit --author "$UTF8_NAME <utf8@localhost>" -m "$UTF8_MSG" &&
+
+ echo "CP1251 LINE" >> file &&
+ git add file &&
+ git config i18n.commitencoding cp1251 &&
+ git commit --author "$CP1251_NAME <cp1251@localhost>" -m "$CP1251_MSG" &&
+
+ echo "SJIS LINE" >> file &&
+ git add file &&
+ git config i18n.commitencoding shift-jis &&
+ git commit --author "$SJIS_NAME <sjis@localhost>" -m "$SJIS_MSG"
+'
+
+cat >expected <<EOF
+author $SJIS_NAME
+summary $SJIS_MSG
+author $SJIS_NAME
+summary $SJIS_MSG
+author $SJIS_NAME
+summary $SJIS_MSG
+EOF
+
+test_expect_success \
+ 'blame respects i18n.commitencoding' '
+ git blame --incremental file | \
+ grep "^\(author\|summary\) " > actual &&
+ test_cmp actual expected
+'
+
+cat >expected <<EOF
+author $CP1251_NAME
+summary $CP1251_MSG
+author $CP1251_NAME
+summary $CP1251_MSG
+author $CP1251_NAME
+summary $CP1251_MSG
+EOF
+
+test_expect_success \
+ 'blame respects i18n.logoutputencoding' '
+ git config i18n.logoutputencoding cp1251 &&
+ git blame --incremental file | \
+ grep "^\(author\|summary\) " > actual &&
+ test_cmp actual expected
+'
+
+cat >expected <<EOF
+author $UTF8_NAME
+summary $UTF8_MSG
+author $UTF8_NAME
+summary $UTF8_MSG
+author $UTF8_NAME
+summary $UTF8_MSG
+EOF
+
+test_expect_success \
+ 'blame respects --encoding=utf-8' '
+ git blame --incremental --encoding=utf-8 file | \
+ grep "^\(author\|summary\) " > actual &&
+ test_cmp actual expected
+'
+
+cat >expected <<EOF
+author $SJIS_NAME
+summary $SJIS_MSG
+author $CP1251_NAME
+summary $CP1251_MSG
+author $UTF8_NAME
+summary $UTF8_MSG
+EOF
+
+test_expect_success \
+ 'blame respects --encoding=none' '
+ git blame --incremental --encoding=none file | \
+ grep "^\(author\|summary\) " > actual &&
+ test_cmp actual expected
+'
+
+test_done
diff --git a/t/t8005/cp1251.txt b/t/t8005/cp1251.txt
new file mode 100644
index 0000000000000000000000000000000000000000..ce41e98b811b09c135115529b41e227ce5ec4ff6
GIT binary patch
literal 68
zcmZ<`Ff=kXjQ4Z&b+uJG@#w)@h4W88eR%ii#dn2^FP^*uvXr=-A!>Ys-EEaFJ^lFU
W-J^F;6+XUu_weV_w=bS5aRC6=1t)(1
literal 0
HcmV?d00001
diff --git a/t/t8005/sjis.txt b/t/t8005/sjis.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2ccfbad207c6e96b1f4f528031d9e4938d364b92
GIT binary patch
literal 100
zcmWIc@(hmmbM$q!Rci5UDQYQbsZ(ePXen)JX=!R{018yLbSkt20jUxo7c8X26%5kk
k8|)6$6AV<^3{(tK+R##}0OT|PVPQ)*P@)c~tyGB%00x;U@Bjb+
literal 0
HcmV?d00001
diff --git a/t/t8005/utf8.txt b/t/t8005/utf8.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f46cfc56d80797740c3ec15e166add052f905fcb
GIT binary patch
literal 100
zcmWFyakGf`bM$q!Rk|?a!lnxwF6>pfF#p2Vi%l0BF6;ve?6}yjaADzv9T&D-*as0(
t;tB<6@(p$e>RAL-+IX=EtaRUntqK<#fy{juHeT$!u=T=Tpth|_TmU(XJDmUk
literal 0
HcmV?d00001
--
1.6.0.20.g6148bc
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-21 20:55 [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules Alexander Gavrilov
@ 2008-10-22 8:20 ` Jeff King
2008-10-22 8:35 ` Alexander Gavrilov
2008-10-22 19:07 ` Junio C Hamano
0 siblings, 2 replies; 13+ messages in thread
From: Jeff King @ 2008-10-22 8:20 UTC (permalink / raw)
To: Alexander Gavrilov; +Cc: git, Junio C Hamano
On Wed, Oct 22, 2008 at 12:55:57AM +0400, Alexander Gavrilov wrote:
> +test_expect_success \
> + 'blame respects i18n.commitencoding' '
> + git blame --incremental file | \
> + grep "^\(author\|summary\) " > actual &&
> + test_cmp actual expected
Even though it is POSIX, using backslashed grouping in 'grep' isn't
portable. It fails at least on Solaris 8, and you have to do:
egrep "^(author|summary) "
instead. Of course, I can't get your test to pass even with that change,
but I think that is just a broken iconv on Solaris.
-Peff
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 8:20 ` Jeff King
@ 2008-10-22 8:35 ` Alexander Gavrilov
2008-10-22 8:50 ` Jeff King
2008-10-22 19:07 ` Junio C Hamano
1 sibling, 1 reply; 13+ messages in thread
From: Alexander Gavrilov @ 2008-10-22 8:35 UTC (permalink / raw)
To: Jeff King; +Cc: git, Junio C Hamano
On Wed, Oct 22, 2008 at 12:20 PM, Jeff King <peff@peff.net> wrote:
> On Wed, Oct 22, 2008 at 12:55:57AM +0400, Alexander Gavrilov wrote:
>
>> +test_expect_success \
>> + 'blame respects i18n.commitencoding' '
>> + git blame --incremental file | \
>> + grep "^\(author\|summary\) " > actual &&
>> + test_cmp actual expected
>
> Even though it is POSIX, using backslashed grouping in 'grep' isn't
> portable. It fails at least on Solaris 8, and you have to do:
>
> egrep "^(author|summary) "
>
> instead. Of course, I can't get your test to pass even with that change,
> but I think that is just a broken iconv on Solaris.
Hm, which of the conversions fail? You can try manually converting the
txt files with the iconv command to figure it out.
Alexander
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 8:35 ` Alexander Gavrilov
@ 2008-10-22 8:50 ` Jeff King
2008-10-22 9:32 ` Alexander Gavrilov
0 siblings, 1 reply; 13+ messages in thread
From: Jeff King @ 2008-10-22 8:50 UTC (permalink / raw)
To: Alexander Gavrilov; +Cc: git, Junio C Hamano
[-- Attachment #1: Type: text/plain, Size: 703 bytes --]
On Wed, Oct 22, 2008 at 12:35:17PM +0400, Alexander Gavrilov wrote:
> > instead. Of course, I can't get your test to pass even with that change,
> > but I think that is just a broken iconv on Solaris.
>
> Hm, which of the conversions fail? You can try manually converting the
> txt files with the iconv command to figure it out.
Test 2 fails for CP1251 and SJIS. Manually converting with iconv seems
to work ok (at least, doing "iconv -f CP1251 -t UTF-8 cp1251.txt"
produces the same output as "cat utf8.txt".
The output from "t8005-blame-i18n.sh -v -i" is attached (as
application/octet-stream to protect it from email munging) if that is
helpful to you. I can't make heads or tails of it.
-Peff
[-- Attachment #2: t8005-output.txt --]
[-- Type: application/octet-stream, Size: 1787 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 8:50 ` Jeff King
@ 2008-10-22 9:32 ` Alexander Gavrilov
2008-10-22 12:39 ` Jeff King
0 siblings, 1 reply; 13+ messages in thread
From: Alexander Gavrilov @ 2008-10-22 9:32 UTC (permalink / raw)
To: Jeff King; +Cc: git, Junio C Hamano
On Wed, Oct 22, 2008 at 12:50 PM, Jeff King <peff@peff.net> wrote:
> On Wed, Oct 22, 2008 at 12:35:17PM +0400, Alexander Gavrilov wrote:
>
>> > instead. Of course, I can't get your test to pass even with that change,
>> > but I think that is just a broken iconv on Solaris.
>>
>> Hm, which of the conversions fail? You can try manually converting the
>> txt files with the iconv command to figure it out.
>
> Test 2 fails for CP1251 and SJIS. Manually converting with iconv seems
> to work ok (at least, doing "iconv -f CP1251 -t UTF-8 cp1251.txt"
> produces the same output as "cat utf8.txt".
>
> The output from "t8005-blame-i18n.sh -v -i" is attached (as
> application/octet-stream to protect it from email munging) if that is
> helpful to you. I can't make heads or tails of it.
>From the output it seems that what fails is "-f cp1251 -t sjis" and
"-f utf-8 -t sjis" (remember that blame --incremental produces its
output in reverse order compared to the order of commits). Unless
blame for some reason actually tries to convert to an entirely
different encoding. If tests 4 and 5 pass, you can try adding
--encoding=shift-jis to test 2 to check it.
Alexander
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 9:32 ` Alexander Gavrilov
@ 2008-10-22 12:39 ` Jeff King
0 siblings, 0 replies; 13+ messages in thread
From: Jeff King @ 2008-10-22 12:39 UTC (permalink / raw)
To: Alexander Gavrilov; +Cc: git, Junio C Hamano
On Wed, Oct 22, 2008 at 01:32:56PM +0400, Alexander Gavrilov wrote:
> From the output it seems that what fails is "-f cp1251 -t sjis" and
> "-f utf-8 -t sjis" (remember that blame --incremental produces its
Oh, indeed. Converting to and from utf-8 seems to work, but not between
cp1251 and sjis:
$ iconv -f SJIS -t UTF-8 sjis.txt | sed s/SJIS/UTF8/ >test &&
> cmp test utf8.txt && echo ok
ok
$ iconv -f UTF-8 -t SJIS utf8.txt | sed s/UTF8/SJIS/ >test &&
> cmp test sjis.txt && echo ok
ok
$ iconv -f SJIS -t CP1251 sjis.txt
Not supported SJIS to CP1251
$ iconv -f CP1251 -t SJIS cp1251.txt
Not supported CP1251 to SJIS
So I think it is simply a limitation of the platform with respect to the
particular encodings used. There is a similar problem in t3900, I think,
with EUCJP and ISO-2022-JP. I assume one _can_ install these encodings
for Solaris, but the admins of my box haven't done so (and this is a
production box that I can't ask for such things on).
> blame for some reason actually tries to convert to an entirely
> different encoding. If tests 4 and 5 pass, you can try adding
> --encoding=shift-jis to test 2 to check it.
Tests 2, 3, and 4 fail. Test 5 does pass.
-Peff
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 8:20 ` Jeff King
2008-10-22 8:35 ` Alexander Gavrilov
@ 2008-10-22 19:07 ` Junio C Hamano
2008-10-22 19:14 ` Jeff King
1 sibling, 1 reply; 13+ messages in thread
From: Junio C Hamano @ 2008-10-22 19:07 UTC (permalink / raw)
To: Jeff King; +Cc: Alexander Gavrilov, git
Jeff King <peff@peff.net> writes:
> On Wed, Oct 22, 2008 at 12:55:57AM +0400, Alexander Gavrilov wrote:
>
>> +test_expect_success \
>> + 'blame respects i18n.commitencoding' '
>> + git blame --incremental file | \
>> + grep "^\(author\|summary\) " > actual &&
>> + test_cmp actual expected
>
> Even though it is POSIX, using backslashed grouping in 'grep' isn't
> portable. It fails at least on Solaris 8, and you have to do:
>
> egrep "^(author|summary) "
>
> instead. Of course, I can't get your test to pass even with that change,
> but I think that is just a broken iconv on Solaris.
Yuck. Solaris 8 /usr/bin/grep does not even grok "-e", so we cannot do a
more obvious:
grep -e "^author " -e "^summary "
Do people build with NO_EXTERNAL_GREP on older Solaris?
git-submodule.sh uses grep "-e" to look for two patterns and I suspect
older Solaris would have the same issue.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 19:07 ` Junio C Hamano
@ 2008-10-22 19:14 ` Jeff King
2008-10-22 19:22 ` Jeff King
2008-10-22 20:12 ` Jakub Narebski
0 siblings, 2 replies; 13+ messages in thread
From: Jeff King @ 2008-10-22 19:14 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Alexander Gavrilov, git
On Wed, Oct 22, 2008 at 12:07:48PM -0700, Junio C Hamano wrote:
> Yuck. Solaris 8 /usr/bin/grep does not even grok "-e", so we cannot do a
> more obvious:
>
> grep -e "^author " -e "^summary "
Yep. I already introduced one use of egrep for a similar case in
8753941 (tests: grep portability fixes).
> Do people build with NO_EXTERNAL_GREP on older Solaris?
Yep. See:
http://repo.or.cz/w/git/gitbuild.git?a=blob;f=jk/solaris/config.mak;hb=platform
for the gory details (boy, I wish we had nice PATH_INFO-based gitweb
URLs...).
> git-submodule.sh uses grep "-e" to look for two patterns and I suspect
> older Solaris would have the same issue.
Yes, that code will break on Solaris. Most of my portability fixes have
been in direct response to tests, so I guess we are not testing
git-submodule very well.
-Peff
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 19:14 ` Jeff King
@ 2008-10-22 19:22 ` Jeff King
2008-10-22 20:29 ` Johannes Schindelin
2008-10-22 20:12 ` Jakub Narebski
1 sibling, 1 reply; 13+ messages in thread
From: Jeff King @ 2008-10-22 19:22 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Alexander Gavrilov, git
On Wed, Oct 22, 2008 at 03:14:16PM -0400, Jeff King wrote:
> > git-submodule.sh uses grep "-e" to look for two patterns and I suspect
> > older Solaris would have the same issue.
>
> Yes, that code will break on Solaris. Most of my portability fixes have
> been in direct response to tests, so I guess we are not testing
> git-submodule very well.
And here's a patch. Though I believe this is the last "grep -e", I
wonder if it wouldn't have been wiser to simply force people on such
platforms to use GNU grep (I already have to use GNU tools to build, and
bash to run the scripts).
-- >8 --
submodule: fix some non-portable grep invocations
Not all greps support "-e", but in this case we can easily
convert it to a single extended regex.
Signed-off-by: Jeff King <peff@peff.net>
---
Passes the test scripts, but I'm not sure they are exercising this code,
anyway, since it passed on Solaris. Please double-check my conversion.
git-submodule.sh | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/git-submodule.sh b/git-submodule.sh
index 65178ae..b63e5c3 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -424,7 +424,7 @@ cmd_summary() {
cd_to_toplevel
# Get modified modules cared by user
modules=$(git diff-index $cached --raw $head -- "$@" |
- grep -e '^:160000' -e '^:[0-7]* 160000' |
+ egrep '^:([0-7]* )?160000' |
while read mod_src mod_dst sha1_src sha1_dst status name
do
# Always show modules deleted or type-changed (blob<->module)
@@ -438,7 +438,7 @@ cmd_summary() {
test -z "$modules" && return
git diff-index $cached --raw $head -- $modules |
- grep -e '^:160000' -e '^:[0-7]* 160000' |
+ egrep '^:([0-7]* )?160000' |
cut -c2- |
while read mod_src mod_dst sha1_src sha1_dst status name
do
--
1.6.0.2.825.g6d19d
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 19:14 ` Jeff King
2008-10-22 19:22 ` Jeff King
@ 2008-10-22 20:12 ` Jakub Narebski
2008-10-22 20:42 ` Jeff King
1 sibling, 1 reply; 13+ messages in thread
From: Jakub Narebski @ 2008-10-22 20:12 UTC (permalink / raw)
To: git
Jeff King wrote:
>> Do people build with NO_EXTERNAL_GREP on older Solaris?
>
> Yep. See:
>
> http://repo.or.cz/w/git/gitbuild.git?a=blob;f=jk/solaris/config.mak;hb=platform
>
> for the gory details (boy, I wish we had nice PATH_INFO-based gitweb
> URLs...).
Currently you can use path_info URL for blob_plain
http://repo.or.cz/w/git/gitbuild.git/platform:/jk/solaris/config.mak
Soon (thanks to Giuseppe patches) you would be able to use
http://repo.or.cz/w/git/gitbuild.git/blob/platform:/jk/solaris/config.mak
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 19:22 ` Jeff King
@ 2008-10-22 20:29 ` Johannes Schindelin
2008-10-22 20:40 ` Jeff King
0 siblings, 1 reply; 13+ messages in thread
From: Johannes Schindelin @ 2008-10-22 20:29 UTC (permalink / raw)
To: Jeff King; +Cc: Junio C Hamano, Alexander Gavrilov, git
Hi,
On Wed, 22 Oct 2008, Jeff King wrote:
> submodule: fix some non-portable grep invocations
>
> Not all greps support "-e", but in this case we can easily
> convert it to a single extended regex.
I really wonder if we cannot catch these things (unportable grep, sed, etc
invokations) with a simple patch to the pre-commit hook.
Ciao,
Dscho
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 20:29 ` Johannes Schindelin
@ 2008-10-22 20:40 ` Jeff King
0 siblings, 0 replies; 13+ messages in thread
From: Jeff King @ 2008-10-22 20:40 UTC (permalink / raw)
To: Johannes Schindelin; +Cc: Junio C Hamano, Alexander Gavrilov, git
On Wed, Oct 22, 2008 at 10:29:39PM +0200, Johannes Schindelin wrote:
> > Not all greps support "-e", but in this case we can easily
> > convert it to a single extended regex.
>
> I really wonder if we cannot catch these things (unportable grep, sed, etc
> invokations) with a simple patch to the pre-commit hook.
We could probably write a hook for some of the simpler ones, but we
would have quite a few false negatives, I suspect.
FWIW, I am not finding these portability problems by hand. I am nightly
auto-building and testing Junio's maint, master, and next on Solaris 8
and FreeBSD, and Mike Ralphson is doing the same for AIX. So while we
could perhaps catch them sooner, I am very happy to have caught several
issues recently in next, _before_ they hit master.
-Peff
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules.
2008-10-22 20:12 ` Jakub Narebski
@ 2008-10-22 20:42 ` Jeff King
0 siblings, 0 replies; 13+ messages in thread
From: Jeff King @ 2008-10-22 20:42 UTC (permalink / raw)
To: Jakub Narebski; +Cc: git
On Wed, Oct 22, 2008 at 10:12:54PM +0200, Jakub Narebski wrote:
> Currently you can use path_info URL for blob_plain
>
> http://repo.or.cz/w/git/gitbuild.git/platform:/jk/solaris/config.mak
Ah, I didn't know that. Thanks.
> Soon (thanks to Giuseppe patches) you would be able to use
>
> http://repo.or.cz/w/git/gitbuild.git/blob/platform:/jk/solaris/config.mak
Yes, those patches were actually what spurred my comment. :) I am
looking forward to playing with them once they are on repo.or.cz.
-Peff
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2008-10-22 20:43 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-21 20:55 [PATCH v2] builtin-blame: Reencode commit messages according to git-log rules Alexander Gavrilov
2008-10-22 8:20 ` Jeff King
2008-10-22 8:35 ` Alexander Gavrilov
2008-10-22 8:50 ` Jeff King
2008-10-22 9:32 ` Alexander Gavrilov
2008-10-22 12:39 ` Jeff King
2008-10-22 19:07 ` Junio C Hamano
2008-10-22 19:14 ` Jeff King
2008-10-22 19:22 ` Jeff King
2008-10-22 20:29 ` Johannes Schindelin
2008-10-22 20:40 ` Jeff King
2008-10-22 20:12 ` Jakub Narebski
2008-10-22 20:42 ` Jeff King
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).