mirror of
https://github.com/git/git
synced 2024-08-25 02:35:46 +00:00
Merge branch 'jk/get-oid-error-message-i18n'
A low-level API function get_oid(), that accepts various ways to name an object, used to issue end-user facing error messages without l10n, which has been updated to be translatable. * jk/get-oid-error-message-i18n: sha1-name: mark get_oid() error messages for translation t1506: drop space after redirection operator t1400: avoid "test" string comparisons
This commit is contained in:
commit
09e48400a3
30
sha1-name.c
30
sha1-name.c
|
@ -914,15 +914,15 @@ static int get_oid_basic(struct repository *r, const char *str, int len,
|
|||
}
|
||||
if (at_time) {
|
||||
if (!(flags & GET_OID_QUIETLY)) {
|
||||
warning("Log for '%.*s' only goes "
|
||||
"back to %s.", len, str,
|
||||
warning(_("log for '%.*s' only goes back to %s"),
|
||||
len, str,
|
||||
show_date(co_time, co_tz, DATE_MODE(RFC2822)));
|
||||
}
|
||||
} else {
|
||||
if (flags & GET_OID_QUIETLY) {
|
||||
exit(128);
|
||||
}
|
||||
die("Log for '%.*s' only has %d entries.",
|
||||
die(_("log for '%.*s' only has %d entries"),
|
||||
len, str, co_cnt);
|
||||
}
|
||||
}
|
||||
|
@ -1687,14 +1687,14 @@ static void diagnose_invalid_oid_path(struct repository *r,
|
|||
prefix = "";
|
||||
|
||||
if (file_exists(filename))
|
||||
die("Path '%s' exists on disk, but not in '%.*s'.",
|
||||
die(_("path '%s' exists on disk, but not in '%.*s'"),
|
||||
filename, object_name_len, object_name);
|
||||
if (is_missing_file_error(errno)) {
|
||||
char *fullname = xstrfmt("%s%s", prefix, filename);
|
||||
|
||||
if (!get_tree_entry(r, tree_oid, fullname, &oid, &mode)) {
|
||||
die("Path '%s' exists, but not '%s'.\n"
|
||||
"Did you mean '%.*s:%s' aka '%.*s:./%s'?",
|
||||
die(_("path '%s' exists, but not '%s'\n"
|
||||
"hint: Did you mean '%.*s:%s' aka '%.*s:./%s'?"),
|
||||
fullname,
|
||||
filename,
|
||||
object_name_len, object_name,
|
||||
|
@ -1702,7 +1702,7 @@ static void diagnose_invalid_oid_path(struct repository *r,
|
|||
object_name_len, object_name,
|
||||
filename);
|
||||
}
|
||||
die("Path '%s' does not exist in '%.*s'",
|
||||
die(_("path '%s' does not exist in '%.*s'"),
|
||||
filename, object_name_len, object_name);
|
||||
}
|
||||
}
|
||||
|
@ -1730,8 +1730,8 @@ static void diagnose_invalid_index_path(struct repository *r,
|
|||
ce = istate->cache[pos];
|
||||
if (ce_namelen(ce) == namelen &&
|
||||
!memcmp(ce->name, filename, namelen))
|
||||
die("Path '%s' is in the index, but not at stage %d.\n"
|
||||
"Did you mean ':%d:%s'?",
|
||||
die(_("path '%s' is in the index, but not at stage %d\n"
|
||||
"hint: Did you mean ':%d:%s'?"),
|
||||
filename, stage,
|
||||
ce_stage(ce), filename);
|
||||
}
|
||||
|
@ -1746,17 +1746,17 @@ static void diagnose_invalid_index_path(struct repository *r,
|
|||
ce = istate->cache[pos];
|
||||
if (ce_namelen(ce) == fullname.len &&
|
||||
!memcmp(ce->name, fullname.buf, fullname.len))
|
||||
die("Path '%s' is in the index, but not '%s'.\n"
|
||||
"Did you mean ':%d:%s' aka ':%d:./%s'?",
|
||||
die(_("path '%s' is in the index, but not '%s'\n"
|
||||
"hint: Did you mean ':%d:%s' aka ':%d:./%s'?"),
|
||||
fullname.buf, filename,
|
||||
ce_stage(ce), fullname.buf,
|
||||
ce_stage(ce), filename);
|
||||
}
|
||||
|
||||
if (repo_file_exists(r, filename))
|
||||
die("Path '%s' exists on disk, but not in the index.", filename);
|
||||
die(_("path '%s' exists on disk, but not in the index"), filename);
|
||||
if (is_missing_file_error(errno))
|
||||
die("Path '%s' does not exist (neither on disk nor in the index).",
|
||||
die(_("path '%s' does not exist (neither on disk nor in the index)"),
|
||||
filename);
|
||||
|
||||
strbuf_release(&fullname);
|
||||
|
@ -1769,7 +1769,7 @@ static char *resolve_relative_path(struct repository *r, const char *rel)
|
|||
return NULL;
|
||||
|
||||
if (r != the_repository || !is_inside_work_tree())
|
||||
die("relative path syntax can't be used outside working tree.");
|
||||
die(_("relative path syntax can't be used outside working tree"));
|
||||
|
||||
/* die() inside prefix_path() if resolved path is outside worktree */
|
||||
return prefix_path(startup_info->prefix,
|
||||
|
@ -1907,7 +1907,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo,
|
|||
return ret;
|
||||
} else {
|
||||
if (only_to_die)
|
||||
die("Invalid object name '%.*s'.", len, name);
|
||||
die(_("invalid object name '%.*s'."), len, name);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
|
|
|
@ -361,55 +361,67 @@ ld="Thu, 26 May 2005 18:43:00 -0500"
|
|||
test_expect_success 'Query "master@{May 25 2005}" (before history)' '
|
||||
test_when_finished "rm -f o e" &&
|
||||
git rev-parse --verify "master@{May 25 2005}" >o 2>e &&
|
||||
test $C = $(cat o) &&
|
||||
test "warning: Log for '\''master'\'' only goes back to $ed." = "$(cat e)"
|
||||
echo "$C" >expect &&
|
||||
test_cmp expect o &&
|
||||
echo "warning: log for '\''master'\'' only goes back to $ed" >expect &&
|
||||
test_i18ncmp expect e
|
||||
'
|
||||
test_expect_success 'Query master@{2005-05-25} (before history)' '
|
||||
test_when_finished "rm -f o e" &&
|
||||
git rev-parse --verify master@{2005-05-25} >o 2>e &&
|
||||
test $C = $(cat o) &&
|
||||
test "warning: Log for '\''master'\'' only goes back to $ed." = "$(cat e)"
|
||||
echo "$C" >expect &&
|
||||
test_cmp expect o &&
|
||||
echo "warning: log for '\''master'\'' only goes back to $ed" >expect &&
|
||||
test_i18ncmp expect e
|
||||
'
|
||||
test_expect_success 'Query "master@{May 26 2005 23:31:59}" (1 second before history)' '
|
||||
test_when_finished "rm -f o e" &&
|
||||
git rev-parse --verify "master@{May 26 2005 23:31:59}" >o 2>e &&
|
||||
test $C = $(cat o) &&
|
||||
test "warning: Log for '\''master'\'' only goes back to $ed." = "$(cat e)"
|
||||
echo "$C" >expect &&
|
||||
test_cmp expect o &&
|
||||
echo "warning: log for '\''master'\'' only goes back to $ed" >expect &&
|
||||
test_i18ncmp expect e
|
||||
'
|
||||
test_expect_success 'Query "master@{May 26 2005 23:32:00}" (exactly history start)' '
|
||||
test_when_finished "rm -f o e" &&
|
||||
git rev-parse --verify "master@{May 26 2005 23:32:00}" >o 2>e &&
|
||||
test $C = $(cat o) &&
|
||||
echo "$C" >expect &&
|
||||
test_cmp expect o &&
|
||||
test_must_be_empty e
|
||||
'
|
||||
test_expect_success 'Query "master@{May 26 2005 23:32:30}" (first non-creation change)' '
|
||||
test_when_finished "rm -f o e" &&
|
||||
git rev-parse --verify "master@{May 26 2005 23:32:30}" >o 2>e &&
|
||||
test $A = $(cat o) &&
|
||||
echo "$A" >expect &&
|
||||
test_cmp expect o &&
|
||||
test_must_be_empty e
|
||||
'
|
||||
test_expect_success 'Query "master@{2005-05-26 23:33:01}" (middle of history with gap)' '
|
||||
test_when_finished "rm -f o e" &&
|
||||
git rev-parse --verify "master@{2005-05-26 23:33:01}" >o 2>e &&
|
||||
test $B = $(cat o) &&
|
||||
echo "$B" >expect &&
|
||||
test_cmp expect o &&
|
||||
test_i18ngrep -F "warning: log for ref $m has gap after $gd" e
|
||||
'
|
||||
test_expect_success 'Query "master@{2005-05-26 23:38:00}" (middle of history)' '
|
||||
test_when_finished "rm -f o e" &&
|
||||
git rev-parse --verify "master@{2005-05-26 23:38:00}" >o 2>e &&
|
||||
test $Z = $(cat o) &&
|
||||
echo "$Z" >expect &&
|
||||
test_cmp expect o &&
|
||||
test_must_be_empty e
|
||||
'
|
||||
test_expect_success 'Query "master@{2005-05-26 23:43:00}" (exact end of history)' '
|
||||
test_when_finished "rm -f o e" &&
|
||||
git rev-parse --verify "master@{2005-05-26 23:43:00}" >o 2>e &&
|
||||
test $E = $(cat o) &&
|
||||
echo "$E" >expect &&
|
||||
test_cmp expect o &&
|
||||
test_must_be_empty e
|
||||
'
|
||||
test_expect_success 'Query "master@{2005-05-28}" (past end of history)' '
|
||||
test_when_finished "rm -f o e" &&
|
||||
git rev-parse --verify "master@{2005-05-28}" >o 2>e &&
|
||||
test $D = $(cat o) &&
|
||||
echo "$D" >expect &&
|
||||
test_cmp expect o &&
|
||||
test_i18ngrep -F "warning: log for ref $m unexpectedly ended on $ld" e
|
||||
'
|
||||
|
||||
|
|
|
@ -9,10 +9,10 @@ exec </dev/null
|
|||
test_did_you_mean ()
|
||||
{
|
||||
cat >expected <<-EOF &&
|
||||
fatal: Path '$2$3' $4, but not ${5:-$SQ$3$SQ}.
|
||||
Did you mean '$1:$2$3'${2:+ aka $SQ$1:./$3$SQ}?
|
||||
fatal: path '$2$3' $4, but not ${5:-$SQ$3$SQ}
|
||||
hint: Did you mean '$1:$2$3'${2:+ aka $SQ$1:./$3$SQ}?
|
||||
EOF
|
||||
test_cmp expected error
|
||||
test_i18ncmp expected error
|
||||
}
|
||||
|
||||
HASH_file=
|
||||
|
@ -103,53 +103,53 @@ test_expect_success 'correct relative file objects (6)' '
|
|||
|
||||
test_expect_success 'incorrect revision id' '
|
||||
test_must_fail git rev-parse foobar:file.txt 2>error &&
|
||||
grep "Invalid object name '"'"'foobar'"'"'." error &&
|
||||
test_must_fail git rev-parse foobar 2> error &&
|
||||
test_i18ngrep "invalid object name .foobar." error &&
|
||||
test_must_fail git rev-parse foobar 2>error &&
|
||||
test_i18ngrep "unknown revision or path not in the working tree." error
|
||||
'
|
||||
|
||||
test_expect_success 'incorrect file in sha1:path' '
|
||||
test_must_fail git rev-parse HEAD:nothing.txt 2> error &&
|
||||
grep "fatal: Path '"'"'nothing.txt'"'"' does not exist in '"'"'HEAD'"'"'" error &&
|
||||
test_must_fail git rev-parse HEAD:index-only.txt 2> error &&
|
||||
grep "fatal: Path '"'"'index-only.txt'"'"' exists on disk, but not in '"'"'HEAD'"'"'." error &&
|
||||
test_must_fail git rev-parse HEAD:nothing.txt 2>error &&
|
||||
test_i18ngrep "path .nothing.txt. does not exist in .HEAD." error &&
|
||||
test_must_fail git rev-parse HEAD:index-only.txt 2>error &&
|
||||
test_i18ngrep "path .index-only.txt. exists on disk, but not in .HEAD." error &&
|
||||
(cd subdir &&
|
||||
test_must_fail git rev-parse HEAD:file2.txt 2> error &&
|
||||
test_must_fail git rev-parse HEAD:file2.txt 2>error &&
|
||||
test_did_you_mean HEAD subdir/ file2.txt exists )
|
||||
'
|
||||
|
||||
test_expect_success 'incorrect file in :path and :N:path' '
|
||||
test_must_fail git rev-parse :nothing.txt 2> error &&
|
||||
grep "fatal: Path '"'"'nothing.txt'"'"' does not exist (neither on disk nor in the index)." error &&
|
||||
test_must_fail git rev-parse :1:nothing.txt 2> error &&
|
||||
grep "Path '"'"'nothing.txt'"'"' does not exist (neither on disk nor in the index)." error &&
|
||||
test_must_fail git rev-parse :1:file.txt 2> error &&
|
||||
test_must_fail git rev-parse :nothing.txt 2>error &&
|
||||
test_i18ngrep "path .nothing.txt. does not exist (neither on disk nor in the index)" error &&
|
||||
test_must_fail git rev-parse :1:nothing.txt 2>error &&
|
||||
test_i18ngrep "path .nothing.txt. does not exist (neither on disk nor in the index)" error &&
|
||||
test_must_fail git rev-parse :1:file.txt 2>error &&
|
||||
test_did_you_mean ":0" "" file.txt "is in the index" "at stage 1" &&
|
||||
(cd subdir &&
|
||||
test_must_fail git rev-parse :1:file.txt 2> error &&
|
||||
test_must_fail git rev-parse :1:file.txt 2>error &&
|
||||
test_did_you_mean ":0" "" file.txt "is in the index" "at stage 1" &&
|
||||
test_must_fail git rev-parse :file2.txt 2> error &&
|
||||
test_must_fail git rev-parse :file2.txt 2>error &&
|
||||
test_did_you_mean ":0" subdir/ file2.txt "is in the index" &&
|
||||
test_must_fail git rev-parse :2:file2.txt 2> error &&
|
||||
test_must_fail git rev-parse :2:file2.txt 2>error &&
|
||||
test_did_you_mean :0 subdir/ file2.txt "is in the index") &&
|
||||
test_must_fail git rev-parse :disk-only.txt 2> error &&
|
||||
grep "fatal: Path '"'"'disk-only.txt'"'"' exists on disk, but not in the index." error
|
||||
test_must_fail git rev-parse :disk-only.txt 2>error &&
|
||||
test_i18ngrep "path .disk-only.txt. exists on disk, but not in the index" error
|
||||
'
|
||||
|
||||
test_expect_success 'invalid @{n} reference' '
|
||||
test_must_fail git rev-parse master@{99999} >output 2>error &&
|
||||
test_must_be_empty output &&
|
||||
grep "fatal: Log for [^ ]* only has [0-9][0-9]* entries." error &&
|
||||
test_i18ngrep "log for [^ ]* only has [0-9][0-9]* entries" error &&
|
||||
test_must_fail git rev-parse --verify master@{99999} >output 2>error &&
|
||||
test_must_be_empty output &&
|
||||
grep "fatal: Log for [^ ]* only has [0-9][0-9]* entries." error
|
||||
test_i18ngrep "log for [^ ]* only has [0-9][0-9]* entries" error
|
||||
'
|
||||
|
||||
test_expect_success 'relative path not found' '
|
||||
(
|
||||
cd subdir &&
|
||||
test_must_fail git rev-parse HEAD:./nonexistent.txt 2>error &&
|
||||
grep subdir/nonexistent.txt error
|
||||
test_i18ngrep subdir/nonexistent.txt error
|
||||
)
|
||||
'
|
||||
|
||||
|
@ -162,7 +162,7 @@ test_expect_success 'relative path outside worktree' '
|
|||
test_expect_success 'relative path when cwd is outside worktree' '
|
||||
test_must_fail git --git-dir=.git --work-tree=subdir rev-parse HEAD:./file.txt >output 2>error &&
|
||||
test_must_be_empty output &&
|
||||
grep "relative path syntax can.t be used outside working tree." error
|
||||
test_i18ngrep "relative path syntax can.t be used outside working tree" error
|
||||
'
|
||||
|
||||
test_expect_success '<commit>:file correctly diagnosed after a pathname' '
|
||||
|
|
Loading…
Reference in a new issue