{"thread":{"id":"38143","subject":"[RFC/PATCH 1/5] glossary.h: generate a glossary list from the Makefile","startedAt":"2014-12-08T15:38:54Z","lastAt":"2014-12-11T20:06:45Z","messageCount":11,"participants":["Michael J Gruber","Christian Couder","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":5},"messages":[{"id":"253338","messageId":"cover.1418052470.git.git@drmicha.warpmail.net","threadId":"38143","inReplyTo":null,"subject":"[RFC/PATCH 0/5] git-glossary","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2014-12-08T15:38:54Z","receivedAt":"2014-12-08T15:38:54Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"More and more people use Git in localised setups, which usually means\nmixed localisation setups - not only, but also because of our English\nman pages.\n\nHere's an attempt at leveraging our current infrastructure for helping\nthose poor mixed localisation folks. The idea is to keep the most\nimportant iterms in the glossary and translate at least these.\n\n1/5: generate glossary term list automatically from gitglossary.txt\n2/5: introduce git-glossary command which helps with lookups\n3/5: introduce git-glossary.txt, the man page for the command\n4/5: git.pot update\n5/5: sample de.po update\n\nWithout 4/5 and 5/5, a few terms from the glossary can be translated\nalready by coincidence with localised messages from some git commands.\n\nMichael J Gruber (5):\n  glossary.h: generate a glossary list from the Makefile\n  glossary: introduce glossary lookup command\n  glossary: man page\n  l10n: git-glossary\n  l10n: de: git-glossary\n\n .gitignore                     |    2 +\n Documentation/git-glossary.txt |   48 ++\n Makefile                       |    8 +-\n builtin.h                      |    1 +\n builtin/glossary.c             |  104 +++\n command-list.txt               |    1 +\n generate-glossary.sh           |    8 +\n git.c                          |    1 +\n po/de.po                       | 1382 ++++++++++++++++++++++++----------------\n po/git.pot                     | 1362 +++++++++++++++++++++++----------------\n 10 files changed, 1839 insertions(+), 1078 deletions(-)\n create mode 100644 Documentation/git-glossary.txt\n create mode 100644 builtin/glossary.c\n create mode 100755 generate-glossary.sh\n\n-- \n2.2.0.345.g7041aac\n"},{"id":"253337","messageId":"dbf54a1a9697cab11692a40a3f7eba1e86508e44.1418052470.git.git@drmicha.warpmail.net","threadId":"38143","inReplyTo":"cover.1418052470.git.git@drmicha.warpmail.net","subject":"[RFC/PATCH 1/5] glossary.h: generate a glossary list from the Makefile","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2014-12-08T15:38:55Z","receivedAt":"2014-12-08T15:38:55Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Generate a header file which lists all terms defined in the glossary\nin a way suitable for localisation. This will be used by the new\nglossary command.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\nI also snuck in a change to the clean target, so that we don't have to update\nit (its definition) as long as we keep GENERATED_H up to date.\n\n .gitignore           | 1 +\n Makefile             | 7 +++++--\n generate-glossary.sh | 8 ++++++++\n 3 files changed, 14 insertions(+), 2 deletions(-)\n create mode 100755 generate-glossary.sh\n\ndiff --git a/.gitignore b/.gitignore\nindex a052419..fb4ebaa 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -208,6 +208,7 @@\n /test-urlmatch-normalization\n /test-wildmatch\n /common-cmds.h\n+/glossary.h\n *.tar.gz\n *.dsc\n *.deb\ndiff --git a/Makefile b/Makefile\nindex 14d5ac1..ae74fdf 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -627,7 +627,7 @@ LIB_FILE = libgit.a\n XDIFF_LIB = xdiff/lib.a\n VCSSVN_LIB = vcs-svn/lib.a\n \n-GENERATED_H += common-cmds.h\n+GENERATED_H += common-cmds.h glossary.h\n \n LIB_H = $(shell $(FIND) . \\\n \t-name .git -prune -o \\\n@@ -1649,6 +1649,9 @@ common-cmds.h: ./generate-cmdlist.sh command-list.txt\n common-cmds.h: $(wildcard Documentation/git-*.txt)\n \t$(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@\n \n+glossary.h: ./generate-glossary.sh Documentation/glossary-content.txt\n+\t$(QUIET_GEN)./generate-glossary.sh > $@+ && mv $@+ $@\n+\n SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\\\n \t$(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\\\n \t$(gitwebdir_SQ):$(PERL_PATH_SQ)\n@@ -2356,7 +2359,7 @@ clean: profile-clean coverage-clean\n \t$(RM) $(TEST_PROGRAMS) $(NO_INSTALL)\n \t$(RM) -r bin-wrappers $(dep_dirs)\n \t$(RM) -r po/build/\n-\t$(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h $(ETAGS_TARGET) tags cscope*\n+\t$(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo $(GENERATED_H) $(ETAGS_TARGET) tags cscope*\n \t$(RM) -r $(GIT_TARNAME) .doc-tmp-dir\n \t$(RM) $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz\n \t$(RM) $(htmldocs).tar.gz $(manpages).tar.gz\ndiff --git a/generate-glossary.sh b/generate-glossary.sh\nnew file mode 100755\nindex 0000000..41f1eb3\n--- /dev/null\n+++ b/generate-glossary.sh\n@@ -0,0 +1,8 @@\n+#!/bin/sh\n+\n+echo \"/* Automatically generated by $0 */\n+\n+static const char *glossary[] = {\"\n+\n+sed -n -e 's/^.*\\]\\]\\(.*\\)::$/\\tN_(\"\\1\"),/p' Documentation/glossary-content.txt\n+echo \"};\"\n-- \n2.2.0.345.g7041aac\n"},{"id":"253341","messageId":"585191103e7bdd21ed422324504b6503bec2b914.1418052470.git.git@drmicha.warpmail.net","threadId":"38143","inReplyTo":"cover.1418052470.git.git@drmicha.warpmail.net","subject":"[RFC/PATCH 2/5] glossary: introduce glossary lookup command","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2014-12-08T15:38:56Z","receivedAt":"2014-12-08T15:38:56Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"When using a localised git, there are many reasons why a correspondence\nbetween English and localised git terms is needed:\n- connect localised messages with English ones (porcelain vs. plumbing)\n- connect localised messages with English man pages or online docs\n- help out someone in a different locale\n\nIntroduce a `git glossary' command that leverages the existing infrastructure\nin three possible ways:\n- `git glossary' lists all glossary terms along with their translation\n- `git glossary foo' matches `foo' in the glossary (both English and\n  localisation; partial matches shown)\n- `git glossary -a foo' matches `foo' in the git message catalogue\n  (English, exact match only).\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\nSome bike-shedding expected regarding the interface...\nOnce I've learned how to test l10n stuff, this will be amended.\n\n .gitignore         |   1 +\n Makefile           |   1 +\n builtin.h          |   1 +\n builtin/glossary.c | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n command-list.txt   |   1 +\n git.c              |   1 +\n 6 files changed, 109 insertions(+)\n create mode 100644 builtin/glossary.c\n\ndiff --git a/.gitignore b/.gitignore\nindex fb4ebaa..ff627a6 100644\n--- a/.gitignore\n+++ b/.gitignore\n@@ -64,6 +64,7 @@\n /git-fsck-objects\n /git-gc\n /git-get-tar-commit-id\n+/git-glossary\n /git-grep\n /git-hash-object\n /git-help\ndiff --git a/Makefile b/Makefile\nindex ae74fdf..8fc9de2 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -824,6 +824,7 @@ BUILTIN_OBJS += builtin/for-each-ref.o\n BUILTIN_OBJS += builtin/fsck.o\n BUILTIN_OBJS += builtin/gc.o\n BUILTIN_OBJS += builtin/get-tar-commit-id.o\n+BUILTIN_OBJS += builtin/glossary.o\n BUILTIN_OBJS += builtin/grep.o\n BUILTIN_OBJS += builtin/hash-object.o\n BUILTIN_OBJS += builtin/help.o\ndiff --git a/builtin.h b/builtin.h\nindex b87df70..dcaf220 100644\n--- a/builtin.h\n+++ b/builtin.h\n@@ -68,6 +68,7 @@ extern int cmd_format_patch(int argc, const char **argv, const char *prefix);\n extern int cmd_fsck(int argc, const char **argv, const char *prefix);\n extern int cmd_gc(int argc, const char **argv, const char *prefix);\n extern int cmd_get_tar_commit_id(int argc, const char **argv, const char *prefix);\n+extern int cmd_glossary(int argc, const char **argv, const char *prefix);\n extern int cmd_grep(int argc, const char **argv, const char *prefix);\n extern int cmd_hash_object(int argc, const char **argv, const char *prefix);\n extern int cmd_help(int argc, const char **argv, const char *prefix);\ndiff --git a/builtin/glossary.c b/builtin/glossary.c\nnew file mode 100644\nindex 0000000..4ad8c51\n--- /dev/null\n+++ b/builtin/glossary.c\n@@ -0,0 +1,104 @@\n+/*\n+ * Builtin help command\n+ */\n+#include \"cache.h\"\n+#include \"builtin.h\"\n+#include \"exec_cmd.h\"\n+#include \"parse-options.h\"\n+#include \"run-command.h\"\n+#include \"column.h\"\n+#include \"glossary.h\"\n+\n+\n+static int match_all = 0;\n+static unsigned int colopts;\n+static struct option builtin_glossary_options[] = {\n+\tOPT_BOOL('a', \"all\", &match_all, N_(\"match all English git messages\")),\n+\tOPT_END(),\n+};\n+\n+static const char * const builtin_glossary_usage[] = {\n+\tN_(\"git glossary [-a|--all] [term]...\"),\n+\tNULL\n+};\n+\n+\n+/*\n+static int git_glossary_config(const char *var, const char *value, void *cb)\n+{\n+\tif (starts_with(var, \"column.\"))\n+\t\treturn git_column_config(var, value, \"help\", &colopts);\n+\n+\treturn git_default_config(var, value, cb);\n+}\n+*/\n+\n+static void emit_one(const char *one, const char* two, int pad)\n+{\n+\tprintf(\"   %s   \", one);\n+\tfor (; pad; pad--)\n+\t\tputchar(' ');\n+\tputs(two);\n+}\n+\n+static void lookup_all(int n, const char **terms)\n+{\n+\tint i;\n+\tfor (i = 0; i < n; i++)\n+\t\temit_one(terms[i], _(terms[i]), 0);\n+}\n+\n+static void lookup_glossary(int n, const char **terms)\n+{\n+\tint i, j;\n+\tfor (i = 0; i < ARRAY_SIZE(glossary); i++) {\n+\t\tfor (j = 0; j < n; j++) {\n+\t\t\tif (strstr(glossary[i], terms[j]) || strstr(_(glossary[i]), terms[j])) {\n+\t\t\t\temit_one(glossary[i], _(glossary[i]), 0);\n+\t\t\t\tbreak;\n+\t\t\t}\n+\t\t}\n+\t}\n+}\n+\n+static void list_glossary()\n+{\n+\tint i, longest = 0;\n+\n+\tfor (i = 0; i < ARRAY_SIZE(glossary); i++) {\n+\t\tif (longest < strlen(glossary[i]))\n+\t\t\tlongest = strlen(glossary[i]);\n+\t}\n+\n+\tfor (i = 0; i < ARRAY_SIZE(glossary); i++)\n+\t\temit_one(glossary[i], _(glossary[i]), longest - strlen(glossary[i]));\n+}\n+\n+int cmd_glossary(int argc, const char **argv, const char *prefix)\n+{\n+\tint nongit;\n+\n+\targc = parse_options(argc, argv, prefix, builtin_glossary_options,\n+\t\t\tbuiltin_glossary_usage, 0);\n+\n+\tif (match_all && !argc) {\n+\t\tprintf(_(\"usage: %s%s\"), _(builtin_glossary_usage[0]), \"\\n\\n\");\n+\t\texit(1);\n+\t}\n+\n+\n+/*\n+\tsetup_git_directory_gently(&nongit);\n+\tgit_config(git_help_config, NULL);\n+*/\n+\tif (!argc) {\n+\t\tlist_glossary();\n+\t\texit(0);\n+\t}\n+\tif (match_all)\n+\t\tlookup_all(argc, argv);\n+\telse\n+\t\tlookup_glossary(argc, argv);\n+\n+\treturn 0;\n+}\ndiff --git a/command-list.txt b/command-list.txt\nindex f1eae08..d26517d 100644\n--- a/command-list.txt\n+++ b/command-list.txt\n@@ -51,6 +51,7 @@ git-format-patch                        mainporcelain\n git-fsck\t                        ancillaryinterrogators\n git-gc                                  mainporcelain\n git-get-tar-commit-id                   ancillaryinterrogators\n+git-glossary\t\t\t\tancillaryinterrogators\n git-grep                                mainporcelain common\n git-gui                                 mainporcelain\n git-hash-object                         plumbingmanipulators\ndiff --git a/git.c b/git.c\nindex 82d7a1c..e2adfbe 100644\n--- a/git.c\n+++ b/git.c\n@@ -411,6 +411,7 @@ static struct cmd_struct commands[] = {\n \t{ \"fsck-objects\", cmd_fsck, RUN_SETUP },\n \t{ \"gc\", cmd_gc, RUN_SETUP },\n \t{ \"get-tar-commit-id\", cmd_get_tar_commit_id },\n+\t{ \"glossary\", cmd_glossary },\n \t{ \"grep\", cmd_grep, RUN_SETUP_GENTLY },\n \t{ \"hash-object\", cmd_hash_object },\n \t{ \"help\", cmd_help },\n-- \n2.2.0.345.g7041aac\n"},{"id":"253339","messageId":"f09df5406eb25f53da5c1ef2d58fb500f5c91c57.1418052470.git.git@drmicha.warpmail.net","threadId":"38143","inReplyTo":"cover.1418052470.git.git@drmicha.warpmail.net","subject":"[RFC/PATCH 3/5] glossary: man page","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2014-12-08T15:38:57Z","receivedAt":"2014-12-08T15:38:57Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\nThis also means you have to use \"git help gitglossary\" if you want to have\nthe glossary only. But it's included in \"git help glossary\" for convenience.\n\n Documentation/git-glossary.txt | 48 ++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 48 insertions(+)\n create mode 100644 Documentation/git-glossary.txt\n\ndiff --git a/Documentation/git-glossary.txt b/Documentation/git-glossary.txt\nnew file mode 100644\nindex 0000000..f2605c5\n--- /dev/null\n+++ b/Documentation/git-glossary.txt\n@@ -0,0 +1,48 @@\n+git-glossary(1)\n+===============\n+\n+NAME\n+----\n+git-glossary - List and translate terms from the glossary\n+\n+SYNOPSIS\n+--------\n+[verse]\n+'git glossary' [-a | --all] <term>...\n+\n+DESCRIPTION\n+-----------\n+Look up each term in the glossary and display it along with its\n+translation. This works with localised (translated) versions\n+of git only. \n+\n+OPTIONS\n+-------\n+<term>...::\n+\tTerm(s) to look up.\n++\n+If no term is specified, list all terms from the glossary along with its translation.\n+\n+-a::\n+\tLook up terms in the message catalogue of all git commands, instead of the glossary.\n+\tThis matches with complete english messages only.\n+\n+\n+DISCUSSION\n+----------\n+Unless `-a' is used, partial matches in both english and the translated\n+entry are shown.\n+\n+The list of terms is taken from the linkgit:gitglossary[7].\n+Currently they are:\n+\n+include::glossary-content.txt[]\n+\n+\n+SEE ALSO\n+--------\n+linkgit:gitglossary[7]\n+\n+GIT\n+---\n+Part of the linkgit:git[1] suite\n-- \n2.2.0.345.g7041aac\n"},{"id":"253340","messageId":"e7fbb52bac55c2e5adae78078386d7081bb39fb9.1418052470.git.git@drmicha.warpmail.net","threadId":"38143","inReplyTo":"cover.1418052470.git.git@drmicha.warpmail.net","subject":"[RFC/PATCH 4/5] l10n: git-glossary","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2014-12-08T15:38:58Z","receivedAt":"2014-12-08T15:38:58Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"git.pot update for the new glossary command.\n\nSigned-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n---\n po/git.pot | 1362 ++++++++++++++++++++++++++++++++++++------------------------\n 1 file changed, 829 insertions(+), 533 deletions(-)\n\ndiff --git a/po/git.pot b/po/git.pot\nindex ee91402..d725a5d 100644\n--- a/po/git.pot\n+++ b/po/git.pot\n@@ -8,7 +8,7 @@ msgid \"\"\n msgstr \"\"\n \"Project-Id-Version: PACKAGE VERSION\\n\"\n \"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\\n\"\n-\"POT-Creation-Date: 2014-11-20 09:42+0800\\n\"\n+\"POT-Creation-Date: 2014-12-08 16:02+0100\\n\"\n \"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n \"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n \"Language-Team: LANGUAGE <LL@li.org>\\n\"\n@@ -70,8 +70,8 @@ msgstr \"\"\n #: archive.c:422 builtin/archive.c:88 builtin/blame.c:2517\n #: builtin/blame.c:2518 builtin/config.c:57 builtin/fast-export.c:986\n #: builtin/fast-export.c:988 builtin/grep.c:712 builtin/hash-object.c:101\n-#: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:411\n-#: builtin/notes.c:568 builtin/read-tree.c:109 parse-options.h:151\n+#: builtin/ls-files.c:489 builtin/ls-files.c:492 builtin/notes.c:394\n+#: builtin/notes.c:557 builtin/read-tree.c:109 parse-options.h:151\n msgid \"file\"\n msgstr \"\"\n \n@@ -103,7 +103,7 @@ msgstr \"\"\n msgid \"list supported archive formats\"\n msgstr \"\"\n \n-#: archive.c:441 builtin/archive.c:90 builtin/clone.c:85\n+#: archive.c:441 builtin/archive.c:90 builtin/clone.c:86\n msgid \"repo\"\n msgstr \"\"\n \n@@ -111,7 +111,7 @@ msgstr \"\"\n msgid \"retrieve the archive from remote repository <repo>\"\n msgstr \"\"\n \n-#: archive.c:443 builtin/archive.c:92 builtin/notes.c:490\n+#: archive.c:443 builtin/archive.c:92 builtin/notes.c:478\n msgid \"command\"\n msgstr \"\"\n \n@@ -236,7 +236,7 @@ msgstr \"\"\n msgid \"unrecognized header: %s%s (%d)\"\n msgstr \"\"\n \n-#: bundle.c:87 builtin/commit.c:788\n+#: bundle.c:87 builtin/commit.c:834\n #, c-format\n msgid \"could not open '%s'\"\n msgstr \"\"\n@@ -245,9 +245,9 @@ msgstr \"\"\n msgid \"Repository lacks these prerequisite commits:\"\n msgstr \"\"\n \n-#: bundle.c:163 sequencer.c:641 sequencer.c:1096 builtin/blame.c:2706\n-#: builtin/branch.c:652 builtin/commit.c:1085 builtin/log.c:330\n-#: builtin/log.c:823 builtin/log.c:1432 builtin/log.c:1669 builtin/merge.c:357\n+#: bundle.c:163 sequencer.c:645 sequencer.c:1100 builtin/blame.c:2706\n+#: builtin/branch.c:652 builtin/commit.c:1107 builtin/log.c:330\n+#: builtin/log.c:823 builtin/log.c:1432 builtin/log.c:1669 builtin/merge.c:358\n #: builtin/shortlog.c:158\n msgid \"revision walk setup failed\"\n msgstr \"\"\n@@ -604,11 +604,11 @@ msgstr[1] \"\"\n msgid \"%s: %s - %s\"\n msgstr \"\"\n \n-#: lockfile.c:275\n+#: lockfile.c:283\n msgid \"BUG: reopen a lockfile that is still open\"\n msgstr \"\"\n \n-#: lockfile.c:277\n+#: lockfile.c:285\n msgid \"BUG: reopen a lockfile that has been committed\"\n msgstr \"\"\n \n@@ -616,8 +616,8 @@ msgstr \"\"\n msgid \"failed to read the cache\"\n msgstr \"\"\n \n-#: merge.c:94 builtin/checkout.c:356 builtin/checkout.c:562\n-#: builtin/clone.c:659\n+#: merge.c:94 builtin/checkout.c:374 builtin/checkout.c:580\n+#: builtin/clone.c:662\n msgid \"unable to write new index file\"\n msgstr \"\"\n \n@@ -664,7 +664,7 @@ msgstr \"\"\n msgid \"blob expected for %s '%s'\"\n msgstr \"\"\n \n-#: merge-recursive.c:792 builtin/clone.c:318\n+#: merge-recursive.c:792 builtin/clone.c:321\n #, c-format\n msgid \"failed to open '%s'\"\n msgstr \"\"\n@@ -861,7 +861,7 @@ msgstr \"\"\n msgid \"Could not parse object '%s'\"\n msgstr \"\"\n \n-#: merge-recursive.c:2019 builtin/merge.c:666\n+#: merge-recursive.c:2019 builtin/merge.c:667\n msgid \"Unable to write index.\"\n msgstr \"\"\n \n@@ -1017,32 +1017,32 @@ msgstr \"\"\n msgid \"Internal error\"\n msgstr \"\"\n \n-#: remote.c:1968\n+#: remote.c:1980\n #, c-format\n msgid \"Your branch is based on '%s', but the upstream is gone.\\n\"\n msgstr \"\"\n \n-#: remote.c:1972\n+#: remote.c:1984\n msgid \"  (use \\\"git branch --unset-upstream\\\" to fixup)\\n\"\n msgstr \"\"\n \n-#: remote.c:1975\n+#: remote.c:1987\n #, c-format\n msgid \"Your branch is up-to-date with '%s'.\\n\"\n msgstr \"\"\n \n-#: remote.c:1979\n+#: remote.c:1991\n #, c-format\n msgid \"Your branch is ahead of '%s' by %d commit.\\n\"\n msgid_plural \"Your branch is ahead of '%s' by %d commits.\\n\"\n msgstr[0] \"\"\n msgstr[1] \"\"\n \n-#: remote.c:1985\n+#: remote.c:1997\n msgid \"  (use \\\"git push\\\" to publish your local commits)\\n\"\n msgstr \"\"\n \n-#: remote.c:1988\n+#: remote.c:2000\n #, c-format\n msgid \"Your branch is behind '%s' by %d commit, and can be fast-forwarded.\\n\"\n msgid_plural \"\"\n@@ -1050,11 +1050,11 @@ msgid_plural \"\"\n msgstr[0] \"\"\n msgstr[1] \"\"\n \n-#: remote.c:1996\n+#: remote.c:2008\n msgid \"  (use \\\"git pull\\\" to update your local branch)\\n\"\n msgstr \"\"\n \n-#: remote.c:1999\n+#: remote.c:2011\n #, c-format\n msgid \"\"\n \"Your branch and '%s' have diverged,\\n\"\n@@ -1065,7 +1065,7 @@ msgid_plural \"\"\n msgstr[0] \"\"\n msgstr[1] \"\"\n \n-#: remote.c:2009\n+#: remote.c:2021\n msgid \"  (use \\\"git pull\\\" to merge the remote branch into yours)\\n\"\n msgstr \"\"\n \n@@ -1086,14 +1086,14 @@ msgstr \"\"\n msgid \"the receiving end does not support --signed push\"\n msgstr \"\"\n \n-#: sequencer.c:172 builtin/merge.c:781 builtin/merge.c:892\n-#: builtin/merge.c:1002 builtin/merge.c:1012\n+#: sequencer.c:172 builtin/merge.c:782 builtin/merge.c:893 builtin/merge.c:994\n+#: builtin/merge.c:1004\n #, c-format\n msgid \"Could not open '%s' for writing\"\n msgstr \"\"\n \n-#: sequencer.c:174 builtin/merge.c:343 builtin/merge.c:784\n-#: builtin/merge.c:1004 builtin/merge.c:1017\n+#: sequencer.c:174 builtin/merge.c:344 builtin/merge.c:785 builtin/merge.c:996\n+#: builtin/merge.c:1009\n #, c-format\n msgid \"Could not write to '%s'\"\n msgstr \"\"\n@@ -1111,7 +1111,7 @@ msgid \"\"\n \"and commit the result with 'git commit'\"\n msgstr \"\"\n \n-#: sequencer.c:211 sequencer.c:852 sequencer.c:935\n+#: sequencer.c:211 sequencer.c:856 sequencer.c:939\n #, c-format\n msgid \"Could not write to %s\"\n msgstr \"\"\n@@ -1134,197 +1134,197 @@ msgid \"Commit your changes or stash them to proceed.\"\n msgstr \"\"\n \n #. TRANSLATORS: %s will be \"revert\" or \"cherry-pick\"\n-#: sequencer.c:304\n+#: sequencer.c:321\n #, c-format\n msgid \"%s: Unable to write new index file\"\n msgstr \"\"\n \n-#: sequencer.c:335\n+#: sequencer.c:339\n msgid \"Could not resolve HEAD commit\\n\"\n msgstr \"\"\n \n-#: sequencer.c:355\n+#: sequencer.c:359\n msgid \"Unable to update cache tree\\n\"\n msgstr \"\"\n \n-#: sequencer.c:402\n+#: sequencer.c:406\n #, c-format\n msgid \"Could not parse commit %s\\n\"\n msgstr \"\"\n \n-#: sequencer.c:407\n+#: sequencer.c:411\n #, c-format\n msgid \"Could not parse parent commit %s\\n\"\n msgstr \"\"\n \n-#: sequencer.c:473\n+#: sequencer.c:477\n msgid \"Your index file is unmerged.\"\n msgstr \"\"\n \n-#: sequencer.c:492\n+#: sequencer.c:496\n #, c-format\n msgid \"Commit %s is a merge but no -m option was given.\"\n msgstr \"\"\n \n-#: sequencer.c:500\n+#: sequencer.c:504\n #, c-format\n msgid \"Commit %s does not have parent %d\"\n msgstr \"\"\n \n-#: sequencer.c:504\n+#: sequencer.c:508\n #, c-format\n msgid \"Mainline was specified but commit %s is not a merge.\"\n msgstr \"\"\n \n #. TRANSLATORS: The first %s will be \"revert\" or\n #. \"cherry-pick\", the second %s a SHA1\n-#: sequencer.c:517\n+#: sequencer.c:521\n #, c-format\n msgid \"%s: cannot parse parent commit %s\"\n msgstr \"\"\n \n-#: sequencer.c:521\n+#: sequencer.c:525\n #, c-format\n msgid \"Cannot get commit message for %s\"\n msgstr \"\"\n \n-#: sequencer.c:607\n+#: sequencer.c:611\n #, c-format\n msgid \"could not revert %s... %s\"\n msgstr \"\"\n \n-#: sequencer.c:608\n+#: sequencer.c:612\n #, c-format\n msgid \"could not apply %s... %s\"\n msgstr \"\"\n \n-#: sequencer.c:644\n+#: sequencer.c:648\n msgid \"empty commit set passed\"\n msgstr \"\"\n \n-#: sequencer.c:652\n+#: sequencer.c:656\n #, c-format\n msgid \"git %s: failed to read the index\"\n msgstr \"\"\n \n-#: sequencer.c:656\n+#: sequencer.c:660\n #, c-format\n msgid \"git %s: failed to refresh the index\"\n msgstr \"\"\n \n-#: sequencer.c:716\n+#: sequencer.c:720\n #, c-format\n msgid \"Cannot %s during a %s\"\n msgstr \"\"\n \n-#: sequencer.c:738\n+#: sequencer.c:742\n #, c-format\n msgid \"Could not parse line %d.\"\n msgstr \"\"\n \n-#: sequencer.c:743\n+#: sequencer.c:747\n msgid \"No commits parsed.\"\n msgstr \"\"\n \n-#: sequencer.c:756\n+#: sequencer.c:760\n #, c-format\n msgid \"Could not open %s\"\n msgstr \"\"\n \n-#: sequencer.c:760\n+#: sequencer.c:764\n #, c-format\n msgid \"Could not read %s.\"\n msgstr \"\"\n \n-#: sequencer.c:767\n+#: sequencer.c:771\n #, c-format\n msgid \"Unusable instruction sheet: %s\"\n msgstr \"\"\n \n-#: sequencer.c:797\n+#: sequencer.c:801\n #, c-format\n msgid \"Invalid key: %s\"\n msgstr \"\"\n \n-#: sequencer.c:800\n+#: sequencer.c:804\n #, c-format\n msgid \"Invalid value for %s: %s\"\n msgstr \"\"\n \n-#: sequencer.c:812\n+#: sequencer.c:816\n #, c-format\n msgid \"Malformed options sheet: %s\"\n msgstr \"\"\n \n-#: sequencer.c:833\n+#: sequencer.c:837\n msgid \"a cherry-pick or revert is already in progress\"\n msgstr \"\"\n \n-#: sequencer.c:834\n+#: sequencer.c:838\n msgid \"try \\\"git cherry-pick (--continue | --quit | --abort)\\\"\"\n msgstr \"\"\n \n-#: sequencer.c:838\n+#: sequencer.c:842\n #, c-format\n msgid \"Could not create sequencer directory %s\"\n msgstr \"\"\n \n-#: sequencer.c:854 sequencer.c:939\n+#: sequencer.c:858 sequencer.c:943\n #, c-format\n msgid \"Error wrapping up %s.\"\n msgstr \"\"\n \n-#: sequencer.c:873 sequencer.c:1009\n+#: sequencer.c:877 sequencer.c:1013\n msgid \"no cherry-pick or revert in progress\"\n msgstr \"\"\n \n-#: sequencer.c:875\n+#: sequencer.c:879\n msgid \"cannot resolve HEAD\"\n msgstr \"\"\n \n-#: sequencer.c:877\n+#: sequencer.c:881\n msgid \"cannot abort from a branch yet to be born\"\n msgstr \"\"\n \n-#: sequencer.c:899 builtin/apply.c:4128\n+#: sequencer.c:903 builtin/apply.c:4128\n #, c-format\n msgid \"cannot open %s: %s\"\n msgstr \"\"\n \n-#: sequencer.c:902\n+#: sequencer.c:906\n #, c-format\n msgid \"cannot read %s: %s\"\n msgstr \"\"\n \n-#: sequencer.c:903\n+#: sequencer.c:907\n msgid \"unexpected end of file\"\n msgstr \"\"\n \n-#: sequencer.c:909\n+#: sequencer.c:913\n #, c-format\n msgid \"stored pre-cherry-pick HEAD file '%s' is corrupt\"\n msgstr \"\"\n \n-#: sequencer.c:932\n+#: sequencer.c:936\n #, c-format\n msgid \"Could not format %s.\"\n msgstr \"\"\n \n-#: sequencer.c:1077\n+#: sequencer.c:1081\n #, c-format\n msgid \"%s: can't cherry-pick a %s\"\n msgstr \"\"\n \n-#: sequencer.c:1080\n+#: sequencer.c:1084\n #, c-format\n msgid \"%s: bad revision\"\n msgstr \"\"\n \n-#: sequencer.c:1114\n+#: sequencer.c:1118\n msgid \"Can't revert as initial commit\"\n msgstr \"\"\n \n-#: sequencer.c:1115\n+#: sequencer.c:1119\n msgid \"Can't cherry-pick into empty head\"\n msgstr \"\"\n \n@@ -1383,7 +1383,7 @@ msgstr \"\"\n msgid \"staging updated .gitmodules failed\"\n msgstr \"\"\n \n-#: submodule.c:1111 builtin/init-db.c:363\n+#: submodule.c:1111 builtin/init-db.c:364\n #, c-format\n msgid \"Could not create git link %s\"\n msgstr \"\"\n@@ -1611,193 +1611,193 @@ msgstr \"\"\n msgid \"bug: unhandled diff status %c\"\n msgstr \"\"\n \n-#: wt-status.c:761\n+#: wt-status.c:758\n msgid \"Submodules changed but not updated:\"\n msgstr \"\"\n \n-#: wt-status.c:763\n+#: wt-status.c:760\n msgid \"Submodule changes to be committed:\"\n msgstr \"\"\n \n-#: wt-status.c:842\n+#: wt-status.c:839\n msgid \"\"\n \"Do not touch the line above.\\n\"\n \"Everything below will be removed.\"\n msgstr \"\"\n \n-#: wt-status.c:933\n+#: wt-status.c:930\n msgid \"You have unmerged paths.\"\n msgstr \"\"\n \n-#: wt-status.c:936\n+#: wt-status.c:933\n msgid \"  (fix conflicts and run \\\"git commit\\\")\"\n msgstr \"\"\n \n-#: wt-status.c:939\n+#: wt-status.c:936\n msgid \"All conflicts fixed but you are still merging.\"\n msgstr \"\"\n \n-#: wt-status.c:942\n+#: wt-status.c:939\n msgid \"  (use \\\"git commit\\\" to conclude merge)\"\n msgstr \"\"\n \n-#: wt-status.c:952\n+#: wt-status.c:949\n msgid \"You are in the middle of an am session.\"\n msgstr \"\"\n \n-#: wt-status.c:955\n+#: wt-status.c:952\n msgid \"The current patch is empty.\"\n msgstr \"\"\n \n-#: wt-status.c:959\n+#: wt-status.c:956\n msgid \"  (fix conflicts and then run \\\"git am --continue\\\")\"\n msgstr \"\"\n \n-#: wt-status.c:961\n+#: wt-status.c:958\n msgid \"  (use \\\"git am --skip\\\" to skip this patch)\"\n msgstr \"\"\n \n-#: wt-status.c:963\n+#: wt-status.c:960\n msgid \"  (use \\\"git am --abort\\\" to restore the original branch)\"\n msgstr \"\"\n \n-#: wt-status.c:1023 wt-status.c:1040\n+#: wt-status.c:1020 wt-status.c:1037\n #, c-format\n msgid \"You are currently rebasing branch '%s' on '%s'.\"\n msgstr \"\"\n \n-#: wt-status.c:1028 wt-status.c:1045\n+#: wt-status.c:1025 wt-status.c:1042\n msgid \"You are currently rebasing.\"\n msgstr \"\"\n \n-#: wt-status.c:1031\n+#: wt-status.c:1028\n msgid \"  (fix conflicts and then run \\\"git rebase --continue\\\")\"\n msgstr \"\"\n \n-#: wt-status.c:1033\n+#: wt-status.c:1030\n msgid \"  (use \\\"git rebase --skip\\\" to skip this patch)\"\n msgstr \"\"\n \n-#: wt-status.c:1035\n+#: wt-status.c:1032\n msgid \"  (use \\\"git rebase --abort\\\" to check out the original branch)\"\n msgstr \"\"\n \n-#: wt-status.c:1048\n+#: wt-status.c:1045\n msgid \"  (all conflicts fixed: run \\\"git rebase --continue\\\")\"\n msgstr \"\"\n \n-#: wt-status.c:1052\n+#: wt-status.c:1049\n #, c-format\n msgid \"\"\n \"You are currently splitting a commit while rebasing branch '%s' on '%s'.\"\n msgstr \"\"\n \n-#: wt-status.c:1057\n+#: wt-status.c:1054\n msgid \"You are currently splitting a commit during a rebase.\"\n msgstr \"\"\n \n-#: wt-status.c:1060\n+#: wt-status.c:1057\n msgid \"  (Once your working directory is clean, run \\\"git rebase --continue\\\")\"\n msgstr \"\"\n \n-#: wt-status.c:1064\n+#: wt-status.c:1061\n #, c-format\n msgid \"You are currently editing a commit while rebasing branch '%s' on '%s'.\"\n msgstr \"\"\n \n-#: wt-status.c:1069\n+#: wt-status.c:1066\n msgid \"You are currently editing a commit during a rebase.\"\n msgstr \"\"\n \n-#: wt-status.c:1072\n+#: wt-status.c:1069\n msgid \"  (use \\\"git commit --amend\\\" to amend the current commit)\"\n msgstr \"\"\n \n-#: wt-status.c:1074\n+#: wt-status.c:1071\n msgid \"\"\n \"  (use \\\"git rebase --continue\\\" once you are satisfied with your changes)\"\n msgstr \"\"\n \n-#: wt-status.c:1084\n+#: wt-status.c:1081\n #, c-format\n msgid \"You are currently cherry-picking commit %s.\"\n msgstr \"\"\n \n-#: wt-status.c:1089\n+#: wt-status.c:1086\n msgid \"  (fix conflicts and run \\\"git cherry-pick --continue\\\")\"\n msgstr \"\"\n \n-#: wt-status.c:1092\n+#: wt-status.c:1089\n msgid \"  (all conflicts fixed: run \\\"git cherry-pick --continue\\\")\"\n msgstr \"\"\n \n-#: wt-status.c:1094\n+#: wt-status.c:1091\n msgid \"  (use \\\"git cherry-pick --abort\\\" to cancel the cherry-pick operation)\"\n msgstr \"\"\n \n-#: wt-status.c:1103\n+#: wt-status.c:1100\n #, c-format\n msgid \"You are currently reverting commit %s.\"\n msgstr \"\"\n \n-#: wt-status.c:1108\n+#: wt-status.c:1105\n msgid \"  (fix conflicts and run \\\"git revert --continue\\\")\"\n msgstr \"\"\n \n-#: wt-status.c:1111\n+#: wt-status.c:1108\n msgid \"  (all conflicts fixed: run \\\"git revert --continue\\\")\"\n msgstr \"\"\n \n-#: wt-status.c:1113\n+#: wt-status.c:1110\n msgid \"  (use \\\"git revert --abort\\\" to cancel the revert operation)\"\n msgstr \"\"\n \n-#: wt-status.c:1124\n+#: wt-status.c:1121\n #, c-format\n msgid \"You are currently bisecting, started from branch '%s'.\"\n msgstr \"\"\n \n-#: wt-status.c:1128\n+#: wt-status.c:1125\n msgid \"You are currently bisecting.\"\n msgstr \"\"\n \n-#: wt-status.c:1131\n+#: wt-status.c:1128\n msgid \"  (use \\\"git bisect reset\\\" to get back to the original branch)\"\n msgstr \"\"\n \n-#: wt-status.c:1306\n+#: wt-status.c:1303\n msgid \"On branch \"\n msgstr \"\"\n \n-#: wt-status.c:1313\n+#: wt-status.c:1310\n msgid \"rebase in progress; onto \"\n msgstr \"\"\n \n-#: wt-status.c:1320\n+#: wt-status.c:1317\n msgid \"HEAD detached at \"\n msgstr \"\"\n \n-#: wt-status.c:1322\n+#: wt-status.c:1319\n msgid \"HEAD detached from \"\n msgstr \"\"\n \n-#: wt-status.c:1325\n+#: wt-status.c:1322\n msgid \"Not currently on any branch.\"\n msgstr \"\"\n \n-#: wt-status.c:1342\n+#: wt-status.c:1339\n msgid \"Initial commit\"\n msgstr \"\"\n \n-#: wt-status.c:1356\n+#: wt-status.c:1353\n msgid \"Untracked files\"\n msgstr \"\"\n \n-#: wt-status.c:1358\n+#: wt-status.c:1355\n msgid \"Ignored files\"\n msgstr \"\"\n \n-#: wt-status.c:1362\n+#: wt-status.c:1359\n #, c-format\n msgid \"\"\n \"It took %.2f seconds to enumerate untracked files. 'status -uno'\\n\"\n@@ -1805,82 +1805,77 @@ msgid \"\"\n \"new files yourself (see 'git help status').\"\n msgstr \"\"\n \n-#: wt-status.c:1368\n+#: wt-status.c:1365\n #, c-format\n msgid \"Untracked files not listed%s\"\n msgstr \"\"\n \n-#: wt-status.c:1370\n+#: wt-status.c:1367\n msgid \" (use -u option to show untracked files)\"\n msgstr \"\"\n \n-#: wt-status.c:1376\n+#: wt-status.c:1373\n msgid \"No changes\"\n msgstr \"\"\n \n-#: wt-status.c:1381\n+#: wt-status.c:1378\n #, c-format\n msgid \"no changes added to commit (use \\\"git add\\\" and/or \\\"git commit -a\\\")\\n\"\n msgstr \"\"\n \n-#: wt-status.c:1384\n+#: wt-status.c:1381\n #, c-format\n msgid \"no changes added to commit\\n\"\n msgstr \"\"\n \n-#: wt-status.c:1387\n+#: wt-status.c:1384\n #, c-format\n msgid \"\"\n \"nothing added to commit but untracked files present (use \\\"git add\\\" to \"\n \"track)\\n\"\n msgstr \"\"\n \n-#: wt-status.c:1390\n+#: wt-status.c:1387\n #, c-format\n msgid \"nothing added to commit but untracked files present\\n\"\n msgstr \"\"\n \n-#: wt-status.c:1393\n+#: wt-status.c:1390\n #, c-format\n msgid \"nothing to commit (create/copy files and use \\\"git add\\\" to track)\\n\"\n msgstr \"\"\n \n-#: wt-status.c:1396 wt-status.c:1401\n+#: wt-status.c:1393 wt-status.c:1398\n #, c-format\n msgid \"nothing to commit\\n\"\n msgstr \"\"\n \n-#: wt-status.c:1399\n+#: wt-status.c:1396\n #, c-format\n msgid \"nothing to commit (use -u to show untracked files)\\n\"\n msgstr \"\"\n \n-#: wt-status.c:1403\n+#: wt-status.c:1400\n #, c-format\n msgid \"nothing to commit, working directory clean\\n\"\n msgstr \"\"\n \n-#: wt-status.c:1512\n+#: wt-status.c:1509\n msgid \"HEAD (no branch)\"\n msgstr \"\"\n \n-#: wt-status.c:1518\n+#: wt-status.c:1515\n msgid \"Initial commit on \"\n msgstr \"\"\n \n-#: wt-status.c:1550\n+#: wt-status.c:1547\n msgid \"gone\"\n msgstr \"\"\n \n-#: wt-status.c:1552 wt-status.c:1560\n+#: wt-status.c:1549 wt-status.c:1557\n msgid \"behind \"\n msgstr \"\"\n \n-#: compat/precompose_utf8.c:55 builtin/clone.c:357\n-#, c-format\n-msgid \"failed to unlink '%s'\"\n-msgstr \"\"\n-\n #: builtin/add.c:22\n msgid \"git add [options] [--] <pathspec>...\"\n msgstr \"\"\n@@ -1941,7 +1936,7 @@ msgid \"dry run\"\n msgstr \"\"\n \n #: builtin/add.c:249 builtin/apply.c:4415 builtin/check-ignore.c:19\n-#: builtin/commit.c:1362 builtin/count-objects.c:63 builtin/fsck.c:608\n+#: builtin/commit.c:1384 builtin/count-objects.c:63 builtin/fsck.c:608\n #: builtin/log.c:1617 builtin/mv.c:109 builtin/read-tree.c:114\n msgid \"be verbose\"\n msgstr \"\"\n@@ -1950,7 +1945,7 @@ msgstr \"\"\n msgid \"interactive picking\"\n msgstr \"\"\n \n-#: builtin/add.c:252 builtin/checkout.c:1108 builtin/reset.c:286\n+#: builtin/add.c:252 builtin/checkout.c:1126 builtin/reset.c:286\n msgid \"select hunks interactively\"\n msgstr \"\"\n \n@@ -2271,7 +2266,7 @@ msgstr \"\"\n msgid \"Checking patch %s...\"\n msgstr \"\"\n \n-#: builtin/apply.c:3746 builtin/checkout.c:213 builtin/reset.c:135\n+#: builtin/apply.c:3746 builtin/checkout.c:231 builtin/reset.c:135\n #, c-format\n msgid \"make_cache_entry failed for path '%s'\"\n msgstr \"\"\n@@ -2350,7 +2345,7 @@ msgstr \"\"\n msgid \"unable to read index file\"\n msgstr \"\"\n \n-#: builtin/apply.c:4362 builtin/apply.c:4365 builtin/clone.c:91\n+#: builtin/apply.c:4362 builtin/apply.c:4365 builtin/clone.c:92\n #: builtin/fetch.c:93\n msgid \"path\"\n msgstr \"\"\n@@ -2883,9 +2878,9 @@ msgid \"act on remote-tracking branches\"\n msgstr \"\"\n \n #: builtin/branch.c:827 builtin/branch.c:833 builtin/branch.c:854\n-#: builtin/branch.c:860 builtin/commit.c:1622 builtin/commit.c:1623\n-#: builtin/commit.c:1624 builtin/commit.c:1625 builtin/tag.c:616\n-#: builtin/tag.c:622\n+#: builtin/branch.c:860 builtin/commit.c:1644 builtin/commit.c:1645\n+#: builtin/commit.c:1646 builtin/commit.c:1647 builtin/tag.c:616\n+#: builtin/tag.c:622 glossary.h:14\n msgid \"commit\"\n msgstr \"\"\n \n@@ -2949,7 +2944,7 @@ msgstr \"\"\n msgid \"Failed to resolve HEAD as a valid ref.\"\n msgstr \"\"\n \n-#: builtin/branch.c:881 builtin/clone.c:634\n+#: builtin/branch.c:881 builtin/clone.c:637\n msgid \"HEAD not found below refs/heads!\"\n msgstr \"\"\n \n@@ -3126,7 +3121,7 @@ msgstr \"\"\n msgid \"terminate input and output records by a NUL character\"\n msgstr \"\"\n \n-#: builtin/check-ignore.c:18 builtin/checkout.c:1089 builtin/gc.c:274\n+#: builtin/check-ignore.c:18 builtin/checkout.c:1107 builtin/gc.c:274\n msgid \"suppress progress reporting\"\n msgstr \"\"\n \n@@ -3231,105 +3226,105 @@ msgstr \"\"\n msgid \"git checkout [options] [<branch>] -- <file>...\"\n msgstr \"\"\n \n-#: builtin/checkout.c:114 builtin/checkout.c:147\n+#: builtin/checkout.c:132 builtin/checkout.c:165\n #, c-format\n msgid \"path '%s' does not have our version\"\n msgstr \"\"\n \n-#: builtin/checkout.c:116 builtin/checkout.c:149\n+#: builtin/checkout.c:134 builtin/checkout.c:167\n #, c-format\n msgid \"path '%s' does not have their version\"\n msgstr \"\"\n \n-#: builtin/checkout.c:132\n+#: builtin/checkout.c:150\n #, c-format\n msgid \"path '%s' does not have all necessary versions\"\n msgstr \"\"\n \n-#: builtin/checkout.c:176\n+#: builtin/checkout.c:194\n #, c-format\n msgid \"path '%s' does not have necessary versions\"\n msgstr \"\"\n \n-#: builtin/checkout.c:193\n+#: builtin/checkout.c:211\n #, c-format\n msgid \"path '%s': cannot merge\"\n msgstr \"\"\n \n-#: builtin/checkout.c:210\n+#: builtin/checkout.c:228\n #, c-format\n msgid \"Unable to add merge result for '%s'\"\n msgstr \"\"\n \n-#: builtin/checkout.c:231 builtin/checkout.c:234 builtin/checkout.c:237\n-#: builtin/checkout.c:240\n+#: builtin/checkout.c:249 builtin/checkout.c:252 builtin/checkout.c:255\n+#: builtin/checkout.c:258\n #, c-format\n msgid \"'%s' cannot be used with updating paths\"\n msgstr \"\"\n \n-#: builtin/checkout.c:243 builtin/checkout.c:246\n+#: builtin/checkout.c:261 builtin/checkout.c:264\n #, c-format\n msgid \"'%s' cannot be used with %s\"\n msgstr \"\"\n \n-#: builtin/checkout.c:249\n+#: builtin/checkout.c:267\n #, c-format\n msgid \"Cannot update paths and switch to branch '%s' at the same time.\"\n msgstr \"\"\n \n-#: builtin/checkout.c:260 builtin/checkout.c:449\n+#: builtin/checkout.c:278 builtin/checkout.c:467\n msgid \"corrupt index file\"\n msgstr \"\"\n \n-#: builtin/checkout.c:320 builtin/checkout.c:327\n+#: builtin/checkout.c:338 builtin/checkout.c:345\n #, c-format\n msgid \"path '%s' is unmerged\"\n msgstr \"\"\n \n-#: builtin/checkout.c:471\n+#: builtin/checkout.c:489\n msgid \"you need to resolve your current index first\"\n msgstr \"\"\n \n-#: builtin/checkout.c:597\n+#: builtin/checkout.c:615\n #, c-format\n msgid \"Can not do reflog for '%s'\\n\"\n msgstr \"\"\n \n-#: builtin/checkout.c:635\n+#: builtin/checkout.c:653\n msgid \"HEAD is now at\"\n msgstr \"\"\n \n-#: builtin/checkout.c:642\n+#: builtin/checkout.c:660\n #, c-format\n msgid \"Reset branch '%s'\\n\"\n msgstr \"\"\n \n-#: builtin/checkout.c:645\n+#: builtin/checkout.c:663\n #, c-format\n msgid \"Already on '%s'\\n\"\n msgstr \"\"\n \n-#: builtin/checkout.c:649\n+#: builtin/checkout.c:667\n #, c-format\n msgid \"Switched to and reset branch '%s'\\n\"\n msgstr \"\"\n \n-#: builtin/checkout.c:651 builtin/checkout.c:1032\n+#: builtin/checkout.c:669 builtin/checkout.c:1050\n #, c-format\n msgid \"Switched to a new branch '%s'\\n\"\n msgstr \"\"\n \n-#: builtin/checkout.c:653\n+#: builtin/checkout.c:671\n #, c-format\n msgid \"Switched to branch '%s'\\n\"\n msgstr \"\"\n \n-#: builtin/checkout.c:705\n+#: builtin/checkout.c:723\n #, c-format\n msgid \" ... and %d more.\\n\"\n msgstr \"\"\n \n-#: builtin/checkout.c:711\n+#: builtin/checkout.c:729\n #, c-format\n msgid \"\"\n \"Warning: you are leaving %d commit behind, not connected to\\n\"\n@@ -3344,7 +3339,7 @@ msgid_plural \"\"\n msgstr[0] \"\"\n msgstr[1] \"\"\n \n-#: builtin/checkout.c:729\n+#: builtin/checkout.c:747\n #, c-format\n msgid \"\"\n \"If you want to keep them by creating a new branch, this may be a good time\\n\"\n@@ -3354,151 +3349,151 @@ msgid \"\"\n \"\\n\"\n msgstr \"\"\n \n-#: builtin/checkout.c:759\n+#: builtin/checkout.c:777\n msgid \"internal error in revision walk\"\n msgstr \"\"\n \n-#: builtin/checkout.c:763\n+#: builtin/checkout.c:781\n msgid \"Previous HEAD position was\"\n msgstr \"\"\n \n-#: builtin/checkout.c:790 builtin/checkout.c:1027\n+#: builtin/checkout.c:808 builtin/checkout.c:1045\n msgid \"You are on a branch yet to be born\"\n msgstr \"\"\n \n-#: builtin/checkout.c:934\n+#: builtin/checkout.c:952\n #, c-format\n msgid \"only one reference expected, %d given.\"\n msgstr \"\"\n \n-#: builtin/checkout.c:973\n+#: builtin/checkout.c:991\n #, c-format\n msgid \"invalid reference: %s\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1002\n+#: builtin/checkout.c:1020\n #, c-format\n msgid \"reference is not a tree: %s\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1041\n+#: builtin/checkout.c:1059\n msgid \"paths cannot be used with switching branches\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1044 builtin/checkout.c:1048\n+#: builtin/checkout.c:1062 builtin/checkout.c:1066\n #, c-format\n msgid \"'%s' cannot be used with switching branches\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1052 builtin/checkout.c:1055 builtin/checkout.c:1060\n-#: builtin/checkout.c:1063\n+#: builtin/checkout.c:1070 builtin/checkout.c:1073 builtin/checkout.c:1078\n+#: builtin/checkout.c:1081\n #, c-format\n msgid \"'%s' cannot be used with '%s'\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1068\n+#: builtin/checkout.c:1086\n #, c-format\n msgid \"Cannot switch branch to a non-commit '%s'\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1090 builtin/checkout.c:1092 builtin/clone.c:89\n-#: builtin/remote.c:159 builtin/remote.c:161\n+#: builtin/checkout.c:1108 builtin/checkout.c:1110 builtin/clone.c:90\n+#: builtin/remote.c:159 builtin/remote.c:161 glossary.h:7\n msgid \"branch\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1091\n+#: builtin/checkout.c:1109\n msgid \"create and checkout a new branch\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1093\n+#: builtin/checkout.c:1111\n msgid \"create/reset and checkout a branch\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1094\n+#: builtin/checkout.c:1112\n msgid \"create reflog for new branch\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1095\n+#: builtin/checkout.c:1113\n msgid \"detach the HEAD at named commit\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1096\n+#: builtin/checkout.c:1114\n msgid \"set upstream info for new branch\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1098\n+#: builtin/checkout.c:1116\n msgid \"new-branch\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1098\n+#: builtin/checkout.c:1116\n msgid \"new unparented branch\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1099\n+#: builtin/checkout.c:1117\n msgid \"checkout our version for unmerged files\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1101\n+#: builtin/checkout.c:1119\n msgid \"checkout their version for unmerged files\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1103\n+#: builtin/checkout.c:1121\n msgid \"force checkout (throw away local modifications)\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1104\n+#: builtin/checkout.c:1122\n msgid \"perform a 3-way merge with the new branch\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1105 builtin/merge.c:226\n+#: builtin/checkout.c:1123 builtin/merge.c:227\n msgid \"update ignored files (default)\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1106 builtin/log.c:1239 parse-options.h:245\n+#: builtin/checkout.c:1124 builtin/log.c:1239 parse-options.h:245\n msgid \"style\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1107\n+#: builtin/checkout.c:1125\n msgid \"conflict style (merge or diff3)\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1110\n+#: builtin/checkout.c:1128\n msgid \"do not limit pathspecs to sparse entries only\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1112\n+#: builtin/checkout.c:1130\n msgid \"second guess 'git checkout no-such-branch'\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1135\n+#: builtin/checkout.c:1153\n msgid \"-b, -B and --orphan are mutually exclusive\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1152\n+#: builtin/checkout.c:1170\n msgid \"--track needs a branch name\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1157\n+#: builtin/checkout.c:1175\n msgid \"Missing branch name; try -b\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1194\n+#: builtin/checkout.c:1212\n msgid \"invalid path specification\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1201\n+#: builtin/checkout.c:1219\n #, c-format\n msgid \"\"\n \"Cannot update paths and switch to branch '%s' at the same time.\\n\"\n \"Did you intend to checkout '%s' which can not be resolved as commit?\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1206\n+#: builtin/checkout.c:1224\n #, c-format\n msgid \"git checkout: --detach does not take a path argument '%s'\"\n msgstr \"\"\n \n-#: builtin/checkout.c:1210\n+#: builtin/checkout.c:1228\n msgid \"\"\n \"git checkout: --ours/--theirs, --force and --merge are incompatible when\\n\"\n \"checking out of the index.\"\n@@ -3664,254 +3659,275 @@ msgstr \"\"\n msgid \"git clone [options] [--] <repo> [<dir>]\"\n msgstr \"\"\n \n-#: builtin/clone.c:65 builtin/fetch.c:112 builtin/merge.c:223\n+#: builtin/clone.c:66 builtin/fetch.c:112 builtin/merge.c:224\n #: builtin/push.c:514\n msgid \"force progress reporting\"\n msgstr \"\"\n \n-#: builtin/clone.c:67\n+#: builtin/clone.c:68\n msgid \"don't create a checkout\"\n msgstr \"\"\n \n-#: builtin/clone.c:68 builtin/clone.c:70 builtin/init-db.c:488\n+#: builtin/clone.c:69 builtin/clone.c:71 builtin/init-db.c:489\n msgid \"create a bare repository\"\n msgstr \"\"\n \n-#: builtin/clone.c:72\n+#: builtin/clone.c:73\n msgid \"create a mirror repository (implies bare)\"\n msgstr \"\"\n \n-#: builtin/clone.c:74\n+#: builtin/clone.c:75\n msgid \"to clone from a local repository\"\n msgstr \"\"\n \n-#: builtin/clone.c:76\n+#: builtin/clone.c:77\n msgid \"don't use local hardlinks, always copy\"\n msgstr \"\"\n \n-#: builtin/clone.c:78\n+#: builtin/clone.c:79\n msgid \"setup as shared repository\"\n msgstr \"\"\n \n-#: builtin/clone.c:80 builtin/clone.c:82\n+#: builtin/clone.c:81 builtin/clone.c:83\n msgid \"initialize submodules in the clone\"\n msgstr \"\"\n \n-#: builtin/clone.c:83 builtin/init-db.c:485\n+#: builtin/clone.c:84 builtin/init-db.c:486\n msgid \"template-directory\"\n msgstr \"\"\n \n-#: builtin/clone.c:84 builtin/init-db.c:486\n+#: builtin/clone.c:85 builtin/init-db.c:487\n msgid \"directory from which templates will be used\"\n msgstr \"\"\n \n-#: builtin/clone.c:86\n+#: builtin/clone.c:87\n msgid \"reference repository\"\n msgstr \"\"\n \n-#: builtin/clone.c:87 builtin/column.c:26 builtin/merge-file.c:44\n+#: builtin/clone.c:88 builtin/column.c:26 builtin/merge-file.c:44\n msgid \"name\"\n msgstr \"\"\n \n-#: builtin/clone.c:88\n+#: builtin/clone.c:89\n msgid \"use <name> instead of 'origin' to track upstream\"\n msgstr \"\"\n \n-#: builtin/clone.c:90\n+#: builtin/clone.c:91\n msgid \"checkout <branch> instead of the remote's HEAD\"\n msgstr \"\"\n \n-#: builtin/clone.c:92\n+#: builtin/clone.c:93\n msgid \"path to git-upload-pack on the remote\"\n msgstr \"\"\n \n-#: builtin/clone.c:93 builtin/fetch.c:113 builtin/grep.c:659\n+#: builtin/clone.c:94 builtin/fetch.c:113 builtin/grep.c:659\n msgid \"depth\"\n msgstr \"\"\n \n-#: builtin/clone.c:94\n+#: builtin/clone.c:95\n msgid \"create a shallow clone of that depth\"\n msgstr \"\"\n \n-#: builtin/clone.c:96\n+#: builtin/clone.c:97\n msgid \"clone only one branch, HEAD or --branch\"\n msgstr \"\"\n \n-#: builtin/clone.c:97 builtin/init-db.c:494\n+#: builtin/clone.c:99\n+msgid \"use --reference only while cloning\"\n+msgstr \"\"\n+\n+#: builtin/clone.c:100 builtin/init-db.c:495\n msgid \"gitdir\"\n msgstr \"\"\n \n-#: builtin/clone.c:98 builtin/init-db.c:495\n+#: builtin/clone.c:101 builtin/init-db.c:496\n msgid \"separate git dir from working tree\"\n msgstr \"\"\n \n-#: builtin/clone.c:99\n+#: builtin/clone.c:102\n msgid \"key=value\"\n msgstr \"\"\n \n-#: builtin/clone.c:100\n+#: builtin/clone.c:103\n msgid \"set config inside the new repository\"\n msgstr \"\"\n \n-#: builtin/clone.c:253\n+#: builtin/clone.c:256\n #, c-format\n msgid \"reference repository '%s' is not a local repository.\"\n msgstr \"\"\n \n-#: builtin/clone.c:257\n+#: builtin/clone.c:260\n #, c-format\n msgid \"reference repository '%s' is shallow\"\n msgstr \"\"\n \n-#: builtin/clone.c:260\n+#: builtin/clone.c:263\n #, c-format\n msgid \"reference repository '%s' is grafted\"\n msgstr \"\"\n \n-#: builtin/clone.c:322\n+#: builtin/clone.c:325\n #, c-format\n msgid \"failed to create directory '%s'\"\n msgstr \"\"\n \n-#: builtin/clone.c:324 builtin/diff.c:84\n+#: builtin/clone.c:327 builtin/diff.c:84\n #, c-format\n msgid \"failed to stat '%s'\"\n msgstr \"\"\n \n-#: builtin/clone.c:326\n+#: builtin/clone.c:329\n #, c-format\n msgid \"%s exists and is not a directory\"\n msgstr \"\"\n \n-#: builtin/clone.c:340\n+#: builtin/clone.c:343\n #, c-format\n msgid \"failed to stat %s\\n\"\n msgstr \"\"\n \n-#: builtin/clone.c:362\n+#: builtin/clone.c:360\n+#, c-format\n+msgid \"failed to unlink '%s'\"\n+msgstr \"\"\n+\n+#: builtin/clone.c:365\n #, c-format\n msgid \"failed to create link '%s'\"\n msgstr \"\"\n \n-#: builtin/clone.c:366\n+#: builtin/clone.c:369\n #, c-format\n msgid \"failed to copy file to '%s'\"\n msgstr \"\"\n \n-#: builtin/clone.c:389 builtin/clone.c:563\n+#: builtin/clone.c:392 builtin/clone.c:566\n #, c-format\n msgid \"done.\\n\"\n msgstr \"\"\n \n-#: builtin/clone.c:401\n+#: builtin/clone.c:404\n msgid \"\"\n \"Clone succeeded, but checkout failed.\\n\"\n \"You can inspect what was checked out with 'git status'\\n\"\n \"and retry the checkout with 'git checkout -f HEAD'\\n\"\n msgstr \"\"\n \n-#: builtin/clone.c:478\n+#: builtin/clone.c:481\n #, c-format\n msgid \"Could not find remote branch %s to clone.\"\n msgstr \"\"\n \n-#: builtin/clone.c:558\n+#: builtin/clone.c:561\n #, c-format\n msgid \"Checking connectivity... \"\n msgstr \"\"\n \n-#: builtin/clone.c:561\n+#: builtin/clone.c:564\n msgid \"remote did not send all necessary objects\"\n msgstr \"\"\n \n-#: builtin/clone.c:625\n+#: builtin/clone.c:628\n msgid \"remote HEAD refers to nonexistent ref, unable to checkout.\\n\"\n msgstr \"\"\n \n-#: builtin/clone.c:656\n+#: builtin/clone.c:659\n msgid \"unable to checkout working tree\"\n msgstr \"\"\n \n-#: builtin/clone.c:765\n+#: builtin/clone.c:746\n+msgid \"cannot repack to clean up\"\n+msgstr \"\"\n+\n+#: builtin/clone.c:748\n+msgid \"cannot unlink temporary alternates file\"\n+msgstr \"\"\n+\n+#: builtin/clone.c:778\n msgid \"Too many arguments.\"\n msgstr \"\"\n \n-#: builtin/clone.c:769\n+#: builtin/clone.c:782\n msgid \"You must specify a repository to clone.\"\n msgstr \"\"\n \n-#: builtin/clone.c:780\n+#: builtin/clone.c:793\n #, c-format\n msgid \"--bare and --origin %s options are incompatible.\"\n msgstr \"\"\n \n-#: builtin/clone.c:783\n+#: builtin/clone.c:796\n msgid \"--bare and --separate-git-dir are incompatible.\"\n msgstr \"\"\n \n-#: builtin/clone.c:796\n+#: builtin/clone.c:809\n #, c-format\n msgid \"repository '%s' does not exist\"\n msgstr \"\"\n \n-#: builtin/clone.c:802 builtin/fetch.c:1155\n+#: builtin/clone.c:815 builtin/fetch.c:1155\n #, c-format\n msgid \"depth %s is not a positive number\"\n msgstr \"\"\n \n-#: builtin/clone.c:812\n+#: builtin/clone.c:825\n #, c-format\n msgid \"destination path '%s' already exists and is not an empty directory.\"\n msgstr \"\"\n \n-#: builtin/clone.c:822\n+#: builtin/clone.c:835\n #, c-format\n msgid \"working tree '%s' already exists.\"\n msgstr \"\"\n \n-#: builtin/clone.c:835 builtin/clone.c:847\n+#: builtin/clone.c:848 builtin/clone.c:860\n #, c-format\n msgid \"could not create leading directories of '%s'\"\n msgstr \"\"\n \n-#: builtin/clone.c:838\n+#: builtin/clone.c:851\n #, c-format\n msgid \"could not create work tree dir '%s'.\"\n msgstr \"\"\n \n-#: builtin/clone.c:857\n+#: builtin/clone.c:870\n #, c-format\n msgid \"Cloning into bare repository '%s'...\\n\"\n msgstr \"\"\n \n-#: builtin/clone.c:859\n+#: builtin/clone.c:872\n #, c-format\n msgid \"Cloning into '%s'...\\n\"\n msgstr \"\"\n \n-#: builtin/clone.c:895\n+#: builtin/clone.c:897\n+msgid \"--dissociate given, but there is no --reference\"\n+msgstr \"\"\n+\n+#: builtin/clone.c:912\n msgid \"--depth is ignored in local clones; use file:// instead.\"\n msgstr \"\"\n \n-#: builtin/clone.c:898\n+#: builtin/clone.c:915\n msgid \"source repository is shallow, ignoring --local\"\n msgstr \"\"\n \n-#: builtin/clone.c:903\n+#: builtin/clone.c:920\n msgid \"--local is ignored\"\n msgstr \"\"\n \n-#: builtin/clone.c:907\n+#: builtin/clone.c:924\n #, c-format\n msgid \"Don't know how to clone %s\"\n msgstr \"\"\n \n-#: builtin/clone.c:958 builtin/clone.c:966\n+#: builtin/clone.c:975 builtin/clone.c:983\n #, c-format\n msgid \"Remote branch %s not found in upstream %s\"\n msgstr \"\"\n \n-#: builtin/clone.c:969\n+#: builtin/clone.c:986\n msgid \"You appear to have cloned an empty repository.\"\n msgstr \"\"\n \n@@ -4088,43 +4104,43 @@ msgid \"\"\n \"in the current commit message\"\n msgstr \"\"\n \n-#: builtin/commit.c:712 builtin/commit.c:745 builtin/commit.c:1120\n+#: builtin/commit.c:758 builtin/commit.c:791 builtin/commit.c:1142\n #, c-format\n msgid \"could not lookup commit %s\"\n msgstr \"\"\n \n-#: builtin/commit.c:724 builtin/shortlog.c:273\n+#: builtin/commit.c:770 builtin/shortlog.c:273\n #, c-format\n msgid \"(reading log message from standard input)\\n\"\n msgstr \"\"\n \n-#: builtin/commit.c:726\n+#: builtin/commit.c:772\n msgid \"could not read log from standard input\"\n msgstr \"\"\n \n-#: builtin/commit.c:730\n+#: builtin/commit.c:776\n #, c-format\n msgid \"could not read log file '%s'\"\n msgstr \"\"\n \n-#: builtin/commit.c:752\n+#: builtin/commit.c:798\n msgid \"could not read MERGE_MSG\"\n msgstr \"\"\n \n-#: builtin/commit.c:756\n+#: builtin/commit.c:802\n msgid \"could not read SQUASH_MSG\"\n msgstr \"\"\n \n-#: builtin/commit.c:760\n+#: builtin/commit.c:806\n #, c-format\n msgid \"could not read '%s'\"\n msgstr \"\"\n \n-#: builtin/commit.c:831\n+#: builtin/commit.c:853\n msgid \"could not write commit template\"\n msgstr \"\"\n \n-#: builtin/commit.c:849\n+#: builtin/commit.c:871\n #, c-format\n msgid \"\"\n \"\\n\"\n@@ -4134,7 +4150,7 @@ msgid \"\"\n \"and try again.\\n\"\n msgstr \"\"\n \n-#: builtin/commit.c:854\n+#: builtin/commit.c:876\n #, c-format\n msgid \"\"\n \"\\n\"\n@@ -4144,14 +4160,14 @@ msgid \"\"\n \"and try again.\\n\"\n msgstr \"\"\n \n-#: builtin/commit.c:867\n+#: builtin/commit.c:889\n #, c-format\n msgid \"\"\n \"Please enter the commit message for your changes. Lines starting\\n\"\n \"with '%c' will be ignored, and an empty message aborts the commit.\\n\"\n msgstr \"\"\n \n-#: builtin/commit.c:874\n+#: builtin/commit.c:896\n #, c-format\n msgid \"\"\n \"Please enter the commit message for your changes. Lines starting\\n\"\n@@ -4159,348 +4175,348 @@ msgid \"\"\n \"An empty message aborts the commit.\\n\"\n msgstr \"\"\n \n-#: builtin/commit.c:888\n+#: builtin/commit.c:910\n #, c-format\n msgid \"%sAuthor:    %.*s <%.*s>\"\n msgstr \"\"\n \n-#: builtin/commit.c:896\n+#: builtin/commit.c:918\n #, c-format\n msgid \"%sDate:      %s\"\n msgstr \"\"\n \n-#: builtin/commit.c:903\n+#: builtin/commit.c:925\n #, c-format\n msgid \"%sCommitter: %.*s <%.*s>\"\n msgstr \"\"\n \n-#: builtin/commit.c:921\n+#: builtin/commit.c:943\n msgid \"Cannot read index\"\n msgstr \"\"\n \n-#: builtin/commit.c:978\n+#: builtin/commit.c:1000\n msgid \"Error building trees\"\n msgstr \"\"\n \n-#: builtin/commit.c:993 builtin/tag.c:495\n+#: builtin/commit.c:1015 builtin/tag.c:495\n #, c-format\n msgid \"Please supply the message using either -m or -F option.\\n\"\n msgstr \"\"\n \n-#: builtin/commit.c:1095\n+#: builtin/commit.c:1117\n #, c-format\n msgid \"No existing author found with '%s'\"\n msgstr \"\"\n \n-#: builtin/commit.c:1110 builtin/commit.c:1350\n+#: builtin/commit.c:1132 builtin/commit.c:1372\n #, c-format\n msgid \"Invalid untracked files mode '%s'\"\n msgstr \"\"\n \n-#: builtin/commit.c:1147\n+#: builtin/commit.c:1169\n msgid \"--long and -z are incompatible\"\n msgstr \"\"\n \n-#: builtin/commit.c:1177\n+#: builtin/commit.c:1199\n msgid \"Using both --reset-author and --author does not make sense\"\n msgstr \"\"\n \n-#: builtin/commit.c:1186\n+#: builtin/commit.c:1208\n msgid \"You have nothing to amend.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1189\n+#: builtin/commit.c:1211\n msgid \"You are in the middle of a merge -- cannot amend.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1191\n+#: builtin/commit.c:1213\n msgid \"You are in the middle of a cherry-pick -- cannot amend.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1194\n+#: builtin/commit.c:1216\n msgid \"Options --squash and --fixup cannot be used together\"\n msgstr \"\"\n \n-#: builtin/commit.c:1204\n+#: builtin/commit.c:1226\n msgid \"Only one of -c/-C/-F/--fixup can be used.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1206\n+#: builtin/commit.c:1228\n msgid \"Option -m cannot be combined with -c/-C/-F/--fixup.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1214\n+#: builtin/commit.c:1236\n msgid \"--reset-author can be used only with -C, -c or --amend.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1231\n+#: builtin/commit.c:1253\n msgid \"Only one of --include/--only/--all/--interactive/--patch can be used.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1233\n+#: builtin/commit.c:1255\n msgid \"No paths with --include/--only does not make sense.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1235\n+#: builtin/commit.c:1257\n msgid \"Clever... amending the last one with dirty index.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1237\n+#: builtin/commit.c:1259\n msgid \"Explicit paths specified without -i or -o; assuming --only paths...\"\n msgstr \"\"\n \n-#: builtin/commit.c:1249 builtin/tag.c:728\n+#: builtin/commit.c:1271 builtin/tag.c:728\n #, c-format\n msgid \"Invalid cleanup mode %s\"\n msgstr \"\"\n \n-#: builtin/commit.c:1254\n+#: builtin/commit.c:1276\n msgid \"Paths with -a does not make sense.\"\n msgstr \"\"\n \n-#: builtin/commit.c:1364 builtin/commit.c:1644\n+#: builtin/commit.c:1386 builtin/commit.c:1666\n msgid \"show status concisely\"\n msgstr \"\"\n \n-#: builtin/commit.c:1366 builtin/commit.c:1646\n+#: builtin/commit.c:1388 builtin/commit.c:1668\n msgid \"show branch information\"\n msgstr \"\"\n \n-#: builtin/commit.c:1368 builtin/commit.c:1648 builtin/push.c:500\n+#: builtin/commit.c:1390 builtin/commit.c:1670 builtin/push.c:500\n msgid \"machine-readable output\"\n msgstr \"\"\n \n-#: builtin/commit.c:1371 builtin/commit.c:1650\n+#: builtin/commit.c:1393 builtin/commit.c:1672\n msgid \"show status in long format (default)\"\n msgstr \"\"\n \n-#: builtin/commit.c:1374 builtin/commit.c:1653\n+#: builtin/commit.c:1396 builtin/commit.c:1675\n msgid \"terminate entries with NUL\"\n msgstr \"\"\n \n-#: builtin/commit.c:1376 builtin/commit.c:1656 builtin/fast-export.c:980\n+#: builtin/commit.c:1398 builtin/commit.c:1678 builtin/fast-export.c:980\n #: builtin/fast-export.c:983 builtin/tag.c:603\n msgid \"mode\"\n msgstr \"\"\n \n-#: builtin/commit.c:1377 builtin/commit.c:1656\n+#: builtin/commit.c:1399 builtin/commit.c:1678\n msgid \"show untracked files, optional modes: all, normal, no. (Default: all)\"\n msgstr \"\"\n \n-#: builtin/commit.c:1380\n+#: builtin/commit.c:1402\n msgid \"show ignored files\"\n msgstr \"\"\n \n-#: builtin/commit.c:1381 parse-options.h:153\n+#: builtin/commit.c:1403 parse-options.h:153\n msgid \"when\"\n msgstr \"\"\n \n-#: builtin/commit.c:1382\n+#: builtin/commit.c:1404\n msgid \"\"\n \"ignore changes to submodules, optional when: all, dirty, untracked. \"\n \"(Default: all)\"\n msgstr \"\"\n \n-#: builtin/commit.c:1384\n+#: builtin/commit.c:1406\n msgid \"list untracked files in columns\"\n msgstr \"\"\n \n-#: builtin/commit.c:1471\n+#: builtin/commit.c:1493\n msgid \"couldn't look up newly created commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1473\n+#: builtin/commit.c:1495\n msgid \"could not parse newly created commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1518\n+#: builtin/commit.c:1540 glossary.h:20\n msgid \"detached HEAD\"\n msgstr \"\"\n \n-#: builtin/commit.c:1521\n+#: builtin/commit.c:1543\n msgid \" (root-commit)\"\n msgstr \"\"\n \n-#: builtin/commit.c:1614\n+#: builtin/commit.c:1636\n msgid \"suppress summary after successful commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1615\n+#: builtin/commit.c:1637\n msgid \"show diff in commit message template\"\n msgstr \"\"\n \n-#: builtin/commit.c:1617\n+#: builtin/commit.c:1639\n msgid \"Commit message options\"\n msgstr \"\"\n \n-#: builtin/commit.c:1618 builtin/tag.c:601\n+#: builtin/commit.c:1640 builtin/tag.c:601\n msgid \"read message from file\"\n msgstr \"\"\n \n-#: builtin/commit.c:1619\n+#: builtin/commit.c:1641\n msgid \"author\"\n msgstr \"\"\n \n-#: builtin/commit.c:1619\n+#: builtin/commit.c:1641\n msgid \"override author for commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1620 builtin/gc.c:275\n+#: builtin/commit.c:1642 builtin/gc.c:275\n msgid \"date\"\n msgstr \"\"\n \n-#: builtin/commit.c:1620\n+#: builtin/commit.c:1642\n msgid \"override date for commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1621 builtin/merge.c:217 builtin/notes.c:408\n-#: builtin/notes.c:565 builtin/tag.c:599\n+#: builtin/commit.c:1643 builtin/merge.c:218 builtin/notes.c:391\n+#: builtin/notes.c:554 builtin/tag.c:599\n msgid \"message\"\n msgstr \"\"\n \n-#: builtin/commit.c:1621\n+#: builtin/commit.c:1643\n msgid \"commit message\"\n msgstr \"\"\n \n-#: builtin/commit.c:1622\n+#: builtin/commit.c:1644\n msgid \"reuse and edit message from specified commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1623\n+#: builtin/commit.c:1645\n msgid \"reuse message from specified commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1624\n+#: builtin/commit.c:1646\n msgid \"use autosquash formatted message to fixup specified commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1625\n+#: builtin/commit.c:1647\n msgid \"use autosquash formatted message to squash specified commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1626\n+#: builtin/commit.c:1648\n msgid \"the commit is authored by me now (used with -C/-c/--amend)\"\n msgstr \"\"\n \n-#: builtin/commit.c:1627 builtin/log.c:1191 builtin/revert.c:86\n+#: builtin/commit.c:1649 builtin/log.c:1191 builtin/revert.c:86\n msgid \"add Signed-off-by:\"\n msgstr \"\"\n \n-#: builtin/commit.c:1628\n+#: builtin/commit.c:1650\n msgid \"use specified template file\"\n msgstr \"\"\n \n-#: builtin/commit.c:1629\n+#: builtin/commit.c:1651\n msgid \"force edit of commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1630\n+#: builtin/commit.c:1652\n msgid \"default\"\n msgstr \"\"\n \n-#: builtin/commit.c:1630 builtin/tag.c:604\n+#: builtin/commit.c:1652 builtin/tag.c:604\n msgid \"how to strip spaces and #comments from message\"\n msgstr \"\"\n \n-#: builtin/commit.c:1631\n+#: builtin/commit.c:1653\n msgid \"include status in commit message template\"\n msgstr \"\"\n \n-#: builtin/commit.c:1632 builtin/merge.c:224 builtin/revert.c:92\n+#: builtin/commit.c:1654 builtin/merge.c:225 builtin/revert.c:92\n #: builtin/tag.c:605\n msgid \"key-id\"\n msgstr \"\"\n \n-#: builtin/commit.c:1633 builtin/merge.c:225 builtin/revert.c:93\n+#: builtin/commit.c:1655 builtin/merge.c:226 builtin/revert.c:93\n msgid \"GPG sign commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1636\n+#: builtin/commit.c:1658\n msgid \"Commit contents options\"\n msgstr \"\"\n \n-#: builtin/commit.c:1637\n+#: builtin/commit.c:1659\n msgid \"commit all changed files\"\n msgstr \"\"\n \n-#: builtin/commit.c:1638\n+#: builtin/commit.c:1660\n msgid \"add specified files to index for commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1639\n+#: builtin/commit.c:1661\n msgid \"interactively add files\"\n msgstr \"\"\n \n-#: builtin/commit.c:1640\n+#: builtin/commit.c:1662\n msgid \"interactively add changes\"\n msgstr \"\"\n \n-#: builtin/commit.c:1641\n+#: builtin/commit.c:1663\n msgid \"commit only specified files\"\n msgstr \"\"\n \n-#: builtin/commit.c:1642\n+#: builtin/commit.c:1664\n msgid \"bypass pre-commit hook\"\n msgstr \"\"\n \n-#: builtin/commit.c:1643\n+#: builtin/commit.c:1665\n msgid \"show what would be committed\"\n msgstr \"\"\n \n-#: builtin/commit.c:1654\n+#: builtin/commit.c:1676\n msgid \"amend previous commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1655\n+#: builtin/commit.c:1677\n msgid \"bypass post-rewrite hook\"\n msgstr \"\"\n \n-#: builtin/commit.c:1660\n+#: builtin/commit.c:1682\n msgid \"ok to record an empty change\"\n msgstr \"\"\n \n-#: builtin/commit.c:1662\n+#: builtin/commit.c:1684\n msgid \"ok to record a change with an empty message\"\n msgstr \"\"\n \n-#: builtin/commit.c:1691\n+#: builtin/commit.c:1713\n msgid \"could not parse HEAD commit\"\n msgstr \"\"\n \n-#: builtin/commit.c:1730 builtin/merge.c:518\n+#: builtin/commit.c:1752 builtin/merge.c:519\n #, c-format\n msgid \"could not open '%s' for reading\"\n msgstr \"\"\n \n-#: builtin/commit.c:1737\n+#: builtin/commit.c:1759\n #, c-format\n msgid \"Corrupt MERGE_HEAD file (%s)\"\n msgstr \"\"\n \n-#: builtin/commit.c:1744\n+#: builtin/commit.c:1766\n msgid \"could not read MERGE_MODE\"\n msgstr \"\"\n \n-#: builtin/commit.c:1763\n+#: builtin/commit.c:1785\n #, c-format\n msgid \"could not read commit message: %s\"\n msgstr \"\"\n \n-#: builtin/commit.c:1774\n+#: builtin/commit.c:1796\n #, c-format\n msgid \"Aborting commit; you did not edit the message.\\n\"\n msgstr \"\"\n \n-#: builtin/commit.c:1779\n+#: builtin/commit.c:1801\n #, c-format\n msgid \"Aborting commit due to empty commit message.\\n\"\n msgstr \"\"\n \n-#: builtin/commit.c:1794 builtin/merge.c:850 builtin/merge.c:875\n+#: builtin/commit.c:1816 builtin/merge.c:851 builtin/merge.c:876\n msgid \"failed to write commit object\"\n msgstr \"\"\n \n-#: builtin/commit.c:1827\n+#: builtin/commit.c:1849\n msgid \"\"\n \"Repository has been updated, but unable to write\\n\"\n \"new_index file. Check that disk is not full and quota is\\n\"\n@@ -4865,7 +4881,7 @@ msgstr \"\"\n msgid \"Skip output of blob data\"\n msgstr \"\"\n \n-#: builtin/fast-export.c:997\n+#: builtin/fast-export.c:997 glossary.h:59\n msgid \"refspec\"\n msgstr \"\"\n \n@@ -5142,7 +5158,7 @@ msgid \"git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]\"\n msgstr \"\"\n \n #: builtin/fmt-merge-msg.c:663 builtin/fmt-merge-msg.c:666 builtin/grep.c:698\n-#: builtin/merge.c:197 builtin/repack.c:179 builtin/repack.c:183\n+#: builtin/merge.c:198 builtin/repack.c:178 builtin/repack.c:182\n #: builtin/show-branch.c:654 builtin/show-ref.c:178 builtin/tag.c:590\n #: parse-options.h:132 parse-options.h:239\n msgid \"n\"\n@@ -5324,6 +5340,19 @@ msgid \"\"\n \"There are too many unreachable loose objects; run 'git prune' to remove them.\"\n msgstr \"\"\n \n+#: builtin/glossary.c:16\n+msgid \"match all English git messages\"\n+msgstr \"\"\n+\n+#: builtin/glossary.c:21\n+msgid \"git glossary [-a|--all] [term]...\"\n+msgstr \"\"\n+\n+#: builtin/glossary.c:85 builtin/help.c:463 builtin/help.c:480\n+#, c-format\n+msgid \"usage: %s%s\"\n+msgstr \"\"\n+\n #: builtin/grep.c:23\n msgid \"git grep [options] [-e] <pattern> [<rev>...] [[--] <path>...]\"\n msgstr \"\"\n@@ -5563,7 +5592,7 @@ msgstr \"\"\n msgid \"type\"\n msgstr \"\"\n \n-#: builtin/hash-object.c:94\n+#: builtin/hash-object.c:94 glossary.h:43\n msgid \"object type\"\n msgstr \"\"\n \n@@ -5698,11 +5727,6 @@ msgstr \"\"\n msgid \"The common Git guides are:\\n\"\n msgstr \"\"\n \n-#: builtin/help.c:463 builtin/help.c:480\n-#, c-format\n-msgid \"usage: %s%s\"\n-msgstr \"\"\n-\n #: builtin/help.c:496\n #, c-format\n msgid \"`git %s' is aliased to `%s'\"\n@@ -6066,17 +6090,17 @@ msgstr \"\"\n msgid \"insane git directory %s\"\n msgstr \"\"\n \n-#: builtin/init-db.c:323 builtin/init-db.c:326\n+#: builtin/init-db.c:324 builtin/init-db.c:327\n #, c-format\n msgid \"%s already exists\"\n msgstr \"\"\n \n-#: builtin/init-db.c:355\n+#: builtin/init-db.c:356\n #, c-format\n msgid \"unable to handle file type %d\"\n msgstr \"\"\n \n-#: builtin/init-db.c:358\n+#: builtin/init-db.c:359\n #, c-format\n msgid \"unable to move %s to %s\"\n msgstr \"\"\n@@ -6084,59 +6108,59 @@ msgstr \"\"\n #. TRANSLATORS: The first '%s' is either \"Reinitialized\n #. existing\" or \"Initialized empty\", the second \" shared\" or\n #. \"\", and the last '%s%s' is the verbatim directory name.\n-#: builtin/init-db.c:418\n+#: builtin/init-db.c:419\n #, c-format\n msgid \"%s%s Git repository in %s%s\\n\"\n msgstr \"\"\n \n-#: builtin/init-db.c:419\n+#: builtin/init-db.c:420\n msgid \"Reinitialized existing\"\n msgstr \"\"\n \n-#: builtin/init-db.c:419\n+#: builtin/init-db.c:420\n msgid \"Initialized empty\"\n msgstr \"\"\n \n-#: builtin/init-db.c:420\n+#: builtin/init-db.c:421\n msgid \" shared\"\n msgstr \"\"\n \n-#: builtin/init-db.c:467\n+#: builtin/init-db.c:468\n msgid \"\"\n \"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--\"\n \"shared[=<permissions>]] [directory]\"\n msgstr \"\"\n \n-#: builtin/init-db.c:490\n+#: builtin/init-db.c:491\n msgid \"permissions\"\n msgstr \"\"\n \n-#: builtin/init-db.c:491\n+#: builtin/init-db.c:492\n msgid \"specify that the git repository is to be shared amongst several users\"\n msgstr \"\"\n \n-#: builtin/init-db.c:493 builtin/prune-packed.c:57 builtin/repack.c:172\n+#: builtin/init-db.c:494 builtin/prune-packed.c:57 builtin/repack.c:171\n msgid \"be quiet\"\n msgstr \"\"\n \n-#: builtin/init-db.c:525 builtin/init-db.c:530\n+#: builtin/init-db.c:526 builtin/init-db.c:531\n #, c-format\n msgid \"cannot mkdir %s\"\n msgstr \"\"\n \n-#: builtin/init-db.c:534\n+#: builtin/init-db.c:535\n #, c-format\n msgid \"cannot chdir to %s\"\n msgstr \"\"\n \n-#: builtin/init-db.c:555\n+#: builtin/init-db.c:556\n #, c-format\n msgid \"\"\n \"%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-\"\n \"dir=<directory>)\"\n msgstr \"\"\n \n-#: builtin/init-db.c:583\n+#: builtin/init-db.c:584\n #, c-format\n msgid \"Cannot access work tree '%s'\"\n msgstr \"\"\n@@ -6568,179 +6592,179 @@ msgstr \"\"\n msgid \"list entire tree; not just current directory (implies --full-name)\"\n msgstr \"\"\n \n-#: builtin/merge.c:44\n+#: builtin/merge.c:45\n msgid \"git merge [options] [<commit>...]\"\n msgstr \"\"\n \n-#: builtin/merge.c:45\n+#: builtin/merge.c:46\n msgid \"git merge [options] <msg> HEAD <commit>\"\n msgstr \"\"\n \n-#: builtin/merge.c:46\n+#: builtin/merge.c:47\n msgid \"git merge --abort\"\n msgstr \"\"\n \n-#: builtin/merge.c:99\n+#: builtin/merge.c:100\n msgid \"switch `m' requires a value\"\n msgstr \"\"\n \n-#: builtin/merge.c:136\n+#: builtin/merge.c:137\n #, c-format\n msgid \"Could not find merge strategy '%s'.\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:137\n+#: builtin/merge.c:138\n #, c-format\n msgid \"Available strategies are:\"\n msgstr \"\"\n \n-#: builtin/merge.c:142\n+#: builtin/merge.c:143\n #, c-format\n msgid \"Available custom strategies are:\"\n msgstr \"\"\n \n-#: builtin/merge.c:192\n+#: builtin/merge.c:193\n msgid \"do not show a diffstat at the end of the merge\"\n msgstr \"\"\n \n-#: builtin/merge.c:195\n+#: builtin/merge.c:196\n msgid \"show a diffstat at the end of the merge\"\n msgstr \"\"\n \n-#: builtin/merge.c:196\n+#: builtin/merge.c:197\n msgid \"(synonym to --stat)\"\n msgstr \"\"\n \n-#: builtin/merge.c:198\n+#: builtin/merge.c:199\n msgid \"add (at most <n>) entries from shortlog to merge commit message\"\n msgstr \"\"\n \n-#: builtin/merge.c:201\n+#: builtin/merge.c:202\n msgid \"create a single commit instead of doing a merge\"\n msgstr \"\"\n \n-#: builtin/merge.c:203\n+#: builtin/merge.c:204\n msgid \"perform a commit if the merge succeeds (default)\"\n msgstr \"\"\n \n-#: builtin/merge.c:205\n+#: builtin/merge.c:206\n msgid \"edit message before committing\"\n msgstr \"\"\n \n-#: builtin/merge.c:206\n+#: builtin/merge.c:207\n msgid \"allow fast-forward (default)\"\n msgstr \"\"\n \n-#: builtin/merge.c:208\n+#: builtin/merge.c:209\n msgid \"abort if fast-forward is not possible\"\n msgstr \"\"\n \n-#: builtin/merge.c:212\n+#: builtin/merge.c:213\n msgid \"Verify that the named commit has a valid GPG signature\"\n msgstr \"\"\n \n-#: builtin/merge.c:213 builtin/notes.c:741 builtin/revert.c:89\n+#: builtin/merge.c:214 builtin/notes.c:753 builtin/revert.c:89\n msgid \"strategy\"\n msgstr \"\"\n \n-#: builtin/merge.c:214\n+#: builtin/merge.c:215\n msgid \"merge strategy to use\"\n msgstr \"\"\n \n-#: builtin/merge.c:215\n+#: builtin/merge.c:216\n msgid \"option=value\"\n msgstr \"\"\n \n-#: builtin/merge.c:216\n+#: builtin/merge.c:217\n msgid \"option for selected merge strategy\"\n msgstr \"\"\n \n-#: builtin/merge.c:218\n+#: builtin/merge.c:219\n msgid \"merge commit message (for a non-fast-forward merge)\"\n msgstr \"\"\n \n-#: builtin/merge.c:222\n+#: builtin/merge.c:223\n msgid \"abort the current in-progress merge\"\n msgstr \"\"\n \n-#: builtin/merge.c:250\n+#: builtin/merge.c:251\n msgid \"could not run stash.\"\n msgstr \"\"\n \n-#: builtin/merge.c:255\n+#: builtin/merge.c:256\n msgid \"stash failed\"\n msgstr \"\"\n \n-#: builtin/merge.c:260\n+#: builtin/merge.c:261\n #, c-format\n msgid \"not a valid object: %s\"\n msgstr \"\"\n \n-#: builtin/merge.c:279 builtin/merge.c:296\n+#: builtin/merge.c:280 builtin/merge.c:297\n msgid \"read-tree failed\"\n msgstr \"\"\n \n-#: builtin/merge.c:326\n+#: builtin/merge.c:327\n msgid \" (nothing to squash)\"\n msgstr \"\"\n \n-#: builtin/merge.c:339\n+#: builtin/merge.c:340\n #, c-format\n msgid \"Squash commit -- not updating HEAD\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:371\n+#: builtin/merge.c:372\n msgid \"Writing SQUASH_MSG\"\n msgstr \"\"\n \n-#: builtin/merge.c:373\n+#: builtin/merge.c:374\n msgid \"Finishing SQUASH_MSG\"\n msgstr \"\"\n \n-#: builtin/merge.c:396\n+#: builtin/merge.c:397\n #, c-format\n msgid \"No merge message -- not updating HEAD\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:446\n+#: builtin/merge.c:447\n #, c-format\n msgid \"'%s' does not point to a commit\"\n msgstr \"\"\n \n-#: builtin/merge.c:558\n+#: builtin/merge.c:559\n #, c-format\n msgid \"Bad branch.%s.mergeoptions string: %s\"\n msgstr \"\"\n \n-#: builtin/merge.c:653\n+#: builtin/merge.c:654\n msgid \"git write-tree failed to write a tree\"\n msgstr \"\"\n \n-#: builtin/merge.c:677\n+#: builtin/merge.c:678\n msgid \"Not handling anything other than two heads merge.\"\n msgstr \"\"\n \n-#: builtin/merge.c:691\n+#: builtin/merge.c:692\n #, c-format\n msgid \"Unknown option for merge-recursive: -X%s\"\n msgstr \"\"\n \n-#: builtin/merge.c:704\n+#: builtin/merge.c:705\n #, c-format\n msgid \"unable to write %s\"\n msgstr \"\"\n \n-#: builtin/merge.c:793\n+#: builtin/merge.c:794\n #, c-format\n msgid \"Could not read from '%s'\"\n msgstr \"\"\n \n-#: builtin/merge.c:802\n+#: builtin/merge.c:803\n #, c-format\n msgid \"Not committing merge; use 'git commit' to complete the merge.\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:808\n+#: builtin/merge.c:809\n #, c-format\n msgid \"\"\n \"Please enter a commit message to explain why this merge is necessary,\\n\"\n@@ -6750,156 +6774,156 @@ msgid \"\"\n \"the commit.\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:832\n+#: builtin/merge.c:833\n msgid \"Empty commit message.\"\n msgstr \"\"\n \n-#: builtin/merge.c:844\n+#: builtin/merge.c:845\n #, c-format\n msgid \"Wonderful.\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:907\n+#: builtin/merge.c:899\n #, c-format\n msgid \"Automatic merge failed; fix conflicts and then commit the result.\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:923\n+#: builtin/merge.c:915\n #, c-format\n msgid \"'%s' is not a commit\"\n msgstr \"\"\n \n-#: builtin/merge.c:964\n+#: builtin/merge.c:956\n msgid \"No current branch.\"\n msgstr \"\"\n \n-#: builtin/merge.c:966\n+#: builtin/merge.c:958\n msgid \"No remote for the current branch.\"\n msgstr \"\"\n \n-#: builtin/merge.c:968\n+#: builtin/merge.c:960\n msgid \"No default upstream defined for the current branch.\"\n msgstr \"\"\n \n-#: builtin/merge.c:973\n+#: builtin/merge.c:965\n #, c-format\n msgid \"No remote-tracking branch for %s from %s\"\n msgstr \"\"\n \n-#: builtin/merge.c:1129\n+#: builtin/merge.c:1121\n msgid \"There is no merge to abort (MERGE_HEAD missing).\"\n msgstr \"\"\n \n-#: builtin/merge.c:1145\n+#: builtin/merge.c:1137\n msgid \"\"\n \"You have not concluded your merge (MERGE_HEAD exists).\\n\"\n \"Please, commit your changes before you merge.\"\n msgstr \"\"\n \n-#: builtin/merge.c:1148 git-pull.sh:34\n+#: builtin/merge.c:1140 git-pull.sh:34\n msgid \"You have not concluded your merge (MERGE_HEAD exists).\"\n msgstr \"\"\n \n-#: builtin/merge.c:1152\n+#: builtin/merge.c:1144\n msgid \"\"\n \"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\\n\"\n \"Please, commit your changes before you merge.\"\n msgstr \"\"\n \n-#: builtin/merge.c:1155\n+#: builtin/merge.c:1147\n msgid \"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\"\n msgstr \"\"\n \n-#: builtin/merge.c:1164\n+#: builtin/merge.c:1156\n msgid \"You cannot combine --squash with --no-ff.\"\n msgstr \"\"\n \n-#: builtin/merge.c:1173\n+#: builtin/merge.c:1165\n msgid \"No commit specified and merge.defaultToUpstream not set.\"\n msgstr \"\"\n \n-#: builtin/merge.c:1205\n+#: builtin/merge.c:1197\n msgid \"Can merge only exactly one commit into empty head\"\n msgstr \"\"\n \n-#: builtin/merge.c:1208\n+#: builtin/merge.c:1200\n msgid \"Squash commit into empty head not supported yet\"\n msgstr \"\"\n \n-#: builtin/merge.c:1210\n+#: builtin/merge.c:1202\n msgid \"Non-fast-forward commit does not make sense into an empty head\"\n msgstr \"\"\n \n-#: builtin/merge.c:1215\n+#: builtin/merge.c:1207\n #, c-format\n msgid \"%s - not something we can merge\"\n msgstr \"\"\n \n-#: builtin/merge.c:1266\n+#: builtin/merge.c:1258\n #, c-format\n msgid \"Commit %s has an untrusted GPG signature, allegedly by %s.\"\n msgstr \"\"\n \n-#: builtin/merge.c:1269\n+#: builtin/merge.c:1261\n #, c-format\n msgid \"Commit %s has a bad GPG signature allegedly by %s.\"\n msgstr \"\"\n \n-#: builtin/merge.c:1272\n+#: builtin/merge.c:1264\n #, c-format\n msgid \"Commit %s does not have a GPG signature.\"\n msgstr \"\"\n \n-#: builtin/merge.c:1275\n+#: builtin/merge.c:1267\n #, c-format\n msgid \"Commit %s has a good GPG signature by %s\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:1356\n+#: builtin/merge.c:1348\n #, c-format\n msgid \"Updating %s..%s\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:1395\n+#: builtin/merge.c:1387\n #, c-format\n msgid \"Trying really trivial in-index merge...\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:1402\n+#: builtin/merge.c:1394\n #, c-format\n msgid \"Nope.\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:1434\n+#: builtin/merge.c:1426\n msgid \"Not possible to fast-forward, aborting.\"\n msgstr \"\"\n \n-#: builtin/merge.c:1457 builtin/merge.c:1536\n+#: builtin/merge.c:1449 builtin/merge.c:1528\n #, c-format\n msgid \"Rewinding the tree to pristine...\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:1461\n+#: builtin/merge.c:1453\n #, c-format\n msgid \"Trying merge strategy %s...\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:1527\n+#: builtin/merge.c:1519\n #, c-format\n msgid \"No merge strategy handled the merge.\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:1529\n+#: builtin/merge.c:1521\n #, c-format\n msgid \"Merge with strategy %s failed.\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:1538\n+#: builtin/merge.c:1530\n #, c-format\n msgid \"Using the %s to prepare resolving by hand.\\n\"\n msgstr \"\"\n \n-#: builtin/merge.c:1550\n+#: builtin/merge.c:1542\n #, c-format\n msgid \"Automatic merge went well; stopped before committing as requested\\n\"\n msgstr \"\"\n@@ -7085,7 +7109,7 @@ msgstr \"\"\n msgid \"Renaming %s to %s\\n\"\n msgstr \"\"\n \n-#: builtin/mv.c:256 builtin/remote.c:726 builtin/repack.c:358\n+#: builtin/mv.c:256 builtin/remote.c:726 builtin/repack.c:355\n #, c-format\n msgid \"renaming '%s' failed\"\n msgstr \"\"\n@@ -7136,8 +7160,8 @@ msgstr \"\"\n \n #: builtin/notes.c:25\n msgid \"\"\n-\"git notes [--ref <notes_ref>] add [-f] [-m <msg> | -F <file> | (-c | -C) \"\n-\"<object>] [<object>]\"\n+\"git notes [--ref <notes_ref>] add [-f] [--allow-empty] [-m <msg> | -F <file> \"\n+\"| (-c | -C) <object>] [<object>]\"\n msgstr \"\"\n \n #: builtin/notes.c:26\n@@ -7146,12 +7170,12 @@ msgstr \"\"\n \n #: builtin/notes.c:27\n msgid \"\"\n-\"git notes [--ref <notes_ref>] append [-m <msg> | -F <file> | (-c | -C) \"\n-\"<object>] [<object>]\"\n+\"git notes [--ref <notes_ref>] append [--allow-empty] [-m <msg> | -F <file> | \"\n+\"(-c | -C) <object>] [<object>]\"\n msgstr \"\"\n \n #: builtin/notes.c:28\n-msgid \"git notes [--ref <notes_ref>] edit [<object>]\"\n+msgid \"git notes [--ref <notes_ref>] edit [--allow-empty] [<object>]\"\n msgstr \"\"\n \n #: builtin/notes.c:29\n@@ -7235,212 +7259,216 @@ msgstr \"\"\n msgid \"git notes get-ref\"\n msgstr \"\"\n \n-#: builtin/notes.c:136\n+#: builtin/notes.c:146\n #, c-format\n msgid \"unable to start 'show' for object '%s'\"\n msgstr \"\"\n \n-#: builtin/notes.c:140\n+#: builtin/notes.c:150\n msgid \"could not read 'show' output\"\n msgstr \"\"\n \n-#: builtin/notes.c:148\n+#: builtin/notes.c:158\n #, c-format\n msgid \"failed to finish 'show' for object '%s'\"\n msgstr \"\"\n \n-#: builtin/notes.c:166 builtin/tag.c:477\n+#: builtin/notes.c:173 builtin/tag.c:477\n #, c-format\n msgid \"could not create file '%s'\"\n msgstr \"\"\n \n-#: builtin/notes.c:185\n+#: builtin/notes.c:192\n msgid \"Please supply the note contents using either -m or -F option\"\n msgstr \"\"\n \n-#: builtin/notes.c:206 builtin/notes.c:847\n-#, c-format\n-msgid \"Removing note for object %s\\n\"\n-msgstr \"\"\n-\n-#: builtin/notes.c:211\n+#: builtin/notes.c:201\n msgid \"unable to write note object\"\n msgstr \"\"\n \n-#: builtin/notes.c:213\n+#: builtin/notes.c:203\n #, c-format\n msgid \"The note contents have been left in %s\"\n msgstr \"\"\n \n-#: builtin/notes.c:247 builtin/tag.c:693\n+#: builtin/notes.c:231 builtin/tag.c:693\n #, c-format\n msgid \"cannot read '%s'\"\n msgstr \"\"\n \n-#: builtin/notes.c:249 builtin/tag.c:696\n+#: builtin/notes.c:233 builtin/tag.c:696\n #, c-format\n msgid \"could not open or read '%s'\"\n msgstr \"\"\n \n-#: builtin/notes.c:268 builtin/notes.c:319 builtin/notes.c:321\n-#: builtin/notes.c:381 builtin/notes.c:435 builtin/notes.c:518\n-#: builtin/notes.c:523 builtin/notes.c:598 builtin/notes.c:640\n-#: builtin/notes.c:842 builtin/tag.c:709\n+#: builtin/notes.c:252 builtin/notes.c:303 builtin/notes.c:305\n+#: builtin/notes.c:365 builtin/notes.c:420 builtin/notes.c:506\n+#: builtin/notes.c:511 builtin/notes.c:589 builtin/notes.c:652\n+#: builtin/notes.c:854 builtin/tag.c:709\n #, c-format\n msgid \"Failed to resolve '%s' as a valid ref.\"\n msgstr \"\"\n \n-#: builtin/notes.c:271\n+#: builtin/notes.c:255\n #, c-format\n msgid \"Failed to read object '%s'.\"\n msgstr \"\"\n \n-#: builtin/notes.c:275\n+#: builtin/notes.c:259\n #, c-format\n msgid \"Cannot read note data from non-blob object '%s'.\"\n msgstr \"\"\n \n-#: builtin/notes.c:315\n+#: builtin/notes.c:299\n #, c-format\n msgid \"Malformed input line: '%s'.\"\n msgstr \"\"\n \n-#: builtin/notes.c:330\n+#: builtin/notes.c:314\n #, c-format\n msgid \"Failed to copy notes from '%s' to '%s'\"\n msgstr \"\"\n \n-#: builtin/notes.c:374 builtin/notes.c:428 builtin/notes.c:501\n-#: builtin/notes.c:513 builtin/notes.c:586 builtin/notes.c:633\n-#: builtin/notes.c:907\n+#: builtin/notes.c:358 builtin/notes.c:413 builtin/notes.c:489\n+#: builtin/notes.c:501 builtin/notes.c:577 builtin/notes.c:645\n+#: builtin/notes.c:919\n msgid \"too many parameters\"\n msgstr \"\"\n \n-#: builtin/notes.c:387 builtin/notes.c:646\n+#: builtin/notes.c:371 builtin/notes.c:658\n #, c-format\n msgid \"No note found for object %s.\"\n msgstr \"\"\n \n-#: builtin/notes.c:409 builtin/notes.c:566\n+#: builtin/notes.c:392 builtin/notes.c:555\n msgid \"note contents as a string\"\n msgstr \"\"\n \n-#: builtin/notes.c:412 builtin/notes.c:569\n+#: builtin/notes.c:395 builtin/notes.c:558\n msgid \"note contents in a file\"\n msgstr \"\"\n \n-#: builtin/notes.c:414 builtin/notes.c:417 builtin/notes.c:571\n-#: builtin/notes.c:574 builtin/tag.c:628\n+#: builtin/notes.c:397 builtin/notes.c:400 builtin/notes.c:560\n+#: builtin/notes.c:563 builtin/tag.c:628 glossary.h:39\n msgid \"object\"\n msgstr \"\"\n \n-#: builtin/notes.c:415 builtin/notes.c:572\n+#: builtin/notes.c:398 builtin/notes.c:561\n msgid \"reuse and edit specified note object\"\n msgstr \"\"\n \n-#: builtin/notes.c:418 builtin/notes.c:575\n+#: builtin/notes.c:401 builtin/notes.c:564\n msgid \"reuse specified note object\"\n msgstr \"\"\n \n-#: builtin/notes.c:420 builtin/notes.c:488\n+#: builtin/notes.c:404 builtin/notes.c:567\n+msgid \"allow storing empty note\"\n+msgstr \"\"\n+\n+#: builtin/notes.c:405 builtin/notes.c:476\n msgid \"replace existing notes\"\n msgstr \"\"\n \n-#: builtin/notes.c:454\n+#: builtin/notes.c:430\n #, c-format\n msgid \"\"\n \"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite \"\n \"existing notes\"\n msgstr \"\"\n \n-#: builtin/notes.c:459 builtin/notes.c:536\n+#: builtin/notes.c:445 builtin/notes.c:524\n #, c-format\n msgid \"Overwriting existing notes for object %s\\n\"\n msgstr \"\"\n \n-#: builtin/notes.c:489\n+#: builtin/notes.c:456 builtin/notes.c:617 builtin/notes.c:859\n+#, c-format\n+msgid \"Removing note for object %s\\n\"\n+msgstr \"\"\n+\n+#: builtin/notes.c:477\n msgid \"read objects from stdin\"\n msgstr \"\"\n \n-#: builtin/notes.c:491\n+#: builtin/notes.c:479\n msgid \"load rewriting config for <command> (implies --stdin)\"\n msgstr \"\"\n \n-#: builtin/notes.c:509\n+#: builtin/notes.c:497\n msgid \"too few parameters\"\n msgstr \"\"\n \n-#: builtin/notes.c:530\n+#: builtin/notes.c:518\n #, c-format\n msgid \"\"\n \"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite \"\n \"existing notes\"\n msgstr \"\"\n \n-#: builtin/notes.c:542\n+#: builtin/notes.c:530\n #, c-format\n msgid \"Missing notes on source object %s. Cannot copy.\"\n msgstr \"\"\n \n-#: builtin/notes.c:591\n+#: builtin/notes.c:582\n #, c-format\n msgid \"\"\n \"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\\n\"\n \"Please use 'git notes add -f -m/-F/-c/-C' instead.\\n\"\n msgstr \"\"\n \n-#: builtin/notes.c:738\n+#: builtin/notes.c:750\n msgid \"General options\"\n msgstr \"\"\n \n-#: builtin/notes.c:740\n+#: builtin/notes.c:752\n msgid \"Merge options\"\n msgstr \"\"\n \n-#: builtin/notes.c:742\n+#: builtin/notes.c:754\n msgid \"\"\n \"resolve notes conflicts using the given strategy (manual/ours/theirs/union/\"\n \"cat_sort_uniq)\"\n msgstr \"\"\n \n-#: builtin/notes.c:744\n+#: builtin/notes.c:756\n msgid \"Committing unmerged notes\"\n msgstr \"\"\n \n-#: builtin/notes.c:746\n+#: builtin/notes.c:758\n msgid \"finalize notes merge by committing unmerged notes\"\n msgstr \"\"\n \n-#: builtin/notes.c:748\n+#: builtin/notes.c:760\n msgid \"Aborting notes merge resolution\"\n msgstr \"\"\n \n-#: builtin/notes.c:750\n+#: builtin/notes.c:762\n msgid \"abort notes merge\"\n msgstr \"\"\n \n-#: builtin/notes.c:845\n+#: builtin/notes.c:857\n #, c-format\n msgid \"Object %s has no note\\n\"\n msgstr \"\"\n \n-#: builtin/notes.c:857\n+#: builtin/notes.c:869\n msgid \"attempt to remove non-existent note is not an error\"\n msgstr \"\"\n \n-#: builtin/notes.c:860\n+#: builtin/notes.c:872\n msgid \"read object names from the standard input\"\n msgstr \"\"\n \n-#: builtin/notes.c:941\n+#: builtin/notes.c:953\n msgid \"notes-ref\"\n msgstr \"\"\n \n-#: builtin/notes.c:942\n+#: builtin/notes.c:954\n msgid \"use notes from <notes_ref>\"\n msgstr \"\"\n \n-#: builtin/notes.c:977 builtin/remote.c:1624\n+#: builtin/notes.c:989 builtin/remote.c:1624\n #, c-format\n msgid \"Unknown subcommand: %s\"\n msgstr \"\"\n@@ -7841,7 +7869,7 @@ msgstr \"\"\n msgid \"--all and --mirror are incompatible\"\n msgstr \"\"\n \n-#: builtin/push.c:493\n+#: builtin/push.c:493 glossary.h:61\n msgid \"repository\"\n msgstr \"\"\n \n@@ -8483,71 +8511,71 @@ msgstr \"\"\n msgid \"git repack [options]\"\n msgstr \"\"\n \n-#: builtin/repack.c:160\n+#: builtin/repack.c:159\n msgid \"pack everything in a single pack\"\n msgstr \"\"\n \n-#: builtin/repack.c:162\n+#: builtin/repack.c:161\n msgid \"same as -a, and turn unreachable objects loose\"\n msgstr \"\"\n \n-#: builtin/repack.c:165\n+#: builtin/repack.c:164\n msgid \"remove redundant packs, and run git-prune-packed\"\n msgstr \"\"\n \n-#: builtin/repack.c:167\n+#: builtin/repack.c:166\n msgid \"pass --no-reuse-delta to git-pack-objects\"\n msgstr \"\"\n \n-#: builtin/repack.c:169\n+#: builtin/repack.c:168\n msgid \"pass --no-reuse-object to git-pack-objects\"\n msgstr \"\"\n \n-#: builtin/repack.c:171\n+#: builtin/repack.c:170\n msgid \"do not run git-update-server-info\"\n msgstr \"\"\n \n-#: builtin/repack.c:174\n+#: builtin/repack.c:173\n msgid \"pass --local to git-pack-objects\"\n msgstr \"\"\n \n-#: builtin/repack.c:176\n+#: builtin/repack.c:175\n msgid \"write bitmap index\"\n msgstr \"\"\n \n-#: builtin/repack.c:177\n+#: builtin/repack.c:176\n msgid \"approxidate\"\n msgstr \"\"\n \n-#: builtin/repack.c:178\n+#: builtin/repack.c:177\n msgid \"with -A, do not loosen objects older than this\"\n msgstr \"\"\n \n-#: builtin/repack.c:180\n+#: builtin/repack.c:179\n msgid \"size of the window used for delta compression\"\n msgstr \"\"\n \n-#: builtin/repack.c:181 builtin/repack.c:185\n+#: builtin/repack.c:180 builtin/repack.c:184\n msgid \"bytes\"\n msgstr \"\"\n \n-#: builtin/repack.c:182\n+#: builtin/repack.c:181\n msgid \"same as the above, but limit memory size instead of entries count\"\n msgstr \"\"\n \n-#: builtin/repack.c:184\n+#: builtin/repack.c:183\n msgid \"limits the maximum delta depth\"\n msgstr \"\"\n \n-#: builtin/repack.c:186\n+#: builtin/repack.c:185\n msgid \"maximum size of each packfile\"\n msgstr \"\"\n \n-#: builtin/repack.c:188\n+#: builtin/repack.c:187\n msgid \"repack objects in packs marked with .keep\"\n msgstr \"\"\n \n-#: builtin/repack.c:374\n+#: builtin/repack.c:371\n #, c-format\n msgid \"removing '%s' failed\"\n msgstr \"\"\n@@ -8669,7 +8697,7 @@ msgstr \"\"\n msgid \"hard\"\n msgstr \"\"\n \n-#: builtin/reset.c:34\n+#: builtin/reset.c:34 glossary.h:38\n msgid \"merge\"\n msgstr \"\"\n \n@@ -9656,6 +9684,10 @@ msgstr \"\"\n msgid \"Create, list, delete or verify a tag object signed with GPG\"\n msgstr \"\"\n \n+#: rerere.h:27\n+msgid \"update the index with reused conflict resolution if possible\"\n+msgstr \"\"\n+\n #: parse-options.h:143\n msgid \"expiry-date\"\n msgstr \"\"\n@@ -9676,8 +9708,272 @@ msgstr \"\"\n msgid \"use <n> digits to display SHA-1s\"\n msgstr \"\"\n \n-#: rerere.h:27\n-msgid \"update the index with reused conflict resolution if possible\"\n+#: glossary.h:4\n+msgid \"alternate object database\"\n+msgstr \"\"\n+\n+#: glossary.h:5\n+msgid \"bare repository\"\n+msgstr \"\"\n+\n+#: glossary.h:6\n+msgid \"blob object\"\n+msgstr \"\"\n+\n+#: glossary.h:8\n+msgid \"cache\"\n+msgstr \"\"\n+\n+#: glossary.h:9\n+msgid \"chain\"\n+msgstr \"\"\n+\n+#: glossary.h:10\n+msgid \"changeset\"\n+msgstr \"\"\n+\n+#: glossary.h:11\n+msgid \"checkout\"\n+msgstr \"\"\n+\n+#: glossary.h:12\n+msgid \"cherry-picking\"\n+msgstr \"\"\n+\n+#: glossary.h:13\n+msgid \"clean\"\n+msgstr \"\"\n+\n+#: glossary.h:15\n+msgid \"commit object\"\n+msgstr \"\"\n+\n+#: glossary.h:16\n+msgid \"commit-ish (also committish)\"\n+msgstr \"\"\n+\n+#: glossary.h:17\n+msgid \"core Git\"\n+msgstr \"\"\n+\n+#: glossary.h:18\n+msgid \"DAG\"\n+msgstr \"\"\n+\n+#: glossary.h:19\n+msgid \"dangling object\"\n+msgstr \"\"\n+\n+#: glossary.h:21\n+msgid \"directory\"\n+msgstr \"\"\n+\n+#: glossary.h:22\n+msgid \"dirty\"\n+msgstr \"\"\n+\n+#: glossary.h:23\n+msgid \"evil merge\"\n+msgstr \"\"\n+\n+#: glossary.h:24\n+msgid \"fast-forward\"\n+msgstr \"\"\n+\n+#: glossary.h:25\n+msgid \"fetch\"\n+msgstr \"\"\n+\n+#: glossary.h:26\n+msgid \"file system\"\n+msgstr \"\"\n+\n+#: glossary.h:27\n+msgid \"Git archive\"\n+msgstr \"\"\n+\n+#: glossary.h:28\n+msgid \"gitfile\"\n+msgstr \"\"\n+\n+#: glossary.h:29\n+msgid \"grafts\"\n+msgstr \"\"\n+\n+#: glossary.h:30\n+msgid \"hash\"\n+msgstr \"\"\n+\n+#: glossary.h:31\n+msgid \"head\"\n+msgstr \"\"\n+\n+#: glossary.h:32\n+msgid \"HEAD\"\n+msgstr \"\"\n+\n+#: glossary.h:33\n+msgid \"head ref\"\n+msgstr \"\"\n+\n+#: glossary.h:34\n+msgid \"hook\"\n+msgstr \"\"\n+\n+#: glossary.h:35\n+msgid \"index\"\n+msgstr \"\"\n+\n+#: glossary.h:36\n+msgid \"index entry\"\n+msgstr \"\"\n+\n+#: glossary.h:37\n+msgid \"master\"\n+msgstr \"\"\n+\n+#: glossary.h:40\n+msgid \"object database\"\n+msgstr \"\"\n+\n+#: glossary.h:41\n+msgid \"object identifier\"\n+msgstr \"\"\n+\n+#: glossary.h:42\n+msgid \"object name\"\n+msgstr \"\"\n+\n+#: glossary.h:44\n+msgid \"octopus\"\n+msgstr \"\"\n+\n+#: glossary.h:45\n+msgid \"origin\"\n+msgstr \"\"\n+\n+#: glossary.h:46\n+msgid \"pack\"\n+msgstr \"\"\n+\n+#: glossary.h:47\n+msgid \"pack index\"\n+msgstr \"\"\n+\n+#: glossary.h:48\n+msgid \"pathspec\"\n+msgstr \"\"\n+\n+#: glossary.h:49\n+msgid \"parent\"\n+msgstr \"\"\n+\n+#: glossary.h:50\n+msgid \"pickaxe\"\n+msgstr \"\"\n+\n+#: glossary.h:51\n+msgid \"plumbing\"\n+msgstr \"\"\n+\n+#: glossary.h:52\n+msgid \"porcelain\"\n+msgstr \"\"\n+\n+#: glossary.h:53\n+msgid \"pull\"\n+msgstr \"\"\n+\n+#: glossary.h:54\n+msgid \"push\"\n+msgstr \"\"\n+\n+#: glossary.h:55\n+msgid \"reachable\"\n+msgstr \"\"\n+\n+#: glossary.h:56\n+msgid \"rebase\"\n+msgstr \"\"\n+\n+#: glossary.h:57\n+msgid \"ref\"\n+msgstr \"\"\n+\n+#: glossary.h:58\n+msgid \"reflog\"\n+msgstr \"\"\n+\n+#: glossary.h:60\n+msgid \"remote-tracking branch\"\n+msgstr \"\"\n+\n+#: glossary.h:62\n+msgid \"resolve\"\n+msgstr \"\"\n+\n+#: glossary.h:63\n+msgid \"revision\"\n+msgstr \"\"\n+\n+#: glossary.h:64\n+msgid \"rewind\"\n+msgstr \"\"\n+\n+#: glossary.h:65\n+msgid \"SCM\"\n+msgstr \"\"\n+\n+#: glossary.h:66\n+msgid \"SHA-1\"\n+msgstr \"\"\n+\n+#: glossary.h:67\n+msgid \"shallow repository\"\n+msgstr \"\"\n+\n+#: glossary.h:68\n+msgid \"symref\"\n+msgstr \"\"\n+\n+#: glossary.h:69\n+msgid \"tag\"\n+msgstr \"\"\n+\n+#: glossary.h:70\n+msgid \"tag object\"\n+msgstr \"\"\n+\n+#: glossary.h:71\n+msgid \"topic branch\"\n+msgstr \"\"\n+\n+#: glossary.h:72\n+msgid \"tree\"\n+msgstr \"\"\n+\n+#: glossary.h:73\n+msgid \"tree object\"\n+msgstr \"\"\n+\n+#: glossary.h:74\n+msgid \"tree-ish (also treeish)\"\n+msgstr \"\"\n+\n+#: glossary.h:75\n+msgid \"unmerged index\"\n+msgstr \"\"\n+\n+#: glossary.h:76\n+msgid \"unreachable object\"\n+msgstr \"\"\n+\n+#: glossary.h:77\n+msgid \"upstream branch\"\n+msgstr \"\"\n+\n+#: glossary.h:78\n+msgid \"working tree\"\n msgstr \"\"\n \n #: git-am.sh:52\n-- \n2.2.0.345.g7041aac\n"},{"id":"253343","messageId":"5485CC1E.4010401@drmicha.warpmail.net","threadId":"38143","inReplyTo":"cover.1418052470.git.git@drmicha.warpmail.net","subject":"Re: [RFC/PATCH 0/5] git-glossary","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2014-12-08T16:04:46Z","receivedAt":"2014-12-08T16:04:46Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Michael J Gruber schrieb am 08.12.2014 um 16:38:\n> More and more people use Git in localised setups, which usually means\n> mixed localisation setups - not only, but also because of our English\n> man pages.\n> \n> Here's an attempt at leveraging our current infrastructure for helping\n> those poor mixed localisation folks. The idea is to keep the most\n> important iterms in the glossary and translate at least these.\n> \n> 1/5: generate glossary term list automatically from gitglossary.txt\n> 2/5: introduce git-glossary command which helps with lookups\n> 3/5: introduce git-glossary.txt, the man page for the command\n> 4/5: git.pot update\n> 5/5: sample de.po update\n> \n> Without 4/5 and 5/5, a few terms from the glossary can be translated\n> already by coincidence with localised messages from some git commands.\n> \n> Michael J Gruber (5):\n>   glossary.h: generate a glossary list from the Makefile\n>   glossary: introduce glossary lookup command\n>   glossary: man page\n>   l10n: git-glossary\n>   l10n: de: git-glossary\n> \n>  .gitignore                     |    2 +\n>  Documentation/git-glossary.txt |   48 ++\n>  Makefile                       |    8 +-\n>  builtin.h                      |    1 +\n>  builtin/glossary.c             |  104 +++\n>  command-list.txt               |    1 +\n>  generate-glossary.sh           |    8 +\n>  git.c                          |    1 +\n>  po/de.po                       | 1382 ++++++++++++++++++++++++----------------\n>  po/git.pot                     | 1362 +++++++++++++++++++++++----------------\n>  10 files changed, 1839 insertions(+), 1078 deletions(-)\n>  create mode 100644 Documentation/git-glossary.txt\n>  create mode 100644 builtin/glossary.c\n>  create mode 100755 generate-glossary.sh\n\nWhile I did send 5/5 with UTF-8 encoding (or rather: git-sendemail\nhelpfully did so) it seems it doesn't get through. Anyways, this stuff\nis here also:\n\nhttps://github.com/mjg/git/tree/glossary-cmd\n\nOr rather:\n\nThe following changes since commit a0de725a8ff02c1f2a9452c2234bee819242395c:\n\n  Sync with Git 2.2 (2014-11-26 13:20:21 -0800)\n\nare available in the git repository at:\n\n  git://github.com/mjg/git glossary-cmd\n\nfor you to fetch changes up to 1265605787662a72c2457be0623a76d4d2a74bc1:\n\n  l10n: de: git-glossary (2014-12-08 16:26:31 +0100)\n\n----------------------------------------------------------------\nMichael J Gruber (5):\n      glossary.h: generate a glossary list from the Makefile\n      glossary: introduce glossary lookup command\n      glossary: man page\n      l10n: git-glossary\n      l10n: de: git-glossary\n"},{"id":"253364","messageId":"CAP8UFD0yRKRPj3x6jZoL72jkzs0T2vZ0HZVi46zX0gzXqGv_Sw@mail.gmail.com","threadId":"38143","inReplyTo":"cover.1418052470.git.git@drmicha.warpmail.net","subject":"Re: [RFC/PATCH 0/5] git-glossary","fromName":"Christian Couder","fromEmail":"christian.couder@gmail.com","sentAt":"2014-12-08T16:16:02Z","receivedAt":"2014-12-08T16:16:02Z","isPatch":true,"sender":{"key":"christian.couder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/208954?v=4"},"body":"On Mon, Dec 8, 2014 at 4:38 PM, Michael J Gruber\n<git@drmicha.warpmail.net> wrote:\n> More and more people use Git in localised setups, which usually means\n> mixed localisation setups - not only, but also because of our English\n> man pages.\n>\n> Here's an attempt at leveraging our current infrastructure for helping\n> those poor mixed localisation folks. The idea is to keep the most\n> important iterms in the glossary and translate at least these.\n\nIf the problem is related to all the man pages, shouldn't the solution\napply to all the man pages?\n\n> 1/5: generate glossary term list automatically from gitglossary.txt\n> 2/5: introduce git-glossary command which helps with lookups\n\nCouldn't you improve git-help ?\n\nThanks,\nChristian.\n"},{"id":"253370","messageId":"5485D4BF.7010700@drmicha.warpmail.net","threadId":"38143","inReplyTo":"CAP8UFD0yRKRPj3x6jZoL72jkzs0T2vZ0HZVi46zX0gzXqGv_Sw@mail.gmail.com","subject":"Re: [RFC/PATCH 0/5] git-glossary","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2014-12-08T16:41:35Z","receivedAt":"2014-12-08T16:41:35Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Christian Couder schrieb am 08.12.2014 um 17:16:\n> On Mon, Dec 8, 2014 at 4:38 PM, Michael J Gruber\n> <git@drmicha.warpmail.net> wrote:\n>> More and more people use Git in localised setups, which usually means\n>> mixed localisation setups - not only, but also because of our English\n>> man pages.\n>>\n>> Here's an attempt at leveraging our current infrastructure for helping\n>> those poor mixed localisation folks. The idea is to keep the most\n>> important iterms in the glossary and translate at least these.\n> \n> If the problem is related to all the man pages, shouldn't the solution\n> apply to all the man pages?\n\nHuh? I'm not going to translate the man pages.\n\nThis is about providing a localised glossary. It just so happens that we\nhave a glossary as a man page already, so I'm leveraging it.\n\n>> 1/5: generate glossary term list automatically from gitglossary.txt\n>> 2/5: introduce git-glossary command which helps with lookups\n> \n> Couldn't you improve git-help ?\n\nI think git help is good as is.\n\nOr do you suggest integrating the glossary lookup command in \"git help\"?\nFor my taste, \"git help\" does a lot of magic already (in terms of\nrevolving \"foo\" in \"git help foo\"). What it does not do is translating.\nIntegrating \"glossary\" in \"help\" would require the use of mode changing\noptions to get the same functionality as \"git glossary\" and \"git\nglossary foo\". So, git help is really for help about commands, and git\nyounameit for localised help about terms.\n\nMichael\n"},{"id":"253542","messageId":"xmqqa92vf7ao.fsf@gitster.dls.corp.google.com","threadId":"38143","inReplyTo":"585191103e7bdd21ed422324504b6503bec2b914.1418052470.git.git@drmicha.warpmail.net","subject":"Re: [RFC/PATCH 2/5] glossary: introduce glossary lookup command","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-12-10T22:50:55Z","receivedAt":"2014-12-10T22:50:55Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n> When using a localised git, there are many reasons why a correspondence\n> between English and localised git terms is needed:\n> - connect localised messages with English ones (porcelain vs. plumbing)\n> - connect localised messages with English man pages or online docs\n> - help out someone in a different locale\n>\n> Introduce a `git glossary' command that leverages the existing infrastructure\n> in three possible ways:\n> - `git glossary' lists all glossary terms along with their translation\n> - `git glossary foo' matches `foo' in the glossary (both English and\n>   localisation; partial matches shown)\n> - `git glossary -a foo' matches `foo' in the git message catalogue\n>   (English, exact match only).\n>\n> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n> ---\n> Some bike-shedding expected regarding the interface...\n> Once I've learned how to test l10n stuff, this will be amended.\n\nThis is interesting.\n\nI wondered if we want to also have the associated documentation in\nresponse to a query, but I am not sure how well that would go\nwithout having a translated glossary at least.  I.e. pulling the\noriginal from glossary-content.txt would produce something like\nthis:\n\n\t$ LANG=de git glossary -l blob object\n        Blob-Objekten\n\tUntyped <<def_object,object>>, e.g. the contents of a file.\n\nwhich is not ideal.\n\nI noticed that you allow querying more than one term from the\ncommand line, so the above example would not work quite well, as we\nwould end up querying \"blob\" and then \"object\", not a single term\n\"blob object\" which does have N_() translation in <glossary.h>.\n"},{"id":"253568","messageId":"5489B70E.2040604@drmicha.warpmail.net","threadId":"38143","inReplyTo":"xmqqa92vf7ao.fsf@gitster.dls.corp.google.com","subject":"Re: [RFC/PATCH 2/5] glossary: introduce glossary lookup command","fromName":"Michael J Gruber","fromEmail":"git@drmicha.warpmail.net","sentAt":"2014-12-11T15:23:58Z","receivedAt":"2014-12-11T15:23:58Z","isPatch":true,"sender":{"key":"git@grubix.eu","avatar":"https://avatars.githubusercontent.com/u/233215?v=4"},"body":"Junio C Hamano schrieb am 10.12.2014 um 23:50:\n> Michael J Gruber <git@drmicha.warpmail.net> writes:\n> \n>> When using a localised git, there are many reasons why a correspondence\n>> between English and localised git terms is needed:\n>> - connect localised messages with English ones (porcelain vs. plumbing)\n>> - connect localised messages with English man pages or online docs\n>> - help out someone in a different locale\n>>\n>> Introduce a `git glossary' command that leverages the existing infrastructure\n>> in three possible ways:\n>> - `git glossary' lists all glossary terms along with their translation\n>> - `git glossary foo' matches `foo' in the glossary (both English and\n>>   localisation; partial matches shown)\n>> - `git glossary -a foo' matches `foo' in the git message catalogue\n>>   (English, exact match only).\n>>\n>> Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>\n>> ---\n>> Some bike-shedding expected regarding the interface...\n>> Once I've learned how to test l10n stuff, this will be amended.\n> \n> This is interesting.\n> \n> I wondered if we want to also have the associated documentation in\n> response to a query, but I am not sure how well that would go\n> without having a translated glossary at least.  I.e. pulling the\n\nYes, I think we would need something different then. The glossary\nentries are asciidoc which we can't format easily from the glossary\ncommand. I really think of the glossary command as being orthogonal to\nthe definitory glossary. I guess I should name it \"translate\" instead.\n\nIt's just that I don't know how to do the translation from the locale\nback to English for stuff in the message catalogue (i.e. how to search\nthe translations), unless I list the msgids the way I do for the\nglossary terms. It could be any list of terms. The glossary seemed to be\na good place for that list of most important terms which users may want\nto translate both ways.\n\n> original from glossary-content.txt would produce something like\n> this:\n> \n> \t$ LANG=de git glossary -l blob object\n>         Blob-Objekten\n> \tUntyped <<def_object,object>>, e.g. the contents of a file.\n> \n> which is not ideal.\n> \n> I noticed that you allow querying more than one term from the\n> command line, so the above example would not work quite well, as we\n> would end up querying \"blob\" and then \"object\", not a single term\n> \"blob object\" which does have N_() translation in <glossary.h>.\n\nExactly, one would need to query for \"blob object\". Or we concatenate\narguments automatically, but I think being able to query multiple terms\n(also) is more useful.\n\nMichael\n"},{"id":"253576","messageId":"xmqqiohidk8a.fsf@gitster.dls.corp.google.com","threadId":"38143","inReplyTo":"5489B70E.2040604@drmicha.warpmail.net","subject":"Re: [RFC/PATCH 2/5] glossary: introduce glossary lookup command","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-12-11T20:06:45Z","receivedAt":"2014-12-11T20:06:45Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Michael J Gruber <git@drmicha.warpmail.net> writes:\n\n>> I wondered if we want to also have the associated documentation in\n>> response to a query, but I am not sure how well that would go\n>> without having a translated glossary at least.  I.e. pulling the\n>\n> Yes, I think we would need something different then. The glossary\n> entries are asciidoc which we can't format easily from the glossary\n> command. I really think of the glossary command as being orthogonal to\n> the definitory glossary. I guess I should name it \"translate\" instead.\n> ...\n>\n>> original from glossary-content.txt would produce something like\n>> this:\n>> \n>> \t$ LANG=de git glossary -l blob object\n>>         Blob-Objekten\n>> \tUntyped <<def_object,object>>, e.g. the contents of a file.\n>> \n>> which is not ideal.\n\nI didn't mean the AsciiDoc part, though.  I meant that the contents\nare not in LANG=de, which is not ideal.  So translating \"blob object\"\nto whatever it is called in LANG=de, without the description, is the\nbest we can do without having a translated documentation set.\n"}]}