diff options
55 files changed, 9868 insertions, 3550 deletions
diff --git a/Documentation/RelNotes/1.8.0.2.txt b/Documentation/RelNotes/1.8.0.2.txt new file mode 100644 index 0000000000..8497e051de --- /dev/null +++ b/Documentation/RelNotes/1.8.0.2.txt @@ -0,0 +1,34 @@ +Git v1.8.0.2 Release Notes +========================== + +Fixes since v1.8.0.1 +-------------------- + + * Various codepaths have workaround for a common misconfiguration to + spell "UTF-8" as "utf8", but it was not used uniformly. Most + notably, mailinfo (which is used by "git am") lacked this support. + + * We failed to mention a file without any content change but whose + permission bit was modified, or (worse yet) a new file without any + content in the "git diff --stat" output. + + * When "--stat-count" hides a diffstat for binary contents, the total + number of added and removed lines at the bottom was computed + incorrectly. + + * When "--stat-count" hides a diffstat for unmerged paths, the total + number of affected files at the bottom of the "diff --stat" output + was computed incorrectly. + + * "diff --shortstat" miscounted the total number of affected files + when there were unmerged paths. + + * "git p4" used to try expanding malformed "$keyword$" that spans + across multiple lines. + + * "git update-ref -d --deref SYM" to delete a ref through a symbolic + ref that points to it did not remove it correctly. + + * Syntax highlighting in "gitweb" was not quite working. + +Also contains other minor fixes and documentation updates. diff --git a/Documentation/RelNotes/1.8.1.txt b/Documentation/RelNotes/1.8.1.txt index 34c5b26977..6aa24c64c0 100644 --- a/Documentation/RelNotes/1.8.1.txt +++ b/Documentation/RelNotes/1.8.1.txt @@ -19,7 +19,7 @@ variable in this release. "git branch --set-upstream" is deprecated and may be removed in a relatively distant future. "git branch [-u|--set-upstream-to]" has -been introduced with a saner order of arguments. +been introduced with a saner order of arguments to replace it. Updates since v1.8.0 @@ -27,7 +27,10 @@ Updates since v1.8.0 UI, Workflows & Features - * Command-line completion for tcsh has been added. + * Command-line completion scripts for tcsh and zsh have been added. + + * A new remote-helper interface for Mercurial has been added to + contrib/remote-helpers. * We used to have a workaround for a bug in ancient "less" that causes it to exit without any output when the terminal is resized. @@ -44,6 +47,12 @@ UI, Workflows & Features give the default number of context lines in the patch output, to override the hardcoded default of 3 lines. + * When "git checkout" checks out a branch, it tells the user how far + behind (or ahead) the new branch is relative to the remote tracking + branch it builds upon. The message now also advises how to sync + them up by pushing or pulling. This can be disabled with the + advice.statusHints configuration variable. + * "git config --get" used to diagnose presence of multiple definitions of the same variable in the same configuration file as an error, but it now applies the "last one wins" rule used by the @@ -51,20 +60,39 @@ UI, Workflows & Features API regression but it is expected that nobody will notice it in practice. + * "git log -p -S<string>" now looks for the <string> after applying + the textconv filter (if defined); earlier it inspected the contents + of the blobs without filtering. + * "git format-patch" learned the "--notes=<ref>" option to give notes for the commit after the three-dash lines in its output. * "git log --grep=<pcre>" learned to honor the "grep.patterntype" configuration set to "perl". - * "git replace -d <object>" now interprets <object>, instead of only - accepting full hex object name. + * "git replace -d <object>" now interprets <object> as an extended + SHA-1 (e.g. HEAD~4 is allowed), instead of only accepting full hex + object name. * "git rm $submodule" used to punt on removing a submodule working tree to avoid losing the repository embedded in it. Because recent git uses a mechanism to separate the submodule repository from the submodule working tree, "git rm" learned to detect this - case and removes the submodule working tree when it is safe. + case and removes the submodule working tree when it is safe to do so. + + * "git send-email" used to prompt for the sender address, even when + the committer identity is well specified (e.g. via user.name and + user.email configuration variables). The command no longer gives + this prompt when not necessary. + + * "git send-email" did not allow non-address garbage strings to + appear after addresses on Cc: lines in the patch files (and when + told to pick them up to find more recipients), e.g. + + Cc: Stable Kernel <stable@k.org> # for v3.2 and up + + The command now strips " # for v3.2 and up" part before adding the + remainder of this line to the list of recipients. * "git submodule add" learned to add a new submodule at the same path as the path where an unrelated submodule was bound to in an @@ -77,7 +105,7 @@ UI, Workflows & Features * "git symbolic-ref" learned the "-d $symref" option to delete the named symbolic ref, which is more intuitive way to spell it than - "update-ref -d --no-deref". + "update-ref -d --no-deref $symref". Foreign Interface @@ -93,10 +121,10 @@ Performance, Internal Implementation, etc. * Compilation on Cygwin with newer header files are supported now. - * The logic to generate the initial advertisement from - "upload-pack" (what is invoked by "git fetch" on the other side - of the connection) to list what refs are available in the - repository has been optimized. + * The logic to generate the initial advertisement from "upload-pack" + (i.e. what is invoked by "git fetch" on the other side of the + connection) to list what refs are available in the repository has + been optimized. * The logic to find set of attributes that match a given path has been optimized. @@ -118,55 +146,44 @@ details). * The configuration parser had an unnecessary hardcoded limit on variable names that was not checked consistently. - (merge 0971e99 bw/config-lift-variable-name-length-limit later to maint). * The "say" function in the test scaffolding incorrectly allowed "echo" to interpret "\a" as if it were a C-string asking for a BEL output. - (merge 7bc0911 jc/test-say-color-avoid-echo-escape later to maint). * "git mergetool" feeds /dev/null as a common ancestor when dealing with an add/add conflict, but p4merge backend cannot handle it. Work it around by passing a temporary empty file. - (merge 3facc60 da/mergetools-p4 later to maint). * "git log -F -E --grep='<ere>'" failed to use the given <ere> pattern as extended regular expression, and instead looked for the string literally. - (merge 727b6fc jc/grep-pcre-loose-ends~1 later to maint). * "git grep -e pattern <tree>" asked the attribute system to read "<tree>:.gitattributes" file in the working tree, which was nonsense. - (merge 55c6168 nd/grep-true-path later to maint). * A symbolic ref refs/heads/SYM was not correctly removed with "git branch -d SYM"; the command removed the ref pointed by SYM instead. - (merge 13baa9f rs/branch-del-symref later to maint). * Update "remote tracking branch" in the documentation to "remote-tracking branch". - (merge a6d3bde mm/maint-doc-remote-tracking later to maint). * "git pull --rebase" run while the HEAD is detached tried to find the upstream branch of the detached HEAD (which by definition does not exist) and emitted unnecessary error messages. - (merge e980765 ph/pull-rebase-detached later to maint). * The refs/replace hierarchy was not mentioned in the repository-layout docs. - (merge 11fbe18 po/maint-refs-replace-docs later to maint). * Various rfc2047 quoting issues around a non-ASCII name on the From: line in the output from format-patch have been corrected. - (merge 25dc8da js/format-2047 later to maint). * Sometimes curl_multi_timeout() function suggested a wrong timeout value when there is no file descriptor to wait on and the http transport ended up sleeping for minutes in select(2) system call. A workaround has been added for this. - (merge 7202b81 sz/maint-curl-multi-timeout later to maint). * For a fetch refspec (or the result of applying wildcard on one), we always want the RHS to map to something inside "refs/" @@ -175,7 +192,6 @@ details). * "git diff -G<pattern>" did not honor textconv filter when looking for changes. - (merge b1c2f57 jk/maint-diff-grep-textconv later to maint). * Some HTTP servers ask for auth only during the actual packing phase (not in ls-remote phase); this is not really a recommended @@ -185,27 +201,35 @@ details). * "git p4" used to try expanding malformed "$keyword$" that spans across multiple lines. - (merge 6b2bf41 pw/maint-p4-rcs-expansion-newline later to maint). * Syntax highlighting in "gitweb" was not quite working. - (merge 048b399 rh/maint-gitweb-highlight-ext later to maint). * RSS feed from "gitweb" had a xss hole in its title output. - (merge 0f0ecf6 jk/maint-gitweb-xss later to maint). * "git config --path $key" segfaulted on "[section] key" (a boolean "true" spelled without "=", not "[section] key = true"). - (merge 962c38e cn/config-missing-path later to maint). * "git checkout -b foo" while on an unborn branch did not say "Switched to a new branch 'foo'" like other cases. - (merge afa8c07 jk/checkout-out-of-unborn later to maint). + + * Various codepaths have workaround for a common misconfiguration to + spell "UTF-8" as "utf8", but it was not used uniformly. Most + notably, mailinfo (which is used by "git am") lacked this support. * We failed to mention a file without any content change but whose permission bit was modified, or (worse yet) a new file without any content in the "git diff --stat" output. - (merge 74faaa1 lt/diff-stat-show-0-lines later to maint). + + * When "--stat-count" hides a diffstat for binary contents, the total + number of added and removed lines at the bottom was computed + incorrectly. + + * When "--stat-count" hides a diffstat for unmerged paths, the total + number of affected files at the bottom of the "diff --stat" output + was computed incorrectly. + + * "diff --shortstat" miscounted the total number of affected files + when there were unmerged paths. * "update-ref -d --deref SYM" to delete a ref through a symbolic ref that points to it did not remove it correctly. - (merge b274a71 jh/update-ref-d-through-symref later to maint). diff --git a/Documentation/config.txt b/Documentation/config.txt index e70216dfe6..bf8f911e1f 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -160,9 +160,10 @@ advice.*:: it resulted in a non-fast-forward error. statusHints:: Show directions on how to proceed from the current - state in the output of linkgit:git-status[1] and in + state in the output of linkgit:git-status[1], in the template shown when writing commit messages in - linkgit:git-commit[1]. + linkgit:git-commit[1], and in the help message shown + by linkgit:git-checkout[1] when switching branch. commitBeforeMerge:: Advice shown when linkgit:git-merge[1] refuses to merge to avoid overwriting local changes. diff --git a/Documentation/diff-config.txt b/Documentation/diff-config.txt index 89dd634674..4314ad0fbb 100644 --- a/Documentation/diff-config.txt +++ b/Documentation/diff-config.txt @@ -57,8 +57,8 @@ diff.statGraphWidth:: to all commands generating --stat output except format-patch. diff.context:: - Generate diffs with <n> lines of context instead of the default of - 3. This value is overridden by the -U option. + Generate diffs with <n> lines of context instead of the default + of 3. This value is overridden by the -U option. diff.external:: If this config variable is set, diff generation is not diff --git a/Documentation/git-fast-import.txt b/Documentation/git-fast-import.txt index 959e4d3aee..d1844ead4a 100644 --- a/Documentation/git-fast-import.txt +++ b/Documentation/git-fast-import.txt @@ -562,8 +562,12 @@ A `<path>` string must use UNIX-style directory separators (forward slash `/`), may contain any byte other than `LF`, and must not start with double quote (`"`). -If an `LF` or double quote must be encoded into `<path>` shell-style -quoting should be used, e.g. `"path/with\n and \" in it"`. +A path can use C-style string quoting; this is accepted in all cases +and mandatory if the filename starts with double quote or contains +`LF`. In C-style quoting, the complete name should be surrounded with +double quotes, and any `LF`, backslash, or double quote characters +must be escaped by preceding them with a backslash (e.g., +`"path/with\n, \\ and \" in it"`). The value of `<path>` must be in canonical form. That is it must not: diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt index 6d19d59ce5..8b637d339f 100644 --- a/Documentation/git-push.txt +++ b/Documentation/git-push.txt @@ -385,11 +385,23 @@ the ones in the examples below) can be configured as the default for A handy way to push the current branch to the same name on the remote. -`git push origin master:satellite/master dev:satellite/dev`:: +`git push mothership master:satellite/master dev:satellite/dev`:: Use the source ref that matches `master` (e.g. `refs/heads/master`) to update the ref that matches `satellite/master` (most probably - `refs/remotes/satellite/master`) in the `origin` repository, then + `refs/remotes/satellite/master`) in the `mothership` repository; do the same for `dev` and `satellite/dev`. ++ +This is to emulate `git fetch` run on the `mothership` using `git +push` that is run in the opposite direction in order to integrate +the work done on `satellite`, and is often necessary when you can +only make connection in one way (i.e. satellite can ssh into +mothership but mothership cannot initiate connection to satellite +because the latter is behind a firewall or does not run sshd). ++ +After running this `git push` on the `satellite` machine, you would +ssh into the `mothership` and run `git merge` there to complete the +emulation of `git pull` that were run on `mothership` to pull changes +made on `satellite`. `git push origin HEAD:master`:: Push the current branch to the remote ref matching `master` in the diff --git a/Documentation/git-stash.txt b/Documentation/git-stash.txt index 0aa4e20eae..711ffe17a7 100644 --- a/Documentation/git-stash.txt +++ b/Documentation/git-stash.txt @@ -144,7 +144,7 @@ drop [-q|--quiet] [<stash>]:: Remove a single stashed state from the stash list. When no `<stash>` is given, it removes the latest one. i.e. `stash@{0}`, otherwise - `<stash>` must a valid stash log reference of the form + `<stash>` must be a valid stash log reference of the form `stash@{<revision>}`. create:: diff --git a/Documentation/git.txt b/Documentation/git.txt index cbe0883534..25e2f3a60e 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,10 @@ unreleased) version of git, that is available from 'master' branch of the `git.git` repository. Documentation for older releases are available here: -* link:v1.8.0.1/git.html[documentation for release 1.8.0.1] +* link:v1.8.0.2/git.html[documentation for release 1.8.0.2] * release notes for + link:RelNotes/1.8.0.2.txt[1.8.0.2], link:RelNotes/1.8.0.1.txt[1.8.0.1], link:RelNotes/1.8.0.txt[1.8.0]. @@ -868,8 +869,10 @@ Authors ------- Git was started by Linus Torvalds, and is currently maintained by Junio C Hamano. Numerous contributions have come from the git mailing list -<git@vger.kernel.org>. For a more complete list of contributors, see -http://git-scm.com/about. If you have a clone of git.git itself, the +<git@vger.kernel.org>. http://www.ohloh.net/p/git/contributors/summary +gives you a more complete list of contributors. + +If you have a clone of git.git itself, the output of linkgit:git-shortlog[1] and linkgit:git-blame[1] can show you the authors for specific parts of the project. diff --git a/Documentation/technical/api-command.txt b/Documentation/technical/api-command.txt new file mode 100644 index 0000000000..ea9b2eda31 --- /dev/null +++ b/Documentation/technical/api-command.txt @@ -0,0 +1,99 @@ +Integrating new subcommands +=========================== + +This is how-to documentation for people who want to add extension +commands to git. It should be read alongside api-builtin.txt. + +Runtime environment +------------------- + +git subcommands are standalone executables that live in the git exec +path, normally /usr/lib/git-core. The git executable itself is a +thin wrapper that knows where the subcommands live, and runs them by +passing command-line arguments to them. + +(If "git foo" is not found in the git exec path, the wrapper +will look in the rest of your $PATH for it. Thus, it's possible +to write local git extensions that don't live in system space.) + +Implementation languages +------------------------ + +Most subcommands are written in C or shell. A few are written in +Perl. + +While we strongly encourage coding in portable C for portability, +these specific scripting languages are also acceptable. We won't +accept more without a very strong technical case, as we don't want +to broaden the git suite's required dependencies. Import utilities, +surgical tools, remote helpers and other code at the edges of the +git suite are more lenient and we allow Python (and even Tcl/tk), +but they should not be used for core functions. + +This may change in the future. Especially Python is not allowed in +core because we need better Python integration in the git Windows +installer before we can be confident people in that environment +won't experience an unacceptably large loss of capability. + +C commands are normally written as single modules, named after the +command, that link a collection of functions called libgit. Thus, +your command 'git-foo' would normally be implemented as a single +"git-foo.c" (or "builtin/foo.c" if it is to be linked to the main +binary); this organization makes it easy for people reading the code +to find things. + +See the CodingGuidelines document for other guidance on what we consider +good practice in C and shell, and api-builtin.txt for the support +functions available to built-in commands written in C. + +What every extension command needs +---------------------------------- + +You must have a man page, written in asciidoc (this is what git help +followed by your subcommand name will display). Be aware that there is +a local asciidoc configuration and macros which you should use. It's +often helpful to start by cloning an existing page and replacing the +text content. + +You must have a test, written to report in TAP (Test Anything Protocol). +Tests are executables (usually shell scripts) that live in the 't' +subdirectory of the tree. Each test name begins with 't' and a sequence +number that controls where in the test sequence it will be executed; +conventionally the rest of the name stem is that of the command +being tested. + +Read the file t/README to learn more about the conventions to be used +in writing tests, and the test support library. + +Integrating a command +--------------------- + +Here are the things you need to do when you want to merge a new +subcommand into the git tree. + +0. Don't forget to sign off your patch! + +1. Append your command name to one of the variables BUILTIN_OBJS, +EXTRA_PROGRAMS, SCRIPT_SH, SCRIPT_PERL or SCRIPT_PYTHON. + +2. Drop its test in the t directory. + +3. If your command is implemented in an interpreted language with a +p-code intermediate form, make sure .gitignore in the main directory +includes a pattern entry that ignores such files. Python .pyc and +.pyo files will already be covered. + +4. If your command has any dependency on a particular version of +your language, document it in the INSTALL file. + +5. There is a file command-list.txt in the distribution main directory +that categorizes commands by type, so they can be listed in appropriate +subsections in the documentation's summary command list. Add an entry +for yours. To understand the categories, look at git-cmmands.txt +in the main directory. + +6. Give the maintainer one paragraph to include in the RelNotes file +to describe the new feature; a good place to do so is in the cover +letter [PATCH 0/n]. + +That's all there is to it. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index d66e54f12d..4bc073cc13 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.8.0.1 +DEF_VER=v1.8.1-rc1 LF=' ' @@ -374,7 +374,7 @@ htmldir = share/doc/git-doc ETC_GITCONFIG = $(sysconfdir)/gitconfig ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes lib = lib -# DESTDIR= +# DESTDIR = pathsep = : export prefix bindir sharedir sysconfdir gitwebdir localedir @@ -575,9 +575,9 @@ endif export PERL_PATH export PYTHON_PATH -LIB_FILE=libgit.a -XDIFF_LIB=xdiff/lib.a -VCSSVN_LIB=vcs-svn/lib.a +LIB_FILE = libgit.a +XDIFF_LIB = xdiff/lib.a +VCSSVN_LIB = vcs-svn/lib.a LIB_H += xdiff/xinclude.h LIB_H += xdiff/xmacros.h @@ -1139,7 +1139,7 @@ ifeq ($(uname_S),NetBSD) endif ifeq ($(uname_S),AIX) DEFAULT_PAGER = more - NO_STRCASESTR=YesPlease + NO_STRCASESTR = YesPlease NO_MEMMEM = YesPlease NO_MKDTEMP = YesPlease NO_MKSTEMPS = YesPlease @@ -1147,7 +1147,7 @@ ifeq ($(uname_S),AIX) NO_NSEC = YesPlease FREAD_READS_DIRECTORIES = UnfortunatelyYes INTERNAL_QSORT = UnfortunatelyYes - NEEDS_LIBICONV=YesPlease + NEEDS_LIBICONV = YesPlease BASIC_CFLAGS += -D_LARGE_FILES ifeq ($(shell expr "$(uname_V)" : '[1234]'),1) NO_PTHREADS = YesPlease @@ -1155,13 +1155,13 @@ ifeq ($(uname_S),AIX) PTHREAD_LIBS = -lpthread endif ifeq ($(shell expr "$(uname_V).$(uname_R)" : '5\.1'),3) - INLINE='' + INLINE = '' endif GIT_TEST_CMP = cmp endif ifeq ($(uname_S),GNU) # GNU/Hurd - NO_STRLCPY=YesPlease + NO_STRLCPY = YesPlease NO_MKSTEMPS = YesPlease HAVE_PATHS_H = YesPlease LIBC_CONTAINS_LIBINTL = YesPlease @@ -1187,9 +1187,9 @@ ifeq ($(uname_S),IRIX) NEEDS_LIBGEN = YesPlease endif ifeq ($(uname_S),IRIX64) - NO_SETENV=YesPlease + NO_SETENV = YesPlease NO_UNSETENV = YesPlease - NO_STRCASESTR=YesPlease + NO_STRCASESTR = YesPlease NO_MEMMEM = YesPlease NO_MKSTEMPS = YesPlease NO_MKDTEMP = YesPlease @@ -1203,14 +1203,14 @@ ifeq ($(uname_S),IRIX64) NO_REGEX = YesPlease NO_FNMATCH_CASEFOLD = YesPlease SNPRINTF_RETURNS_BOGUS = YesPlease - SHELL_PATH=/usr/gnu/bin/bash + SHELL_PATH = /usr/gnu/bin/bash NEEDS_LIBGEN = YesPlease endif ifeq ($(uname_S),HP-UX) INLINE = __inline - NO_IPV6=YesPlease - NO_SETENV=YesPlease - NO_STRCASESTR=YesPlease + NO_IPV6 = YesPlease + NO_SETENV = YesPlease + NO_STRCASESTR = YesPlease NO_MEMMEM = YesPlease NO_MKSTEMPS = YesPlease NO_STRLCPY = YesPlease @@ -1386,10 +1386,10 @@ ifeq ($(uname_S),NONSTOP_KERNEL) MKDIR_WO_TRAILING_SLASH = YesPlease # RFE 10-120912-4693 submitted to HP NonStop development. NO_SETITIMER = UnfortunatelyYes - SANE_TOOL_PATH=/usr/coreutils/bin:/usr/local/bin - SHELL_PATH=/usr/local/bin/bash + SANE_TOOL_PATH = /usr/coreutils/bin:/usr/local/bin + SHELL_PATH = /usr/local/bin/bash # as of H06.25/J06.14, we might better use this - #SHELL_PATH=/usr/coreutils/bin/bash + #SHELL_PATH = /usr/coreutils/bin/bash endif ifneq (,$(findstring MINGW,$(uname_S))) pathsep = ; @@ -1437,7 +1437,7 @@ ifneq (,$(findstring MINGW,$(uname_S))) X = .exe SPARSE_FLAGS = -Wno-one-bit-signed-bitfield ifneq (,$(wildcard ../THIS_IS_MSYSGIT)) - htmldir=doc/git/html/ + htmldir = doc/git/html/ prefix = INSTALL = /bin/install EXTLIBS += /mingw/lib/libz.a @@ -1559,7 +1559,7 @@ else CURL_LIBCURL = -lcurl endif ifdef NEEDS_SSL_WITH_CURL - CURL_LIBCURL += -lssl + CURL_LIBCURL += -lssl ifdef NEEDS_CRYPTO_WITH_SSL CURL_LIBCURL += -lcrypto endif @@ -1768,7 +1768,7 @@ ifdef OBJECT_CREATION_USES_RENAMES endif ifdef NO_STRUCT_ITIMERVAL COMPAT_CFLAGS += -DNO_STRUCT_ITIMERVAL - NO_SETITIMER=YesPlease + NO_SETITIMER = YesPlease endif ifdef NO_SETITIMER COMPAT_CFLAGS += -DNO_SETITIMER @@ -1920,15 +1920,15 @@ ifneq (,$(XDL_FAST_HASH)) endif ifeq ($(TCLTK_PATH),) -NO_TCLTK=NoThanks +NO_TCLTK = NoThanks endif ifeq ($(PERL_PATH),) -NO_PERL=NoThanks +NO_PERL = NoThanks endif ifeq ($(PYTHON_PATH),) -NO_PYTHON=NoThanks +NO_PYTHON = NoThanks endif QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir @@ -1975,13 +1975,13 @@ PROFILE_DIR := $(CURDIR) ifeq ("$(PROFILE)","GEN") CFLAGS += -fprofile-generate=$(PROFILE_DIR) -DNO_NORETURN=1 EXTLIBS += -lgcov - export CCACHE_DISABLE=t - V=1 + export CCACHE_DISABLE = t + V = 1 else ifneq ("$(PROFILE)","") CFLAGS += -fprofile-use=$(PROFILE_DIR) -fprofile-correction -DNO_NORETURN=1 - export CCACHE_DISABLE=t - V=1 + export CCACHE_DISABLE = t + V = 1 endif endif @@ -2830,7 +2830,7 @@ git.spec: git.spec.in GIT-VERSION-FILE sed -e 's/@@VERSION@@/$(GIT_VERSION)/g' < $< > $@+ mv $@+ $@ -GIT_TARNAME=git-$(GIT_VERSION) +GIT_TARNAME = git-$(GIT_VERSION) dist: git.spec git-archive$(X) configure ./git-archive --format=tar \ --prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar diff --git a/builtin/commit.c b/builtin/commit.c index 1dd2ec5e6f..d6dd3df8b1 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -755,7 +755,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix, ident_shown++ ? "" : "\n", author_ident->buf); - if (!user_ident_sufficiently_given()) + if (!committer_ident_sufficiently_given()) status_printf_ln(s, GIT_COLOR_NORMAL, _("%s" "Committer: %s"), @@ -1265,7 +1265,7 @@ static void print_summary(const char *prefix, const unsigned char *sha1, strbuf_addstr(&format, "\n Author: "); strbuf_addbuf_percentquote(&format, &author_ident); } - if (!user_ident_sufficiently_given()) { + if (!committer_ident_sufficiently_given()) { strbuf_addstr(&format, "\n Committer: "); strbuf_addbuf_percentquote(&format, &committer_ident); if (advice_implicit_identity) { diff --git a/builtin/rm.c b/builtin/rm.c index 2aea3b5653..dabfcf6890 100644 --- a/builtin/rm.c +++ b/builtin/rm.c @@ -234,6 +234,21 @@ int cmd_rm(int argc, const char **argv, const char *prefix) if (read_cache() < 0) die(_("index file corrupt")); + /* + * Drop trailing directory separators from directories so we'll find + * submodules in the index. + */ + for (i = 0; i < argc; i++) { + size_t pathlen = strlen(argv[i]); + if (pathlen && is_dir_sep(argv[i][pathlen - 1]) && + is_directory(argv[i])) { + do { + pathlen--; + } while (pathlen && is_dir_sep(argv[i][pathlen - 1])); + argv[i] = xmemdupz(argv[i], pathlen); + } + } + pathspec = get_pathspec(prefix, argv); refresh_index(&the_index, REFRESH_QUIET, pathspec, NULL, NULL); @@ -1149,11 +1149,8 @@ struct config_include_data { #define CONFIG_INCLUDE_INIT { 0 } extern int git_config_include(const char *name, const char *value, void *data); -#define IDENT_NAME_GIVEN 01 -#define IDENT_MAIL_GIVEN 02 -#define IDENT_ALL_GIVEN (IDENT_NAME_GIVEN|IDENT_MAIL_GIVEN) -extern int user_ident_explicitly_given; -extern int user_ident_sufficiently_given(void); +extern int committer_ident_sufficiently_given(void); +extern int author_ident_sufficiently_given(void); extern const char *git_commit_encoding; extern const char *git_log_output_encoding; diff --git a/compat/mingw.c b/compat/mingw.c index 4e6383898c..b673625580 100644 --- a/compat/mingw.c +++ b/compat/mingw.c @@ -256,6 +256,8 @@ int mingw_rmdir(const char *pathname) while ((ret = rmdir(pathname)) == -1 && tries < ARRAY_SIZE(delay)) { if (!is_file_in_use_error(GetLastError())) + errno = err_win_to_posix(GetLastError()); + if (errno != EACCES) break; if (!is_dir_empty(pathname)) { errno = ENOTEMPTY; @@ -271,7 +273,7 @@ int mingw_rmdir(const char *pathname) Sleep(delay[tries]); tries++; } - while (ret == -1 && is_file_in_use_error(GetLastError()) && + while (ret == -1 && errno == EACCES && is_file_in_use_error(GetLastError()) && ask_yes_no_if_possible("Deletion of directory '%s' failed. " "Should I try again?", pathname)) ret = rmdir(pathname); @@ -319,6 +321,31 @@ ssize_t mingw_write(int fd, const void *buf, size_t count) return write(fd, buf, min(count, 31 * 1024 * 1024)); } +static BOOL WINAPI ctrl_ignore(DWORD type) +{ + return TRUE; +} + +#undef fgetc +int mingw_fgetc(FILE *stream) +{ + int ch; + if (!isatty(_fileno(stream))) + return fgetc(stream); + + SetConsoleCtrlHandler(ctrl_ignore, TRUE); + while (1) { + ch = fgetc(stream); + if (ch != EOF || GetLastError() != ERROR_OPERATION_ABORTED) + break; + + /* Ctrl+C was pressed, simulate SIGINT and retry */ + mingw_raise(SIGINT); + } + SetConsoleCtrlHandler(ctrl_ignore, FALSE); + return ch; +} + #undef fopen FILE *mingw_fopen (const char *filename, const char *otype) { @@ -1546,7 +1573,7 @@ static HANDLE timer_event; static HANDLE timer_thread; static int timer_interval; static int one_shot; -static sig_handler_t timer_fn = SIG_DFL; +static sig_handler_t timer_fn = SIG_DFL, sigint_fn = SIG_DFL; /* The timer works like this: * The thread, ticktack(), is a trivial routine that most of the time @@ -1560,10 +1587,7 @@ static sig_handler_t timer_fn = SIG_DFL; static unsigned __stdcall ticktack(void *dummy) { while (WaitForSingleObject(timer_event, timer_interval) == WAIT_TIMEOUT) { - if (timer_fn == SIG_DFL) - die("Alarm"); - if (timer_fn != SIG_IGN) - timer_fn(SIGALRM); + mingw_raise(SIGALRM); if (one_shot) break; } @@ -1654,12 +1678,49 @@ int sigaction(int sig, struct sigaction *in, struct sigaction *out) sig_handler_t mingw_signal(int sig, sig_handler_t handler) { sig_handler_t old = timer_fn; - if (sig != SIGALRM) + + switch (sig) { + case SIGALRM: + timer_fn = handler; + break; + + case SIGINT: + sigint_fn = handler; + break; + + default: return signal(sig, handler); - timer_fn = handler; + } + return old; } +#undef raise +int mingw_raise(int sig) +{ + switch (sig) { + case SIGALRM: + if (timer_fn == SIG_DFL) { + if (isatty(STDERR_FILENO)) + fputs("Alarm clock\n", stderr); + exit(128 + SIGALRM); + } else if (timer_fn != SIG_IGN) + timer_fn(SIGALRM); + return 0; + + case SIGINT: + if (sigint_fn == SIG_DFL) + exit(128 + SIGINT); + else if (sigint_fn != SIG_IGN) + sigint_fn(SIGINT); + return 0; + + default: + return raise(sig); + } +} + + static const char *make_backslash_path(const char *path) { static char buf[PATH_MAX + 1]; @@ -1721,21 +1782,6 @@ int link(const char *oldpath, const char *newpath) return 0; } -char *getpass(const char *prompt) -{ - struct strbuf buf = STRBUF_INIT; - - fputs(prompt, stderr); - for (;;) { - char c = _getch(); - if (c == '\r' || c == '\n') - break; - strbuf_addch(&buf, c); - } - fputs("\n", stderr); - return strbuf_detach(&buf, NULL); -} - pid_t waitpid(pid_t pid, int *status, int options) { HANDLE h = OpenProcess(SYNCHRONIZE | PROCESS_QUERY_INFORMATION, diff --git a/compat/mingw.h b/compat/mingw.h index eeb08d120b..685cd2c3d4 100644 --- a/compat/mingw.h +++ b/compat/mingw.h @@ -55,8 +55,6 @@ struct passwd { char *pw_dir; }; -extern char *getpass(const char *prompt); - typedef void (__cdecl *sig_handler_t)(int); struct sigaction { sig_handler_t sa_handler; @@ -179,6 +177,9 @@ int mingw_open (const char *filename, int oflags, ...); ssize_t mingw_write(int fd, const void *buf, size_t count); #define write mingw_write +int mingw_fgetc(FILE *stream); +#define fgetc mingw_fgetc + FILE *mingw_fopen (const char *filename, const char *otype); #define fopen mingw_fopen @@ -290,6 +291,9 @@ static inline unsigned int git_ntohl(unsigned int x) sig_handler_t mingw_signal(int sig, sig_handler_t handler); #define signal mingw_signal +int mingw_raise(int sig); +#define raise mingw_raise + /* * ANSI emulation wrappers */ diff --git a/compat/terminal.c b/compat/terminal.c index bbb038dd01..9b5e3d1bb8 100644 --- a/compat/terminal.c +++ b/compat/terminal.c @@ -3,8 +3,22 @@ #include "sigchain.h" #include "strbuf.h" +#if defined(HAVE_DEV_TTY) || defined(WIN32) + +static void restore_term(void); + +static void restore_term_on_signal(int sig) +{ + restore_term(); + sigchain_pop(sig); + raise(sig); +} + #ifdef HAVE_DEV_TTY +#define INPUT_PATH "/dev/tty" +#define OUTPUT_PATH "/dev/tty" + static int term_fd = -1; static struct termios old_term; @@ -14,58 +28,109 @@ static void restore_term(void) return; tcsetattr(term_fd, TCSAFLUSH, &old_term); + close(term_fd); term_fd = -1; } -static void restore_term_on_signal(int sig) +static int disable_echo(void) { - restore_term(); - sigchain_pop(sig); - raise(sig); + struct termios t; + + term_fd = open("/dev/tty", O_RDWR); + if (tcgetattr(term_fd, &t) < 0) + goto error; + + old_term = t; + sigchain_push_common(restore_term_on_signal); + + t.c_lflag &= ~ECHO; + if (!tcsetattr(term_fd, TCSAFLUSH, &t)) + return 0; + +error: + close(term_fd); + term_fd = -1; + return -1; +} + +#elif defined(WIN32) + +#define INPUT_PATH "CONIN$" +#define OUTPUT_PATH "CONOUT$" +#define FORCE_TEXT "t" + +static HANDLE hconin = INVALID_HANDLE_VALUE; +static DWORD cmode; + +static void restore_term(void) +{ + if (hconin == INVALID_HANDLE_VALUE) + return; + + SetConsoleMode(hconin, cmode); + CloseHandle(hconin); + hconin = INVALID_HANDLE_VALUE; } +static int disable_echo(void) +{ + hconin = CreateFile("CONIN$", GENERIC_READ | GENERIC_WRITE, + FILE_SHARE_READ, NULL, OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, NULL); + if (hconin == INVALID_HANDLE_VALUE) + return -1; + + GetConsoleMode(hconin, &cmode); + sigchain_push_common(restore_term_on_signal); + if (!SetConsoleMode(hconin, cmode & (~ENABLE_ECHO_INPUT))) { + CloseHandle(hconin); + hconin = INVALID_HANDLE_VALUE; + return -1; + } + + return 0; +} + +#endif + +#ifndef FORCE_TEXT +#define FORCE_TEXT +#endif + char *git_terminal_prompt(const char *prompt, int echo) { static struct strbuf buf = STRBUF_INIT; int r; - FILE *fh; + FILE *input_fh, *output_fh; - fh = fopen("/dev/tty", "w+"); - if (!fh) + input_fh = fopen(INPUT_PATH, "r" FORCE_TEXT); + if (!input_fh) return NULL; - if (!echo) { - struct termios t; - - if (tcgetattr(fileno(fh), &t) < 0) { - fclose(fh); - return NULL; - } - - old_term = t; - term_fd = fileno(fh); - sigchain_push_common(restore_term_on_signal); - - t.c_lflag &= ~ECHO; - if (tcsetattr(fileno(fh), TCSAFLUSH, &t) < 0) { - term_fd = -1; - fclose(fh); - return NULL; - } + output_fh = fopen(OUTPUT_PATH, "w" FORCE_TEXT); + if (!output_fh) { + fclose(input_fh); + return NULL; + } + + if (!echo && disable_echo()) { + fclose(input_fh); + fclose(output_fh); + return NULL; } - fputs(prompt, fh); - fflush(fh); + fputs(prompt, output_fh); + fflush(output_fh); - r = strbuf_getline(&buf, fh, '\n'); + r = strbuf_getline(&buf, input_fh, '\n'); if (!echo) { - fseek(fh, SEEK_CUR, 0); - putc('\n', fh); - fflush(fh); + putc('\n', output_fh); + fflush(output_fh); } restore_term(); - fclose(fh); + fclose(input_fh); + fclose(output_fh); if (r == EOF) return NULL; diff --git a/config.mak.in b/config.mak.in index 69d48382fe..e8a9bb4682 100644 --- a/config.mak.in +++ b/config.mak.in @@ -18,7 +18,7 @@ datarootdir = @datarootdir@ template_dir = @datadir@/git-core/templates sysconfdir = @sysconfdir@ -mandir=@mandir@ +mandir = @mandir@ srcdir = @srcdir@ VPATH = @srcdir@ diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 0960acc586..0b77eb1fa4 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -23,10 +23,6 @@ # 3) Consider changing your PS1 to also show the current branch, # see git-prompt.sh for details. -if [[ -n ${ZSH_VERSION-} ]]; then - autoload -U +X bashcompinit && bashcompinit -fi - case "$COMP_WORDBREAKS" in *:*) : great ;; *) COMP_WORDBREAKS="$COMP_WORDBREAKS:" @@ -169,7 +165,6 @@ __git_reassemble_comp_words_by_ref() } if ! type _get_comp_words_by_ref >/dev/null 2>&1; then -if [[ -z ${ZSH_VERSION:+set} ]]; then _get_comp_words_by_ref () { local exclude cur_ words_ cword_ @@ -197,32 +192,6 @@ _get_comp_words_by_ref () shift done } -else -_get_comp_words_by_ref () -{ - while [ $# -gt 0 ]; do - case "$1" in - cur) - cur=${COMP_WORDS[COMP_CWORD]} - ;; - prev) - prev=${COMP_WORDS[COMP_CWORD-1]} - ;; - words) - words=("${COMP_WORDS[@]}") - ;; - cword) - cword=$COMP_CWORD - ;; - -n) - # assume COMP_WORDBREAKS is already set sanely - shift - ;; - esac - shift - done -} -fi fi # Generates completion reply with compgen, appending a space to possible @@ -989,6 +958,8 @@ _git_clone () --upload-pack --template= --depth + --single-branch + --branch " return ;; @@ -2430,20 +2401,71 @@ __gitk_main () __git_complete_revlist } -__git_func_wrap () -{ - if [[ -n ${ZSH_VERSION-} ]]; then - emulate -L bash - setopt KSH_TYPESET +if [[ -n ${ZSH_VERSION-} ]]; then + echo "WARNING: this script is deprecated, please see git-completion.zsh" 1>&2 - # workaround zsh's bug that leaves 'words' as a special - # variable in versions < 4.3.12 - typeset -h words + autoload -U +X compinit && compinit - # workaround zsh's bug that quotes spaces in the COMPREPLY - # array if IFS doesn't contain spaces. - typeset -h IFS - fi + __gitcomp () + { + emulate -L zsh + + local cur_="${3-$cur}" + + case "$cur_" in + --*=) + ;; + *) + local c IFS=$' \t\n' + local -a array + for c in ${=1}; do + c="$c${4-}" + case $c in + --*=*|*.) ;; + *) c="$c " ;; + esac + array+=("$c") + done + compset -P '*[=:]' + compadd -Q -S '' -p "${2-}" -a -- array && _ret=0 + ;; + esac + } + + __gitcomp_nl () + { + emulate -L zsh + + local IFS=$'\n' + compset -P '*[=:]' + compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0 + } + + __git_zsh_helper () + { + emulate -L ksh + local cur cword prev + cur=${words[CURRENT-1]} + prev=${words[CURRENT-2]} + let cword=CURRENT-1 + __${service}_main + } + + _git () + { + emulate -L zsh + local _ret=1 + __git_zsh_helper + let _ret && _default -S '' && _ret=0 + return _ret + } + + compdef _git git gitk + return +fi + +__git_func_wrap () +{ local cur words cword prev _get_comp_words_by_ref -n =: cur words cword prev $1 diff --git a/contrib/completion/git-completion.tcsh b/contrib/completion/git-completion.tcsh index dc5678c23f..8aafb63315 100644 --- a/contrib/completion/git-completion.tcsh +++ b/contrib/completion/git-completion.tcsh @@ -19,45 +19,89 @@ # (e.g. ~/.git-completion.tcsh and ~/.git-completion.bash). # 2) Add the following line to your .tcshrc/.cshrc: # source ~/.git-completion.tcsh +# 3) For completion similar to bash, it is recommended to also +# add the following line to your .tcshrc/.cshrc: +# set autolist=ambiguous +# It will tell tcsh to list the possible completion choices. set __git_tcsh_completion_original_script = ${HOME}/.git-completion.bash set __git_tcsh_completion_script = ${HOME}/.git-completion.tcsh.bash +# Check that the user put the script in the right place +if ( ! -e ${__git_tcsh_completion_original_script} ) then + echo "git-completion.tcsh: Cannot find: ${__git_tcsh_completion_original_script}. Git completion will not work." + exit +endif + cat << EOF > ${__git_tcsh_completion_script} #!bash # # This script is GENERATED and will be overwritten automatically. -# Do not modify it directly. Instead, modify the git-completion.tcsh -# script provided by Git core. -# +# Do not modify it directly. Instead, modify git-completion.tcsh +# and source it again. source ${__git_tcsh_completion_original_script} # Set COMP_WORDS in a way that can be handled by the bash script. -COMP_WORDS=(\$1) +COMP_WORDS=(\$2) # The cursor is at the end of parameter #1. # We must check for a space as the last character which will # tell us that the previous word is complete and the cursor # is on the next word. -if [ "\${1: -1}" == " " ]; then - # The last character is a space, so our location is at the end - # of the command-line array - COMP_CWORD=\${#COMP_WORDS[@]} +if [ "\${2: -1}" == " " ]; then + # The last character is a space, so our location is at the end + # of the command-line array + COMP_CWORD=\${#COMP_WORDS[@]} else - # The last character is not a space, so our location is on the - # last word of the command-line array, so we must decrement the - # count by 1 - COMP_CWORD=\$((\${#COMP_WORDS[@]}-1)) + # The last character is not a space, so our location is on the + # last word of the command-line array, so we must decrement the + # count by 1 + COMP_CWORD=\$((\${#COMP_WORDS[@]}-1)) fi -# Call _git() or _gitk() of the bash script, based on the first -# element of the command-line -_\${COMP_WORDS[0]} +# Call _git() or _gitk() of the bash script, based on the first argument +_\${1} IFS=\$'\n' -echo "\${COMPREPLY[*]}" | sort | uniq +if [ \${#COMPREPLY[*]} -gt 0 ]; then + echo "\${COMPREPLY[*]}" | sort | uniq +else + # No completions suggested. In this case, we want tcsh to perform + # standard file completion. However, there does not seem to be way + # to tell tcsh to do that. To help the user, we try to simulate + # file completion directly in this script. + # + # Known issues: + # - Possible completions are shown with their directory prefix. + # - Completions containing shell variables are not handled. + # - Completions with ~ as the first character are not handled. + + # No file completion should be done unless we are completing beyond + # the git sub-command. An improvement on the bash completion :) + if [ \${COMP_CWORD} -gt 1 ]; then + TO_COMPLETE="\${COMP_WORDS[\${COMP_CWORD}]}" + + # We don't support ~ expansion: too tricky. + if [ "\${TO_COMPLETE:0:1}" != "~" ]; then + # Use ls so as to add the '/' at the end of directories. + RESULT=(\`ls -dp \${TO_COMPLETE}* 2> /dev/null\`) + echo \${RESULT[*]} + + # If there is a single completion and it is a directory, + # we output it a second time to trick tcsh into not adding a space + # after it. + if [ \${#RESULT[*]} -eq 1 ] && [ "\${RESULT[0]: -1}" == "/" ]; then + echo \${RESULT[*]} + fi + fi + fi +fi + EOF -complete git 'p/*/`bash ${__git_tcsh_completion_script} "${COMMAND_LINE}"`/' -complete gitk 'p/*/`bash ${__git_tcsh_completion_script} "${COMMAND_LINE}"`/' +# Don't need this variable anymore, so don't pollute the users environment +unset __git_tcsh_completion_original_script + +complete git 'p,*,`bash ${__git_tcsh_completion_script} git "${COMMAND_LINE}"`,' +complete gitk 'p,*,`bash ${__git_tcsh_completion_script} gitk "${COMMAND_LINE}"`,' diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh new file mode 100644 index 0000000000..45775021ff --- /dev/null +++ b/contrib/completion/git-completion.zsh @@ -0,0 +1,78 @@ +#compdef git gitk + +# zsh completion wrapper for git +# +# You need git's bash completion script installed somewhere, by default on the +# same directory as this script. +# +# If your script is on ~/.git-completion.sh instead, you can configure it on +# your ~/.zshrc: +# +# zstyle ':completion:*:*:git:*' script ~/.git-completion.sh +# +# The recommended way to install this script is to copy to +# '~/.zsh/completion/_git', and then add the following to your ~/.zshrc file: +# +# fpath=(~/.zsh/completion $fpath) + +complete () +{ + # do nothing + return 0 +} + +zstyle -s ":completion:*:*:git:*" script script +test -z "$script" && script="$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash +ZSH_VERSION='' . "$script" + +__gitcomp () +{ + emulate -L zsh + + local cur_="${3-$cur}" + + case "$cur_" in + --*=) + ;; + *) + local c IFS=$' \t\n' + local -a array + for c in ${=1}; do + c="$c${4-}" + case $c in + --*=*|*.) ;; + *) c="$c " ;; + esac + array+=("$c") + done + compset -P '*[=:]' + compadd -Q -S '' -p "${2-}" -a -- array && _ret=0 + ;; + esac +} + +__gitcomp_nl () +{ + emulate -L zsh + + local IFS=$'\n' + compset -P '*[=:]' + compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0 +} + +_git () +{ + local _ret=1 + () { + emulate -L ksh + local cur cword prev + cur=${words[CURRENT-1]} + prev=${words[CURRENT-2]} + let cword=CURRENT-1 + __${service}_main + } + let _ret && _default -S '' && _ret=0 + return _ret +} + +_git diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh index 00fc099b8d..9b074e148d 100644 --- a/contrib/completion/git-prompt.sh +++ b/contrib/completion/git-prompt.sh @@ -10,14 +10,20 @@ # 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh). # 2) Add the following line to your .bashrc/.zshrc: # source ~/.git-prompt.sh -# 3a) In ~/.bashrc set PROMPT_COMMAND=__git_ps1 -# To customize the prompt, provide start/end arguments -# PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "' -# 3b) Alternatively change your PS1 to call __git_ps1 as +# 3a) Change your PS1 to call __git_ps1 as # command-substitution: # Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' # ZSH: PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ ' -# the optional argument will be used as format string +# the optional argument will be used as format string. +# 3b) Alternatively, if you are using bash, __git_ps1 can be +# used for PROMPT_COMMAND with two parameters, <pre> and +# <post>, which are strings you would put in $PS1 before +# and after the status string generated by the git-prompt +# machinery. e.g. +# PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "' +# will show username, at-sign, host, colon, cwd, then +# various status string, followed by dollar and SP, as +# your prompt. # # The argument to __git_ps1 will be displayed only if you are currently # in a git repository. The %s token will be the name of the current @@ -55,10 +61,19 @@ # GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by # setting the bash.showUpstream config variable. # +# If you would like to see more information about the identity of +# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE +# to one of these values: +# +# contains relative to newer annotated tag (v1.6.3.2~35) +# branch relative to newer tag or branch (master~4) +# describe relative to older annotated tag (v1.6.3.1-13-gdd42c2f) +# default exactly matching tag +# # If you would like a colored hint about the current dirty state, set # GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on # the colored output of "git status -sb". -# + # __gitdir accepts 0 or 1 arguments (i.e., location) # returns location of .git repo __gitdir () diff --git a/contrib/mw-to-git/git-remote-mediawiki b/contrib/mw-to-git/git-remote-mediawiki index 68555d4265..094129de09 100755 --- a/contrib/mw-to-git/git-remote-mediawiki +++ b/contrib/mw-to-git/git-remote-mediawiki @@ -711,6 +711,14 @@ sub fetch_mw_revisions { return ($n, @revisions); } +sub fe_escape_path { + my $path = shift; + $path =~ s/\\/\\\\/g; + $path =~ s/"/\\"/g; + $path =~ s/\n/\\n/g; + return '"' . $path . '"'; +} + sub import_file_revision { my $commit = shift; my %commit = %{$commit}; @@ -738,15 +746,17 @@ sub import_file_revision { print STDOUT "from refs/mediawiki/$remotename/master^0\n"; } if ($content ne DELETED_CONTENT) { - print STDOUT "M 644 inline $title.mw\n"; + print STDOUT "M 644 inline " . + fe_escape_path($title . ".mw") . "\n"; literal_data($content); if (%mediafile) { - print STDOUT "M 644 inline $mediafile{title}\n"; + print STDOUT "M 644 inline " + . fe_escape_path($mediafile{title}) . "\n"; literal_data_raw($mediafile{content}); } print STDOUT "\n\n"; } else { - print STDOUT "D $title.mw\n"; + print STDOUT "D " . fe_escape_path($title . ".mw") . "\n"; } # mediawiki revision number in the git note diff --git a/contrib/mw-to-git/t/t9362-mw-to-git-utf8.sh b/contrib/mw-to-git/t/t9362-mw-to-git-utf8.sh index 246d47d8fb..b6405ce262 100755 --- a/contrib/mw-to-git/t/t9362-mw-to-git-utf8.sh +++ b/contrib/mw-to-git/t/t9362-mw-to-git-utf8.sh @@ -318,4 +318,30 @@ test_expect_success 'git push with \ in format control' ' ' +test_expect_success 'fast-import meta-characters in page name (mw -> git)' ' + wiki_reset && + wiki_editpage \"file\"_\\_foo "expect to be called \"file\"_\\_foo" false && + git clone mediawiki::'"$WIKI_URL"' mw_dir_21 && + test_path_is_file mw_dir_21/\"file\"_\\_foo.mw && + wiki_getallpage ref_page_21 && + test_diff_directories mw_dir_21 ref_page_21 +' + + +test_expect_success 'fast-import meta-characters in page name (git -> mw) ' ' + wiki_reset && + git clone mediawiki::'"$WIKI_URL"' mw_dir_22 && + ( + cd mw_dir_22 && + echo "this file is called \"file\"_\\_foo.mw" >\"file\"_\\_foo && + git add . && + git commit -am "file \"file\"_\\_foo" && + git pull && + git push + ) && + wiki_getallpage ref_page_22 && + test_diff_directories mw_dir_22 ref_page_22 +' + + test_done diff --git a/contrib/remote-helpers/Makefile b/contrib/remote-helpers/Makefile new file mode 100644 index 0000000000..9a76575f78 --- /dev/null +++ b/contrib/remote-helpers/Makefile @@ -0,0 +1,13 @@ +TESTS := $(wildcard test*.sh) + +export T := $(addprefix $(CURDIR)/,$(TESTS)) +export MAKE := $(MAKE) -e +export PATH := $(CURDIR):$(PATH) + +test: + $(MAKE) -C ../../t $@ + +$(TESTS): + $(MAKE) -C ../../t $(CURDIR)/$@ + +.PHONY: $(TESTS) diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg new file mode 100755 index 0000000000..016cdadb4d --- /dev/null +++ b/contrib/remote-helpers/git-remote-hg @@ -0,0 +1,794 @@ +#!/usr/bin/env python +# +# Copyright (c) 2012 Felipe Contreras +# + +# Inspired by Rocco Rutte's hg-fast-export + +# Just copy to your ~/bin, or anywhere in your $PATH. +# Then you can clone with: +# git clone hg::/path/to/mercurial/repo/ + +from mercurial import hg, ui, bookmarks, context, util, encoding + +import re +import sys +import os +import json +import shutil +import subprocess +import urllib + +# +# If you want to switch to hg-git compatibility mode: +# git config --global remote-hg.hg-git-compat true +# +# git: +# Sensible defaults for git. +# hg bookmarks are exported as git branches, hg branches are prefixed +# with 'branches/', HEAD is a special case. +# +# hg: +# Emulate hg-git. +# Only hg bookmarks are exported as git branches. +# Commits are modified to preserve hg information and allow biridectionality. +# + +NAME_RE = re.compile('^([^<>]+)') +AUTHOR_RE = re.compile('^([^<>]+?)? ?<([^<>]*)>$') +AUTHOR_HG_RE = re.compile('^(.*?) ?<(.*?)(?:>(.+)?)?$') +RAW_AUTHOR_RE = re.compile('^(\w+) (?:(.+)? )?<(.*)> (\d+) ([+-]\d+)') + +def die(msg, *args): + sys.stderr.write('ERROR: %s\n' % (msg % args)) + sys.exit(1) + +def warn(msg, *args): + sys.stderr.write('WARNING: %s\n' % (msg % args)) + +def gitmode(flags): + return 'l' in flags and '120000' or 'x' in flags and '100755' or '100644' + +def gittz(tz): + return '%+03d%02d' % (-tz / 3600, -tz % 3600 / 60) + +def hgmode(mode): + m = { '0100755': 'x', '0120000': 'l' } + return m.get(mode, '') + +def get_config(config): + cmd = ['git', 'config', '--get', config] + process = subprocess.Popen(cmd, stdout=subprocess.PIPE) + output, _ = process.communicate() + return output + +class Marks: + + def __init__(self, path): + self.path = path + self.tips = {} + self.marks = {} + self.rev_marks = {} + self.last_mark = 0 + + self.load() + + def load(self): + if not os.path.exists(self.path): + return + + tmp = json.load(open(self.path)) + + self.tips = tmp['tips'] + self.marks = tmp['marks'] + self.last_mark = tmp['last-mark'] + + for rev, mark in self.marks.iteritems(): + self.rev_marks[mark] = int(rev) + + def dict(self): + return { 'tips': self.tips, 'marks': self.marks, 'last-mark' : self.last_mark } + + def store(self): + json.dump(self.dict(), open(self.path, 'w')) + + def __str__(self): + return str(self.dict()) + + def from_rev(self, rev): + return self.marks[str(rev)] + + def to_rev(self, mark): + return self.rev_marks[mark] + + def get_mark(self, rev): + self.last_mark += 1 + self.marks[str(rev)] = self.last_mark + return self.last_mark + + def new_mark(self, rev, mark): + self.marks[str(rev)] = mark + self.rev_marks[mark] = rev + self.last_mark = mark + + def is_marked(self, rev): + return self.marks.has_key(str(rev)) + + def get_tip(self, branch): + return self.tips.get(branch, 0) + + def set_tip(self, branch, tip): + self.tips[branch] = tip + +class Parser: + + def __init__(self, repo): + self.repo = repo + self.line = self.get_line() + + def get_line(self): + return sys.stdin.readline().strip() + + def __getitem__(self, i): + return self.line.split()[i] + + def check(self, word): + return self.line.startswith(word) + + def each_block(self, separator): + while self.line != separator: + yield self.line + self.line = self.get_line() + + def __iter__(self): + return self.each_block('') + + def next(self): + self.line = self.get_line() + if self.line == 'done': + self.line = None + + def get_mark(self): + i = self.line.index(':') + 1 + return int(self.line[i:]) + + def get_data(self): + if not self.check('data'): + return None + i = self.line.index(' ') + 1 + size = int(self.line[i:]) + return sys.stdin.read(size) + + def get_author(self): + global bad_mail + + ex = None + m = RAW_AUTHOR_RE.match(self.line) + if not m: + return None + _, name, email, date, tz = m.groups() + if name and 'ext:' in name: + m = re.match('^(.+?) ext:\((.+)\)$', name) + if m: + name = m.group(1) + ex = urllib.unquote(m.group(2)) + + if email != bad_mail: + if name: + user = '%s <%s>' % (name, email) + else: + user = '<%s>' % (email) + else: + user = name + + if ex: + user += ex + + tz = int(tz) + tz = ((tz / 100) * 3600) + ((tz % 100) * 60) + return (user, int(date), -tz) + +def export_file(fc): + d = fc.data() + print "M %s inline %s" % (gitmode(fc.flags()), fc.path()) + print "data %d" % len(d) + print d + +def get_filechanges(repo, ctx, parent): + modified = set() + added = set() + removed = set() + + cur = ctx.manifest() + prev = repo[parent].manifest().copy() + + for fn in cur: + if fn in prev: + if (cur.flags(fn) != prev.flags(fn) or cur[fn] != prev[fn]): + modified.add(fn) + del prev[fn] + else: + added.add(fn) + removed |= set(prev.keys()) + + return added | modified, removed + +def fixup_user_git(user): + name = mail = None + user = user.replace('"', '') + m = AUTHOR_RE.match(user) + if m: + name = m.group(1) + mail = m.group(2).strip() + else: + m = NAME_RE.match(user) + if m: + name = m.group(1).strip() + return (name, mail) + +def fixup_user_hg(user): + def sanitize(name): + # stole this from hg-git + return re.sub('[<>\n]', '?', name.lstrip('< ').rstrip('> ')) + + m = AUTHOR_HG_RE.match(user) + if m: + name = sanitize(m.group(1)) + mail = sanitize(m.group(2)) + ex = m.group(3) + if ex: + name += ' ext:(' + urllib.quote(ex) + ')' + else: + name = sanitize(user) + if '@' in user: + mail = name + else: + mail = None + + return (name, mail) + +def fixup_user(user): + global mode, bad_mail + + if mode == 'git': + name, mail = fixup_user_git(user) + else: + name, mail = fixup_user_hg(user) + + if not name: + name = bad_name + if not mail: + mail = bad_mail + + return '%s <%s>' % (name, mail) + +def get_repo(url, alias): + global dirname, peer + + myui = ui.ui() + myui.setconfig('ui', 'interactive', 'off') + + if hg.islocal(url): + repo = hg.repository(myui, url) + else: + local_path = os.path.join(dirname, 'clone') + if not os.path.exists(local_path): + peer, dstpeer = hg.clone(myui, {}, url, local_path, update=False, pull=True) + repo = dstpeer.local() + else: + repo = hg.repository(myui, local_path) + peer = hg.peer(myui, {}, url) + repo.pull(peer, heads=None, force=True) + + return repo + +def rev_to_mark(rev): + global marks + return marks.from_rev(rev) + +def mark_to_rev(mark): + global marks + return marks.to_rev(mark) + +def export_ref(repo, name, kind, head): + global prefix, marks, mode + + ename = '%s/%s' % (kind, name) + tip = marks.get_tip(ename) + + # mercurial takes too much time checking this + if tip and tip == head.rev(): + # nothing to do + return + revs = xrange(tip, head.rev() + 1) + count = 0 + + revs = [rev for rev in revs if not marks.is_marked(rev)] + + for rev in revs: + + c = repo[rev] + (manifest, user, (time, tz), files, desc, extra) = repo.changelog.read(c.node()) + rev_branch = extra['branch'] + + author = "%s %d %s" % (fixup_user(user), time, gittz(tz)) + if 'committer' in extra: + user, time, tz = extra['committer'].rsplit(' ', 2) + committer = "%s %s %s" % (user, time, gittz(int(tz))) + else: + committer = author + + parents = [p for p in repo.changelog.parentrevs(rev) if p >= 0] + + if len(parents) == 0: + modified = c.manifest().keys() + removed = [] + else: + modified, removed = get_filechanges(repo, c, parents[0]) + + if mode == 'hg': + extra_msg = '' + + if rev_branch != 'default': + extra_msg += 'branch : %s\n' % rev_branch + + renames = [] + for f in c.files(): + if f not in c.manifest(): + continue + rename = c.filectx(f).renamed() + if rename: + renames.append((rename[0], f)) + + for e in renames: + extra_msg += "rename : %s => %s\n" % e + + for key, value in extra.iteritems(): + if key in ('author', 'committer', 'encoding', 'message', 'branch', 'hg-git'): + continue + else: + extra_msg += "extra : %s : %s\n" % (key, urllib.quote(value)) + + desc += '\n' + if extra_msg: + desc += '\n--HG--\n' + extra_msg + + if len(parents) == 0 and rev: + print 'reset %s/%s' % (prefix, ename) + + print "commit %s/%s" % (prefix, ename) + print "mark :%d" % (marks.get_mark(rev)) + print "author %s" % (author) + print "committer %s" % (committer) + print "data %d" % (len(desc)) + print desc + + if len(parents) > 0: + print "from :%s" % (rev_to_mark(parents[0])) + if len(parents) > 1: + print "merge :%s" % (rev_to_mark(parents[1])) + + for f in modified: + export_file(c.filectx(f)) + for f in removed: + print "D %s" % (f) + print + + count += 1 + if (count % 100 == 0): + print "progress revision %d '%s' (%d/%d)" % (rev, name, count, len(revs)) + print "#############################################################" + + # make sure the ref is updated + print "reset %s/%s" % (prefix, ename) + print "from :%u" % rev_to_mark(rev) + print + + marks.set_tip(ename, rev) + +def export_tag(repo, tag): + export_ref(repo, tag, 'tags', repo[tag]) + +def export_bookmark(repo, bmark): + head = bmarks[bmark] + export_ref(repo, bmark, 'bookmarks', head) + +def export_branch(repo, branch): + tip = get_branch_tip(repo, branch) + head = repo[tip] + export_ref(repo, branch, 'branches', head) + +def export_head(repo): + global g_head + export_ref(repo, g_head[0], 'bookmarks', g_head[1]) + +def do_capabilities(parser): + global prefix, dirname + + print "import" + print "export" + print "refspec refs/heads/branches/*:%s/branches/*" % prefix + print "refspec refs/heads/*:%s/bookmarks/*" % prefix + print "refspec refs/tags/*:%s/tags/*" % prefix + + path = os.path.join(dirname, 'marks-git') + + if os.path.exists(path): + print "*import-marks %s" % path + print "*export-marks %s" % path + + print + +def get_branch_tip(repo, branch): + global branches + + heads = branches.get(branch, None) + if not heads: + return None + + # verify there's only one head + if (len(heads) > 1): + warn("Branch '%s' has more than one head, consider merging" % branch) + # older versions of mercurial don't have this + if hasattr(repo, "branchtip"): + return repo.branchtip(branch) + + return heads[0] + +def list_head(repo, cur): + global g_head, bmarks + + head = bookmarks.readcurrent(repo) + if head: + node = repo[head] + else: + # fake bookmark from current branch + head = cur + node = repo['.'] + if not node: + node = repo['tip'] + if not node: + return + if head == 'default': + head = 'master' + bmarks[head] = node + + print "@refs/heads/%s HEAD" % head + g_head = (head, node) + +def do_list(parser): + global branches, bmarks, mode, track_branches + + repo = parser.repo + for bmark, node in bookmarks.listbookmarks(repo).iteritems(): + bmarks[bmark] = repo[node] + + cur = repo.dirstate.branch() + + list_head(repo, cur) + + if track_branches: + for branch in repo.branchmap(): + heads = repo.branchheads(branch) + if len(heads): + branches[branch] = heads + + for branch in branches: + print "? refs/heads/branches/%s" % branch + + for bmark in bmarks: + print "? refs/heads/%s" % bmark + + for tag, node in repo.tagslist(): + if tag == 'tip': + continue + print "? refs/tags/%s" % tag + + print + +def do_import(parser): + repo = parser.repo + + path = os.path.join(dirname, 'marks-git') + + print "feature done" + if os.path.exists(path): + print "feature import-marks=%s" % path + print "feature export-marks=%s" % path + sys.stdout.flush() + + tmp = encoding.encoding + encoding.encoding = 'utf-8' + + # lets get all the import lines + while parser.check('import'): + ref = parser[1] + + if (ref == 'HEAD'): + export_head(repo) + elif ref.startswith('refs/heads/branches/'): + branch = ref[len('refs/heads/branches/'):] + export_branch(repo, branch) + elif ref.startswith('refs/heads/'): + bmark = ref[len('refs/heads/'):] + export_bookmark(repo, bmark) + elif ref.startswith('refs/tags/'): + tag = ref[len('refs/tags/'):] + export_tag(repo, tag) + + parser.next() + + encoding.encoding = tmp + + print 'done' + +def parse_blob(parser): + global blob_marks + + parser.next() + mark = parser.get_mark() + parser.next() + data = parser.get_data() + blob_marks[mark] = data + parser.next() + return + +def get_merge_files(repo, p1, p2, files): + for e in repo[p1].files(): + if e not in files: + if e not in repo[p1].manifest(): + continue + f = { 'ctx' : repo[p1][e] } + files[e] = f + +def parse_commit(parser): + global marks, blob_marks, bmarks, parsed_refs + global mode + + from_mark = merge_mark = None + + ref = parser[1] + parser.next() + + commit_mark = parser.get_mark() + parser.next() + author = parser.get_author() + parser.next() + committer = parser.get_author() + parser.next() + data = parser.get_data() + parser.next() + if parser.check('from'): + from_mark = parser.get_mark() + parser.next() + if parser.check('merge'): + merge_mark = parser.get_mark() + parser.next() + if parser.check('merge'): + die('octopus merges are not supported yet') + + files = {} + + for line in parser: + if parser.check('M'): + t, m, mark_ref, path = line.split(' ', 3) + mark = int(mark_ref[1:]) + f = { 'mode' : hgmode(m), 'data' : blob_marks[mark] } + elif parser.check('D'): + t, path = line.split(' ') + f = { 'deleted' : True } + else: + die('Unknown file command: %s' % line) + files[path] = f + + def getfilectx(repo, memctx, f): + of = files[f] + if 'deleted' in of: + raise IOError + if 'ctx' in of: + return of['ctx'] + is_exec = of['mode'] == 'x' + is_link = of['mode'] == 'l' + rename = of.get('rename', None) + return context.memfilectx(f, of['data'], + is_link, is_exec, rename) + + repo = parser.repo + + user, date, tz = author + extra = {} + + if committer != author: + extra['committer'] = "%s %u %u" % committer + + if from_mark: + p1 = repo.changelog.node(mark_to_rev(from_mark)) + else: + p1 = '\0' * 20 + + if merge_mark: + p2 = repo.changelog.node(mark_to_rev(merge_mark)) + else: + p2 = '\0' * 20 + + # + # If files changed from any of the parents, hg wants to know, but in git if + # nothing changed from the first parent, nothing changed. + # + if merge_mark: + get_merge_files(repo, p1, p2, files) + + if mode == 'hg': + i = data.find('\n--HG--\n') + if i >= 0: + tmp = data[i + len('\n--HG--\n'):].strip() + for k, v in [e.split(' : ') for e in tmp.split('\n')]: + if k == 'rename': + old, new = v.split(' => ', 1) + files[new]['rename'] = old + elif k == 'branch': + extra[k] = v + elif k == 'extra': + ek, ev = v.split(' : ', 1) + extra[ek] = urllib.unquote(ev) + data = data[:i] + + ctx = context.memctx(repo, (p1, p2), data, + files.keys(), getfilectx, + user, (date, tz), extra) + + tmp = encoding.encoding + encoding.encoding = 'utf-8' + + node = repo.commitctx(ctx) + + encoding.encoding = tmp + + rev = repo[node].rev() + + parsed_refs[ref] = node + + marks.new_mark(rev, commit_mark) + +def parse_reset(parser): + ref = parser[1] + parser.next() + # ugh + if parser.check('commit'): + parse_commit(parser) + return + if not parser.check('from'): + return + from_mark = parser.get_mark() + parser.next() + + node = parser.repo.changelog.node(mark_to_rev(from_mark)) + parsed_refs[ref] = node + +def parse_tag(parser): + name = parser[1] + parser.next() + from_mark = parser.get_mark() + parser.next() + tagger = parser.get_author() + parser.next() + data = parser.get_data() + parser.next() + + # nothing to do + +def do_export(parser): + global parsed_refs, bmarks, peer + + parser.next() + + for line in parser.each_block('done'): + if parser.check('blob'): + parse_blob(parser) + elif parser.check('commit'): + parse_commit(parser) + elif parser.check('reset'): + parse_reset(parser) + elif parser.check('tag'): + parse_tag(parser) + elif parser.check('feature'): + pass + else: + die('unhandled export command: %s' % line) + + for ref, node in parsed_refs.iteritems(): + if ref.startswith('refs/heads/branches'): + pass + elif ref.startswith('refs/heads/'): + bmark = ref[len('refs/heads/'):] + if bmark in bmarks: + old = bmarks[bmark].hex() + else: + old = '' + if not bookmarks.pushbookmark(parser.repo, bmark, old, node): + continue + elif ref.startswith('refs/tags/'): + tag = ref[len('refs/tags/'):] + parser.repo.tag([tag], node, None, True, None, {}) + else: + # transport-helper/fast-export bugs + continue + print "ok %s" % ref + + print + + if peer: + parser.repo.push(peer, force=False) + +def main(args): + global prefix, dirname, branches, bmarks + global marks, blob_marks, parsed_refs + global peer, mode, bad_mail, bad_name + global track_branches + + alias = args[1] + url = args[2] + peer = None + + hg_git_compat = False + track_branches = True + try: + if get_config('remote-hg.hg-git-compat') == 'true\n': + hg_git_compat = True + track_branches = False + if get_config('remote-hg.track-branches') == 'false\n': + track_branches = False + except subprocess.CalledProcessError: + pass + + if hg_git_compat: + mode = 'hg' + bad_mail = 'none@none' + bad_name = '' + else: + mode = 'git' + bad_mail = 'unknown' + bad_name = 'Unknown' + + if alias[4:] == url: + is_tmp = True + alias = util.sha1(alias).hexdigest() + else: + is_tmp = False + + gitdir = os.environ['GIT_DIR'] + dirname = os.path.join(gitdir, 'hg', alias) + branches = {} + bmarks = {} + blob_marks = {} + parsed_refs = {} + + repo = get_repo(url, alias) + prefix = 'refs/hg/%s' % alias + + if not os.path.exists(dirname): + os.makedirs(dirname) + + marks_path = os.path.join(dirname, 'marks-hg') + marks = Marks(marks_path) + + parser = Parser(repo) + for line in parser: + if parser.check('capabilities'): + do_capabilities(parser) + elif parser.check('list'): + do_list(parser) + elif parser.check('import'): + do_import(parser) + elif parser.check('export'): + do_export(parser) + else: + die('unhandled command: %s' % line) + sys.stdout.flush() + + if not is_tmp: + marks.store() + else: + shutil.rmtree(dirname) + +sys.exit(main(sys.argv)) diff --git a/contrib/remote-helpers/test-hg-bidi.sh b/contrib/remote-helpers/test-hg-bidi.sh new file mode 100755 index 0000000000..a94eb28092 --- /dev/null +++ b/contrib/remote-helpers/test-hg-bidi.sh @@ -0,0 +1,243 @@ +#!/bin/sh +# +# Copyright (c) 2012 Felipe Contreras +# +# Base commands from hg-git tests: +# https://bitbucket.org/durin42/hg-git/src +# + +test_description='Test biridectionality of remote-hg' + +. ./test-lib.sh + +if ! test_have_prereq PYTHON; then + skip_all='skipping remote-hg tests; python not available' + test_done +fi + +if ! "$PYTHON_PATH" -c 'import mercurial'; then + skip_all='skipping remote-hg tests; mercurial not available' + test_done +fi + +# clone to a git repo +git_clone () { + hg -R $1 bookmark -f -r tip master && + git clone -q "hg::$PWD/$1" $2 +} + +# clone to an hg repo +hg_clone () { + ( + hg init $2 && + cd $1 && + git push -q "hg::$PWD/../$2" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' + ) && + + (cd $2 && hg -q update) +} + +# push an hg repo +hg_push () { + ( + cd $2 + old=$(git symbolic-ref --short HEAD) + git checkout -q -b tmp && + git fetch -q "hg::$PWD/../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && + git checkout -q $old && + git branch -q -D tmp 2> /dev/null || true + ) +} + +hg_log () { + hg -R $1 log --graph --debug | grep -v 'tag: *default/' +} + +setup () { + ( + echo "[ui]" + echo "username = A U Thor <author@example.com>" + echo "[defaults]" + echo "backout = -d \"0 0\"" + echo "commit = -d \"0 0\"" + echo "debugrawcommit = -d \"0 0\"" + echo "tag = -d \"0 0\"" + ) >> "$HOME"/.hgrc && + git config --global remote-hg.hg-git-compat true + + export HGEDITOR=/usr/bin/true + + export GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" + export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" +} + +setup + +test_expect_success 'encoding' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + git init -q gitrepo && + cd gitrepo && + + echo alpha > alpha && + git add alpha && + git commit -m "add älphà " && + + export GIT_AUTHOR_NAME="tést èncödîng" && + echo beta > beta && + git add beta && + git commit -m "add beta" && + + echo gamma > gamma && + git add gamma && + git commit -m "add gämmâ" && + + : TODO git config i18n.commitencoding latin-1 && + echo delta > delta && + git add delta && + git commit -m "add déltà " + ) && + + hg_clone gitrepo hgrepo && + git_clone hgrepo gitrepo2 && + hg_clone gitrepo2 hgrepo2 && + + HGENCODING=utf-8 hg_log hgrepo > expected && + HGENCODING=utf-8 hg_log hgrepo2 > actual && + + test_cmp expected actual +' + +test_expect_success 'file removal' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + git init -q gitrepo && + cd gitrepo && + echo alpha > alpha && + git add alpha && + git commit -m "add alpha" && + echo beta > beta && + git add beta && + git commit -m "add beta" + mkdir foo && + echo blah > foo/bar && + git add foo && + git commit -m "add foo" && + git rm alpha && + git commit -m "remove alpha" && + git rm foo/bar && + git commit -m "remove foo/bar" + ) && + + hg_clone gitrepo hgrepo && + git_clone hgrepo gitrepo2 && + hg_clone gitrepo2 hgrepo2 && + + hg_log hgrepo > expected && + hg_log hgrepo2 > actual && + + test_cmp expected actual +' + +test_expect_success 'git tags' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + git init -q gitrepo && + cd gitrepo && + git config receive.denyCurrentBranch ignore && + echo alpha > alpha && + git add alpha && + git commit -m "add alpha" && + git tag alpha && + + echo beta > beta && + git add beta && + git commit -m "add beta" && + git tag -a -m "added tag beta" beta + ) && + + hg_clone gitrepo hgrepo && + git_clone hgrepo gitrepo2 && + hg_clone gitrepo2 hgrepo2 && + + hg_log hgrepo > expected && + hg_log hgrepo2 > actual && + + test_cmp expected actual +' + +test_expect_success 'hg branch' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + git init -q gitrepo && + cd gitrepo && + + echo alpha > alpha && + git add alpha && + git commit -q -m "add alpha" && + git checkout -q -b not-master + ) && + + ( + hg_clone gitrepo hgrepo && + + cd hgrepo && + hg -q co master && + hg mv alpha beta && + hg -q commit -m "rename alpha to beta" && + hg branch gamma | grep -v "permanent and global" && + hg -q commit -m "started branch gamma" + ) && + + hg_push hgrepo gitrepo && + hg_clone gitrepo hgrepo2 && + + : TODO, avoid "master" bookmark && + (cd hgrepo2 && hg checkout gamma) && + + hg_log hgrepo > expected && + hg_log hgrepo2 > actual && + + test_cmp expected actual +' + +test_expect_success 'hg tags' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + git init -q gitrepo && + cd gitrepo && + + echo alpha > alpha && + git add alpha && + git commit -m "add alpha" && + git checkout -q -b not-master + ) && + + ( + hg_clone gitrepo hgrepo && + + cd hgrepo && + hg co master && + hg tag alpha + ) && + + hg_push hgrepo gitrepo && + hg_clone gitrepo hgrepo2 && + + hg_log hgrepo > expected && + hg_log hgrepo2 > actual && + + test_cmp expected actual +' + +test_done diff --git a/contrib/remote-helpers/test-hg-hg-git.sh b/contrib/remote-helpers/test-hg-hg-git.sh new file mode 100755 index 0000000000..3e76d9fb60 --- /dev/null +++ b/contrib/remote-helpers/test-hg-hg-git.sh @@ -0,0 +1,466 @@ +#!/bin/sh +# +# Copyright (c) 2012 Felipe Contreras +# +# Base commands from hg-git tests: +# https://bitbucket.org/durin42/hg-git/src +# + +test_description='Test remote-hg output compared to hg-git' + +. ./test-lib.sh + +if ! test_have_prereq PYTHON; then + skip_all='skipping remote-hg tests; python not available' + test_done +fi + +if ! "$PYTHON_PATH" -c 'import mercurial'; then + skip_all='skipping remote-hg tests; mercurial not available' + test_done +fi + +if ! "$PYTHON_PATH" -c 'import hggit'; then + skip_all='skipping remote-hg tests; hg-git not available' + test_done +fi + +# clone to a git repo with git +git_clone_git () { + hg -R $1 bookmark -f -r tip master && + git clone -q "hg::$PWD/$1" $2 +} + +# clone to an hg repo with git +hg_clone_git () { + ( + hg init $2 && + cd $1 && + git push -q "hg::$PWD/../$2" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' + ) && + + (cd $2 && hg -q update) +} + +# clone to a git repo with hg +git_clone_hg () { + ( + git init -q $2 && + cd $1 && + hg bookmark -f -r tip master && + hg -q push -r master ../$2 || true + ) +} + +# clone to an hg repo with hg +hg_clone_hg () { + hg -q clone $1 $2 +} + +# push an hg repo with git +hg_push_git () { + ( + cd $2 + old=$(git symbolic-ref --short HEAD) + git checkout -q -b tmp && + git fetch -q "hg::$PWD/../$1" 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*' && + git checkout -q $old && + git branch -q -D tmp 2> /dev/null || true + ) +} + +# push an hg git repo with hg +hg_push_hg () { + ( + cd $1 && + hg -q push ../$2 || true + ) +} + +hg_log () { + hg -R $1 log --graph --debug | grep -v 'tag: *default/' +} + +git_log () { + git --git-dir=$1/.git fast-export --branches +} + +setup () { + ( + echo "[ui]" + echo "username = A U Thor <author@example.com>" + echo "[defaults]" + echo "backout = -d \"0 0\"" + echo "commit = -d \"0 0\"" + echo "debugrawcommit = -d \"0 0\"" + echo "tag = -d \"0 0\"" + echo "[extensions]" + echo "hgext.bookmarks =" + echo "hggit =" + ) >> "$HOME"/.hgrc && + git config --global receive.denycurrentbranch warn + git config --global remote-hg.hg-git-compat true + + export HGEDITOR=/usr/bin/true + + export GIT_AUTHOR_DATE="2007-01-01 00:00:00 +0230" + export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE" +} + +setup + +test_expect_success 'merge conflict 1' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + hg init hgrepo1 && + cd hgrepo1 && + echo A > afile && + hg add afile && + hg ci -m "origin" && + + echo B > afile && + hg ci -m "A->B" && + + hg up -r0 && + echo C > afile && + hg ci -m "A->C" && + + hg merge -r1 || true && + echo C > afile && + hg resolve -m afile && + hg ci -m "merge to C" + ) && + + for x in hg git; do + git_clone_$x hgrepo1 gitrepo-$x && + hg_clone_$x gitrepo-$x hgrepo2-$x && + hg_log hgrepo2-$x > hg-log-$x && + git_log gitrepo-$x > git-log-$x + done && + + test_cmp hg-log-hg hg-log-git && + test_cmp git-log-hg git-log-git +' + +test_expect_success 'merge conflict 2' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + hg init hgrepo1 && + cd hgrepo1 && + echo A > afile && + hg add afile && + hg ci -m "origin" && + + echo B > afile && + hg ci -m "A->B" && + + hg up -r0 && + echo C > afile && + hg ci -m "A->C" && + + hg merge -r1 || true && + echo B > afile && + hg resolve -m afile && + hg ci -m "merge to B" + ) && + + for x in hg git; do + git_clone_$x hgrepo1 gitrepo-$x && + hg_clone_$x gitrepo-$x hgrepo2-$x && + hg_log hgrepo2-$x > hg-log-$x && + git_log gitrepo-$x > git-log-$x + done && + + test_cmp hg-log-hg hg-log-git && + test_cmp git-log-hg git-log-git +' + +test_expect_success 'converged merge' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + hg init hgrepo1 && + cd hgrepo1 && + echo A > afile && + hg add afile && + hg ci -m "origin" && + + echo B > afile && + hg ci -m "A->B" && + + echo C > afile && + hg ci -m "B->C" && + + hg up -r0 && + echo C > afile && + hg ci -m "A->C" && + + hg merge -r2 || true && + hg ci -m "merge" + ) && + + for x in hg git; do + git_clone_$x hgrepo1 gitrepo-$x && + hg_clone_$x gitrepo-$x hgrepo2-$x && + hg_log hgrepo2-$x > hg-log-$x && + git_log gitrepo-$x > git-log-$x + done && + + test_cmp hg-log-hg hg-log-git && + test_cmp git-log-hg git-log-git +' + +test_expect_success 'encoding' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + git init -q gitrepo && + cd gitrepo && + + echo alpha > alpha && + git add alpha && + git commit -m "add älphà " && + + export GIT_AUTHOR_NAME="tést èncödîng" && + echo beta > beta && + git add beta && + git commit -m "add beta" && + + echo gamma > gamma && + git add gamma && + git commit -m "add gämmâ" && + + : TODO git config i18n.commitencoding latin-1 && + echo delta > delta && + git add delta && + git commit -m "add déltà " + ) && + + for x in hg git; do + hg_clone_$x gitrepo hgrepo-$x && + git_clone_$x hgrepo-$x gitrepo2-$x && + + HGENCODING=utf-8 hg_log hgrepo-$x > hg-log-$x && + git_log gitrepo2-$x > git-log-$x + done && + + test_cmp hg-log-hg hg-log-git && + test_cmp git-log-hg git-log-git +' + +test_expect_success 'file removal' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + git init -q gitrepo && + cd gitrepo && + echo alpha > alpha && + git add alpha && + git commit -m "add alpha" && + echo beta > beta && + git add beta && + git commit -m "add beta" + mkdir foo && + echo blah > foo/bar && + git add foo && + git commit -m "add foo" && + git rm alpha && + git commit -m "remove alpha" && + git rm foo/bar && + git commit -m "remove foo/bar" + ) && + + for x in hg git; do + ( + hg_clone_$x gitrepo hgrepo-$x && + cd hgrepo-$x && + hg_log . && + hg manifest -r 3 && + hg manifest + ) > output-$x && + + git_clone_$x hgrepo-$x gitrepo2-$x && + git_log gitrepo2-$x > log-$x + done && + + test_cmp output-hg output-git && + test_cmp log-hg log-git +' + +test_expect_success 'git tags' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + ( + git init -q gitrepo && + cd gitrepo && + git config receive.denyCurrentBranch ignore && + echo alpha > alpha && + git add alpha && + git commit -m "add alpha" && + git tag alpha && + + echo beta > beta && + git add beta && + git commit -m "add beta" && + git tag -a -m "added tag beta" beta + ) && + + for x in hg git; do + hg_clone_$x gitrepo hgrepo-$x && + hg_log hgrepo-$x > log-$x + done && + + test_cmp log-hg log-git +' + +test_expect_success 'hg author' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + for x in hg git; do + ( + git init -q gitrepo-$x && + cd gitrepo-$x && + + echo alpha > alpha && + git add alpha && + git commit -m "add alpha" && + git checkout -q -b not-master + ) && + + ( + hg_clone_$x gitrepo-$x hgrepo-$x && + cd hgrepo-$x && + + hg co master && + echo beta > beta && + hg add beta && + hg commit -u "test" -m "add beta" && + + echo gamma >> beta && + hg commit -u "test <test@example.com> (comment)" -m "modify beta" && + + echo gamma > gamma && + hg add gamma && + hg commit -u "<test@example.com>" -m "add gamma" && + + echo delta > delta && + hg add delta && + hg commit -u "name<test@example.com>" -m "add delta" && + + echo epsilon > epsilon && + hg add epsilon && + hg commit -u "name <test@example.com" -m "add epsilon" && + + echo zeta > zeta && + hg add zeta && + hg commit -u " test " -m "add zeta" && + + echo eta > eta && + hg add eta && + hg commit -u "test < test@example.com >" -m "add eta" && + + echo theta > theta && + hg add theta && + hg commit -u "test >test@example.com>" -m "add theta" && + + echo iota > iota && + hg add iota && + hg commit -u "test <test <at> example <dot> com>" -m "add iota" + ) && + + hg_push_$x hgrepo-$x gitrepo-$x && + hg_clone_$x gitrepo-$x hgrepo2-$x && + + hg_log hgrepo2-$x > hg-log-$x && + git_log gitrepo-$x > git-log-$x + done && + + test_cmp git-log-hg git-log-git && + + test_cmp hg-log-hg hg-log-git && + test_cmp git-log-hg git-log-git +' + +test_expect_success 'hg branch' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + for x in hg git; do + ( + git init -q gitrepo-$x && + cd gitrepo-$x && + + echo alpha > alpha && + git add alpha && + git commit -q -m "add alpha" && + git checkout -q -b not-master + ) && + + ( + hg_clone_$x gitrepo-$x hgrepo-$x && + + cd hgrepo-$x && + hg -q co master && + hg mv alpha beta && + hg -q commit -m "rename alpha to beta" && + hg branch gamma | grep -v "permanent and global" && + hg -q commit -m "started branch gamma" + ) && + + hg_push_$x hgrepo-$x gitrepo-$x && + hg_clone_$x gitrepo-$x hgrepo2-$x && + + hg_log hgrepo2-$x > hg-log-$x && + git_log gitrepo-$x > git-log-$x + done && + + test_cmp hg-log-hg hg-log-git && + test_cmp git-log-hg git-log-git +' + +test_expect_success 'hg tags' ' + mkdir -p tmp && cd tmp && + test_when_finished "cd .. && rm -rf tmp" && + + for x in hg git; do + ( + git init -q gitrepo-$x && + cd gitrepo-$x && + + echo alpha > alpha && + git add alpha && + git commit -m "add alpha" && + git checkout -q -b not-master + ) && + + ( + hg_clone_$x gitrepo-$x hgrepo-$x && + + cd hgrepo-$x && + hg co master && + hg tag alpha + ) && + + hg_push_$x hgrepo-$x gitrepo-$x && + hg_clone_$x gitrepo-$x hgrepo2-$x && + + ( + git --git-dir=gitrepo-$x/.git tag -l && + hg_log hgrepo2-$x && + cat hgrepo2-$x/.hgtags + ) > output-$x + done && + + test_cmp output-hg output-git +' + +test_done diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh new file mode 100755 index 0000000000..5f81dfae6c --- /dev/null +++ b/contrib/remote-helpers/test-hg.sh @@ -0,0 +1,121 @@ +#!/bin/sh +# +# Copyright (c) 2012 Felipe Contreras +# +# Base commands from hg-git tests: +# https://bitbucket.org/durin42/hg-git/src +# + +test_description='Test remote-hg' + +. ./test-lib.sh + +if ! test_have_prereq PYTHON; then + skip_all='skipping remote-hg tests; python not available' + test_done +fi + +if ! "$PYTHON_PATH" -c 'import mercurial'; then + skip_all='skipping remote-hg tests; mercurial not available' + test_done +fi + +check () { + (cd $1 && + git log --format='%s' -1 && + git symbolic-ref HEAD) > actual && + (echo $2 && + echo "refs/heads/$3") > expected && + test_cmp expected actual +} + +setup () { + ( + echo "[ui]" + echo "username = H G Wells <wells@example.com>" + ) >> "$HOME"/.hgrc +} + +setup + +test_expect_success 'cloning' ' + test_when_finished "rm -rf gitrepo*" && + + ( + hg init hgrepo && + cd hgrepo && + echo zero > content && + hg add content && + hg commit -m zero + ) && + + git clone "hg::$PWD/hgrepo" gitrepo && + check gitrepo zero master +' + +test_expect_success 'cloning with branches' ' + test_when_finished "rm -rf gitrepo*" && + + ( + cd hgrepo && + hg branch next && + echo next > content && + hg commit -m next + ) && + + git clone "hg::$PWD/hgrepo" gitrepo && + check gitrepo next next && + + (cd hgrepo && hg checkout default) && + + git clone "hg::$PWD/hgrepo" gitrepo2 && + check gitrepo2 zero master +' + +test_expect_success 'cloning with bookmarks' ' + test_when_finished "rm -rf gitrepo*" && + + ( + cd hgrepo && + hg bookmark feature-a && + echo feature-a > content && + hg commit -m feature-a + ) && + + git clone "hg::$PWD/hgrepo" gitrepo && + check gitrepo feature-a feature-a +' + +test_expect_success 'cloning with detached head' ' + test_when_finished "rm -rf gitrepo*" && + + ( + cd hgrepo && + hg update -r 0 + ) && + + git clone "hg::$PWD/hgrepo" gitrepo && + check gitrepo zero master +' + +test_expect_success 'update bookmark' ' + test_when_finished "rm -rf gitrepo*" && + + ( + cd hgrepo && + hg bookmark devel + ) && + + ( + git clone "hg::$PWD/hgrepo" gitrepo && + cd gitrepo && + git checkout devel && + echo devel > content && + git commit -a -m devel && + git push + ) && + + hg -R hgrepo bookmarks | grep "devel\s\+3:" +' + +test_done @@ -1497,8 +1497,8 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) for (i = 0; (i < count) && (i < data->nr); i++) { struct diffstat_file *file = data->files[i]; uintmax_t change = file->added + file->deleted; - if (!data->files[i]->is_interesting && - (change == 0)) { + + if (!file->is_interesting && (change == 0)) { count++; /* not shown == room for one more */ continue; } @@ -1525,7 +1525,7 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) if (max_change < change) max_change = change; } - count = i; /* min(count, data->nr) */ + count = i; /* where we can stop scanning in data->files[] */ /* * We have width = stat_width or term_columns() columns total. @@ -1613,16 +1613,15 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) */ for (i = 0; i < count; i++) { const char *prefix = ""; - char *name = data->files[i]->print_name; - uintmax_t added = data->files[i]->added; - uintmax_t deleted = data->files[i]->deleted; + struct diffstat_file *file = data->files[i]; + char *name = file->print_name; + uintmax_t added = file->added; + uintmax_t deleted = file->deleted; int name_len; - if (!data->files[i]->is_interesting && - (added + deleted == 0)) { - total_files--; + if (!file->is_interesting && (added + deleted == 0)) continue; - } + /* * "scale" the filename */ @@ -1638,7 +1637,7 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) name = slash; } - if (data->files[i]->is_binary) { + if (file->is_binary) { fprintf(options->file, "%s", line_prefix); show_name(options->file, prefix, name, len); fprintf(options->file, " %*s", number_width, "Bin"); @@ -1655,7 +1654,7 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) fprintf(options->file, "\n"); continue; } - else if (data->files[i]->is_unmerged) { + else if (file->is_unmerged) { fprintf(options->file, "%s", line_prefix); show_name(options->file, prefix, name, len); fprintf(options->file, " Unmerged\n"); @@ -1667,8 +1666,6 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) */ add = added; del = deleted; - adds += add; - dels += del; if (graph_width <= max_change) { int total = add + del; @@ -1694,16 +1691,24 @@ static void show_stats(struct diffstat_t *data, struct diff_options *options) show_graph(options->file, '-', del, del_c, reset); fprintf(options->file, "\n"); } - for (i = count; i < data->nr; i++) { - uintmax_t added = data->files[i]->added; - uintmax_t deleted = data->files[i]->deleted; - if (!data->files[i]->is_interesting && - (added + deleted == 0)) { + + for (i = 0; i < data->nr; i++) { + struct diffstat_file *file = data->files[i]; + uintmax_t added = file->added; + uintmax_t deleted = file->deleted; + + if (file->is_unmerged || + (!file->is_interesting && (added + deleted == 0))) { total_files--; continue; } - adds += added; - dels += deleted; + + if (!file->is_binary) { + adds += added; + dels += deleted; + } + if (i < count) + continue; if (!extra_shown) fprintf(options->file, "%s ...\n", line_prefix); extra_shown = 1; @@ -1723,9 +1728,8 @@ static void show_shortstats(struct diffstat_t *data, struct diff_options *option int added = data->files[i]->added; int deleted= data->files[i]->deleted; - if (data->files[i]->is_unmerged) - continue; - if (!data->files[i]->is_interesting && (added + deleted == 0)) { + if (data->files[i]->is_unmerged || + (!data->files[i]->is_interesting && (added + deleted == 0))) { total_files--; } else if (!data->files[i]->is_binary) { /* don't count bytes */ adds += added; @@ -2438,7 +2442,7 @@ static void builtin_diffstat(const char *name_a, const char *name_b, } data = diffstat_add(diffstat, name_a, name_b); - data->is_interesting = p->status != 0; + data->is_interesting = p->status != DIFF_STATUS_UNKNOWN; if (!one || !two) { data->is_unmerged = 1; diff --git a/diffcore-pickaxe.c b/diffcore-pickaxe.c index a209376354..b097fa7661 100644 --- a/diffcore-pickaxe.c +++ b/diffcore-pickaxe.c @@ -157,19 +157,15 @@ static void diffcore_pickaxe_grep(struct diff_options *o) return; } -static unsigned int contains(struct diff_filespec *one, struct diff_options *o, +static unsigned int contains(mmfile_t *mf, struct diff_options *o, regex_t *regexp, kwset_t kws) { unsigned int cnt; unsigned long sz; const char *data; - if (!o->pickaxe[0]) - return 0; - if (diff_populate_filespec(one, 0)) - return 0; - sz = one->size; - data = one->data; + sz = mf->size; + data = mf->ptr; cnt = 0; if (regexp) { @@ -199,26 +195,53 @@ static unsigned int contains(struct diff_filespec *one, struct diff_options *o, cnt++; } } - diff_free_filespec_data(one); return cnt; } static int has_changes(struct diff_filepair *p, struct diff_options *o, regex_t *regexp, kwset_t kws) { - if (!DIFF_FILE_VALID(p->one)) { - if (!DIFF_FILE_VALID(p->two)) - return 0; /* ignore unmerged */ + struct userdiff_driver *textconv_one = get_textconv(p->one); + struct userdiff_driver *textconv_two = get_textconv(p->two); + mmfile_t mf1, mf2; + int ret; + + if (!o->pickaxe[0]) + return 0; + + /* + * If we have an unmodified pair, we know that the count will be the + * same and don't even have to load the blobs. Unless textconv is in + * play, _and_ we are using two different textconv filters (e.g., + * because a pair is an exact rename with different textconv attributes + * for each side, which might generate different content). + */ + if (textconv_one == textconv_two && diff_unmodified_pair(p)) + return 0; + + fill_one(p->one, &mf1, &textconv_one); + fill_one(p->two, &mf2, &textconv_two); + + if (!mf1.ptr) { + if (!mf2.ptr) + ret = 0; /* ignore unmerged */ /* created */ - return contains(p->two, o, regexp, kws) != 0; - } - if (!DIFF_FILE_VALID(p->two)) - return contains(p->one, o, regexp, kws) != 0; - if (!diff_unmodified_pair(p)) { - return contains(p->one, o, regexp, kws) != - contains(p->two, o, regexp, kws); + ret = contains(&mf2, o, regexp, kws) != 0; } - return 0; + else if (!mf2.ptr) /* removed */ + ret = contains(&mf1, o, regexp, kws) != 0; + else + ret = contains(&mf1, o, regexp, kws) != + contains(&mf2, o, regexp, kws); + + if (textconv_one) + free(mf1.ptr); + if (textconv_two) + free(mf2.ptr); + diff_free_filespec_data(p->one); + diff_free_filespec_data(p->two); + + return ret; } static void diffcore_pickaxe_count(struct diff_options *o) @@ -129,6 +129,25 @@ def p4_has_command(cmd): p.communicate() return p.returncode == 0 +def p4_has_move_command(): + """See if the move command exists, that it supports -k, and that + it has not been administratively disabled. The arguments + must be correct, but the filenames do not have to exist. Use + ones with wildcards so even if they exist, it will fail.""" + + if not p4_has_command("move"): + return False + cmd = p4_build_cmd(["move", "-k", "@from", "@to"]) + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + (out, err) = p.communicate() + # return code will be 1 in either case + if err.find("Invalid option") >= 0: + return False + if err.find("disabled") >= 0: + return False + # assume it failed because @... was invalid changelist + return True + def system(cmd): expand = isinstance(cmd,basestring) if verbose: @@ -169,6 +188,29 @@ def p4_reopen(type, f): def p4_move(src, dest): p4_system(["move", "-k", wildcard_encode(src), wildcard_encode(dest)]) +def p4_describe(change): + """Make sure it returns a valid result by checking for + the presence of field "time". Return a dict of the + results.""" + + ds = p4CmdList(["describe", "-s", str(change)]) + if len(ds) != 1: + die("p4 describe -s %d did not return 1 result: %s" % (change, str(ds))) + + d = ds[0] + + if "p4ExitCode" in d: + die("p4 describe -s %d exited with %d: %s" % (change, d["p4ExitCode"], + str(d))) + if "code" in d: + if d["code"] == "error": + die("p4 describe -s %d returned error code: %s" % (change, str(d))) + + if "time" not in d: + die("p4 describe -s %d returned no \"time\": %s" % (change, str(d))) + + return d + # # Canonicalize the p4 type and return a tuple of the # base type, plus any modifiers. See "p4 help filetypes" @@ -871,7 +913,7 @@ class P4Submit(Command, P4UserMap): self.conflict_behavior = None self.isWindows = (platform.system() == "Windows") self.exportLabels = False - self.p4HasMoveCommand = p4_has_command("move") + self.p4HasMoveCommand = p4_has_move_command() def check(self): if len(p4CmdList("opened ...")) > 0: @@ -2097,6 +2139,29 @@ class P4Sync(Command, P4UserMap): # handle another chunk of streaming data def streamP4FilesCb(self, marshalled): + # catch p4 errors and complain + err = None + if "code" in marshalled: + if marshalled["code"] == "error": + if "data" in marshalled: + err = marshalled["data"].rstrip() + if err: + f = None + if self.stream_have_file_info: + if "depotFile" in self.stream_file: + f = self.stream_file["depotFile"] + # force a failure in fast-import, else an empty + # commit will be made + self.gitStream.write("\n") + self.gitStream.write("die-now\n") + self.gitStream.close() + # ignore errors, but make sure it exits first + self.importProcess.wait() + if f: + die("Error from p4 print for %s: %s" % (f, err)) + else: + die("Error from p4 print: %s" % err) + if marshalled.has_key('depotFile') and self.stream_have_file_info: # start of a new file - output the old one first self.streamOneP4File(self.stream_file, self.stream_contents) @@ -2341,7 +2406,7 @@ class P4Sync(Command, P4UserMap): try: tmwhen = time.strptime(labelDetails['Update'], "%Y/%m/%d %H:%M:%S") except ValueError: - print "Could not convert label time %s" % labelDetail['Update'] + print "Could not convert label time %s" % labelDetails['Update'] tmwhen = 1 when = int(time.mktime(tmwhen)) @@ -2543,7 +2608,7 @@ class P4Sync(Command, P4UserMap): def importChanges(self, changes): cnt = 1 for change in changes: - description = p4Cmd(["describe", str(change)]) + description = p4_describe(change) self.updateOptionDict(description) if not self.silent: @@ -2667,14 +2732,8 @@ class P4Sync(Command, P4UserMap): # Use time from top-most change so that all git p4 clones of # the same p4 repo have the same commit SHA1s. - res = p4CmdList("describe -s %d" % newestRevision) - newestTime = None - for r in res: - if r.has_key('time'): - newestTime = int(r['time']) - if newestTime is None: - die("\"describe -s\" on newest change %d did not give a time") - details["time"] = newestTime + res = p4_describe(newestRevision) + details["time"] = res["time"] self.updateOptionDict(details) try: @@ -2864,12 +2923,13 @@ class P4Sync(Command, P4UserMap): self.tz = "%+03d%02d" % (- time.timezone / 3600, ((- time.timezone % 3600) / 60)) - importProcess = subprocess.Popen(["git", "fast-import"], - stdin=subprocess.PIPE, stdout=subprocess.PIPE, - stderr=subprocess.PIPE); - self.gitOutput = importProcess.stdout - self.gitStream = importProcess.stdin - self.gitError = importProcess.stderr + self.importProcess = subprocess.Popen(["git", "fast-import"], + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE); + self.gitOutput = self.importProcess.stdout + self.gitStream = self.importProcess.stdin + self.gitError = self.importProcess.stderr if revision: self.importHeadRevision(revision) @@ -2929,7 +2989,7 @@ class P4Sync(Command, P4UserMap): self.importP4Labels(self.gitStream, missingP4Labels) self.gitStream.close() - if importProcess.wait() != 0: + if self.importProcess.wait() != 0: die("fast-import failed: %s" % self.gitError.read()) self.gitOutput.close() self.gitError.close() @@ -3128,7 +3188,6 @@ def main(): printUsage(commands.keys()) sys.exit(2) - cmd = "" cmdName = sys.argv[1] try: klass = commands[cmdName] diff --git a/git-send-email.perl b/git-send-email.perl index 5a7c29db93..94c7f76a15 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -753,16 +753,11 @@ if (!$force) { } } -my $prompting = 0; if (!defined $sender) { $sender = $repoauthor || $repocommitter || ''; - $sender = ask("Who should the emails appear to be from? [$sender] ", - default => $sender, - valid_re => qr/\@.*\./, confirm_only => 1); - print "Emails will be sent from: ", $sender, "\n"; - $prompting++; } +my $prompting = 0; if (!@initial_to && !defined $to_cmd) { my $to = ask("Who should the emails be sent to (if any)? ", default => "", @@ -786,9 +781,11 @@ sub expand_one_alias { } @initial_to = expand_aliases(@initial_to); -@initial_to = (map { sanitize_address($_) } @initial_to); +@initial_to = validate_address_list(sanitize_address_list(@initial_to)); @initial_cc = expand_aliases(@initial_cc); +@initial_cc = validate_address_list(sanitize_address_list(@initial_cc)); @bcclist = expand_aliases(@bcclist); +@bcclist = validate_address_list(sanitize_address_list(@bcclist)); if ($thread && !defined $initial_reply_to && $prompting) { $initial_reply_to = ask( @@ -831,12 +828,45 @@ sub extract_valid_address { $address =~ s/^\s*<(.*)>\s*$/$1/; if ($have_email_valid) { return scalar Email::Valid->address($address); - } else { - # less robust/correct than the monster regexp in Email::Valid, - # but still does a 99% job, and one less dependency - $address =~ /($local_part_regexp\@$domain_regexp)/; - return $1; } + + # less robust/correct than the monster regexp in Email::Valid, + # but still does a 99% job, and one less dependency + return $1 if $address =~ /($local_part_regexp\@$domain_regexp)/; + return undef; +} + +sub extract_valid_address_or_die { + my $address = shift; + $address = extract_valid_address($address); + die "error: unable to extract a valid address from: $address\n" + if !$address; + return $address; +} + +sub validate_address { + my $address = shift; + while (!extract_valid_address($address)) { + print STDERR "error: unable to extract a valid address from: $address\n"; + $_ = ask("What to do with this address? ([q]uit|[d]rop|[e]dit): ", + valid_re => qr/^(?:quit|q|drop|d|edit|e)/i, + default => 'q'); + if (/^d/i) { + return undef; + } elsif (/^q/i) { + cleanup_compose_files(); + exit(0); + } + $address = ask("Who should the email be sent to (if any)? ", + default => "", + valid_re => qr/\@.*\./, confirm_only => 1); + } + return $address; +} + +sub validate_address_list { + return (grep { defined $_ } + map { validate_address($_) } @_); } # Usually don't need to change anything below here. @@ -924,6 +954,10 @@ sub quote_subject { # use the simplest quoting being able to handle the recipient sub sanitize_address { my ($recipient) = @_; + + # remove garbage after email address + $recipient =~ s/(.*>).*$/$1/; + my ($recipient_name, $recipient_addr) = ($recipient =~ /^(.*?)\s*(<.*)/); if (not $recipient_name) { @@ -951,6 +985,10 @@ sub sanitize_address { } +sub sanitize_address_list { + return (map { sanitize_address($_) } @_); +} + # Returns the local Fully Qualified Domain Name (FQDN) if available. # # Tightly configured MTAa require that a caller sends a real DNS @@ -1013,14 +1051,13 @@ sub maildomain { sub send_message { my @recipients = unique_email_list(@to); - @cc = (grep { my $cc = extract_valid_address($_); + @cc = (grep { my $cc = extract_valid_address_or_die($_); not grep { $cc eq $_ || $_ =~ /<\Q${cc}\E>$/ } @recipients } - map { sanitize_address($_) } @cc); my $to = join (",\n\t", @recipients); @recipients = unique_email_list(@recipients,@cc,@bcclist); - @recipients = (map { extract_valid_address($_) } @recipients); + @recipients = (map { extract_valid_address_or_die($_) } @recipients); my $date = format_2822_time($time++); my $gitversion = '@@GIT_VERSION@@'; if ($gitversion =~ m/..GIT_VERSION../) { @@ -1263,7 +1300,7 @@ foreach my $t (@files) { foreach my $addr (parse_address_line($1)) { printf("(mbox) Adding to: %s from line '%s'\n", $addr, $_) unless $quiet; - push @to, sanitize_address($addr); + push @to, $addr; } } elsif (/^Cc:\s+(.*)$/) { @@ -1372,6 +1409,9 @@ foreach my $t (@files) { ($confirm =~ /^(?:auto|compose)$/ && $compose && $message_num == 1)); $needs_confirm = "inform" if ($needs_confirm && $confirm_unconfigured && @cc); + @to = validate_address_list(sanitize_address_list(@to)); + @cc = validate_address_list(sanitize_address_list(@cc)); + @to = (@initial_to, @to); @cc = (@initial_cc, @cc); @@ -1427,14 +1467,10 @@ sub unique_email_list { my @emails; foreach my $entry (@_) { - if (my $clean = extract_valid_address($entry)) { - $seen{$clean} ||= 0; - next if $seen{$clean}++; - push @emails, $entry; - } else { - print STDERR "W: unable to extract a valid address", - " from: $entry\n"; - } + my $clean = extract_valid_address_or_die($entry); + $seen{$clean} ||= 0; + next if $seen{$clean}++; + push @emails, $entry; } return @emails; } diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index e8812fa2b9..0f207f2e20 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -540,7 +540,7 @@ our %feature = ( # $feature{'remote_heads'}{'default'} = [1]; # To have project specific config enable override in $GITWEB_CONFIG # $feature{'remote_heads'}{'override'} = 1; - # and in project config gitweb.remote_heads = 0|1; + # and in project config gitweb.remoteheads = 0|1; 'remote_heads' => { 'sub' => sub { feature_bool('remote_heads', @_) }, 'override' => 0, @@ -2696,12 +2696,15 @@ sub git_get_project_config { # only subsection, if exists, is case sensitive, # and not lowercased by 'git config -z -l' if (my ($hi, $mi, $lo) = ($key =~ /^([^.]*)\.(.*)\.([^.]*)$/)) { + $lo =~ s/_//g; $key = join(".", lc($hi), $mi, lc($lo)); + return if ($lo =~ /\W/ || $hi =~ /\W/); } else { $key = lc($key); + $key =~ s/_//g; + return if ($key =~ /\W/); } $key =~ s/^gitweb\.//; - return if ($key =~ m/\W/); # type sanity check if (defined $type) { @@ -10,7 +10,12 @@ static struct strbuf git_default_name = STRBUF_INIT; static struct strbuf git_default_email = STRBUF_INIT; static char git_default_date[50]; -int user_ident_explicitly_given; + +#define IDENT_NAME_GIVEN 01 +#define IDENT_MAIL_GIVEN 02 +#define IDENT_ALL_GIVEN (IDENT_NAME_GIVEN|IDENT_MAIL_GIVEN) +static int committer_ident_explicitly_given; +static int author_ident_explicitly_given; #ifdef NO_GECOS_IN_PWENT #define get_gecos(ignored) "&" @@ -109,7 +114,8 @@ const char *ident_default_email(void) if (email && email[0]) { strbuf_addstr(&git_default_email, email); - user_ident_explicitly_given |= IDENT_MAIL_GIVEN; + committer_ident_explicitly_given |= IDENT_MAIL_GIVEN; + author_ident_explicitly_given |= IDENT_MAIL_GIVEN; } else copy_email(xgetpwuid_self(), &git_default_email); strbuf_trim(&git_default_email); @@ -327,6 +333,10 @@ const char *fmt_name(const char *name, const char *email) const char *git_author_info(int flag) { + if (getenv("GIT_AUTHOR_NAME")) + author_ident_explicitly_given |= IDENT_NAME_GIVEN; + if (getenv("GIT_AUTHOR_EMAIL")) + author_ident_explicitly_given |= IDENT_MAIL_GIVEN; return fmt_ident(getenv("GIT_AUTHOR_NAME"), getenv("GIT_AUTHOR_EMAIL"), getenv("GIT_AUTHOR_DATE"), @@ -336,16 +346,16 @@ const char *git_author_info(int flag) const char *git_committer_info(int flag) { if (getenv("GIT_COMMITTER_NAME")) - user_ident_explicitly_given |= IDENT_NAME_GIVEN; + committer_ident_explicitly_given |= IDENT_NAME_GIVEN; if (getenv("GIT_COMMITTER_EMAIL")) - user_ident_explicitly_given |= IDENT_MAIL_GIVEN; + committer_ident_explicitly_given |= IDENT_MAIL_GIVEN; return fmt_ident(getenv("GIT_COMMITTER_NAME"), getenv("GIT_COMMITTER_EMAIL"), getenv("GIT_COMMITTER_DATE"), flag); } -int user_ident_sufficiently_given(void) +static int ident_is_sufficient(int user_ident_explicitly_given) { #ifndef WINDOWS return (user_ident_explicitly_given & IDENT_MAIL_GIVEN); @@ -354,6 +364,16 @@ int user_ident_sufficiently_given(void) #endif } +int committer_ident_sufficiently_given(void) +{ + return ident_is_sufficient(committer_ident_explicitly_given); +} + +int author_ident_sufficiently_given(void) +{ + return ident_is_sufficient(author_ident_explicitly_given); +} + int git_ident_config(const char *var, const char *value, void *data) { if (!strcmp(var, "user.name")) { @@ -361,7 +381,8 @@ int git_ident_config(const char *var, const char *value, void *data) return config_error_nonbool(var); strbuf_reset(&git_default_name); strbuf_addstr(&git_default_name, value); - user_ident_explicitly_given |= IDENT_NAME_GIVEN; + committer_ident_explicitly_given |= IDENT_NAME_GIVEN; + author_ident_explicitly_given |= IDENT_NAME_GIVEN; return 0; } @@ -370,7 +391,8 @@ int git_ident_config(const char *var, const char *value, void *data) return config_error_nonbool(var); strbuf_reset(&git_default_email); strbuf_addstr(&git_default_email, value); - user_ident_explicitly_given |= IDENT_MAIL_GIVEN; + committer_ident_explicitly_given |= IDENT_MAIL_GIVEN; + author_ident_explicitly_given |= IDENT_MAIL_GIVEN; return 0; } @@ -1,21 +1,21 @@ # German translations for Git. -# Copyright (C) 2010-2012 Ralf Thielow <ralf.thielow@googlemail.com> +# Copyright (C) 2010-2012 Ralf Thielow <ralf.thielow@gmail.com> # This file is distributed under the same license as the Git package. -# Ralf Thielow <ralf.thielow@googlemail.com>, 2010, 2011, 2012. +# Ralf Thielow <ralf.thielow@gmail.com>, 2010, 2011, 2012. # msgid "" msgstr "" -"Project-Id-Version: git 1.7.12\n" +"Project-Id-Version: git 1.8.1\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2012-09-05 06:20+0800\n" -"PO-Revision-Date: 2012-03-28 18:46+0200\n" -"Last-Translator: Ralf Thielow <ralf.thielow@googlemail.com>\n" -"Language-Team: German\n" +"POT-Creation-Date: 2012-11-30 12:40+0800\n" +"PO-Revision-Date: 2012-10-02 19:35+0200\n" +"Last-Translator: Ralf Thielow <ralf.thielow@gmail.com>\n" +"Language-Team: German <>\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" #: advice.c:40 #, c-format @@ -38,6 +38,101 @@ msgstr "" "um die Auflösung entsprechend zu markieren und einzutragen,\n" "oder benutze 'git commit -a'." +#: archive.c:10 +msgid "git archive [options] <tree-ish> [<path>...]" +msgstr "git archive [Optionen] <Versionsreferenz> [<Pfad>...]" + +#: archive.c:11 +msgid "git archive --list" +msgstr "git archive --list" + +#: archive.c:12 +msgid "" +"git archive --remote <repo> [--exec <cmd>] [options] <tree-ish> [<path>...]" +msgstr "" +"git archive --remote <Projektarchiv> [--exec <Programm>] [Optionen] " +"<Versionsreferenz> [Pfad...]" + +#: archive.c:13 +msgid "git archive --remote <repo> [--exec <cmd>] --list" +msgstr "git archive --remote <Projektarchiv> [--exec <Programm>] --list" + +#: archive.c:322 +msgid "fmt" +msgstr "Format" + +#: archive.c:322 +msgid "archive format" +msgstr "Ausgabeformat" + +#: archive.c:323 builtin/log.c:1084 +msgid "prefix" +msgstr "Prefix" + +#: archive.c:324 +msgid "prepend prefix to each pathname in the archive" +msgstr "stellt einen Präfix vor jeden Pfadnamen in der Ausgabe" + +#: archive.c:325 builtin/archive.c:91 builtin/blame.c:2390 +#: builtin/blame.c:2391 builtin/config.c:55 builtin/fast-export.c:642 +#: builtin/fast-export.c:644 builtin/grep.c:715 builtin/hash-object.c:77 +#: builtin/ls-files.c:494 builtin/ls-files.c:497 builtin/notes.c:540 +#: builtin/notes.c:697 builtin/read-tree.c:107 parse-options.h:149 +msgid "file" +msgstr "Datei" + +#: archive.c:326 builtin/archive.c:92 +msgid "write the archive to this file" +msgstr "schreibt die Ausgabe in diese Datei" + +#: archive.c:328 +msgid "read .gitattributes in working directory" +msgstr "liest .gitattributes aus dem Arbeitsverzeichnis" + +#: archive.c:329 +msgid "report archived files on stderr" +msgstr "gibt archivierte Dateien in der Standard-Fehlerausgabe aus" + +#: archive.c:330 +msgid "store only" +msgstr "nur speichern" + +#: archive.c:331 +msgid "compress faster" +msgstr "schneller komprimieren" + +#: archive.c:339 +msgid "compress better" +msgstr "besser komprimieren" + +#: archive.c:342 +msgid "list supported archive formats" +msgstr "listet unterstützte Ausgabeformate auf" + +#: archive.c:344 builtin/archive.c:93 builtin/clone.c:85 +msgid "repo" +msgstr "Projektarchiv" + +#: archive.c:345 builtin/archive.c:94 +msgid "retrieve the archive from remote repository <repo>" +msgstr "ruft das Archiv von externem Projektarchiv <Projektarchiv> ab" + +#: archive.c:346 builtin/archive.c:95 builtin/notes.c:619 +msgid "command" +msgstr "Programm" + +#: archive.c:347 builtin/archive.c:96 +msgid "path to the remote git-upload-archive command" +msgstr "Pfad zum externen \"git-upload-archive\"-Programm" + +#: attr.c:259 +msgid "" +"Negative patterns are forbidden in git attributes\n" +"Use '\\!' for literal leading exclamation." +msgstr "" +"Verneinende Muster sind in Git-Attributen verboten.\n" +"Benutze '\\!' für führende Ausrufezeichen." + #: bundle.c:36 #, c-format msgid "'%s' does not look like a v2 bundle file" @@ -48,7 +143,7 @@ msgstr "'%s' sieht nicht wie eine v2 Paketdatei aus" msgid "unrecognized header: %s%s (%d)" msgstr "nicht erkannter Kopfbereich: %s%s (%d)" -#: bundle.c:89 builtin/commit.c:699 +#: bundle.c:89 builtin/commit.c:674 #, c-format msgid "could not open '%s'" msgstr "Konnte '%s' nicht öffnen" @@ -57,8 +152,8 @@ msgstr "Konnte '%s' nicht öffnen" msgid "Repository lacks these prerequisite commits:" msgstr "Dem Projektarchiv fehlen folgende vorausgesetzte Versionen:" -#: bundle.c:164 sequencer.c:550 sequencer.c:982 builtin/log.c:290 -#: builtin/log.c:727 builtin/log.c:1313 builtin/log.c:1529 builtin/merge.c:347 +#: bundle.c:164 sequencer.c:562 sequencer.c:994 builtin/log.c:290 +#: builtin/log.c:732 builtin/log.c:1319 builtin/log.c:1535 builtin/merge.c:347 #: builtin/shortlog.c:181 msgid "revision walk setup failed" msgstr "Einrichtung des Revisionsgangs fehlgeschlagen" @@ -85,7 +180,7 @@ msgstr[1] "Das Paket benötigt diese %d Referenzen" msgid "rev-list died" msgstr "\"rev-list\" abgebrochen" -#: bundle.c:300 builtin/log.c:1209 builtin/shortlog.c:284 +#: bundle.c:300 builtin/log.c:1215 builtin/shortlog.c:284 #, c-format msgid "unrecognized argument: %s" msgstr "nicht erkanntes Argument: %s" @@ -116,12 +211,12 @@ msgstr "kann '%s' nicht erstellen" msgid "index-pack died" msgstr "Erstellung der Paketindexdatei abgebrochen" -#: commit.c:48 +#: commit.c:50 #, c-format msgid "could not parse %s" msgstr "konnte %s nicht parsen" -#: commit.c:50 +#: commit.c:52 #, c-format msgid "%s %s is not a commit!" msgstr "%s %s ist keine Version!" @@ -211,18 +306,24 @@ msgid_plural "%lu years ago" msgstr[0] "vor %lu Jahr" msgstr[1] "vor %lu Jahren" -#: diff.c:105 +#: diff.c:111 #, c-format -msgid " Failed to parse dirstat cut-off percentage '%.*s'\n" +msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" -" Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%.*s'\n" +" Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%s'\n" -#: diff.c:110 +#: diff.c:116 #, c-format -msgid " Unknown dirstat parameter '%.*s'\n" -msgstr " Unbekannter \"dirstat\" Parameter '%.*s'\n" +msgid " Unknown dirstat parameter '%s'\n" +msgstr " Unbekannter \"dirstat\" Parameter '%s'\n" -#: diff.c:210 +#: diff.c:194 +#, c-format +msgid "Unknown value for 'diff.submodule' config variable: '%s'" +msgstr "" +"Unbekannter Wert in Konfigurationsvariable 'diff.dirstat': '%s'" + +#: diff.c:237 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -231,32 +332,7 @@ msgstr "" "Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n" "%s" -#: diff.c:1401 -msgid " 0 files changed" -msgstr " 0 Dateien geändert" - -#: diff.c:1405 -#, c-format -msgid " %d file changed" -msgid_plural " %d files changed" -msgstr[0] " %d Datei geändert" -msgstr[1] " %d Dateien geändert" - -#: diff.c:1422 -#, c-format -msgid ", %d insertion(+)" -msgid_plural ", %d insertions(+)" -msgstr[0] ", %d Zeile hinzugefügt(+)" -msgstr[1] ", %d Zeilen hinzugefügt(+)" - -#: diff.c:1433 -#, c-format -msgid ", %d deletion(-)" -msgid_plural ", %d deletions(-)" -msgstr[0] ", %d Zeile entfernt(-)" -msgstr[1] ", %d Zeilen entfernt(-)" - -#: diff.c:3460 +#: diff.c:3494 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -265,6 +341,12 @@ msgstr "" "Fehler beim Parsen des --dirstat/-X Optionsparameters:\n" "%s" +#: diff.c:3508 +#, c-format +msgid "Failed to parse --submodule option parameter: '%s'" +msgstr "" +"Fehler beim Parsen des --submodule Optionsparameters: '%s'" + #: gpg-interface.c:59 msgid "could not run gpg." msgstr "konnte gpg nicht ausführen" @@ -277,17 +359,17 @@ msgstr "gpg hat die Daten nicht akzeptiert" msgid "gpg failed to sign the data" msgstr "gpg beim Signieren der Daten fehlgeschlagen" -#: grep.c:1320 +#: grep.c:1622 #, c-format msgid "'%s': unable to read %s" msgstr "'%s': konnte nicht lesen %s" -#: grep.c:1337 +#: grep.c:1639 #, c-format msgid "'%s': %s" msgstr "'%s': %s" -#: grep.c:1348 +#: grep.c:1650 #, c-format msgid "'%s': short read %s" msgstr "'%s': read() zu kurz %s" @@ -347,6 +429,15 @@ msgstr[1] "" "\n" "Hast du eines von diesen gemeint?" +#: merge.c:56 +msgid "failed to read the cache" +msgstr "Lesen des Zwischenspeichers fehlgeschlagen" + +#: merge.c:110 builtin/checkout.c:333 builtin/checkout.c:534 +#: builtin/clone.c:586 +msgid "unable to write new index file" +msgstr "Konnte neue Bereitstellungsdatei nicht schreiben." + #: merge-recursive.c:190 #, c-format msgid "(bad commit)\n" @@ -407,20 +498,20 @@ msgstr "Fehler beim Erstellen einer symbolischen Verknüpfung für '%s'" msgid "do not know what to do with %06o %s '%s'" msgstr "weiß nicht was mit %06o %s '%s' zu machen ist" -#: merge-recursive.c:921 +#: merge-recursive.c:922 msgid "Failed to execute internal merge" msgstr "Fehler bei Ausführung der internen Zusammenführung" -#: merge-recursive.c:925 +#: merge-recursive.c:926 #, c-format msgid "Unable to add %s to database" msgstr "Konnte %s nicht zur Datenbank hinzufügen" -#: merge-recursive.c:941 +#: merge-recursive.c:942 msgid "unsupported object type in the tree" msgstr "nicht unterstützter Objekttyp im Baum" -#: merge-recursive.c:1020 merge-recursive.c:1034 +#: merge-recursive.c:1021 merge-recursive.c:1035 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -429,7 +520,7 @@ msgstr "" "KONFLIKT (%s/löschen): %s gelöscht in %s und %s in %s. Stand %s von %s wurde " "im Arbeitsbereich gelassen." -#: merge-recursive.c:1026 merge-recursive.c:1039 +#: merge-recursive.c:1027 merge-recursive.c:1040 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -438,20 +529,20 @@ msgstr "" "KONFLIKT (%s/löschen): %s gelöscht in %s und %s in %s. Stand %s von %s wurde " "im Arbeitsbereich bei %s gelassen." -#: merge-recursive.c:1080 +#: merge-recursive.c:1081 msgid "rename" msgstr "umbenennen" -#: merge-recursive.c:1080 +#: merge-recursive.c:1081 msgid "renamed" msgstr "umbenannt" -#: merge-recursive.c:1136 +#: merge-recursive.c:1137 #, c-format msgid "%s is a directory in %s adding as %s instead" msgstr "%s ist ein Verzeichnis in %s, füge es stattdessen als %s hinzu" -#: merge-recursive.c:1158 +#: merge-recursive.c:1159 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" @@ -460,148 +551,148 @@ msgstr "" "KONFLIKT (umbenennen/umbenennen): Benenne um \"%s\"->\"%s\" in Zweig \"%s\" " "und \"%s\"->\"%s\" in Zweig \"%s\"%s" -#: merge-recursive.c:1163 +#: merge-recursive.c:1164 msgid " (left unresolved)" msgstr " (bleibt unaufgelöst)" -#: merge-recursive.c:1217 +#: merge-recursive.c:1218 #, c-format msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s" msgstr "" "KONFLIKT (umbenennen/umbenennen): Benenne um %s->%s in %s. Benenne um %s->%s " "in %s" -#: merge-recursive.c:1247 +#: merge-recursive.c:1248 #, c-format msgid "Renaming %s to %s and %s to %s instead" msgstr "Benenne stattdessen %s nach %s und %s nach %s um" -#: merge-recursive.c:1446 +#: merge-recursive.c:1447 #, c-format msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s" msgstr "" "KONFLIKT (umbenennen/hinzufügen): Benenne um %s->%s in %s. %s hinzugefügt in " "%s" -#: merge-recursive.c:1456 +#: merge-recursive.c:1457 #, c-format msgid "Adding merged %s" msgstr "Füge zusammengeführte Datei %s hinzu" -#: merge-recursive.c:1461 merge-recursive.c:1659 +#: merge-recursive.c:1462 merge-recursive.c:1660 #, c-format msgid "Adding as %s instead" msgstr "Füge stattdessen als %s hinzu" -#: merge-recursive.c:1512 +#: merge-recursive.c:1513 #, c-format msgid "cannot read object %s" msgstr "kann Objekt %s nicht lesen" -#: merge-recursive.c:1515 +#: merge-recursive.c:1516 #, c-format msgid "object %s is not a blob" msgstr "Objekt %s ist kein Blob" -#: merge-recursive.c:1563 +#: merge-recursive.c:1564 msgid "modify" msgstr "ändern" -#: merge-recursive.c:1563 +#: merge-recursive.c:1564 msgid "modified" msgstr "geändert" -#: merge-recursive.c:1573 +#: merge-recursive.c:1574 msgid "content" msgstr "Inhalt" -#: merge-recursive.c:1580 +#: merge-recursive.c:1581 msgid "add/add" msgstr "hinzufügen/hinzufügen" -#: merge-recursive.c:1614 +#: merge-recursive.c:1615 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "%s ausgelassen (Ergebnis der Zusammenführung existiert bereits)" -#: merge-recursive.c:1628 +#: merge-recursive.c:1629 #, c-format msgid "Auto-merging %s" msgstr "automatische Zusammenführung von %s" -#: merge-recursive.c:1632 git-submodule.sh:869 +#: merge-recursive.c:1633 git-submodule.sh:893 msgid "submodule" msgstr "Unterprojekt" -#: merge-recursive.c:1633 +#: merge-recursive.c:1634 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "KONFLIKT (%s): Zusammenführungskonflikt in %s" -#: merge-recursive.c:1723 +#: merge-recursive.c:1724 #, c-format msgid "Removing %s" msgstr "Entferne %s" -#: merge-recursive.c:1748 +#: merge-recursive.c:1749 msgid "file/directory" msgstr "Datei/Verzeichnis" -#: merge-recursive.c:1754 +#: merge-recursive.c:1755 msgid "directory/file" msgstr "Verzeichnis/Datei" -#: merge-recursive.c:1759 +#: merge-recursive.c:1760 #, c-format msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s" msgstr "" "KONFLIKT (%s): Es existiert bereits ein Verzeichnis %s in %s. Füge %s als %s " "hinzu." -#: merge-recursive.c:1769 +#: merge-recursive.c:1770 #, c-format msgid "Adding %s" msgstr "Füge %s hinzu" -#: merge-recursive.c:1786 +#: merge-recursive.c:1787 msgid "Fatal merge failure, shouldn't happen." msgstr "Fataler Fehler bei der Zusammenführung. Sollte nicht passieren." -#: merge-recursive.c:1805 +#: merge-recursive.c:1806 msgid "Already up-to-date!" msgstr "Bereits aktuell!" -#: merge-recursive.c:1814 +#: merge-recursive.c:1815 #, c-format msgid "merging of trees %s and %s failed" msgstr "Zusammenführen der Bäume %s und %s fehlgeschlagen" -#: merge-recursive.c:1844 +#: merge-recursive.c:1845 #, c-format msgid "Unprocessed path??? %s" msgstr "unverarbeiteter Pfad??? %s" -#: merge-recursive.c:1889 +#: merge-recursive.c:1890 msgid "Merging:" msgstr "Zusammenführung:" -#: merge-recursive.c:1902 +#: merge-recursive.c:1903 #, c-format msgid "found %u common ancestor:" msgid_plural "found %u common ancestors:" msgstr[0] "%u gemeinsamen Vorfahren gefunden" msgstr[1] "%u gemeinsame Vorfahren gefunden" -#: merge-recursive.c:1939 +#: merge-recursive.c:1940 msgid "merge returned no commit" msgstr "Zusammenführung hat keine Version zurückgegeben" -#: merge-recursive.c:1996 +#: merge-recursive.c:1997 #, c-format msgid "Could not parse object '%s'" msgstr "Konnte Objekt '%s' nicht parsen." -#: merge-recursive.c:2008 builtin/merge.c:696 +#: merge-recursive.c:2009 builtin/merge.c:643 msgid "Unable to write index." msgstr "Konnte Bereitstellung nicht schreiben." @@ -633,7 +724,11 @@ msgid_plural "Your branch is ahead of '%s' by %d commits.\n" msgstr[0] "Dein Zweig ist vor '%s' um %d Version.\n" msgstr[1] "Dein Zweig ist vor '%s' um %d Versionen.\n" -#: remote.c:1638 +#: remote.c:1637 +msgid " (use \"git push\" to publish your local commits)\n" +msgstr " (benutze \"git push\" um deine lokalen Versionen herauszubringen)\n" + +#: remote.c:1640 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -644,7 +739,12 @@ msgstr[1] "" "Dein Zweig ist zu '%s' um %d Versionen hinterher, und kann vorgespult " "werden.\n" -#: remote.c:1646 +#: remote.c:1647 +msgid " (use \"git pull\" to update your local branch)\n" +msgstr "" +" (benutze \"git pull\" um deinen lokalen Zweig zu aktualisieren)\n" + +#: remote.c:1650 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -659,19 +759,24 @@ msgstr[1] "" "Dein Zweig und '%s' sind divergiert,\n" "und haben jeweils %d und %d unterschiedliche Versionen.\n" -#: sequencer.c:121 builtin/merge.c:864 builtin/merge.c:977 -#: builtin/merge.c:1087 builtin/merge.c:1097 +#: remote.c:1659 +msgid " (use \"git pull\" to merge the remote branch into yours)\n" +msgstr "" +" (benutze \"git pull\" um deinen Zweig mit dem externen zusammenzuführen)\n" + +#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:874 builtin/merge.c:984 +#: builtin/merge.c:994 #, c-format msgid "Could not open '%s' for writing" msgstr "Konnte '%s' nicht zum Schreiben öffnen." -#: sequencer.c:123 builtin/merge.c:333 builtin/merge.c:867 -#: builtin/merge.c:1089 builtin/merge.c:1102 +#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:764 builtin/merge.c:986 +#: builtin/merge.c:999 #, c-format msgid "Could not write to '%s'" msgstr "Konnte nicht nach '%s' schreiben." -#: sequencer.c:144 +#: sequencer.c:146 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'" @@ -679,7 +784,7 @@ msgstr "" "nach Auflösung der Konflikte, markiere die korrigierten Pfade\n" "mit 'git add <Pfade>' oder 'git rm <Pfade>'" -#: sequencer.c:147 +#: sequencer.c:149 msgid "" "after resolving the conflicts, mark the corrected paths\n" "with 'git add <paths>' or 'git rm <paths>'\n" @@ -689,74 +794,74 @@ msgstr "" "mit 'git add <Pfade>' oder 'git rm <Pfade>'und trage das Ergebnis ein mit " "'git commit'" -#: sequencer.c:160 sequencer.c:758 sequencer.c:841 +#: sequencer.c:162 sequencer.c:770 sequencer.c:853 #, c-format msgid "Could not write to %s" msgstr "Konnte nicht nach %s schreiben" -#: sequencer.c:163 +#: sequencer.c:165 #, c-format msgid "Error wrapping up %s" msgstr "Fehler bei Nachbereitung von %s" -#: sequencer.c:178 +#: sequencer.c:180 msgid "Your local changes would be overwritten by cherry-pick." msgstr "" "Deine lokalen Änderungen würden von \"cherry-pick\" überschrieben werden." -#: sequencer.c:180 +#: sequencer.c:182 msgid "Your local changes would be overwritten by revert." msgstr "Deine lokalen Änderungen würden von \"revert\" überschrieben werden." -#: sequencer.c:183 +#: sequencer.c:185 msgid "Commit your changes or stash them to proceed." msgstr "Trage deine Änderungen ein oder benutze \"stash\" um fortzufahren." #. TRANSLATORS: %s will be "revert" or "cherry-pick" -#: sequencer.c:233 +#: sequencer.c:235 #, c-format msgid "%s: Unable to write new index file" msgstr "%s: Konnte neue Bereitstellungsdatei nicht schreiben" -#: sequencer.c:261 +#: sequencer.c:266 msgid "Could not resolve HEAD commit\n" msgstr "Konnte Version der Zweigspitze (HEAD) nicht auflösen\n" -#: sequencer.c:282 +#: sequencer.c:287 msgid "Unable to update cache tree\n" msgstr "Konnte zwischengespeicherten Baum nicht aktualisieren\n" -#: sequencer.c:324 +#: sequencer.c:332 #, c-format msgid "Could not parse commit %s\n" msgstr "Konnte Version %s nicht parsen\n" -#: sequencer.c:329 +#: sequencer.c:337 #, c-format msgid "Could not parse parent commit %s\n" msgstr "Konnte Elternversion %s nicht parsen\n" -#: sequencer.c:395 +#: sequencer.c:403 msgid "Your index file is unmerged." msgstr "Deine Bereitstellungsdatei ist nicht zusammengeführt." -#: sequencer.c:398 +#: sequencer.c:406 msgid "You do not have a valid HEAD" msgstr "Du hast keine gültige Zweigspitze (HEAD)" -#: sequencer.c:413 +#: sequencer.c:421 #, c-format msgid "Commit %s is a merge but no -m option was given." msgstr "" "Version %s ist eine Zusammenführung, aber die Option -m wurde nicht " "angegeben." -#: sequencer.c:421 +#: sequencer.c:429 #, c-format msgid "Commit %s does not have parent %d" msgstr "Version %s hat keinen Elternteil %d" -#: sequencer.c:425 +#: sequencer.c:433 #, c-format msgid "Mainline was specified but commit %s is not a merge." msgstr "" @@ -764,145 +869,145 @@ msgstr "" #. TRANSLATORS: The first %s will be "revert" or #. "cherry-pick", the second %s a SHA1 -#: sequencer.c:436 +#: sequencer.c:444 #, c-format msgid "%s: cannot parse parent commit %s" msgstr "%s: kann Elternversion %s nicht parsen" -#: sequencer.c:440 +#: sequencer.c:448 #, c-format msgid "Cannot get commit message for %s" msgstr "Kann keine Versionsbeschreibung für %s bekommen" -#: sequencer.c:524 +#: sequencer.c:532 #, c-format msgid "could not revert %s... %s" msgstr "Konnte %s nicht zurücksetzen... %s" -#: sequencer.c:525 +#: sequencer.c:533 #, c-format msgid "could not apply %s... %s" msgstr "Konnte %s nicht anwenden... %s" -#: sequencer.c:553 +#: sequencer.c:565 msgid "empty commit set passed" msgstr "leere Menge von Versionen übergeben" -#: sequencer.c:561 +#: sequencer.c:573 #, c-format msgid "git %s: failed to read the index" msgstr "git %s: Fehler beim Lesen der Bereitstellung" -#: sequencer.c:566 +#: sequencer.c:578 #, c-format msgid "git %s: failed to refresh the index" msgstr "git %s: Fehler beim Aktualisieren der Bereitstellung" -#: sequencer.c:624 +#: sequencer.c:636 #, c-format msgid "Cannot %s during a %s" msgstr "Kann %s nicht während eines %s durchführen" -#: sequencer.c:646 +#: sequencer.c:658 #, c-format msgid "Could not parse line %d." msgstr "Konnte Zeile %d nicht parsen." -#: sequencer.c:651 +#: sequencer.c:663 msgid "No commits parsed." msgstr "Keine Versionen geparst." -#: sequencer.c:664 +#: sequencer.c:676 #, c-format msgid "Could not open %s" msgstr "Konnte %s nicht öffnen" -#: sequencer.c:668 +#: sequencer.c:680 #, c-format msgid "Could not read %s." msgstr "Konnte %s nicht lesen." -#: sequencer.c:675 +#: sequencer.c:687 #, c-format msgid "Unusable instruction sheet: %s" msgstr "Unbenutzbares Instruktionsblatt: %s" -#: sequencer.c:703 +#: sequencer.c:715 #, c-format msgid "Invalid key: %s" msgstr "Ungültiger Schlüssel: %s" -#: sequencer.c:706 +#: sequencer.c:718 #, c-format msgid "Invalid value for %s: %s" msgstr "Ungültiger Wert für %s: %s" -#: sequencer.c:718 +#: sequencer.c:730 #, c-format msgid "Malformed options sheet: %s" msgstr "Fehlerhaftes Optionsblatt: %s" -#: sequencer.c:739 +#: sequencer.c:751 msgid "a cherry-pick or revert is already in progress" msgstr "\"cherry-pick\" oder \"revert\" ist bereits im Gang" -#: sequencer.c:740 +#: sequencer.c:752 msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" msgstr "versuche \"git cherry-pick (--continue | --quit | --abort)\"" -#: sequencer.c:744 +#: sequencer.c:756 #, c-format msgid "Could not create sequencer directory %s" msgstr "Konnte \"sequencer\"-Verzeichnis %s nicht erstellen" -#: sequencer.c:760 sequencer.c:845 +#: sequencer.c:772 sequencer.c:857 #, c-format msgid "Error wrapping up %s." msgstr "Fehler beim Einpacken von %s." -#: sequencer.c:779 sequencer.c:913 +#: sequencer.c:791 sequencer.c:925 msgid "no cherry-pick or revert in progress" msgstr "kein \"cherry-pick\" oder \"revert\" im Gang" -#: sequencer.c:781 +#: sequencer.c:793 msgid "cannot resolve HEAD" msgstr "kann Zweigspitze (HEAD) nicht auflösen" -#: sequencer.c:783 +#: sequencer.c:795 msgid "cannot abort from a branch yet to be born" msgstr "kann nicht abbrechen: bin auf einem Zweig, der noch geboren wird" -#: sequencer.c:805 builtin/apply.c:3987 +#: sequencer.c:817 builtin/apply.c:4005 #, c-format msgid "cannot open %s: %s" msgstr "Kann %s nicht öffnen: %s" -#: sequencer.c:808 +#: sequencer.c:820 #, c-format msgid "cannot read %s: %s" msgstr "Kann %s nicht lesen: %s" -#: sequencer.c:809 +#: sequencer.c:821 msgid "unexpected end of file" msgstr "Unerwartetes Dateiende" -#: sequencer.c:815 +#: sequencer.c:827 #, c-format msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" msgstr "" "gespeicherte \"pre-cherry-pick\" Datei der Zweigspitze (HEAD) '%s' ist " "beschädigt" -#: sequencer.c:838 +#: sequencer.c:850 #, c-format msgid "Could not format %s." msgstr "Konnte %s nicht formatieren." -#: sequencer.c:1000 +#: sequencer.c:1012 msgid "Can't revert as initial commit" msgstr "Kann nicht zu initialer Version zurücksetzen." -#: sequencer.c:1001 +#: sequencer.c:1013 msgid "Can't cherry-pick into empty head" msgstr "Kann \"cherry-pick\" nicht in einem leerem Kopf ausführen." @@ -926,12 +1031,17 @@ msgid "Upstream branch '%s' not stored as a remote-tracking branch" msgstr "" "Zweig '%s' des entfernten Projektarchivs ist kein gefolgter Ãœbernahmezweig" -#: wrapper.c:413 +#: wrapper.c:408 +#, c-format +msgid "unable to access '%s': %s" +msgstr "konnte nicht auf '%s' zugreifen: %s" + +#: wrapper.c:426 #, c-format msgid "unable to look up current user in the passwd file: %s" msgstr "konnte aktuellen Benutzer nicht in Passwort-Datei finden: %s" -#: wrapper.c:414 +#: wrapper.c:427 msgid "no such user" msgstr "kein solcher Benutzer" @@ -995,11 +1105,6 @@ msgstr "" " (trage ein oder verwerfe den unbeobachteten oder geänderten Inhalt in den " "Unterprojekten)" -#: wt-status.c:224 -#, c-format -msgid "%s files:" -msgstr "%s Dateien:" - #: wt-status.c:227 #, c-format msgid " (use \"git %s <file>...\" to include in what will be committed)" @@ -1209,12 +1314,12 @@ msgid "Initial commit" msgstr "Initiale Version" #: wt-status.c:1011 -msgid "Untracked" -msgstr "Unbeobachtete" +msgid "Untracked files" +msgstr "Unbeobachtete Dateien" #: wt-status.c:1013 -msgid "Ignored" -msgstr "Ignorierte" +msgid "Ignored files" +msgstr "Ignorierte Dateien" #: wt-status.c:1015 #, c-format @@ -1229,59 +1334,73 @@ msgstr " (benutze die Option -u um unbeobachteten Dateien anzuzeigen)" msgid "No changes" msgstr "Keine Änderungen" -#: wt-status.c:1027 +#: wt-status.c:1028 #, c-format -msgid "no changes added to commit%s\n" -msgstr "keine Änderungen zum Eintragen hinzugefügt%s\n" - -#: wt-status.c:1029 -msgid " (use \"git add\" and/or \"git commit -a\")" -msgstr " (benutze \"git add\" und/oder \"git commit -a\")" +msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" +msgstr "" +"keine Änderungen zum Eintragen hinzugefügt (benutze \"git add\" und/oder " +"\"git commit -a\")\n" #: wt-status.c:1031 #, c-format -msgid "nothing added to commit but untracked files present%s\n" +msgid "no changes added to commit\n" +msgstr "keine Änderungen zum Eintragen hinzugefügt\n" + +#: wt-status.c:1034 +#, c-format +msgid "" +"nothing added to commit but untracked files present (use \"git add\" to " +"track)\n" msgstr "" -"nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien%s\n" +"nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien " +"(benutze \"git add\" zum Beobachten)\n" -#: wt-status.c:1033 -msgid " (use \"git add\" to track)" -msgstr " (benutze \"git add\" zum Beobachten)" +#: wt-status.c:1037 +#, c-format +msgid "nothing added to commit but untracked files present\n" +msgstr "nichts zum Eintragen hinzugefügt, aber es gibt unbeobachtete Dateien\n" -#: wt-status.c:1035 wt-status.c:1038 wt-status.c:1041 +#: wt-status.c:1040 #, c-format -msgid "nothing to commit%s\n" -msgstr "nichts zum Eintragen%s\n" +msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" +msgstr "" +"nichts einzutragen (Erstelle/Kopiere Dateien und benutze \"git add\" zum " +"Beobachten)\n" -#: wt-status.c:1036 -msgid " (create/copy files and use \"git add\" to track)" -msgstr " (Erstelle/Kopiere Dateien und benutze \"git add\" zum Beobachten)" +#: wt-status.c:1043 wt-status.c:1048 +#, c-format +msgid "nothing to commit\n" +msgstr "nichts einzutragen\n" -#: wt-status.c:1039 -msgid " (use -u to show untracked files)" -msgstr " (benutze die Option -u um unbeobachtete Dateien anzuzeigen)" +#: wt-status.c:1046 +#, c-format +msgid "nothing to commit (use -u to show untracked files)\n" +msgstr "" +"nichts einzutragen (benutze die Option -u, um unbeobachtete Dateien " +"anzuzeigen)\n" -#: wt-status.c:1042 -msgid " (working directory clean)" -msgstr " (Arbeitsverzeichnis sauber)" +#: wt-status.c:1050 +#, c-format +msgid "nothing to commit, working directory clean\n" +msgstr "nichts einzutragen, Arbeitsverzeichnis sauber\n" -#: wt-status.c:1150 +#: wt-status.c:1158 msgid "HEAD (no branch)" msgstr "HEAD (kein Zweig)" -#: wt-status.c:1156 +#: wt-status.c:1164 msgid "Initial commit on " msgstr "Initiale Version auf " -#: wt-status.c:1171 +#: wt-status.c:1179 msgid "behind " msgstr "hinterher " -#: wt-status.c:1174 wt-status.c:1177 +#: wt-status.c:1182 wt-status.c:1185 msgid "ahead " msgstr "voraus " -#: wt-status.c:1179 +#: wt-status.c:1187 msgid ", behind " msgstr ", hinterher " @@ -1290,19 +1409,23 @@ msgstr ", hinterher " msgid "failed to unlink '%s'" msgstr "Konnte '%s' nicht entfernen" +#: builtin/add.c:19 +msgid "git add [options] [--] <filepattern>..." +msgstr "git add [Optionen] [--] [<Dateimuster>...]" + #: builtin/add.c:62 #, c-format msgid "unexpected diff status %c" msgstr "unerwarteter Differenz-Status %c" -#: builtin/add.c:67 builtin/commit.c:229 +#: builtin/add.c:67 builtin/commit.c:231 msgid "updating files failed" msgstr "Aktualisierung der Dateien fehlgeschlagen" #: builtin/add.c:77 #, c-format msgid "remove '%s'\n" -msgstr "entferne '%s'\n" +msgstr "lösche '%s'\n" #: builtin/add.c:176 #, c-format @@ -1314,7 +1437,7 @@ msgid "Unstaged changes after refreshing the index:" msgstr "" "Nicht bereitgestellte Änderungen nach Aktualisierung der Bereitstellung:" -#: builtin/add.c:195 builtin/add.c:459 builtin/rm.c:186 +#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:275 #, c-format msgid "pathspec '%s' did not match any files" msgstr "Pfadspezifikation '%s' stimmt mit keinen Dateien überein" @@ -1351,50 +1474,105 @@ msgstr "Leerer Patch. Abgebrochen." msgid "Could not apply '%s'" msgstr "Konnte '%s' nicht anwenden." -#: builtin/add.c:312 +#: builtin/add.c:313 msgid "The following paths are ignored by one of your .gitignore files:\n" msgstr "" "Die folgenden Pfade werden durch eine deiner \".gitignore\" Dateien " "ignoriert:\n" -#: builtin/add.c:352 +#: builtin/add.c:319 builtin/clean.c:52 builtin/fetch.c:78 builtin/mv.c:63 +#: builtin/prune-packed.c:76 builtin/push.c:388 builtin/remote.c:1253 +#: builtin/rm.c:206 +msgid "dry run" +msgstr "Probelauf" + +#: builtin/add.c:320 builtin/apply.c:4354 builtin/commit.c:1160 +#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1483 +#: builtin/mv.c:62 builtin/read-tree.c:112 +msgid "be verbose" +msgstr "erweiterte Ausgaben" + +#: builtin/add.c:322 +msgid "interactive picking" +msgstr "interaktives Auswählen" + +#: builtin/add.c:323 builtin/checkout.c:1031 builtin/reset.c:248 +msgid "select hunks interactively" +msgstr "interaktiv Bereiche auswählen" + +#: builtin/add.c:324 +msgid "edit current diff and apply" +msgstr "aktuelle Unterschiede editieren und anwenden" + +#: builtin/add.c:325 +msgid "allow adding otherwise ignored files" +msgstr "erlaubt das Hinzufügen andernfalls ignorierter Dateien" + +#: builtin/add.c:326 +msgid "update tracked files" +msgstr "aktualisiert beobachtete Dateien" + +#: builtin/add.c:327 +msgid "record only the fact that the path will be added later" +msgstr "speichert nur, dass der Pfad später hinzugefügt werden soll" + +#: builtin/add.c:328 +msgid "add changes from all tracked and untracked files" +msgstr "" +"fügt Änderungen von allen beobachteten und unbeobachteten Dateien hinzu" + +#: builtin/add.c:329 +msgid "don't add, only refresh the index" +msgstr "fügt nichts hinzu, aktualisiert nur die Bereitstellung" + +#: builtin/add.c:330 +msgid "just skip files which cannot be added because of errors" +msgstr "" +"überspringt Dateien, die aufgrund von Fehlern nicht hinzugefügt werden " +"konnten" + +#: builtin/add.c:331 +msgid "check if - even missing - files are ignored in dry run" +msgstr "prüft ob - auch fehlende - Dateien im Probelauf ignoriert werden" + +#: builtin/add.c:353 #, c-format msgid "Use -f if you really want to add them.\n" msgstr "Verwende -f wenn du diese wirklich hinzufügen möchtest.\n" -#: builtin/add.c:353 +#: builtin/add.c:354 msgid "no files added" msgstr "keine Dateien hinzugefügt" -#: builtin/add.c:359 +#: builtin/add.c:360 msgid "adding files failed" msgstr "Hinzufügen von Dateien fehlgeschlagen" -#: builtin/add.c:391 +#: builtin/add.c:392 msgid "-A and -u are mutually incompatible" msgstr "-A und -u sind zueinander inkompatibel" -#: builtin/add.c:393 +#: builtin/add.c:394 msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "" "Die Option --ignore-missing kann nur zusammen mit --dry-run benutzt werden." -#: builtin/add.c:413 +#: builtin/add.c:414 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "Nichts spezifiziert, nichts hinzugefügt.\n" -#: builtin/add.c:414 +#: builtin/add.c:415 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" msgstr "Wolltest du vielleicht 'git add .' sagen?\n" -#: builtin/add.c:420 builtin/clean.c:95 builtin/commit.c:289 builtin/mv.c:82 -#: builtin/rm.c:162 +#: builtin/add.c:421 builtin/clean.c:95 builtin/commit.c:291 builtin/mv.c:82 +#: builtin/rm.c:235 msgid "index file corrupt" msgstr "Bereitstellungsdatei beschädigt" -#: builtin/add.c:480 builtin/apply.c:4432 builtin/mv.c:229 builtin/rm.c:260 +#: builtin/add.c:481 builtin/apply.c:4450 builtin/mv.c:229 builtin/rm.c:370 msgid "Unable to write new index file" msgstr "Konnte neue Bereitstellungsdatei nicht schreiben." @@ -1451,17 +1629,17 @@ msgstr "" msgid "git apply: bad git-diff - expected /dev/null on line %d" msgstr "git apply: ungültiges 'git-diff' - erwartete /dev/null in Zeile %d" -#: builtin/apply.c:1402 +#: builtin/apply.c:1420 #, c-format msgid "recount: unexpected line: %.*s" msgstr "recount: unerwartete Zeile: %.*s" -#: builtin/apply.c:1459 +#: builtin/apply.c:1477 #, c-format msgid "patch fragment without header at line %d: %.*s" msgstr "Patch-Fragment ohne Kopfbereich bei Zeile %d: %.*s" -#: builtin/apply.c:1476 +#: builtin/apply.c:1494 #, c-format msgid "" "git diff header lacks filename information when removing %d leading pathname " @@ -1476,70 +1654,70 @@ msgstr[1] "" "Dem Kopfbereich von \"git diff\" fehlen Informationen zum Dateinamen, wenn " "%d vorangestellte Teile des Pfades entfernt werden (Zeile %d)" -#: builtin/apply.c:1636 +#: builtin/apply.c:1654 msgid "new file depends on old contents" msgstr "neue Datei hängt von alten Inhalten ab" -#: builtin/apply.c:1638 +#: builtin/apply.c:1656 msgid "deleted file still has contents" msgstr "entfernte Datei hat noch Inhalte" -#: builtin/apply.c:1664 +#: builtin/apply.c:1682 #, c-format msgid "corrupt patch at line %d" msgstr "fehlerhafter Patch bei Zeile %d" -#: builtin/apply.c:1700 +#: builtin/apply.c:1718 #, c-format msgid "new file %s depends on old contents" msgstr "neue Datei %s hängt von alten Inhalten ab" -#: builtin/apply.c:1702 +#: builtin/apply.c:1720 #, c-format msgid "deleted file %s still has contents" msgstr "entfernte Datei %s hat noch Inhalte" -#: builtin/apply.c:1705 +#: builtin/apply.c:1723 #, c-format msgid "** warning: file %s becomes empty but is not deleted" msgstr "** Warnung: Datei %s wird leer, aber nicht entfernt." -#: builtin/apply.c:1851 +#: builtin/apply.c:1869 #, c-format msgid "corrupt binary patch at line %d: %.*s" msgstr "fehlerhafter Binär-Patch bei Zeile %d: %.*s" #. there has to be one hunk (forward hunk) -#: builtin/apply.c:1880 +#: builtin/apply.c:1898 #, c-format msgid "unrecognized binary patch at line %d" msgstr "nicht erkannter Binär-Patch bei Zeile %d" -#: builtin/apply.c:1966 +#: builtin/apply.c:1984 #, c-format msgid "patch with only garbage at line %d" msgstr "Patch mit nutzlosen Informationen bei Zeile %d" -#: builtin/apply.c:2056 +#: builtin/apply.c:2074 #, c-format msgid "unable to read symlink %s" msgstr "konnte symbolische Verknüpfung %s nicht lesen" -#: builtin/apply.c:2060 +#: builtin/apply.c:2078 #, c-format msgid "unable to open or read %s" msgstr "konnte %s nicht öffnen oder lesen" -#: builtin/apply.c:2131 +#: builtin/apply.c:2149 msgid "oops" msgstr "Ups" -#: builtin/apply.c:2653 +#: builtin/apply.c:2671 #, c-format msgid "invalid start of line: '%c'" msgstr "Ungültiger Zeilenanfang: '%c'" -#: builtin/apply.c:2771 +#: builtin/apply.c:2789 #, c-format msgid "Hunk #%d succeeded at %d (offset %d line)." msgid_plural "Hunk #%d succeeded at %d (offset %d lines)." @@ -1547,12 +1725,12 @@ msgstr[0] "Patch-Bereich #%d erfolgreich angewendet bei %d (%d Zeile versetzt)" msgstr[1] "" "Patch-Bereich #%d erfolgreich angewendet bei %d (%d Zeilen versetzt)" -#: builtin/apply.c:2783 +#: builtin/apply.c:2801 #, c-format msgid "Context reduced to (%ld/%ld) to apply fragment at %d" msgstr "Kontext reduziert zu (%ld/%ld) um Patch-Bereich bei %d anzuwenden" -#: builtin/apply.c:2789 +#: builtin/apply.c:2807 #, c-format msgid "" "while searching for:\n" @@ -1561,339 +1739,335 @@ msgstr "" "bei der Suche nach:\n" "%.*s" -#: builtin/apply.c:2808 +#: builtin/apply.c:2826 #, c-format msgid "missing binary patch data for '%s'" msgstr "keine Daten in Binär-Patch für '%s'" -#: builtin/apply.c:2911 +#: builtin/apply.c:2929 #, c-format msgid "binary patch does not apply to '%s'" msgstr "Konnte Binär-Patch nicht auf '%s' anwenden" -#: builtin/apply.c:2917 +#: builtin/apply.c:2935 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "" "Binär-Patch für '%s' erzeugt falsches Ergebnis (erwartete %s, bekam %s)" -#: builtin/apply.c:2938 +#: builtin/apply.c:2956 #, c-format msgid "patch failed: %s:%ld" msgstr "Anwendung des Patches fehlgeschlagen: %s:%ld" -#: builtin/apply.c:3060 +#: builtin/apply.c:3078 #, c-format msgid "cannot checkout %s" msgstr "kann %s nicht auschecken" -#: builtin/apply.c:3105 builtin/apply.c:3114 builtin/apply.c:3158 +#: builtin/apply.c:3123 builtin/apply.c:3132 builtin/apply.c:3176 #, c-format msgid "read of %s failed" msgstr "Konnte %s nicht lesen" -#: builtin/apply.c:3138 builtin/apply.c:3360 +#: builtin/apply.c:3156 builtin/apply.c:3378 #, c-format msgid "path %s has been renamed/deleted" msgstr "Pfad %s wurde umbenannt/gelöscht" -#: builtin/apply.c:3219 builtin/apply.c:3374 +#: builtin/apply.c:3237 builtin/apply.c:3392 #, c-format msgid "%s: does not exist in index" msgstr "%s ist nicht bereitgestellt" -#: builtin/apply.c:3223 builtin/apply.c:3366 builtin/apply.c:3388 +#: builtin/apply.c:3241 builtin/apply.c:3384 builtin/apply.c:3406 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: builtin/apply.c:3228 builtin/apply.c:3382 +#: builtin/apply.c:3246 builtin/apply.c:3400 #, c-format msgid "%s: does not match index" msgstr "%s entspricht nicht der Bereitstellung" -#: builtin/apply.c:3330 +#: builtin/apply.c:3348 msgid "removal patch leaves file contents" msgstr "Lösch-Patch hinterlässt Dateiinhalte" -#: builtin/apply.c:3399 +#: builtin/apply.c:3417 #, c-format msgid "%s: wrong type" msgstr "%s: falscher Typ" -#: builtin/apply.c:3401 +#: builtin/apply.c:3419 #, c-format msgid "%s has type %o, expected %o" msgstr "%s ist vom Typ %o, erwartete %o" -#: builtin/apply.c:3502 +#: builtin/apply.c:3520 #, c-format msgid "%s: already exists in index" msgstr "%s ist bereits bereitgestellt" -#: builtin/apply.c:3505 +#: builtin/apply.c:3523 #, c-format msgid "%s: already exists in working directory" msgstr "%s existiert bereits im Arbeitsverzeichnis" -#: builtin/apply.c:3525 +#: builtin/apply.c:3543 #, c-format msgid "new mode (%o) of %s does not match old mode (%o)" msgstr "neuer Modus (%o) von %s entspricht nicht dem alten Modus (%o)" -#: builtin/apply.c:3530 +#: builtin/apply.c:3548 #, c-format msgid "new mode (%o) of %s does not match old mode (%o) of %s" msgstr "neuer Modus (%o) von %s entspricht nicht dem alten Modus (%o) von %s" -#: builtin/apply.c:3538 +#: builtin/apply.c:3556 #, c-format msgid "%s: patch does not apply" msgstr "%s: Patch konnte nicht angewendet werden" -#: builtin/apply.c:3551 +#: builtin/apply.c:3569 #, c-format msgid "Checking patch %s..." msgstr "Prüfe Patch %s..." -#: builtin/apply.c:3606 builtin/checkout.c:213 builtin/reset.c:158 +#: builtin/apply.c:3624 builtin/checkout.c:215 builtin/reset.c:158 #, c-format msgid "make_cache_entry failed for path '%s'" msgstr "make_cache_entry für Pfad '%s' fehlgeschlagen" -#: builtin/apply.c:3749 +#: builtin/apply.c:3767 #, c-format msgid "unable to remove %s from index" msgstr "konnte %s nicht aus der Bereitstellung entfernen" -#: builtin/apply.c:3777 +#: builtin/apply.c:3795 #, c-format msgid "corrupt patch for subproject %s" msgstr "fehlerhafter Patch für Unterprojekt %s" -#: builtin/apply.c:3781 +#: builtin/apply.c:3799 #, c-format msgid "unable to stat newly created file '%s'" msgstr "konnte neu erstellte Datei '%s' nicht lesen" -#: builtin/apply.c:3786 +#: builtin/apply.c:3804 #, c-format msgid "unable to create backing store for newly created file %s" msgstr "kann internen Speicher für eben erstellte Datei %s nicht erzeugen" -#: builtin/apply.c:3789 builtin/apply.c:3897 +#: builtin/apply.c:3807 builtin/apply.c:3915 #, c-format msgid "unable to add cache entry for %s" msgstr "kann für %s keinen Eintrag in den Zwischenspeicher hinzufügen" -#: builtin/apply.c:3822 +#: builtin/apply.c:3840 #, c-format msgid "closing file '%s'" msgstr "schließe Datei '%s'" -#: builtin/apply.c:3871 +#: builtin/apply.c:3889 #, c-format msgid "unable to write file '%s' mode %o" msgstr "konnte Datei '%s' mit Modus %o nicht schreiben" -#: builtin/apply.c:3958 +#: builtin/apply.c:3976 #, c-format msgid "Applied patch %s cleanly." msgstr "Patch %s sauber angewendet" -#: builtin/apply.c:3966 +#: builtin/apply.c:3984 msgid "internal error" msgstr "interner Fehler" #. Say this even without --verbose -#: builtin/apply.c:3969 +#: builtin/apply.c:3987 #, c-format msgid "Applying patch %%s with %d reject..." msgid_plural "Applying patch %%s with %d rejects..." msgstr[0] "Wende Patch %%s mit %d Zurückweisung an..." msgstr[1] "Wende Patch %%s mit %d Zurückweisungen an..." -#: builtin/apply.c:3979 +#: builtin/apply.c:3997 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "Verkürze Name von .rej Datei zu %.*s.rej" -#: builtin/apply.c:4000 +#: builtin/apply.c:4018 #, c-format msgid "Hunk #%d applied cleanly." msgstr "Patch-Bereich #%d sauber angewendet." -#: builtin/apply.c:4003 +#: builtin/apply.c:4021 #, c-format msgid "Rejected hunk #%d." msgstr "Patch-Bereich #%d zurückgewiesen." -#: builtin/apply.c:4153 +#: builtin/apply.c:4171 msgid "unrecognized input" msgstr "nicht erkannte Eingabe" -#: builtin/apply.c:4164 +#: builtin/apply.c:4182 msgid "unable to read index file" msgstr "Konnte Bereitstellungsdatei nicht lesen" -#: builtin/apply.c:4283 builtin/apply.c:4286 +#: builtin/apply.c:4301 builtin/apply.c:4304 builtin/clone.c:91 +#: builtin/fetch.c:63 msgid "path" msgstr "Pfad" -#: builtin/apply.c:4284 +#: builtin/apply.c:4302 msgid "don't apply changes matching the given path" msgstr "wendet keine Änderungen im angegebenen Pfad an" -#: builtin/apply.c:4287 +#: builtin/apply.c:4305 msgid "apply changes matching the given path" msgstr "wendet Änderungen nur im angegebenen Pfad an" -#: builtin/apply.c:4289 +#: builtin/apply.c:4307 msgid "num" msgstr "Anzahl" -#: builtin/apply.c:4290 +#: builtin/apply.c:4308 msgid "remove <num> leading slashes from traditional diff paths" msgstr "" "entfernt <Anzahl> vorangestellte Schrägstriche von herkömmlichen " "Differenzpfaden" -#: builtin/apply.c:4293 +#: builtin/apply.c:4311 msgid "ignore additions made by the patch" msgstr "ignoriert hinzugefügte Zeilen des Patches" -#: builtin/apply.c:4295 +#: builtin/apply.c:4313 msgid "instead of applying the patch, output diffstat for the input" msgstr "" "anstatt der Anwendung des Patches, wird der \"diffstat\" für die Eingabe " "ausgegeben" -#: builtin/apply.c:4299 -msgid "shows number of added and deleted lines in decimal notation" +#: builtin/apply.c:4317 +msgid "show number of added and deleted lines in decimal notation" msgstr "" "zeigt die Anzahl von hinzugefügten/entfernten Zeilen in Dezimalnotation" -#: builtin/apply.c:4301 +#: builtin/apply.c:4319 msgid "instead of applying the patch, output a summary for the input" msgstr "" "anstatt der Anwendung des Patches, wird eine Zusammenfassung für die Eingabe " "ausgegeben" -#: builtin/apply.c:4303 +#: builtin/apply.c:4321 msgid "instead of applying the patch, see if the patch is applicable" msgstr "" "anstatt der Anwendung des Patches, zeige ob Patch angewendet werden kann" -#: builtin/apply.c:4305 +#: builtin/apply.c:4323 msgid "make sure the patch is applicable to the current index" msgstr "" "stellt sicher, dass der Patch in der aktuellen Bereitstellung angewendet " "werden kann" -#: builtin/apply.c:4307 +#: builtin/apply.c:4325 msgid "apply a patch without touching the working tree" msgstr "wendet einen Patch an, ohne Änderungen im Arbeitszweig vorzunehmen" -#: builtin/apply.c:4309 +#: builtin/apply.c:4327 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "wendet den Patch an (Benutzung mit --stat/--summary/--check)" -#: builtin/apply.c:4311 +#: builtin/apply.c:4329 msgid "attempt three-way merge if a patch does not apply" msgstr "" "versucht 3-Wege-Zusammenführung, wenn der Patch nicht angewendet werden " "konnte" -#: builtin/apply.c:4313 +#: builtin/apply.c:4331 msgid "build a temporary index based on embedded index information" msgstr "" "erstellt eine temporäre Bereitstellung basierend auf den integrierten " "Bereitstellungsinformationen" -#: builtin/apply.c:4315 +#: builtin/apply.c:4333 builtin/checkout-index.c:197 builtin/ls-files.c:460 msgid "paths are separated with NUL character" msgstr "Pfade sind getrennt durch NUL Zeichen" -#: builtin/apply.c:4318 +#: builtin/apply.c:4336 msgid "ensure at least <n> lines of context match" -msgstr "" -"stellt sicher, dass mindestens <Anzahl> Zeilen des Kontextes übereinstimmen" +msgstr "stellt sicher, dass mindestens <n> Zeilen des Kontextes übereinstimmen" -#: builtin/apply.c:4319 +#: builtin/apply.c:4337 msgid "action" msgstr "Aktion" -#: builtin/apply.c:4320 +#: builtin/apply.c:4338 msgid "detect new or modified lines that have whitespace errors" msgstr "ermittelt neue oder geänderte Zeilen die Fehler in Leerzeichen haben" -#: builtin/apply.c:4323 builtin/apply.c:4326 +#: builtin/apply.c:4341 builtin/apply.c:4344 msgid "ignore changes in whitespace when finding context" msgstr "ignoriert Änderungen in Leerzeichen bei der Suche des Kontextes" -#: builtin/apply.c:4329 +#: builtin/apply.c:4347 msgid "apply the patch in reverse" msgstr "wendet den Patch in umgekehrter Reihenfolge an" -#: builtin/apply.c:4331 +#: builtin/apply.c:4349 msgid "don't expect at least one line of context" msgstr "erwartet keinen Kontext" -#: builtin/apply.c:4333 +#: builtin/apply.c:4351 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "" "hinterlässt zurückgewiesene Patch-Bereiche in den entsprechenden *.rej " "Dateien" -#: builtin/apply.c:4335 +#: builtin/apply.c:4353 msgid "allow overlapping hunks" msgstr "erlaubt sich überlappende Patch-Bereiche" -#: builtin/apply.c:4336 -msgid "be verbose" -msgstr "erweiterte Ausgaben" - -#: builtin/apply.c:4338 +#: builtin/apply.c:4356 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "toleriert fehlerhaft erkannten fehlenden Zeilenumbruch am Dateiende" -#: builtin/apply.c:4341 +#: builtin/apply.c:4359 msgid "do not trust the line counts in the hunk headers" msgstr "vertraut nicht den Zeilennummern im Kopf des Patch-Bereiches" -#: builtin/apply.c:4343 +#: builtin/apply.c:4361 msgid "root" msgstr "Wurzelverzeichnis" -#: builtin/apply.c:4344 +#: builtin/apply.c:4362 msgid "prepend <root> to all filenames" msgstr "stellt <Wurzelverzeichnis> vor alle Dateinamen" -#: builtin/apply.c:4366 +#: builtin/apply.c:4384 msgid "--3way outside a repository" msgstr "--3way außerhalb eines Projektarchivs" -#: builtin/apply.c:4374 +#: builtin/apply.c:4392 msgid "--index outside a repository" msgstr "--index außerhalb eines Projektarchivs" -#: builtin/apply.c:4377 +#: builtin/apply.c:4395 msgid "--cached outside a repository" msgstr "--cached außerhalb eines Projektarchivs" -#: builtin/apply.c:4393 +#: builtin/apply.c:4411 #, c-format msgid "can't open patch '%s'" msgstr "kann Patch '%s' nicht öffnen" -#: builtin/apply.c:4407 +#: builtin/apply.c:4425 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" msgstr[0] "unterdrückte %d Fehler in Leerzeichen" msgstr[1] "unterdrückte %d Fehler in Leerzeichen" -#: builtin/apply.c:4413 builtin/apply.c:4423 +#: builtin/apply.c:4431 builtin/apply.c:4441 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -1935,7 +2109,136 @@ msgstr "git archive: Protokollfehler" msgid "git archive: expected a flush" msgstr "git archive: erwartete eine Spülung (flush)" -#: builtin/branch.c:144 +#: builtin/bisect--helper.c:7 +msgid "git bisect--helper --next-all [--no-checkout]" +msgstr "git bisect--helper --next-all [--no-checkout]" + +#: builtin/bisect--helper.c:17 +msgid "perform 'git bisect next'" +msgstr "führt 'git bisect next' aus" + +#: builtin/bisect--helper.c:19 +msgid "update BISECT_HEAD instead of checking out the current commit" +msgstr "aktualisiert BISECT_HEAD, anstatt die aktuelle Version auszuchecken" + +#: builtin/blame.c:25 +msgid "git blame [options] [rev-opts] [rev] [--] file" +msgstr "git blame [Optionen] [rev-opts] [rev] [--] Datei" + +#: builtin/blame.c:30 builtin/shortlog.c:15 +msgid "[rev-opts] are documented in git-rev-list(1)" +msgstr "[rev-opts] sind dokumentiert in git-rev-list(1)" + +#: builtin/blame.c:2374 +msgid "Show blame entries as we find them, incrementally" +msgstr "Zeigt \"blame\"-Einträge schrittweise, während wir sie generieren" + +#: builtin/blame.c:2375 +msgid "Show blank SHA-1 for boundary commits (Default: off)" +msgstr "Zeigt leere SHA-1 für Grenzversionen (Standard: aus)" + +#: builtin/blame.c:2376 +msgid "Do not treat root commits as boundaries (Default: off)" +msgstr "Behandelt Ursprungsversionen nicht als Grenzen (Standard: aus)" + +#: builtin/blame.c:2377 +msgid "Show work cost statistics" +msgstr "Zeigt Statistiken zum Arbeitsaufwand" + +#: builtin/blame.c:2378 +msgid "Show output score for blame entries" +msgstr "Zeigt Ausgabebewertung für \"blame\"-Einträge" + +#: builtin/blame.c:2379 +msgid "Show original filename (Default: auto)" +msgstr "Zeigt ursprünglichen Dateinamen (Standard: auto)" + +#: builtin/blame.c:2380 +msgid "Show original linenumber (Default: off)" +msgstr "Zeigt ursprüngliche Zeilennummer (Standard: aus)" + +#: builtin/blame.c:2381 +msgid "Show in a format designed for machine consumption" +msgstr "Anzeige in einem Format für maschinelle Auswertung" + +#: builtin/blame.c:2382 +msgid "Show porcelain format with per-line commit information" +msgstr "" +"Anzeige in Format für Fremdprogramme mit Versionsinformationen pro Zeile" + +#: builtin/blame.c:2383 +msgid "Use the same output mode as git-annotate (Default: off)" +msgstr "Benutzt den gleichen Ausgabemodus wie \"git-annotate\" (Standard: aus)" + +#: builtin/blame.c:2384 +msgid "Show raw timestamp (Default: off)" +msgstr "Zeigt unbearbeiteten Zeitstempel (Standard: aus)" + +#: builtin/blame.c:2385 +msgid "Show long commit SHA1 (Default: off)" +msgstr "Zeigt langen Versions-SHA1 (Standard: aus)" + +#: builtin/blame.c:2386 +msgid "Suppress author name and timestamp (Default: off)" +msgstr "Unterdrückt den Namen des Autors und den Zeitstempel (Standard: aus)" + +#: builtin/blame.c:2387 +msgid "Show author email instead of name (Default: off)" +msgstr "Zeigt anstatt des Namens die Email-Adresse des Autors (Standard: aus)" + +#: builtin/blame.c:2388 +msgid "Ignore whitespace differences" +msgstr "Ignoriert Unterschiede in Leerzeichen" + +#: builtin/blame.c:2389 +msgid "Spend extra cycles to find better match" +msgstr "arbeite länger, um bessere Ãœbereinstimmungen zu finden" + +#: builtin/blame.c:2390 +msgid "Use revisions from <file> instead of calling git-rev-list" +msgstr "Benutzt Revisionen von <Datei> anstatt \"git-rev-list\" aufzurufen" + +#: builtin/blame.c:2391 +msgid "Use <file>'s contents as the final image" +msgstr "Benutzt Inhalte der <Datei>en als entgültiges Abbild" + +#: builtin/blame.c:2392 builtin/blame.c:2393 +msgid "score" +msgstr "Bewertung" + +#: builtin/blame.c:2392 +msgid "Find line copies within and across files" +msgstr "Findet kopierte Zeilen innerhalb oder zwischen Dateien" + +#: builtin/blame.c:2393 +msgid "Find line movements within and across files" +msgstr "Findet verschobene Zeilen innerhalb oder zwischen Dateien" + +#: builtin/blame.c:2394 +msgid "n,m" +msgstr "n,m" + +#: builtin/blame.c:2394 +msgid "Process only line range n,m, counting from 1" +msgstr "Verarbeitet nur Zeilen im Bereich n,m, gezählt von 1" + +#: builtin/branch.c:23 +msgid "git branch [options] [-r | -a] [--merged | --no-merged]" +msgstr "git branch [Optionen] [-r | -a] [--merged | --no-merged]" + +#: builtin/branch.c:24 +msgid "git branch [options] [-l] [-f] <branchname> [<start-point>]" +msgstr "git branch [Optionen] [-l] [-f] <Zweigname> [<Startpunkt>]" + +#: builtin/branch.c:25 +msgid "git branch [options] [-r] (-d | -D) <branchname>..." +msgstr "git branch [Optionen] [-r] (-d | -D) <Zweigname>..." + +#: builtin/branch.c:26 +msgid "git branch [options] (-m | -M) [<oldbranch>] <newbranch>" +msgstr "git branch [Optionen] (-m | -M) [<alterZweig>] <neuerZweig>" + +#: builtin/branch.c:145 #, c-format msgid "" "deleting branch '%s' that has been merged to\n" @@ -1945,7 +2248,7 @@ msgstr "" " '%s', aber noch nicht mit der Zweigspitze (HEAD) zusammengeführt " "wurde." -#: builtin/branch.c:148 +#: builtin/branch.c:149 #, c-format msgid "" "not deleting branch '%s' that is not yet merged to\n" @@ -1954,169 +2257,300 @@ msgstr "" "entferne Zweig '%s' nicht, der noch nicht zusammengeführt wurde mit\n" " '%s', obwohl er mit der Zweigspitze (HEAD) zusammengeführt wurde." +#: builtin/branch.c:163 +#, c-format +msgid "Couldn't look up commit object for '%s'" +msgstr "Konnte Versionsobjekt für '%s' nicht nachschlagen." + +#: builtin/branch.c:167 +#, c-format +msgid "" +"The branch '%s' is not fully merged.\n" +"If you are sure you want to delete it, run 'git branch -D %s'." +msgstr "" +"Der Zweig '%s' ist nicht vollständig zusammengeführt.\n" +"Wenn du sicher bist diesen Zweig zu entfernen, führe 'git branch -D %s' aus." + #: builtin/branch.c:180 +msgid "Update of config-file failed" +msgstr "Aktualisierung der Konfigurationsdatei fehlgeschlagen." + +#: builtin/branch.c:208 msgid "cannot use -a with -d" msgstr "kann -a nicht mit -d benutzen" -#: builtin/branch.c:186 +#: builtin/branch.c:214 msgid "Couldn't look up commit object for HEAD" msgstr "Konnte Versionsobjekt für Zweigspitze (HEAD) nicht nachschlagen." -#: builtin/branch.c:191 +#: builtin/branch.c:222 #, c-format msgid "Cannot delete the branch '%s' which you are currently on." msgstr "" "Kann Zweig '%s' nicht entfernen, da du dich gerade auf diesem befindest." -#: builtin/branch.c:202 +#: builtin/branch.c:235 #, c-format msgid "remote branch '%s' not found." msgstr "externer Zweig '%s' nicht gefunden" -#: builtin/branch.c:203 +#: builtin/branch.c:236 #, c-format msgid "branch '%s' not found." msgstr "Zweig '%s' nicht gefunden." -#: builtin/branch.c:210 -#, c-format -msgid "Couldn't look up commit object for '%s'" -msgstr "Konnte Versionsobjekt für '%s' nicht nachschlagen." - -#: builtin/branch.c:216 -#, c-format -msgid "" -"The branch '%s' is not fully merged.\n" -"If you are sure you want to delete it, run 'git branch -D %s'." -msgstr "" -"Der Zweig '%s' ist nicht vollständig zusammengeführt.\n" -"Wenn du sicher bist diesen Zweig zu entfernen, führe 'git branch -D %s' aus." - -#: builtin/branch.c:225 +#: builtin/branch.c:250 #, c-format msgid "Error deleting remote branch '%s'" msgstr "Fehler beim Entfernen des externen Zweiges '%s'" -#: builtin/branch.c:226 +#: builtin/branch.c:251 #, c-format msgid "Error deleting branch '%s'" msgstr "Fehler beim Entfernen des Zweiges '%s'" -#: builtin/branch.c:233 +#: builtin/branch.c:258 #, c-format msgid "Deleted remote branch %s (was %s).\n" msgstr "Externer Zweig %s entfernt (war %s).\n" -#: builtin/branch.c:234 +#: builtin/branch.c:259 #, c-format msgid "Deleted branch %s (was %s).\n" msgstr "Zweig %s entfernt (war %s).\n" -#: builtin/branch.c:239 -msgid "Update of config-file failed" -msgstr "Aktualisierung der Konfigurationsdatei fehlgeschlagen." - -#: builtin/branch.c:337 +#: builtin/branch.c:361 #, c-format msgid "branch '%s' does not point at a commit" msgstr "Zweig '%s' zeigt auf keine Version" -#: builtin/branch.c:409 +#: builtin/branch.c:433 #, c-format msgid "[%s: behind %d]" msgstr "[%s: %d hinterher]" -#: builtin/branch.c:411 +#: builtin/branch.c:435 #, c-format msgid "[behind %d]" msgstr "[%d hinterher]" -#: builtin/branch.c:415 +#: builtin/branch.c:439 #, c-format msgid "[%s: ahead %d]" msgstr "[%s: %d voraus]" -#: builtin/branch.c:417 +#: builtin/branch.c:441 #, c-format msgid "[ahead %d]" msgstr "[%d voraus]" -#: builtin/branch.c:420 +#: builtin/branch.c:444 #, c-format msgid "[%s: ahead %d, behind %d]" msgstr "[%s: %d voraus, %d hinterher]" -#: builtin/branch.c:423 +#: builtin/branch.c:447 #, c-format msgid "[ahead %d, behind %d]" msgstr "[%d voraus, %d hinterher]" -#: builtin/branch.c:535 +#: builtin/branch.c:560 msgid "(no branch)" msgstr "(kein Zweig)" -#: builtin/branch.c:600 +#: builtin/branch.c:625 msgid "some refs could not be read" msgstr "Konnte einige Referenzen nicht lesen" -#: builtin/branch.c:613 +#: builtin/branch.c:638 msgid "cannot rename the current branch while not on any." msgstr "" "Kann aktuellen Zweig nicht umbenennen, solange du dich auf keinem befindest." -#: builtin/branch.c:623 +#: builtin/branch.c:648 #, c-format msgid "Invalid branch name: '%s'" msgstr "Ungültiger Zweig-Name: '%s'" -#: builtin/branch.c:638 +#: builtin/branch.c:663 msgid "Branch rename failed" msgstr "Umbenennung des Zweiges fehlgeschlagen" -#: builtin/branch.c:642 +#: builtin/branch.c:667 #, c-format msgid "Renamed a misnamed branch '%s' away" msgstr "falsch benannten Zweig '%s' umbenannt" -#: builtin/branch.c:646 +#: builtin/branch.c:671 #, c-format msgid "Branch renamed to %s, but HEAD is not updated!" msgstr "Zweig umbenannt zu %s, aber Zweigspitze (HEAD) ist nicht aktualisiert!" -#: builtin/branch.c:653 +#: builtin/branch.c:678 msgid "Branch is renamed, but update of config-file failed" msgstr "" "Zweig ist umbenannt, aber die Aktualisierung der Konfigurationsdatei ist " "fehlgeschlagen." -#: builtin/branch.c:668 +#: builtin/branch.c:693 #, c-format msgid "malformed object name %s" msgstr "Missgebildeter Objektname %s" -#: builtin/branch.c:692 +#: builtin/branch.c:717 #, c-format msgid "could not write branch description template: %s" msgstr "Konnte Beschreibungsvorlage für Zweig nicht schreiben: %s" -#: builtin/branch.c:783 +#: builtin/branch.c:747 +msgid "Generic options" +msgstr "Allgemeine Optionen" + +#: builtin/branch.c:749 +msgid "show hash and subject, give twice for upstream branch" +msgstr "Zeigt Hash und Betreff; -vv: zusätzlich externen Ãœbernahmezweig" + +#: builtin/branch.c:750 +msgid "suppress informational messages" +msgstr "unterdrückt Informationsmeldungen" + +#: builtin/branch.c:751 +msgid "set up tracking mode (see git-pull(1))" +msgstr "stellt den Ãœbernahmemodus ein (siehe git-pull(1))" + +#: builtin/branch.c:753 +msgid "change upstream info" +msgstr "ändert Informationen zum externen Ãœbernahmezweig" + +#: builtin/branch.c:757 +msgid "use colored output" +msgstr "verwendet farbliche Ausgaben" + +#: builtin/branch.c:758 +msgid "act on remote-tracking branches" +msgstr "wirkt auf externe Ãœbernahmezweige" + +#: builtin/branch.c:761 builtin/branch.c:767 builtin/branch.c:788 +#: builtin/branch.c:794 builtin/commit.c:1376 builtin/commit.c:1377 +#: builtin/commit.c:1378 builtin/commit.c:1379 builtin/tag.c:470 +msgid "commit" +msgstr "Version" + +#: builtin/branch.c:762 builtin/branch.c:768 +msgid "print only branches that contain the commit" +msgstr "gibt nur Zweige aus, welche diese Version beinhalten" + +#: builtin/branch.c:774 +msgid "Specific git-branch actions:" +msgstr "spezifische Aktionen für \"git-branch\":" + +#: builtin/branch.c:775 +msgid "list both remote-tracking and local branches" +msgstr "listet externe Ãœbernahmezweige und lokale Zweige auf" + +#: builtin/branch.c:777 +msgid "delete fully merged branch" +msgstr "entfernt vollständig zusammengeführten Zweig" + +#: builtin/branch.c:778 +msgid "delete branch (even if not merged)" +msgstr "löscht Zweig (auch wenn nicht zusammengeführt)" + +#: builtin/branch.c:779 +msgid "move/rename a branch and its reflog" +msgstr "verschiebt/benennt einen Zweig und dessen Referenzprotokoll um" + +#: builtin/branch.c:780 +msgid "move/rename a branch, even if target exists" +msgstr "" +"verschiebt/benennt einen Zweig um, auch wenn das Ziel bereits existiert" + +#: builtin/branch.c:781 +msgid "list branch names" +msgstr "listet Zweignamen auf" + +#: builtin/branch.c:782 +msgid "create the branch's reflog" +msgstr "erzeugt das Referenzprotokoll des Zweiges" + +#: builtin/branch.c:784 +msgid "edit the description for the branch" +msgstr "bearbeitet die Beschreibung für den Zweig" + +#: builtin/branch.c:785 +msgid "force creation (when already exists)" +msgstr "erzeuge auch, wenn der Zweig bereits existiert" + +#: builtin/branch.c:788 +msgid "print only not merged branches" +msgstr "gibt nur Zweige aus, die nicht zusammengeführt sind" + +#: builtin/branch.c:794 +msgid "print only merged branches" +msgstr "gibt nur Zweige aus, die zusammengeführt sind" + +#: builtin/branch.c:798 +msgid "list branches in columns" +msgstr "listet Zweige in Spalten auf" + +#: builtin/branch.c:811 msgid "Failed to resolve HEAD as a valid ref." msgstr "Konnte Zweigspitze (HEAD) nicht als gültige Referenz auflösen." -#: builtin/branch.c:788 builtin/clone.c:561 +#: builtin/branch.c:816 builtin/clone.c:561 msgid "HEAD not found below refs/heads!" msgstr "Zweigspitze (HEAD) wurde nicht unter \"refs/heads\" gefunden!" -#: builtin/branch.c:808 +#: builtin/branch.c:836 msgid "--column and --verbose are incompatible" msgstr "--column und --verbose sind inkompatibel" -#: builtin/branch.c:857 +#: builtin/branch.c:887 +#, c-format +msgid "branch '%s' does not exist" +msgstr "Zweig '%s' existiert nicht" + +#: builtin/branch.c:899 +#, c-format +msgid "Branch '%s' has no upstream information" +msgstr "Zweig '%s' hat keinen externen Ãœbernahmezweig gesetzt" + +#: builtin/branch.c:914 msgid "-a and -r options to 'git branch' do not make sense with a branch name" msgstr "" "Die Optionen -a und -r bei 'git branch' machen mit einem Zweignamen keinen " "Sinn." +#: builtin/branch.c:917 +#, c-format +msgid "" +"The --set-upstream flag is deprecated and will be removed. Consider using --" +"track or --set-upstream-to\n" +msgstr "" +"Die --set-upstream Option ist veraltet und wird entfernt. Benutze --track " +"oder --set-upstream-to\n" + +#: builtin/branch.c:934 +#, c-format +msgid "" +"\n" +"If you wanted to make '%s' track '%s', do this:\n" +"\n" +msgstr "" +"\n" +"Wenn du wolltest, dass '%s' den Zweig '%s' als externen Ãœbernahmezweig hat, " +"führe aus:\n" + +#: builtin/branch.c:935 +#, c-format +msgid " git branch -d %s\n" +msgstr " git branch -d %s\n" + +#: builtin/branch.c:936 +#, c-format +msgid " git branch --set-upstream-to %s\n" +msgstr " git branch --set-upstream-to %s\n" + #: builtin/bundle.c:47 #, c-format msgid "%s is okay\n" @@ -2130,95 +2564,228 @@ msgstr "Um ein Paket zu erstellen wird ein Projektarchiv benötigt." msgid "Need a repository to unbundle." msgstr "Zum Entpacken wird ein Projektarchiv benötigt." -#: builtin/checkout.c:114 builtin/checkout.c:147 +#: builtin/cat-file.c:247 +msgid "git cat-file (-t|-s|-e|-p|<type>|--textconv) <object>" +msgstr "git cat-file (-t|-s|-e|-p|<Art>|--textconv) <Objekt>" + +#: builtin/cat-file.c:248 +msgid "git cat-file (--batch|--batch-check) < <list_of_objects>" +msgstr "git cat-file (--batch|--batch-check) < <Liste_von_Objekten>" + +#: builtin/cat-file.c:266 +msgid "<type> can be one of: blob, tree, commit, tag" +msgstr "<Art> kann sein: blob, tree, commit, tag" + +#: builtin/cat-file.c:267 +msgid "show object type" +msgstr "zeigt Objektart" + +#: builtin/cat-file.c:268 +msgid "show object size" +msgstr "zeigt Objektgröße" + +#: builtin/cat-file.c:270 +msgid "exit with zero when there's no error" +msgstr "beendet mit Rückgabewert 0, wenn kein Fehler aufgetreten ist" + +#: builtin/cat-file.c:271 +msgid "pretty-print object's content" +msgstr "ansprechende Anzeige des Objektinhaltes" + +#: builtin/cat-file.c:273 +msgid "for blob objects, run textconv on object's content" +msgstr "führt eine Textkonvertierung auf den Inhalt von Blob-Objekten aus" + +#: builtin/cat-file.c:275 +msgid "show info and content of objects fed from the standard input" +msgstr "" +"Anzeige von Informationen und Inhalt von Objekten, gelesen von der Standard-" +"Eingabe" + +#: builtin/cat-file.c:278 +msgid "show info about objects fed from the standard input" +msgstr "" +"Anzeige von Informationen über Objekte, gelesen von der Standard-Eingabe" + +#: builtin/check-attr.c:11 +msgid "git check-attr [-a | --all | attr...] [--] pathname..." +msgstr "git check-attr [-a | --all | Attribut...] [--] Pfadname..." + +#: builtin/check-attr.c:12 +msgid "git check-attr --stdin [-z] [-a | --all | attr...] < <list-of-paths>" +msgstr "git check-attr --stdin [-z] [-a | --all | Attribut...] < <Liste-von-Pfaden>" + +#: builtin/check-attr.c:19 +msgid "report all attributes set on file" +msgstr "gibt alle Attribute einer Datei aus" + +#: builtin/check-attr.c:20 +msgid "use .gitattributes only from the index" +msgstr "verwendet .gitattributes nur von der Bereitstellung" + +#: builtin/check-attr.c:21 builtin/hash-object.c:75 +msgid "read file names from stdin" +msgstr "liest Dateinamen von der Standard-Eingabe" + +#: builtin/check-attr.c:23 +msgid "input paths are terminated by a null character" +msgstr "Eingabepfade sind durch ein NUL Zeichen abgeschlossen" + +#: builtin/checkout-index.c:126 +msgid "git checkout-index [options] [--] [<file>...]" +msgstr "git checkout-index [Optionen] [--] [<Datei>...]" + +#: builtin/checkout-index.c:187 +msgid "check out all files in the index" +msgstr "checkt alle Dateien in der Bereitstellung aus" + +#: builtin/checkout-index.c:188 +msgid "force overwrite of existing files" +msgstr "erzwingt das Ãœberschreiben bereits existierender Dateien" + +#: builtin/checkout-index.c:190 +msgid "no warning for existing files and files not in index" +msgstr "" +"keine Warnung für existierende Dateien, und Dateien, die sich nicht in der " +"Bereitstellung befinden" + +#: builtin/checkout-index.c:192 +msgid "don't checkout new files" +msgstr "checkt keine neuen Dateien aus" + +#: builtin/checkout-index.c:194 +msgid "update stat information in the index file" +msgstr "aktualisiert Dateiinformationen in der Bereitstellungsdatei" + +#: builtin/checkout-index.c:200 +msgid "read list of paths from the standard input" +msgstr "liest eine Liste von Pfaden von der Standard-Eingabe" + +#: builtin/checkout-index.c:202 +msgid "write the content to temporary files" +msgstr "schreibt den Inhalt in temporäre Dateien" + +#: builtin/checkout-index.c:203 builtin/column.c:30 +msgid "string" +msgstr "Zeichenkette" + +#: builtin/checkout-index.c:204 +msgid "when creating files, prepend <string>" +msgstr "" +"wenn Dateien erzeugt werden, stelle <Zeichenkette> dem Dateinamen voran" + +#: builtin/checkout-index.c:207 +msgid "copy out the files from named stage" +msgstr "kopiert Dateien von dem benannten Stand" + +#: builtin/checkout.c:25 +msgid "git checkout [options] <branch>" +msgstr "git checkout [Optionen] <Zweig>" + +#: builtin/checkout.c:26 +msgid "git checkout [options] [<branch>] -- <file>..." +msgstr "git checkout [Optionen] [Zweig>] -- <Datei>..." + +#: builtin/checkout.c:116 builtin/checkout.c:149 #, c-format msgid "path '%s' does not have our version" msgstr "Pfad '%s' hat nicht unsere Version." -#: builtin/checkout.c:116 builtin/checkout.c:149 +#: builtin/checkout.c:118 builtin/checkout.c:151 #, c-format msgid "path '%s' does not have their version" msgstr "Pfad '%s' hat nicht deren Version." -#: builtin/checkout.c:132 +#: builtin/checkout.c:134 #, c-format msgid "path '%s' does not have all necessary versions" msgstr "Pfad '%s' hat nicht alle notwendigen Versionen." -#: builtin/checkout.c:176 +#: builtin/checkout.c:178 #, c-format msgid "path '%s' does not have necessary versions" msgstr "Pfad '%s' hat nicht die notwendigen Versionen." -#: builtin/checkout.c:193 +#: builtin/checkout.c:195 #, c-format msgid "path '%s': cannot merge" msgstr "Pfad '%s': kann nicht zusammenführen" -#: builtin/checkout.c:210 +#: builtin/checkout.c:212 #, c-format msgid "Unable to add merge result for '%s'" msgstr "Konnte Ergebnis der Zusammenführung von '%s' nicht hinzufügen." -#: builtin/checkout.c:235 builtin/checkout.c:392 +#: builtin/checkout.c:236 builtin/checkout.c:239 builtin/checkout.c:242 +#: builtin/checkout.c:245 +#, c-format +msgid "'%s' cannot be used with updating paths" +msgstr "'%s' kann nicht mit Pfaden benutzt werden" + +#: builtin/checkout.c:248 builtin/checkout.c:251 +#, c-format +msgid "'%s' cannot be used with %s" +msgstr "'%s' kann nicht mit '%s' benutzt werden" + +#: builtin/checkout.c:254 +#, c-format +msgid "Cannot update paths and switch to branch '%s' at the same time." +msgstr "Kann nicht gleichzeitig Pfade aktualisieren und zu Zweig '%s' wechseln" + +#: builtin/checkout.c:265 builtin/checkout.c:426 msgid "corrupt index file" msgstr "beschädigte Bereitstellungsdatei" -#: builtin/checkout.c:265 builtin/checkout.c:272 +#: builtin/checkout.c:295 builtin/checkout.c:302 #, c-format msgid "path '%s' is unmerged" msgstr "Pfad '%s' ist nicht zusammengeführt." -#: builtin/checkout.c:303 builtin/checkout.c:498 builtin/clone.c:586 -#: builtin/merge.c:811 -msgid "unable to write new index file" -msgstr "Konnte neue Bereitstellungsdatei nicht schreiben." - -#: builtin/checkout.c:414 +#: builtin/checkout.c:448 msgid "you need to resolve your current index first" msgstr "Du musst zuerst deine aktuelle Bereitstellung auflösen." -#: builtin/checkout.c:533 +#: builtin/checkout.c:569 #, c-format msgid "Can not do reflog for '%s'\n" msgstr "Konnte \"reflog\" für '%s' nicht durchführen\n" -#: builtin/checkout.c:566 +#: builtin/checkout.c:602 msgid "HEAD is now at" msgstr "Zweigspitze (HEAD) ist jetzt bei" -#: builtin/checkout.c:573 +#: builtin/checkout.c:609 #, c-format msgid "Reset branch '%s'\n" msgstr "Setze Zweig '%s' zurück\n" -#: builtin/checkout.c:576 +#: builtin/checkout.c:612 #, c-format msgid "Already on '%s'\n" msgstr "Bereits auf '%s'\n" -#: builtin/checkout.c:580 +#: builtin/checkout.c:616 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Gewechselt zu zurückgesetztem Zweig '%s'\n" -#: builtin/checkout.c:582 +#: builtin/checkout.c:618 builtin/checkout.c:955 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Gewechselt zu einem neuen Zweig '%s'\n" -#: builtin/checkout.c:584 +#: builtin/checkout.c:620 #, c-format msgid "Switched to branch '%s'\n" msgstr "Gewechselt zu Zweig '%s'\n" -#: builtin/checkout.c:640 +#: builtin/checkout.c:676 #, c-format msgid " ... and %d more.\n" msgstr " ... und %d weitere.\n" #. The singular version -#: builtin/checkout.c:646 +#: builtin/checkout.c:682 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -2241,7 +2808,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:664 +#: builtin/checkout.c:700 #, c-format msgid "" "If you want to keep them by creating a new branch, this may be a good time\n" @@ -2256,92 +2823,151 @@ msgstr "" " git branch neuer_zweig_name %s\n" "\n" -#: builtin/checkout.c:694 +#: builtin/checkout.c:730 msgid "internal error in revision walk" msgstr "interner Fehler im Revisionsgang" -#: builtin/checkout.c:698 +#: builtin/checkout.c:734 msgid "Previous HEAD position was" msgstr "Vorherige Position der Zweigspitze (HEAD) war" -#: builtin/checkout.c:724 builtin/checkout.c:919 +#: builtin/checkout.c:761 builtin/checkout.c:950 msgid "You are on a branch yet to be born" msgstr "du bist auf einem Zweig, der noch geboren wird" #. case (1) -#: builtin/checkout.c:855 +#: builtin/checkout.c:886 #, c-format msgid "invalid reference: %s" msgstr "Ungültige Referenz: %s" #. case (1): want a tree -#: builtin/checkout.c:894 +#: builtin/checkout.c:925 #, c-format msgid "reference is not a tree: %s" msgstr "Referenz ist kein Baum: %s" -#: builtin/checkout.c:976 -msgid "-B cannot be used with -b" -msgstr "-B kann nicht mit -b benutzt werden" +#: builtin/checkout.c:964 +msgid "paths cannot be used with switching branches" +msgstr "Pfade können nicht mit dem Wechseln von Zweigen benutzt werden" -#: builtin/checkout.c:985 -msgid "--patch is incompatible with all other options" -msgstr "--patch ist inkompatibel mit allen anderen Optionen" +#: builtin/checkout.c:967 builtin/checkout.c:971 +#, c-format +msgid "'%s' cannot be used with switching branches" +msgstr "'%s' kann nicht mit dem Wechseln von Zweigen benutzt werden" -#: builtin/checkout.c:988 -msgid "--detach cannot be used with -b/-B/--orphan" -msgstr "--detach kann nicht mit -b/-B/--orphan benutzt werden" +#: builtin/checkout.c:975 builtin/checkout.c:978 builtin/checkout.c:983 +#: builtin/checkout.c:986 +#, c-format +msgid "'%s' cannot be used with '%s'" +msgstr "'%s' kann nicht mit '%s' benutzt werden" -#: builtin/checkout.c:990 -msgid "--detach cannot be used with -t" -msgstr "--detach kann nicht mit -t benutzt werden" +#: builtin/checkout.c:991 +#, c-format +msgid "Cannot switch branch to a non-commit '%s'" +msgstr "Kann Zweig nicht zu Nicht-Version '%s' wechseln" -#: builtin/checkout.c:996 -msgid "--track needs a branch name" -msgstr "--track benötigt einen Zweignamen" +#: builtin/checkout.c:1012 builtin/gc.c:177 +msgid "suppress progress reporting" +msgstr "unterdrückt Fortschrittsanzeige" -#: builtin/checkout.c:1003 -msgid "Missing branch name; try -b" -msgstr "Vermisse Zweignamen; versuche -b" +#: builtin/checkout.c:1013 builtin/checkout.c:1015 builtin/clone.c:89 +#: builtin/remote.c:169 builtin/remote.c:171 +msgid "branch" +msgstr "Zweig" + +#: builtin/checkout.c:1014 +msgid "create and checkout a new branch" +msgstr "erzeugt und checkt einen neuen Zweig aus" + +#: builtin/checkout.c:1016 +msgid "create/reset and checkout a branch" +msgstr "erzeugt/setzt neu und checkt einen Zweig aus" -#: builtin/checkout.c:1009 -msgid "--orphan and -b|-B are mutually exclusive" -msgstr "--orphan und -b|-B sind gegenseitig exklusiv" +#: builtin/checkout.c:1017 +msgid "create reflog for new branch" +msgstr "erzeugt Referenzprotokoll für den neuen Zweig" -#: builtin/checkout.c:1011 -msgid "--orphan cannot be used with -t" -msgstr "--orphan kann nicht mit -t benutzt werden" +#: builtin/checkout.c:1018 +msgid "detach the HEAD at named commit" +msgstr "setzt die Zweigspitze (HEAD) zu benannter Version" + +#: builtin/checkout.c:1019 +msgid "set upstream info for new branch" +msgstr "setzt Informationen zum externen Ãœbernahmezweig für den neuen Zweig" + +#: builtin/checkout.c:1021 +msgid "new branch" +msgstr "neuer Zweig" #: builtin/checkout.c:1021 -msgid "git checkout: -f and -m are incompatible" -msgstr "git checkout: -f und -m sind inkompatibel" +msgid "new unparented branch" +msgstr "neuer Zweig ohne Elternversion" + +#: builtin/checkout.c:1022 +msgid "checkout our version for unmerged files" +msgstr "checkt unsere Variante für nicht zusammengeführte Dateien aus" + +#: builtin/checkout.c:1024 +msgid "checkout their version for unmerged files" +msgstr "checkt ihre Variante für nicht zusammengeführte Dateien aus" + +#: builtin/checkout.c:1026 +msgid "force checkout (throw away local modifications)" +msgstr "erzwingt Auschecken (verwirft lokale Änderungen)" + +#: builtin/checkout.c:1027 +msgid "perform a 3-way merge with the new branch" +msgstr "führt eine 3-Wege-Zusammenführung mit dem neuen Zweig aus" + +#: builtin/checkout.c:1028 builtin/merge.c:215 +msgid "update ignored files (default)" +msgstr "aktualisiert ignorierte Dateien (Standard)" + +#: builtin/checkout.c:1029 builtin/log.c:1116 parse-options.h:241 +msgid "style" +msgstr "Stil" -#: builtin/checkout.c:1055 +#: builtin/checkout.c:1030 +msgid "conflict style (merge or diff3)" +msgstr "Konfliktstil (merge oder diff3)" + +#: builtin/checkout.c:1033 +msgid "second guess 'git checkout no-such-branch'" +msgstr "second guess 'git checkout no-such-branch'" + +#: builtin/checkout.c:1057 +msgid "-b, -B and --orphan are mutually exclusive" +msgstr "-b, -B und --orphan schliessen sich gegenseitig aus" + +#: builtin/checkout.c:1074 +msgid "--track needs a branch name" +msgstr "--track benötigt einen Zweignamen" + +#: builtin/checkout.c:1081 +msgid "Missing branch name; try -b" +msgstr "Vermisse Zweignamen; versuche -b" + +#: builtin/checkout.c:1116 msgid "invalid path specification" msgstr "ungültige Pfadspezifikation" -#: builtin/checkout.c:1063 +#: builtin/checkout.c:1123 #, c-format msgid "" -"git checkout: updating paths is incompatible with switching branches.\n" +"Cannot update paths and switch to branch '%s' at the same time.\n" "Did you intend to checkout '%s' which can not be resolved as commit?" msgstr "" -"git checkout: Die Aktualisierung von Pfaden ist inkompatibel mit dem Wechsel " -"von Zweigen.\n" +"Kann nicht gleichzeitig Pfade aktualisieren und zu Zweig '%s' wechseln.\n" "Hast du beabsichtigt '%s' auszuchecken, welcher nicht als Version aufgelöst " "werden kann?" -#: builtin/checkout.c:1065 -msgid "git checkout: updating paths is incompatible with switching branches." -msgstr "" -"git checkout: Die Aktualisierung von Pfaden ist inkompatibel mit dem Wechsel " -"von Zweigen." - -#: builtin/checkout.c:1070 -msgid "git checkout: --detach does not take a path argument" -msgstr "git checkout: --detach nimmt kein Pfad-Argument" +#: builtin/checkout.c:1128 +#, c-format +msgid "git checkout: --detach does not take a path argument '%s'" +msgstr "git checkout: --detach nimmt kein Pfad-Argument '%s'" -#: builtin/checkout.c:1073 +#: builtin/checkout.c:1132 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -2349,13 +2975,38 @@ msgstr "" "git checkout: --ours/--theirs, --force und --merge sind inkompatibel wenn\n" "du aus der Bereitstellung auscheckst." -#: builtin/checkout.c:1092 -msgid "Cannot switch branch to a non-commit." -msgstr "Kann Zweig nur zu einer Version wechseln." +#: builtin/clean.c:19 +msgid "git clean [-d] [-f] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..." +msgstr "git clean [-d] [-f] [-n] [-q] [-e <Muster>] [-x | -X] [--] <Pfade>..." + +#: builtin/clean.c:51 +msgid "do not print names of files removed" +msgstr "gibt keine Namen von gelöschten Dateien aus" + +#: builtin/clean.c:53 +msgid "force" +msgstr "erzwingt Aktion" + +#: builtin/clean.c:55 +msgid "remove whole directories" +msgstr "löscht ganze Verzeichnisse" + +#: builtin/clean.c:56 builtin/describe.c:413 builtin/grep.c:717 +#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:182 +msgid "pattern" +msgstr "Muster" + +#: builtin/clean.c:57 +msgid "add <pattern> to ignore rules" +msgstr "fügt <Muster> zu den Regeln für ignorierte Pfade hinzu" + +#: builtin/clean.c:58 +msgid "remove ignored files, too" +msgstr "löscht auch ignorierte Dateien" -#: builtin/checkout.c:1095 -msgid "--ours/--theirs is incompatible with switching branches." -msgstr "--ours/--theirs ist inkompatibel mit den Wechseln von Zweigen." +#: builtin/clean.c:60 +msgid "remove only ignored files" +msgstr "löscht nur ignorierte Dateien" #: builtin/clean.c:78 msgid "-x and -X cannot be used together" @@ -2379,28 +3030,122 @@ msgstr "" #: builtin/clean.c:155 builtin/clean.c:176 #, c-format msgid "Would remove %s\n" -msgstr "Würde %s entfernen\n" +msgstr "Würde %s löschen\n" #: builtin/clean.c:159 builtin/clean.c:179 #, c-format msgid "Removing %s\n" -msgstr "Entferne %s\n" +msgstr "Lösche %s\n" #: builtin/clean.c:162 builtin/clean.c:182 #, c-format msgid "failed to remove %s" -msgstr "Fehler beim Entfernen von %s" +msgstr "Fehler beim Löschen von %s" #: builtin/clean.c:166 #, c-format msgid "Would not remove %s\n" -msgstr "Würde nicht entfernen %s\n" +msgstr "Würde '%s' nicht löschen\n" #: builtin/clean.c:168 #, c-format msgid "Not removing %s\n" msgstr "Entferne nicht %s\n" +#: builtin/clone.c:36 +msgid "git clone [options] [--] <repo> [<dir>]" +msgstr "git clone [Optionen] [--] <Projektarchiv> [<Verzeichnis>]" + +#: builtin/clone.c:64 builtin/fetch.c:82 builtin/merge.c:212 +#: builtin/push.c:399 +msgid "force progress reporting" +msgstr "erzwingt Fortschrittsanzeige" + +#: builtin/clone.c:66 +msgid "don't create a checkout" +msgstr "kein Auschecken" + +#: builtin/clone.c:67 builtin/clone.c:69 builtin/init-db.c:488 +msgid "create a bare repository" +msgstr "erstellt ein bloßes Projektarchiv" + +#: builtin/clone.c:72 +msgid "create a mirror repository (implies bare)" +msgstr "erstellt ein Spiegelarchiv (impliziert bloßes Projektarchiv)" + +#: builtin/clone.c:74 +msgid "to clone from a local repository" +msgstr "um von einem lokalen Projektarchiv zu klonen" + +#: builtin/clone.c:76 +msgid "don't use local hardlinks, always copy" +msgstr "benutzt lokal keine harten Links, immer Kopien" + +#: builtin/clone.c:78 +msgid "setup as shared repository" +msgstr "Einrichtung als verteiltes Projektarchiv" + +#: builtin/clone.c:80 builtin/clone.c:82 +msgid "initialize submodules in the clone" +msgstr "initialisiert Unterprojekte im Klon" + +#: builtin/clone.c:83 builtin/init-db.c:485 +msgid "template-directory" +msgstr "Vorlagenverzeichnis" + +#: builtin/clone.c:84 builtin/init-db.c:486 +msgid "directory from which templates will be used" +msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden" + +#: builtin/clone.c:86 +msgid "reference repository" +msgstr "referenziert Projektarchiv" + +#: builtin/clone.c:87 builtin/column.c:26 builtin/merge-file.c:44 +msgid "name" +msgstr "Name" + +#: builtin/clone.c:88 +msgid "use <name> instead of 'origin' to track upstream" +msgstr "benutzt <Name> statt 'origin' für externes Projektarchiv" + +#: builtin/clone.c:90 +msgid "checkout <branch> instead of the remote's HEAD" +msgstr "" +"checkt <Zweig> aus, anstatt Zweigspitze (HEAD) des externen Projektarchivs" + +#: builtin/clone.c:92 +msgid "path to git-upload-pack on the remote" +msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite" + +#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:662 +msgid "depth" +msgstr "Tiefe" + +#: builtin/clone.c:94 +msgid "create a shallow clone of that depth" +msgstr "erstellt einen flachen Klon mit dieser Tiefe" + +#: builtin/clone.c:96 +msgid "clone only one branch, HEAD or --branch" +msgstr "klont nur einen Zweig, Zweigspitze (HEAD) oder --branch" + +#: builtin/clone.c:97 builtin/init-db.c:494 +msgid "gitdir" +msgstr ".git-Verzeichnis" + +#: builtin/clone.c:98 builtin/init-db.c:495 +msgid "separate git dir from working tree" +msgstr "separiert Git-Verzeichnis vom Arbeitsbaum" + +#: builtin/clone.c:99 +msgid "key=value" +msgstr "Schlüssel=Wert" + +#: builtin/clone.c:100 +msgid "set config inside the new repository" +msgstr "setzt Konfiguration innerhalb des neuen Projektarchivs" + #: builtin/clone.c:243 #, c-format msgid "reference repository '%s' is not a local directory." @@ -2452,77 +3197,113 @@ msgstr "" "Externe Zweigspitze (HEAD) bezieht sich auf eine nicht existierende Referenz " "und kann nicht ausgecheckt werden.\n" -#: builtin/clone.c:642 +#: builtin/clone.c:690 msgid "Too many arguments." msgstr "Zu viele Argumente." -#: builtin/clone.c:646 +#: builtin/clone.c:694 msgid "You must specify a repository to clone." msgstr "Du musst ein Projektarchiv zum Klonen angeben." -#: builtin/clone.c:657 +#: builtin/clone.c:705 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "--bare und --origin %s Optionen sind inkompatibel." -#: builtin/clone.c:671 +#: builtin/clone.c:719 #, c-format msgid "repository '%s' does not exist" msgstr "Projektarchiv '%s' existiert nicht." -#: builtin/clone.c:676 +#: builtin/clone.c:724 msgid "--depth is ignored in local clones; use file:// instead." msgstr "--depth wird in lokalen Klonen ignoriert; benutze stattdessen file://." -#: builtin/clone.c:686 +#: builtin/clone.c:734 #, c-format msgid "destination path '%s' already exists and is not an empty directory." msgstr "Zielpfad '%s' existiert bereits und ist kein leeres Verzeichnis." -#: builtin/clone.c:696 +#: builtin/clone.c:744 #, c-format msgid "working tree '%s' already exists." msgstr "Arbeitsbaum '%s' existiert bereits." -#: builtin/clone.c:709 builtin/clone.c:723 +#: builtin/clone.c:757 builtin/clone.c:771 #, c-format msgid "could not create leading directories of '%s'" msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen." -#: builtin/clone.c:712 +#: builtin/clone.c:760 #, c-format msgid "could not create work tree dir '%s'." msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen." -#: builtin/clone.c:731 +#: builtin/clone.c:779 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Klone in bloßes Projektarchiv '%s'...\n" -#: builtin/clone.c:733 +#: builtin/clone.c:781 #, c-format msgid "Cloning into '%s'...\n" msgstr "Klone nach '%s'...\n" -#: builtin/clone.c:789 +#: builtin/clone.c:823 #, c-format msgid "Don't know how to clone %s" msgstr "Weiß nicht wie %s zu klonen ist." -#: builtin/clone.c:838 +#: builtin/clone.c:872 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "externer Zweig %s nicht im anderen Projektarchiv %s gefunden" -#: builtin/clone.c:845 +#: builtin/clone.c:879 msgid "You appear to have cloned an empty repository." msgstr "Du scheinst ein leeres Projektarchiv geklont zu haben." +#: builtin/column.c:9 +msgid "git column [options]" +msgstr "git column [Optionen]" + +#: builtin/column.c:26 +msgid "lookup config vars" +msgstr "schlägt Konfigurationsvariablen nach" + +#: builtin/column.c:27 builtin/column.c:28 +msgid "layout to use" +msgstr "zu verwendende Anordnung" + +#: builtin/column.c:29 +msgid "Maximum width" +msgstr "maximale Breite" + +#: builtin/column.c:30 +msgid "Padding space on left border" +msgstr "Abstand zum linken Rand" + +#: builtin/column.c:31 +msgid "Padding space on right border" +msgstr "Abstand zur rechten Rand" + +#: builtin/column.c:32 +msgid "Padding space between columns" +msgstr "Abstand zwischen Spalten" + #: builtin/column.c:51 msgid "--command must be the first argument" msgstr "Option --command muss zuerst angegeben werden" -#: builtin/commit.c:43 +#: builtin/commit.c:34 +msgid "git commit [options] [--] <filepattern>..." +msgstr "git commit [Optionen] [--] <Dateimuster>..." + +#: builtin/commit.c:39 +msgid "git status [options] [--] <filepattern>..." +msgstr "git status [Optionen] [--] <Dateimuster>..." + +#: builtin/commit.c:44 msgid "" "Your name and email address were configured automatically based\n" "on your username and hostname. Please check that they are accurate.\n" @@ -2548,7 +3329,7 @@ msgstr "" "\n" " git commit --amend --reset-author\n" -#: builtin/commit.c:55 +#: builtin/commit.c:56 msgid "" "You asked to amend the most recent commit, but doing so would make\n" "it empty. You can repeat your command with --allow-empty, or you can\n" @@ -2558,7 +3339,7 @@ msgstr "" "machen. Du kannst Dein Kommando mit --allow-empty wiederholen, oder die\n" "Version mit \"git reset HEAD^\" vollständig entfernen.\n" -#: builtin/commit.c:60 +#: builtin/commit.c:61 msgid "" "The previous cherry-pick is now empty, possibly due to conflict resolution.\n" "If you wish to commit it anyway, use:\n" @@ -2575,97 +3356,97 @@ msgstr "" "\n" "Andernfalls benutze bitte 'git reset'\n" -#: builtin/commit.c:256 +#: builtin/commit.c:258 msgid "failed to unpack HEAD tree object" msgstr "Fehler beim Entpacken des Baum-Objektes der Zweigspitze (HEAD)." -#: builtin/commit.c:298 +#: builtin/commit.c:300 msgid "unable to create temporary index" msgstr "Konnte temporäre Bereitstellung nicht erstellen." -#: builtin/commit.c:304 +#: builtin/commit.c:306 msgid "interactive add failed" msgstr "interaktives Hinzufügen fehlgeschlagen" -#: builtin/commit.c:337 builtin/commit.c:358 builtin/commit.c:408 +#: builtin/commit.c:339 builtin/commit.c:360 builtin/commit.c:410 msgid "unable to write new_index file" msgstr "Konnte new_index Datei nicht schreiben" -#: builtin/commit.c:389 +#: builtin/commit.c:391 msgid "cannot do a partial commit during a merge." msgstr "" "Kann keine partielle Eintragung durchführen, während eine Zusammenführung im " "Gange ist." -#: builtin/commit.c:391 +#: builtin/commit.c:393 msgid "cannot do a partial commit during a cherry-pick." msgstr "" "Kann keine partielle Eintragung durchführen, während \"cherry-pick\" im " "Gange ist." -#: builtin/commit.c:401 +#: builtin/commit.c:403 msgid "cannot read the index" msgstr "Kann Bereitstellung nicht lesen" -#: builtin/commit.c:421 +#: builtin/commit.c:423 msgid "unable to write temporary index file" msgstr "Konnte temporäre Bereitstellungsdatei nicht schreiben." -#: builtin/commit.c:496 builtin/commit.c:502 +#: builtin/commit.c:511 builtin/commit.c:517 #, c-format msgid "invalid commit: %s" msgstr "Ungültige Version: %s" -#: builtin/commit.c:525 +#: builtin/commit.c:540 msgid "malformed --author parameter" msgstr "Fehlerhafter --author Parameter" -#: builtin/commit.c:585 +#: builtin/commit.c:560 #, c-format msgid "Malformed ident string: '%s'" msgstr "Fehlerhafte Identifikations-String: '%s'" -#: builtin/commit.c:623 builtin/commit.c:656 builtin/commit.c:970 +#: builtin/commit.c:598 builtin/commit.c:631 builtin/commit.c:954 #, c-format msgid "could not lookup commit %s" msgstr "Konnte Version %s nicht nachschlagen" -#: builtin/commit.c:635 builtin/shortlog.c:296 +#: builtin/commit.c:610 builtin/shortlog.c:296 #, c-format msgid "(reading log message from standard input)\n" msgstr "(lese Log-Nachricht von Standard-Eingabe)\n" -#: builtin/commit.c:637 +#: builtin/commit.c:612 msgid "could not read log from standard input" msgstr "Konnte Log nicht von Standard-Eingabe lesen." -#: builtin/commit.c:641 +#: builtin/commit.c:616 #, c-format msgid "could not read log file '%s'" msgstr "Konnte Log-Datei '%s' nicht lesen" -#: builtin/commit.c:647 +#: builtin/commit.c:622 msgid "commit has empty message" msgstr "Version hat eine leere Beschreibung" -#: builtin/commit.c:663 +#: builtin/commit.c:638 msgid "could not read MERGE_MSG" msgstr "Konnte MERGE_MSG nicht lesen" -#: builtin/commit.c:667 +#: builtin/commit.c:642 msgid "could not read SQUASH_MSG" msgstr "Konnte SQUASH_MSG nicht lesen" -#: builtin/commit.c:671 +#: builtin/commit.c:646 #, c-format msgid "could not read '%s'" msgstr "Konnte '%s' nicht lesen" -#: builtin/commit.c:723 +#: builtin/commit.c:707 msgid "could not write commit template" msgstr "Konnte Versionsvorlage nicht schreiben" -#: builtin/commit.c:734 +#: builtin/commit.c:718 #, c-format msgid "" "\n" @@ -2676,11 +3457,11 @@ msgid "" msgstr "" "\n" "Es sieht so aus, als trägst du eine Zusammenführung ein.\n" -"Falls das nicht korrekt ist, entferne bitte die Datei\n" +"Falls das nicht korrekt ist, lösche bitte die Datei\n" "\t%s\n" "und versuche es erneut.\n" -#: builtin/commit.c:739 +#: builtin/commit.c:723 #, c-format msgid "" "\n" @@ -2691,11 +3472,11 @@ msgid "" msgstr "" "\n" "Es sieht so aus, als trägst du ein \"cherry-pick\" ein.\n" -"Falls das nicht korrekt ist, entferne bitte die Datei\n" +"Falls das nicht korrekt ist, lösche bitte die Datei\n" "\t%s\n" "und versuche es erneut.\n" -#: builtin/commit.c:751 +#: builtin/commit.c:735 msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '#' will be ignored, and an empty message aborts the commit.\n" @@ -2704,7 +3485,7 @@ msgstr "" "die mit '#' beginnen, werden ignoriert, und eine leere Versionsbeschreibung\n" "bricht die Eintragung ab.\n" -#: builtin/commit.c:756 +#: builtin/commit.c:740 msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '#' will be kept; you may remove them yourself if you want to.\n" @@ -2715,118 +3496,320 @@ msgstr "" "entfernen.\n" "Eine leere Versionsbeschreibung bricht die Eintragung ab.\n" -#: builtin/commit.c:769 +#: builtin/commit.c:753 #, c-format msgid "%sAuthor: %s" msgstr "%sAutor: %s" -#: builtin/commit.c:776 +#: builtin/commit.c:760 #, c-format msgid "%sCommitter: %s" msgstr "%sEintragender: %s" -#: builtin/commit.c:796 +#: builtin/commit.c:780 msgid "Cannot read index" msgstr "Kann Bereitstellung nicht lesen" -#: builtin/commit.c:833 +#: builtin/commit.c:817 msgid "Error building trees" msgstr "Fehler beim Erzeugen der Zweige" -#: builtin/commit.c:848 builtin/tag.c:361 +#: builtin/commit.c:832 builtin/tag.c:361 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Bitte liefere eine Beschreibung entweder mit der Option -m oder -F.\n" -#: builtin/commit.c:945 +#: builtin/commit.c:929 #, c-format msgid "No existing author found with '%s'" msgstr "Kein existierender Autor mit '%s' gefunden." -#: builtin/commit.c:960 builtin/commit.c:1160 +#: builtin/commit.c:944 builtin/commit.c:1148 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Ungültiger Modus '%s' für unbeobachtete Dateien" -#: builtin/commit.c:1000 +#: builtin/commit.c:984 msgid "Using both --reset-author and --author does not make sense" msgstr "Verwendung von --reset-author und --author macht keinen Sinn." -#: builtin/commit.c:1011 +#: builtin/commit.c:995 msgid "You have nothing to amend." msgstr "Du hast nichts zum nachbessern." -#: builtin/commit.c:1014 +#: builtin/commit.c:998 msgid "You are in the middle of a merge -- cannot amend." msgstr "Eine Zusammenführung ist im Gange -- kann nicht nachbessern." -#: builtin/commit.c:1016 +#: builtin/commit.c:1000 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "\"cherry-pick\" ist im Gange -- kann nicht nachbessern." -#: builtin/commit.c:1019 +#: builtin/commit.c:1003 msgid "Options --squash and --fixup cannot be used together" msgstr "" "Die Optionen --squash und --fixup können nicht gemeinsam benutzt werden." -#: builtin/commit.c:1029 +#: builtin/commit.c:1013 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "Nur eines von -c/-C/-F/--fixup kann benutzt werden." -#: builtin/commit.c:1031 +#: builtin/commit.c:1015 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "Option -m kann nicht mit -c/-C/-F/--fixup kombiniert werden" -#: builtin/commit.c:1039 +#: builtin/commit.c:1023 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "--reset--author kann nur mit -C, -c oder --amend benutzt werden" -#: builtin/commit.c:1056 +#: builtin/commit.c:1040 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" "Nur eines von --include/--only/--all/--interactive/--patch kann benutzt " "werden." -#: builtin/commit.c:1058 +#: builtin/commit.c:1042 msgid "No paths with --include/--only does not make sense." msgstr "--include/--only machen ohne Pfade keinen Sinn." -#: builtin/commit.c:1060 +#: builtin/commit.c:1044 msgid "Clever... amending the last one with dirty index." msgstr "" "Klug... die letzte Version mit einer unsauberen Bereitstellung nachbessern." -#: builtin/commit.c:1062 +#: builtin/commit.c:1046 msgid "Explicit paths specified without -i nor -o; assuming --only paths..." msgstr "" "Explizite Pfade ohne -i oder -o angegeben; unter der Annahme von --only " "Pfaden..." -#: builtin/commit.c:1072 builtin/tag.c:577 +#: builtin/commit.c:1056 builtin/tag.c:577 #, c-format msgid "Invalid cleanup mode %s" msgstr "Ungültiger \"cleanup\" Modus %s" -#: builtin/commit.c:1077 +#: builtin/commit.c:1061 msgid "Paths with -a does not make sense." msgstr "Pfade mit -a machen keinen Sinn." -#: builtin/commit.c:1260 +#: builtin/commit.c:1067 builtin/commit.c:1202 +msgid "--long and -z are incompatible" +msgstr "--long und -z sind inkompatibel" + +#: builtin/commit.c:1162 builtin/commit.c:1398 +msgid "show status concisely" +msgstr "zeigt Status im Kurzformat" + +#: builtin/commit.c:1164 builtin/commit.c:1400 +msgid "show branch information" +msgstr "zeigt Zweiginformationen" + +#: builtin/commit.c:1166 builtin/commit.c:1402 builtin/push.c:389 +msgid "machine-readable output" +msgstr "maschinenlesbare Ausgabe" + +#: builtin/commit.c:1169 builtin/commit.c:1404 +msgid "show status in long format (default)" +msgstr "zeigt Status im Langformat (Standard)" + +#: builtin/commit.c:1172 builtin/commit.c:1407 +msgid "terminate entries with NUL" +msgstr "schließt Einträge mit NUL-Zeichen ab" + +#: builtin/commit.c:1174 builtin/commit.c:1410 builtin/fast-export.c:636 +#: builtin/fast-export.c:639 builtin/tag.c:461 +msgid "mode" +msgstr "Modus" + +#: builtin/commit.c:1175 builtin/commit.c:1410 +msgid "show untracked files, optional modes: all, normal, no. (Default: all)" +msgstr "" +"zeigt nicht beobachtete Dateien, optionale Modi: all, normal, no. (Standard: " +"all)" + +#: builtin/commit.c:1178 +msgid "show ignored files" +msgstr "zeigt ignorierte Dateien" + +#: builtin/commit.c:1179 parse-options.h:151 +msgid "when" +msgstr "wann" + +#: builtin/commit.c:1180 +msgid "" +"ignore changes to submodules, optional when: all, dirty, untracked. " +"(Default: all)" +msgstr "" +"ignoriert Änderungen in Unterprojekten, optional wenn: all, dirty, " +"untracked. (Standard: all)" + +#: builtin/commit.c:1182 +msgid "list untracked files in columns" +msgstr "listet unbeobachtete Dateien in Spalten auf" + +#: builtin/commit.c:1256 msgid "couldn't look up newly created commit" msgstr "Konnte neu erstellte Version nicht nachschlagen." -#: builtin/commit.c:1262 +#: builtin/commit.c:1258 msgid "could not parse newly created commit" msgstr "Konnte neulich erstellte Version nicht analysieren." -#: builtin/commit.c:1303 +#: builtin/commit.c:1299 msgid "detached HEAD" msgstr "losgelöste Zweigspitze (HEAD)" -#: builtin/commit.c:1305 +#: builtin/commit.c:1301 msgid " (root-commit)" msgstr " (Basis-Version)" +#: builtin/commit.c:1368 +msgid "suppress summary after successful commit" +msgstr "unterdrückt Zusammenfassung nach erfolgreicher Eintragung" + +#: builtin/commit.c:1369 +msgid "show diff in commit message template" +msgstr "zeigt Unterschiede in Versionsbeschreibungsvorlage an" + +#: builtin/commit.c:1371 +msgid "Commit message options" +msgstr "Optionen für Versionsbeschreibung" + +#: builtin/commit.c:1372 builtin/tag.c:459 +msgid "read message from file" +msgstr "liest Beschreibung von Datei" + +#: builtin/commit.c:1373 +msgid "author" +msgstr "Autor" + +#: builtin/commit.c:1373 +msgid "override author for commit" +msgstr "überschreibt Autor von Version" + +#: builtin/commit.c:1374 builtin/gc.c:178 +msgid "date" +msgstr "Datum" + +#: builtin/commit.c:1374 +msgid "override date for commit" +msgstr "überschreibt Datum von Version" + +#: builtin/commit.c:1375 builtin/merge.c:206 builtin/notes.c:537 +#: builtin/notes.c:694 builtin/tag.c:457 +msgid "message" +msgstr "Beschreibung" + +#: builtin/commit.c:1375 +msgid "commit message" +msgstr "Versionsbeschreibung" + +#: builtin/commit.c:1376 +msgid "reuse and edit message from specified commit" +msgstr "verwendet wieder und editiert Beschreibung von der angegebenen Version" + +#: builtin/commit.c:1377 +msgid "reuse message from specified commit" +msgstr "verwendet Beschreibung der angegebenen Version wieder" + +#: builtin/commit.c:1378 +msgid "use autosquash formatted message to fixup specified commit" +msgstr "" +"benutzt eine automatisch zusammengesetzte Beschreibung zum Nachbessern der " +"angegebenen Version" + +#: builtin/commit.c:1379 +msgid "use autosquash formatted message to squash specified commit" +msgstr "" +"benutzt eine automatisch zusammengesetzte Beschreibung zum Zusammenführen " +"der angegebenen Version" + +#: builtin/commit.c:1380 +msgid "the commit is authored by me now (used with -C/-c/--amend)" +msgstr "Setze mich als Autor der Version (benutzt mit -C/-c/--amend)" + +#: builtin/commit.c:1381 builtin/log.c:1073 builtin/revert.c:109 +msgid "add Signed-off-by:" +msgstr "fügt 'Signed-off-by:'-Zeile hinzu" + +#: builtin/commit.c:1382 +msgid "use specified template file" +msgstr "benutzt angegebene Vorlagendatei" + +#: builtin/commit.c:1383 +msgid "force edit of commit" +msgstr "erzwingt Bearbeitung der Version" + +#: builtin/commit.c:1384 +msgid "default" +msgstr "Standard" + +#: builtin/commit.c:1384 builtin/tag.c:462 +msgid "how to strip spaces and #comments from message" +msgstr "" +"wie Leerzeichen und #Kommentare von der Beschreibung getrennt werden sollen" + +#: builtin/commit.c:1385 +msgid "include status in commit message template" +msgstr "fügt Status in die Versionsbeschreibungsvorlage ein" + +#: builtin/commit.c:1386 builtin/merge.c:213 builtin/tag.c:463 +msgid "key id" +msgstr "Schlüssel-ID" + +#: builtin/commit.c:1387 builtin/merge.c:214 +msgid "GPG sign commit" +msgstr "signiert Version mit GPG" + +#. end commit message options +#: builtin/commit.c:1390 +msgid "Commit contents options" +msgstr "Optionen für Versionsinhalt" + +#: builtin/commit.c:1391 +msgid "commit all changed files" +msgstr "trägt alle geänderten Dateien ein" + +#: builtin/commit.c:1392 +msgid "add specified files to index for commit" +msgstr "trägt die angegebenen Dateien zusätzlich zur Bereitstellung ein" + +#: builtin/commit.c:1393 +msgid "interactively add files" +msgstr "interaktives Hinzufügen von Dateien" + +#: builtin/commit.c:1394 +msgid "interactively add changes" +msgstr "interaktives Hinzufügen von Änderungen" + +#: builtin/commit.c:1395 +msgid "commit only specified files" +msgstr "trägt nur die angegebenen Dateien ein" + +#: builtin/commit.c:1396 +msgid "bypass pre-commit hook" +msgstr "umgeht \"pre-commit hook\"" + +#: builtin/commit.c:1397 +msgid "show what would be committed" +msgstr "zeigt an, was eingetragen werden würde" + +#: builtin/commit.c:1408 +msgid "amend previous commit" +msgstr "ändert vorherige Version" + +#: builtin/commit.c:1409 +msgid "bypass post-rewrite hook" +msgstr "umgeht \"post-rewrite hook\"" + +#: builtin/commit.c:1414 +msgid "ok to record an empty change" +msgstr "erlaubt Aufzeichnung einer leeren Änderung" + +#: builtin/commit.c:1417 +msgid "ok to record a change with an empty message" +msgstr "erlaubt Aufzeichnung einer Änderung mit einer leeren Beschreibung" + #: builtin/commit.c:1449 msgid "could not parse HEAD commit" msgstr "Konnte Version der Zweigspitze (HEAD) nicht analysieren." @@ -2860,7 +3843,7 @@ msgstr "Eintragung abgebrochen; du hast die Beschreibung nicht editiert.\n" msgid "Aborting commit due to empty commit message.\n" msgstr "Eintragung aufgrund leerer Versionsbeschreibung abgebrochen.\n" -#: builtin/commit.c:1554 builtin/merge.c:935 builtin/merge.c:960 +#: builtin/commit.c:1554 builtin/merge.c:832 builtin/merge.c:857 msgid "failed to write commit object" msgstr "Fehler beim Schreiben des Versionsobjektes." @@ -2883,6 +3866,134 @@ msgstr "" "voll und Dein Kontingent nicht aufgebraucht ist und führe\n" "anschließend \"git reset HEAD\" zu Wiederherstellung aus." +#: builtin/config.c:7 +msgid "git config [options]" +msgstr "git config [Optionen]" + +#: builtin/config.c:51 +msgid "Config file location" +msgstr "Ort der Konfigurationsdatei" + +#: builtin/config.c:52 +msgid "use global config file" +msgstr "benutzt globale Konfigurationsdatei" + +#: builtin/config.c:53 +msgid "use system config file" +msgstr "benutzt systemweite Konfigurationsdatei" + +#: builtin/config.c:54 +msgid "use repository config file" +msgstr "benutzt Konfigurationsdatei des Projektarchivs" + +#: builtin/config.c:55 +msgid "use given config file" +msgstr "benutzt die angegebene Konfigurationsdatei" + +#: builtin/config.c:56 +msgid "Action" +msgstr "Aktion" + +#: builtin/config.c:57 +msgid "get value: name [value-regex]" +msgstr "gibt Wert zurück: Name [Wert-regex]" + +#: builtin/config.c:58 +msgid "get all values: key [value-regex]" +msgstr "gibt alle Werte zurück: Schlüssel [Wert-regex]" + +#: builtin/config.c:59 +msgid "get values for regexp: name-regex [value-regex]" +msgstr "gibt Werte für den regulären Ausdruck zurück: Name-regex [Wert-regex]" + +#: builtin/config.c:60 +msgid "replace all matching variables: name value [value_regex]" +msgstr "ersetzt alle passenden Variablen: Name Wert [Wert-regex] " + +#: builtin/config.c:61 +msgid "add a new variable: name value" +msgstr "fügt neue Variable hinzu: Name Wert" + +#: builtin/config.c:62 +msgid "remove a variable: name [value-regex]" +msgstr "entfernt eine Variable: Name [Wert-regex]" + +#: builtin/config.c:63 +msgid "remove all matches: name [value-regex]" +msgstr "entfernt alle Ãœbereinstimmungen: Name [Wert-regex]" + +#: builtin/config.c:64 +msgid "rename section: old-name new-name" +msgstr "benennt eine Sektion um: alter-Name neuer-Name" + +#: builtin/config.c:65 +msgid "remove a section: name" +msgstr "entfernt eine Sektion: Name" + +#: builtin/config.c:66 +msgid "list all" +msgstr "listet alles auf" + +#: builtin/config.c:67 +msgid "open an editor" +msgstr "öffnet einen Editor" + +#: builtin/config.c:68 builtin/config.c:69 +msgid "slot" +msgstr "Slot" + +#: builtin/config.c:68 +msgid "find the color configured: [default]" +msgstr "findet die konfigurierte Farbe: [Standard]" + +#: builtin/config.c:69 +msgid "find the color setting: [stdout-is-tty]" +msgstr "findet die Farbeinstellung: [Standard-Ausgabe-ist-Terminal]" + +#: builtin/config.c:70 +msgid "Type" +msgstr "Typ" + +#: builtin/config.c:71 +msgid "value is \"true\" or \"false\"" +msgstr "Wert ist \"true\" oder \"false\"" + +#: builtin/config.c:72 +msgid "value is decimal number" +msgstr "Wert ist eine Dezimalzahl" + +#: builtin/config.c:73 +msgid "value is --bool or --int" +msgstr "Wert ist --bool oder --int" + +#: builtin/config.c:74 +msgid "value is a path (file or directory name)" +msgstr "Wert ist ein Pfad (Datei oder Verzeichnisname)" + +#: builtin/config.c:75 +msgid "Other" +msgstr "Sonstiges" + +#: builtin/config.c:76 +msgid "terminate values with NUL byte" +msgstr "schließt Werte mit NUL-Byte ab" + +#: builtin/config.c:77 +msgid "respect include directives on lookup" +msgstr "beachtet \"include\"-Direktiven beim Nachschlagen" + +#: builtin/count-objects.c:69 +msgid "git count-objects [-v]" +msgstr "git count-objects [-v]" + +#: builtin/describe.c:15 +msgid "git describe [options] <committish>*" +msgstr "git describe [Optionen] <committish>*" + +#: builtin/describe.c:16 +msgid "git describe [options] --dirty" +msgstr "git describe [Optionen] --dirty" + #: builtin/describe.c:234 #, c-format msgid "annotated tag %s not available" @@ -2955,6 +4066,51 @@ msgstr "" "mehr als %i Markierungen gefunden; Führe die ersten %i auf\n" "Suche bei %s aufgegeben\n" +#: builtin/describe.c:403 +msgid "find the tag that comes after the commit" +msgstr "findet die Markierung, die nach der Version kommt" + +#: builtin/describe.c:404 +msgid "debug search strategy on stderr" +msgstr "protokolliert die Suchstrategie in der Standard-Fehlerausgabe" + +#: builtin/describe.c:405 +msgid "use any ref in .git/refs" +msgstr "benutzt jede Referenz in .git/refs" + +#: builtin/describe.c:406 +msgid "use any tag in .git/refs/tags" +msgstr "benutzt alle Markierungen in .git/refs/tags" + +#: builtin/describe.c:407 +msgid "always use long format" +msgstr "benutzt immer langes Format" + +#: builtin/describe.c:410 +msgid "only output exact matches" +msgstr "gibt nur exakte Ãœbereinstimmungen aus" + +#: builtin/describe.c:412 +msgid "consider <n> most recent tags (default: 10)" +msgstr "betrachtet die jüngsten <n> Markierungen (Standard: 10)" + +#: builtin/describe.c:414 +msgid "only consider tags matching <pattern>" +msgstr "betrachtet nur Markierungen die <Muster> entsprechen" + +#: builtin/describe.c:416 builtin/name-rev.c:238 +msgid "show abbreviated commit object as fallback" +msgstr "zeigt gekürztes Versionsobjekt, wenn sonst nichts zutrifft" + +#: builtin/describe.c:417 +msgid "mark" +msgstr "Kennzeichen" + +#: builtin/describe.c:418 +msgid "append <mark> on dirty working tree (default: \"-dirty\")" +msgstr "" +"fügt <Kennzeichen> bei geändertem Arbeitsbaum hinzu (Standard: \"-dirty\")" + #: builtin/describe.c:436 msgid "--long is incompatible with --abbrev=0" msgstr "--long ist inkompatibel mit --abbrev=0" @@ -2972,40 +4128,162 @@ msgstr "--dirty ist inkompatibel mit Versionen" msgid "'%s': not a regular file or symlink" msgstr "'%s': keine reguläre Datei oder symbolischer Link" -#: builtin/diff.c:224 +#: builtin/diff.c:228 #, c-format msgid "invalid option: %s" msgstr "Ungültige Option: %s" -#: builtin/diff.c:301 +#: builtin/diff.c:305 msgid "Not a git repository" msgstr "Kein Git-Projektarchiv" -#: builtin/diff.c:344 +#: builtin/diff.c:348 #, c-format msgid "invalid object '%s' given." msgstr "Objekt '%s' ist ungültig." -#: builtin/diff.c:349 +#: builtin/diff.c:353 #, c-format msgid "more than %d trees given: '%s'" msgstr "Mehr als %d Zweige angegeben: '%s'" -#: builtin/diff.c:359 +#: builtin/diff.c:363 #, c-format msgid "more than two blobs given: '%s'" msgstr "Mehr als zwei Blobs angegeben: '%s'" -#: builtin/diff.c:367 +#: builtin/diff.c:371 #, c-format msgid "unhandled object '%s' given." msgstr "unbehandeltes Objekt '%s' angegeben" -#: builtin/fetch.c:200 +#: builtin/fast-export.c:22 +msgid "git fast-export [rev-list-opts]" +msgstr "git fast-export [rev-list-opts]" + +#: builtin/fast-export.c:635 +msgid "show progress after <n> objects" +msgstr "zeigt Fortschritt nach <n> Objekten an" + +#: builtin/fast-export.c:637 +msgid "select handling of signed tags" +msgstr "wählt Behandlung von signierten Markierungen" + +#: builtin/fast-export.c:640 +msgid "select handling of tags that tag filtered objects" +msgstr "wählt Behandlung von Markierungen, die gefilterte Objekte markieren" + +#: builtin/fast-export.c:643 +msgid "Dump marks to this file" +msgstr "Schreibt Kennzeichen in diese Datei" + +#: builtin/fast-export.c:645 +msgid "Import marks from this file" +msgstr "Importiert Kennzeichen von dieser Datei" + +#: builtin/fast-export.c:647 +msgid "Fake a tagger when tags lack one" +msgstr "" +"erzeugt künstlich einen Markierungsersteller, wenn die Markierung keinen hat" + +#: builtin/fast-export.c:649 +msgid "Output full tree for each commit" +msgstr "gibt für jede Version den gesamten Baum aus" + +#: builtin/fast-export.c:651 +msgid "Use the done feature to terminate the stream" +msgstr "Benutzt die \"done\"-Funktion um den Strom abzuschließen" + +#: builtin/fast-export.c:652 +msgid "Skip output of blob data" +msgstr "Ãœberspringt Ausgabe von Blob-Daten" + +#: builtin/fetch.c:20 +msgid "git fetch [<options>] [<repository> [<refspec>...]]" +msgstr "git fetch [<Optionen>] [<Projektarchiv> [<Referenzspezifikation>...]]" + +#: builtin/fetch.c:21 +msgid "git fetch [<options>] <group>" +msgstr "git fetch [<Optionen>] <Gruppe>" + +#: builtin/fetch.c:22 +msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]" +msgstr "git fetch --multiple [<Optionen>] [(<Projektarchiv> | <Gruppe>)...]" + +#: builtin/fetch.c:23 +msgid "git fetch --all [<options>]" +msgstr "git fetch --all [<Optionen>]" + +#: builtin/fetch.c:60 +msgid "fetch from all remotes" +msgstr "fordert von allen externen Projektarchiven an" + +#: builtin/fetch.c:62 +msgid "append to .git/FETCH_HEAD instead of overwriting" +msgstr "hängt an .git/FETCH_HEAD an, anstatt zu überschreiben" + +#: builtin/fetch.c:64 +msgid "path to upload pack on remote end" +msgstr "Pfad des Programms zum Hochladen von Paketen auf der Gegenseite" + +#: builtin/fetch.c:65 +msgid "force overwrite of local branch" +msgstr "erzwingt das Ãœberschreiben von lokalen Zweigen" + +#: builtin/fetch.c:67 +msgid "fetch from multiple remotes" +msgstr "fordert von mehreren externen Projektarchiven an" + +#: builtin/fetch.c:69 +msgid "fetch all tags and associated objects" +msgstr "fordert alle Markierungen und verbundene Objekte an" + +#: builtin/fetch.c:71 +msgid "do not fetch all tags (--no-tags)" +msgstr "fordert nicht alle Markierungen an (--no-tags)" + +#: builtin/fetch.c:73 +msgid "prune remote-tracking branches no longer on remote" +msgstr "" +"entfernt externe Ãœbernahmezweige, die sich nicht mehr im Fernarchiv befinden" + +#: builtin/fetch.c:74 +msgid "on-demand" +msgstr "bei-Bedarf" + +#: builtin/fetch.c:75 +msgid "control recursive fetching of submodules" +msgstr "kontrolliert rekursive Anforderungen von Unterprojekten" + +#: builtin/fetch.c:79 +msgid "keep downloaded pack" +msgstr "behält heruntergeladenes Paket" + +#: builtin/fetch.c:81 +msgid "allow updating of HEAD ref" +msgstr "erlaubt Aktualisierung der \"HEAD\"-Referenz" + +#: builtin/fetch.c:84 +msgid "deepen history of shallow clone" +msgstr "vertieft die Historie eines flachen Klon" + +#: builtin/fetch.c:85 builtin/log.c:1088 +msgid "dir" +msgstr "Verzeichnis" + +#: builtin/fetch.c:86 +msgid "prepend this to submodule path output" +msgstr "stellt dies an die Ausgabe der Unterprojekt-Pfade voran" + +#: builtin/fetch.c:89 +msgid "default mode for recursion" +msgstr "Standard-Modus für Rekursion" + +#: builtin/fetch.c:201 msgid "Couldn't find remote ref HEAD" msgstr "Konnte externe Referenz der Zweigspitze (HEAD) nicht finden." -#: builtin/fetch.c:253 +#: builtin/fetch.c:254 #, c-format msgid "object %s not found" msgstr "Objekt %s nicht gefunden" @@ -3077,7 +4355,7 @@ msgid "" " 'git remote prune %s' to remove any old, conflicting branches" msgstr "" "Einige lokale Referenzen konnten nicht aktualisiert werden; versuche\n" -"'git remote prune %s' um jeden älteren, widersprüchlichen Zweig zu entfernen." +"'git remote prune %s' um jeden älteren, widersprüchlichen Zweig zu löschen." #: builtin/fetch.c:549 #, c-format @@ -3119,17 +4397,17 @@ msgstr "Option \"%s\" Wert \"%s\" ist nicht gültig für %s" msgid "Option \"%s\" is ignored for %s\n" msgstr "Option \"%s\" wird ignoriert für %s\n" -#: builtin/fetch.c:888 +#: builtin/fetch.c:891 #, c-format msgid "Fetching %s\n" msgstr "Fordere an von %s\n" -#: builtin/fetch.c:890 builtin/remote.c:100 +#: builtin/fetch.c:893 builtin/remote.c:100 #, c-format msgid "Could not fetch %s" msgstr "Konnte nicht von %s anfordern" -#: builtin/fetch.c:907 +#: builtin/fetch.c:912 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." @@ -3138,29 +4416,148 @@ msgstr "" "oder den Namen des externen Archivs an, von welchem neue\n" "Versionen angefordert werden sollen." -#: builtin/fetch.c:927 +#: builtin/fetch.c:932 msgid "You need to specify a tag name." msgstr "Du musst den Namen der Markierung angeben." -#: builtin/fetch.c:979 +#: builtin/fetch.c:984 msgid "fetch --all does not take a repository argument" msgstr "fetch --all akzeptiert kein Projektarchiv als Argument" -#: builtin/fetch.c:981 +#: builtin/fetch.c:986 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all macht keinen Sinn mit Referenzspezifikationen" -#: builtin/fetch.c:992 +#: builtin/fetch.c:997 #, c-format msgid "No such remote or remote group: %s" msgstr "Kein externes Archiv (einzeln oder Gruppe): %s" -#: builtin/fetch.c:1000 +#: builtin/fetch.c:1005 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "" "Abholen einer Gruppe mit Angabe von Referenzspezifikationen macht keinen " "Sinn." +#: builtin/fmt-merge-msg.c:13 +msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" +msgstr "" +"git fmt-merge-msg [-m <Beschreibung>] [--log[=<n>]|--no-log] [--file <Datei>]" + +#: builtin/fmt-merge-msg.c:653 builtin/fmt-merge-msg.c:656 builtin/grep.c:701 +#: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:175 +#: builtin/tag.c:448 parse-options.h:133 parse-options.h:235 +msgid "n" +msgstr "Anzahl" + +#: builtin/fmt-merge-msg.c:654 +msgid "populate log with at most <n> entries from shortlog" +msgstr "fügt Historie mit höchstens <n> Einträgen von \"shortlog\" hinzu" + +#: builtin/fmt-merge-msg.c:657 +msgid "alias for --log (deprecated)" +msgstr "Alias für --log (veraltet)" + +#: builtin/fmt-merge-msg.c:660 +msgid "text" +msgstr "Text" + +#: builtin/fmt-merge-msg.c:661 +msgid "use <text> as start of message" +msgstr "benutzt <Text> als Beschreibungsanfang" + +#: builtin/fmt-merge-msg.c:662 +msgid "file to read from" +msgstr "Datei zum Einlesen" + +#: builtin/for-each-ref.c:979 +msgid "git for-each-ref [options] [<pattern>]" +msgstr "git for-each-ref [Optionen] [<Muster>]" + +#: builtin/for-each-ref.c:994 +msgid "quote placeholders suitably for shells" +msgstr "formatiert Platzhalter als Shell-String" + +#: builtin/for-each-ref.c:996 +msgid "quote placeholders suitably for perl" +msgstr "formatiert Platzhalter als Perl-String" + +#: builtin/for-each-ref.c:998 +msgid "quote placeholders suitably for python" +msgstr "formatiert Platzhalter als Python-String" + +#: builtin/for-each-ref.c:1000 +msgid "quote placeholders suitably for tcl" +msgstr "formatiert Platzhalter als TCL-String" + +#: builtin/for-each-ref.c:1003 +msgid "show only <n> matched refs" +msgstr "zeigt nur <n> passende Referenzen" + +#: builtin/for-each-ref.c:1004 +msgid "format" +msgstr "Format" + +#: builtin/for-each-ref.c:1004 +msgid "format to use for the output" +msgstr "für die Ausgabe zu verwendendes Format" + +#: builtin/for-each-ref.c:1005 +msgid "key" +msgstr "Schüssel" + +#: builtin/for-each-ref.c:1006 +msgid "field name to sort on" +msgstr "sortiere nach diesem Feld" + +#: builtin/fsck.c:608 +msgid "git fsck [options] [<object>...]" +msgstr "git fsck [Optionen] [<Objekt>...]" + +#: builtin/fsck.c:614 +msgid "show unreachable objects" +msgstr "zeigt unerreichbare Objekte" + +#: builtin/fsck.c:615 +msgid "show dangling objects" +msgstr "zeigt unreferenzierte Objekte" + +#: builtin/fsck.c:616 +msgid "report tags" +msgstr "meldet Markierungen" + +#: builtin/fsck.c:617 +msgid "report root nodes" +msgstr "meldet Hauptwurzeln" + +#: builtin/fsck.c:618 +msgid "make index objects head nodes" +msgstr "erzeugt Kopfknoten der Bereitstellungsobjekte" + +#: builtin/fsck.c:619 +msgid "make reflogs head nodes (default)" +msgstr "erzeugt Kopfknoten des Referenzprotokolls (Standard)" + +#: builtin/fsck.c:620 +msgid "also consider packs and alternate objects" +msgstr "" + +#: builtin/fsck.c:621 +msgid "enable more strict checking" +msgstr "aktiviert genauere Prüfung" + +#: builtin/fsck.c:623 +msgid "write dangling objects in .git/lost-found" +msgstr "schreibt unreferenzierte Objekte nach .git/lost-found" + +#: builtin/fsck.c:624 builtin/prune.c:134 +msgid "show progress" +msgstr "zeigt Fortschrittsanzeige" + +#: builtin/gc.c:22 +msgid "git gc [options]" +msgstr "git gc [Optionen]" + #: builtin/gc.c:63 #, c-format msgid "Invalid %s: '%s'" @@ -3171,14 +4568,19 @@ msgstr "Ungültiger %s: '%s'" msgid "insanely long object directory %.*s" msgstr "zu langes Objekt-Verzeichnis %.*s" -#: builtin/gc.c:221 -#, c-format -msgid "Auto packing the repository for optimum performance.\n" -msgstr "" -"Die Datenbank des Projektarchivs wird für eine optimale Performance " -"komprimiert.\n" +#: builtin/gc.c:179 +msgid "prune unreferenced objects" +msgstr "entfernt unreferenzierte Objekte" + +#: builtin/gc.c:181 +msgid "be more thorough (increased runtime)" +msgstr "mehr Gründlichkeit (erhöht Laufzeit)" -#: builtin/gc.c:224 +#: builtin/gc.c:182 +msgid "enable auto-gc mode" +msgstr "aktiviert \"auto-gc\" Modus" + +#: builtin/gc.c:222 #, c-format msgid "" "Auto packing the repository for optimum performance. You may also\n" @@ -3188,73 +4590,304 @@ msgstr "" "komprimiert. Du kannst auch \"git gc\" manuell ausführen.\n" "Siehe \"git help gc\" für weitere Informationen.\n" -#: builtin/gc.c:251 +#: builtin/gc.c:249 msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" "Es gibt zu viele unerreichbare lose Objekte; führe 'git prune' aus, um diese " -"zu entfernen." +"zu löschen." + +#: builtin/grep.c:22 +msgid "git grep [options] [-e] <pattern> [<rev>...] [[--] <path>...]" +msgstr "git grep [Optionen] [-e] <Muster> [<Version>...] [[--] <Pfad>...]" -#: builtin/grep.c:216 +#: builtin/grep.c:217 #, c-format msgid "grep: failed to create thread: %s" msgstr "grep: Fehler beim Erzeugen eines Thread: %s" -#: builtin/grep.c:454 +#: builtin/grep.c:365 #, c-format msgid "Failed to chdir: %s" msgstr "Fehler beim Verzeichniswechsel: %s" -#: builtin/grep.c:530 builtin/grep.c:564 +#: builtin/grep.c:443 builtin/grep.c:478 #, c-format msgid "unable to read tree (%s)" msgstr "konnte Zweig (%s) nicht lesen" -#: builtin/grep.c:578 +#: builtin/grep.c:493 #, c-format msgid "unable to grep from object of type %s" msgstr "kann \"grep\" nicht mit Objekten des Typs %s durchführen" -#: builtin/grep.c:636 +#: builtin/grep.c:551 #, c-format msgid "switch `%c' expects a numerical value" msgstr "Schalter '%c' erwartet einen numerischen Wert" -#: builtin/grep.c:653 +#: builtin/grep.c:568 #, c-format msgid "cannot open '%s'" msgstr "kann '%s' nicht öffnen" -#: builtin/grep.c:917 +#: builtin/grep.c:643 +msgid "search in index instead of in the work tree" +msgstr "sucht in der Bereitstellung anstatt im Arbeitsbaum" + +#: builtin/grep.c:645 +msgid "find in contents not managed by git" +msgstr "findet auch in Inhalten, die nicht von Git verwaltet werden" + +#: builtin/grep.c:647 +msgid "search in both tracked and untracked files" +msgstr "sucht in beobachteten und unbeobachteten Dateien" + +#: builtin/grep.c:649 +msgid "search also in ignored files" +msgstr "sucht auch in ignorierten Dateien" + +#: builtin/grep.c:652 +msgid "show non-matching lines" +msgstr "zeigt Zeilen ohne Ãœbereinstimmungen" + +#: builtin/grep.c:654 +msgid "case insensitive matching" +msgstr "findet Ãœbereinstimmungen unabhängig von Groß- und Kleinschreibung" + +#: builtin/grep.c:656 +msgid "match patterns only at word boundaries" +msgstr "sucht nur ganze Wörter" + +#: builtin/grep.c:658 +msgid "process binary files as text" +msgstr "verarbeitet binäre Dateien als Text" + +#: builtin/grep.c:660 +msgid "don't match patterns in binary files" +msgstr "findet keine Muster in Binärdateien" + +#: builtin/grep.c:663 +msgid "descend at most <depth> levels" +msgstr "durchläuft höchstens <Tiefe> Ebenen" + +#: builtin/grep.c:667 +msgid "use extended POSIX regular expressions" +msgstr "benutzt erweiterte reguläre Ausdrücke aus POSIX" + +#: builtin/grep.c:670 +msgid "use basic POSIX regular expressions (default)" +msgstr "benutzt grundlegende reguläre Ausdrücke aus POSIX (Standard)" + +#: builtin/grep.c:673 +msgid "interpret patterns as fixed strings" +msgstr "interpretiert Muster als feste Zeichenketten" + +#: builtin/grep.c:676 +msgid "use Perl-compatible regular expressions" +msgstr "benutzt Perl-kompatible reguläre Ausdrücke" + +#: builtin/grep.c:679 +msgid "show line numbers" +msgstr "zeigt Zeilennummern" + +#: builtin/grep.c:680 +msgid "don't show filenames" +msgstr "zeigt keine Dateinamen" + +#: builtin/grep.c:681 +msgid "show filenames" +msgstr "zeigt Dateinamen" + +#: builtin/grep.c:683 +msgid "show filenames relative to top directory" +msgstr "zeigt Dateinamen relativ zum Projektverzeichnis" + +#: builtin/grep.c:685 +msgid "show only filenames instead of matching lines" +msgstr "zeigt nur Dateinamen anstatt übereinstimmende Zeilen" + +#: builtin/grep.c:687 +msgid "synonym for --files-with-matches" +msgstr "Synonym für --files-with-matches" + +#: builtin/grep.c:690 +msgid "show only the names of files without match" +msgstr "zeigt nur die Dateinamen ohne Ãœbereinstimmungen" + +#: builtin/grep.c:692 +msgid "print NUL after filenames" +msgstr "gibt NUL-Zeichen nach Dateinamen aus" + +#: builtin/grep.c:694 +msgid "show the number of matches instead of matching lines" +msgstr "zeigt, anstatt der Zeilen, die Anzahl der übereinstimmenden Zeilen" + +#: builtin/grep.c:695 +msgid "highlight matches" +msgstr "hebt Ãœbereinstimmungen hervor" + +#: builtin/grep.c:697 +msgid "print empty line between matches from different files" +msgstr "" +"gibt eine Leerzeile zwischen Ãœbereinstimmungen in verschiedenen Dateien aus" + +#: builtin/grep.c:699 +msgid "show filename only once above matches from same file" +msgstr "" +"zeigt den Dateinamen nur einmal oberhalb der Ãœbereinstimmungen aus dieser " +"Datei an" + +#: builtin/grep.c:702 +msgid "show <n> context lines before and after matches" +msgstr "zeigt <n> Zeilen vor und nach den Ãœbereinstimmungen an" + +#: builtin/grep.c:705 +msgid "show <n> context lines before matches" +msgstr "zeigt <n> Zeilen vor den Ãœbereinstimmungen an" + +#: builtin/grep.c:707 +msgid "show <n> context lines after matches" +msgstr "zeigt <n> Zeilen nach den Ãœbereinstimmungen an" + +#: builtin/grep.c:708 +msgid "shortcut for -C NUM" +msgstr "Kurzform für -C NUM" + +#: builtin/grep.c:711 +msgid "show a line with the function name before matches" +msgstr "zeigt eine Zeile mit dem Funktionsnamen vor Ãœbereinstimmungen an" + +#: builtin/grep.c:713 +msgid "show the surrounding function" +msgstr "zeigt die umgebende Funktion an" + +#: builtin/grep.c:716 +msgid "read patterns from file" +msgstr "liest Muster von einer Datei" + +#: builtin/grep.c:718 +msgid "match <pattern>" +msgstr "findet <Muster>" + +#: builtin/grep.c:720 +msgid "combine patterns specified with -e" +msgstr "kombiniert Muster, die mit -e angegeben wurden" + +#: builtin/grep.c:732 +msgid "indicate hit with exit status without output" +msgstr "zeigt Ãœbereinstimmungen nur durch Beendigungsstatus an" + +#: builtin/grep.c:734 +msgid "show only matches from files that match all patterns" +msgstr "zeigt nur Ãœbereinstimmungen von Dateien, die allen Mustern entsprechen" + +#: builtin/grep.c:736 +msgid "show parse tree for grep expression" +msgstr "zeigt geparsten Baum für \"grep\"-Ausdruck" + +#: builtin/grep.c:740 +msgid "pager" +msgstr "Anzeigeprogramm" + +#: builtin/grep.c:740 +msgid "show matching files in the pager" +msgstr "zeigt Dateien mit Ãœbereinstimmungen im Anzeigeprogramm" + +#: builtin/grep.c:743 +msgid "allow calling of grep(1) (ignored by this build)" +msgstr "erlaubt den Aufruf von grep(1) (von dieser Programmversion ignoriert)" + +#: builtin/grep.c:744 builtin/show-ref.c:184 +msgid "show usage" +msgstr "zeigt Verwendung" + +#: builtin/grep.c:811 msgid "no pattern given." msgstr "keine Muster angegeben" -#: builtin/grep.c:931 +#: builtin/grep.c:825 #, c-format msgid "bad object %s" msgstr "ungültiges Objekt %s" -#: builtin/grep.c:972 +#: builtin/grep.c:866 msgid "--open-files-in-pager only works on the worktree" msgstr "--open-files-in-pager arbeitet nur innerhalb des Arbeitsbaums" -#: builtin/grep.c:995 +#: builtin/grep.c:889 msgid "--cached or --untracked cannot be used with --no-index." msgstr "--cached oder --untracked kann nicht mit --no-index benutzt werden" -#: builtin/grep.c:1000 +#: builtin/grep.c:894 msgid "--no-index or --untracked cannot be used with revs." msgstr "--no-index oder --untracked kann nicht mit Versionen benutzt werden" -#: builtin/grep.c:1003 +#: builtin/grep.c:897 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "" "--[no-]exlude-standard kann nicht mit beobachteten Inhalten benutzt werden" -#: builtin/grep.c:1011 +#: builtin/grep.c:905 msgid "both --cached and trees are given." msgstr "sowohl --cached als auch Zweige gegeben" +#: builtin/hash-object.c:60 +msgid "" +"git hash-object [-t <type>] [-w] [--path=<file>|--no-filters] [--stdin] [--] " +"<file>..." +msgstr "" +"git hash-object [-t <Art>] [-w] [--path=<Datei>|--no-filters] [--stdin] [--] " +"<Datei>..." + +#: builtin/hash-object.c:61 +msgid "git hash-object --stdin-paths < <list-of-paths>" +msgstr "git hash-object --stdin-paths < <Liste-von-Pfaden>" + +#: builtin/hash-object.c:72 +msgid "type" +msgstr "Art" + +#: builtin/hash-object.c:72 +msgid "object type" +msgstr "Art des Objektes" + +#: builtin/hash-object.c:73 +msgid "write the object into the object database" +msgstr "schreibt das Objekt in die Objektdatenbank" + +#: builtin/hash-object.c:74 +msgid "read the object from stdin" +msgstr "liest das Objekt von der Standard-Eingabe" + +#: builtin/hash-object.c:76 +msgid "store file as is without filters" +msgstr "speichert Datei wie sie ist, ohne Filter" + +#: builtin/hash-object.c:77 +msgid "process file as it were from this path" +msgstr "verarbeitet Datei, als ob sie von diesem Pfad wäre" + +#: builtin/help.c:43 +msgid "print all available commands" +msgstr "Anzeige aller vorhandenen Kommandos" + +#: builtin/help.c:44 +msgid "show man page" +msgstr "zeigt Handbuch" + +#: builtin/help.c:45 +msgid "show manual in web browser" +msgstr "zeigt Handbuch in einem Webbrowser" + +#: builtin/help.c:47 +msgid "show info page" +msgstr "zeigt Info-Seite" + +#: builtin/help.c:53 +msgid "git help [--all] [--man|--web|--info] [command]" +msgstr "git help [--all] [--man|--web|--info] [Kommando]" + #: builtin/help.c:65 #, c-format msgid "unrecognized help format '%s'" @@ -3369,6 +5002,11 @@ msgstr "Kann Paketdatei '%s' nicht öffnen" msgid "pack signature mismatch" msgstr "Paketsignatur stimmt nicht überein" +#: builtin/index-pack.c:294 +#, c-format +msgid "pack version %<PRIu32> unsupported" +msgstr "Paketversion %<PRIu32> nicht unterstützt" + #: builtin/index-pack.c:312 #, c-format msgid "pack has bad object at offset %lu: %s" @@ -3476,93 +5114,123 @@ msgstr "Fehler beim Ausführen von \"parse_pack_objects()\"" msgid "Resolving deltas" msgstr "Löse Unterschiede auf" -#: builtin/index-pack.c:1105 +#: builtin/index-pack.c:1064 +#, c-format +msgid "unable to create thread: %s" +msgstr "kann Thread nicht erzeugen: %s" + +#: builtin/index-pack.c:1106 msgid "confusion beyond insanity" msgstr "Fehler beim Auflösen der Unterschiede" -#: builtin/index-pack.c:1124 +#: builtin/index-pack.c:1112 +#, c-format +msgid "completed with %d local objects" +msgstr "vervollständigt mit %d lokalen Objekten" + +#: builtin/index-pack.c:1121 +#, c-format +msgid "Unexpected tail checksum for %s (disk corruption?)" +msgstr "Unerwartete Prüfsumme für %s (Festplattenfehler?)" + +#: builtin/index-pack.c:1125 #, c-format msgid "pack has %d unresolved delta" msgid_plural "pack has %d unresolved deltas" msgstr[0] "Paket hat %d unaufgelöste Unterschied" msgstr[1] "Paket hat %d unaufgelöste Unterschiede" -#: builtin/index-pack.c:1149 +#: builtin/index-pack.c:1150 #, c-format msgid "unable to deflate appended object (%d)" msgstr "Konnte angehängtes Objekt (%d) nicht komprimieren" -#: builtin/index-pack.c:1228 +#: builtin/index-pack.c:1229 #, c-format msgid "local object %s is corrupt" msgstr "lokales Objekt %s ist beschädigt" -#: builtin/index-pack.c:1252 +#: builtin/index-pack.c:1253 msgid "error while closing pack file" msgstr "Fehler beim Schließen der Paketdatei" -#: builtin/index-pack.c:1265 +#: builtin/index-pack.c:1266 #, c-format msgid "cannot write keep file '%s'" msgstr "Kann Paketbeschreibungsdatei '%s' nicht schreiben" -#: builtin/index-pack.c:1273 +#: builtin/index-pack.c:1274 #, c-format msgid "cannot close written keep file '%s'" msgstr "Kann eben erstellte Paketbeschreibungsdatei '%s' nicht schließen" -#: builtin/index-pack.c:1286 +#: builtin/index-pack.c:1287 msgid "cannot store pack file" msgstr "Kann Paketdatei nicht speichern" -#: builtin/index-pack.c:1297 +#: builtin/index-pack.c:1298 msgid "cannot store index file" msgstr "Kann Indexdatei nicht speichern" -#: builtin/index-pack.c:1398 +#: builtin/index-pack.c:1331 +#, c-format +msgid "bad pack.indexversion=%<PRIu32>" +msgstr "\"pack.indexversion=%<PRIu32>\" ist ungültig" + +#: builtin/index-pack.c:1337 +#, c-format +msgid "invalid number of threads specified (%d)" +msgstr "ungültige Anzahl von Threads angegeben (%d)" + +#: builtin/index-pack.c:1341 builtin/index-pack.c:1514 +#, c-format +msgid "no threads support, ignoring %s" +msgstr "keine Unterstützung von Threads, '%s' wird ignoriert" + +#: builtin/index-pack.c:1399 #, c-format msgid "Cannot open existing pack file '%s'" msgstr "Kann existierende Paketdatei '%s' nicht öffnen" -#: builtin/index-pack.c:1400 +#: builtin/index-pack.c:1401 #, c-format msgid "Cannot open existing pack idx file for '%s'" msgstr "Kann existierende Indexdatei für Paket '%s' nicht öffnen" -#: builtin/index-pack.c:1447 +#: builtin/index-pack.c:1448 #, c-format msgid "non delta: %d object" msgid_plural "non delta: %d objects" msgstr[0] "kein Unterschied: %d Objekt" msgstr[1] "kein Unterschied: %d Objekte" -#: builtin/index-pack.c:1454 +#: builtin/index-pack.c:1455 #, c-format msgid "chain length = %d: %lu object" msgid_plural "chain length = %d: %lu objects" msgstr[0] "Länge der Objekt-Liste = %d: %lu Objekt" msgstr[1] "Länge der Objekt-Liste = %d: %lu Objekte" -#: builtin/index-pack.c:1481 +#: builtin/index-pack.c:1482 msgid "Cannot come back to cwd" msgstr "Kann nicht zurück zu Arbeitsverzeichnis wechseln" -#: builtin/index-pack.c:1525 builtin/index-pack.c:1528 -#: builtin/index-pack.c:1540 builtin/index-pack.c:1544 +#: builtin/index-pack.c:1526 builtin/index-pack.c:1529 +#: builtin/index-pack.c:1541 builtin/index-pack.c:1545 #, c-format msgid "bad %s" msgstr "%s ist ungültig" -#: builtin/index-pack.c:1558 +#: builtin/index-pack.c:1559 msgid "--fix-thin cannot be used without --stdin" msgstr "--fix-thin kann nicht ohne --stdin benutzt werden" -#: builtin/index-pack.c:1562 builtin/index-pack.c:1572 +#: builtin/index-pack.c:1563 builtin/index-pack.c:1573 #, c-format msgid "packfile name '%s' does not end with '.pack'" msgstr "Name der Paketdatei '%s' endet nicht mit '.pack'" -#: builtin/index-pack.c:1581 +#: builtin/index-pack.c:1582 msgid "--verify with no packfile name given" msgstr "--verify ohne Name der Paketdatei angegeben" @@ -3682,6 +5350,27 @@ msgstr " gemeinsames" msgid "cannot tell cwd" msgstr "kann aktuelles Arbeitsverzeichnis nicht ermitteln" +#: builtin/init-db.c:467 +msgid "" +"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--shared" +"[=<permissions>]] [directory]" +msgstr "" +"git init [-q | --quiet] [--bare] [--template=<Vorlagenverzeichnis>] [--shared" +"[=<Berechtigungen>]] [Verzeichnis]" + +#: builtin/init-db.c:490 +msgid "permissions" +msgstr "Berechtigungen" + +#: builtin/init-db.c:491 +msgid "specify that the git repository is to be shared amongst several users" +msgstr "" +"gibt an, dass das Git-Projektarchiv mit mehreren Benutzern geteilt wird" + +#: builtin/init-db.c:493 builtin/prune-packed.c:77 +msgid "be quiet" +msgstr "weniger Ausgaben" + #: builtin/init-db.c:522 builtin/init-db.c:529 #, c-format msgid "cannot mkdir %s" @@ -3710,94 +5399,239 @@ msgstr "Kann nicht auf aktuelles Arbeitsverzeichnis zugreifen." msgid "Cannot access work tree '%s'" msgstr "Kann nicht auf Arbeitsbaum '%s' zugreifen." +#: builtin/log.c:37 +msgid "git log [<options>] [<since>..<until>] [[--] <path>...]\n" +msgstr "git log [<Optionen>] [<seit>..<bis>] [[--] <Pfad>...]\n" + +#: builtin/log.c:38 +msgid " or: git show [options] <object>..." +msgstr " oder: git show [Optionen] <Objekt>..." + +#: builtin/log.c:100 +msgid "suppress diff output" +msgstr "unterdrückt Ausgabe der Unterschiede" + +#: builtin/log.c:101 +msgid "show source" +msgstr "zeigt Quelle" + +#: builtin/log.c:102 +msgid "decorate options" +msgstr "decorate-Optionen" + #: builtin/log.c:189 #, c-format msgid "Final output: %d %s\n" msgstr "letzte Ausgabe: %d %s\n" -#: builtin/log.c:403 builtin/log.c:494 +#: builtin/log.c:405 builtin/log.c:497 #, c-format msgid "Could not read object %s" msgstr "Kann Objekt %s nicht lesen." -#: builtin/log.c:518 +#: builtin/log.c:521 #, c-format msgid "Unknown type: %d" msgstr "Unbekannter Typ: %d" -#: builtin/log.c:608 +#: builtin/log.c:613 msgid "format.headers without value" msgstr "format.headers ohne Wert" -#: builtin/log.c:682 +#: builtin/log.c:687 msgid "name of output directory is too long" msgstr "Name des Ausgabeverzeichnisses ist zu lang." -#: builtin/log.c:693 +#: builtin/log.c:698 #, c-format msgid "Cannot open patch file %s" msgstr "Kann Patch-Datei %s nicht öffnen" -#: builtin/log.c:707 +#: builtin/log.c:712 msgid "Need exactly one range." msgstr "Brauche genau einen Versionsbereich." -#: builtin/log.c:715 +#: builtin/log.c:720 msgid "Not a range." msgstr "Kein Versionsbereich." -#: builtin/log.c:789 +#: builtin/log.c:794 msgid "Cover letter needs email format" msgstr "Anschreiben benötigt E-Mail-Format" -#: builtin/log.c:862 +#: builtin/log.c:867 #, c-format msgid "insane in-reply-to: %s" msgstr "ungültiges in-reply-to: %s" -#: builtin/log.c:935 +#: builtin/log.c:895 +msgid "git format-patch [options] [<since> | <revision range>]" +msgstr "git format-patch [Optionen] [<seit> | <Versionsbereich>]" + +#: builtin/log.c:940 msgid "Two output directories?" msgstr "Zwei Ausgabeverzeichnisse?" -#: builtin/log.c:1157 +#: builtin/log.c:1068 +msgid "use [PATCH n/m] even with a single patch" +msgstr "benutzt [PATCH n/m] auch mit einzelnem Patch" + +#: builtin/log.c:1071 +msgid "use [PATCH] even with multiple patches" +msgstr "benutzt [PATCH] auch mit mehreren Patches" + +#: builtin/log.c:1075 +msgid "print patches to standard out" +msgstr "Ausgabe der Patches in Standard-Ausgabe" + +#: builtin/log.c:1077 +msgid "generate a cover letter" +msgstr "erzeugt ein Deckblatt" + +#: builtin/log.c:1079 +msgid "use simple number sequence for output file names" +msgstr "benutzt einfache Nummernfolge für die Namen der Ausgabedateien" + +#: builtin/log.c:1080 +msgid "sfx" +msgstr "Dateiendung" + +#: builtin/log.c:1081 +msgid "use <sfx> instead of '.patch'" +msgstr "verwendet <Dateiendung> anstatt '.patch'" + +#: builtin/log.c:1083 +msgid "start numbering patches at <n> instead of 1" +msgstr "beginnt die Nummerierung der Patches bei <n> anstatt bei 1" + +#: builtin/log.c:1085 +msgid "Use [<prefix>] instead of [PATCH]" +msgstr "benutzt [<Prefix>] anstatt [PATCH]" + +#: builtin/log.c:1088 +msgid "store resulting files in <dir>" +msgstr "speichert erzeugte Dateien in <Verzeichnis>" + +#: builtin/log.c:1091 +msgid "don't strip/add [PATCH]" +msgstr "[PATCH] wird nicht entfernt/hinzugefügt" + +#: builtin/log.c:1094 +msgid "don't output binary diffs" +msgstr "gibt keine binären Unterschiede aus" + +#: builtin/log.c:1096 +msgid "don't include a patch matching a commit upstream" +msgstr "" +"schließt keine Patches ein, die einer Version im Ãœbernahmezweig entsprechen" + +#: builtin/log.c:1098 +msgid "show patch format instead of default (patch + stat)" +msgstr "zeigt Patchformat anstatt des Standards (Patch + Zusammenfassung)" + +#: builtin/log.c:1100 +msgid "Messaging" +msgstr "Email-Einstellungen" + +#: builtin/log.c:1101 +msgid "header" +msgstr "Header" + +#: builtin/log.c:1102 +msgid "add email header" +msgstr "fügt Email-Header hinzu" + +#: builtin/log.c:1103 builtin/log.c:1105 +msgid "email" +msgstr "Email" + +#: builtin/log.c:1103 +msgid "add To: header" +msgstr "fügt \"To:\"-Header hinzu" + +#: builtin/log.c:1105 +msgid "add Cc: header" +msgstr "fügt \"Cc:\"-Header hinzu" + +#: builtin/log.c:1107 +msgid "message-id" +msgstr "message-id" + +#: builtin/log.c:1108 +msgid "make first mail a reply to <message-id>" +msgstr "macht aus erster Email eine Antwort zu <message-id>" + +#: builtin/log.c:1109 builtin/log.c:1112 +msgid "boundary" +msgstr "Grenze" + +#: builtin/log.c:1110 +msgid "attach the patch" +msgstr "hängt einen Patch an" + +#: builtin/log.c:1113 +msgid "inline the patch" +msgstr "fügt den Patch direkt in die Nachricht ein" + +#: builtin/log.c:1117 +msgid "enable message threading, styles: shallow, deep" +msgstr "aktiviert Nachrichtenverkettung, Stile: shallow, deep" + +#: builtin/log.c:1119 +msgid "signature" +msgstr "Signatur" + +#: builtin/log.c:1120 +msgid "add a signature" +msgstr "fügt eine Signatur hinzu" + +#: builtin/log.c:1122 +msgid "don't print the patch filenames" +msgstr "zeigt keine Dateinamen der Patches" + +#: builtin/log.c:1163 #, c-format msgid "bogus committer info %s" msgstr "unechte Einreicher-Informationen %s" -#: builtin/log.c:1202 +#: builtin/log.c:1208 msgid "-n and -k are mutually exclusive." msgstr "-n und -k schließen sich gegenseitig aus" -#: builtin/log.c:1204 +#: builtin/log.c:1210 msgid "--subject-prefix and -k are mutually exclusive." msgstr "--subject-prefix und -k schließen sich gegenseitig aus" -#: builtin/log.c:1212 +#: builtin/log.c:1218 msgid "--name-only does not make sense" msgstr "--name-only macht keinen Sinn" -#: builtin/log.c:1214 +#: builtin/log.c:1220 msgid "--name-status does not make sense" msgstr "--name-status macht keinen Sinn" -#: builtin/log.c:1216 +#: builtin/log.c:1222 msgid "--check does not make sense" msgstr "--check macht keinen Sinn" -#: builtin/log.c:1239 +#: builtin/log.c:1245 msgid "standard output, or directory, which one?" msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?" -#: builtin/log.c:1241 +#: builtin/log.c:1247 #, c-format msgid "Could not create directory '%s'" msgstr "Konnte Verzeichnis '%s' nicht erstellen." -#: builtin/log.c:1394 +#: builtin/log.c:1400 msgid "Failed to create output files" msgstr "Fehler beim Erstellen der Ausgabedateien." -#: builtin/log.c:1498 +#: builtin/log.c:1449 +msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" +msgstr "git cherry [-v] [<Ãœbernahmezweig> [<Arbeitszweig> [<Limit>]]]" + +#: builtin/log.c:1504 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" @@ -3805,11 +5639,157 @@ msgstr "" "Konnte gefolgten, externen Zweig nicht finden, bitte gebe <upstream> manuell " "an.\n" -#: builtin/log.c:1511 builtin/log.c:1513 builtin/log.c:1525 +#: builtin/log.c:1517 builtin/log.c:1519 builtin/log.c:1531 #, c-format msgid "Unknown commit %s" msgstr "Unbekannte Version %s" +#: builtin/ls-files.c:408 +msgid "git ls-files [options] [<file>...]" +msgstr "git ls-files [Optionen] [<Datei>...]" + +#: builtin/ls-files.c:463 +msgid "identify the file status with tags" +msgstr "zeigt den Dateistatus mit Markierungen" + +#: builtin/ls-files.c:465 +msgid "use lowercase letters for 'assume unchanged' files" +msgstr "benutzt Kleinbuchstaben für Dateien mit 'assume unchanged' Markierung" + +#: builtin/ls-files.c:467 +msgid "show cached files in the output (default)" +msgstr "zeigt zwischengespeicherten Dateien in der Ausgabe an (Standard)" + +#: builtin/ls-files.c:469 +msgid "show deleted files in the output" +msgstr "zeigt entfernte Dateien in der Ausgabe an" + +#: builtin/ls-files.c:471 +msgid "show modified files in the output" +msgstr "zeigt geänderte Dateien in der Ausgabe an" + +#: builtin/ls-files.c:473 +msgid "show other files in the output" +msgstr "zeigt sonstige Dateien in der Ausgabe an" + +#: builtin/ls-files.c:475 +msgid "show ignored files in the output" +msgstr "zeigt ignorierte Dateien in der Ausgabe an" + +#: builtin/ls-files.c:478 +msgid "show staged contents' object name in the output" +msgstr "zeigt Objektnamen von Inhalten in der Bereitstellung in der Ausgabe an" + +#: builtin/ls-files.c:480 +msgid "show files on the filesystem that need to be removed" +msgstr "zeigt Dateien im Dateisystem, die gelöscht werden müssen, an" + +#: builtin/ls-files.c:482 +msgid "show 'other' directories' name only" +msgstr "zeigt nur Namen von 'sonstigen' Verzeichnissen an" + +#: builtin/ls-files.c:485 +msgid "don't show empty directories" +msgstr "zeigt keine leeren Verzeichnisse an" + +#: builtin/ls-files.c:488 +msgid "show unmerged files in the output" +msgstr "zeigt nicht zusammengeführte Dateien in der Ausgabe an" + +#: builtin/ls-files.c:490 +msgid "show resolve-undo information" +msgstr "zeigt 'resolve-undo' Informationen an" + +#: builtin/ls-files.c:492 +msgid "skip files matching pattern" +msgstr "lässt Dateien aus, die einem Muster entsprechen" + +#: builtin/ls-files.c:495 +msgid "exclude patterns are read from <file>" +msgstr "schließt Muster, gelesen von <Datei>, aus" + +#: builtin/ls-files.c:498 +msgid "read additional per-directory exclude patterns in <file>" +msgstr "liest zusätzliche pro-Verzeichnis Auschlussmuster aus <Datei>" + +#: builtin/ls-files.c:500 +msgid "add the standard git exclusions" +msgstr "fügt die standardmäßigen Git-Ausschlüsse hinzu" + +#: builtin/ls-files.c:503 +msgid "make the output relative to the project top directory" +msgstr "Ausgabe relativ zum Projektverzeichnis" + +#: builtin/ls-files.c:506 +msgid "if any <file> is not in the index, treat this as an error" +msgstr "" +"behandle es als Fehler, wenn sich eine <Datei> nicht in der Bereitstellung " +"befindet" + +#: builtin/ls-files.c:507 +msgid "tree-ish" +msgstr "Versionsreferenz" + +#: builtin/ls-files.c:508 +msgid "pretend that paths removed since <tree-ish> are still present" +msgstr "" +"gibt vor, dass Pfade, die seit <Versionsreferenz> gelöscht wurden, immer " +"noch vorhanden sind" + +#: builtin/ls-files.c:510 +msgid "show debugging data" +msgstr "zeigt Ausgaben zur Fehlersuche an" + +#: builtin/ls-tree.c:27 +msgid "git ls-tree [<options>] <tree-ish> [<path>...]" +msgstr "git ls-tree [<Optionen>] <Versionsreferenz> [<Pfad>...]" + +#: builtin/ls-tree.c:125 +msgid "only show trees" +msgstr "zeigt nur Bäume an" + +#: builtin/ls-tree.c:127 +msgid "recurse into subtrees" +msgstr "führt Rekursion in Teilbäumen durch" + +#: builtin/ls-tree.c:129 +msgid "show trees when recursing" +msgstr "zeigt Bäume bei Rekursion an" + +#: builtin/ls-tree.c:132 +msgid "terminate entries with NUL byte" +msgstr "schließt Einträge mit NUL-Byte ab" + +#: builtin/ls-tree.c:133 +msgid "include object size" +msgstr "schließt Objektgröße ein" + +#: builtin/ls-tree.c:135 builtin/ls-tree.c:137 +msgid "list only filenames" +msgstr "listet nur Dateinamen auf" + +#: builtin/ls-tree.c:140 +msgid "use full path names" +msgstr "benutzt vollständige Pfadnamen" + +#: builtin/ls-tree.c:142 +msgid "list entire tree; not just current directory (implies --full-name)" +msgstr "" +"listet den gesamten Baum auf; nicht nur das aktuelle Verzeichnis (impliziert " +"--full-name)" + +#: builtin/merge.c:43 +msgid "git merge [options] [<commit>...]" +msgstr "git merge [Optionen] [<Version>...]" + +#: builtin/merge.c:44 +msgid "git merge [options] <msg> HEAD <commit>" +msgstr "git merge [Optionen] <Beschreibung> HEAD <Version>" + +#: builtin/merge.c:45 +msgid "git merge --abort" +msgstr "git merge --abort" + #: builtin/merge.c:90 msgid "switch `m' requires a value" msgstr "Schalter 'm' erfordert einen Wert." @@ -3829,6 +5809,75 @@ msgstr "Verfügbare Strategien sind:" msgid "Available custom strategies are:" msgstr "Verfügbare benutzerdefinierte Strategien sind:" +#: builtin/merge.c:183 +msgid "do not show a diffstat at the end of the merge" +msgstr "" +"zeigt keine Zusammenfassung der Unterschiede am Schluss der Zusammenführung " +"an" + +#: builtin/merge.c:186 +msgid "show a diffstat at the end of the merge" +msgstr "" +"zeigt eine Zusammenfassung der Unterschiede am Schluss der Zusammenführung an" + +#: builtin/merge.c:187 +msgid "(synonym to --stat)" +msgstr "(Synonym für --stat)" + +#: builtin/merge.c:189 +msgid "add (at most <n>) entries from shortlog to merge commit message" +msgstr "" +"fügt (höchstens <n>) Einträge von \"shortlog\" zur Beschreibung der " +"Zusammenführung hinzu" + +#: builtin/merge.c:192 +msgid "create a single commit instead of doing a merge" +msgstr "erzeugt eine einzelne Version anstatt einer Zusammenführung" + +#: builtin/merge.c:194 +msgid "perform a commit if the merge succeeds (default)" +msgstr "" +"führt eine Eintragung durch, wenn die Zusammenführung erfolgreich war " +"(Standard)" + +#: builtin/merge.c:196 +msgid "edit message before committing" +msgstr "Bearbeitung der Versionsbeschreibung vor der Eintragung" + +#: builtin/merge.c:198 +msgid "allow fast-forward (default)" +msgstr "erlaubt Vorspulen (Standard)" + +#: builtin/merge.c:200 +msgid "abort if fast-forward is not possible" +msgstr "bricht ab, wenn kein Vorspulen möglich ist" + +#: builtin/merge.c:202 builtin/notes.c:870 builtin/revert.c:112 +msgid "strategy" +msgstr "Strategie" + +#: builtin/merge.c:203 +msgid "merge strategy to use" +msgstr "zu verwendende Zusammenführungsstrategie" + +#: builtin/merge.c:204 +msgid "option=value" +msgstr "Option=Wert" + +#: builtin/merge.c:205 +msgid "option for selected merge strategy" +msgstr "Option für ausgewählte Zusammenführungsstrategie" + +#: builtin/merge.c:207 +msgid "merge commit message (for a non-fast-forward merge)" +msgstr "" +"führt Versionsbeschreibung zusammen (für eine Zusammenführung, die kein " +"Vorspulen war)" + +#: builtin/merge.c:211 +msgid "abort the current in-progress merge" +msgstr "bricht die sich im Gange befindliche Zusammenführung ab" + #: builtin/merge.c:240 msgid "could not run stash." msgstr "Konnte \"stash\" nicht ausführen." @@ -3884,37 +5933,33 @@ msgstr "Ungültiger branch.%s.mergeoptions String: %s" msgid "git write-tree failed to write a tree" msgstr "\"git write-tree\" schlug beim Schreiben eines Baumes fehl" -#: builtin/merge.c:678 -msgid "failed to read the cache" -msgstr "Lesen des Zwischenspeichers fehlgeschlagen" - -#: builtin/merge.c:709 +#: builtin/merge.c:656 msgid "Not handling anything other than two heads merge." msgstr "Es wird nur die Zusammenführung von zwei Zweigen behandelt." -#: builtin/merge.c:723 +#: builtin/merge.c:670 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "Unbekannte Option für merge-recursive: -X%s" -#: builtin/merge.c:737 +#: builtin/merge.c:684 #, c-format msgid "unable to write %s" msgstr "konnte %s nicht schreiben" -#: builtin/merge.c:876 +#: builtin/merge.c:773 #, c-format msgid "Could not read from '%s'" msgstr "konnte nicht von '%s' lesen" -#: builtin/merge.c:885 +#: builtin/merge.c:782 #, c-format msgid "Not committing merge; use 'git commit' to complete the merge.\n" msgstr "" "Zusammenführung wurde nicht eingetragen; benutze 'git commit' um die " "Zusammenführung abzuschließen.\n" -#: builtin/merge.c:891 +#: builtin/merge.c:788 msgid "" "Please enter a commit message to explain why this merge is necessary,\n" "especially if it merges an updated upstream into a topic branch.\n" @@ -3930,56 +5975,56 @@ msgstr "" "Zeilen beginnend mit '#' werden ignoriert, und eine leere Beschreibung " "bricht die Eintragung ab.\n" -#: builtin/merge.c:915 +#: builtin/merge.c:812 msgid "Empty commit message." msgstr "Leere Versionsbeschreibung" -#: builtin/merge.c:927 +#: builtin/merge.c:824 #, c-format msgid "Wonderful.\n" msgstr "Wunderbar.\n" -#: builtin/merge.c:992 +#: builtin/merge.c:889 #, c-format msgid "Automatic merge failed; fix conflicts and then commit the result.\n" msgstr "" "Automatische Zusammenführung fehlgeschlagen; behebe die Konflikte und trage " "dann das Ergebnis ein.\n" -#: builtin/merge.c:1008 +#: builtin/merge.c:905 #, c-format msgid "'%s' is not a commit" msgstr "'%s' ist keine Version" -#: builtin/merge.c:1049 +#: builtin/merge.c:946 msgid "No current branch." msgstr "Du befindest dich auf keinem Zweig." -#: builtin/merge.c:1051 +#: builtin/merge.c:948 msgid "No remote for the current branch." msgstr "Kein externes Archiv für den aktuellen Zweig." -#: builtin/merge.c:1053 +#: builtin/merge.c:950 msgid "No default upstream defined for the current branch." msgstr "" "Es ist kein externes Standard-Projektarchiv für den aktuellen Zweig " "definiert." -#: builtin/merge.c:1058 +#: builtin/merge.c:955 #, c-format msgid "No remote tracking branch for %s from %s" msgstr "Kein externer Ãœbernahmezweig für %s von %s" -#: builtin/merge.c:1145 builtin/merge.c:1302 +#: builtin/merge.c:1042 builtin/merge.c:1199 #, c-format msgid "%s - not something we can merge" msgstr "%s - nichts was wir zusammenführen können" -#: builtin/merge.c:1213 +#: builtin/merge.c:1110 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "Es gibt keine Zusammenführung zum Abbrechen (vermisse MERGE_HEAD)" -#: builtin/merge.c:1229 git-pull.sh:31 +#: builtin/merge.c:1126 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -3987,12 +6032,12 @@ msgstr "" "Du hast deine Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert).\n" "Bitte trage deine Änderungen ein, bevor du zusammenführen kannst." -#: builtin/merge.c:1232 git-pull.sh:34 +#: builtin/merge.c:1129 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "" "Du hast deine Zusammenführung nicht abgeschlossen (MERGE_HEAD existiert)." -#: builtin/merge.c:1236 +#: builtin/merge.c:1133 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -4000,86 +6045,186 @@ msgstr "" "Du hast \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert).\n" "Bitte trage deine Änderungen ein, bevor du zusammenführen kannst." -#: builtin/merge.c:1239 +#: builtin/merge.c:1136 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." msgstr "" "Du hast \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert)." -#: builtin/merge.c:1248 +#: builtin/merge.c:1145 msgid "You cannot combine --squash with --no-ff." msgstr "Du kannst --squash nicht mit --no-ff kombinieren." -#: builtin/merge.c:1253 +#: builtin/merge.c:1150 msgid "You cannot combine --no-ff with --ff-only." msgstr "Du kannst --no-ff nicht mit --ff--only kombinieren." -#: builtin/merge.c:1260 +#: builtin/merge.c:1157 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "Keine Version angegeben und merge.defaultToUpstream ist nicht gesetzt." -#: builtin/merge.c:1292 +#: builtin/merge.c:1189 msgid "Can merge only exactly one commit into empty head" msgstr "Kann nur exakt eine Version in einem leeren Zweig zusammenführen." -#: builtin/merge.c:1295 +#: builtin/merge.c:1192 msgid "Squash commit into empty head not supported yet" msgstr "Bin auf einem Zweig, der noch geboren wird; kann nicht quetschen." -#: builtin/merge.c:1297 +#: builtin/merge.c:1194 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "nicht vorzuspulende Version macht in einem leeren Zweig keinen Sinn" -#: builtin/merge.c:1412 +#: builtin/merge.c:1309 #, c-format msgid "Updating %s..%s\n" msgstr "Aktualisiere %s..%s\n" -#: builtin/merge.c:1450 +#: builtin/merge.c:1348 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Probiere wirklich triviale \"in-index\"-Zusammenführung...\n" -#: builtin/merge.c:1457 +#: builtin/merge.c:1355 #, c-format msgid "Nope.\n" msgstr "Nein.\n" -#: builtin/merge.c:1489 +#: builtin/merge.c:1387 msgid "Not possible to fast-forward, aborting." msgstr "Vorspulen nicht möglich, breche ab." -#: builtin/merge.c:1512 builtin/merge.c:1591 +#: builtin/merge.c:1410 builtin/merge.c:1489 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "Rücklauf des Zweiges bis zum Ursprung...\n" -#: builtin/merge.c:1516 +#: builtin/merge.c:1414 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Probiere Zusammenführungsstrategie %s...\n" -#: builtin/merge.c:1582 +#: builtin/merge.c:1480 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "Keine Zusammenführungsstrategie behandelt diese Zusammenführung.\n" -#: builtin/merge.c:1584 +#: builtin/merge.c:1482 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "Zusammenführung mit Strategie %s fehlgeschlagen.\n" -#: builtin/merge.c:1593 +#: builtin/merge.c:1491 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "Benutze \"%s\" um die Auflösung per Hand vorzubereiten.\n" -#: builtin/merge.c:1605 +#: builtin/merge.c:1503 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" "Automatische Zusammenführung abgeschlossen; halte, wie gewünscht, vor der " "Eintragung an\n" +#: builtin/merge-base.c:26 +msgid "git merge-base [-a|--all] <commit> <commit>..." +msgstr "git merge-base [-a|--all] <Version> <Version>..." + +#: builtin/merge-base.c:27 +msgid "git merge-base [-a|--all] --octopus <commit>..." +msgstr "git merge-base [-a|--all] --octopus <Version>..." + +#: builtin/merge-base.c:28 +msgid "git merge-base --independent <commit>..." +msgstr "git merge-base --independent <Version>..." + +#: builtin/merge-base.c:29 +msgid "git merge-base --is-ancestor <commit> <commit>" +msgstr "git merge-base --is-ancestor <Version> <Version>" + +#: builtin/merge-base.c:98 +msgid "output all common ancestors" +msgstr "Ausgabe aller gemeinsamen Vorfahren" + +#: builtin/merge-base.c:99 +msgid "find ancestors for a single n-way merge" +msgstr "findet Vorfahren für eine einzelne n-Wege-Zusammenführung" + +#: builtin/merge-base.c:100 +msgid "list revs not reachable from others" +msgstr "listet Revisionen auf, die nicht durch Andere erreichbar sind" + +#: builtin/merge-base.c:102 +msgid "is the first one ancestor of the other?" +msgstr "ist der Erste ein Vorfahre von dem Anderen?" + +#: builtin/merge-file.c:8 +msgid "" +"git merge-file [options] [-L name1 [-L orig [-L name2]]] file1 orig_file " +"file2" +msgstr "" +"git merge-file [Optionen] [-L Name1 [-L orig [-L Name2]]] Datei1 orig_Datei " +"Datei2" + +#: builtin/merge-file.c:33 +msgid "send results to standard output" +msgstr "sendet Ergebnisse zur Standard-Ausgabe" + +#: builtin/merge-file.c:34 +msgid "use a diff3 based merge" +msgstr "benutzt eine diff3 basierte Zusammenführung" + +#: builtin/merge-file.c:35 +msgid "for conflicts, use our version" +msgstr "verwendet bei Konflikten unsere Variante" + +#: builtin/merge-file.c:37 +msgid "for conflicts, use their version" +msgstr "verwendet bei Konflikten ihre Variante" + +#: builtin/merge-file.c:39 +msgid "for conflicts, use a union version" +msgstr "verwendet bei Konflikten eine gemeinsame Variante" + +#: builtin/merge-file.c:42 +msgid "for conflicts, use this marker size" +msgstr "verwendet bei Konflikten diese Kennzeichnungslänge" + +#: builtin/merge-file.c:43 +msgid "do not warn about conflicts" +msgstr "keine Warnung bei Konflikten" + +#: builtin/merge-file.c:45 +msgid "set labels for file1/orig_file/file2" +msgstr "setzt Beschriftung für Datei1/orig_Datei/Datei2" + +#: builtin/mktree.c:67 +msgid "git mktree [-z] [--missing] [--batch]" +msgstr "git mktree [-z] [--missing] [--batch]" + +#: builtin/mktree.c:153 +msgid "input is NUL terminated" +msgstr "Eingabe ist durch NUL-Zeichen abgeschlossen" + +#: builtin/mktree.c:154 builtin/write-tree.c:24 +msgid "allow missing objects" +msgstr "erlaubt fehlende Objekte" + +#: builtin/mktree.c:155 +msgid "allow creation of more than one tree" +msgstr "erlaubt die Erstellung von mehr als einem Baum" + +#: builtin/mv.c:14 +msgid "git mv [options] <source>... <destination>" +msgstr "git mv [Optionen] <Quelle>... <Ziel>" + +#: builtin/mv.c:64 +msgid "force move/rename even if target exists" +msgstr "erzwingt Verschieben/Umbenennen, auch wenn das Ziel existiert" + +#: builtin/mv.c:65 +msgid "skip move/rename errors" +msgstr "überspringt Fehler beim Verschieben oder Umbenennen" + #: builtin/mv.c:108 #, c-format msgid "Checking rename of '%s' to '%s'\n" @@ -4142,115 +6287,288 @@ msgstr "Benenne %s nach %s um\n" msgid "renaming '%s' failed" msgstr "Umbenennung von '%s' fehlgeschlagen" -#: builtin/notes.c:139 +#: builtin/name-rev.c:175 +msgid "git name-rev [options] <commit>..." +msgstr "git name-rev [Optionen] <Version>..." + +#: builtin/name-rev.c:176 +msgid "git name-rev [options] --all" +msgstr "git name-rev [Optionen] --all" + +#: builtin/name-rev.c:177 +msgid "git name-rev [options] --stdin" +msgstr "git name-rev [Optionen] --stdin" + +#: builtin/name-rev.c:229 +msgid "print only names (no SHA-1)" +msgstr "zeigt nur Namen an (keine SHA-1)" + +#: builtin/name-rev.c:230 +msgid "only use tags to name the commits" +msgstr "benutzt nur Markierungen um die Versionen zu benennen" + +#: builtin/name-rev.c:232 +msgid "only use refs matching <pattern>" +msgstr "benutzt nur Referenzen die <Muster> entsprechen" + +#: builtin/name-rev.c:234 +msgid "list all commits reachable from all refs" +msgstr "listet alle Versionen auf, die von allen Referenzen erreichbar sind" + +#: builtin/name-rev.c:235 +msgid "read from stdin" +msgstr "liest von der Standard-Eingabe" + +#: builtin/name-rev.c:236 +msgid "allow to print `undefined` names" +msgstr "erlaubt Ausgabe von `undefinierten` Namen" + +#: builtin/notes.c:26 +msgid "git notes [--ref <notes_ref>] [list [<object>]]" +msgstr "git notes [--ref <Notiz-Referenz>] [list [<Objekt>]]" + +#: builtin/notes.c:27 +msgid "" +"git notes [--ref <notes_ref>] add [-f] [-m <msg> | -F <file> | (-c | -C) " +"<object>] [<object>]" +msgstr "" +"git notes [--ref <Notiz-Referenz>] add [-f] [-m <Nachricht> | -F <Datei> | (-" +"c | -C) <Objekt>] [<Objekt>]" + +#: builtin/notes.c:28 +msgid "git notes [--ref <notes_ref>] copy [-f] <from-object> <to-object>" +msgstr "" +"git notes [--ref <Notiz-Referenz>] copy [-f] <von-Objekt> <nach-Objekt>" + +#: builtin/notes.c:29 +msgid "" +"git notes [--ref <notes_ref>] append [-m <msg> | -F <file> | (-c | -C) " +"<object>] [<object>]" +msgstr "" +"git notes [--ref <Notiz-Referenz>] append [-m <Nachricht> | -F <Datei> | (-c " +"| -C) <Objekt>] [<Objekt>]" + +#: builtin/notes.c:30 +msgid "git notes [--ref <notes_ref>] edit [<object>]" +msgstr "git notes [--ref <Notiz-Referenz>] edit [<Objekt>]" + +#: builtin/notes.c:31 +msgid "git notes [--ref <notes_ref>] show [<object>]" +msgstr "git notes [--ref <Notiz-Referenz>] show [<Objekt>]" + +#: builtin/notes.c:32 +msgid "" +"git notes [--ref <notes_ref>] merge [-v | -q] [-s <strategy> ] <notes_ref>" +msgstr "" +"git notes [--ref <Notiz-Referenz>] merge [-v | -q] [-s <Strategie> ] <Notiz-" +"Referenz>" + +#: builtin/notes.c:33 +msgid "git notes merge --commit [-v | -q]" +msgstr "git notes merge --commit [-v | -q]" + +#: builtin/notes.c:34 +msgid "git notes merge --abort [-v | -q]" +msgstr "git notes merge --abort [-v | -q]" + +#: builtin/notes.c:35 +msgid "git notes [--ref <notes_ref>] remove [<object>...]" +msgstr "git notes [--ref <Notiz-Referenz>] remove [<Objekt>...]" + +#: builtin/notes.c:36 +msgid "git notes [--ref <notes_ref>] prune [-n | -v]" +msgstr "git notes [--ref <Notiz-Referenz>] prune [-n | -v]" + +#: builtin/notes.c:37 +msgid "git notes [--ref <notes_ref>] get-ref" +msgstr "git notes [--ref <Notiz-Referenz>] get-ref" + +#: builtin/notes.c:42 +msgid "git notes [list [<object>]]" +msgstr "git notes [list [<Objekt>]]" + +#: builtin/notes.c:47 +msgid "git notes add [<options>] [<object>]" +msgstr "git notes add [<Optionen>] [<Objekt>]" + +#: builtin/notes.c:52 +msgid "git notes copy [<options>] <from-object> <to-object>" +msgstr "git notes copy [<Optionen>] <von-Objekt> <nach-Objekt>" + +#: builtin/notes.c:53 +msgid "git notes copy --stdin [<from-object> <to-object>]..." +msgstr "git notes copy --stdin [<von-Objekt> <nach-Objekt>]..." + +#: builtin/notes.c:58 +msgid "git notes append [<options>] [<object>]" +msgstr "git notes append [<Optionen>] [<Objekt>]" + +#: builtin/notes.c:63 +msgid "git notes edit [<object>]" +msgstr "git notes edit [<Objekt>]" + +#: builtin/notes.c:68 +msgid "git notes show [<object>]" +msgstr "git notes show [<Objekt>]" + +#: builtin/notes.c:73 +msgid "git notes merge [<options>] <notes_ref>" +msgstr "git notes merge [<Optionen>] <Notiz-Referenz>" + +#: builtin/notes.c:74 +msgid "git notes merge --commit [<options>]" +msgstr "git notes merge --commit [<Optionen>]" + +#: builtin/notes.c:75 +msgid "git notes merge --abort [<options>]" +msgstr "git notes merge --abort [<Optionen>]" + +#: builtin/notes.c:80 +msgid "git notes remove [<object>]" +msgstr "git notes remove [<Objekt>]" + +#: builtin/notes.c:85 +msgid "git notes prune [<options>]" +msgstr "git notes prune [<Optionen>]" + +#: builtin/notes.c:90 +msgid "git notes get-ref" +msgstr "git notes get-ref" + +#: builtin/notes.c:142 #, c-format msgid "unable to start 'show' for object '%s'" msgstr "konnte 'show' für Objekt '%s' nicht starten" -#: builtin/notes.c:145 +#: builtin/notes.c:148 msgid "can't fdopen 'show' output fd" msgstr "konnte Datei-Deskriptor für Ausgabe von 'show' nicht öffnen" -#: builtin/notes.c:155 +#: builtin/notes.c:158 #, c-format msgid "failed to close pipe to 'show' for object '%s'" msgstr "Schließen der Verbindung zu 'show' ist für Objekt '%s' fehlgeschlagen." -#: builtin/notes.c:158 +#: builtin/notes.c:161 #, c-format msgid "failed to finish 'show' for object '%s'" msgstr "konnte 'show' für Objekt '%s' nicht abschließen" -#: builtin/notes.c:175 builtin/tag.c:347 +#: builtin/notes.c:178 builtin/tag.c:347 #, c-format msgid "could not create file '%s'" msgstr "konnte Datei '%s' nicht erstellen" -#: builtin/notes.c:189 +#: builtin/notes.c:192 msgid "Please supply the note contents using either -m or -F option" msgstr "Bitte liefere den Notiz-Inhalt unter Verwendung der Option -m oder -F." -#: builtin/notes.c:210 builtin/notes.c:973 +#: builtin/notes.c:213 builtin/notes.c:976 #, c-format msgid "Removing note for object %s\n" msgstr "Entferne Notiz für Objekt %s\n" -#: builtin/notes.c:215 +#: builtin/notes.c:218 msgid "unable to write note object" msgstr "Konnte Notiz-Objekt nicht schreiben" -#: builtin/notes.c:217 +#: builtin/notes.c:220 #, c-format msgid "The note contents has been left in %s" msgstr "Die Notiz-Inhalte wurden in %s belassen" -#: builtin/notes.c:251 builtin/tag.c:542 +#: builtin/notes.c:254 builtin/tag.c:542 #, c-format msgid "cannot read '%s'" msgstr "kann '%s' nicht lesen" -#: builtin/notes.c:253 builtin/tag.c:545 +#: builtin/notes.c:256 builtin/tag.c:545 #, c-format msgid "could not open or read '%s'" msgstr "konnte '%s' nicht öffnen oder lesen" -#: builtin/notes.c:272 builtin/notes.c:445 builtin/notes.c:447 -#: builtin/notes.c:507 builtin/notes.c:561 builtin/notes.c:644 -#: builtin/notes.c:649 builtin/notes.c:724 builtin/notes.c:766 -#: builtin/notes.c:968 builtin/reset.c:293 builtin/tag.c:558 +#: builtin/notes.c:275 builtin/notes.c:448 builtin/notes.c:450 +#: builtin/notes.c:510 builtin/notes.c:564 builtin/notes.c:647 +#: builtin/notes.c:652 builtin/notes.c:727 builtin/notes.c:769 +#: builtin/notes.c:971 builtin/reset.c:293 builtin/tag.c:558 #, c-format msgid "Failed to resolve '%s' as a valid ref." msgstr "Konnte '%s' nicht als gültige Referenz auflösen." -#: builtin/notes.c:275 +#: builtin/notes.c:278 #, c-format msgid "Failed to read object '%s'." msgstr "Fehler beim Lesen des Objektes '%s'." -#: builtin/notes.c:299 +#: builtin/notes.c:302 msgid "Cannot commit uninitialized/unreferenced notes tree" msgstr "Kann uninitialisierten/unreferenzierten Notiz-Baum nicht eintragen." -#: builtin/notes.c:340 +#: builtin/notes.c:343 #, c-format msgid "Bad notes.rewriteMode value: '%s'" msgstr "Ungültiger notes.rewriteMode Wert: '%s'" -#: builtin/notes.c:350 +#: builtin/notes.c:353 #, c-format msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" msgstr "" -"Neuschreiben der Notizen in %s zurückgewiesen (außerhalb von refs/notes/)" +"Umschreiben der Notizen in %s zurückgewiesen (außerhalb von refs/notes/)" #. TRANSLATORS: The first %s is the name of the #. environment variable, the second %s is its value -#: builtin/notes.c:377 +#: builtin/notes.c:380 #, c-format msgid "Bad %s value: '%s'" msgstr "Ungültiger %s Wert: '%s'" -#: builtin/notes.c:441 +#: builtin/notes.c:444 #, c-format msgid "Malformed input line: '%s'." msgstr "Fehlerhafte Eingabezeile: '%s'." -#: builtin/notes.c:456 +#: builtin/notes.c:459 #, c-format msgid "Failed to copy notes from '%s' to '%s'" msgstr "Fehler beim Kopieren der Notizen von '%s' nach '%s'" -#: builtin/notes.c:500 builtin/notes.c:554 builtin/notes.c:627 -#: builtin/notes.c:639 builtin/notes.c:712 builtin/notes.c:759 -#: builtin/notes.c:1033 +#: builtin/notes.c:503 builtin/notes.c:557 builtin/notes.c:630 +#: builtin/notes.c:642 builtin/notes.c:715 builtin/notes.c:762 +#: builtin/notes.c:1036 msgid "too many parameters" msgstr "zu viele Parameter" -#: builtin/notes.c:513 builtin/notes.c:772 +#: builtin/notes.c:516 builtin/notes.c:775 #, c-format msgid "No note found for object %s." msgstr "Kein Notiz für Objekt %s gefunden." -#: builtin/notes.c:580 +#: builtin/notes.c:538 builtin/notes.c:695 +msgid "note contents as a string" +msgstr "Notizinhalte als Zeichenkette" + +#: builtin/notes.c:541 builtin/notes.c:698 +msgid "note contents in a file" +msgstr "Notizinhalte in einer Datei" + +#: builtin/notes.c:543 builtin/notes.c:546 builtin/notes.c:700 +#: builtin/notes.c:703 builtin/tag.c:476 +msgid "object" +msgstr "Objekt" + +#: builtin/notes.c:544 builtin/notes.c:701 +msgid "reuse and edit specified note object" +msgstr "Wiederverwendung und Bearbeitung des angegebenen Notiz-Objektes" + +#: builtin/notes.c:547 builtin/notes.c:704 +msgid "reuse specified note object" +msgstr "Wiederverwendung des angegebenen Notiz-Objektes" + +#: builtin/notes.c:549 builtin/notes.c:617 +msgid "replace existing notes" +msgstr "ersetzt existierende Notizen" + +#: builtin/notes.c:583 #, c-format msgid "" "Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite " @@ -4259,16 +6577,26 @@ msgstr "" "Konnte Notizen nicht hinzufügen. Existierende Notizen für Objekt %s " "gefunden. Verwende '-f' um die existierenden Notizen zu überschreiben." -#: builtin/notes.c:585 builtin/notes.c:662 +#: builtin/notes.c:588 builtin/notes.c:665 #, c-format msgid "Overwriting existing notes for object %s\n" msgstr "Ãœberschreibe existierende Notizen für Objekt %s\n" -#: builtin/notes.c:635 +#: builtin/notes.c:618 +msgid "read objects from stdin" +msgstr "liest Objekte von der Standard-Eingabe" + +#: builtin/notes.c:620 +msgid "load rewriting config for <command> (implies --stdin)" +msgstr "" +"lädt Konfiguration für <Kommando> beim Umschreiben von Versionen (impliziert " +"--stdin)" + +#: builtin/notes.c:638 msgid "too few parameters" msgstr "zu wenig Parameter" -#: builtin/notes.c:656 +#: builtin/notes.c:659 #, c-format msgid "" "Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite " @@ -4277,12 +6605,12 @@ msgstr "" "Kann Notizen nicht kopieren. Existierende Notizen für Objekt %s gefunden. " "Verwende '-f' um die existierenden Notizen zu überschreiben." -#: builtin/notes.c:668 +#: builtin/notes.c:671 #, c-format msgid "Missing notes on source object %s. Cannot copy." msgstr "Keine Notizen für Quell-Objekt %s. Kopie nicht möglich." -#: builtin/notes.c:717 +#: builtin/notes.c:720 #, c-format msgid "" "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n" @@ -4291,41 +6619,264 @@ msgstr "" "Die Optionen -m/-F/-c/-C sind für das Unterkommando 'edit' veraltet.\n" "Bitte benutze stattdessen 'git notes add -f -m/-F/-c/-C'.\n" -#: builtin/notes.c:971 +#: builtin/notes.c:867 +msgid "General options" +msgstr "Allgemeine Optionen" + +#: builtin/notes.c:869 +msgid "Merge options" +msgstr "Optionen für Zusammenführung" + +#: builtin/notes.c:871 +msgid "" +"resolve notes conflicts using the given strategy (manual/ours/theirs/union/" +"cat_sort_uniq)" +msgstr "" +"löst Konflikte bei Notizen mit der angegebenen Strategie auf (manual/ours/" +"theirs/union/cat_sort_uniq)" + +#: builtin/notes.c:873 +msgid "Committing unmerged notes" +msgstr "trägt nicht zusammengeführte Notizen ein" + +#: builtin/notes.c:875 +msgid "finalize notes merge by committing unmerged notes" +msgstr "" +"schließt Zusammenführung von Notizen ab, in dem nicht zusammengeführte " +"Notizen eingetragen werden" + +#: builtin/notes.c:877 +msgid "Aborting notes merge resolution" +msgstr "bricht Konfliktauflösung bei Zusammenführung von Notizen ab" + +#: builtin/notes.c:879 +msgid "abort notes merge" +msgstr "bricht Zusammenführung von Notizen ab" + +#: builtin/notes.c:974 #, c-format msgid "Object %s has no note\n" msgstr "Objekt %s hat keine Notiz\n" -#: builtin/notes.c:1103 builtin/remote.c:1598 +#: builtin/notes.c:986 +msgid "attempt to remove non-existent note is not an error" +msgstr "der Versuch, eine nicht existierende Notiz zu löschen, ist kein Fehler" + +#: builtin/notes.c:989 +msgid "read object names from the standard input" +msgstr "liest Objektnamen von der Standard-Eingabe" + +#: builtin/notes.c:1070 +msgid "notes_ref" +msgstr "Notiz-Referenz" + +#: builtin/notes.c:1071 +msgid "use notes from <notes_ref>" +msgstr "benutzt Notizen von <Notiz-Referenz>" + +#: builtin/notes.c:1106 builtin/remote.c:1598 #, c-format msgid "Unknown subcommand: %s" msgstr "Unbekanntes Unterkommando: %s" +#: builtin/pack-objects.c:23 +msgid "git pack-objects --stdout [options...] [< ref-list | < object-list]" +msgstr "" +"git pack-objects --stdout [Optionen...] [< Referenzliste | < Objektliste]" + +#: builtin/pack-objects.c:24 +msgid "git pack-objects [options...] base-name [< ref-list | < object-list]" +msgstr "" +"git pack-objects [Optionen...] Basis-Name [< Referenzliste | < Objektliste]" + #: builtin/pack-objects.c:183 builtin/pack-objects.c:186 #, c-format msgid "deflate error (%d)" msgstr "Fehler beim Komprimieren (%d)" -#: builtin/pack-objects.c:2398 +#: builtin/pack-objects.c:2397 #, c-format msgid "unsupported index version %s" msgstr "Nicht unterstützte Bereitstellungsversion %s" -#: builtin/pack-objects.c:2402 +#: builtin/pack-objects.c:2401 #, c-format msgid "bad index version '%s'" msgstr "Ungültige Bereitstellungsversion '%s'" -#: builtin/pack-objects.c:2425 +#: builtin/pack-objects.c:2424 #, c-format msgid "option %s does not accept negative form" msgstr "Option %s akzeptiert keine negative Form" -#: builtin/pack-objects.c:2429 +#: builtin/pack-objects.c:2428 #, c-format msgid "unable to parse value '%s' for option %s" msgstr "konnte Wert '%s' für Option %s nicht parsen" +#: builtin/pack-objects.c:2447 +msgid "do not show progress meter" +msgstr "zeigt keine Fortschrittsanzeige" + +#: builtin/pack-objects.c:2449 +msgid "show progress meter" +msgstr "zeigt Fortschrittsanzeige" + +#: builtin/pack-objects.c:2451 +msgid "show progress meter during object writing phase" +msgstr "zeigt Forschrittsanzeige während der Phase des Schreibens der Objekte" + +#: builtin/pack-objects.c:2454 +msgid "similar to --all-progress when progress meter is shown" +msgstr "ähnlich zu --all-progress wenn Fortschrittsanzeige darstellt wird" + +#: builtin/pack-objects.c:2455 +msgid "version[,offset]" +msgstr "version[,offset]" + +#: builtin/pack-objects.c:2456 +msgid "write the pack index file in the specified idx format version" +msgstr "" +"schreibt die Index-Datei des Paketes in der angegebenen Indexformat-Version" + +#: builtin/pack-objects.c:2459 +msgid "maximum size of each output pack file" +msgstr "maximale Größe für jede ausgegebene Paketdatei" + +#: builtin/pack-objects.c:2461 +msgid "ignore borrowed objects from alternate object store" +msgstr "ignoriert geliehene Objekte von alternativem Objektspeicher" + +#: builtin/pack-objects.c:2463 +msgid "ignore packed objects" +msgstr "ignoriert gepackte Objekte" + +#: builtin/pack-objects.c:2465 +msgid "limit pack window by objects" +msgstr "begrenzt Paketfenster durch Objekte" + +#: builtin/pack-objects.c:2467 +msgid "limit pack window by memory in addition to object limit" +msgstr "begrenzt Paketfenster, zusätzlich zur Objektbegrenzung, durch Speicher" + +#: builtin/pack-objects.c:2469 +msgid "maximum length of delta chain allowed in the resulting pack" +msgstr "" +"maximale Länge der erlaubten Differenzverkettung im resultierenden Paket" + +#: builtin/pack-objects.c:2471 +msgid "reuse existing deltas" +msgstr "verwendet existierende Unterschiede wieder" + +#: builtin/pack-objects.c:2473 +msgid "reuse existing objects" +msgstr "verwendet existierende Objekte wieder" + +#: builtin/pack-objects.c:2475 +msgid "use OFS_DELTA objects" +msgstr "benutzt OFS_DELTA Objekte" + +#: builtin/pack-objects.c:2477 +msgid "use threads when searching for best delta matches" +msgstr "" +"benutzt Threads bei der Suche nach den besten Ãœbereinstimmungen bei " +"Unterschieden" + +#: builtin/pack-objects.c:2479 +msgid "do not create an empty pack output" +msgstr "erzeugt keine leeren Pakete" + +#: builtin/pack-objects.c:2481 +msgid "read revision arguments from standard input" +msgstr "liest Argumente bezüglich Revisionen von der Standard-Eingabe" + +#: builtin/pack-objects.c:2483 +msgid "limit the objects to those that are not yet packed" +msgstr "begrenzt die Objekte zu solchen, die noch nicht gepackt wurden" + +#: builtin/pack-objects.c:2486 +msgid "include objects reachable from any reference" +msgstr "schließt Objekte ein, die von jeder Referenz erreichbar sind" + +#: builtin/pack-objects.c:2489 +msgid "include objects referred by reflog entries" +msgstr "" +"schließt Objekte ein, die von Einträgen des Referenzprotokolls referenziert " +"werden" + +#: builtin/pack-objects.c:2492 +msgid "output pack to stdout" +msgstr "schreibt Paket in die Standard-Ausgabe" + +#: builtin/pack-objects.c:2494 +msgid "include tag objects that refer to objects to be packed" +msgstr "" +"schließt Markierungsobjekte ein, die auf gepackte Objekte referenzieren" + +#: builtin/pack-objects.c:2496 +msgid "keep unreachable objects" +msgstr "behält nicht erreichbare Objekte" + +#: builtin/pack-objects.c:2497 parse-options.h:141 +msgid "time" +msgstr "Zeit" + +#: builtin/pack-objects.c:2498 +msgid "unpack unreachable objects newer than <time>" +msgstr "entpackt nicht erreichbare Objekte, die neuer als <Zeit> sind" + +#: builtin/pack-objects.c:2501 +msgid "create thin packs" +msgstr "erzeugt dünnere Pakete" + +#: builtin/pack-objects.c:2503 +msgid "ignore packs that have companion .keep file" +msgstr "ignoriert Pakete die .keep Dateien haben" + +#: builtin/pack-objects.c:2505 +msgid "pack compression level" +msgstr "Komprimierungsgrad für Paketierung" + +#: builtin/pack-objects.c:2507 +msgid "do not hide commits by grafts" +msgstr "verbirgt keine Versionen mit künstlichen Vorgängern (\"grafts\")" + +#: builtin/pack-refs.c:6 +msgid "git pack-refs [options]" +msgstr "git pack-refs [Optionen]" + +#: builtin/pack-refs.c:14 +msgid "pack everything" +msgstr "packt alles" + +#: builtin/pack-refs.c:15 +msgid "prune loose refs (default)" +msgstr "entfernt lose Referenzen (Standard)" + +#: builtin/prune-packed.c:7 +msgid "git prune-packed [-n|--dry-run] [-q|--quiet]" +msgstr "git prune-packed [-n|--dry-run] [-q|--quiet]" + +#: builtin/prune.c:12 +msgid "git prune [-n] [-v] [--expire <time>] [--] [<head>...]" +msgstr "git prune [-n] [-v] [--expire <Zeit>] [--] [<Zweigspitze>...]" + +#: builtin/prune.c:132 +msgid "do not remove, show only" +msgstr "nicht löschen, nur anzeigen" + +#: builtin/prune.c:133 +msgid "report pruned objects" +msgstr "meldet gelöschte Objekte" + +#: builtin/prune.c:136 +msgid "expire objects older than <time>" +msgstr "lässt Objekte älter als <Zeit> verfallen" + +#: builtin/push.c:14 +msgid "git push [<options>] [<repository> [<refspec>...]]" +msgstr "git push [<Optionen>] [<Projektarchiv> [<Referenzspezifikation>...]]" + #: builtin/push.c:45 msgid "tag shorthand without <tag>" msgstr "Kurzschrift für Markierung ohne <Markierung>" @@ -4434,20 +6985,20 @@ msgstr "" "'push.default' ist nicht gesetzt; der implizit gesetzte Wert\n" "wird in Git 2.0 von 'matching' nach 'simple' geändert. Um diese Meldung zu\n" "unterdrücken und das aktuelle Verhalten nach Änderung des Standardwertes\n" -"beizubehalten, benutze:" -"\n" +"beizubehalten, benutze:\n" " git config --global push.default matching\n" "\n" -"Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu übernehmen,\n" +"Um diese Meldung zu unterdrücken und das neue Verhalten jetzt zu " +"übernehmen,\n" "benutze:\n" "\n" " git config --global push.default simple\n" "\n" "Führe 'git help config' aus und suche nach 'push.default' für weitere " "Informationen.\n" -"(Der Modus 'simple' wurde in Git 1.7.11 eingeführt. Benutze den ähnlichen" -" Modus 'current' anstatt 'simple', falls du gelegentlich ältere Versionen von" -" Git benutzt.)" +"(Der Modus 'simple' wurde in Git 1.7.11 eingeführt. Benutze den ähnlichen " +"Modus 'current' anstatt 'simple', falls du gelegentlich ältere Versionen von " +"Git benutzt.)" #: builtin/push.c:199 msgid "" @@ -4555,6 +7106,55 @@ msgstr "--mirror kann nicht mit Referenzspezifikationen kombiniert werden" msgid "--all and --mirror are incompatible" msgstr "--all und --mirror sind inkompatibel" +#: builtin/push.c:382 +msgid "repository" +msgstr "Projektarchiv" + +#: builtin/push.c:383 +msgid "push all refs" +msgstr "versendet alle Referenzen" + +#: builtin/push.c:384 +msgid "mirror all refs" +msgstr "spiegelt alle Referenzen" + +#: builtin/push.c:386 +msgid "delete refs" +msgstr "löscht Referenzen" + +#: builtin/push.c:387 +msgid "push tags (can't be used with --all or --mirror)" +msgstr "" +"versendet Markierungen (kann nicht mit --all oder --mirror benutzt werden)" + +#: builtin/push.c:390 +msgid "force updates" +msgstr "erzwingt Aktualisierung" + +#: builtin/push.c:391 +msgid "check" +msgstr "" + +#: builtin/push.c:392 +msgid "control recursive pushing of submodules" +msgstr "steuert rekursives Versenden von Unterprojekten" + +#: builtin/push.c:394 +msgid "use thin pack" +msgstr "benutzt kleinere Pakete" + +#: builtin/push.c:395 builtin/push.c:396 +msgid "receive pack program" +msgstr "'receive pack' Programm" + +#: builtin/push.c:397 +msgid "set upstream for git pull/status" +msgstr "setzt externes Projektarchiv für \"git pull/status\"" + +#: builtin/push.c:400 +msgid "prune locally removed refs" +msgstr "entfernt lokal gelöschte Referenzen" + #: builtin/push.c:410 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "--delete ist inkompatibel mit --all, --mirror und --tags" @@ -4563,6 +7163,163 @@ msgstr "--delete ist inkompatibel mit --all, --mirror und --tags" msgid "--delete doesn't make sense without any refs" msgstr "--delete macht ohne irgendeine Referenz keinen Sinn" +#: builtin/read-tree.c:36 +msgid "" +"git read-tree [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>] " +"[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--" +"index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])" +msgstr "" +"git read-tree [[-m [--trivial] [--aggressive] | --reset | --prefix=<Prefix>] " +"[-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--" +"index-output=<Datei>] (--empty | <Versionsreferenz1> [<Versionsreferenz2> " +"[<Versionsreferenz3>]])" + +#: builtin/read-tree.c:108 +msgid "write resulting index to <file>" +msgstr "schreibt resultierende Bereitstellung nach <Datei>" + +#: builtin/read-tree.c:111 +msgid "only empty the index" +msgstr "leert die Bereitstellung" + +#: builtin/read-tree.c:113 +msgid "Merging" +msgstr "Zusammenführung" + +#: builtin/read-tree.c:115 +msgid "perform a merge in addition to a read" +msgstr "führt eine Zusammenführung zusätzlich zum Lesen aus" + +#: builtin/read-tree.c:117 +msgid "3-way merge if no file level merging required" +msgstr "" +"3-Wege-Zusammenführung, wenn keine Zusammenführung auf Dateiebene " +"erforderlich ist" + +#: builtin/read-tree.c:119 +msgid "3-way merge in presence of adds and removes" +msgstr "" +"3-Wege-Zusammenführung bei Vorhandensein von hinzugefügten/entfernten Zeilen" + +#: builtin/read-tree.c:121 +msgid "same as -m, but discard unmerged entries" +msgstr "genau wie -m, verwirft aber nicht zusammengeführte Einträge" + +#: builtin/read-tree.c:122 +msgid "<subdirectory>/" +msgstr "<Unterverzeichnis>/" + +#: builtin/read-tree.c:123 +msgid "read the tree into the index under <subdirectory>/" +msgstr "liest den Baum in die Bereitstellung unter <Unterverzeichnis>/" + +#: builtin/read-tree.c:126 +msgid "update working tree with merge result" +msgstr "aktualisiert Arbeitsbaum mit Ergebnis der Zusammenführung" + +#: builtin/read-tree.c:128 +msgid "gitignore" +msgstr "gitignore" + +#: builtin/read-tree.c:129 +msgid "allow explicitly ignored files to be overwritten" +msgstr "erlaubt explizit ignorierte Dateien zu überschreiben" + +#: builtin/read-tree.c:132 +msgid "don't check the working tree after merging" +msgstr "prüft nicht den Arbeitsbaum nach der Zusammenführung" + +#: builtin/read-tree.c:133 +msgid "don't update the index or the work tree" +msgstr "aktualisiert weder die Bereitstellung, noch den Arbeitsbaum" + +#: builtin/read-tree.c:135 +msgid "skip applying sparse checkout filter" +msgstr "überspringt Anwendung des Filters für spärliches Auschecken" + +#: builtin/read-tree.c:137 +msgid "debug unpack-trees" +msgstr "protokolliert Entpacken der Bäume" + +#: builtin/remote.c:11 +msgid "git remote [-v | --verbose]" +msgstr "git remote [-v | --verbose]" + +#: builtin/remote.c:12 +msgid "" +"git remote add [-t <branch>] [-m <master>] [-f] [--tags|--no-tags] [--" +"mirror=<fetch|push>] <name> <url>" +msgstr "" +"git remote add [-t <Zweig>] [-m <master>] [-f] [--tags|--no-tags] [--" +"mirror=<fetch|push>] <Name> <URL>" + +#: builtin/remote.c:13 builtin/remote.c:32 +msgid "git remote rename <old> <new>" +msgstr "git remote rename <alt> <neu>" + +#: builtin/remote.c:14 builtin/remote.c:37 +msgid "git remote remove <name>" +msgstr "git remote remove <Name>" + +#: builtin/remote.c:15 builtin/remote.c:42 +msgid "git remote set-head <name> (-a | -d | <branch>)" +msgstr "git remote set-head <Name> (-a | -d | <Zweig>)" + +#: builtin/remote.c:16 +msgid "git remote [-v | --verbose] show [-n] <name>" +msgstr "git remote [-v | --verbose] show [-n] <Name>" + +#: builtin/remote.c:17 +msgid "git remote prune [-n | --dry-run] <name>" +msgstr "git remote prune [-n | --dry-run] <Name>" + +#: builtin/remote.c:18 +msgid "" +"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]" +msgstr "" +"git remote [-v | --verbose] update [-p | --prune] [(<Gruppe> | " +"<externesProjektarchiv>)...]" + +#: builtin/remote.c:19 +msgid "git remote set-branches [--add] <name> <branch>..." +msgstr "git remote set-branches [--add] <Name> <Zweig>..." + +#: builtin/remote.c:20 builtin/remote.c:68 +msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]" +msgstr "git remote set-url [--push] <Name> <neueURL> [<alteURL>]" + +#: builtin/remote.c:21 builtin/remote.c:69 +msgid "git remote set-url --add <name> <newurl>" +msgstr "git remote set-url --add <Name> <neueURL>" + +#: builtin/remote.c:22 builtin/remote.c:70 +msgid "git remote set-url --delete <name> <url>" +msgstr "git remote set-url --delete <Name> <URL>" + +#: builtin/remote.c:27 +msgid "git remote add [<options>] <name> <url>" +msgstr "git remote add [<Optionen>] <Name> <URL>" + +#: builtin/remote.c:47 +msgid "git remote set-branches <name> <branch>..." +msgstr "git remote set-branches <Name> <Zweig>..." + +#: builtin/remote.c:48 +msgid "git remote set-branches --add <name> <branch>..." +msgstr "git remote set-branches --add <Name> <Zweig>..." + +#: builtin/remote.c:53 +msgid "git remote show [<options>] <name>" +msgstr "git remote show [<Optionen>] <Name>" + +#: builtin/remote.c:58 +msgid "git remote prune [<options>] <name>" +msgstr "git remote prune [<Optionen>] <Name>" + +#: builtin/remote.c:63 +msgid "git remote update [<options>] [<group> | <remote>]..." +msgstr "git remote update [<Optionen>] [<Gruppe> | <externesProjektarchiv>]..." + #: builtin/remote.c:98 #, c-format msgid "Updating %s" @@ -4581,6 +7338,35 @@ msgstr "" msgid "unknown mirror argument: %s" msgstr "unbekanntes Argument für Option --mirror: %s" +#: builtin/remote.c:163 +msgid "fetch the remote branches" +msgstr "fordert die externen Zweige an" + +#: builtin/remote.c:165 +msgid "import all tags and associated objects when fetching" +msgstr "importiert alle Markierungen und verbundene Objekte beim Anfordern" + +#: builtin/remote.c:168 +msgid "or do not fetch any tag at all (--no-tags)" +msgstr "oder fordere gar keine Zweige an (--no-tags)" + +#: builtin/remote.c:170 +msgid "branch(es) to track" +msgstr "Zweige zur Ãœbernahme" + +#: builtin/remote.c:171 +msgid "master branch" +msgstr "Hauptzweig" + +#: builtin/remote.c:172 +msgid "push|fetch" +msgstr "push|fetch" + +#: builtin/remote.c:173 +msgid "set up remote as a mirror to push to or fetch from" +msgstr "" +"Aufsetzen des Fernarchivs als Spiegelarchiv zum Versenden und Anfordern" + #: builtin/remote.c:185 msgid "specifying a master branch makes no sense with --mirror" msgstr "Angabe eines Hauptzweiges macht mit --mirror keinen Sinn" @@ -4588,7 +7374,7 @@ msgstr "Angabe eines Hauptzweiges macht mit --mirror keinen Sinn" #: builtin/remote.c:187 msgid "specifying branches to track makes sense only with fetch mirrors" msgstr "" -"die Angabe von zu folgenden Zweigen macht nur mit dem Abholen von " +"die Angabe von zu folgenden Zweigen macht nur mit dem Anfordern von " "Spiegelarchiven Sinn" #: builtin/remote.c:195 builtin/remote.c:646 @@ -4679,7 +7465,7 @@ msgstr "Konnte '%s' nicht erstellen" #: builtin/remote.c:764 #, c-format msgid "Could not remove branch %s" -msgstr "Konnte Zweig %s nicht entfernen" +msgstr "Konnte Zweig %s nicht löschen" #: builtin/remote.c:834 msgid "" @@ -4690,8 +7476,8 @@ msgid_plural "" "to delete them, use:" msgstr[0] "" "Hinweis: Ein Zweig außerhalb der /refs/remotes/ Hierachie wurde nicht " -"entfernt;\n" -"um diesen zu entfernen, benutze:" +"gelöscht;\n" +"um diesen zu löschen, benutze:" msgstr[1] "" "Hinweis: Einige Zweige außer der /refs/remotes/ Hierarchie wurden nicht " "entfernt;\n" @@ -4708,7 +7494,7 @@ msgstr " gefolgt" #: builtin/remote.c:948 msgid " stale (use 'git remote prune' to remove)" -msgstr " veraltet (benutze 'git remote prune' zum Entfernen)" +msgstr " veraltet (benutze 'git remote prune' zum Löschen)" #: builtin/remote.c:950 msgid " ???" @@ -4782,6 +7568,10 @@ msgstr " %-*s erzwingt Versand nach %s" msgid " %-*s pushes to %s" msgstr " %-*s versendet nach %s" +#: builtin/remote.c:1091 +msgid "do not query remotes" +msgstr "keine Abfrage von Fernarchiven" + #: builtin/remote.c:1118 #, c-format msgid "* remote %s" @@ -4842,6 +7632,14 @@ msgid_plural " Local refs configured for 'git push'%s:" msgstr[0] " Lokale Referenz konfiguriert für 'git push'%s:" msgstr[1] " Lokale Referenzen konfiguriert für 'git push'%s:" +#: builtin/remote.c:1199 +msgid "set refs/remotes/<name>/HEAD according to remote" +msgstr "setzt refs/remotes/<Name>/HEAD gemäß dem Fernarchiv" + +#: builtin/remote.c:1201 +msgid "delete refs/remotes/<name>/HEAD" +msgstr "entfernt refs/remotes/<Name>/HEAD" + #: builtin/remote.c:1216 msgid "Cannot determine remote HEAD" msgstr "Kann Hauptzweig des externen Projektarchivs nicht bestimmen" @@ -4897,15 +7695,35 @@ msgstr " * [würde veralteten Zweig entfernen] %s" msgid " * [pruned] %s" msgstr "* [veralteten Zweig entfernt] %s" +#: builtin/remote.c:1321 +msgid "prune remotes after fetching" +msgstr "entfernt veraltete Zweige im Fernarchiv nach dem Abholen" + #: builtin/remote.c:1387 builtin/remote.c:1461 #, c-format msgid "No such remote '%s'" msgstr "Kein solches externes Projektarchiv '%s'" +#: builtin/remote.c:1407 +msgid "add branch" +msgstr "fügt Zweig hinzu" + #: builtin/remote.c:1414 msgid "no remote specified" msgstr "kein externes Projektarchiv angegeben" +#: builtin/remote.c:1436 +msgid "manipulate push URLs" +msgstr "manipuliert URLs zum Versenden" + +#: builtin/remote.c:1438 +msgid "add URL" +msgstr "fügt URL hinzu" + +#: builtin/remote.c:1440 +msgid "delete URLs" +msgstr "löscht URLs" + #: builtin/remote.c:1447 msgid "--add --delete doesn't make sense" msgstr "--add --delete macht keinen Sinn" @@ -4924,6 +7742,56 @@ msgstr "Keine solche URL gefunden: %s" msgid "Will not delete all non-push URLs" msgstr "Werde keine URLs entfernen, die nicht für den Versand bestimmt sind" +#: builtin/remote.c:1569 +msgid "be verbose; must be placed before a subcommand" +msgstr "erweiterte Ausgaben; muss vor einem Unterkommando angegeben werden" + +#: builtin/replace.c:17 +msgid "git replace [-f] <object> <replacement>" +msgstr "git replace [-f] <Objekt> <Ersetzung>" + +#: builtin/replace.c:18 +msgid "git replace -d <object>..." +msgstr "git replace -d <Objekt>..." + +#: builtin/replace.c:19 +msgid "git replace -l [<pattern>]" +msgstr "git replace -l [<Muster>]" + +#: builtin/replace.c:121 +msgid "list replace refs" +msgstr "listet ersetzende Referenzen auf" + +#: builtin/replace.c:122 +msgid "delete replace refs" +msgstr "löscht ersetzende Referenzen" + +#: builtin/replace.c:123 +msgid "replace the ref if it exists" +msgstr "ersetzt die Referenz, wenn sie existiert" + +#: builtin/rerere.c:11 +msgid "git rerere [clear | forget path... | status | remaining | diff | gc]" +msgstr "git rerere [clean | forget path... | status | remaining | diff | gc]" + +#: builtin/rerere.c:56 +msgid "register clean resolutions in index" +msgstr "registriert saubere Auflösungen in der Bereitstellung" + +#: builtin/reset.c:25 +msgid "" +"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]" +msgstr "" +"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<Version>]" + +#: builtin/reset.c:26 +msgid "git reset [-q] <commit> [--] <paths>..." +msgstr "git reset [-q] <Version> [--] <Pfade>..." + +#: builtin/reset.c:27 +msgid "git reset --patch [<commit>] [--] [<paths>...]" +msgstr "git reset --patch [<Version>] [--] [<Pfade>...]" + #: builtin/reset.c:33 msgid "mixed" msgstr "mixed" @@ -4981,6 +7849,26 @@ msgstr "" "Kann keine '%s' Zurücksetzung durchführen, während eine Zusammenführung im " "Gange ist." +#: builtin/reset.c:238 +msgid "be quiet, only report errors" +msgstr "weniger Ausgaben, meldet nur Fehler" + +#: builtin/reset.c:240 +msgid "reset HEAD and index" +msgstr "setzt Zweigspitze (HEAD) und Bereitstellung zurück" + +#: builtin/reset.c:241 +msgid "reset only HEAD" +msgstr "setzt nur Zweigspitze (HEAD) zurück" + +#: builtin/reset.c:243 builtin/reset.c:245 +msgid "reset HEAD, index and working tree" +msgstr "setzt Zweigspitze (HEAD), Bereitstellung und Arbeitsbaum zurück" + +#: builtin/reset.c:247 +msgid "reset HEAD but keep local changes" +msgstr "setzt Zweigspitze (HEAD) zurück, behält aber lokale Änderungen" + #: builtin/reset.c:303 #, c-format msgid "Could not parse object '%s'." @@ -5010,24 +7898,137 @@ msgstr "'%s' Zurücksetzung ist in einem bloßen Projektarchiv nicht erlaubt" msgid "Could not reset index file to revision '%s'." msgstr "Konnte Bereitstellungsdatei nicht zu Version '%s' zurücksetzen." +#: builtin/rev-parse.c:339 +msgid "git rev-parse --parseopt [options] -- [<args>...]" +msgstr "git rev-parse --parseopt [Optionen] -- [<Argumente>...]" + +#: builtin/rev-parse.c:344 +msgid "keep the `--` passed as an arg" +msgstr "lässt `--` als Argument" + +#: builtin/rev-parse.c:346 +msgid "stop parsing after the first non-option argument" +msgstr "stoppt das Parsen nach dem ersten Argument was keine Option ist" + +#: builtin/rev-parse.c:464 +msgid "" +"git rev-parse --parseopt [options] -- [<args>...]\n" +" or: git rev-parse --sq-quote [<arg>...]\n" +" or: git rev-parse [options] [<arg>...]\n" +"\n" +"Run \"git rev-parse --parseopt -h\" for more information on the first usage." +msgstr "" +"git rev-parse --parseopt [Optionen] -- [<Argumente>...]\n" +" oder: git rev-parse --sq-quote [<Argumente>...]\n" +" oder: git rev-parse [Optionen] [<Argumente>...]\n" +"\n" +"Führe \"git rev-parse --parseopt -h\" für weitere Informationen bei erster " +"Verwendung aus." + +#: builtin/revert.c:22 +msgid "git revert [options] <commit-ish>" +msgstr "git revert [options] <Versionsangabe>" + +#: builtin/revert.c:23 +msgid "git revert <subcommand>" +msgstr "git revert <Unterkommando>" + +#: builtin/revert.c:28 +msgid "git cherry-pick [options] <commit-ish>" +msgstr "git cherry-pick [Optionen] <Versionsangabe>" + +#: builtin/revert.c:29 +msgid "git cherry-pick <subcommand>" +msgstr "git cherry-pick <Unterkommando>" + #: builtin/revert.c:70 builtin/revert.c:92 #, c-format msgid "%s: %s cannot be used with %s" msgstr "%s: %s kann nicht mit %s benutzt werden" -#: builtin/revert.c:131 +#: builtin/revert.c:103 +msgid "end revert or cherry-pick sequence" +msgstr "beendet \"revert\" oder \"cherry-pick\" Ablauf" + +#: builtin/revert.c:104 +msgid "resume revert or cherry-pick sequence" +msgstr "setzt \"revert\" oder \"cherry-pick\" Ablauf fort" + +#: builtin/revert.c:105 +msgid "cancel revert or cherry-pick sequence" +msgstr "bricht \"revert\" oder \"cherry-pick\" Ablauf ab" + +#: builtin/revert.c:106 +msgid "don't automatically commit" +msgstr "trägt nicht automatisch ein" + +#: builtin/revert.c:107 +msgid "edit the commit message" +msgstr "Bearbeitung der Versionsbeschreibung" + +#: builtin/revert.c:110 +msgid "parent number" +msgstr "Nummer des Elternteils" + +#: builtin/revert.c:112 +msgid "merge strategy" +msgstr "Zusammenführungsstrategie" + +#: builtin/revert.c:113 +msgid "option" +msgstr "Option" + +#: builtin/revert.c:114 +msgid "option for merge strategy" +msgstr "Option für Zusammenführungsstrategie" + +#: builtin/revert.c:125 +msgid "append commit name" +msgstr "hängt Versionsnamen an" + +#: builtin/revert.c:126 +msgid "allow fast-forward" +msgstr "erlaubt Vorspulen" + +#: builtin/revert.c:127 +msgid "preserve initially empty commits" +msgstr "erhält ursprüngliche, leere Versionen" + +#: builtin/revert.c:128 +msgid "allow commits with empty messages" +msgstr "erlaubt Version mit leerer Beschreibung" + +#: builtin/revert.c:129 +msgid "keep redundant, empty commits" +msgstr "behält redundante, leere Versionen" + +#: builtin/revert.c:133 msgid "program error" msgstr "Programmfehler" -#: builtin/revert.c:221 +#: builtin/revert.c:223 msgid "revert failed" msgstr "\"revert\" fehlgeschlagen" -#: builtin/revert.c:236 +#: builtin/revert.c:238 msgid "cherry-pick failed" msgstr "\"cherry-pick\" fehlgeschlagen" -#: builtin/rm.c:109 +#: builtin/rm.c:15 +msgid "git rm [options] [--] <file>..." +msgstr "git rm [Optionen] [--] [<Datei>...]" + +#: builtin/rm.c:64 builtin/rm.c:186 +#, c-format +msgid "" +"submodule '%s' (or one of its nested submodules) uses a .git directory\n" +"(use 'rm -rf' if you really want to remove it including all of its history)" +msgstr "" +"Unterprojekt '%s' (oder ein geschachteltes Unterprojekt hiervon) verwendet\n" +"ein .git-Verzeichnis (benutze 'rm -rf' wenn du dieses wirklich mitsamt\n" +"seiner Historie löschen möchtest)" + +#: builtin/rm.c:174 #, c-format msgid "" "'%s' has staged content different from both the file and the HEAD\n" @@ -5036,7 +8037,7 @@ msgstr "" "'%s' hat bereitgestellten Inhalt unterschiedlich zu der Datei und der\n" "Zweigspitze (HEAD) (benutze -f um die Entfernung zu erzwingen)" -#: builtin/rm.c:115 +#: builtin/rm.c:180 #, c-format msgid "" "'%s' has changes staged in the index\n" @@ -5046,7 +8047,7 @@ msgstr "" "(benutze --cached um die Datei zu behalten, oder -f um die Entfernung zu " "erzwingen)" -#: builtin/rm.c:119 +#: builtin/rm.c:191 #, c-format msgid "" "'%s' has local modifications\n" @@ -5056,21 +8057,248 @@ msgstr "" "(benutze --cached um die Datei zu behalten, oder -f um die Entfernung zu " "erzwingen)" -#: builtin/rm.c:194 +#: builtin/rm.c:207 +msgid "do not list removed files" +msgstr "listet keine gelöschten Dateien auf" + +#: builtin/rm.c:208 +msgid "only remove from the index" +msgstr "entfernt nur aus der Bereitstellung" + +#: builtin/rm.c:209 +msgid "override the up-to-date check" +msgstr "überschreibt die \"up-to-date\" Prüfung" + +#: builtin/rm.c:210 +msgid "allow recursive removal" +msgstr "erlaubt rekursive Entfernung" + +#: builtin/rm.c:212 +msgid "exit with a zero status even if nothing matched" +msgstr "beendet mit Rückgabewert 0, wenn keine Ãœbereinstimmung gefunden wurde" + +#: builtin/rm.c:283 #, c-format msgid "not removing '%s' recursively without -r" msgstr "'%s' wird nicht ohne -r rekursiv entfernt" -#: builtin/rm.c:230 +#: builtin/rm.c:322 #, c-format msgid "git rm: unable to remove %s" -msgstr "git rm: konnte %s nicht entfernen" +msgstr "git rm: konnte %s nicht löschen" + +#: builtin/shortlog.c:13 +msgid "git shortlog [-n] [-s] [-e] [-w] [rev-opts] [--] [<commit-id>... ]" +msgstr "" +"git shortlog [-n] [-s] [-e] [-w] [rev-opts] [--] " +"[<Versionsidentifikation>... ]" #: builtin/shortlog.c:157 #, c-format msgid "Missing author: %s" msgstr "fehlender Autor: %s" +#: builtin/shortlog.c:253 +msgid "sort output according to the number of commits per author" +msgstr "sortiert die Ausgabe entsprechend der Anzahl von Versionen pro Autor" + +#: builtin/shortlog.c:255 +msgid "Suppress commit descriptions, only provides commit count" +msgstr "Unterdrückt Versionsbeschreibungen, liefert nur Anzahl der Versionen" + +#: builtin/shortlog.c:257 +msgid "Show the email address of each author" +msgstr "Zeigt die Email-Adresse von jedem Autor" + +#: builtin/shortlog.c:258 +msgid "w[,i1[,i2]]" +msgstr "w[,i1[,i2]]" + +#: builtin/shortlog.c:259 +msgid "Linewrap output" +msgstr "Ausgabe mit Zeilenumbrüchen" + +#: builtin/show-branch.c:9 +msgid "" +"git show-branch [-a|--all] [-r|--remotes] [--topo-order | --date-order] [--" +"current] [--color[=<when>] | --no-color] [--sparse] [--more=<n> | --list | --" +"independent | --merge-base] [--no-name | --sha1-name] [--topics] [(<rev> | " +"<glob>)...]" +msgstr "" +"git show-branch [-a|--all] [-r|--remotes] [--topo-order | --date-order] [--" +"current] [--color[=<Wann>] | --no-color] [--sparse] [--more=<n> | --list | --" +"independent | --merge-base] [--no-name | --sha1-name] [--topics] " +"[(<Revision> | <glob>)...]" + +#: builtin/show-branch.c:10 +msgid "git show-branch (-g|--reflog)[=<n>[,<base>]] [--list] [<ref>]" +msgstr "git show-branch (-g|--reflog)[=<n>[,<Basis>]] [--list] [<Referenz>]" + +#: builtin/show-branch.c:651 +msgid "show remote-tracking and local branches" +msgstr "zeigt externe Ãœbernahmezweige und lokale Zweige an" + +#: builtin/show-branch.c:653 +msgid "show remote-tracking branches" +msgstr "zeigt externe Ãœbernahmezweige an" + +#: builtin/show-branch.c:655 +msgid "color '*!+-' corresponding to the branch" +msgstr "färbt '*!+-' entsprechend des Zweiges ein" + +#: builtin/show-branch.c:657 +msgid "show <n> more commits after the common ancestor" +msgstr "zeigt <n> weitere Versionen nach dem gemeinsamen Vorfahren" + +#: builtin/show-branch.c:659 +msgid "synonym to more=-1" +msgstr "Synonym für more=-1" + +#: builtin/show-branch.c:660 +msgid "suppress naming strings" +msgstr "unterdrückt Namen" + +#: builtin/show-branch.c:662 +msgid "include the current branch" +msgstr "bezieht den aktuellen Zweig ein" + +#: builtin/show-branch.c:664 +msgid "name commits with their object names" +msgstr "benennt Versionen nach ihren Objektnamen" + +#: builtin/show-branch.c:666 +msgid "show possible merge bases" +msgstr "zeigt mögliche Basen für Zusammenführung" + +#: builtin/show-branch.c:668 +msgid "show refs unreachable from any other ref" +msgstr "zeigt Referenzen die unerreichbar von allen anderen Referenzen sind" + +#: builtin/show-branch.c:670 +msgid "show commits in topological order" +msgstr "zeigt Versionen in topologischer Ordnung" + +#: builtin/show-branch.c:672 +msgid "show only commits not on the first branch" +msgstr "zeigt nur Versionen, die sich nicht im ersten Zweig befinden" + +#: builtin/show-branch.c:674 +msgid "show merges reachable from only one tip" +msgstr "" +"zeigt Zusammenführungen, die nur von einer Zweigspitze aus erreichbar sind" + +#: builtin/show-branch.c:676 +msgid "show commits where no parent comes before its children" +msgstr "zeigt Versionen, wo kein Elternteil vor seinem Kind kommt" + +#: builtin/show-branch.c:678 +msgid "<n>[,<base>]" +msgstr "<n>[,<Basis>]" + +#: builtin/show-branch.c:679 +msgid "show <n> most recent ref-log entries starting at base" +msgstr "" +"zeigt die <n> jüngsten Einträge im Referenzprotokoll beginnend an der Basis" + +#: builtin/show-ref.c:10 +msgid "" +"git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--hash" +"[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [pattern*] " +msgstr "" +"git show-ref [-q|--quiet] [--verify] [--head] [-d|--dereference] [-s|--hash" +"[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [pattern*] " + +#: builtin/show-ref.c:11 +msgid "git show-ref --exclude-existing[=pattern] < ref-list" +msgstr "git show-ref --exclude-existing[=Muster] < ref-list" + +#: builtin/show-ref.c:165 +msgid "only show tags (can be combined with heads)" +msgstr "zeigt nur Markierungen (kann mit \"heads\" kombiniert werden)" + +#: builtin/show-ref.c:166 +msgid "only show heads (can be combined with tags)" +msgstr "zeigt nur Zweigspitzen (kann mit \"tags\" kombiniert werden)" + +#: builtin/show-ref.c:167 +msgid "stricter reference checking, requires exact ref path" +msgstr "strengere Referenzprüfung, erfordert exakten Referenzpfad" + +#: builtin/show-ref.c:170 builtin/show-ref.c:172 +msgid "show the HEAD reference" +msgstr "zeigt Referenz der Zweigspitze (HEAD)" + +#: builtin/show-ref.c:174 +msgid "dereference tags into object IDs" +msgstr "dereferenziert Markierungen in Objekt-Identifikationen" + +#: builtin/show-ref.c:176 +msgid "only show SHA1 hash using <n> digits" +msgstr "zeigt nur SHA1 Hash mit <n> Ziffern" + +#: builtin/show-ref.c:180 +msgid "do not print results to stdout (useful with --verify)" +msgstr "" +"keine Ausgabe der Ergebnisse in die Standard-Ausgabe (nützlich mit --verify)" + +#: builtin/show-ref.c:182 +msgid "show refs from stdin that aren't in local repository" +msgstr "" +"zeigt Referenzen von der Standard-Eingabe, die sich nicht im lokalen " +"Projektarchiv befinden, an" + +#: builtin/symbolic-ref.c:7 +msgid "git symbolic-ref [options] name [ref]" +msgstr "git symbolic-ref [Optionen] name [ref]" + +#: builtin/symbolic-ref.c:8 +msgid "git symbolic-ref -d [-q] name" +msgstr "git symbolic-ref -d [-q] name" + +#: builtin/symbolic-ref.c:40 +msgid "suppress error message for non-symbolic (detached) refs" +msgstr "" +"unterdrückt Fehlermeldungen für nicht-symbolische (losgelöste) Referenzen" + +#: builtin/symbolic-ref.c:41 +msgid "delete symbolic ref" +msgstr "löscht symbolische Referenzen" + +#: builtin/symbolic-ref.c:42 +msgid "shorten ref output" +msgstr "verkürzte Ausgabe der Referenzen" + +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18 +msgid "reason" +msgstr "Grund" + +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18 +msgid "reason of the update" +msgstr "Grund für die Aktualisierung" + +#: builtin/tag.c:22 +msgid "" +"git tag [-a|-s|-u <key-id>] [-f] [-m <msg>|-F <file>] <tagname> [<head>]" +msgstr "" +"git tag [-a|-s|-u <Schlüssel-id>] [-f] [-m <Nachricht>|-F <Datei>] " +"<Markierungsname> [<Zweig>]" + +#: builtin/tag.c:23 +msgid "git tag -d <tagname>..." +msgstr "git tag -d <Markierungsname>..." + +#: builtin/tag.c:24 +msgid "" +"git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>] \n" +"\t\t[<pattern>...]" +msgstr "" +"git tag -l [-n[<Nummer>]] [--contains <Version>] [--points-at <Objekt>] \n" +"\t\t[<Muster>...]" + +#: builtin/tag.c:26 +msgid "git tag -v <tagname>..." +msgstr "git tag -v <Markierungsname>..." + #: builtin/tag.c:60 #, c-format msgid "malformed object at '%s'" @@ -5160,6 +8388,62 @@ msgstr "Option 'points-at' erfordert ein Objekt" msgid "malformed object name '%s'" msgstr "fehlerhafter Objekt-Name '%s'" +#: builtin/tag.c:447 +msgid "list tag names" +msgstr "listet Markierungsnamen auf" + +#: builtin/tag.c:449 +msgid "print <n> lines of each tag message" +msgstr "zeigt <n> Zeilen jeder Markierungsbeschreibung" + +#: builtin/tag.c:451 +msgid "delete tags" +msgstr "löscht Markierungen" + +#: builtin/tag.c:452 +msgid "verify tags" +msgstr "überprüft Markierungen" + +#: builtin/tag.c:454 +msgid "Tag creation options" +msgstr "Optionen für Erstellung von Markierungen" + +#: builtin/tag.c:456 +msgid "annotated tag, needs a message" +msgstr "annotierte Markierung, benötigt eine Beschreibung" + +#: builtin/tag.c:458 +msgid "tag message" +msgstr "Markierungsbeschreibung" + +#: builtin/tag.c:460 +msgid "annotated and GPG-signed tag" +msgstr "annotierte und GPG-signierte Markierung" + +#: builtin/tag.c:464 +msgid "use another key to sign the tag" +msgstr "benutzt einen anderen Schlüssel um die Markierung zu signieren" + +#: builtin/tag.c:465 +msgid "replace the tag if exists" +msgstr "ersetzt die Markierung, wenn sie existiert" + +#: builtin/tag.c:466 +msgid "show tag list in columns" +msgstr "zeigt Liste der Markierungen in Spalten" + +#: builtin/tag.c:468 +msgid "Tag listing options" +msgstr "Optionen für Auflistung der Markierungen" + +#: builtin/tag.c:471 +msgid "print only tags that contain the commit" +msgstr "gibt nur Markierungen aus, die diese Version beinhalten" + +#: builtin/tag.c:477 +msgid "print only tags of the object" +msgstr "gibt nur Markierungen von dem Objekt aus" + #: builtin/tag.c:506 msgid "--column and -n are incompatible" msgstr "--column und -n sind inkompatibel" @@ -5209,27 +8493,191 @@ msgstr "%s: kann Referenz nicht aktualisieren" msgid "Updated tag '%s' (was %s)\n" msgstr "Aktualisierte Markierung '%s' (war %s)\n" -#: git.c:16 -msgid "See 'git help <command>' for more information on a specific command." +#: builtin/update-index.c:401 +msgid "git update-index [options] [--] [<file>...]" +msgstr "git update-index [Optionen] [--] [<Datei>...]" + +#: builtin/update-index.c:718 +msgid "continue refresh even when index needs update" msgstr "" -"Siehe 'git help <Kommando>' für weitere Informationen zu einem spezifischen " -"Kommando" +"Aktualisierung fortsetzen, auch wenn die Bereitstellung aktualisiert werden " +"muss" -#: parse-options.h:133 parse-options.h:235 -msgid "n" -msgstr "Anzahl" +#: builtin/update-index.c:721 +msgid "refresh: ignore submodules" +msgstr "Aktualisierung: ignoriert Unterprojekte" -#: parse-options.h:141 -msgid "time" -msgstr "Zeit" +#: builtin/update-index.c:724 +msgid "do not ignore new files" +msgstr "ignoriert keine neuen Dateien" -#: parse-options.h:149 -msgid "file" -msgstr "Datei" +#: builtin/update-index.c:726 +msgid "let files replace directories and vice-versa" +msgstr "lässt Dateien Verzeichnisse ersetzen, und umgedreht" -#: parse-options.h:151 -msgid "when" -msgstr "wann" +#: builtin/update-index.c:728 +msgid "notice files missing from worktree" +msgstr "beachtet fehlende Dateien im Arbeitsbaum" + +#: builtin/update-index.c:730 +msgid "refresh even if index contains unmerged entries" +msgstr "" +"aktualisiert, auch wenn die Bereitstellung nicht zusammengeführte Einträge " +"beinhaltet" + +#: builtin/update-index.c:733 +msgid "refresh stat information" +msgstr "aktualisiert Dateiinformationen" + +#: builtin/update-index.c:737 +msgid "like --refresh, but ignore assume-unchanged setting" +msgstr "wie --refresh, ignoriert aber \"assume-unchanged\" Einstellung" + +#: builtin/update-index.c:741 +msgid "<mode> <object> <path>" +msgstr "<Modus> <Objekt> <Pfad>" + +#: builtin/update-index.c:742 +msgid "add the specified entry to the index" +msgstr "stellt den angegebenen Eintrag zur Eintragung bereit" + +#: builtin/update-index.c:746 +msgid "(+/-)x" +msgstr "(+/-)x" + +#: builtin/update-index.c:747 +msgid "override the executable bit of the listed files" +msgstr "überschreibt das \"ausführbar\"-Bit der aufgelisteten Dateien" + +#: builtin/update-index.c:751 +msgid "mark files as \"not changing\"" +msgstr "betrachte diese Datei immer als unverändert" + +#: builtin/update-index.c:754 +msgid "clear assumed-unchanged bit" +msgstr "löscht \"assumed-unchanged\"-Bit" + +#: builtin/update-index.c:757 +msgid "mark files as \"index-only\"" +msgstr "markiert Dateien als \"index-only\"" + +#: builtin/update-index.c:760 +msgid "clear skip-worktree bit" +msgstr "löscht \"skip-worktree\"-Bit" + +#: builtin/update-index.c:763 +msgid "add to index only; do not add content to object database" +msgstr "" +"fügt nur der Bereitstellung hinzu; Inhalt wird nicht der Objekt-Datenbank " +"hinzugefügt" + +#: builtin/update-index.c:765 +msgid "remove named paths even if present in worktree" +msgstr "löscht benannte Pfade, auch wenn sie sich im Arbeitsbaum befinden" + +#: builtin/update-index.c:767 +msgid "with --stdin: input lines are terminated by null bytes" +msgstr "mit --stdin: eingegebene Zeilen sind durch NUL-Bytes abgeschlossen" + +#: builtin/update-index.c:769 +msgid "read list of paths to be updated from standard input" +msgstr "liest Liste der zu aktualisierenden Pfade von der Standard-Eingabe" + +#: builtin/update-index.c:773 +msgid "add entries from standard input to the index" +msgstr "fügt Einträge von der Standard-Eingabe der Bereitstellung hinzu" + +#: builtin/update-index.c:777 +msgid "repopulate stages #2 and #3 for the listed paths" +msgstr "" +"wiederholtes Einpflegen der Zustände #2 und #3 für die aufgelisteten Pfade" + +#: builtin/update-index.c:781 +msgid "only update entries that differ from HEAD" +msgstr "" +"aktualisiert nur Einträge, die unterschiedlich zur Zweigspitze (HEAD) sind" + +#: builtin/update-index.c:785 +msgid "ignore files missing from worktree" +msgstr "ignoriert fehlende Dateien im Arbeitsbaum" + +#: builtin/update-index.c:788 +msgid "report actions to standard output" +msgstr "gibt die Aktionen in der Standard-Ausgabe aus" + +#: builtin/update-index.c:790 +msgid "(for porcelains) forget saved unresolved conflicts" +msgstr "(für Fremdprogramme) keine gespeicherten, nicht aufgelöste Konflikte" + +#: builtin/update-index.c:794 +msgid "write index in this format" +msgstr "schreibt Bereitstellungsdatei in diesem Format" + +#: builtin/update-ref.c:7 +msgid "git update-ref [options] -d <refname> [<oldval>]" +msgstr "git update-ref [Optionen] -d <Referenzname> [<alterWert>]" + +#: builtin/update-ref.c:8 +msgid "git update-ref [options] <refname> <newval> [<oldval>]" +msgstr "git update-ref [Optionen] <Referenzname> <neuerWert> [<alterWert>]" + +#: builtin/update-ref.c:19 +msgid "delete the reference" +msgstr "löscht diese Referenz" + +#: builtin/update-ref.c:21 +msgid "update <refname> not the one it points to" +msgstr "aktualisiert <Referenzname>, nicht den Verweis" + +#: builtin/update-server-info.c:6 +msgid "git update-server-info [--force]" +msgstr "git update-server-info [--force]" + +#: builtin/update-server-info.c:14 +msgid "update the info files from scratch" +msgstr "aktualisiert die Informationsdateien von Grund auf" + +#: builtin/verify-pack.c:56 +msgid "git verify-pack [-v|--verbose] [-s|--stat-only] <pack>..." +msgstr "git verify-pack [-v|--verbose] [-s|--stat-only] <Paket>..." + +#: builtin/verify-pack.c:66 +msgid "verbose" +msgstr "erweiterte Ausgaben" + +#: builtin/verify-pack.c:68 +msgid "show statistics only" +msgstr "zeigt nur Statistiken" + +#: builtin/verify-tag.c:17 +msgid "git verify-tag [-v|--verbose] <tag>..." +msgstr "git verify-tag [-v|--verbose] <Markierung>..." + +#: builtin/verify-tag.c:73 +msgid "print tag contents" +msgstr "gibt Markierungsinhalte aus" + +#: builtin/write-tree.c:13 +msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]" +msgstr "git write-tree [--missing-ok] [--prefix=<Prefix>/]" + +#: builtin/write-tree.c:26 +msgid "<prefix>/" +msgstr "<Prefix>/" + +#: builtin/write-tree.c:27 +msgid "write tree object for a subdirectory <prefix>" +msgstr "schreibt das Baumobjekt für ein Unterverzeichnis <Prefix>" + +#: builtin/write-tree.c:30 +msgid "only useful for debugging" +msgstr "nur nützlich für Fehlersuche" + +#: git.c:16 +msgid "See 'git help <command>' for more information on a specific command." +msgstr "" +"Siehe 'git help <Kommando>' für weitere Informationen zu einem spezifischen " +"Kommando" #: parse-options.h:156 msgid "no-op (backward compatibility)" @@ -5457,7 +8905,7 @@ msgstr "" #: git-am.sh:706 msgid "Patch does not have a valid e-mail address." -msgstr "Patch enthält keine gültige eMail-Adresse." +msgstr "Patch enthält keine gültige Email-Adresse." #: git-am.sh:753 msgid "cannot be interactive without stdin connected to a terminal." @@ -5509,6 +8957,15 @@ msgstr "Keine Änderungen -- Patches bereits angewendet." msgid "Patch failed at $msgnum $FIRSTLINE" msgstr "Anwendung des Patches fehlgeschlagen bei $msgnum $FIRSTLINE" +#: git-am.sh:858 +#, sh-format +msgid "" +"The copy of the patch that failed is found in:\n" +" $dotest/patch" +msgstr "" +"Die Kopie des fehlgeschlagenen Patches befindet sich in:\n" +" $dotest/patch" + #: git-am.sh:876 msgid "applying to an empty history" msgstr "wende zu leerer Historie an" @@ -5696,7 +9153,7 @@ msgstr "" #. The working tree and the index file is still based on the #. $orig_head commit, but we are merging into $curr_head. #. First update the working tree to match $curr_head. -#: git-pull.sh:228 +#: git-pull.sh:229 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -5706,15 +9163,15 @@ msgstr "" "Warnung: Die Anforderung aktualisierte die Spitze des aktuellen Zweiges.\n" "Warnung: Spule deinen Arbeitszweig von Version $orig_head vor." -#: git-pull.sh:253 +#: git-pull.sh:254 msgid "Cannot merge multiple branches into empty head" msgstr "Kann nicht mehrere Zweige in einen ungeborenen Zweig zusammenführen" -#: git-pull.sh:257 +#: git-pull.sh:258 msgid "Cannot rebase onto multiple branches" msgstr "kann nicht auf mehrere Zweige neu aufbauen" -#: git-rebase.sh:52 +#: git-rebase.sh:53 msgid "" "When you have resolved this problem, run \"git rebase --continue\".\n" "If you prefer to skip this patch, run \"git rebase --skip\" instead.\n" @@ -5728,27 +9185,32 @@ msgstr "" "abzubrechen,\n" "führe \"git rebase --abort\" aus." -#: git-rebase.sh:159 +#: git-rebase.sh:160 msgid "The pre-rebase hook refused to rebase." msgstr "Der \"pre-rebase hook\" hat den Neuaufbau zurückgewiesen." -#: git-rebase.sh:164 +#: git-rebase.sh:165 msgid "It looks like git-am is in progress. Cannot rebase." msgstr "\"git-am\" scheint im Gange zu sein. Kann nicht neu aufbauen." -#: git-rebase.sh:295 +#: git-rebase.sh:296 msgid "The --exec option must be used with the --interactive option" msgstr "Die --exec Option muss mit der --interactive Option benutzt werden" -#: git-rebase.sh:300 +#: git-rebase.sh:301 msgid "No rebase in progress?" msgstr "Kein Neuaufbau im Gange?" -#: git-rebase.sh:313 +#: git-rebase.sh:312 +msgid "The --edit-todo action can only be used during interactive rebase." +msgstr "Die --edit-todo Aktion kann nur während eines interaktiven " +"Neuaufbaus benutzt werden." + +#: git-rebase.sh:319 msgid "Cannot read HEAD" msgstr "Kann Zweigspitze (HEAD) nicht lesen" -#: git-rebase.sh:316 +#: git-rebase.sh:322 msgid "" "You must edit all merge conflicts and then\n" "mark them as resolved using git add" @@ -5756,12 +9218,12 @@ msgstr "" "Du musst alle Zusammenführungskonflikte editieren und diese dann\n" "mittels \"git add\" als aufgelöst markieren" -#: git-rebase.sh:334 +#: git-rebase.sh:340 #, sh-format msgid "Could not move back to $head_name" msgstr "Konnte nicht zu $head_name zurückgehen" -#: git-rebase.sh:350 +#: git-rebase.sh:359 #, sh-format msgid "" "It seems that there is already a $state_dir_base directory, and\n" @@ -5782,59 +9244,59 @@ msgstr "" "und führe dieses Kommando nochmal aus. Es wird angehalten, falls noch\n" "etwas Schützenswertes vorhanden ist." -#: git-rebase.sh:395 +#: git-rebase.sh:404 #, sh-format msgid "invalid upstream $upstream_name" msgstr "ungültiger Ãœbernahmezweig $upstream_name" -#: git-rebase.sh:419 +#: git-rebase.sh:428 #, sh-format msgid "$onto_name: there are more than one merge bases" msgstr "$onto_name: es gibt mehr als eine Zusammenführungsbasis" -#: git-rebase.sh:422 git-rebase.sh:426 +#: git-rebase.sh:431 git-rebase.sh:435 #, sh-format msgid "$onto_name: there is no merge base" msgstr "$onto_name: es gibt keine Zusammenführungsbasis" -#: git-rebase.sh:431 +#: git-rebase.sh:440 #, sh-format msgid "Does not point to a valid commit: $onto_name" msgstr "$onto_name zeigt auf keine gültige Version" -#: git-rebase.sh:454 +#: git-rebase.sh:463 #, sh-format msgid "fatal: no such branch: $branch_name" msgstr "fatal: Zweig $branch_name nicht gefunden" -#: git-rebase.sh:474 +#: git-rebase.sh:483 msgid "Please commit or stash them." msgstr "Bitte trage die Änderungen ein oder benutze \"stash\"." -#: git-rebase.sh:492 +#: git-rebase.sh:501 #, sh-format msgid "Current branch $branch_name is up to date." msgstr "Aktueller Zweig $branch_name ist auf dem neusten Stand." -#: git-rebase.sh:495 +#: git-rebase.sh:504 #, sh-format msgid "Current branch $branch_name is up to date, rebase forced." msgstr "" "Aktueller Zweig $branch_name ist auf dem neusten Stand, Neuaufbau erzwungen." -#: git-rebase.sh:506 +#: git-rebase.sh:515 #, sh-format msgid "Changes from $mb to $onto:" msgstr "Änderungen von $mb zu $onto:" #. Detach HEAD and reset the tree -#: git-rebase.sh:515 +#: git-rebase.sh:524 msgid "First, rewinding head to replay your work on top of it..." msgstr "" "Zunächst wird die Zweigspitze zurückgespult, um deine Änderungen\n" "darauf neu anzuwenden..." -#: git-rebase.sh:523 +#: git-rebase.sh:532 #, sh-format msgid "Fast-forwarded $branch_name to $onto_name." msgstr "$branch_name zu $onto_name vorgespult." @@ -5861,7 +9323,7 @@ msgstr "Keine Änderungen ausgewählt" #: git-stash.sh:143 msgid "Cannot remove temporary index (can't happen)" -msgstr "Kann temporäre Bereitstellung nicht entfernen (kann nicht passieren)" +msgstr "Kann temporäre Bereitstellung nicht löschen (kann nicht passieren)" #: git-stash.sh:156 msgid "Cannot record working tree state" @@ -5901,7 +9363,7 @@ msgstr "Kann den aktuellen Status nicht speichern" #: git-stash.sh:253 msgid "Cannot remove worktree changes" -msgstr "Kann Änderungen am Arbeitsbaum nicht entfernen" +msgstr "Kann Änderungen am Arbeitsbaum nicht löschen" #: git-stash.sh:352 msgid "No stash found." @@ -5948,34 +9410,34 @@ msgstr "Konnte Bereitstellungsbaum nicht speichern" msgid "Cannot unstage modified files" msgstr "Kann geänderte Dateien nicht aus der Bereitstellung herausnehmen" -#: git-stash.sh:474 +#: git-stash.sh:475 msgid "Index was not unstashed." msgstr "Bereitstellung wurde nicht ausgelagert." -#: git-stash.sh:491 +#: git-stash.sh:492 #, sh-format msgid "Dropped ${REV} ($s)" msgstr "Gelöscht ${REV} ($s)" -#: git-stash.sh:492 +#: git-stash.sh:493 #, sh-format msgid "${REV}: Could not drop stash entry" msgstr "${REV}: Konnte \"stash\"-Eintrag nicht löschen" -#: git-stash.sh:499 +#: git-stash.sh:500 msgid "No branch name specified" msgstr "Kein Zweigname spezifiziert" -#: git-stash.sh:570 +#: git-stash.sh:571 msgid "(To restore them type \"git stash apply\")" msgstr "(Zur Wiederherstellung gebe \"git stash apply\" ein)" -#: git-submodule.sh:88 +#: git-submodule.sh:89 #, sh-format msgid "cannot strip one component off url '$remoteurl'" msgstr "Kann eine Komponente von URL '$remoteurl' nicht extrahieren" -#: git-submodule.sh:167 +#: git-submodule.sh:168 #, sh-format msgid "No submodule mapping found in .gitmodules for path '$sm_path'" msgstr "" @@ -5992,17 +9454,17 @@ msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "" "Git-Verzeichnis '$a' ist Teil des Unterprojekt-Pfades '$b', oder umgekehrt" -#: git-submodule.sh:312 +#: git-submodule.sh:316 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "repo URL: '$repo' muss absolut sein oder mit ./|../ beginnen" -#: git-submodule.sh:329 +#: git-submodule.sh:333 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "'$sm_path' existiert bereits in der Bereitstellung" -#: git-submodule.sh:333 +#: git-submodule.sh:337 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -6013,65 +9475,101 @@ msgstr "" "$sm_path\n" "Benutze -f wenn du diesen wirklich hinzufügen möchtest." -#: git-submodule.sh:344 +#: git-submodule.sh:355 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "" "Füge existierendes Projektarchiv in '$sm_path' der Bereitstellung hinzu." -#: git-submodule.sh:346 +#: git-submodule.sh:357 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" msgstr "'$sm_path' existiert bereits und ist kein gültiges Git-Projektarchiv" -#: git-submodule.sh:360 +#: git-submodule.sh:365 +#, sh-format +msgid "A git directory for '$sm_name' is found locally with remote(s):" +msgstr "Ein Git-Verzeichnis für '$sm_name' wurde lokal gefunden mit den " +"Fernarchiv(en):" + +#: git-submodule.sh:367 +#, sh-format +msgid "" +"If you want to reuse this local git directory instead of cloning again from" +msgstr "" +"Wenn du dieses lokale Git-Verzeichnis wiederverwenden möchtest, anstatt " +"erneut zu klonen" + +#: git-submodule.sh:369 +#, sh-format +msgid "" +"use the '--force' option. If the local git directory is not the correct repo" +msgstr "" +"benutze die Option '--force'. Wenn das lokale Git-Verzeichnis nicht das " +"korrekte Projektarchiv ist" + +#: git-submodule.sh:370 +#, sh-format +msgid "" +"or you are unsure what this means choose another name with the '--name' " +"option." +msgstr "" +"oder du dir unsicher bist, was das bedeutet, wähle einen anderen Namen mit " +"der Option '--name'." + +#: git-submodule.sh:372 +#, sh-format +msgid "Reactivating local git directory for submodule '$sm_name'." +msgstr "Reaktiviere lokales Git-Verzeichnis für Unterprojekt '$sm_name'." + +#: git-submodule.sh:384 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "Unfähig Unterprojekt '$sm_path' auszuchecken" -#: git-submodule.sh:365 +#: git-submodule.sh:389 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "Hinzufügen von Unterprojekt '$sm_path' fehlgeschlagen" -#: git-submodule.sh:370 +#: git-submodule.sh:394 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "Registierung von Unterprojekt '$sm_path' fehlgeschlagen" -#: git-submodule.sh:413 +#: git-submodule.sh:437 #, sh-format msgid "Entering '$prefix$sm_path'" msgstr "Betrete '$prefix$sm_path'" -#: git-submodule.sh:427 +#: git-submodule.sh:451 #, sh-format msgid "Stopping at '$sm_path'; script returned non-zero status." msgstr "Stoppe bei '$sm_path'; Skript gab nicht-Null Status zurück." -#: git-submodule.sh:471 +#: git-submodule.sh:495 #, sh-format msgid "No url found for submodule path '$sm_path' in .gitmodules" msgstr "Keine URL für Unterprojekt-Pfad '$sm_path' in .gitmodules gefunden" -#: git-submodule.sh:480 +#: git-submodule.sh:504 #, sh-format msgid "Failed to register url for submodule path '$sm_path'" msgstr "Registrierung der URL für Unterprojekt-Pfad '$sm_path' fehlgeschlagen" -#: git-submodule.sh:482 +#: git-submodule.sh:506 #, sh-format msgid "Submodule '$name' ($url) registered for path '$sm_path'" msgstr "Unterprojekt '$name' ($url) ist für Pfad '$sm_path' registriert" -#: git-submodule.sh:490 +#: git-submodule.sh:514 #, sh-format msgid "Failed to register update mode for submodule path '$sm_path'" msgstr "" "Registrierung des Aktualisierungsmodus für Unterprojekt-Pfad '$sm_path' " "fehlgeschlagen" -#: git-submodule.sh:590 +#: git-submodule.sh:614 #, sh-format msgid "" "Submodule path '$sm_path' not initialized\n" @@ -6080,94 +9578,150 @@ msgstr "" "Unterprojekt-Pfad '$sm_path' ist nicht initialisiert\n" "Vielleicht möchtest du 'update --init' benutzen?" -#: git-submodule.sh:603 +#: git-submodule.sh:627 #, sh-format msgid "Unable to find current revision in submodule path '$sm_path'" msgstr "Konnte aktuelle Version in Unterprojekt-Pfad '$sm_path' nicht finden" -#: git-submodule.sh:622 +#: git-submodule.sh:646 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" msgstr "Konnte in Unterprojekt-Pfad '$sm_path' nicht anfordern" -#: git-submodule.sh:636 +#: git-submodule.sh:660 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$sm_path'" msgstr "Neuaufbau von '$sha1' in Unterprojekt-Pfad '$sm_path' nicht möglich" -#: git-submodule.sh:637 +#: git-submodule.sh:661 #, sh-format msgid "Submodule path '$sm_path': rebased into '$sha1'" msgstr "Unterprojekt-Pfad '$sm_path': neu aufgebaut in '$sha1'" -#: git-submodule.sh:642 +#: git-submodule.sh:666 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$sm_path'" msgstr "" "Zusammenführung von '$sha1' in Unterprojekt-Pfad '$sm_path' fehlgeschlagen" -#: git-submodule.sh:643 +#: git-submodule.sh:667 #, sh-format msgid "Submodule path '$sm_path': merged in '$sha1'" msgstr "Unterprojekt-Pfad '$sm_path': zusammengeführt in '$sha1'" -#: git-submodule.sh:648 +#: git-submodule.sh:672 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$sm_path'" msgstr "Konnte '$sha1' in Unterprojekt-Pfad '$sm_path' nicht auschecken." -#: git-submodule.sh:649 +#: git-submodule.sh:673 #, sh-format msgid "Submodule path '$sm_path': checked out '$sha1'" msgstr "Unterprojekt-Pfad: '$sm_path': '$sha1' ausgecheckt" -#: git-submodule.sh:671 git-submodule.sh:995 +#: git-submodule.sh:695 git-submodule.sh:1017 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" msgstr "Fehler bei Rekursion in Unterprojekt-Pfad '$sm_path'" -#: git-submodule.sh:779 +#: git-submodule.sh:803 msgid "The --cached option cannot be used with the --files option" msgstr "Die --cached Option kann nicht mit der --files Option benutzt werden" #. unexpected type -#: git-submodule.sh:819 +#: git-submodule.sh:843 #, sh-format msgid "unexpected mode $mod_dst" msgstr "unerwarteter Modus $mod_dst" -#: git-submodule.sh:837 +#: git-submodule.sh:861 #, sh-format msgid " Warn: $name doesn't contain commit $sha1_src" msgstr " Warnung: $name beinhaltet nicht Version $sha1_src" -#: git-submodule.sh:840 +#: git-submodule.sh:864 #, sh-format msgid " Warn: $name doesn't contain commit $sha1_dst" msgstr " Warnung: $name beinhaltet nicht Version $sha1_dst" -#: git-submodule.sh:843 +#: git-submodule.sh:867 #, sh-format msgid " Warn: $name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" " Warnung: $name beinhaltet nicht die Versionen $sha1_src und $sha1_dst" -#: git-submodule.sh:868 +#: git-submodule.sh:892 msgid "blob" msgstr "Blob" -#: git-submodule.sh:906 +#: git-submodule.sh:930 msgid "# Submodules changed but not updated:" msgstr "# Unterprojekte geändert, aber nicht aktualisiert:" -#: git-submodule.sh:908 +#: git-submodule.sh:932 msgid "# Submodule changes to be committed:" msgstr "# Änderungen in Unterprojekt zum Eintragen:" -#: git-submodule.sh:1054 +#: git-submodule.sh:1080 #, sh-format -msgid "Synchronizing submodule url for '$name'" -msgstr "Synchronisiere Unterprojekt-URL für '$name'" +msgid "Synchronizing submodule url for '$prefix$sm_path'" +msgstr "Synchronisiere Unterprojekt-URL für '$prefix$sm_path'" + +#~ msgid " 0 files changed" +#~ msgstr " 0 Dateien geändert" + +#~ msgid " %d file changed" +#~ msgid_plural " %d files changed" +#~ msgstr[0] " %d Datei geändert" +#~ msgstr[1] " %d Dateien geändert" + +#~ msgid ", %d insertion(+)" +#~ msgid_plural ", %d insertions(+)" +#~ msgstr[0] ", %d Zeile hinzugefügt(+)" +#~ msgstr[1] ", %d Zeilen hinzugefügt(+)" + +#~ msgid ", %d deletion(-)" +#~ msgid_plural ", %d deletions(-)" +#~ msgstr[0] ", %d Zeile entfernt(-)" +#~ msgstr[1] ", %d Zeilen entfernt(-)" + +#~ msgid "Auto packing the repository for optimum performance.\n" +#~ msgstr "" +#~ "Die Datenbank des Projektarchivs wird für eine optimale Performance " +#~ "komprimiert.\n" + +#~ msgid "git remote set-head <name> (-a | -d | <branch>])" +#~ msgstr "git remote set-head <Name> (-a | -d | <Zweig>])" + +#~ msgid " (use \"git add\" to track)" +#~ msgstr " (benutze \"git add\" zum Beobachten)" + +#~ msgid "-B cannot be used with -b" +#~ msgstr "-B kann nicht mit -b benutzt werden" + +#~ msgid "--patch is incompatible with all other options" +#~ msgstr "--patch ist inkompatibel mit allen anderen Optionen" + +#~ msgid "--detach cannot be used with -b/-B/--orphan" +#~ msgstr "--detach kann nicht mit -b/-B/--orphan benutzt werden" + +#~ msgid "--detach cannot be used with -t" +#~ msgstr "--detach kann nicht mit -t benutzt werden" + +#~ msgid "--orphan and -b|-B are mutually exclusive" +#~ msgstr "--orphan und -b|-B sind gegenseitig exklusiv" + +#~ msgid "--orphan cannot be used with -t" +#~ msgstr "--orphan kann nicht mit -t benutzt werden" + +#~ msgid "git checkout: -f and -m are incompatible" +#~ msgstr "git checkout: -f und -m sind inkompatibel" + +#~ msgid "" +#~ "git checkout: updating paths is incompatible with switching branches." +#~ msgstr "" +#~ "git checkout: Die Aktualisierung von Pfaden ist inkompatibel mit dem " +#~ "Wechsel von Zweigen." #~ msgid "diff setup failed" #~ msgstr "diff_setup_done fehlgeschlagen" @@ -6199,9 +9753,6 @@ msgstr "Synchronisiere Unterprojekt-URL für '$name'" #~ msgid "Please enter the commit message for your changes." #~ msgstr "Bitte gebe die Versionsbeschreibung für deine Änderungen ein." -#~ msgid "Too many options specified" -#~ msgstr "Zu viele Optionen angegeben" - #~ msgid "" #~ "To prevent you from losing history, non-fast-forward updates were " #~ "rejected\n" diff --git a/po/git.pot b/po/git.pot index e5611581e6..430d033aad 100644 --- a/po/git.pot +++ b/po/git.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2012-10-16 08:38+0800\n" +"POT-Creation-Date: 2012-11-30 12:40+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -60,7 +60,7 @@ msgstr "" msgid "archive format" msgstr "" -#: archive.c:323 builtin/log.c:1079 +#: archive.c:323 builtin/log.c:1084 msgid "prefix" msgstr "" @@ -68,9 +68,9 @@ msgstr "" msgid "prepend prefix to each pathname in the archive" msgstr "" -#: archive.c:325 builtin/archive.c:91 builtin/blame.c:2389 -#: builtin/blame.c:2390 builtin/config.c:56 builtin/fast-export.c:642 -#: builtin/fast-export.c:644 builtin/grep.c:801 builtin/hash-object.c:77 +#: archive.c:325 builtin/archive.c:91 builtin/blame.c:2390 +#: builtin/blame.c:2391 builtin/config.c:55 builtin/fast-export.c:642 +#: builtin/fast-export.c:644 builtin/grep.c:715 builtin/hash-object.c:77 #: builtin/ls-files.c:494 builtin/ls-files.c:497 builtin/notes.c:540 #: builtin/notes.c:697 builtin/read-tree.c:107 parse-options.h:149 msgid "file" @@ -120,6 +120,12 @@ msgstr "" msgid "path to the remote git-upload-archive command" msgstr "" +#: attr.c:259 +msgid "" +"Negative patterns are forbidden in git attributes\n" +"Use '\\!' for literal leading exclamation." +msgstr "" + #: bundle.c:36 #, c-format msgid "'%s' does not look like a v2 bundle file" @@ -130,7 +136,7 @@ msgstr "" msgid "unrecognized header: %s%s (%d)" msgstr "" -#: bundle.c:89 builtin/commit.c:672 +#: bundle.c:89 builtin/commit.c:674 #, c-format msgid "could not open '%s'" msgstr "" @@ -140,7 +146,7 @@ msgid "Repository lacks these prerequisite commits:" msgstr "" #: bundle.c:164 sequencer.c:562 sequencer.c:994 builtin/log.c:290 -#: builtin/log.c:727 builtin/log.c:1313 builtin/log.c:1529 builtin/merge.c:347 +#: builtin/log.c:732 builtin/log.c:1319 builtin/log.c:1535 builtin/merge.c:347 #: builtin/shortlog.c:181 msgid "revision walk setup failed" msgstr "" @@ -167,7 +173,7 @@ msgstr[1] "" msgid "rev-list died" msgstr "" -#: bundle.c:300 builtin/log.c:1209 builtin/shortlog.c:284 +#: bundle.c:300 builtin/log.c:1215 builtin/shortlog.c:284 #, c-format msgid "unrecognized argument: %s" msgstr "" @@ -293,30 +299,40 @@ msgid_plural "%lu years ago" msgstr[0] "" msgstr[1] "" -#: diff.c:105 +#: diff.c:111 +#, c-format +msgid " Failed to parse dirstat cut-off percentage '%s'\n" +msgstr "" + +#: diff.c:116 #, c-format -msgid " Failed to parse dirstat cut-off percentage '%.*s'\n" +msgid " Unknown dirstat parameter '%s'\n" msgstr "" -#: diff.c:110 +#: diff.c:194 #, c-format -msgid " Unknown dirstat parameter '%.*s'\n" +msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "" -#: diff.c:210 +#: diff.c:237 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" "%s" msgstr "" -#: diff.c:3458 +#: diff.c:3494 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" "%s" msgstr "" +#: diff.c:3508 +#, c-format +msgid "Failed to parse --submodule option parameter: '%s'" +msgstr "" + #: gpg-interface.c:59 msgid "could not run gpg." msgstr "" @@ -329,17 +345,17 @@ msgstr "" msgid "gpg failed to sign the data" msgstr "" -#: grep.c:1441 +#: grep.c:1622 #, c-format msgid "'%s': unable to read %s" msgstr "" -#: grep.c:1458 +#: grep.c:1639 #, c-format msgid "'%s': %s" msgstr "" -#: grep.c:1469 +#: grep.c:1650 #, c-format msgid "'%s': short read %s" msgstr "" @@ -391,6 +407,15 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" +#: merge.c:56 +msgid "failed to read the cache" +msgstr "" + +#: merge.c:110 builtin/checkout.c:333 builtin/checkout.c:534 +#: builtin/clone.c:586 +msgid "unable to write new index file" +msgstr "" + #: merge-recursive.c:190 #, c-format msgid "(bad commit)\n" @@ -563,7 +588,7 @@ msgstr "" msgid "Auto-merging %s" msgstr "" -#: merge-recursive.c:1633 git-submodule.sh:869 +#: merge-recursive.c:1633 git-submodule.sh:893 msgid "submodule" msgstr "" @@ -633,7 +658,7 @@ msgstr "" msgid "Could not parse object '%s'" msgstr "" -#: merge-recursive.c:2009 builtin/merge.c:696 +#: merge-recursive.c:2009 builtin/merge.c:643 msgid "Unable to write index." msgstr "" @@ -665,7 +690,11 @@ msgid_plural "Your branch is ahead of '%s' by %d commits.\n" msgstr[0] "" msgstr[1] "" -#: remote.c:1638 +#: remote.c:1637 +msgid " (use \"git push\" to publish your local commits)\n" +msgstr "" + +#: remote.c:1640 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -673,7 +702,11 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: remote.c:1646 +#: remote.c:1647 +msgid " (use \"git pull\" to update your local branch)\n" +msgstr "" + +#: remote.c:1650 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -684,14 +717,18 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: sequencer.c:123 builtin/merge.c:864 builtin/merge.c:977 -#: builtin/merge.c:1087 builtin/merge.c:1097 +#: remote.c:1659 +msgid " (use \"git pull\" to merge the remote branch into yours)\n" +msgstr "" + +#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:874 builtin/merge.c:984 +#: builtin/merge.c:994 #, c-format msgid "Could not open '%s' for writing" msgstr "" -#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:867 -#: builtin/merge.c:1089 builtin/merge.c:1102 +#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:764 builtin/merge.c:986 +#: builtin/merge.c:999 #, c-format msgid "Could not write to '%s'" msgstr "" @@ -1299,7 +1336,7 @@ msgstr "" msgid "unexpected diff status %c" msgstr "" -#: builtin/add.c:67 builtin/commit.c:230 +#: builtin/add.c:67 builtin/commit.c:231 msgid "updating files failed" msgstr "" @@ -1317,7 +1354,7 @@ msgstr "" msgid "Unstaged changes after refreshing the index:" msgstr "" -#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:186 +#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:275 #, c-format msgid "pathspec '%s' did not match any files" msgstr "" @@ -1360,12 +1397,12 @@ msgstr "" #: builtin/add.c:319 builtin/clean.c:52 builtin/fetch.c:78 builtin/mv.c:63 #: builtin/prune-packed.c:76 builtin/push.c:388 builtin/remote.c:1253 -#: builtin/rm.c:133 +#: builtin/rm.c:206 msgid "dry run" msgstr "" -#: builtin/add.c:320 builtin/apply.c:4354 builtin/commit.c:1154 -#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1477 +#: builtin/add.c:320 builtin/apply.c:4354 builtin/commit.c:1160 +#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1483 #: builtin/mv.c:62 builtin/read-tree.c:112 msgid "be verbose" msgstr "" @@ -1374,7 +1411,7 @@ msgstr "" msgid "interactive picking" msgstr "" -#: builtin/add.c:323 builtin/checkout.c:1028 builtin/reset.c:248 +#: builtin/add.c:323 builtin/checkout.c:1031 builtin/reset.c:248 msgid "select hunks interactively" msgstr "" @@ -1441,12 +1478,12 @@ msgstr "" msgid "Maybe you wanted to say 'git add .'?\n" msgstr "" -#: builtin/add.c:421 builtin/clean.c:95 builtin/commit.c:290 builtin/mv.c:82 -#: builtin/rm.c:162 +#: builtin/add.c:421 builtin/clean.c:95 builtin/commit.c:291 builtin/mv.c:82 +#: builtin/rm.c:235 msgid "index file corrupt" msgstr "" -#: builtin/add.c:481 builtin/apply.c:4450 builtin/mv.c:229 builtin/rm.c:260 +#: builtin/add.c:481 builtin/apply.c:4450 builtin/mv.c:229 builtin/rm.c:370 msgid "Unable to write new index file" msgstr "" @@ -1975,95 +2012,95 @@ msgstr "" msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "" -#: builtin/blame.c:2373 +#: builtin/blame.c:2374 msgid "Show blame entries as we find them, incrementally" msgstr "" -#: builtin/blame.c:2374 +#: builtin/blame.c:2375 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "" -#: builtin/blame.c:2375 +#: builtin/blame.c:2376 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "" -#: builtin/blame.c:2376 +#: builtin/blame.c:2377 msgid "Show work cost statistics" msgstr "" -#: builtin/blame.c:2377 +#: builtin/blame.c:2378 msgid "Show output score for blame entries" msgstr "" -#: builtin/blame.c:2378 +#: builtin/blame.c:2379 msgid "Show original filename (Default: auto)" msgstr "" -#: builtin/blame.c:2379 +#: builtin/blame.c:2380 msgid "Show original linenumber (Default: off)" msgstr "" -#: builtin/blame.c:2380 +#: builtin/blame.c:2381 msgid "Show in a format designed for machine consumption" msgstr "" -#: builtin/blame.c:2381 +#: builtin/blame.c:2382 msgid "Show porcelain format with per-line commit information" msgstr "" -#: builtin/blame.c:2382 +#: builtin/blame.c:2383 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "" -#: builtin/blame.c:2383 +#: builtin/blame.c:2384 msgid "Show raw timestamp (Default: off)" msgstr "" -#: builtin/blame.c:2384 +#: builtin/blame.c:2385 msgid "Show long commit SHA1 (Default: off)" msgstr "" -#: builtin/blame.c:2385 +#: builtin/blame.c:2386 msgid "Suppress author name and timestamp (Default: off)" msgstr "" -#: builtin/blame.c:2386 +#: builtin/blame.c:2387 msgid "Show author email instead of name (Default: off)" msgstr "" -#: builtin/blame.c:2387 +#: builtin/blame.c:2388 msgid "Ignore whitespace differences" msgstr "" -#: builtin/blame.c:2388 +#: builtin/blame.c:2389 msgid "Spend extra cycles to find better match" msgstr "" -#: builtin/blame.c:2389 +#: builtin/blame.c:2390 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "" -#: builtin/blame.c:2390 +#: builtin/blame.c:2391 msgid "Use <file>'s contents as the final image" msgstr "" -#: builtin/blame.c:2391 builtin/blame.c:2392 +#: builtin/blame.c:2392 builtin/blame.c:2393 msgid "score" msgstr "" -#: builtin/blame.c:2391 +#: builtin/blame.c:2392 msgid "Find line copies within and across files" msgstr "" -#: builtin/blame.c:2392 +#: builtin/blame.c:2393 msgid "Find line movements within and across files" msgstr "" -#: builtin/blame.c:2393 +#: builtin/blame.c:2394 msgid "n,m" msgstr "" -#: builtin/blame.c:2393 +#: builtin/blame.c:2394 msgid "Process only line range n,m, counting from 1" msgstr "" @@ -2097,269 +2134,269 @@ msgid "" " '%s', even though it is merged to HEAD." msgstr "" -#: builtin/branch.c:181 +#: builtin/branch.c:163 +#, c-format +msgid "Couldn't look up commit object for '%s'" +msgstr "" + +#: builtin/branch.c:167 +#, c-format +msgid "" +"The branch '%s' is not fully merged.\n" +"If you are sure you want to delete it, run 'git branch -D %s'." +msgstr "" + +#: builtin/branch.c:180 +msgid "Update of config-file failed" +msgstr "" + +#: builtin/branch.c:208 msgid "cannot use -a with -d" msgstr "" -#: builtin/branch.c:187 +#: builtin/branch.c:214 msgid "Couldn't look up commit object for HEAD" msgstr "" -#: builtin/branch.c:192 +#: builtin/branch.c:222 #, c-format msgid "Cannot delete the branch '%s' which you are currently on." msgstr "" -#: builtin/branch.c:203 +#: builtin/branch.c:235 #, c-format msgid "remote branch '%s' not found." msgstr "" -#: builtin/branch.c:204 +#: builtin/branch.c:236 #, c-format msgid "branch '%s' not found." msgstr "" -#: builtin/branch.c:211 -#, c-format -msgid "Couldn't look up commit object for '%s'" -msgstr "" - -#: builtin/branch.c:217 -#, c-format -msgid "" -"The branch '%s' is not fully merged.\n" -"If you are sure you want to delete it, run 'git branch -D %s'." -msgstr "" - -#: builtin/branch.c:226 +#: builtin/branch.c:250 #, c-format msgid "Error deleting remote branch '%s'" msgstr "" -#: builtin/branch.c:227 +#: builtin/branch.c:251 #, c-format msgid "Error deleting branch '%s'" msgstr "" -#: builtin/branch.c:234 +#: builtin/branch.c:258 #, c-format msgid "Deleted remote branch %s (was %s).\n" msgstr "" -#: builtin/branch.c:235 +#: builtin/branch.c:259 #, c-format msgid "Deleted branch %s (was %s).\n" msgstr "" -#: builtin/branch.c:240 -msgid "Update of config-file failed" -msgstr "" - -#: builtin/branch.c:338 +#: builtin/branch.c:361 #, c-format msgid "branch '%s' does not point at a commit" msgstr "" -#: builtin/branch.c:410 +#: builtin/branch.c:433 #, c-format msgid "[%s: behind %d]" msgstr "" -#: builtin/branch.c:412 +#: builtin/branch.c:435 #, c-format msgid "[behind %d]" msgstr "" -#: builtin/branch.c:416 +#: builtin/branch.c:439 #, c-format msgid "[%s: ahead %d]" msgstr "" -#: builtin/branch.c:418 +#: builtin/branch.c:441 #, c-format msgid "[ahead %d]" msgstr "" -#: builtin/branch.c:421 +#: builtin/branch.c:444 #, c-format msgid "[%s: ahead %d, behind %d]" msgstr "" -#: builtin/branch.c:424 +#: builtin/branch.c:447 #, c-format msgid "[ahead %d, behind %d]" msgstr "" -#: builtin/branch.c:537 +#: builtin/branch.c:560 msgid "(no branch)" msgstr "" -#: builtin/branch.c:602 +#: builtin/branch.c:625 msgid "some refs could not be read" msgstr "" -#: builtin/branch.c:615 +#: builtin/branch.c:638 msgid "cannot rename the current branch while not on any." msgstr "" -#: builtin/branch.c:625 +#: builtin/branch.c:648 #, c-format msgid "Invalid branch name: '%s'" msgstr "" -#: builtin/branch.c:640 +#: builtin/branch.c:663 msgid "Branch rename failed" msgstr "" -#: builtin/branch.c:644 +#: builtin/branch.c:667 #, c-format msgid "Renamed a misnamed branch '%s' away" msgstr "" -#: builtin/branch.c:648 +#: builtin/branch.c:671 #, c-format msgid "Branch renamed to %s, but HEAD is not updated!" msgstr "" -#: builtin/branch.c:655 +#: builtin/branch.c:678 msgid "Branch is renamed, but update of config-file failed" msgstr "" -#: builtin/branch.c:670 +#: builtin/branch.c:693 #, c-format msgid "malformed object name %s" msgstr "" -#: builtin/branch.c:694 +#: builtin/branch.c:717 #, c-format msgid "could not write branch description template: %s" msgstr "" -#: builtin/branch.c:724 +#: builtin/branch.c:747 msgid "Generic options" msgstr "" -#: builtin/branch.c:726 +#: builtin/branch.c:749 msgid "show hash and subject, give twice for upstream branch" msgstr "" -#: builtin/branch.c:727 +#: builtin/branch.c:750 msgid "suppress informational messages" msgstr "" -#: builtin/branch.c:728 +#: builtin/branch.c:751 msgid "set up tracking mode (see git-pull(1))" msgstr "" -#: builtin/branch.c:730 +#: builtin/branch.c:753 msgid "change upstream info" msgstr "" -#: builtin/branch.c:734 +#: builtin/branch.c:757 msgid "use colored output" msgstr "" -#: builtin/branch.c:735 +#: builtin/branch.c:758 msgid "act on remote-tracking branches" msgstr "" -#: builtin/branch.c:738 builtin/branch.c:744 builtin/branch.c:765 -#: builtin/branch.c:771 builtin/commit.c:1362 builtin/commit.c:1363 -#: builtin/commit.c:1364 builtin/commit.c:1365 builtin/tag.c:470 +#: builtin/branch.c:761 builtin/branch.c:767 builtin/branch.c:788 +#: builtin/branch.c:794 builtin/commit.c:1376 builtin/commit.c:1377 +#: builtin/commit.c:1378 builtin/commit.c:1379 builtin/tag.c:470 msgid "commit" msgstr "" -#: builtin/branch.c:739 builtin/branch.c:745 +#: builtin/branch.c:762 builtin/branch.c:768 msgid "print only branches that contain the commit" msgstr "" -#: builtin/branch.c:751 +#: builtin/branch.c:774 msgid "Specific git-branch actions:" msgstr "" -#: builtin/branch.c:752 +#: builtin/branch.c:775 msgid "list both remote-tracking and local branches" msgstr "" -#: builtin/branch.c:754 +#: builtin/branch.c:777 msgid "delete fully merged branch" msgstr "" -#: builtin/branch.c:755 +#: builtin/branch.c:778 msgid "delete branch (even if not merged)" msgstr "" -#: builtin/branch.c:756 +#: builtin/branch.c:779 msgid "move/rename a branch and its reflog" msgstr "" -#: builtin/branch.c:757 +#: builtin/branch.c:780 msgid "move/rename a branch, even if target exists" msgstr "" -#: builtin/branch.c:758 +#: builtin/branch.c:781 msgid "list branch names" msgstr "" -#: builtin/branch.c:759 +#: builtin/branch.c:782 msgid "create the branch's reflog" msgstr "" -#: builtin/branch.c:761 +#: builtin/branch.c:784 msgid "edit the description for the branch" msgstr "" -#: builtin/branch.c:762 +#: builtin/branch.c:785 msgid "force creation (when already exists)" msgstr "" -#: builtin/branch.c:765 +#: builtin/branch.c:788 msgid "print only not merged branches" msgstr "" -#: builtin/branch.c:771 +#: builtin/branch.c:794 msgid "print only merged branches" msgstr "" -#: builtin/branch.c:775 +#: builtin/branch.c:798 msgid "list branches in columns" msgstr "" -#: builtin/branch.c:788 +#: builtin/branch.c:811 msgid "Failed to resolve HEAD as a valid ref." msgstr "" -#: builtin/branch.c:793 builtin/clone.c:561 +#: builtin/branch.c:816 builtin/clone.c:561 msgid "HEAD not found below refs/heads!" msgstr "" -#: builtin/branch.c:813 +#: builtin/branch.c:836 msgid "--column and --verbose are incompatible" msgstr "" -#: builtin/branch.c:864 +#: builtin/branch.c:887 #, c-format msgid "branch '%s' does not exist" msgstr "" -#: builtin/branch.c:876 +#: builtin/branch.c:899 #, c-format msgid "Branch '%s' has no upstream information" msgstr "" -#: builtin/branch.c:891 +#: builtin/branch.c:914 msgid "-a and -r options to 'git branch' do not make sense with a branch name" msgstr "" -#: builtin/branch.c:894 +#: builtin/branch.c:917 #, c-format msgid "" "The --set-upstream flag is deprecated and will be removed. Consider using --" "track or --set-upstream-to\n" msgstr "" -#: builtin/branch.c:911 +#: builtin/branch.c:934 #, c-format msgid "" "\n" @@ -2367,12 +2404,12 @@ msgid "" "\n" msgstr "" -#: builtin/branch.c:912 +#: builtin/branch.c:935 #, c-format msgid " git branch -d %s\n" msgstr "" -#: builtin/branch.c:913 +#: builtin/branch.c:936 #, c-format msgid " git branch --set-upstream-to %s\n" msgstr "" @@ -2561,11 +2598,6 @@ msgstr "" msgid "path '%s' is unmerged" msgstr "" -#: builtin/checkout.c:333 builtin/checkout.c:534 builtin/clone.c:586 -#: builtin/merge.c:811 -msgid "unable to write new index file" -msgstr "" - #: builtin/checkout.c:448 msgid "you need to resolve your current index first" msgstr "" @@ -2594,7 +2626,7 @@ msgstr "" msgid "Switched to and reset branch '%s'\n" msgstr "" -#: builtin/checkout.c:618 +#: builtin/checkout.c:618 builtin/checkout.c:955 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "" @@ -2659,124 +2691,124 @@ msgstr "" msgid "reference is not a tree: %s" msgstr "" -#: builtin/checkout.c:961 +#: builtin/checkout.c:964 msgid "paths cannot be used with switching branches" msgstr "" -#: builtin/checkout.c:964 builtin/checkout.c:968 +#: builtin/checkout.c:967 builtin/checkout.c:971 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "" -#: builtin/checkout.c:972 builtin/checkout.c:975 builtin/checkout.c:980 -#: builtin/checkout.c:983 +#: builtin/checkout.c:975 builtin/checkout.c:978 builtin/checkout.c:983 +#: builtin/checkout.c:986 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "" -#: builtin/checkout.c:988 +#: builtin/checkout.c:991 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "" -#: builtin/checkout.c:1009 builtin/gc.c:177 +#: builtin/checkout.c:1012 builtin/gc.c:177 msgid "suppress progress reporting" msgstr "" -#: builtin/checkout.c:1010 builtin/checkout.c:1012 builtin/clone.c:89 +#: builtin/checkout.c:1013 builtin/checkout.c:1015 builtin/clone.c:89 #: builtin/remote.c:169 builtin/remote.c:171 msgid "branch" msgstr "" -#: builtin/checkout.c:1011 +#: builtin/checkout.c:1014 msgid "create and checkout a new branch" msgstr "" -#: builtin/checkout.c:1013 +#: builtin/checkout.c:1016 msgid "create/reset and checkout a branch" msgstr "" -#: builtin/checkout.c:1014 +#: builtin/checkout.c:1017 msgid "create reflog for new branch" msgstr "" -#: builtin/checkout.c:1015 +#: builtin/checkout.c:1018 msgid "detach the HEAD at named commit" msgstr "" -#: builtin/checkout.c:1016 +#: builtin/checkout.c:1019 msgid "set upstream info for new branch" msgstr "" -#: builtin/checkout.c:1018 +#: builtin/checkout.c:1021 msgid "new branch" msgstr "" -#: builtin/checkout.c:1018 +#: builtin/checkout.c:1021 msgid "new unparented branch" msgstr "" -#: builtin/checkout.c:1019 +#: builtin/checkout.c:1022 msgid "checkout our version for unmerged files" msgstr "" -#: builtin/checkout.c:1021 +#: builtin/checkout.c:1024 msgid "checkout their version for unmerged files" msgstr "" -#: builtin/checkout.c:1023 +#: builtin/checkout.c:1026 msgid "force checkout (throw away local modifications)" msgstr "" -#: builtin/checkout.c:1024 +#: builtin/checkout.c:1027 msgid "perform a 3-way merge with the new branch" msgstr "" -#: builtin/checkout.c:1025 builtin/merge.c:215 +#: builtin/checkout.c:1028 builtin/merge.c:215 msgid "update ignored files (default)" msgstr "" -#: builtin/checkout.c:1026 builtin/log.c:1111 parse-options.h:241 +#: builtin/checkout.c:1029 builtin/log.c:1116 parse-options.h:241 msgid "style" msgstr "" -#: builtin/checkout.c:1027 +#: builtin/checkout.c:1030 msgid "conflict style (merge or diff3)" msgstr "" -#: builtin/checkout.c:1030 +#: builtin/checkout.c:1033 msgid "second guess 'git checkout no-such-branch'" msgstr "" -#: builtin/checkout.c:1054 +#: builtin/checkout.c:1057 msgid "-b, -B and --orphan are mutually exclusive" msgstr "" -#: builtin/checkout.c:1071 +#: builtin/checkout.c:1074 msgid "--track needs a branch name" msgstr "" -#: builtin/checkout.c:1078 +#: builtin/checkout.c:1081 msgid "Missing branch name; try -b" msgstr "" -#: builtin/checkout.c:1113 +#: builtin/checkout.c:1116 msgid "invalid path specification" msgstr "" -#: builtin/checkout.c:1120 +#: builtin/checkout.c:1123 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" "Did you intend to checkout '%s' which can not be resolved as commit?" msgstr "" -#: builtin/checkout.c:1125 +#: builtin/checkout.c:1128 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "" -#: builtin/checkout.c:1129 +#: builtin/checkout.c:1132 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -2798,8 +2830,8 @@ msgstr "" msgid "remove whole directories" msgstr "" -#: builtin/clean.c:56 builtin/describe.c:413 builtin/grep.c:803 -#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:199 +#: builtin/clean.c:56 builtin/describe.c:413 builtin/grep.c:717 +#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:182 msgid "pattern" msgstr "" @@ -2920,7 +2952,7 @@ msgstr "" msgid "path to git-upload-pack on the remote" msgstr "" -#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:748 +#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:662 msgid "depth" msgstr "" @@ -3134,93 +3166,93 @@ msgid "" "Otherwise, please use 'git reset'\n" msgstr "" -#: builtin/commit.c:257 +#: builtin/commit.c:258 msgid "failed to unpack HEAD tree object" msgstr "" -#: builtin/commit.c:299 +#: builtin/commit.c:300 msgid "unable to create temporary index" msgstr "" -#: builtin/commit.c:305 +#: builtin/commit.c:306 msgid "interactive add failed" msgstr "" -#: builtin/commit.c:338 builtin/commit.c:359 builtin/commit.c:409 +#: builtin/commit.c:339 builtin/commit.c:360 builtin/commit.c:410 msgid "unable to write new_index file" msgstr "" -#: builtin/commit.c:390 +#: builtin/commit.c:391 msgid "cannot do a partial commit during a merge." msgstr "" -#: builtin/commit.c:392 +#: builtin/commit.c:393 msgid "cannot do a partial commit during a cherry-pick." msgstr "" -#: builtin/commit.c:402 +#: builtin/commit.c:403 msgid "cannot read the index" msgstr "" -#: builtin/commit.c:422 +#: builtin/commit.c:423 msgid "unable to write temporary index file" msgstr "" -#: builtin/commit.c:509 builtin/commit.c:515 +#: builtin/commit.c:511 builtin/commit.c:517 #, c-format msgid "invalid commit: %s" msgstr "" -#: builtin/commit.c:538 +#: builtin/commit.c:540 msgid "malformed --author parameter" msgstr "" -#: builtin/commit.c:558 +#: builtin/commit.c:560 #, c-format msgid "Malformed ident string: '%s'" msgstr "" -#: builtin/commit.c:596 builtin/commit.c:629 builtin/commit.c:952 +#: builtin/commit.c:598 builtin/commit.c:631 builtin/commit.c:954 #, c-format msgid "could not lookup commit %s" msgstr "" -#: builtin/commit.c:608 builtin/shortlog.c:296 +#: builtin/commit.c:610 builtin/shortlog.c:296 #, c-format msgid "(reading log message from standard input)\n" msgstr "" -#: builtin/commit.c:610 +#: builtin/commit.c:612 msgid "could not read log from standard input" msgstr "" -#: builtin/commit.c:614 +#: builtin/commit.c:616 #, c-format msgid "could not read log file '%s'" msgstr "" -#: builtin/commit.c:620 +#: builtin/commit.c:622 msgid "commit has empty message" msgstr "" -#: builtin/commit.c:636 +#: builtin/commit.c:638 msgid "could not read MERGE_MSG" msgstr "" -#: builtin/commit.c:640 +#: builtin/commit.c:642 msgid "could not read SQUASH_MSG" msgstr "" -#: builtin/commit.c:644 +#: builtin/commit.c:646 #, c-format msgid "could not read '%s'" msgstr "" -#: builtin/commit.c:705 +#: builtin/commit.c:707 msgid "could not write commit template" msgstr "" -#: builtin/commit.c:716 +#: builtin/commit.c:718 #, c-format msgid "" "\n" @@ -3230,7 +3262,7 @@ msgid "" "and try again.\n" msgstr "" -#: builtin/commit.c:721 +#: builtin/commit.c:723 #, c-format msgid "" "\n" @@ -3240,356 +3272,364 @@ msgid "" "and try again.\n" msgstr "" -#: builtin/commit.c:733 +#: builtin/commit.c:735 msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '#' will be ignored, and an empty message aborts the commit.\n" msgstr "" -#: builtin/commit.c:738 +#: builtin/commit.c:740 msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '#' will be kept; you may remove them yourself if you want to.\n" "An empty message aborts the commit.\n" msgstr "" -#: builtin/commit.c:751 +#: builtin/commit.c:753 #, c-format msgid "%sAuthor: %s" msgstr "" -#: builtin/commit.c:758 +#: builtin/commit.c:760 #, c-format msgid "%sCommitter: %s" msgstr "" -#: builtin/commit.c:778 +#: builtin/commit.c:780 msgid "Cannot read index" msgstr "" -#: builtin/commit.c:815 +#: builtin/commit.c:817 msgid "Error building trees" msgstr "" -#: builtin/commit.c:830 builtin/tag.c:361 +#: builtin/commit.c:832 builtin/tag.c:361 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "" -#: builtin/commit.c:927 +#: builtin/commit.c:929 #, c-format msgid "No existing author found with '%s'" msgstr "" -#: builtin/commit.c:942 builtin/commit.c:1142 +#: builtin/commit.c:944 builtin/commit.c:1148 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "" -#: builtin/commit.c:982 +#: builtin/commit.c:984 msgid "Using both --reset-author and --author does not make sense" msgstr "" -#: builtin/commit.c:993 +#: builtin/commit.c:995 msgid "You have nothing to amend." msgstr "" -#: builtin/commit.c:996 +#: builtin/commit.c:998 msgid "You are in the middle of a merge -- cannot amend." msgstr "" -#: builtin/commit.c:998 +#: builtin/commit.c:1000 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "" -#: builtin/commit.c:1001 +#: builtin/commit.c:1003 msgid "Options --squash and --fixup cannot be used together" msgstr "" -#: builtin/commit.c:1011 +#: builtin/commit.c:1013 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "" -#: builtin/commit.c:1013 +#: builtin/commit.c:1015 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "" -#: builtin/commit.c:1021 +#: builtin/commit.c:1023 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "" -#: builtin/commit.c:1038 +#: builtin/commit.c:1040 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" -#: builtin/commit.c:1040 +#: builtin/commit.c:1042 msgid "No paths with --include/--only does not make sense." msgstr "" -#: builtin/commit.c:1042 +#: builtin/commit.c:1044 msgid "Clever... amending the last one with dirty index." msgstr "" -#: builtin/commit.c:1044 +#: builtin/commit.c:1046 msgid "Explicit paths specified without -i nor -o; assuming --only paths..." msgstr "" -#: builtin/commit.c:1054 builtin/tag.c:577 +#: builtin/commit.c:1056 builtin/tag.c:577 #, c-format msgid "Invalid cleanup mode %s" msgstr "" -#: builtin/commit.c:1059 +#: builtin/commit.c:1061 msgid "Paths with -a does not make sense." msgstr "" -#: builtin/commit.c:1156 builtin/commit.c:1384 +#: builtin/commit.c:1067 builtin/commit.c:1202 +msgid "--long and -z are incompatible" +msgstr "" + +#: builtin/commit.c:1162 builtin/commit.c:1398 msgid "show status concisely" msgstr "" -#: builtin/commit.c:1158 builtin/commit.c:1386 +#: builtin/commit.c:1164 builtin/commit.c:1400 msgid "show branch information" msgstr "" -#: builtin/commit.c:1160 builtin/commit.c:1388 builtin/push.c:389 +#: builtin/commit.c:1166 builtin/commit.c:1402 builtin/push.c:389 msgid "machine-readable output" msgstr "" -#: builtin/commit.c:1163 builtin/commit.c:1390 +#: builtin/commit.c:1169 builtin/commit.c:1404 +msgid "show status in long format (default)" +msgstr "" + +#: builtin/commit.c:1172 builtin/commit.c:1407 msgid "terminate entries with NUL" msgstr "" -#: builtin/commit.c:1165 builtin/commit.c:1393 builtin/fast-export.c:636 +#: builtin/commit.c:1174 builtin/commit.c:1410 builtin/fast-export.c:636 #: builtin/fast-export.c:639 builtin/tag.c:461 msgid "mode" msgstr "" -#: builtin/commit.c:1166 builtin/commit.c:1393 +#: builtin/commit.c:1175 builtin/commit.c:1410 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" -#: builtin/commit.c:1169 +#: builtin/commit.c:1178 msgid "show ignored files" msgstr "" -#: builtin/commit.c:1170 parse-options.h:151 +#: builtin/commit.c:1179 parse-options.h:151 msgid "when" msgstr "" -#: builtin/commit.c:1171 +#: builtin/commit.c:1180 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" msgstr "" -#: builtin/commit.c:1173 +#: builtin/commit.c:1182 msgid "list untracked files in columns" msgstr "" -#: builtin/commit.c:1242 +#: builtin/commit.c:1256 msgid "couldn't look up newly created commit" msgstr "" -#: builtin/commit.c:1244 +#: builtin/commit.c:1258 msgid "could not parse newly created commit" msgstr "" -#: builtin/commit.c:1285 +#: builtin/commit.c:1299 msgid "detached HEAD" msgstr "" -#: builtin/commit.c:1287 +#: builtin/commit.c:1301 msgid " (root-commit)" msgstr "" -#: builtin/commit.c:1354 +#: builtin/commit.c:1368 msgid "suppress summary after successful commit" msgstr "" -#: builtin/commit.c:1355 +#: builtin/commit.c:1369 msgid "show diff in commit message template" msgstr "" -#: builtin/commit.c:1357 +#: builtin/commit.c:1371 msgid "Commit message options" msgstr "" -#: builtin/commit.c:1358 builtin/tag.c:459 +#: builtin/commit.c:1372 builtin/tag.c:459 msgid "read message from file" msgstr "" -#: builtin/commit.c:1359 +#: builtin/commit.c:1373 msgid "author" msgstr "" -#: builtin/commit.c:1359 +#: builtin/commit.c:1373 msgid "override author for commit" msgstr "" -#: builtin/commit.c:1360 builtin/gc.c:178 +#: builtin/commit.c:1374 builtin/gc.c:178 msgid "date" msgstr "" -#: builtin/commit.c:1360 +#: builtin/commit.c:1374 msgid "override date for commit" msgstr "" -#: builtin/commit.c:1361 builtin/merge.c:206 builtin/notes.c:537 +#: builtin/commit.c:1375 builtin/merge.c:206 builtin/notes.c:537 #: builtin/notes.c:694 builtin/tag.c:457 msgid "message" msgstr "" -#: builtin/commit.c:1361 +#: builtin/commit.c:1375 msgid "commit message" msgstr "" -#: builtin/commit.c:1362 +#: builtin/commit.c:1376 msgid "reuse and edit message from specified commit" msgstr "" -#: builtin/commit.c:1363 +#: builtin/commit.c:1377 msgid "reuse message from specified commit" msgstr "" -#: builtin/commit.c:1364 +#: builtin/commit.c:1378 msgid "use autosquash formatted message to fixup specified commit" msgstr "" -#: builtin/commit.c:1365 +#: builtin/commit.c:1379 msgid "use autosquash formatted message to squash specified commit" msgstr "" -#: builtin/commit.c:1366 +#: builtin/commit.c:1380 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "" -#: builtin/commit.c:1367 builtin/log.c:1068 builtin/revert.c:109 +#: builtin/commit.c:1381 builtin/log.c:1073 builtin/revert.c:109 msgid "add Signed-off-by:" msgstr "" -#: builtin/commit.c:1368 +#: builtin/commit.c:1382 msgid "use specified template file" msgstr "" -#: builtin/commit.c:1369 +#: builtin/commit.c:1383 msgid "force edit of commit" msgstr "" -#: builtin/commit.c:1370 +#: builtin/commit.c:1384 msgid "default" msgstr "" -#: builtin/commit.c:1370 builtin/tag.c:462 +#: builtin/commit.c:1384 builtin/tag.c:462 msgid "how to strip spaces and #comments from message" msgstr "" -#: builtin/commit.c:1371 +#: builtin/commit.c:1385 msgid "include status in commit message template" msgstr "" -#: builtin/commit.c:1372 builtin/merge.c:213 builtin/tag.c:463 +#: builtin/commit.c:1386 builtin/merge.c:213 builtin/tag.c:463 msgid "key id" msgstr "" -#: builtin/commit.c:1373 builtin/merge.c:214 +#: builtin/commit.c:1387 builtin/merge.c:214 msgid "GPG sign commit" msgstr "" #. end commit message options -#: builtin/commit.c:1376 +#: builtin/commit.c:1390 msgid "Commit contents options" msgstr "" -#: builtin/commit.c:1377 +#: builtin/commit.c:1391 msgid "commit all changed files" msgstr "" -#: builtin/commit.c:1378 +#: builtin/commit.c:1392 msgid "add specified files to index for commit" msgstr "" -#: builtin/commit.c:1379 +#: builtin/commit.c:1393 msgid "interactively add files" msgstr "" -#: builtin/commit.c:1380 +#: builtin/commit.c:1394 msgid "interactively add changes" msgstr "" -#: builtin/commit.c:1381 +#: builtin/commit.c:1395 msgid "commit only specified files" msgstr "" -#: builtin/commit.c:1382 +#: builtin/commit.c:1396 msgid "bypass pre-commit hook" msgstr "" -#: builtin/commit.c:1383 +#: builtin/commit.c:1397 msgid "show what would be committed" msgstr "" -#: builtin/commit.c:1391 +#: builtin/commit.c:1408 msgid "amend previous commit" msgstr "" -#: builtin/commit.c:1392 +#: builtin/commit.c:1409 msgid "bypass post-rewrite hook" msgstr "" -#: builtin/commit.c:1397 +#: builtin/commit.c:1414 msgid "ok to record an empty change" msgstr "" -#: builtin/commit.c:1400 +#: builtin/commit.c:1417 msgid "ok to record a change with an empty message" msgstr "" -#: builtin/commit.c:1432 +#: builtin/commit.c:1449 msgid "could not parse HEAD commit" msgstr "" -#: builtin/commit.c:1470 builtin/merge.c:508 +#: builtin/commit.c:1487 builtin/merge.c:508 #, c-format msgid "could not open '%s' for reading" msgstr "" -#: builtin/commit.c:1477 +#: builtin/commit.c:1494 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "" -#: builtin/commit.c:1484 +#: builtin/commit.c:1501 msgid "could not read MERGE_MODE" msgstr "" -#: builtin/commit.c:1503 +#: builtin/commit.c:1520 #, c-format msgid "could not read commit message: %s" msgstr "" -#: builtin/commit.c:1517 +#: builtin/commit.c:1534 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "" -#: builtin/commit.c:1522 +#: builtin/commit.c:1539 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "" -#: builtin/commit.c:1537 builtin/merge.c:935 builtin/merge.c:960 +#: builtin/commit.c:1554 builtin/merge.c:832 builtin/merge.c:857 msgid "failed to write commit object" msgstr "" -#: builtin/commit.c:1558 +#: builtin/commit.c:1575 msgid "cannot lock HEAD ref" msgstr "" -#: builtin/commit.c:1562 +#: builtin/commit.c:1579 msgid "cannot update HEAD ref" msgstr "" -#: builtin/commit.c:1573 +#: builtin/commit.c:1590 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -3600,115 +3640,115 @@ msgstr "" msgid "git config [options]" msgstr "" -#: builtin/config.c:52 +#: builtin/config.c:51 msgid "Config file location" msgstr "" -#: builtin/config.c:53 +#: builtin/config.c:52 msgid "use global config file" msgstr "" -#: builtin/config.c:54 +#: builtin/config.c:53 msgid "use system config file" msgstr "" -#: builtin/config.c:55 +#: builtin/config.c:54 msgid "use repository config file" msgstr "" -#: builtin/config.c:56 +#: builtin/config.c:55 msgid "use given config file" msgstr "" -#: builtin/config.c:57 +#: builtin/config.c:56 msgid "Action" msgstr "" -#: builtin/config.c:58 +#: builtin/config.c:57 msgid "get value: name [value-regex]" msgstr "" -#: builtin/config.c:59 +#: builtin/config.c:58 msgid "get all values: key [value-regex]" msgstr "" -#: builtin/config.c:60 +#: builtin/config.c:59 msgid "get values for regexp: name-regex [value-regex]" msgstr "" -#: builtin/config.c:61 +#: builtin/config.c:60 msgid "replace all matching variables: name value [value_regex]" msgstr "" -#: builtin/config.c:62 +#: builtin/config.c:61 msgid "add a new variable: name value" msgstr "" -#: builtin/config.c:63 +#: builtin/config.c:62 msgid "remove a variable: name [value-regex]" msgstr "" -#: builtin/config.c:64 +#: builtin/config.c:63 msgid "remove all matches: name [value-regex]" msgstr "" -#: builtin/config.c:65 +#: builtin/config.c:64 msgid "rename section: old-name new-name" msgstr "" -#: builtin/config.c:66 +#: builtin/config.c:65 msgid "remove a section: name" msgstr "" -#: builtin/config.c:67 +#: builtin/config.c:66 msgid "list all" msgstr "" -#: builtin/config.c:68 +#: builtin/config.c:67 msgid "open an editor" msgstr "" -#: builtin/config.c:69 builtin/config.c:70 +#: builtin/config.c:68 builtin/config.c:69 msgid "slot" msgstr "" -#: builtin/config.c:69 +#: builtin/config.c:68 msgid "find the color configured: [default]" msgstr "" -#: builtin/config.c:70 +#: builtin/config.c:69 msgid "find the color setting: [stdout-is-tty]" msgstr "" -#: builtin/config.c:71 +#: builtin/config.c:70 msgid "Type" msgstr "" -#: builtin/config.c:72 +#: builtin/config.c:71 msgid "value is \"true\" or \"false\"" msgstr "" -#: builtin/config.c:73 +#: builtin/config.c:72 msgid "value is decimal number" msgstr "" -#: builtin/config.c:74 +#: builtin/config.c:73 msgid "value is --bool or --int" msgstr "" -#: builtin/config.c:75 +#: builtin/config.c:74 msgid "value is a path (file or directory name)" msgstr "" -#: builtin/config.c:76 +#: builtin/config.c:75 msgid "Other" msgstr "" -#: builtin/config.c:77 +#: builtin/config.c:76 msgid "terminate values with NUL byte" msgstr "" -#: builtin/config.c:78 +#: builtin/config.c:77 msgid "respect include directives on lookup" msgstr "" @@ -3851,31 +3891,31 @@ msgstr "" msgid "'%s': not a regular file or symlink" msgstr "" -#: builtin/diff.c:224 +#: builtin/diff.c:228 #, c-format msgid "invalid option: %s" msgstr "" -#: builtin/diff.c:301 +#: builtin/diff.c:305 msgid "Not a git repository" msgstr "" -#: builtin/diff.c:344 +#: builtin/diff.c:348 #, c-format msgid "invalid object '%s' given." msgstr "" -#: builtin/diff.c:349 +#: builtin/diff.c:353 #, c-format msgid "more than %d trees given: '%s'" msgstr "" -#: builtin/diff.c:359 +#: builtin/diff.c:363 #, c-format msgid "more than two blobs given: '%s'" msgstr "" -#: builtin/diff.c:367 +#: builtin/diff.c:371 #, c-format msgid "unhandled object '%s' given." msgstr "" @@ -3988,7 +4028,7 @@ msgstr "" msgid "deepen history of shallow clone" msgstr "" -#: builtin/fetch.c:85 builtin/log.c:1083 +#: builtin/fetch.c:85 builtin/log.c:1088 msgid "dir" msgstr "" @@ -4155,8 +4195,8 @@ msgstr "" msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "" -#: builtin/fmt-merge-msg.c:653 builtin/fmt-merge-msg.c:656 builtin/grep.c:787 -#: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:192 +#: builtin/fmt-merge-msg.c:653 builtin/fmt-merge-msg.c:656 builtin/grep.c:701 +#: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:175 #: builtin/tag.c:448 parse-options.h:133 parse-options.h:235 msgid "n" msgstr "" @@ -4312,225 +4352,225 @@ msgstr "" msgid "grep: failed to create thread: %s" msgstr "" -#: builtin/grep.c:455 +#: builtin/grep.c:365 #, c-format msgid "Failed to chdir: %s" msgstr "" -#: builtin/grep.c:531 builtin/grep.c:565 +#: builtin/grep.c:443 builtin/grep.c:478 #, c-format msgid "unable to read tree (%s)" msgstr "" -#: builtin/grep.c:579 +#: builtin/grep.c:493 #, c-format msgid "unable to grep from object of type %s" msgstr "" -#: builtin/grep.c:637 +#: builtin/grep.c:551 #, c-format msgid "switch `%c' expects a numerical value" msgstr "" -#: builtin/grep.c:654 +#: builtin/grep.c:568 #, c-format msgid "cannot open '%s'" msgstr "" -#: builtin/grep.c:729 +#: builtin/grep.c:643 msgid "search in index instead of in the work tree" msgstr "" -#: builtin/grep.c:731 +#: builtin/grep.c:645 msgid "find in contents not managed by git" msgstr "" -#: builtin/grep.c:733 +#: builtin/grep.c:647 msgid "search in both tracked and untracked files" msgstr "" -#: builtin/grep.c:735 +#: builtin/grep.c:649 msgid "search also in ignored files" msgstr "" -#: builtin/grep.c:738 +#: builtin/grep.c:652 msgid "show non-matching lines" msgstr "" -#: builtin/grep.c:740 +#: builtin/grep.c:654 msgid "case insensitive matching" msgstr "" -#: builtin/grep.c:742 +#: builtin/grep.c:656 msgid "match patterns only at word boundaries" msgstr "" -#: builtin/grep.c:744 +#: builtin/grep.c:658 msgid "process binary files as text" msgstr "" -#: builtin/grep.c:746 +#: builtin/grep.c:660 msgid "don't match patterns in binary files" msgstr "" -#: builtin/grep.c:749 +#: builtin/grep.c:663 msgid "descend at most <depth> levels" msgstr "" -#: builtin/grep.c:753 +#: builtin/grep.c:667 msgid "use extended POSIX regular expressions" msgstr "" -#: builtin/grep.c:756 +#: builtin/grep.c:670 msgid "use basic POSIX regular expressions (default)" msgstr "" -#: builtin/grep.c:759 +#: builtin/grep.c:673 msgid "interpret patterns as fixed strings" msgstr "" -#: builtin/grep.c:762 +#: builtin/grep.c:676 msgid "use Perl-compatible regular expressions" msgstr "" -#: builtin/grep.c:765 +#: builtin/grep.c:679 msgid "show line numbers" msgstr "" -#: builtin/grep.c:766 +#: builtin/grep.c:680 msgid "don't show filenames" msgstr "" -#: builtin/grep.c:767 +#: builtin/grep.c:681 msgid "show filenames" msgstr "" -#: builtin/grep.c:769 +#: builtin/grep.c:683 msgid "show filenames relative to top directory" msgstr "" -#: builtin/grep.c:771 +#: builtin/grep.c:685 msgid "show only filenames instead of matching lines" msgstr "" -#: builtin/grep.c:773 +#: builtin/grep.c:687 msgid "synonym for --files-with-matches" msgstr "" -#: builtin/grep.c:776 +#: builtin/grep.c:690 msgid "show only the names of files without match" msgstr "" -#: builtin/grep.c:778 +#: builtin/grep.c:692 msgid "print NUL after filenames" msgstr "" -#: builtin/grep.c:780 +#: builtin/grep.c:694 msgid "show the number of matches instead of matching lines" msgstr "" -#: builtin/grep.c:781 +#: builtin/grep.c:695 msgid "highlight matches" msgstr "" -#: builtin/grep.c:783 +#: builtin/grep.c:697 msgid "print empty line between matches from different files" msgstr "" -#: builtin/grep.c:785 +#: builtin/grep.c:699 msgid "show filename only once above matches from same file" msgstr "" -#: builtin/grep.c:788 +#: builtin/grep.c:702 msgid "show <n> context lines before and after matches" msgstr "" -#: builtin/grep.c:791 +#: builtin/grep.c:705 msgid "show <n> context lines before matches" msgstr "" -#: builtin/grep.c:793 +#: builtin/grep.c:707 msgid "show <n> context lines after matches" msgstr "" -#: builtin/grep.c:794 +#: builtin/grep.c:708 msgid "shortcut for -C NUM" msgstr "" -#: builtin/grep.c:797 +#: builtin/grep.c:711 msgid "show a line with the function name before matches" msgstr "" -#: builtin/grep.c:799 +#: builtin/grep.c:713 msgid "show the surrounding function" msgstr "" -#: builtin/grep.c:802 +#: builtin/grep.c:716 msgid "read patterns from file" msgstr "" -#: builtin/grep.c:804 +#: builtin/grep.c:718 msgid "match <pattern>" msgstr "" -#: builtin/grep.c:806 +#: builtin/grep.c:720 msgid "combine patterns specified with -e" msgstr "" -#: builtin/grep.c:818 +#: builtin/grep.c:732 msgid "indicate hit with exit status without output" msgstr "" -#: builtin/grep.c:820 +#: builtin/grep.c:734 msgid "show only matches from files that match all patterns" msgstr "" -#: builtin/grep.c:822 +#: builtin/grep.c:736 msgid "show parse tree for grep expression" msgstr "" -#: builtin/grep.c:826 +#: builtin/grep.c:740 msgid "pager" msgstr "" -#: builtin/grep.c:826 +#: builtin/grep.c:740 msgid "show matching files in the pager" msgstr "" -#: builtin/grep.c:829 +#: builtin/grep.c:743 msgid "allow calling of grep(1) (ignored by this build)" msgstr "" -#: builtin/grep.c:830 builtin/show-ref.c:201 +#: builtin/grep.c:744 builtin/show-ref.c:184 msgid "show usage" msgstr "" -#: builtin/grep.c:921 +#: builtin/grep.c:811 msgid "no pattern given." msgstr "" -#: builtin/grep.c:935 +#: builtin/grep.c:825 #, c-format msgid "bad object %s" msgstr "" -#: builtin/grep.c:976 +#: builtin/grep.c:866 msgid "--open-files-in-pager only works on the worktree" msgstr "" -#: builtin/grep.c:999 +#: builtin/grep.c:889 msgid "--cached or --untracked cannot be used with --no-index." msgstr "" -#: builtin/grep.c:1004 +#: builtin/grep.c:894 msgid "--no-index or --untracked cannot be used with revs." msgstr "" -#: builtin/grep.c:1007 +#: builtin/grep.c:897 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "" -#: builtin/grep.c:1015 +#: builtin/grep.c:905 msgid "both --cached and trees are given." msgstr "" @@ -5114,219 +5154,219 @@ msgstr "" msgid "Final output: %d %s\n" msgstr "" -#: builtin/log.c:403 builtin/log.c:494 +#: builtin/log.c:405 builtin/log.c:497 #, c-format msgid "Could not read object %s" msgstr "" -#: builtin/log.c:518 +#: builtin/log.c:521 #, c-format msgid "Unknown type: %d" msgstr "" -#: builtin/log.c:608 +#: builtin/log.c:613 msgid "format.headers without value" msgstr "" -#: builtin/log.c:682 +#: builtin/log.c:687 msgid "name of output directory is too long" msgstr "" -#: builtin/log.c:693 +#: builtin/log.c:698 #, c-format msgid "Cannot open patch file %s" msgstr "" -#: builtin/log.c:707 +#: builtin/log.c:712 msgid "Need exactly one range." msgstr "" -#: builtin/log.c:715 +#: builtin/log.c:720 msgid "Not a range." msgstr "" -#: builtin/log.c:789 +#: builtin/log.c:794 msgid "Cover letter needs email format" msgstr "" -#: builtin/log.c:862 +#: builtin/log.c:867 #, c-format msgid "insane in-reply-to: %s" msgstr "" -#: builtin/log.c:890 +#: builtin/log.c:895 msgid "git format-patch [options] [<since> | <revision range>]" msgstr "" -#: builtin/log.c:935 +#: builtin/log.c:940 msgid "Two output directories?" msgstr "" -#: builtin/log.c:1063 +#: builtin/log.c:1068 msgid "use [PATCH n/m] even with a single patch" msgstr "" -#: builtin/log.c:1066 +#: builtin/log.c:1071 msgid "use [PATCH] even with multiple patches" msgstr "" -#: builtin/log.c:1070 +#: builtin/log.c:1075 msgid "print patches to standard out" msgstr "" -#: builtin/log.c:1072 +#: builtin/log.c:1077 msgid "generate a cover letter" msgstr "" -#: builtin/log.c:1074 +#: builtin/log.c:1079 msgid "use simple number sequence for output file names" msgstr "" -#: builtin/log.c:1075 +#: builtin/log.c:1080 msgid "sfx" msgstr "" -#: builtin/log.c:1076 +#: builtin/log.c:1081 msgid "use <sfx> instead of '.patch'" msgstr "" -#: builtin/log.c:1078 +#: builtin/log.c:1083 msgid "start numbering patches at <n> instead of 1" msgstr "" -#: builtin/log.c:1080 +#: builtin/log.c:1085 msgid "Use [<prefix>] instead of [PATCH]" msgstr "" -#: builtin/log.c:1083 +#: builtin/log.c:1088 msgid "store resulting files in <dir>" msgstr "" -#: builtin/log.c:1086 +#: builtin/log.c:1091 msgid "don't strip/add [PATCH]" msgstr "" -#: builtin/log.c:1089 +#: builtin/log.c:1094 msgid "don't output binary diffs" msgstr "" -#: builtin/log.c:1091 +#: builtin/log.c:1096 msgid "don't include a patch matching a commit upstream" msgstr "" -#: builtin/log.c:1093 +#: builtin/log.c:1098 msgid "show patch format instead of default (patch + stat)" msgstr "" -#: builtin/log.c:1095 +#: builtin/log.c:1100 msgid "Messaging" msgstr "" -#: builtin/log.c:1096 +#: builtin/log.c:1101 msgid "header" msgstr "" -#: builtin/log.c:1097 +#: builtin/log.c:1102 msgid "add email header" msgstr "" -#: builtin/log.c:1098 builtin/log.c:1100 +#: builtin/log.c:1103 builtin/log.c:1105 msgid "email" msgstr "" -#: builtin/log.c:1098 +#: builtin/log.c:1103 msgid "add To: header" msgstr "" -#: builtin/log.c:1100 +#: builtin/log.c:1105 msgid "add Cc: header" msgstr "" -#: builtin/log.c:1102 +#: builtin/log.c:1107 msgid "message-id" msgstr "" -#: builtin/log.c:1103 +#: builtin/log.c:1108 msgid "make first mail a reply to <message-id>" msgstr "" -#: builtin/log.c:1104 builtin/log.c:1107 +#: builtin/log.c:1109 builtin/log.c:1112 msgid "boundary" msgstr "" -#: builtin/log.c:1105 +#: builtin/log.c:1110 msgid "attach the patch" msgstr "" -#: builtin/log.c:1108 +#: builtin/log.c:1113 msgid "inline the patch" msgstr "" -#: builtin/log.c:1112 +#: builtin/log.c:1117 msgid "enable message threading, styles: shallow, deep" msgstr "" -#: builtin/log.c:1114 +#: builtin/log.c:1119 msgid "signature" msgstr "" -#: builtin/log.c:1115 +#: builtin/log.c:1120 msgid "add a signature" msgstr "" -#: builtin/log.c:1117 +#: builtin/log.c:1122 msgid "don't print the patch filenames" msgstr "" -#: builtin/log.c:1157 +#: builtin/log.c:1163 #, c-format msgid "bogus committer info %s" msgstr "" -#: builtin/log.c:1202 +#: builtin/log.c:1208 msgid "-n and -k are mutually exclusive." msgstr "" -#: builtin/log.c:1204 +#: builtin/log.c:1210 msgid "--subject-prefix and -k are mutually exclusive." msgstr "" -#: builtin/log.c:1212 +#: builtin/log.c:1218 msgid "--name-only does not make sense" msgstr "" -#: builtin/log.c:1214 +#: builtin/log.c:1220 msgid "--name-status does not make sense" msgstr "" -#: builtin/log.c:1216 +#: builtin/log.c:1222 msgid "--check does not make sense" msgstr "" -#: builtin/log.c:1239 +#: builtin/log.c:1245 msgid "standard output, or directory, which one?" msgstr "" -#: builtin/log.c:1241 +#: builtin/log.c:1247 #, c-format msgid "Could not create directory '%s'" msgstr "" -#: builtin/log.c:1394 +#: builtin/log.c:1400 msgid "Failed to create output files" msgstr "" -#: builtin/log.c:1443 +#: builtin/log.c:1449 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "" -#: builtin/log.c:1498 +#: builtin/log.c:1504 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" msgstr "" -#: builtin/log.c:1511 builtin/log.c:1513 builtin/log.c:1525 +#: builtin/log.c:1517 builtin/log.c:1519 builtin/log.c:1531 #, c-format msgid "Unknown commit %s" msgstr "" @@ -5603,35 +5643,31 @@ msgstr "" msgid "git write-tree failed to write a tree" msgstr "" -#: builtin/merge.c:678 -msgid "failed to read the cache" -msgstr "" - -#: builtin/merge.c:709 +#: builtin/merge.c:656 msgid "Not handling anything other than two heads merge." msgstr "" -#: builtin/merge.c:723 +#: builtin/merge.c:670 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "" -#: builtin/merge.c:737 +#: builtin/merge.c:684 #, c-format msgid "unable to write %s" msgstr "" -#: builtin/merge.c:876 +#: builtin/merge.c:773 #, c-format msgid "Could not read from '%s'" msgstr "" -#: builtin/merge.c:885 +#: builtin/merge.c:782 #, c-format msgid "Not committing merge; use 'git commit' to complete the merge.\n" msgstr "" -#: builtin/merge.c:891 +#: builtin/merge.c:788 msgid "" "Please enter a commit message to explain why this merge is necessary,\n" "especially if it merges an updated upstream into a topic branch.\n" @@ -5640,140 +5676,140 @@ msgid "" "the commit.\n" msgstr "" -#: builtin/merge.c:915 +#: builtin/merge.c:812 msgid "Empty commit message." msgstr "" -#: builtin/merge.c:927 +#: builtin/merge.c:824 #, c-format msgid "Wonderful.\n" msgstr "" -#: builtin/merge.c:992 +#: builtin/merge.c:889 #, c-format msgid "Automatic merge failed; fix conflicts and then commit the result.\n" msgstr "" -#: builtin/merge.c:1008 +#: builtin/merge.c:905 #, c-format msgid "'%s' is not a commit" msgstr "" -#: builtin/merge.c:1049 +#: builtin/merge.c:946 msgid "No current branch." msgstr "" -#: builtin/merge.c:1051 +#: builtin/merge.c:948 msgid "No remote for the current branch." msgstr "" -#: builtin/merge.c:1053 +#: builtin/merge.c:950 msgid "No default upstream defined for the current branch." msgstr "" -#: builtin/merge.c:1058 +#: builtin/merge.c:955 #, c-format msgid "No remote tracking branch for %s from %s" msgstr "" -#: builtin/merge.c:1145 builtin/merge.c:1302 +#: builtin/merge.c:1042 builtin/merge.c:1199 #, c-format msgid "%s - not something we can merge" msgstr "" -#: builtin/merge.c:1213 +#: builtin/merge.c:1110 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "" -#: builtin/merge.c:1229 git-pull.sh:31 +#: builtin/merge.c:1126 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." msgstr "" -#: builtin/merge.c:1232 git-pull.sh:34 +#: builtin/merge.c:1129 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "" -#: builtin/merge.c:1236 +#: builtin/merge.c:1133 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." msgstr "" -#: builtin/merge.c:1239 +#: builtin/merge.c:1136 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." msgstr "" -#: builtin/merge.c:1248 +#: builtin/merge.c:1145 msgid "You cannot combine --squash with --no-ff." msgstr "" -#: builtin/merge.c:1253 +#: builtin/merge.c:1150 msgid "You cannot combine --no-ff with --ff-only." msgstr "" -#: builtin/merge.c:1260 +#: builtin/merge.c:1157 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "" -#: builtin/merge.c:1292 +#: builtin/merge.c:1189 msgid "Can merge only exactly one commit into empty head" msgstr "" -#: builtin/merge.c:1295 +#: builtin/merge.c:1192 msgid "Squash commit into empty head not supported yet" msgstr "" -#: builtin/merge.c:1297 +#: builtin/merge.c:1194 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "" -#: builtin/merge.c:1412 +#: builtin/merge.c:1309 #, c-format msgid "Updating %s..%s\n" msgstr "" -#: builtin/merge.c:1450 +#: builtin/merge.c:1348 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "" -#: builtin/merge.c:1457 +#: builtin/merge.c:1355 #, c-format msgid "Nope.\n" msgstr "" -#: builtin/merge.c:1489 +#: builtin/merge.c:1387 msgid "Not possible to fast-forward, aborting." msgstr "" -#: builtin/merge.c:1512 builtin/merge.c:1591 +#: builtin/merge.c:1410 builtin/merge.c:1489 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "" -#: builtin/merge.c:1516 +#: builtin/merge.c:1414 #, c-format msgid "Trying merge strategy %s...\n" msgstr "" -#: builtin/merge.c:1582 +#: builtin/merge.c:1480 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "" -#: builtin/merge.c:1584 +#: builtin/merge.c:1482 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "" -#: builtin/merge.c:1593 +#: builtin/merge.c:1491 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "" -#: builtin/merge.c:1605 +#: builtin/merge.c:1503 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -6323,143 +6359,143 @@ msgstr "" msgid "deflate error (%d)" msgstr "" -#: builtin/pack-objects.c:2398 +#: builtin/pack-objects.c:2397 #, c-format msgid "unsupported index version %s" msgstr "" -#: builtin/pack-objects.c:2402 +#: builtin/pack-objects.c:2401 #, c-format msgid "bad index version '%s'" msgstr "" -#: builtin/pack-objects.c:2425 +#: builtin/pack-objects.c:2424 #, c-format msgid "option %s does not accept negative form" msgstr "" -#: builtin/pack-objects.c:2429 +#: builtin/pack-objects.c:2428 #, c-format msgid "unable to parse value '%s' for option %s" msgstr "" -#: builtin/pack-objects.c:2448 +#: builtin/pack-objects.c:2447 msgid "do not show progress meter" msgstr "" -#: builtin/pack-objects.c:2450 +#: builtin/pack-objects.c:2449 msgid "show progress meter" msgstr "" -#: builtin/pack-objects.c:2452 +#: builtin/pack-objects.c:2451 msgid "show progress meter during object writing phase" msgstr "" -#: builtin/pack-objects.c:2455 +#: builtin/pack-objects.c:2454 msgid "similar to --all-progress when progress meter is shown" msgstr "" -#: builtin/pack-objects.c:2456 +#: builtin/pack-objects.c:2455 msgid "version[,offset]" msgstr "" -#: builtin/pack-objects.c:2457 +#: builtin/pack-objects.c:2456 msgid "write the pack index file in the specified idx format version" msgstr "" -#: builtin/pack-objects.c:2460 +#: builtin/pack-objects.c:2459 msgid "maximum size of each output pack file" msgstr "" -#: builtin/pack-objects.c:2462 +#: builtin/pack-objects.c:2461 msgid "ignore borrowed objects from alternate object store" msgstr "" -#: builtin/pack-objects.c:2464 +#: builtin/pack-objects.c:2463 msgid "ignore packed objects" msgstr "" -#: builtin/pack-objects.c:2466 +#: builtin/pack-objects.c:2465 msgid "limit pack window by objects" msgstr "" -#: builtin/pack-objects.c:2468 +#: builtin/pack-objects.c:2467 msgid "limit pack window by memory in addition to object limit" msgstr "" -#: builtin/pack-objects.c:2470 +#: builtin/pack-objects.c:2469 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "" -#: builtin/pack-objects.c:2472 +#: builtin/pack-objects.c:2471 msgid "reuse existing deltas" msgstr "" -#: builtin/pack-objects.c:2474 +#: builtin/pack-objects.c:2473 msgid "reuse existing objects" msgstr "" -#: builtin/pack-objects.c:2476 +#: builtin/pack-objects.c:2475 msgid "use OFS_DELTA objects" msgstr "" -#: builtin/pack-objects.c:2478 +#: builtin/pack-objects.c:2477 msgid "use threads when searching for best delta matches" msgstr "" -#: builtin/pack-objects.c:2480 +#: builtin/pack-objects.c:2479 msgid "do not create an empty pack output" msgstr "" -#: builtin/pack-objects.c:2482 +#: builtin/pack-objects.c:2481 msgid "read revision arguments from standard input" msgstr "" -#: builtin/pack-objects.c:2484 +#: builtin/pack-objects.c:2483 msgid "limit the objects to those that are not yet packed" msgstr "" -#: builtin/pack-objects.c:2487 +#: builtin/pack-objects.c:2486 msgid "include objects reachable from any reference" msgstr "" -#: builtin/pack-objects.c:2490 +#: builtin/pack-objects.c:2489 msgid "include objects referred by reflog entries" msgstr "" -#: builtin/pack-objects.c:2493 +#: builtin/pack-objects.c:2492 msgid "output pack to stdout" msgstr "" -#: builtin/pack-objects.c:2495 +#: builtin/pack-objects.c:2494 msgid "include tag objects that refer to objects to be packed" msgstr "" -#: builtin/pack-objects.c:2497 +#: builtin/pack-objects.c:2496 msgid "keep unreachable objects" msgstr "" -#: builtin/pack-objects.c:2498 parse-options.h:141 +#: builtin/pack-objects.c:2497 parse-options.h:141 msgid "time" msgstr "" -#: builtin/pack-objects.c:2499 +#: builtin/pack-objects.c:2498 msgid "unpack unreachable objects newer than <time>" msgstr "" -#: builtin/pack-objects.c:2502 +#: builtin/pack-objects.c:2501 msgid "create thin packs" msgstr "" -#: builtin/pack-objects.c:2504 +#: builtin/pack-objects.c:2503 msgid "ignore packs that have companion .keep file" msgstr "" -#: builtin/pack-objects.c:2506 +#: builtin/pack-objects.c:2505 msgid "pack compression level" msgstr "" -#: builtin/pack-objects.c:2508 +#: builtin/pack-objects.c:2507 msgid "do not hide commits by grafts" msgstr "" @@ -6800,7 +6836,7 @@ msgstr "" msgid "git remote remove <name>" msgstr "" -#: builtin/remote.c:15 +#: builtin/remote.c:15 builtin/remote.c:42 msgid "git remote set-head <name> (-a | -d | <branch>)" msgstr "" @@ -6837,10 +6873,6 @@ msgstr "" msgid "git remote add [<options>] <name> <url>" msgstr "" -#: builtin/remote.c:42 -msgid "git remote set-head <name> (-a | -d | <branch>])" -msgstr "" - #: builtin/remote.c:47 msgid "git remote set-branches <name> <branch>..." msgstr "" @@ -7280,15 +7312,15 @@ msgstr "" msgid "git replace -l [<pattern>]" msgstr "" -#: builtin/replace.c:118 +#: builtin/replace.c:121 msgid "list replace refs" msgstr "" -#: builtin/replace.c:119 +#: builtin/replace.c:122 msgid "delete replace refs" msgstr "" -#: builtin/replace.c:120 +#: builtin/replace.c:123 msgid "replace the ref if it exists" msgstr "" @@ -7526,57 +7558,64 @@ msgstr "" msgid "cherry-pick failed" msgstr "" -#: builtin/rm.c:14 +#: builtin/rm.c:15 msgid "git rm [options] [--] <file>..." msgstr "" -#: builtin/rm.c:109 +#: builtin/rm.c:64 builtin/rm.c:186 +#, c-format +msgid "" +"submodule '%s' (or one of its nested submodules) uses a .git directory\n" +"(use 'rm -rf' if you really want to remove it including all of its history)" +msgstr "" + +#: builtin/rm.c:174 #, c-format msgid "" "'%s' has staged content different from both the file and the HEAD\n" "(use -f to force removal)" msgstr "" -#: builtin/rm.c:115 +#: builtin/rm.c:180 #, c-format msgid "" "'%s' has changes staged in the index\n" "(use --cached to keep the file, or -f to force removal)" msgstr "" -#: builtin/rm.c:119 +#: builtin/rm.c:191 #, c-format msgid "" "'%s' has local modifications\n" "(use --cached to keep the file, or -f to force removal)" msgstr "" -#: builtin/rm.c:134 +#: builtin/rm.c:207 msgid "do not list removed files" msgstr "" -#: builtin/rm.c:135 +#: builtin/rm.c:208 msgid "only remove from the index" msgstr "" -#: builtin/rm.c:136 +#: builtin/rm.c:209 msgid "override the up-to-date check" msgstr "" -#: builtin/rm.c:137 +#: builtin/rm.c:210 msgid "allow recursive removal" msgstr "" -#: builtin/rm.c:139 +#: builtin/rm.c:212 msgid "exit with a zero status even if nothing matched" msgstr "" -#: builtin/rm.c:194 +#: builtin/rm.c:283 #, c-format msgid "not removing '%s' recursively without -r" msgstr "" -#: builtin/rm.c:230 +#: builtin/rm.c:322 #, c-format msgid "git rm: unable to remove %s" msgstr "" @@ -7696,35 +7735,35 @@ msgstr "" msgid "git show-ref --exclude-existing[=pattern] < ref-list" msgstr "" -#: builtin/show-ref.c:182 +#: builtin/show-ref.c:165 msgid "only show tags (can be combined with heads)" msgstr "" -#: builtin/show-ref.c:183 +#: builtin/show-ref.c:166 msgid "only show heads (can be combined with tags)" msgstr "" -#: builtin/show-ref.c:184 +#: builtin/show-ref.c:167 msgid "stricter reference checking, requires exact ref path" msgstr "" -#: builtin/show-ref.c:187 builtin/show-ref.c:189 +#: builtin/show-ref.c:170 builtin/show-ref.c:172 msgid "show the HEAD reference" msgstr "" -#: builtin/show-ref.c:191 +#: builtin/show-ref.c:174 msgid "dereference tags into object IDs" msgstr "" -#: builtin/show-ref.c:193 +#: builtin/show-ref.c:176 msgid "only show SHA1 hash using <n> digits" msgstr "" -#: builtin/show-ref.c:197 +#: builtin/show-ref.c:180 msgid "do not print results to stdout (useful with --verify)" msgstr "" -#: builtin/show-ref.c:199 +#: builtin/show-ref.c:182 msgid "show refs from stdin that aren't in local repository" msgstr "" @@ -7732,19 +7771,27 @@ msgstr "" msgid "git symbolic-ref [options] name [ref]" msgstr "" -#: builtin/symbolic-ref.c:38 +#: builtin/symbolic-ref.c:8 +msgid "git symbolic-ref -d [-q] name" +msgstr "" + +#: builtin/symbolic-ref.c:40 msgid "suppress error message for non-symbolic (detached) refs" msgstr "" -#: builtin/symbolic-ref.c:39 +#: builtin/symbolic-ref.c:41 +msgid "delete symbolic ref" +msgstr "" + +#: builtin/symbolic-ref.c:42 msgid "shorten ref output" msgstr "" -#: builtin/symbolic-ref.c:40 builtin/update-ref.c:18 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18 msgid "reason" msgstr "" -#: builtin/symbolic-ref.c:40 builtin/update-ref.c:18 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18 msgid "reason of the update" msgstr "" @@ -7954,111 +8001,111 @@ msgstr "" msgid "git update-index [options] [--] [<file>...]" msgstr "" -#: builtin/update-index.c:717 +#: builtin/update-index.c:718 msgid "continue refresh even when index needs update" msgstr "" -#: builtin/update-index.c:720 +#: builtin/update-index.c:721 msgid "refresh: ignore submodules" msgstr "" -#: builtin/update-index.c:723 +#: builtin/update-index.c:724 msgid "do not ignore new files" msgstr "" -#: builtin/update-index.c:725 +#: builtin/update-index.c:726 msgid "let files replace directories and vice-versa" msgstr "" -#: builtin/update-index.c:727 +#: builtin/update-index.c:728 msgid "notice files missing from worktree" msgstr "" -#: builtin/update-index.c:729 +#: builtin/update-index.c:730 msgid "refresh even if index contains unmerged entries" msgstr "" -#: builtin/update-index.c:732 +#: builtin/update-index.c:733 msgid "refresh stat information" msgstr "" -#: builtin/update-index.c:736 +#: builtin/update-index.c:737 msgid "like --refresh, but ignore assume-unchanged setting" msgstr "" -#: builtin/update-index.c:740 +#: builtin/update-index.c:741 msgid "<mode> <object> <path>" msgstr "" -#: builtin/update-index.c:741 +#: builtin/update-index.c:742 msgid "add the specified entry to the index" msgstr "" -#: builtin/update-index.c:745 +#: builtin/update-index.c:746 msgid "(+/-)x" msgstr "" -#: builtin/update-index.c:746 +#: builtin/update-index.c:747 msgid "override the executable bit of the listed files" msgstr "" -#: builtin/update-index.c:750 +#: builtin/update-index.c:751 msgid "mark files as \"not changing\"" msgstr "" -#: builtin/update-index.c:753 +#: builtin/update-index.c:754 msgid "clear assumed-unchanged bit" msgstr "" -#: builtin/update-index.c:756 +#: builtin/update-index.c:757 msgid "mark files as \"index-only\"" msgstr "" -#: builtin/update-index.c:759 +#: builtin/update-index.c:760 msgid "clear skip-worktree bit" msgstr "" -#: builtin/update-index.c:762 +#: builtin/update-index.c:763 msgid "add to index only; do not add content to object database" msgstr "" -#: builtin/update-index.c:764 +#: builtin/update-index.c:765 msgid "remove named paths even if present in worktree" msgstr "" -#: builtin/update-index.c:766 +#: builtin/update-index.c:767 msgid "with --stdin: input lines are terminated by null bytes" msgstr "" -#: builtin/update-index.c:768 +#: builtin/update-index.c:769 msgid "read list of paths to be updated from standard input" msgstr "" -#: builtin/update-index.c:772 +#: builtin/update-index.c:773 msgid "add entries from standard input to the index" msgstr "" -#: builtin/update-index.c:776 +#: builtin/update-index.c:777 msgid "repopulate stages #2 and #3 for the listed paths" msgstr "" -#: builtin/update-index.c:780 +#: builtin/update-index.c:781 msgid "only update entries that differ from HEAD" msgstr "" -#: builtin/update-index.c:784 +#: builtin/update-index.c:785 msgid "ignore files missing from worktree" msgstr "" -#: builtin/update-index.c:787 +#: builtin/update-index.c:788 msgid "report actions to standard output" msgstr "" -#: builtin/update-index.c:789 +#: builtin/update-index.c:790 msgid "(for porcelains) forget saved unresolved conflicts" msgstr "" -#: builtin/update-index.c:793 +#: builtin/update-index.c:794 msgid "write index in this format" msgstr "" @@ -8535,7 +8582,7 @@ msgstr "" #. The working tree and the index file is still based on the #. $orig_head commit, but we are merging into $curr_head. #. First update the working tree to match $curr_head. -#: git-pull.sh:228 +#: git-pull.sh:229 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -8543,11 +8590,11 @@ msgid "" "Warning: commit $orig_head." msgstr "" -#: git-pull.sh:253 +#: git-pull.sh:254 msgid "Cannot merge multiple branches into empty head" msgstr "" -#: git-pull.sh:257 +#: git-pull.sh:258 msgid "Cannot rebase onto multiple branches" msgstr "" @@ -8788,12 +8835,12 @@ msgstr "" msgid "(To restore them type \"git stash apply\")" msgstr "" -#: git-submodule.sh:88 +#: git-submodule.sh:89 #, sh-format msgid "cannot strip one component off url '$remoteurl'" msgstr "" -#: git-submodule.sh:167 +#: git-submodule.sh:168 #, sh-format msgid "No submodule mapping found in .gitmodules for path '$sm_path'" msgstr "" @@ -8808,17 +8855,17 @@ msgstr "" msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "" -#: git-submodule.sh:312 +#: git-submodule.sh:316 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "" -#: git-submodule.sh:329 +#: git-submodule.sh:333 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "" -#: git-submodule.sh:333 +#: git-submodule.sh:337 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -8826,151 +8873,180 @@ msgid "" "Use -f if you really want to add it." msgstr "" -#: git-submodule.sh:344 +#: git-submodule.sh:355 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "" -#: git-submodule.sh:346 +#: git-submodule.sh:357 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" msgstr "" -#: git-submodule.sh:360 +#: git-submodule.sh:365 +#, sh-format +msgid "A git directory for '$sm_name' is found locally with remote(s):" +msgstr "" + +#: git-submodule.sh:367 +#, sh-format +msgid "" +"If you want to reuse this local git directory instead of cloning again from" +msgstr "" + +#: git-submodule.sh:369 +#, sh-format +msgid "" +"use the '--force' option. If the local git directory is not the correct repo" +msgstr "" + +#: git-submodule.sh:370 +#, sh-format +msgid "" +"or you are unsure what this means choose another name with the '--name' " +"option." +msgstr "" + +#: git-submodule.sh:372 +#, sh-format +msgid "Reactivating local git directory for submodule '$sm_name'." +msgstr "" + +#: git-submodule.sh:384 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "" -#: git-submodule.sh:365 +#: git-submodule.sh:389 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "" -#: git-submodule.sh:370 +#: git-submodule.sh:394 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "" -#: git-submodule.sh:413 +#: git-submodule.sh:437 #, sh-format msgid "Entering '$prefix$sm_path'" msgstr "" -#: git-submodule.sh:427 +#: git-submodule.sh:451 #, sh-format msgid "Stopping at '$sm_path'; script returned non-zero status." msgstr "" -#: git-submodule.sh:471 +#: git-submodule.sh:495 #, sh-format msgid "No url found for submodule path '$sm_path' in .gitmodules" msgstr "" -#: git-submodule.sh:480 +#: git-submodule.sh:504 #, sh-format msgid "Failed to register url for submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:482 +#: git-submodule.sh:506 #, sh-format msgid "Submodule '$name' ($url) registered for path '$sm_path'" msgstr "" -#: git-submodule.sh:490 +#: git-submodule.sh:514 #, sh-format msgid "Failed to register update mode for submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:590 +#: git-submodule.sh:614 #, sh-format msgid "" "Submodule path '$sm_path' not initialized\n" "Maybe you want to use 'update --init'?" msgstr "" -#: git-submodule.sh:603 +#: git-submodule.sh:627 #, sh-format msgid "Unable to find current revision in submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:622 +#: git-submodule.sh:646 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:636 +#: git-submodule.sh:660 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:637 +#: git-submodule.sh:661 #, sh-format msgid "Submodule path '$sm_path': rebased into '$sha1'" msgstr "" -#: git-submodule.sh:642 +#: git-submodule.sh:666 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:643 +#: git-submodule.sh:667 #, sh-format msgid "Submodule path '$sm_path': merged in '$sha1'" msgstr "" -#: git-submodule.sh:648 +#: git-submodule.sh:672 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:649 +#: git-submodule.sh:673 #, sh-format msgid "Submodule path '$sm_path': checked out '$sha1'" msgstr "" -#: git-submodule.sh:671 git-submodule.sh:995 +#: git-submodule.sh:695 git-submodule.sh:1017 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" msgstr "" -#: git-submodule.sh:779 +#: git-submodule.sh:803 msgid "The --cached option cannot be used with the --files option" msgstr "" #. unexpected type -#: git-submodule.sh:819 +#: git-submodule.sh:843 #, sh-format msgid "unexpected mode $mod_dst" msgstr "" -#: git-submodule.sh:837 +#: git-submodule.sh:861 #, sh-format msgid " Warn: $name doesn't contain commit $sha1_src" msgstr "" -#: git-submodule.sh:840 +#: git-submodule.sh:864 #, sh-format msgid " Warn: $name doesn't contain commit $sha1_dst" msgstr "" -#: git-submodule.sh:843 +#: git-submodule.sh:867 #, sh-format msgid " Warn: $name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" -#: git-submodule.sh:868 +#: git-submodule.sh:892 msgid "blob" msgstr "" -#: git-submodule.sh:906 +#: git-submodule.sh:930 msgid "# Submodules changed but not updated:" msgstr "" -#: git-submodule.sh:908 +#: git-submodule.sh:932 msgid "# Submodule changes to be committed:" msgstr "" -#: git-submodule.sh:1054 +#: git-submodule.sh:1080 #, sh-format -msgid "Synchronizing submodule url for '$name'" +msgid "Synchronizing submodule url for '$prefix$sm_path'" msgstr "" @@ -5,10 +5,10 @@ # msgid "" msgstr "" -"Project-Id-Version: git 1.7.12\n" +"Project-Id-Version: git 1.8.1\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2012-10-16 08:38+0800\n" -"PO-Revision-Date: 2012-10-16 08:36+0100\n" +"POT-Creation-Date: 2012-11-30 12:40+0800\n" +"PO-Revision-Date: 2012-11-30 10:49+0100\n" "Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language: sv\n" @@ -65,7 +65,7 @@ msgstr "fmt" msgid "archive format" msgstr "arkivformat" -#: archive.c:323 builtin/log.c:1079 +#: archive.c:323 builtin/log.c:1084 msgid "prefix" msgstr "prefix" @@ -73,9 +73,9 @@ msgstr "prefix" msgid "prepend prefix to each pathname in the archive" msgstr "lägg till prefix till varje sökväg i arkivet" -#: archive.c:325 builtin/archive.c:91 builtin/blame.c:2389 -#: builtin/blame.c:2390 builtin/config.c:56 builtin/fast-export.c:642 -#: builtin/fast-export.c:644 builtin/grep.c:801 builtin/hash-object.c:77 +#: archive.c:325 builtin/archive.c:91 builtin/blame.c:2390 +#: builtin/blame.c:2391 builtin/config.c:55 builtin/fast-export.c:642 +#: builtin/fast-export.c:644 builtin/grep.c:715 builtin/hash-object.c:77 #: builtin/ls-files.c:494 builtin/ls-files.c:497 builtin/notes.c:540 #: builtin/notes.c:697 builtin/read-tree.c:107 parse-options.h:149 msgid "file" @@ -125,6 +125,14 @@ msgstr "kommando" msgid "path to the remote git-upload-archive command" msgstr "sökväg till kommandot git-upload-archive pÃ¥ fjärren" +#: attr.c:259 +msgid "" +"Negative patterns are forbidden in git attributes\n" +"Use '\\!' for literal leading exclamation." +msgstr "" +"Negativa mönster är förbjudna i git-attribut\n" +"Använd '\\!' för att inleda med ett utropstecken." + #: bundle.c:36 #, c-format msgid "'%s' does not look like a v2 bundle file" @@ -135,7 +143,7 @@ msgstr "'%s' ser inte ut som en v2-bundle-fil" msgid "unrecognized header: %s%s (%d)" msgstr "okänt huvud: %s%s (%d)" -#: bundle.c:89 builtin/commit.c:672 +#: bundle.c:89 builtin/commit.c:674 #, c-format msgid "could not open '%s'" msgstr "kunde inte öppna \"%s\"" @@ -145,7 +153,7 @@ msgid "Repository lacks these prerequisite commits:" msgstr "Arkivet saknar dessa nödvändiga incheckningar:" #: bundle.c:164 sequencer.c:562 sequencer.c:994 builtin/log.c:290 -#: builtin/log.c:727 builtin/log.c:1313 builtin/log.c:1529 builtin/merge.c:347 +#: builtin/log.c:732 builtin/log.c:1319 builtin/log.c:1535 builtin/merge.c:347 #: builtin/shortlog.c:181 msgid "revision walk setup failed" msgstr "misslyckades skapa revisionstraversering" @@ -172,7 +180,7 @@ msgstr[1] "Paketet (bundlen) kräver dessa %d referenser" msgid "rev-list died" msgstr "rev-list dog" -#: bundle.c:300 builtin/log.c:1209 builtin/shortlog.c:284 +#: bundle.c:300 builtin/log.c:1215 builtin/shortlog.c:284 #, c-format msgid "unrecognized argument: %s" msgstr "okänt argument: %s" @@ -298,17 +306,22 @@ msgid_plural "%lu years ago" msgstr[0] "%lu Ã¥r sedan" msgstr[1] "%lu Ã¥r sedan" -#: diff.c:105 +#: diff.c:111 +#, c-format +msgid " Failed to parse dirstat cut-off percentage '%s'\n" +msgstr " Misslyckades tolka dirstat-avskärningsprocentandel \"%s\"\n" + +#: diff.c:116 #, c-format -msgid " Failed to parse dirstat cut-off percentage '%.*s'\n" -msgstr " Misslyckades tolka dirstat-avskärningsprocentandel \"%.*s\"\n" +msgid " Unknown dirstat parameter '%s'\n" +msgstr " Okänd dirstat-parameter \"%s\"\n" -#: diff.c:110 +#: diff.c:194 #, c-format -msgid " Unknown dirstat parameter '%.*s'\n" -msgstr " Okänd dirstat-parameter \"%.*s\"\n" +msgid "Unknown value for 'diff.submodule' config variable: '%s'" +msgstr "Okänt värde för konfigurationsvariabeln \"diff.submodule\": \"%s\"" -#: diff.c:210 +#: diff.c:237 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -317,7 +330,7 @@ msgstr "" "Hittade fel i konfigurationsvariabeln \"diff.dirstat\":\n" "%s" -#: diff.c:3458 +#: diff.c:3494 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -326,6 +339,11 @@ msgstr "" "Misslyckades tolka argument till flaggan --dirstat/-X;\n" "%s" +#: diff.c:3508 +#, c-format +msgid "Failed to parse --submodule option parameter: '%s'" +msgstr "Misslyckades tolka argument till flaggan --submodule: \"%s\"" + #: gpg-interface.c:59 msgid "could not run gpg." msgstr "kunde inte köra gpg." @@ -338,17 +356,17 @@ msgstr "gpg godtog inte data" msgid "gpg failed to sign the data" msgstr "gpg misslyckades signera data" -#: grep.c:1441 +#: grep.c:1622 #, c-format msgid "'%s': unable to read %s" msgstr "\"%s\" kunde inte läsa %s" -#: grep.c:1458 +#: grep.c:1639 #, c-format msgid "'%s': %s" msgstr "\"%s\": %s" -#: grep.c:1469 +#: grep.c:1650 #, c-format msgid "'%s': short read %s" msgstr "\"%s\": kort läsning %s" @@ -408,6 +426,15 @@ msgstr[1] "" "\n" "Menade du ett av dessa?" +#: merge.c:56 +msgid "failed to read the cache" +msgstr "misslyckads läsa cachen" + +#: merge.c:110 builtin/checkout.c:333 builtin/checkout.c:534 +#: builtin/clone.c:586 +msgid "unable to write new index file" +msgstr "kunde inte skriva ny indexfil" + #: merge-recursive.c:190 #, c-format msgid "(bad commit)\n" @@ -587,7 +614,7 @@ msgstr "Hoppade över %s (sammanslagen samma som befintlig)" msgid "Auto-merging %s" msgstr "SlÃ¥r ihop %s automatiskt" -#: merge-recursive.c:1633 git-submodule.sh:869 +#: merge-recursive.c:1633 git-submodule.sh:893 msgid "submodule" msgstr "undermodul" @@ -658,7 +685,7 @@ msgstr "sammanslagningen returnerade ingen incheckning" msgid "Could not parse object '%s'" msgstr "Kunde inte tolka objektet \"%s\"" -#: merge-recursive.c:2009 builtin/merge.c:696 +#: merge-recursive.c:2009 builtin/merge.c:643 msgid "Unable to write index." msgstr "Kunde inte skriva indexet." @@ -690,7 +717,11 @@ msgid_plural "Your branch is ahead of '%s' by %d commits.\n" msgstr[0] "Din gren ligger före \"%s\" med %d incheckning.\n" msgstr[1] "Din gren ligger före \"%s\" med %d incheckningar.\n" -#: remote.c:1638 +#: remote.c:1637 +msgid " (use \"git push\" to publish your local commits)\n" +msgstr " (använd \"git push\" för att publicera dina lokala incheckningar)\n" + +#: remote.c:1640 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -700,7 +731,11 @@ msgstr[0] "" msgstr[1] "" "Din gren ligger efter \"%s\" med %d incheckningar, och kan snabbspolas.\n" -#: remote.c:1646 +#: remote.c:1647 +msgid " (use \"git pull\" to update your local branch)\n" +msgstr " (använd \"git pull\" för att uppdatera din lokala gren)\n" + +#: remote.c:1650 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -715,14 +750,18 @@ msgstr[1] "" "Din gren och \"%s\" har divergerat,\n" "och har %d respektive %d olika incheckningar.\n" -#: sequencer.c:123 builtin/merge.c:864 builtin/merge.c:977 -#: builtin/merge.c:1087 builtin/merge.c:1097 +#: remote.c:1659 +msgid " (use \"git pull\" to merge the remote branch into yours)\n" +msgstr " (använd \"git pull\" för att slÃ¥ ihop fjärrgrenen med din egen)\n" + +#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:874 builtin/merge.c:984 +#: builtin/merge.c:994 #, c-format msgid "Could not open '%s' for writing" msgstr "Kunde inte öppna \"%s\" för skrivning" -#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:867 -#: builtin/merge.c:1089 builtin/merge.c:1102 +#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:764 builtin/merge.c:986 +#: builtin/merge.c:999 #, c-format msgid "Could not write to '%s'" msgstr "Kunde inte skriva till \"%s\"" @@ -1348,7 +1387,7 @@ msgstr "git add [flaggor] [--] <filmönster>..." msgid "unexpected diff status %c" msgstr "diff-status %c förväntades inte" -#: builtin/add.c:67 builtin/commit.c:230 +#: builtin/add.c:67 builtin/commit.c:231 msgid "updating files failed" msgstr "misslyckades uppdatera filer" @@ -1366,7 +1405,7 @@ msgstr "Sökvägen \"%s\" är i undermodulen \"%.*s\"" msgid "Unstaged changes after refreshing the index:" msgstr "OspÃ¥rade ändringar efter att ha uppdaterat indexet:" -#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:186 +#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:275 #, c-format msgid "pathspec '%s' did not match any files" msgstr "sökvägsangivelsen \"%s\" motsvarade inte nÃ¥gra filer" @@ -1409,12 +1448,12 @@ msgstr "Följande sökvägar ignoreras av en av dina .gitignore-filer:\n" #: builtin/add.c:319 builtin/clean.c:52 builtin/fetch.c:78 builtin/mv.c:63 #: builtin/prune-packed.c:76 builtin/push.c:388 builtin/remote.c:1253 -#: builtin/rm.c:133 +#: builtin/rm.c:206 msgid "dry run" msgstr "testkörning" -#: builtin/add.c:320 builtin/apply.c:4354 builtin/commit.c:1154 -#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1477 +#: builtin/add.c:320 builtin/apply.c:4354 builtin/commit.c:1160 +#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1483 #: builtin/mv.c:62 builtin/read-tree.c:112 msgid "be verbose" msgstr "var pratsam" @@ -1423,7 +1462,7 @@ msgstr "var pratsam" msgid "interactive picking" msgstr "plocka interaktivt" -#: builtin/add.c:323 builtin/checkout.c:1028 builtin/reset.c:248 +#: builtin/add.c:323 builtin/checkout.c:1031 builtin/reset.c:248 msgid "select hunks interactively" msgstr "välj stycken interaktivt" @@ -1490,12 +1529,12 @@ msgstr "Inget angivet, inget tillagt.\n" msgid "Maybe you wanted to say 'git add .'?\n" msgstr "Kanske menade du att skriva \"git add .\"?\n" -#: builtin/add.c:421 builtin/clean.c:95 builtin/commit.c:290 builtin/mv.c:82 -#: builtin/rm.c:162 +#: builtin/add.c:421 builtin/clean.c:95 builtin/commit.c:291 builtin/mv.c:82 +#: builtin/rm.c:235 msgid "index file corrupt" msgstr "indexfilen trasig" -#: builtin/add.c:481 builtin/apply.c:4450 builtin/mv.c:229 builtin/rm.c:260 +#: builtin/add.c:481 builtin/apply.c:4450 builtin/mv.c:229 builtin/rm.c:370 msgid "Unable to write new index file" msgstr "Kunde inte skriva ny indexfil" @@ -2031,95 +2070,95 @@ msgstr "git blame [flaggor] [rev-flaggor] [rev] [--] fil" msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "[rev-flaggor] dokumenteras i git-rev-list(1)" -#: builtin/blame.c:2373 +#: builtin/blame.c:2374 msgid "Show blame entries as we find them, incrementally" msgstr "Visa klandringsposter när vi hittar dem, interaktivt" -#: builtin/blame.c:2374 +#: builtin/blame.c:2375 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "Visa blank SHA-1 för gränsincheckningar (Standard: av)" -#: builtin/blame.c:2375 +#: builtin/blame.c:2376 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "Behandla inte rotincheckningar som gränser (Standard: av)" -#: builtin/blame.c:2376 +#: builtin/blame.c:2377 msgid "Show work cost statistics" msgstr "Visa statistik över arbetskostnad" -#: builtin/blame.c:2377 +#: builtin/blame.c:2378 msgid "Show output score for blame entries" msgstr "Visa utdatapoäng för klandringsposter" -#: builtin/blame.c:2378 +#: builtin/blame.c:2379 msgid "Show original filename (Default: auto)" msgstr "Visa originalfilnamn (Standard: auto)" -#: builtin/blame.c:2379 +#: builtin/blame.c:2380 msgid "Show original linenumber (Default: off)" msgstr "Visa ursprungligt radnummer (Standard: av)" -#: builtin/blame.c:2380 +#: builtin/blame.c:2381 msgid "Show in a format designed for machine consumption" msgstr "Visa i ett format avsett för maskinkonsumtion" -#: builtin/blame.c:2381 +#: builtin/blame.c:2382 msgid "Show porcelain format with per-line commit information" msgstr "Visa porslinsformat med per-rad-incheckningsinformation" -#: builtin/blame.c:2382 +#: builtin/blame.c:2383 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "Använd samma utdataläge som git-annotate (Standard: av)" -#: builtin/blame.c:2383 +#: builtin/blame.c:2384 msgid "Show raw timestamp (Default: off)" msgstr "Visa rÃ¥ tidsstämpel (Standard: av)" -#: builtin/blame.c:2384 +#: builtin/blame.c:2385 msgid "Show long commit SHA1 (Default: off)" msgstr "Visa lÃ¥ng inchecknings-SHA1 (Standard: av)" -#: builtin/blame.c:2385 +#: builtin/blame.c:2386 msgid "Suppress author name and timestamp (Default: off)" msgstr "Undertryck författarnamn och tidsstämpel (Standard: av)" -#: builtin/blame.c:2386 +#: builtin/blame.c:2387 msgid "Show author email instead of name (Default: off)" msgstr "Visa författarens e-post istället för namn (Standard: av)" -#: builtin/blame.c:2387 +#: builtin/blame.c:2388 msgid "Ignore whitespace differences" msgstr "Ignorera ändringar i blanksteg" -#: builtin/blame.c:2388 +#: builtin/blame.c:2389 msgid "Spend extra cycles to find better match" msgstr "Slösa extra cykler med att hitta bättre träff" -#: builtin/blame.c:2389 +#: builtin/blame.c:2390 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "Använd revisioner frÃ¥n <fil> istället för att anropa git-rev-list" -#: builtin/blame.c:2390 +#: builtin/blame.c:2391 msgid "Use <file>'s contents as the final image" msgstr "Använd <fil>s innehÃ¥ll som slutgiltig bild" -#: builtin/blame.c:2391 builtin/blame.c:2392 +#: builtin/blame.c:2392 builtin/blame.c:2393 msgid "score" msgstr "poäng" -#: builtin/blame.c:2391 +#: builtin/blame.c:2392 msgid "Find line copies within and across files" msgstr "Hitta kopierade rader inuti och mellan filer" -#: builtin/blame.c:2392 +#: builtin/blame.c:2393 msgid "Find line movements within and across files" msgstr "Hitta flyttade rader inuti och mellan filer" -#: builtin/blame.c:2393 +#: builtin/blame.c:2394 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2393 +#: builtin/blame.c:2394 msgid "Process only line range n,m, counting from 1" msgstr "Behandla endast radintervallet n,m, med början pÃ¥ 1" @@ -2157,267 +2196,267 @@ msgstr "" "tar inte bort grenen \"%s\" som inte har slagits ihop med\n" " \"%s\", trots att den har slagits ihop med HEAD." -#: builtin/branch.c:181 +#: builtin/branch.c:163 +#, c-format +msgid "Couldn't look up commit object for '%s'" +msgstr "Kunde inte slÃ¥ upp incheckningsobjekt för \"%s\"" + +#: builtin/branch.c:167 +#, c-format +msgid "" +"The branch '%s' is not fully merged.\n" +"If you are sure you want to delete it, run 'git branch -D %s'." +msgstr "" +"Grenen \"%s\" har inte slagits samman i sin helhet.\n" +"Om du är säker pÃ¥ att du vill ta bort den, kör \"git branch -D %s\"." + +#: builtin/branch.c:180 +msgid "Update of config-file failed" +msgstr "Misslyckades uppdatera konfigurationsfil" + +#: builtin/branch.c:208 msgid "cannot use -a with -d" msgstr "kan inte ange -a med -d" -#: builtin/branch.c:187 +#: builtin/branch.c:214 msgid "Couldn't look up commit object for HEAD" msgstr "Kunde inte slÃ¥ upp incheckningsobjekt för HEAD" -#: builtin/branch.c:192 +#: builtin/branch.c:222 #, c-format msgid "Cannot delete the branch '%s' which you are currently on." msgstr "Kan inte ta bort grenen \"%s\" som du befinner dig pÃ¥ för närvarande." -#: builtin/branch.c:203 +#: builtin/branch.c:235 #, c-format msgid "remote branch '%s' not found." msgstr "fjärrgrenen \"%s\" hittades inte." -#: builtin/branch.c:204 +#: builtin/branch.c:236 #, c-format msgid "branch '%s' not found." msgstr "grenen \"%s\" hittades inte." -#: builtin/branch.c:211 -#, c-format -msgid "Couldn't look up commit object for '%s'" -msgstr "Kunde inte slÃ¥ upp incheckningsobjekt för \"%s\"" - -#: builtin/branch.c:217 -#, c-format -msgid "" -"The branch '%s' is not fully merged.\n" -"If you are sure you want to delete it, run 'git branch -D %s'." -msgstr "" -"Grenen \"%s\" har inte slagits samman i sin helhet.\n" -"Om du är säker pÃ¥ att du vill ta bort den, kör \"git branch -D %s\"." - -#: builtin/branch.c:226 +#: builtin/branch.c:250 #, c-format msgid "Error deleting remote branch '%s'" msgstr "Fel vid borttagning av fjärrgrenen \"%s\"" -#: builtin/branch.c:227 +#: builtin/branch.c:251 #, c-format msgid "Error deleting branch '%s'" msgstr "Fel vid borttagning av grenen \"%s\"" -#: builtin/branch.c:234 +#: builtin/branch.c:258 #, c-format msgid "Deleted remote branch %s (was %s).\n" msgstr "Tog bort fjärrgrenen %s (var %s).\n" -#: builtin/branch.c:235 +#: builtin/branch.c:259 #, c-format msgid "Deleted branch %s (was %s).\n" msgstr "Tog bort grenen %s (var %s).\n" -#: builtin/branch.c:240 -msgid "Update of config-file failed" -msgstr "Misslyckades uppdatera konfigurationsfil" - -#: builtin/branch.c:338 +#: builtin/branch.c:361 #, c-format msgid "branch '%s' does not point at a commit" msgstr "grenen \"%s\" pekar inte pÃ¥ en incheckning" -#: builtin/branch.c:410 +#: builtin/branch.c:433 #, c-format msgid "[%s: behind %d]" msgstr "[%s: bakom %d] " -#: builtin/branch.c:412 +#: builtin/branch.c:435 #, c-format msgid "[behind %d]" msgstr "[bakom %d] " -#: builtin/branch.c:416 +#: builtin/branch.c:439 #, c-format msgid "[%s: ahead %d]" msgstr "[%s: före %d] " -#: builtin/branch.c:418 +#: builtin/branch.c:441 #, c-format msgid "[ahead %d]" msgstr "[före %d] " -#: builtin/branch.c:421 +#: builtin/branch.c:444 #, c-format msgid "[%s: ahead %d, behind %d]" msgstr "[%s: före %d, bakom %d] " -#: builtin/branch.c:424 +#: builtin/branch.c:447 #, c-format msgid "[ahead %d, behind %d]" msgstr "[före %d, bakom %d] " -#: builtin/branch.c:537 +#: builtin/branch.c:560 msgid "(no branch)" msgstr "(ingen gren)" -#: builtin/branch.c:602 +#: builtin/branch.c:625 msgid "some refs could not be read" msgstr "vissa referenser kunde inte läsas" -#: builtin/branch.c:615 +#: builtin/branch.c:638 msgid "cannot rename the current branch while not on any." msgstr "" "kunde inte byta namn pÃ¥ aktuell gren när du inte befinner dig pÃ¥ nÃ¥gon." -#: builtin/branch.c:625 +#: builtin/branch.c:648 #, c-format msgid "Invalid branch name: '%s'" msgstr "Felaktigt namn pÃ¥ gren: \"%s\"" -#: builtin/branch.c:640 +#: builtin/branch.c:663 msgid "Branch rename failed" msgstr "Misslyckades byta namn pÃ¥ gren" -#: builtin/branch.c:644 +#: builtin/branch.c:667 #, c-format msgid "Renamed a misnamed branch '%s' away" msgstr "Bytte bort namn pÃ¥ en felaktigt namngiven gren \"%s\"" -#: builtin/branch.c:648 +#: builtin/branch.c:671 #, c-format msgid "Branch renamed to %s, but HEAD is not updated!" msgstr "Grenen namnbytt till %s, men HEAD har inte uppdaterats!" -#: builtin/branch.c:655 +#: builtin/branch.c:678 msgid "Branch is renamed, but update of config-file failed" msgstr "Grenen namnbytt, men misslyckades uppdatera konfigurationsfilen" -#: builtin/branch.c:670 +#: builtin/branch.c:693 #, c-format msgid "malformed object name %s" msgstr "felformat objektnamn %s" -#: builtin/branch.c:694 +#: builtin/branch.c:717 #, c-format msgid "could not write branch description template: %s" msgstr "kunde inte skriva grenbeskrivningsmall: %s" -#: builtin/branch.c:724 +#: builtin/branch.c:747 msgid "Generic options" msgstr "Allmänna flaggor" -#: builtin/branch.c:726 +#: builtin/branch.c:749 msgid "show hash and subject, give twice for upstream branch" msgstr "visa hash och ärenderad, ange tvÃ¥ gÃ¥nger för uppströmsgren" -#: builtin/branch.c:727 +#: builtin/branch.c:750 msgid "suppress informational messages" msgstr "undertryck informationsmeddelanden" -#: builtin/branch.c:728 +#: builtin/branch.c:751 msgid "set up tracking mode (see git-pull(1))" msgstr "ställ in spÃ¥rningsläge (se git-pull(1))" -#: builtin/branch.c:730 +#: builtin/branch.c:753 msgid "change upstream info" msgstr "ändra uppströmsinformation" -#: builtin/branch.c:734 +#: builtin/branch.c:757 msgid "use colored output" msgstr "använd färgad utdata" -#: builtin/branch.c:735 +#: builtin/branch.c:758 msgid "act on remote-tracking branches" msgstr "arbeta pÃ¥ fjärrspÃ¥rande grenar" -#: builtin/branch.c:738 builtin/branch.c:744 builtin/branch.c:765 -#: builtin/branch.c:771 builtin/commit.c:1362 builtin/commit.c:1363 -#: builtin/commit.c:1364 builtin/commit.c:1365 builtin/tag.c:470 +#: builtin/branch.c:761 builtin/branch.c:767 builtin/branch.c:788 +#: builtin/branch.c:794 builtin/commit.c:1376 builtin/commit.c:1377 +#: builtin/commit.c:1378 builtin/commit.c:1379 builtin/tag.c:470 msgid "commit" msgstr "incheckning" -#: builtin/branch.c:739 builtin/branch.c:745 +#: builtin/branch.c:762 builtin/branch.c:768 msgid "print only branches that contain the commit" msgstr "visa endast grenar som innehÃ¥ller incheckningen" -#: builtin/branch.c:751 +#: builtin/branch.c:774 msgid "Specific git-branch actions:" msgstr "Specifika git-branch-Ã¥tgärder:" -#: builtin/branch.c:752 +#: builtin/branch.c:775 msgid "list both remote-tracking and local branches" msgstr "visa bÃ¥de fjärrspÃ¥rande och lokala grenar" -#: builtin/branch.c:754 +#: builtin/branch.c:777 msgid "delete fully merged branch" msgstr "ta bort helt sammanslagen gren" -#: builtin/branch.c:755 +#: builtin/branch.c:778 msgid "delete branch (even if not merged)" msgstr "ta bort gren (även om inte helt sammanslagen)" -#: builtin/branch.c:756 +#: builtin/branch.c:779 msgid "move/rename a branch and its reflog" msgstr "flytta/ta bort en gren och dess reflogg" -#: builtin/branch.c:757 +#: builtin/branch.c:780 msgid "move/rename a branch, even if target exists" msgstr "flytta/ta bort en gren, även om mÃ¥let finns" -#: builtin/branch.c:758 +#: builtin/branch.c:781 msgid "list branch names" msgstr "lista namn pÃ¥ grenar" -#: builtin/branch.c:759 +#: builtin/branch.c:782 msgid "create the branch's reflog" msgstr "skapa grenens reflogg" -#: builtin/branch.c:761 +#: builtin/branch.c:784 msgid "edit the description for the branch" msgstr "redigera beskrivning för grenen" -#: builtin/branch.c:762 +#: builtin/branch.c:785 msgid "force creation (when already exists)" msgstr "tvinga skapande (när den redan finns)" -#: builtin/branch.c:765 +#: builtin/branch.c:788 msgid "print only not merged branches" msgstr "visa endast ej sammanslagna grenar" -#: builtin/branch.c:771 +#: builtin/branch.c:794 msgid "print only merged branches" msgstr "visa endast sammanslagna grenar" -#: builtin/branch.c:775 +#: builtin/branch.c:798 msgid "list branches in columns" msgstr "visa grenar i spalter" -#: builtin/branch.c:788 +#: builtin/branch.c:811 msgid "Failed to resolve HEAD as a valid ref." msgstr "Misslyckades slÃ¥ upp HEAD som giltig referens" -#: builtin/branch.c:793 builtin/clone.c:561 +#: builtin/branch.c:816 builtin/clone.c:561 msgid "HEAD not found below refs/heads!" msgstr "HEAD hittades inte under refs/heads!" -#: builtin/branch.c:813 +#: builtin/branch.c:836 msgid "--column and --verbose are incompatible" msgstr "--column och --verbose är inkompatibla" -#: builtin/branch.c:864 +#: builtin/branch.c:887 #, c-format msgid "branch '%s' does not exist" msgstr "grenen \"%s\" finns inte" -#: builtin/branch.c:876 +#: builtin/branch.c:899 #, c-format msgid "Branch '%s' has no upstream information" msgstr "Grenen \"%s\" har ingen uppströmsinformation" -#: builtin/branch.c:891 +#: builtin/branch.c:914 msgid "-a and -r options to 'git branch' do not make sense with a branch name" msgstr "" "flaggorna -a och -r pÃ¥ \"git branch\" kan inte anges tillsammans med ett " "grennamn" -#: builtin/branch.c:894 +#: builtin/branch.c:917 #, c-format msgid "" "The --set-upstream flag is deprecated and will be removed. Consider using --" @@ -2426,7 +2465,7 @@ msgstr "" "Flaggan --set-upstream rekommenderas ej och kommer tas bort. Använd --track " "eller --set-upstream-to\n" -#: builtin/branch.c:911 +#: builtin/branch.c:934 #, c-format msgid "" "\n" @@ -2437,12 +2476,12 @@ msgstr "" "Om du vill göra sÃ¥ att \"%s\" spÃ¥rar \"%s\" gör du sÃ¥ här:\n" "\n" -#: builtin/branch.c:912 +#: builtin/branch.c:935 #, c-format msgid " git branch -d %s\n" msgstr " git branch -d %s\n" -#: builtin/branch.c:913 +#: builtin/branch.c:936 #, c-format msgid " git branch --set-upstream-to %s\n" msgstr " git branch --set-upstream-to %s\n" @@ -2631,11 +2670,6 @@ msgstr "indexfilen är trasig" msgid "path '%s' is unmerged" msgstr "sökvägen \"%s\" har inte slagits ihop" -#: builtin/checkout.c:333 builtin/checkout.c:534 builtin/clone.c:586 -#: builtin/merge.c:811 -msgid "unable to write new index file" -msgstr "kunde inte skriva ny indexfil" - #: builtin/checkout.c:448 msgid "you need to resolve your current index first" msgstr "du mÃ¥ste lösa ditt befintliga index först" @@ -2664,7 +2698,7 @@ msgstr "Redan pÃ¥ \"%s\"\n" msgid "Switched to and reset branch '%s'\n" msgstr "Växlade till och nollställde grenen \"%s\"\n" -#: builtin/checkout.c:618 +#: builtin/checkout.c:618 builtin/checkout.c:955 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Växlade till en ny gren \"%s\"\n" @@ -2742,112 +2776,112 @@ msgstr "felaktig referens: %s" msgid "reference is not a tree: %s" msgstr "referensen är inte ett träd: %s" -#: builtin/checkout.c:961 +#: builtin/checkout.c:964 msgid "paths cannot be used with switching branches" msgstr "sökvägar kan inte användas vid byte av gren" -#: builtin/checkout.c:964 builtin/checkout.c:968 +#: builtin/checkout.c:967 builtin/checkout.c:971 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "\"%s\" kan inte användas vid byte av gren" -#: builtin/checkout.c:972 builtin/checkout.c:975 builtin/checkout.c:980 -#: builtin/checkout.c:983 +#: builtin/checkout.c:975 builtin/checkout.c:978 builtin/checkout.c:983 +#: builtin/checkout.c:986 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "\"%s\" kan inte användas med \"%s\"" -#: builtin/checkout.c:988 +#: builtin/checkout.c:991 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Kan inte växla gren till icke-incheckningen \"%s\"" -#: builtin/checkout.c:1009 builtin/gc.c:177 +#: builtin/checkout.c:1012 builtin/gc.c:177 msgid "suppress progress reporting" msgstr "undertryck förloppsrapportering" -#: builtin/checkout.c:1010 builtin/checkout.c:1012 builtin/clone.c:89 +#: builtin/checkout.c:1013 builtin/checkout.c:1015 builtin/clone.c:89 #: builtin/remote.c:169 builtin/remote.c:171 msgid "branch" msgstr "gren" -#: builtin/checkout.c:1011 +#: builtin/checkout.c:1014 msgid "create and checkout a new branch" msgstr "skapa och checka ut en ny gren" -#: builtin/checkout.c:1013 +#: builtin/checkout.c:1016 msgid "create/reset and checkout a branch" msgstr "skapa/nollställ och checka ut en gren" -#: builtin/checkout.c:1014 +#: builtin/checkout.c:1017 msgid "create reflog for new branch" msgstr "skapa reflogg för ny gren" -#: builtin/checkout.c:1015 +#: builtin/checkout.c:1018 msgid "detach the HEAD at named commit" msgstr "koppla frÃ¥n HEAD vid namngiven incheckning" -#: builtin/checkout.c:1016 +#: builtin/checkout.c:1019 msgid "set upstream info for new branch" msgstr "sätt uppströmsinformation för ny gren" -#: builtin/checkout.c:1018 +#: builtin/checkout.c:1021 msgid "new branch" msgstr "ny gren" -#: builtin/checkout.c:1018 +#: builtin/checkout.c:1021 msgid "new unparented branch" msgstr "ny gren utan förälder" -#: builtin/checkout.c:1019 +#: builtin/checkout.c:1022 msgid "checkout our version for unmerged files" msgstr "checka ut vÃ¥r version för ej sammanslagna filer" -#: builtin/checkout.c:1021 +#: builtin/checkout.c:1024 msgid "checkout their version for unmerged files" msgstr "checka ut deras version för ej sammanslagna filer" -#: builtin/checkout.c:1023 +#: builtin/checkout.c:1026 msgid "force checkout (throw away local modifications)" msgstr "tvinga utcheckning (kasta bort lokala ändringar)" -#: builtin/checkout.c:1024 +#: builtin/checkout.c:1027 msgid "perform a 3-way merge with the new branch" msgstr "utför en 3-vägssammanslagning för den nya grenen" -#: builtin/checkout.c:1025 builtin/merge.c:215 +#: builtin/checkout.c:1028 builtin/merge.c:215 msgid "update ignored files (default)" msgstr "uppdatera ignorerade filer (standard)" -#: builtin/checkout.c:1026 builtin/log.c:1111 parse-options.h:241 +#: builtin/checkout.c:1029 builtin/log.c:1116 parse-options.h:241 msgid "style" msgstr "stil" -#: builtin/checkout.c:1027 +#: builtin/checkout.c:1030 msgid "conflict style (merge or diff3)" msgstr "konfliktstil (merge eller diff3)" -#: builtin/checkout.c:1030 +#: builtin/checkout.c:1033 msgid "second guess 'git checkout no-such-branch'" msgstr "förutspÃ¥ \"git checkout gren-saknas\"" -#: builtin/checkout.c:1054 +#: builtin/checkout.c:1057 msgid "-b, -B and --orphan are mutually exclusive" msgstr "-b, -B och --orphan är ömsesidigt uteslutande" -#: builtin/checkout.c:1071 +#: builtin/checkout.c:1074 msgid "--track needs a branch name" msgstr "--track behöver ett namn pÃ¥ en gren" -#: builtin/checkout.c:1078 +#: builtin/checkout.c:1081 msgid "Missing branch name; try -b" msgstr "Grennamn saknas; försök med -b" -#: builtin/checkout.c:1113 +#: builtin/checkout.c:1116 msgid "invalid path specification" msgstr "felaktig sökvägsangivelse" -#: builtin/checkout.c:1120 +#: builtin/checkout.c:1123 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" @@ -2856,12 +2890,12 @@ msgstr "" "Kan inte uppdatera sökvägar och växla till grenen \"%s\" samtidigt.\n" "Ville du checka ut \"%s\" som inte kan lösas som en utcheckning?" -#: builtin/checkout.c:1125 +#: builtin/checkout.c:1128 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" msgstr "git checkout: --detach tar inte en sökväg som argument \"%s\"" -#: builtin/checkout.c:1129 +#: builtin/checkout.c:1132 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -2886,8 +2920,8 @@ msgstr "tvinga" msgid "remove whole directories" msgstr "ta bort hela kataloger" -#: builtin/clean.c:56 builtin/describe.c:413 builtin/grep.c:803 -#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:199 +#: builtin/clean.c:56 builtin/describe.c:413 builtin/grep.c:717 +#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:182 msgid "pattern" msgstr "mönster" @@ -3012,7 +3046,7 @@ msgstr "checka ut <gren> istället för fjärrens HEAD" msgid "path to git-upload-pack on the remote" msgstr "sökväg till git-upload-pack pÃ¥ fjärren" -#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:748 +#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:662 msgid "depth" msgstr "djup" @@ -3247,93 +3281,93 @@ msgstr "" "\n" "Annars använder du \"git reset\"\n" -#: builtin/commit.c:257 +#: builtin/commit.c:258 msgid "failed to unpack HEAD tree object" msgstr "misslyckades packa upp HEAD:s trädobjekt" -#: builtin/commit.c:299 +#: builtin/commit.c:300 msgid "unable to create temporary index" msgstr "kunde inte skapa temporär indexfil" -#: builtin/commit.c:305 +#: builtin/commit.c:306 msgid "interactive add failed" msgstr "interaktiv tilläggning misslyckades" -#: builtin/commit.c:338 builtin/commit.c:359 builtin/commit.c:409 +#: builtin/commit.c:339 builtin/commit.c:360 builtin/commit.c:410 msgid "unable to write new_index file" msgstr "kunde inte skriva filen new_index" -#: builtin/commit.c:390 +#: builtin/commit.c:391 msgid "cannot do a partial commit during a merge." msgstr "kan inte utföra en delvis incheckning under en sammanslagning." -#: builtin/commit.c:392 +#: builtin/commit.c:393 msgid "cannot do a partial commit during a cherry-pick." msgstr "kan inte utföra en delvis incheckning under en cherry-pick." -#: builtin/commit.c:402 +#: builtin/commit.c:403 msgid "cannot read the index" msgstr "kan inte läsa indexet" -#: builtin/commit.c:422 +#: builtin/commit.c:423 msgid "unable to write temporary index file" msgstr "kunde inte skriva temporär indexfil" -#: builtin/commit.c:509 builtin/commit.c:515 +#: builtin/commit.c:511 builtin/commit.c:517 #, c-format msgid "invalid commit: %s" msgstr "felaktig incheckning: %s" -#: builtin/commit.c:538 +#: builtin/commit.c:540 msgid "malformed --author parameter" msgstr "felformad \"--author\"-flagga" -#: builtin/commit.c:558 +#: builtin/commit.c:560 #, c-format msgid "Malformed ident string: '%s'" msgstr "Felaktig indragningssträng: \"%s\"" -#: builtin/commit.c:596 builtin/commit.c:629 builtin/commit.c:952 +#: builtin/commit.c:598 builtin/commit.c:631 builtin/commit.c:954 #, c-format msgid "could not lookup commit %s" msgstr "kunde inte slÃ¥ upp incheckningen %s" -#: builtin/commit.c:608 builtin/shortlog.c:296 +#: builtin/commit.c:610 builtin/shortlog.c:296 #, c-format msgid "(reading log message from standard input)\n" msgstr "(läser loggmeddelande frÃ¥n standard in)\n" -#: builtin/commit.c:610 +#: builtin/commit.c:612 msgid "could not read log from standard input" msgstr "kunde inte läsa logg frÃ¥n standard in" -#: builtin/commit.c:614 +#: builtin/commit.c:616 #, c-format msgid "could not read log file '%s'" msgstr "kunde inte läsa loggfilen \"%s\"" -#: builtin/commit.c:620 +#: builtin/commit.c:622 msgid "commit has empty message" msgstr "incheckningen har ett tomt meddelande" -#: builtin/commit.c:636 +#: builtin/commit.c:638 msgid "could not read MERGE_MSG" msgstr "kunde inte läsa MERGE_MSG" -#: builtin/commit.c:640 +#: builtin/commit.c:642 msgid "could not read SQUASH_MSG" msgstr "kunde inte läsa SQUASH_MSG" -#: builtin/commit.c:644 +#: builtin/commit.c:646 #, c-format msgid "could not read '%s'" msgstr "kunde inte läsa \"%s\"" -#: builtin/commit.c:705 +#: builtin/commit.c:707 msgid "could not write commit template" msgstr "kunde inte skriva incheckningsmall" -#: builtin/commit.c:716 +#: builtin/commit.c:718 #, c-format msgid "" "\n" @@ -3348,7 +3382,7 @@ msgstr "" "\t%s\n" "och försöker igen.\n" -#: builtin/commit.c:721 +#: builtin/commit.c:723 #, c-format msgid "" "\n" @@ -3363,7 +3397,7 @@ msgstr "" "\t%s\n" "och försöker igen.\n" -#: builtin/commit.c:733 +#: builtin/commit.c:735 msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '#' will be ignored, and an empty message aborts the commit.\n" @@ -3371,7 +3405,7 @@ msgstr "" "Ange incheckningsmeddelandet för dina ändringar. Rader som inleds\n" "med \"#\" kommer ignoreras, och ett tomt meddelande avbryter incheckningen.\n" -#: builtin/commit.c:738 +#: builtin/commit.c:740 msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '#' will be kept; you may remove them yourself if you want to.\n" @@ -3381,131 +3415,139 @@ msgstr "" "med \"#\" kommer behÃ¥llas; du kan själv ta bort dem om du vill.\n" "Ett tomt meddelande avbryter incheckningen.\n" -#: builtin/commit.c:751 +#: builtin/commit.c:753 #, c-format msgid "%sAuthor: %s" msgstr "%sFörfattare: %s" -#: builtin/commit.c:758 +#: builtin/commit.c:760 #, c-format msgid "%sCommitter: %s" msgstr "%sIncheckare: %s" -#: builtin/commit.c:778 +#: builtin/commit.c:780 msgid "Cannot read index" msgstr "Kan inte läsa indexet" -#: builtin/commit.c:815 +#: builtin/commit.c:817 msgid "Error building trees" msgstr "Fel vid byggande av träd" -#: builtin/commit.c:830 builtin/tag.c:361 +#: builtin/commit.c:832 builtin/tag.c:361 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Ange meddelandet en av flaggorna -m eller -F.\n" -#: builtin/commit.c:927 +#: builtin/commit.c:929 #, c-format msgid "No existing author found with '%s'" msgstr "Hittade ingen befintlig författare med \"%s\"" -#: builtin/commit.c:942 builtin/commit.c:1142 +#: builtin/commit.c:944 builtin/commit.c:1148 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Ogiltigt läge för ospÃ¥rade filer: \"%s\"" -#: builtin/commit.c:982 +#: builtin/commit.c:984 msgid "Using both --reset-author and --author does not make sense" msgstr "Kan inte använda bÃ¥de --reset-author och --author" -#: builtin/commit.c:993 +#: builtin/commit.c:995 msgid "You have nothing to amend." msgstr "Du har inget att utöka." -#: builtin/commit.c:996 +#: builtin/commit.c:998 msgid "You are in the middle of a merge -- cannot amend." msgstr "Du är i mitten av en sammanslagning -- kan inte utöka." -#: builtin/commit.c:998 +#: builtin/commit.c:1000 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "Du är i mitten av en cherry-pick -- kan inte utöka." -#: builtin/commit.c:1001 +#: builtin/commit.c:1003 msgid "Options --squash and --fixup cannot be used together" msgstr "Flaggorna --squash och --fixup kan inte användas samtidigt" -#: builtin/commit.c:1011 +#: builtin/commit.c:1013 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "Endast en av -c/-C/-F/--fixup kan användas." -#: builtin/commit.c:1013 +#: builtin/commit.c:1015 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "Flaggan -m kan inte kombineras med -c/-C/-F/--fixup." -#: builtin/commit.c:1021 +#: builtin/commit.c:1023 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "--reset-author kan endast användas med -C, -c eller --amend." -#: builtin/commit.c:1038 +#: builtin/commit.c:1040 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" "Endast en av --include/--only/--all/--interactive/--patch kan användas." -#: builtin/commit.c:1040 +#: builtin/commit.c:1042 msgid "No paths with --include/--only does not make sense." msgstr "Du mÃ¥ste ange sökvägar tillsammans med --include/--only." -#: builtin/commit.c:1042 +#: builtin/commit.c:1044 msgid "Clever... amending the last one with dirty index." msgstr "Smart... utöka den senaste med smutsigt index." -#: builtin/commit.c:1044 +#: builtin/commit.c:1046 msgid "Explicit paths specified without -i nor -o; assuming --only paths..." msgstr "Explicita sökvägar angavs utan -i eller -o; antar --only sökvägar..." -#: builtin/commit.c:1054 builtin/tag.c:577 +#: builtin/commit.c:1056 builtin/tag.c:577 #, c-format msgid "Invalid cleanup mode %s" msgstr "Felaktigt städningsläge %s" -#: builtin/commit.c:1059 +#: builtin/commit.c:1061 msgid "Paths with -a does not make sense." msgstr "Kan inte ange sökvägar med -a." -#: builtin/commit.c:1156 builtin/commit.c:1384 +#: builtin/commit.c:1067 builtin/commit.c:1202 +msgid "--long and -z are incompatible" +msgstr "--long och -z är inkompatibla" + +#: builtin/commit.c:1162 builtin/commit.c:1398 msgid "show status concisely" msgstr "vis koncis status" -#: builtin/commit.c:1158 builtin/commit.c:1386 +#: builtin/commit.c:1164 builtin/commit.c:1400 msgid "show branch information" msgstr "visa information om gren" -#: builtin/commit.c:1160 builtin/commit.c:1388 builtin/push.c:389 +#: builtin/commit.c:1166 builtin/commit.c:1402 builtin/push.c:389 msgid "machine-readable output" msgstr "maskinläsbar utdata" -#: builtin/commit.c:1163 builtin/commit.c:1390 +#: builtin/commit.c:1169 builtin/commit.c:1404 +msgid "show status in long format (default)" +msgstr "visa status i lÃ¥ngt format (standard)" + +#: builtin/commit.c:1172 builtin/commit.c:1407 msgid "terminate entries with NUL" msgstr "terminera poster med NUL" -#: builtin/commit.c:1165 builtin/commit.c:1393 builtin/fast-export.c:636 +#: builtin/commit.c:1174 builtin/commit.c:1410 builtin/fast-export.c:636 #: builtin/fast-export.c:639 builtin/tag.c:461 msgid "mode" msgstr "läge" -#: builtin/commit.c:1166 builtin/commit.c:1393 +#: builtin/commit.c:1175 builtin/commit.c:1410 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "visa ospÃ¥rade filer, valfria lägen: alla, normal, no. (Standard: all)" -#: builtin/commit.c:1169 +#: builtin/commit.c:1178 msgid "show ignored files" msgstr "visa ignorerade filer" -#: builtin/commit.c:1170 parse-options.h:151 +#: builtin/commit.c:1179 parse-options.h:151 msgid "when" msgstr "när" -#: builtin/commit.c:1171 +#: builtin/commit.c:1180 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -3513,217 +3555,217 @@ msgstr "" "ignorera ändringar i undermoduler, valfritt när: all, dirty, untracked. " "(Default: all)" -#: builtin/commit.c:1173 +#: builtin/commit.c:1182 msgid "list untracked files in columns" msgstr "visa ospÃ¥rade filer i spalter" -#: builtin/commit.c:1242 +#: builtin/commit.c:1256 msgid "couldn't look up newly created commit" msgstr "kunde inte slÃ¥ upp en precis skapad incheckning" -#: builtin/commit.c:1244 +#: builtin/commit.c:1258 msgid "could not parse newly created commit" msgstr "kunde inte tolka en precis skapad incheckning" -#: builtin/commit.c:1285 +#: builtin/commit.c:1299 msgid "detached HEAD" msgstr "frÃ¥nkopplad HEAD" -#: builtin/commit.c:1287 +#: builtin/commit.c:1301 msgid " (root-commit)" msgstr " (rotincheckning)" -#: builtin/commit.c:1354 +#: builtin/commit.c:1368 msgid "suppress summary after successful commit" msgstr "undertryck sammanfattning efter framgÃ¥ngsrik incheckning" -#: builtin/commit.c:1355 +#: builtin/commit.c:1369 msgid "show diff in commit message template" msgstr "visa diff i mallen för incheckningsmeddelandet" -#: builtin/commit.c:1357 +#: builtin/commit.c:1371 msgid "Commit message options" msgstr "Alternativ för incheckningsmeddelande" -#: builtin/commit.c:1358 builtin/tag.c:459 +#: builtin/commit.c:1372 builtin/tag.c:459 msgid "read message from file" msgstr "läs meddelande frÃ¥n fil" -#: builtin/commit.c:1359 +#: builtin/commit.c:1373 msgid "author" msgstr "författare" -#: builtin/commit.c:1359 +#: builtin/commit.c:1373 msgid "override author for commit" msgstr "överstyr författare för incheckningen" -#: builtin/commit.c:1360 builtin/gc.c:178 +#: builtin/commit.c:1374 builtin/gc.c:178 msgid "date" msgstr "datum" -#: builtin/commit.c:1360 +#: builtin/commit.c:1374 msgid "override date for commit" msgstr "överstyr datum för inchecknignen" -#: builtin/commit.c:1361 builtin/merge.c:206 builtin/notes.c:537 +#: builtin/commit.c:1375 builtin/merge.c:206 builtin/notes.c:537 #: builtin/notes.c:694 builtin/tag.c:457 msgid "message" msgstr "meddelande" -#: builtin/commit.c:1361 +#: builtin/commit.c:1375 msgid "commit message" msgstr "incheckningsmeddelande" -#: builtin/commit.c:1362 +#: builtin/commit.c:1376 msgid "reuse and edit message from specified commit" msgstr "Ã¥teranvänd och redigera meddelande frÃ¥n angiven incheckning" -#: builtin/commit.c:1363 +#: builtin/commit.c:1377 msgid "reuse message from specified commit" msgstr "Ã¥teranvänd meddelande frÃ¥n angiven incheckning" -#: builtin/commit.c:1364 +#: builtin/commit.c:1378 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "använd autosquash-formaterat meddelande för att fixa angiven incheckning" -#: builtin/commit.c:1365 +#: builtin/commit.c:1379 msgid "use autosquash formatted message to squash specified commit" msgstr "" "använd autosquash-formaterat meddelande för att slÃ¥ ihop med angiven " "incheckning" -#: builtin/commit.c:1366 +#: builtin/commit.c:1380 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "jag är nu författare av incheckningen (används med -C/-c/--amend)" -#: builtin/commit.c:1367 builtin/log.c:1068 builtin/revert.c:109 +#: builtin/commit.c:1381 builtin/log.c:1073 builtin/revert.c:109 msgid "add Signed-off-by:" msgstr "lägg till Signed-off-by:" -#: builtin/commit.c:1368 +#: builtin/commit.c:1382 msgid "use specified template file" msgstr "använd angiven mallfil" -#: builtin/commit.c:1369 +#: builtin/commit.c:1383 msgid "force edit of commit" msgstr "tvinga redigering av incheckning" -#: builtin/commit.c:1370 +#: builtin/commit.c:1384 msgid "default" msgstr "standard" -#: builtin/commit.c:1370 builtin/tag.c:462 +#: builtin/commit.c:1384 builtin/tag.c:462 msgid "how to strip spaces and #comments from message" msgstr "hur blanksteg och #kommentarer skall tas bort frÃ¥n meddelande" -#: builtin/commit.c:1371 +#: builtin/commit.c:1385 msgid "include status in commit message template" msgstr "inkludera status i mallen för incheckningsmeddelandet" -#: builtin/commit.c:1372 builtin/merge.c:213 builtin/tag.c:463 +#: builtin/commit.c:1386 builtin/merge.c:213 builtin/tag.c:463 msgid "key id" msgstr "nyckel-id" -#: builtin/commit.c:1373 builtin/merge.c:214 +#: builtin/commit.c:1387 builtin/merge.c:214 msgid "GPG sign commit" msgstr "GPG-signera incheckning" #. end commit message options -#: builtin/commit.c:1376 +#: builtin/commit.c:1390 msgid "Commit contents options" msgstr "Alternativ för incheckningens innehÃ¥ll" -#: builtin/commit.c:1377 +#: builtin/commit.c:1391 msgid "commit all changed files" msgstr "checka in alla ändrade filer" -#: builtin/commit.c:1378 +#: builtin/commit.c:1392 msgid "add specified files to index for commit" msgstr "lägg till angivna filer till indexet för incheckning" -#: builtin/commit.c:1379 +#: builtin/commit.c:1393 msgid "interactively add files" msgstr "lägg till filer interaktivt" -#: builtin/commit.c:1380 +#: builtin/commit.c:1394 msgid "interactively add changes" msgstr "lägg till ändringar interaktivt" -#: builtin/commit.c:1381 +#: builtin/commit.c:1395 msgid "commit only specified files" msgstr "checka endast in angivna filer" -#: builtin/commit.c:1382 +#: builtin/commit.c:1396 msgid "bypass pre-commit hook" msgstr "förbigÃ¥ pre-commit-krok" -#: builtin/commit.c:1383 +#: builtin/commit.c:1397 msgid "show what would be committed" msgstr "visa vad som skulle checkas in" -#: builtin/commit.c:1391 +#: builtin/commit.c:1408 msgid "amend previous commit" msgstr "lägg till föregÃ¥ende incheckning" -#: builtin/commit.c:1392 +#: builtin/commit.c:1409 msgid "bypass post-rewrite hook" msgstr "förbigÃ¥ post-rewrite-krok" -#: builtin/commit.c:1397 +#: builtin/commit.c:1414 msgid "ok to record an empty change" msgstr "ok att registrera en tom ändring" -#: builtin/commit.c:1400 +#: builtin/commit.c:1417 msgid "ok to record a change with an empty message" msgstr "ok att registrera en ändring med tomt meddelande" -#: builtin/commit.c:1432 +#: builtin/commit.c:1449 msgid "could not parse HEAD commit" msgstr "kunde inte tolka HEAD:s incheckning" -#: builtin/commit.c:1470 builtin/merge.c:508 +#: builtin/commit.c:1487 builtin/merge.c:508 #, c-format msgid "could not open '%s' for reading" msgstr "kunde inte öppna \"%s\" för läsning" -#: builtin/commit.c:1477 +#: builtin/commit.c:1494 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Trasig MERGE_HEAD-fil (%s)" -#: builtin/commit.c:1484 +#: builtin/commit.c:1501 msgid "could not read MERGE_MODE" msgstr "kunde inte läsa MERGE_MODE" -#: builtin/commit.c:1503 +#: builtin/commit.c:1520 #, c-format msgid "could not read commit message: %s" msgstr "kunde inte läsa incheckningsmeddelande: %s" -#: builtin/commit.c:1517 +#: builtin/commit.c:1534 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "Avbryter incheckning; meddelandet inte redigerat.\n" -#: builtin/commit.c:1522 +#: builtin/commit.c:1539 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Avbryter pÃ¥ grund av tomt incheckningsmeddelande.\n" -#: builtin/commit.c:1537 builtin/merge.c:935 builtin/merge.c:960 +#: builtin/commit.c:1554 builtin/merge.c:832 builtin/merge.c:857 msgid "failed to write commit object" msgstr "kunde inte skriva incheckningsobjekt" -#: builtin/commit.c:1558 +#: builtin/commit.c:1575 msgid "cannot lock HEAD ref" msgstr "kunde inte lÃ¥sa HEAD-referens" -#: builtin/commit.c:1562 +#: builtin/commit.c:1579 msgid "cannot update HEAD ref" msgstr "kunde inte uppdatera HEAD-referens" -#: builtin/commit.c:1573 +#: builtin/commit.c:1590 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -3738,115 +3780,115 @@ msgstr "" msgid "git config [options]" msgstr "git config [flaggor]" -#: builtin/config.c:52 +#: builtin/config.c:51 msgid "Config file location" msgstr "Konfigurationsfilens plats" -#: builtin/config.c:53 +#: builtin/config.c:52 msgid "use global config file" msgstr "använd global konfigurationsfil" -#: builtin/config.c:54 +#: builtin/config.c:53 msgid "use system config file" msgstr "använd systemets konfigurationsfil" -#: builtin/config.c:55 +#: builtin/config.c:54 msgid "use repository config file" msgstr "använd arkivets konfigurationsfil" -#: builtin/config.c:56 +#: builtin/config.c:55 msgid "use given config file" msgstr "använd angiven konfigurationsil" -#: builtin/config.c:57 +#: builtin/config.c:56 msgid "Action" msgstr "Ã…tgärd" -#: builtin/config.c:58 +#: builtin/config.c:57 msgid "get value: name [value-regex]" msgstr "hämta värde: namn [värde-reguttr]" -#: builtin/config.c:59 +#: builtin/config.c:58 msgid "get all values: key [value-regex]" msgstr "hämta alla värden: nyckel [värde-reguttr]" -#: builtin/config.c:60 +#: builtin/config.c:59 msgid "get values for regexp: name-regex [value-regex]" msgstr "hämta värden för reguttr: namn-reguttr [värde-reguttr]" -#: builtin/config.c:61 +#: builtin/config.c:60 msgid "replace all matching variables: name value [value_regex]" msgstr "ersätt alla motsvarande variabler: namn värde [värde-reguttr]" -#: builtin/config.c:62 +#: builtin/config.c:61 msgid "add a new variable: name value" msgstr "lägg till en ny variabel: namn värde" -#: builtin/config.c:63 +#: builtin/config.c:62 msgid "remove a variable: name [value-regex]" msgstr "ta bort en variabel: namn [värde-reguttr]" -#: builtin/config.c:64 +#: builtin/config.c:63 msgid "remove all matches: name [value-regex]" msgstr "ta bort alla träffar: namn [värde-reguttr]" -#: builtin/config.c:65 +#: builtin/config.c:64 msgid "rename section: old-name new-name" msgstr "byt namn pÃ¥ sektion: gammalt-namn nytt-namn" -#: builtin/config.c:66 +#: builtin/config.c:65 msgid "remove a section: name" msgstr "ta bort en sektion: namn" -#: builtin/config.c:67 +#: builtin/config.c:66 msgid "list all" msgstr "visa alla" -#: builtin/config.c:68 +#: builtin/config.c:67 msgid "open an editor" msgstr "öppna textredigeringsprogram" -#: builtin/config.c:69 builtin/config.c:70 +#: builtin/config.c:68 builtin/config.c:69 msgid "slot" msgstr "plats" -#: builtin/config.c:69 +#: builtin/config.c:68 msgid "find the color configured: [default]" msgstr "hitta den inställda färgen: [default]" -#: builtin/config.c:70 +#: builtin/config.c:69 msgid "find the color setting: [stdout-is-tty]" msgstr "hitta färginställningen: [stdout-is-tty]" -#: builtin/config.c:71 +#: builtin/config.c:70 msgid "Type" msgstr "Typ" -#: builtin/config.c:72 +#: builtin/config.c:71 msgid "value is \"true\" or \"false\"" msgstr "värdet är \"true\" eller \"false\"" -#: builtin/config.c:73 +#: builtin/config.c:72 msgid "value is decimal number" msgstr "värdet är ett decimalt tal" -#: builtin/config.c:74 +#: builtin/config.c:73 msgid "value is --bool or --int" msgstr "värdet är --bool eller --int" -#: builtin/config.c:75 +#: builtin/config.c:74 msgid "value is a path (file or directory name)" msgstr "värdet är en sökväg (fil- eller katalognamn)" -#: builtin/config.c:76 +#: builtin/config.c:75 msgid "Other" msgstr "Andra" -#: builtin/config.c:77 +#: builtin/config.c:76 msgid "terminate values with NUL byte" msgstr "terminera värden med NUL-byte" -#: builtin/config.c:78 +#: builtin/config.c:77 msgid "respect include directives on lookup" msgstr "respektera inkluderingsdirektiv vid uppslag" @@ -3995,31 +4037,31 @@ msgstr "--dirty är inkompatibelt med \"committish\"-värden" msgid "'%s': not a regular file or symlink" msgstr "\"%s\": inte en normal fil eller symbolisk länk" -#: builtin/diff.c:224 +#: builtin/diff.c:228 #, c-format msgid "invalid option: %s" msgstr "ogiltig flagga: %s" -#: builtin/diff.c:301 +#: builtin/diff.c:305 msgid "Not a git repository" msgstr "Inte ett git-arkiv" -#: builtin/diff.c:344 +#: builtin/diff.c:348 #, c-format msgid "invalid object '%s' given." msgstr "objektet \"%s\" som angavs är felaktigt." -#: builtin/diff.c:349 +#: builtin/diff.c:353 #, c-format msgid "more than %d trees given: '%s'" msgstr "mer än %d träd angavs: \"%s\"" -#: builtin/diff.c:359 +#: builtin/diff.c:363 #, c-format msgid "more than two blobs given: '%s'" msgstr "mer än tvÃ¥ blobbar angavs: \"%s\"" -#: builtin/diff.c:367 +#: builtin/diff.c:371 #, c-format msgid "unhandled object '%s' given." msgstr "ej hanterat objekt \"%s\" angavs." @@ -4132,7 +4174,7 @@ msgstr "tillÃ¥t uppdatering av HEAD-referens" msgid "deepen history of shallow clone" msgstr "fördjupa historik för grund klon" -#: builtin/fetch.c:85 builtin/log.c:1083 +#: builtin/fetch.c:85 builtin/log.c:1088 msgid "dir" msgstr "kat" @@ -4304,8 +4346,8 @@ msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "" "git fmt-merge-msg [-m <meddelande>] [--log[=<n>]|--no-log] [--file <fil>]" -#: builtin/fmt-merge-msg.c:653 builtin/fmt-merge-msg.c:656 builtin/grep.c:787 -#: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:192 +#: builtin/fmt-merge-msg.c:653 builtin/fmt-merge-msg.c:656 builtin/grep.c:701 +#: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:175 #: builtin/tag.c:448 parse-options.h:133 parse-options.h:235 msgid "n" msgstr "n" @@ -4465,225 +4507,225 @@ msgstr "git grep [flaggor] [-e] <mönster> [<rev>...] [[--] <sökväg>...]" msgid "grep: failed to create thread: %s" msgstr "grep: misslyckades skapa trÃ¥d. %s" -#: builtin/grep.c:455 +#: builtin/grep.c:365 #, c-format msgid "Failed to chdir: %s" msgstr "Kunde inte byta katalog (chdir): %s" -#: builtin/grep.c:531 builtin/grep.c:565 +#: builtin/grep.c:443 builtin/grep.c:478 #, c-format msgid "unable to read tree (%s)" msgstr "kunde inte läsa träd (%s)" -#: builtin/grep.c:579 +#: builtin/grep.c:493 #, c-format msgid "unable to grep from object of type %s" msgstr "Kunde inte \"grep\" frÃ¥n objekt av typen %s" -#: builtin/grep.c:637 +#: builtin/grep.c:551 #, c-format msgid "switch `%c' expects a numerical value" msgstr "flaggan \"%c\" antar ett numeriskt värde" -#: builtin/grep.c:654 +#: builtin/grep.c:568 #, c-format msgid "cannot open '%s'" msgstr "kan inte öppna \"%s\"" -#: builtin/grep.c:729 +#: builtin/grep.c:643 msgid "search in index instead of in the work tree" msgstr "sök i indexet istället för i arbetskatalogen" -#: builtin/grep.c:731 +#: builtin/grep.c:645 msgid "find in contents not managed by git" msgstr "sök i innehÃ¥l som inte hanteras av git" -#: builtin/grep.c:733 +#: builtin/grep.c:647 msgid "search in both tracked and untracked files" msgstr "sök i bÃ¥de spÃ¥rade och ospÃ¥rade filer" -#: builtin/grep.c:735 +#: builtin/grep.c:649 msgid "search also in ignored files" msgstr "sök även i ignorerade filer" -#: builtin/grep.c:738 +#: builtin/grep.c:652 msgid "show non-matching lines" msgstr "vis rader som inte träffas" -#: builtin/grep.c:740 +#: builtin/grep.c:654 msgid "case insensitive matching" msgstr "skiftlägesokänslig sökning" -#: builtin/grep.c:742 +#: builtin/grep.c:656 msgid "match patterns only at word boundaries" msgstr "matcha endast mönster vid ordgränser" -#: builtin/grep.c:744 +#: builtin/grep.c:658 msgid "process binary files as text" msgstr "hantera binärfiler som text" -#: builtin/grep.c:746 +#: builtin/grep.c:660 msgid "don't match patterns in binary files" msgstr "träffa inte mönster i binärfiler" -#: builtin/grep.c:749 +#: builtin/grep.c:663 msgid "descend at most <depth> levels" msgstr "gÃ¥ som mest ned <djup> nivÃ¥er" -#: builtin/grep.c:753 +#: builtin/grep.c:667 msgid "use extended POSIX regular expressions" msgstr "använd utökade POSIX-reguljära uttryck" -#: builtin/grep.c:756 +#: builtin/grep.c:670 msgid "use basic POSIX regular expressions (default)" msgstr "använd grundläggande POSIX-reguljära uttryck (standard)" -#: builtin/grep.c:759 +#: builtin/grep.c:673 msgid "interpret patterns as fixed strings" msgstr "tolka mönster som fixerade strängar" -#: builtin/grep.c:762 +#: builtin/grep.c:676 msgid "use Perl-compatible regular expressions" msgstr "använd Perlkompatibla reguljära uttryck" -#: builtin/grep.c:765 +#: builtin/grep.c:679 msgid "show line numbers" msgstr "visa radnummer" -#: builtin/grep.c:766 +#: builtin/grep.c:680 msgid "don't show filenames" msgstr "visa inte filnamn" -#: builtin/grep.c:767 +#: builtin/grep.c:681 msgid "show filenames" msgstr "visa filnamn" -#: builtin/grep.c:769 +#: builtin/grep.c:683 msgid "show filenames relative to top directory" msgstr "visa filnamn relativa till toppkatalogen" -#: builtin/grep.c:771 +#: builtin/grep.c:685 msgid "show only filenames instead of matching lines" msgstr "visa endast filnamn istället för träffade rader" -#: builtin/grep.c:773 +#: builtin/grep.c:687 msgid "synonym for --files-with-matches" msgstr "synonym för --files-with-matches" -#: builtin/grep.c:776 +#: builtin/grep.c:690 msgid "show only the names of files without match" msgstr "visa endast namn pÃ¥ filer utan träffar" -#: builtin/grep.c:778 +#: builtin/grep.c:692 msgid "print NUL after filenames" msgstr "skriv NUL efter filnamn" -#: builtin/grep.c:780 +#: builtin/grep.c:694 msgid "show the number of matches instead of matching lines" msgstr "visa antal träffar istället för träffade rader" -#: builtin/grep.c:781 +#: builtin/grep.c:695 msgid "highlight matches" msgstr "ljusmarkera träffar" -#: builtin/grep.c:783 +#: builtin/grep.c:697 msgid "print empty line between matches from different files" msgstr "skriv tomma rader mellan träffar frÃ¥n olika filer" -#: builtin/grep.c:785 +#: builtin/grep.c:699 msgid "show filename only once above matches from same file" msgstr "visa filnamn endast en gÃ¥ng ovanför träffar frÃ¥n samma fil" -#: builtin/grep.c:788 +#: builtin/grep.c:702 msgid "show <n> context lines before and after matches" msgstr "visa <n> rader sammanhang före och efter träffar" -#: builtin/grep.c:791 +#: builtin/grep.c:705 msgid "show <n> context lines before matches" msgstr "visa <n> rader sammanhang före träffar" -#: builtin/grep.c:793 +#: builtin/grep.c:707 msgid "show <n> context lines after matches" msgstr "visa <n> rader sammanhang efter träffar" -#: builtin/grep.c:794 +#: builtin/grep.c:708 msgid "shortcut for -C NUM" msgstr "genväg för -C NUM" -#: builtin/grep.c:797 +#: builtin/grep.c:711 msgid "show a line with the function name before matches" msgstr "visa en rad med funktionsnamnet före träffen" -#: builtin/grep.c:799 +#: builtin/grep.c:713 msgid "show the surrounding function" msgstr "visa den omkringliggande funktionen" -#: builtin/grep.c:802 +#: builtin/grep.c:716 msgid "read patterns from file" msgstr "läs mönster frÃ¥n fil" -#: builtin/grep.c:804 +#: builtin/grep.c:718 msgid "match <pattern>" msgstr "träffa <mönster>" -#: builtin/grep.c:806 +#: builtin/grep.c:720 msgid "combine patterns specified with -e" msgstr "kombinera mönster som anges med -e" -#: builtin/grep.c:818 +#: builtin/grep.c:732 msgid "indicate hit with exit status without output" msgstr "ange träff med slutstatuskod utan utdata" -#: builtin/grep.c:820 +#: builtin/grep.c:734 msgid "show only matches from files that match all patterns" msgstr "visa endast träffar frÃ¥n filer som träffar alla mönster" -#: builtin/grep.c:822 +#: builtin/grep.c:736 msgid "show parse tree for grep expression" msgstr "visa analysträd för grep-uttryck" -#: builtin/grep.c:826 +#: builtin/grep.c:740 msgid "pager" msgstr "bläddrare" -#: builtin/grep.c:826 +#: builtin/grep.c:740 msgid "show matching files in the pager" msgstr "visa träffade filer i filbläddraren" -#: builtin/grep.c:829 +#: builtin/grep.c:743 msgid "allow calling of grep(1) (ignored by this build)" msgstr "tillÃ¥t anropa grep(1) (ignoreras av detta bygge)" -#: builtin/grep.c:830 builtin/show-ref.c:201 +#: builtin/grep.c:744 builtin/show-ref.c:184 msgid "show usage" msgstr "visa användning" -#: builtin/grep.c:921 +#: builtin/grep.c:811 msgid "no pattern given." msgstr "inget mönster angavs." -#: builtin/grep.c:935 +#: builtin/grep.c:825 #, c-format msgid "bad object %s" msgstr "felaktigt objekt %s" -#: builtin/grep.c:976 +#: builtin/grep.c:866 msgid "--open-files-in-pager only works on the worktree" msgstr "--open-files-in-pager fungerar endast i arbetskatalogen" -#: builtin/grep.c:999 +#: builtin/grep.c:889 msgid "--cached or --untracked cannot be used with --no-index." msgstr "--cached och --untracked kan inte användas med --no-index." -#: builtin/grep.c:1004 +#: builtin/grep.c:894 msgid "--no-index or --untracked cannot be used with revs." msgstr "--no-index och --untracked kan inte användas med revisioner." -#: builtin/grep.c:1007 +#: builtin/grep.c:897 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "--[no-]exclude-standard kan inte användas för spÃ¥rat innehÃ¥ll." -#: builtin/grep.c:1015 +#: builtin/grep.c:905 msgid "both --cached and trees are given." msgstr "bÃ¥de --cached och träd angavs." @@ -5277,219 +5319,219 @@ msgstr "dekoreringsflaggor" msgid "Final output: %d %s\n" msgstr "Slututdata: %d %s\n" -#: builtin/log.c:403 builtin/log.c:494 +#: builtin/log.c:405 builtin/log.c:497 #, c-format msgid "Could not read object %s" msgstr "Kunde inte läsa objektet %s" -#: builtin/log.c:518 +#: builtin/log.c:521 #, c-format msgid "Unknown type: %d" msgstr "Okänd typ: %d" -#: builtin/log.c:608 +#: builtin/log.c:613 msgid "format.headers without value" msgstr "format.headers utan värde" -#: builtin/log.c:682 +#: builtin/log.c:687 msgid "name of output directory is too long" msgstr "namnet pÃ¥ utdatakatalogen är för lÃ¥ngt" -#: builtin/log.c:693 +#: builtin/log.c:698 #, c-format msgid "Cannot open patch file %s" msgstr "Kan inte öppna patchfilen %s" -#: builtin/log.c:707 +#: builtin/log.c:712 msgid "Need exactly one range." msgstr "Behöver precis ett intervall." -#: builtin/log.c:715 +#: builtin/log.c:720 msgid "Not a range." msgstr "Inte ett intervall." -#: builtin/log.c:789 +#: builtin/log.c:794 msgid "Cover letter needs email format" msgstr "Omslagsbrevet behöver e-postformat" -#: builtin/log.c:862 +#: builtin/log.c:867 #, c-format msgid "insane in-reply-to: %s" msgstr "tokigt in-reply-to: %s" -#: builtin/log.c:890 +#: builtin/log.c:895 msgid "git format-patch [options] [<since> | <revision range>]" msgstr "git format-patch [flaggor] [<sedan> | <revisionsintervall>]" -#: builtin/log.c:935 +#: builtin/log.c:940 msgid "Two output directories?" msgstr "TvÃ¥ utdatakataloger?" -#: builtin/log.c:1063 +#: builtin/log.c:1068 msgid "use [PATCH n/m] even with a single patch" msgstr "använd [PATCH n/m] även för en ensam patch" -#: builtin/log.c:1066 +#: builtin/log.c:1071 msgid "use [PATCH] even with multiple patches" msgstr "använd [PATCH] även för flera patchar" -#: builtin/log.c:1070 +#: builtin/log.c:1075 msgid "print patches to standard out" msgstr "skriv patcharna pÃ¥ stnadard ut" -#: builtin/log.c:1072 +#: builtin/log.c:1077 msgid "generate a cover letter" msgstr "generera ett följebrev" -#: builtin/log.c:1074 +#: builtin/log.c:1079 msgid "use simple number sequence for output file names" msgstr "använd enkel nummersekvens för utdatafilnamn" -#: builtin/log.c:1075 +#: builtin/log.c:1080 msgid "sfx" msgstr "sfx" -#: builtin/log.c:1076 +#: builtin/log.c:1081 msgid "use <sfx> instead of '.patch'" msgstr "använd <sfx> istället för \".patch\"" -#: builtin/log.c:1078 +#: builtin/log.c:1083 msgid "start numbering patches at <n> instead of 1" msgstr "börja numrera patchar pÃ¥ <n> istället för 1" -#: builtin/log.c:1080 +#: builtin/log.c:1085 msgid "Use [<prefix>] instead of [PATCH]" msgstr "Använd [<prefix>] istället för [PATCH]" -#: builtin/log.c:1083 +#: builtin/log.c:1088 msgid "store resulting files in <dir>" msgstr "spara filerna i <katalog>" -#: builtin/log.c:1086 +#: builtin/log.c:1091 msgid "don't strip/add [PATCH]" msgstr "ta inte bort eller lägg till [PATCH]" -#: builtin/log.c:1089 +#: builtin/log.c:1094 msgid "don't output binary diffs" msgstr "skriv inte binära diffar" -#: builtin/log.c:1091 +#: builtin/log.c:1096 msgid "don't include a patch matching a commit upstream" msgstr "ta inte med patchar som motsvarar en uppströmsincheckning" -#: builtin/log.c:1093 +#: builtin/log.c:1098 msgid "show patch format instead of default (patch + stat)" msgstr "visa patchformat istället för standard (patch + stat)" -#: builtin/log.c:1095 +#: builtin/log.c:1100 msgid "Messaging" msgstr "E-post" -#: builtin/log.c:1096 +#: builtin/log.c:1101 msgid "header" msgstr "huvud" -#: builtin/log.c:1097 +#: builtin/log.c:1102 msgid "add email header" msgstr "lägg till e-posthuvud" -#: builtin/log.c:1098 builtin/log.c:1100 +#: builtin/log.c:1103 builtin/log.c:1105 msgid "email" msgstr "epost" -#: builtin/log.c:1098 +#: builtin/log.c:1103 msgid "add To: header" msgstr "Lägg till mottagarhuvud (\"To:\")" -#: builtin/log.c:1100 +#: builtin/log.c:1105 msgid "add Cc: header" msgstr "Lägg till kopiehuvud (\"Cc:\")" -#: builtin/log.c:1102 +#: builtin/log.c:1107 msgid "message-id" msgstr "meddelande-id" -#: builtin/log.c:1103 +#: builtin/log.c:1108 msgid "make first mail a reply to <message-id>" msgstr "Gör det första brevet ett svar till <meddelande-id>" -#: builtin/log.c:1104 builtin/log.c:1107 +#: builtin/log.c:1109 builtin/log.c:1112 msgid "boundary" msgstr "gräns" -#: builtin/log.c:1105 +#: builtin/log.c:1110 msgid "attach the patch" msgstr "bifoga patchen" -#: builtin/log.c:1108 +#: builtin/log.c:1113 msgid "inline the patch" msgstr "gör patchen ett inline-objekt" -#: builtin/log.c:1112 +#: builtin/log.c:1117 msgid "enable message threading, styles: shallow, deep" msgstr "aktivera brevtrÃ¥dning, typer: shallow, deep" -#: builtin/log.c:1114 +#: builtin/log.c:1119 msgid "signature" msgstr "signatur" -#: builtin/log.c:1115 +#: builtin/log.c:1120 msgid "add a signature" msgstr "lägg till signatur" -#: builtin/log.c:1117 +#: builtin/log.c:1122 msgid "don't print the patch filenames" msgstr "visa inte filnamn för patchar" -#: builtin/log.c:1157 +#: builtin/log.c:1163 #, c-format msgid "bogus committer info %s" msgstr "felaktig incheckarinformation %s" -#: builtin/log.c:1202 +#: builtin/log.c:1208 msgid "-n and -k are mutually exclusive." msgstr "-n och -k kan inte användas samtidigt." -#: builtin/log.c:1204 +#: builtin/log.c:1210 msgid "--subject-prefix and -k are mutually exclusive." msgstr "--subject-prefix och -k kan inte användas samtidigt." -#: builtin/log.c:1212 +#: builtin/log.c:1218 msgid "--name-only does not make sense" msgstr "kan inte använda --name-only" -#: builtin/log.c:1214 +#: builtin/log.c:1220 msgid "--name-status does not make sense" msgstr "kan inte använda --name-status" -#: builtin/log.c:1216 +#: builtin/log.c:1222 msgid "--check does not make sense" msgstr "kan inte använda --check" -#: builtin/log.c:1239 +#: builtin/log.c:1245 msgid "standard output, or directory, which one?" msgstr "standard ut, eller katalog, vilken skall det vara?" -#: builtin/log.c:1241 +#: builtin/log.c:1247 #, c-format msgid "Could not create directory '%s'" msgstr "Kunde inte skapa katalogen \"%s\"" -#: builtin/log.c:1394 +#: builtin/log.c:1400 msgid "Failed to create output files" msgstr "Misslyckades skapa utdatafiler" -#: builtin/log.c:1443 +#: builtin/log.c:1449 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [<uppström> [<huvud> [<gräns>]]]" -#: builtin/log.c:1498 +#: builtin/log.c:1504 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" msgstr "Kunde inte hitta en spÃ¥rad fjärrgren, ange <uppström> manuellt.\n" -#: builtin/log.c:1511 builtin/log.c:1513 builtin/log.c:1525 +#: builtin/log.c:1517 builtin/log.c:1519 builtin/log.c:1531 #, c-format msgid "Unknown commit %s" msgstr "Okänd incheckning %s" @@ -5767,37 +5809,33 @@ msgstr "Felaktig branch.%s.mergeoptions-sträng: %s" msgid "git write-tree failed to write a tree" msgstr "git write-tree misslyckades skriva ett träd" -#: builtin/merge.c:678 -msgid "failed to read the cache" -msgstr "misslyckads läsa cachen" - -#: builtin/merge.c:709 +#: builtin/merge.c:656 msgid "Not handling anything other than two heads merge." msgstr "Hanterar inte nÃ¥got annat än en sammanslagning av tvÃ¥ huvuden." -#: builtin/merge.c:723 +#: builtin/merge.c:670 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "Felaktig flagga för merge-recursive: -X%s" -#: builtin/merge.c:737 +#: builtin/merge.c:684 #, c-format msgid "unable to write %s" msgstr "kunde inte skriva %s" -#: builtin/merge.c:876 +#: builtin/merge.c:773 #, c-format msgid "Could not read from '%s'" msgstr "Kunde inte läsa frÃ¥n \"%s\"" -#: builtin/merge.c:885 +#: builtin/merge.c:782 #, c-format msgid "Not committing merge; use 'git commit' to complete the merge.\n" msgstr "" "Checkar inte in sammanslagningen; använd \"git commit\" för att slutföra " "den.\n" -#: builtin/merge.c:891 +#: builtin/merge.c:788 msgid "" "Please enter a commit message to explain why this merge is necessary,\n" "especially if it merges an updated upstream into a topic branch.\n" @@ -5812,53 +5850,53 @@ msgstr "" "Rader som inleds med \"#\" kommer ignoreras, och ett tomt meddelande\n" "avbryter incheckningen.\n" -#: builtin/merge.c:915 +#: builtin/merge.c:812 msgid "Empty commit message." msgstr "Tomt incheckningsmeddelande." -#: builtin/merge.c:927 +#: builtin/merge.c:824 #, c-format msgid "Wonderful.\n" msgstr "Underbart.\n" -#: builtin/merge.c:992 +#: builtin/merge.c:889 #, c-format msgid "Automatic merge failed; fix conflicts and then commit the result.\n" msgstr "" "Kunde inte slÃ¥ ihop automatiskt; fixa konflikter och checka in resultatet.\n" -#: builtin/merge.c:1008 +#: builtin/merge.c:905 #, c-format msgid "'%s' is not a commit" msgstr "\"%s\" är inte en incheckning" -#: builtin/merge.c:1049 +#: builtin/merge.c:946 msgid "No current branch." msgstr "Inte pÃ¥ nÃ¥gon gren." -#: builtin/merge.c:1051 +#: builtin/merge.c:948 msgid "No remote for the current branch." msgstr "Ingen fjärr för aktuell gren." -#: builtin/merge.c:1053 +#: builtin/merge.c:950 msgid "No default upstream defined for the current branch." msgstr "Ingen standarduppström angiven för aktuell gren." -#: builtin/merge.c:1058 +#: builtin/merge.c:955 #, c-format msgid "No remote tracking branch for %s from %s" msgstr "Ingen fjärrspÃ¥rande gren för %s frÃ¥n %s" -#: builtin/merge.c:1145 builtin/merge.c:1302 +#: builtin/merge.c:1042 builtin/merge.c:1199 #, c-format msgid "%s - not something we can merge" msgstr "%s - inte nÃ¥got vi kan slÃ¥ ihop" -#: builtin/merge.c:1213 +#: builtin/merge.c:1110 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "Det finns ingen sammanslagning att avbryta (MERGE_HEAD saknas)." -#: builtin/merge.c:1229 git-pull.sh:31 +#: builtin/merge.c:1126 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -5866,11 +5904,11 @@ msgstr "" "Du har inte avslutat sammanslagningen (MERGE_HEAD finns).\n" "Checka in dina ändringar innan du kan slÃ¥ ihop." -#: builtin/merge.c:1232 git-pull.sh:34 +#: builtin/merge.c:1129 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "Du har inte avslutat sammanslagningen (MERGE_HEAD finns)." -#: builtin/merge.c:1236 +#: builtin/merge.c:1133 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -5878,79 +5916,79 @@ msgstr "" "Du har inte avslutat din \"cherry-pick\" (CHERRY_PICK_HEAD finns).\n" "Checka in dina ändringar innan du kan slÃ¥ ihop." -#: builtin/merge.c:1239 +#: builtin/merge.c:1136 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." msgstr "Du har inte avslutat din \"cherry-pick\" (CHERRY_PICK_HEAD finns)." -#: builtin/merge.c:1248 +#: builtin/merge.c:1145 msgid "You cannot combine --squash with --no-ff." msgstr "Du kan inte kombinera --squash med --no-ff." -#: builtin/merge.c:1253 +#: builtin/merge.c:1150 msgid "You cannot combine --no-ff with --ff-only." msgstr "Du kan inte kombinera --no-ff med --ff-only." -#: builtin/merge.c:1260 +#: builtin/merge.c:1157 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "Ingen incheckning angiven och merge.defaultToUpstream är ej satt." -#: builtin/merge.c:1292 +#: builtin/merge.c:1189 msgid "Can merge only exactly one commit into empty head" msgstr "Kan endast slÃ¥ ihop en enda incheckning i ett tomt huvud." -#: builtin/merge.c:1295 +#: builtin/merge.c:1192 msgid "Squash commit into empty head not supported yet" msgstr "Stöder inte en tillplattningsincheckning pÃ¥ ett tomt huvud ännu" -#: builtin/merge.c:1297 +#: builtin/merge.c:1194 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "Icke-snabbspolad incheckning kan inte användas med ett tomt huvud" -#: builtin/merge.c:1412 +#: builtin/merge.c:1309 #, c-format msgid "Updating %s..%s\n" msgstr "Uppdaterar %s..%s\n" -#: builtin/merge.c:1450 +#: builtin/merge.c:1348 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Försöker riktigt enkel sammanslagning i indexet...\n" -#: builtin/merge.c:1457 +#: builtin/merge.c:1355 #, c-format msgid "Nope.\n" msgstr "Nej.\n" -#: builtin/merge.c:1489 +#: builtin/merge.c:1387 msgid "Not possible to fast-forward, aborting." msgstr "Kan inte snabbspola, avbryter." -#: builtin/merge.c:1512 builtin/merge.c:1591 +#: builtin/merge.c:1410 builtin/merge.c:1489 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "Ã…terspolar trädet till orört...\n" -#: builtin/merge.c:1516 +#: builtin/merge.c:1414 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Försöker sammanslagninsstrategin %s...\n" -#: builtin/merge.c:1582 +#: builtin/merge.c:1480 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "Ingen sammanslagningsstrategi hanterade sammanslagningen.\n" -#: builtin/merge.c:1584 +#: builtin/merge.c:1482 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "Sammanslagning med strategin %s misslyckades.\n" -#: builtin/merge.c:1593 +#: builtin/merge.c:1491 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "Använder %s för att förbereda lösning för hand.\n" -#: builtin/merge.c:1605 +#: builtin/merge.c:1503 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -6519,143 +6557,143 @@ msgstr "git pack-objects [flaggor...] basnamn [< reflista | < objektlista]" msgid "deflate error (%d)" msgstr "fel i deflate (%d)" -#: builtin/pack-objects.c:2398 +#: builtin/pack-objects.c:2397 #, c-format msgid "unsupported index version %s" msgstr "indexversionen %s stöds ej" -#: builtin/pack-objects.c:2402 +#: builtin/pack-objects.c:2401 #, c-format msgid "bad index version '%s'" msgstr "felaktig indexversion \"%s\"" -#: builtin/pack-objects.c:2425 +#: builtin/pack-objects.c:2424 #, c-format msgid "option %s does not accept negative form" msgstr "flaggan %s godtar inte negativ form" -#: builtin/pack-objects.c:2429 +#: builtin/pack-objects.c:2428 #, c-format msgid "unable to parse value '%s' for option %s" msgstr "kunde inte tolka värdet \"%s\" för flaggan %s" -#: builtin/pack-objects.c:2448 +#: builtin/pack-objects.c:2447 msgid "do not show progress meter" msgstr "visa inte förloppsindikator" -#: builtin/pack-objects.c:2450 +#: builtin/pack-objects.c:2449 msgid "show progress meter" msgstr "visa förloppsindikator" -#: builtin/pack-objects.c:2452 +#: builtin/pack-objects.c:2451 msgid "show progress meter during object writing phase" msgstr "visa förloppsindikator under objektskrivningsfasen" -#: builtin/pack-objects.c:2455 +#: builtin/pack-objects.c:2454 msgid "similar to --all-progress when progress meter is shown" msgstr "som --all-progress när förloppsmätaren visas" -#: builtin/pack-objects.c:2456 +#: builtin/pack-objects.c:2455 msgid "version[,offset]" msgstr "version[,offset]" -#: builtin/pack-objects.c:2457 +#: builtin/pack-objects.c:2456 msgid "write the pack index file in the specified idx format version" msgstr "skriv paketindexfilen i angiven indexformatversion" -#: builtin/pack-objects.c:2460 +#: builtin/pack-objects.c:2459 msgid "maximum size of each output pack file" msgstr "maximal storlek pÃ¥ varje utdatapaketfil" -#: builtin/pack-objects.c:2462 +#: builtin/pack-objects.c:2461 msgid "ignore borrowed objects from alternate object store" msgstr "ignorera lÃ¥nade objekt frÃ¥n alternativa objektlager" -#: builtin/pack-objects.c:2464 +#: builtin/pack-objects.c:2463 msgid "ignore packed objects" msgstr "ignorera packade objekt" -#: builtin/pack-objects.c:2466 +#: builtin/pack-objects.c:2465 msgid "limit pack window by objects" msgstr "begränsa paketfönster efter objekt" -#: builtin/pack-objects.c:2468 +#: builtin/pack-objects.c:2467 msgid "limit pack window by memory in addition to object limit" msgstr "begränsa paketfönster efter minne förutom objektgräns" -#: builtin/pack-objects.c:2470 +#: builtin/pack-objects.c:2469 msgid "maximum length of delta chain allowed in the resulting pack" msgstr "maximal längd pÃ¥ deltakedja tillÃ¥ten i slutligt paket" -#: builtin/pack-objects.c:2472 +#: builtin/pack-objects.c:2471 msgid "reuse existing deltas" msgstr "Ã¥teranvänd befintliga delta" -#: builtin/pack-objects.c:2474 +#: builtin/pack-objects.c:2473 msgid "reuse existing objects" msgstr "Ã¥teranvänd befintliga objekt" -#: builtin/pack-objects.c:2476 +#: builtin/pack-objects.c:2475 msgid "use OFS_DELTA objects" msgstr "använd OFS_DELTA-objekt" -#: builtin/pack-objects.c:2478 +#: builtin/pack-objects.c:2477 msgid "use threads when searching for best delta matches" msgstr "använd trÃ¥dar vid sökning efter bästa deltaträffar" -#: builtin/pack-objects.c:2480 +#: builtin/pack-objects.c:2479 msgid "do not create an empty pack output" msgstr "försök inte skapa tom paketutdata" -#: builtin/pack-objects.c:2482 +#: builtin/pack-objects.c:2481 msgid "read revision arguments from standard input" msgstr "läs revisionsargument frÃ¥n standard in" -#: builtin/pack-objects.c:2484 +#: builtin/pack-objects.c:2483 msgid "limit the objects to those that are not yet packed" msgstr "begränsa objekt till de som ännu inte packats" -#: builtin/pack-objects.c:2487 +#: builtin/pack-objects.c:2486 msgid "include objects reachable from any reference" msgstr "inkludera objekt som kan nÃ¥s frÃ¥n nÃ¥gon referens" -#: builtin/pack-objects.c:2490 +#: builtin/pack-objects.c:2489 msgid "include objects referred by reflog entries" msgstr "inkludera objekt som refereras frÃ¥n referensloggposter" -#: builtin/pack-objects.c:2493 +#: builtin/pack-objects.c:2492 msgid "output pack to stdout" msgstr "skriv paket pÃ¥ standard ut" -#: builtin/pack-objects.c:2495 +#: builtin/pack-objects.c:2494 msgid "include tag objects that refer to objects to be packed" msgstr "inkludera taggobjekt som refererar objekt som skall packas" -#: builtin/pack-objects.c:2497 +#: builtin/pack-objects.c:2496 msgid "keep unreachable objects" msgstr "behÃ¥ll onÃ¥bara objekt" -#: builtin/pack-objects.c:2498 parse-options.h:141 +#: builtin/pack-objects.c:2497 parse-options.h:141 msgid "time" msgstr "tid" -#: builtin/pack-objects.c:2499 +#: builtin/pack-objects.c:2498 msgid "unpack unreachable objects newer than <time>" msgstr "packa upp onÃ¥bara objekt nyare än <tid>" -#: builtin/pack-objects.c:2502 +#: builtin/pack-objects.c:2501 msgid "create thin packs" msgstr "skapa tunna paket" -#: builtin/pack-objects.c:2504 +#: builtin/pack-objects.c:2503 msgid "ignore packs that have companion .keep file" msgstr "ignorera paket som har tillhörande .keep-fil" -#: builtin/pack-objects.c:2506 +#: builtin/pack-objects.c:2505 msgid "pack compression level" msgstr "komprimeringsgrad för paket" -#: builtin/pack-objects.c:2508 +#: builtin/pack-objects.c:2507 msgid "do not hide commits by grafts" msgstr "göm inte incheckningar med ympningar (\"grafts\")" @@ -7066,7 +7104,7 @@ msgstr "git remote rename <gammal> <ny>" msgid "git remote remove <name>" msgstr "git remote remove <namn>" -#: builtin/remote.c:15 +#: builtin/remote.c:15 builtin/remote.c:42 msgid "git remote set-head <name> (-a | -d | <branch>)" msgstr "git remote set-head <namn> (-a | -d | <gren>)" @@ -7104,10 +7142,6 @@ msgstr "git remote set-url --delete <namn> <url>" msgid "git remote add [<options>] <name> <url>" msgstr "git remote add [<flaggor>] <namn> <url>" -#: builtin/remote.c:42 -msgid "git remote set-head <name> (-a | -d | <branch>])" -msgstr "git remote set-head <namn> (-a | -d | <gren>])" - #: builtin/remote.c:47 msgid "git remote set-branches <name> <branch>..." msgstr "git remote set-branches <namn> <gren>..." @@ -7556,15 +7590,15 @@ msgstr "git replace -d <objekt>..." msgid "git replace -l [<pattern>]" msgstr "git replace -l [<mönster>]" -#: builtin/replace.c:118 +#: builtin/replace.c:121 msgid "list replace refs" msgstr "visa ersättningsreferenser" -#: builtin/replace.c:119 +#: builtin/replace.c:122 msgid "delete replace refs" msgstr "ta bort ersättningsreferenser" -#: builtin/replace.c:120 +#: builtin/replace.c:123 msgid "replace the ref if it exists" msgstr "ersätt referensen om den finns" @@ -7810,11 +7844,21 @@ msgstr "\"revert\" misslyckades" msgid "cherry-pick failed" msgstr "\"cherry-pick\" misslyckades" -#: builtin/rm.c:14 +#: builtin/rm.c:15 msgid "git rm [options] [--] <file>..." msgstr "git rm [flaggor] [--] <fil>..." -#: builtin/rm.c:109 +#: builtin/rm.c:64 builtin/rm.c:186 +#, c-format +msgid "" +"submodule '%s' (or one of its nested submodules) uses a .git directory\n" +"(use 'rm -rf' if you really want to remove it including all of its history)" +msgstr "" +"undermodulen \"%s\" (eller en av dess undermoduler) använder en .git-" +"katalog\n" +"(använd \"rm -rf\" om du verkligen vill ta bort den och all dess historik)" + +#: builtin/rm.c:174 #, c-format msgid "" "'%s' has staged content different from both the file and the HEAD\n" @@ -7823,7 +7867,7 @@ msgstr "" "\"%s\" har köat ändringar som skiljer sig bÃ¥de frÃ¥n filen och HEAD\n" "(använd -f för att tvinga borttagning)" -#: builtin/rm.c:115 +#: builtin/rm.c:180 #, c-format msgid "" "'%s' has changes staged in the index\n" @@ -7832,7 +7876,7 @@ msgstr "" "\"%s\" har köade ändringar i indexet\n" "(använd --cached för att behÃ¥lla filen eller -f för att tvinga borttagning)" -#: builtin/rm.c:119 +#: builtin/rm.c:191 #, c-format msgid "" "'%s' has local modifications\n" @@ -7841,32 +7885,32 @@ msgstr "" "\"%s\" har lokala ändringar\n" "(använd --cached för att behÃ¥lla filen eller -f för att tvinga borttagning)" -#: builtin/rm.c:134 +#: builtin/rm.c:207 msgid "do not list removed files" msgstr "lista inte borttagna filer" -#: builtin/rm.c:135 +#: builtin/rm.c:208 msgid "only remove from the index" msgstr "ta bara bort frÃ¥n indexet" -#: builtin/rm.c:136 +#: builtin/rm.c:209 msgid "override the up-to-date check" msgstr "överstyr à jour-testet" -#: builtin/rm.c:137 +#: builtin/rm.c:210 msgid "allow recursive removal" msgstr "tillÃ¥t rekursiv borttagning" -#: builtin/rm.c:139 +#: builtin/rm.c:212 msgid "exit with a zero status even if nothing matched" msgstr "avsluta med nollstatus även om inget träffades" -#: builtin/rm.c:194 +#: builtin/rm.c:283 #, c-format msgid "not removing '%s' recursively without -r" msgstr "tar inte bort \"%s\" rekursivt utan -r" -#: builtin/rm.c:230 +#: builtin/rm.c:322 #, c-format msgid "git rm: unable to remove %s" msgstr "git rm: kan inte ta bort %s" @@ -7993,35 +8037,35 @@ msgstr "" msgid "git show-ref --exclude-existing[=pattern] < ref-list" msgstr "git show-ref --exclude-existing[=mönster] < reflista" -#: builtin/show-ref.c:182 +#: builtin/show-ref.c:165 msgid "only show tags (can be combined with heads)" msgstr "visa endast taggar (kan kombineras med huvuden)" -#: builtin/show-ref.c:183 +#: builtin/show-ref.c:166 msgid "only show heads (can be combined with tags)" msgstr "visa endast huvuden (kan kombineras med taggar)" -#: builtin/show-ref.c:184 +#: builtin/show-ref.c:167 msgid "stricter reference checking, requires exact ref path" msgstr "striktare referenskontroll, kräver exakt referenssökväg" -#: builtin/show-ref.c:187 builtin/show-ref.c:189 +#: builtin/show-ref.c:170 builtin/show-ref.c:172 msgid "show the HEAD reference" msgstr "visa HEAD-referensen" -#: builtin/show-ref.c:191 +#: builtin/show-ref.c:174 msgid "dereference tags into object IDs" msgstr "avreferera taggar till objekt-id" -#: builtin/show-ref.c:193 +#: builtin/show-ref.c:176 msgid "only show SHA1 hash using <n> digits" msgstr "visa SHA1-hash endast med <n> siffror" -#: builtin/show-ref.c:197 +#: builtin/show-ref.c:180 msgid "do not print results to stdout (useful with --verify)" msgstr "visa inte resultat pÃ¥ standard ut (användbart med --verify)" -#: builtin/show-ref.c:199 +#: builtin/show-ref.c:182 msgid "show refs from stdin that aren't in local repository" msgstr "visa referenser frÃ¥n standard in som inte finns i lokalt arkiv" @@ -8029,20 +8073,28 @@ msgstr "visa referenser frÃ¥n standard in som inte finns i lokalt arkiv" msgid "git symbolic-ref [options] name [ref]" msgstr "git symbolic-ref [flaggor] namn [ref]" -#: builtin/symbolic-ref.c:38 +#: builtin/symbolic-ref.c:8 +msgid "git symbolic-ref -d [-q] name" +msgstr "git symbolic-ref -d [-q] namn" + +#: builtin/symbolic-ref.c:40 msgid "suppress error message for non-symbolic (detached) refs" msgstr "" "undertryck felmeddelanden för icke-symboliska (frÃ¥nkopplade) referenser" -#: builtin/symbolic-ref.c:39 +#: builtin/symbolic-ref.c:41 +msgid "delete symbolic ref" +msgstr "ta bort symbolisk referens" + +#: builtin/symbolic-ref.c:42 msgid "shorten ref output" msgstr "förkorta ref-utdata" -#: builtin/symbolic-ref.c:40 builtin/update-ref.c:18 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18 msgid "reason" msgstr "skäl" -#: builtin/symbolic-ref.c:40 builtin/update-ref.c:18 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18 msgid "reason of the update" msgstr "skäl till uppdateringen" @@ -8266,111 +8318,111 @@ msgstr "Uppdaterad tagg \"%s\" (var %s)\n" msgid "git update-index [options] [--] [<file>...]" msgstr "git update-index [flaggor] [--] [<fil>...]" -#: builtin/update-index.c:717 +#: builtin/update-index.c:718 msgid "continue refresh even when index needs update" msgstr "fortsätt uppdatera även när index inte är à jour" -#: builtin/update-index.c:720 +#: builtin/update-index.c:721 msgid "refresh: ignore submodules" msgstr "refresh: ignorera undermoduler" -#: builtin/update-index.c:723 +#: builtin/update-index.c:724 msgid "do not ignore new files" msgstr "ignorera inte nya filer" -#: builtin/update-index.c:725 +#: builtin/update-index.c:726 msgid "let files replace directories and vice-versa" msgstr "lÃ¥t filer ersätta kataloger och omvänt" -#: builtin/update-index.c:727 +#: builtin/update-index.c:728 msgid "notice files missing from worktree" msgstr "lägg märke till filer som saknas i arbetskatalogen" -#: builtin/update-index.c:729 +#: builtin/update-index.c:730 msgid "refresh even if index contains unmerged entries" msgstr "uppdatera även om indexet innehÃ¥ller ej sammanslagna poster" -#: builtin/update-index.c:732 +#: builtin/update-index.c:733 msgid "refresh stat information" msgstr "uppdatera statusinformation" -#: builtin/update-index.c:736 +#: builtin/update-index.c:737 msgid "like --refresh, but ignore assume-unchanged setting" msgstr "som --refresh, men ignorera assume-unchanged-inställning" -#: builtin/update-index.c:740 +#: builtin/update-index.c:741 msgid "<mode> <object> <path>" msgstr "<läge> <objekt> <sökväg>" -#: builtin/update-index.c:741 +#: builtin/update-index.c:742 msgid "add the specified entry to the index" msgstr "lägg till angiven post i indexet" -#: builtin/update-index.c:745 +#: builtin/update-index.c:746 msgid "(+/-)x" msgstr "(+/-)x" -#: builtin/update-index.c:746 +#: builtin/update-index.c:747 msgid "override the executable bit of the listed files" msgstr "överstyr exekveringsbiten för angivna filer" -#: builtin/update-index.c:750 +#: builtin/update-index.c:751 msgid "mark files as \"not changing\"" msgstr "markera filer som \"ändras inte\"" -#: builtin/update-index.c:753 +#: builtin/update-index.c:754 msgid "clear assumed-unchanged bit" msgstr "rensa \"assume-unchanged\"-biten" -#: builtin/update-index.c:756 +#: builtin/update-index.c:757 msgid "mark files as \"index-only\"" msgstr "markera filer som \"endast index\"" -#: builtin/update-index.c:759 +#: builtin/update-index.c:760 msgid "clear skip-worktree bit" msgstr "töm \"skip-worktree\"-biten" -#: builtin/update-index.c:762 +#: builtin/update-index.c:763 msgid "add to index only; do not add content to object database" msgstr "lägg endast till indexet; lägg inte till innehÃ¥llet i objektdatabasen" -#: builtin/update-index.c:764 +#: builtin/update-index.c:765 msgid "remove named paths even if present in worktree" msgstr "ta bort namngivna sökvägar även om de finns i arbetskatalogen" -#: builtin/update-index.c:766 +#: builtin/update-index.c:767 msgid "with --stdin: input lines are terminated by null bytes" msgstr "med --stdin: indatarader termineras med null-byte" -#: builtin/update-index.c:768 +#: builtin/update-index.c:769 msgid "read list of paths to be updated from standard input" msgstr "läs lista över sökvägar att uppdatera frÃ¥n standard in" -#: builtin/update-index.c:772 +#: builtin/update-index.c:773 msgid "add entries from standard input to the index" msgstr "lägg poster frÃ¥n frÃ¥n standard in till indexet" -#: builtin/update-index.c:776 +#: builtin/update-index.c:777 msgid "repopulate stages #2 and #3 for the listed paths" msgstr "Ã¥terfyll etapp 2 och 3 frÃ¥n angivna sökvägar" -#: builtin/update-index.c:780 +#: builtin/update-index.c:781 msgid "only update entries that differ from HEAD" msgstr "uppdatera endast poster som skiljer sig frÃ¥n HEAD" -#: builtin/update-index.c:784 +#: builtin/update-index.c:785 msgid "ignore files missing from worktree" msgstr "ignorera filer som saknas i arbetskatalogen" -#: builtin/update-index.c:787 +#: builtin/update-index.c:788 msgid "report actions to standard output" msgstr "raportera Ã¥tgärder pÃ¥ standard ut" -#: builtin/update-index.c:789 +#: builtin/update-index.c:790 msgid "(for porcelains) forget saved unresolved conflicts" msgstr "(för porslin) glöm sparade olösta konflikter" -#: builtin/update-index.c:793 +#: builtin/update-index.c:794 msgid "write index in this format" msgstr "skriv index i detta format" @@ -8888,7 +8940,7 @@ msgstr "uppdaterar en ofödd gren med ändringar som lagts till i indexet" #. The working tree and the index file is still based on the #. $orig_head commit, but we are merging into $curr_head. #. First update the working tree to match $curr_head. -#: git-pull.sh:228 +#: git-pull.sh:229 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -8899,11 +8951,11 @@ msgstr "" "Varning: snabbspolar din arbetskatalog frÃ¥n\n" "Varning: incheckningen $orig_head." -#: git-pull.sh:253 +#: git-pull.sh:254 msgid "Cannot merge multiple branches into empty head" msgstr "Kan inte slÃ¥ ihop flera grenar i ett tomt huvud." -#: git-pull.sh:257 +#: git-pull.sh:258 msgid "Cannot rebase onto multiple branches" msgstr "Kan inte utföra en \"rebase\" ovanpÃ¥ flera grenar" @@ -9160,12 +9212,12 @@ msgstr "Inget grennamn angavs" msgid "(To restore them type \"git stash apply\")" msgstr "(För att Ã¥terställa dem, skriv \"git stash apply\")" -#: git-submodule.sh:88 +#: git-submodule.sh:89 #, sh-format msgid "cannot strip one component off url '$remoteurl'" msgstr "kan inte ta bort en komponent frÃ¥n url:en \"$remoteurl\"" -#: git-submodule.sh:167 +#: git-submodule.sh:168 #, sh-format msgid "No submodule mapping found in .gitmodules for path '$sm_path'" msgstr "" @@ -9181,17 +9233,17 @@ msgstr "Misslyckades klona \"$url\" till undermodulsökvägen \"$sm_path\"" msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "Gitkatalog \"$a\" ingÃ¥r i underkatalogsökvägen \"$b\" eller omvänt" -#: git-submodule.sh:312 +#: git-submodule.sh:316 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "arkiv-URL: \"$repo\" mÃ¥ste vara absolut eller börja med ./|../" -#: git-submodule.sh:329 +#: git-submodule.sh:333 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "\"$sm_path\" finns redan i indexet" -#: git-submodule.sh:333 +#: git-submodule.sh:337 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -9202,64 +9254,98 @@ msgstr "" "$sm_path\n" "Använd -f om du verkligen vill lägga till den" -#: git-submodule.sh:344 +#: git-submodule.sh:355 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "Lägger till befintligt arkiv i \"$sm_path\" i indexet" -#: git-submodule.sh:346 +#: git-submodule.sh:357 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" msgstr "\"$sm_path\" finns redan och är inte ett giltigt git-arkiv" -#: git-submodule.sh:360 +#: git-submodule.sh:365 +#, sh-format +msgid "A git directory for '$sm_name' is found locally with remote(s):" +msgstr "En git-katalog för \"$sm_name\" hittades lokalt med fjärr(ar):" + +#: git-submodule.sh:367 +#, sh-format +msgid "" +"If you want to reuse this local git directory instead of cloning again from" +msgstr "" +"För att Ã¥teranvända den lokala git-katalogen istället för att pÃ¥ nytt klona " +"frÃ¥n" + +#: git-submodule.sh:369 +#, sh-format +msgid "" +"use the '--force' option. If the local git directory is not the correct repo" +msgstr "" +"använd flaggan \"--force\". Om den lokala git-katalogen inte är riktigt arkiv" + +#: git-submodule.sh:370 +#, sh-format +msgid "" +"or you are unsure what this means choose another name with the '--name' " +"option." +msgstr "" +"eller om du är osäker pÃ¥ vad det innebär, välj nytt namn med flaggan \"--name" +"\"." + +#: git-submodule.sh:372 +#, sh-format +msgid "Reactivating local git directory for submodule '$sm_name'." +msgstr "Aktiverar lokal git-katalog för undermodulen \"$sm_name\" pÃ¥ nytt." + +#: git-submodule.sh:384 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "Kan inte checka ut undermodulen \"$sm_path\"" -#: git-submodule.sh:365 +#: git-submodule.sh:389 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "Misslyckades lägga till undermodulen \"$sm_path\"" -#: git-submodule.sh:370 +#: git-submodule.sh:394 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "Misslyckades registrera undermodulen \"$sm_path\"" -#: git-submodule.sh:413 +#: git-submodule.sh:437 #, sh-format msgid "Entering '$prefix$sm_path'" msgstr "GÃ¥r in i \"$prefix$sm_path\"" -#: git-submodule.sh:427 +#: git-submodule.sh:451 #, sh-format msgid "Stopping at '$sm_path'; script returned non-zero status." msgstr "" "Stoppar pÃ¥ \"$sm_path\"; skriptet returnerade en status skild frÃ¥n noll." -#: git-submodule.sh:471 +#: git-submodule.sh:495 #, sh-format msgid "No url found for submodule path '$sm_path' in .gitmodules" msgstr "Hittade ingen url för undermodulsökvägen \"$sm_path\" i .gitmodules" -#: git-submodule.sh:480 +#: git-submodule.sh:504 #, sh-format msgid "Failed to register url for submodule path '$sm_path'" msgstr "Misslyckades registrera url för underkatalogsökväg \"$sm_path\"" -#: git-submodule.sh:482 +#: git-submodule.sh:506 #, sh-format msgid "Submodule '$name' ($url) registered for path '$sm_path'" msgstr "Undermodulen \"$name\" ($url) registrerad för sökvägen \"$sm_path\"" -#: git-submodule.sh:490 +#: git-submodule.sh:514 #, sh-format msgid "Failed to register update mode for submodule path '$sm_path'" msgstr "" "Misslyckades registrera uppdateringsläge för undermodulsökväg \"$sm_path\"" -#: git-submodule.sh:590 +#: git-submodule.sh:614 #, sh-format msgid "" "Submodule path '$sm_path' not initialized\n" @@ -9268,92 +9354,95 @@ msgstr "" "Undermodulen \"$sm_path\" har inte initierats\n" "Kanske du vill köra \"update --init\"?" -#: git-submodule.sh:603 +#: git-submodule.sh:627 #, sh-format msgid "Unable to find current revision in submodule path '$sm_path'" msgstr "Kan inte hitta aktuell revision i undermodulsökväg \"$sm_path\"" -#: git-submodule.sh:622 +#: git-submodule.sh:646 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" msgstr "Kan inte hämta i undermodulsökväg \"$sm_path\"" -#: git-submodule.sh:636 +#: git-submodule.sh:660 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$sm_path'" msgstr "Kan inte ombasera \"$sha1\" i undermodulsökväg \"$sm_path\"" -#: git-submodule.sh:637 +#: git-submodule.sh:661 #, sh-format msgid "Submodule path '$sm_path': rebased into '$sha1'" msgstr "Undermodulsökvägen \"$sm_path\": ombaserade in i \"$sha1\"" -#: git-submodule.sh:642 +#: git-submodule.sh:666 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$sm_path'" msgstr "Kan inte slÃ¥ ihop \"$sha1\" i undermodulsökvägen \"$sm_path\"" -#: git-submodule.sh:643 +#: git-submodule.sh:667 #, sh-format msgid "Submodule path '$sm_path': merged in '$sha1'" msgstr "Undermodulsökvägen \"$sm_path\": sammanslagen i \"$sha1\"" -#: git-submodule.sh:648 +#: git-submodule.sh:672 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$sm_path'" msgstr "Kan inte checka ut \"$sha1\" i undermodulsökvägen \"$sm_path\"" -#: git-submodule.sh:649 +#: git-submodule.sh:673 #, sh-format msgid "Submodule path '$sm_path': checked out '$sha1'" msgstr "Undermodulsökvägen \"$sm_path\": checkade ut \"$sha1\"" -#: git-submodule.sh:671 git-submodule.sh:995 +#: git-submodule.sh:695 git-submodule.sh:1017 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" msgstr "Misslyckades rekursera in i undermodulsökvägen \"$sm_path\"" -#: git-submodule.sh:779 +#: git-submodule.sh:803 msgid "The --cached option cannot be used with the --files option" msgstr "Flaggan --cached kan inte användas med flaggan --files" #. unexpected type -#: git-submodule.sh:819 +#: git-submodule.sh:843 #, sh-format msgid "unexpected mode $mod_dst" msgstr "oväntat läge $mod_dst" -#: git-submodule.sh:837 +#: git-submodule.sh:861 #, sh-format msgid " Warn: $name doesn't contain commit $sha1_src" msgstr " Varning: $name innehÃ¥ller inte incheckning $sha1_src" -#: git-submodule.sh:840 +#: git-submodule.sh:864 #, sh-format msgid " Warn: $name doesn't contain commit $sha1_dst" msgstr " Varning: $name innehÃ¥ller inte incheckning $sha1_dst" -#: git-submodule.sh:843 +#: git-submodule.sh:867 #, sh-format msgid " Warn: $name doesn't contain commits $sha1_src and $sha1_dst" msgstr " Varning: $name innehÃ¥ller inte incheckningar $sha1_src och $sha1_dst" -#: git-submodule.sh:868 +#: git-submodule.sh:892 msgid "blob" msgstr "blob" -#: git-submodule.sh:906 +#: git-submodule.sh:930 msgid "# Submodules changed but not updated:" msgstr "# Undermoduler ändrade men inte uppdaterade:" -#: git-submodule.sh:908 +#: git-submodule.sh:932 msgid "# Submodule changes to be committed:" msgstr "# Undermodulers ändringar att checka in:" -#: git-submodule.sh:1054 +#: git-submodule.sh:1080 #, sh-format -msgid "Synchronizing submodule url for '$name'" -msgstr "Synkroniserar undermodul-url för \"$name\"" +msgid "Synchronizing submodule url for '$prefix$sm_path'" +msgstr "Synkroniserar undermodul-url för \"$prefix$sm_path\"" + +#~ msgid "git remote set-head <name> (-a | -d | <branch>])" +#~ msgstr "git remote set-head <namn> (-a | -d | <gren>])" #~ msgid " 0 files changed" #~ msgstr " 0 filer ändrade" @@ -6,10 +6,10 @@ # msgid "" msgstr "" -"Project-Id-Version: git-v1.8.0-rc2-4-g42e55\n" +"Project-Id-Version: git-v1.8.0.1-347-gf94c3\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2012-10-16 08:38+0800\n" -"PO-Revision-Date: 2012-10-17 08:09+0700\n" +"POT-Creation-Date: 2012-11-30 12:40+0800\n" +"PO-Revision-Date: 2012-11-30 13:40+0700\n" "Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n" "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n" "Language: vi\n" @@ -37,9 +37,9 @@ msgid "" "or use 'git commit -a'." msgstr "" "Sá»a chúng trong cây là m việc,\n" -"và sau đó dùng lệnh `git add/rm <táºp-tin>'\n" -"dà nh riêng cho việc đánh dấu cần giải quyết và tạo lần chuyển giao,\n" -"hoặc là dùng lệnh `git commit -a'." +"và sau đó dùng lệnh “git add/rm <táºp-tin>†dà nh riêng\n" +"cho việc đánh dấu táºp tin cần giải quyết và tạo lần chuyển giao,\n" +"hoặc là dùng lệnh “git commit -aâ€." #: archive.c:10 msgid "git archive [options] <tree-ish> [<path>...]" @@ -68,7 +68,7 @@ msgstr "fmt" msgid "archive format" msgstr "định dạng lÆ°u trữ" -#: archive.c:323 builtin/log.c:1079 +#: archive.c:323 builtin/log.c:1084 msgid "prefix" msgstr "tiá»n tố" @@ -76,9 +76,9 @@ msgstr "tiá»n tố" msgid "prepend prefix to each pathname in the archive" msgstr "nối thêm tiá»n tố và o từng Ä‘Æ°á»ng dẫn táºp tin trong kho lÆ°u" -#: archive.c:325 builtin/archive.c:91 builtin/blame.c:2389 -#: builtin/blame.c:2390 builtin/config.c:56 builtin/fast-export.c:642 -#: builtin/fast-export.c:644 builtin/grep.c:801 builtin/hash-object.c:77 +#: archive.c:325 builtin/archive.c:91 builtin/blame.c:2390 +#: builtin/blame.c:2391 builtin/config.c:55 builtin/fast-export.c:642 +#: builtin/fast-export.c:644 builtin/grep.c:715 builtin/hash-object.c:77 #: builtin/ls-files.c:494 builtin/ls-files.c:497 builtin/notes.c:540 #: builtin/notes.c:697 builtin/read-tree.c:107 parse-options.h:149 msgid "file" @@ -98,7 +98,7 @@ msgstr "liệt kê các táºp tin được lÆ°u trữ và o stderr (đầu ra lá» #: archive.c:330 msgid "store only" -msgstr "chỉ lÆ°u" +msgstr "chỉ lÆ°u (không nén)" #: archive.c:331 msgid "compress faster" @@ -110,7 +110,7 @@ msgstr "nén nhá» hÆ¡n" #: archive.c:342 msgid "list supported archive formats" -msgstr "liệt kê các kiểu né được há»— trợ" +msgstr "liệt kê các kiểu nén được há»— trợ" #: archive.c:344 builtin/archive.c:93 builtin/clone.c:85 msgid "repo" @@ -128,30 +128,38 @@ msgstr "lệnh" msgid "path to the remote git-upload-archive command" msgstr "Ä‘Æ°á»ng dẫn đến lệnh git-upload-pack trên máy chủ" +#: attr.c:259 +msgid "" +"Negative patterns are forbidden in git attributes\n" +"Use '\\!' for literal leading exclamation." +msgstr "" +"Mấu dạng phủ định bị cấm chỉ dùng trong các thuá»™c tÃnh của git\n" +"Dùng '\\!' cho các chuá»—i văn bản có dấu chấm than." + #: bundle.c:36 #, c-format msgid "'%s' does not look like a v2 bundle file" -msgstr "`%s' không giống nhÆ° táºp tin v2 bundle (cụm)" +msgstr "“%s†không giống nhÆ° táºp tin v2 bundle (định dạng dump của git)" #: bundle.c:63 #, c-format msgid "unrecognized header: %s%s (%d)" msgstr "phần đầu (header) không được thừa nháºn: %s%s (%d)" -#: bundle.c:89 builtin/commit.c:672 +#: bundle.c:89 builtin/commit.c:674 #, c-format msgid "could not open '%s'" -msgstr "không thể mở `%s'" +msgstr "không thể mở “%sâ€" #: bundle.c:140 msgid "Repository lacks these prerequisite commits:" msgstr "Khó chứa thiếu những lần chuyển giao (commit) cần trÆ°á»›c hết nà y:" #: bundle.c:164 sequencer.c:562 sequencer.c:994 builtin/log.c:290 -#: builtin/log.c:727 builtin/log.c:1313 builtin/log.c:1529 builtin/merge.c:347 +#: builtin/log.c:732 builtin/log.c:1319 builtin/log.c:1535 builtin/merge.c:347 #: builtin/shortlog.c:181 msgid "revision walk setup failed" -msgstr "Cà i đặt việc di chuyển qua các Ä‘iểm xét lại gặp lá»—i" +msgstr "cà i đặt việc di chuyển qua các Ä‘iểm xét lại gặp lá»—i" #: bundle.c:186 #, c-format @@ -173,9 +181,9 @@ msgstr[1] "Lệnh bundle yêu cầu %d tham chiếu (refs) nà y" #: bundle.c:294 msgid "rev-list died" -msgstr "rev-list bị chết" +msgstr "rev-list đã chết" -#: bundle.c:300 builtin/log.c:1209 builtin/shortlog.c:284 +#: bundle.c:300 builtin/log.c:1215 builtin/shortlog.c:284 #, c-format msgid "unrecognized argument: %s" msgstr "đối số không được thừa nháºn: %s" @@ -183,7 +191,7 @@ msgstr "đối số không được thừa nháºn: %s" #: bundle.c:335 #, c-format msgid "ref '%s' is excluded by the rev-list options" -msgstr "tham chiếu `%s' bị loại trừ bởi các tùy chá»n rev-list" +msgstr "th.chiếu “%s†bị loại trừ bởi các tùy chá»n rev-list" #: bundle.c:380 msgid "Refusing to create empty bundle." @@ -200,7 +208,7 @@ msgstr "pack-objects đã chết" #: bundle.c:419 #, c-format msgid "cannot create '%s'" -msgstr "không thể tạo `%s'" +msgstr "không thể tạo “%sâ€" #: bundle.c:441 msgid "index-pack died" @@ -218,11 +226,11 @@ msgstr "%s %s không phải là má»™t lần commit!" #: compat/obstack.c:406 compat/obstack.c:408 msgid "memory exhausted" -msgstr "cạn bá»™ nhá»›" +msgstr "hết bá»™ nhá»›" #: connected.c:39 msgid "Could not run 'git rev-list'" -msgstr "Không thể chạy `git rev-list'" +msgstr "Không thể chạy “git rev-listâ€" #: connected.c:48 #, c-format @@ -301,26 +309,31 @@ msgid_plural "%lu years ago" msgstr[0] "%lu năm trÆ°á»›c" msgstr[1] "%lu năm trÆ°á»›c" -#: diff.c:105 +#: diff.c:111 +#, c-format +msgid " Failed to parse dirstat cut-off percentage '%s'\n" +msgstr " Gặp lá»—i khi phân tÃch dirstat cắt bá» phần trăm '%s'\n" + +#: diff.c:116 #, c-format -msgid " Failed to parse dirstat cut-off percentage '%.*s'\n" -msgstr " Gặp lá»—i khi phân tÃch dirstat cắt bá» phần trăm `%.*s'\n" +msgid " Unknown dirstat parameter '%s'\n" +msgstr " Không hiểu đối số dirstat '%s'\n" -#: diff.c:110 +#: diff.c:194 #, c-format -msgid " Unknown dirstat parameter '%.*s'\n" -msgstr " Không hiểu đối số dirstat `%.*s'\n" +msgid "Unknown value for 'diff.submodule' config variable: '%s'" +msgstr "Không hiểu giá trị cho biến cấu hình “diff.submoduleâ€: `%s'" -#: diff.c:210 +#: diff.c:237 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" "%s" msgstr "" -"Tìm thấy các lá»—i trong biến cấu hình 'diff.dirstat':\n" +"Tìm thấy các lá»—i trong biến cấu hình “diff.dirstatâ€:\n" "%s" -#: diff.c:3458 +#: diff.c:3494 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -329,6 +342,11 @@ msgstr "" "Gặp lá»—i khi phân tÃch đối số tùy chá»n --dirstat/-X:\n" "%s" +#: diff.c:3508 +#, c-format +msgid "Failed to parse --submodule option parameter: '%s'" +msgstr "Gặp lá»—i khi phân tÃch đối số tùy chá»n --submodule: `%s'" + #: gpg-interface.c:59 msgid "could not run gpg." msgstr "không thể chạy gpg." @@ -341,25 +359,25 @@ msgstr "gpg đã không đồng ý dữ liệu" msgid "gpg failed to sign the data" msgstr "gpg gặp lá»—i khi ký dữ liệu" -#: grep.c:1441 +#: grep.c:1622 #, c-format msgid "'%s': unable to read %s" -msgstr "`%s': không thể Ä‘á»c %s" +msgstr "“%sâ€: không thể Ä‘á»c %s" -#: grep.c:1458 +#: grep.c:1639 #, c-format msgid "'%s': %s" -msgstr "`%s': %s" +msgstr "“%sâ€: %s" -#: grep.c:1469 +#: grep.c:1650 #, c-format msgid "'%s': short read %s" -msgstr "`%s': Ä‘á»c ngắn %s" +msgstr "“%sâ€: Ä‘á»c ngắn %s" #: help.c:212 #, c-format msgid "available git commands in '%s'" -msgstr "các lệnh git sẵn sà ng để dùng trong `%s'" +msgstr "các lệnh git sẵn sà ng để dùng trong “%sâ€" #: help.c:219 msgid "git commands available from elsewhere on your $PATH" @@ -371,7 +389,7 @@ msgid "" "'%s' appears to be a git command, but we were not\n" "able to execute it. Maybe git-%s is broken?" msgstr "" -"`%s' trông nhÆ° là má»™t lệnh git, nhÆ°ng chúng tôi không\n" +"“%s†trông nhÆ° là má»™t lệnh git, nhÆ°ng chúng tôi không\n" "thể thá»±c thi nó. Có lẽ là lệnh git-%s đã bị há»ng?" #: help.c:332 @@ -384,8 +402,8 @@ msgid "" "WARNING: You called a Git command named '%s', which does not exist.\n" "Continuing under the assumption that you meant '%s'" msgstr "" -"CẢNH BÃO: Bạn đã gá»i lệnh Git có tên `%s', mà nó lại không có sẵn.\n" -"Giả định rằng ý bạn là `%s'" +"CẢNH BÃO: Bạn đã gá»i lệnh Git có tên “%sâ€, mà nó lại không có sẵn.\n" +"Giả định rằng ý bạn là “%sâ€" #: help.c:359 #, c-format @@ -395,7 +413,7 @@ msgstr "trong %0.1f giây má»™t cách tá»± Ä‘á»™ng..." #: help.c:366 #, c-format msgid "git: '%s' is not a git command. See 'git --help'." -msgstr "git: `%s' không phải là má»™t lệnh của git. Xem `git --help'." +msgstr "git: “%s†không phải là má»™t lệnh của git. Xem “git --helpâ€." #: help.c:370 msgid "" @@ -411,6 +429,15 @@ msgstr[1] "" "\n" "Có phải ý bạn là má»™t trong số những cái nà y không?" +#: merge.c:56 +msgid "failed to read the cache" +msgstr "gặp lá»—i khi Ä‘á»c bá»™ nhá»› tạm" + +#: merge.c:110 builtin/checkout.c:333 builtin/checkout.c:534 +#: builtin/clone.c:586 +msgid "unable to write new index file" +msgstr "không thể ghi táºp tin lÆ°u bảng mục lục má»›i" + #: merge-recursive.c:190 #, c-format msgid "(bad commit)\n" @@ -419,7 +446,7 @@ msgstr "(commit sai)\n" #: merge-recursive.c:206 #, c-format msgid "addinfo_cache failed for path '%s'" -msgstr "addinfo_cache gặp lá»—i đối vá»›i Ä‘Æ°á»ng dẫn `%s'" +msgstr "addinfo_cache gặp lá»—i đối vá»›i Ä‘Æ°á»ng dẫn “%sâ€" #: merge-recursive.c:268 msgid "error building trees" @@ -428,7 +455,7 @@ msgstr "gặp lá»—i khi xây dá»±ng cây" #: merge-recursive.c:672 #, c-format msgid "failed to create path '%s'%s" -msgstr "gặp lá»—i khi tạo Ä‘Æ°á»ng dẫn `%s'%s" +msgstr "gặp lá»—i khi tạo Ä‘Æ°á»ng dẫn “%sâ€%s" #: merge-recursive.c:683 #, c-format @@ -444,32 +471,32 @@ msgstr ": có lẽ là má»™t xung Ä‘á»™t D/F?" #: merge-recursive.c:708 #, c-format msgid "refusing to lose untracked file at '%s'" -msgstr "từ chối đóng táºp tin không được theo vết tại `%s'" +msgstr "từ chối đóng táºp tin không được theo vết tại “%sâ€" #: merge-recursive.c:748 #, c-format msgid "cannot read object %s '%s'" -msgstr "không thể Ä‘á»c đối tượng %s `%s'" +msgstr "không thể Ä‘á»c đối tượng %s “%sâ€" #: merge-recursive.c:750 #, c-format msgid "blob expected for %s '%s'" -msgstr "đối tượng blob được mong đợi cho %s `%s'" +msgstr "đối tượng blob được mong đợi cho %s “%sâ€" #: merge-recursive.c:773 builtin/clone.c:302 #, c-format msgid "failed to open '%s'" -msgstr "gặp lá»—i khi mở `%s'" +msgstr "gặp lá»—i khi mở “%sâ€" #: merge-recursive.c:781 #, c-format msgid "failed to symlink '%s'" -msgstr "gặp lá»—i khi tạo liên kết tượng trÆ°ng (symlink) `%s'" +msgstr "gặp lá»—i khi tạo liên kết tượng trÆ°ng (symlink) “%sâ€" #: merge-recursive.c:784 #, c-format msgid "do not know what to do with %06o %s '%s'" -msgstr "không hiểu phải là m gì vá»›i %06o %s `%s'" +msgstr "không hiểu phải là m gì vá»›i %06o %s “%sâ€" #: merge-recursive.c:922 msgid "Failed to execute internal merge" @@ -591,7 +618,7 @@ msgstr "Äã bá» qua %s (đã có sẵn lần hòa trá»™n nà y)" msgid "Auto-merging %s" msgstr "Tá»±-Ä‘á»™ng-hòa-trá»™n %s" -#: merge-recursive.c:1633 git-submodule.sh:869 +#: merge-recursive.c:1633 git-submodule.sh:893 msgid "submodule" msgstr "mô-Ä‘un-con" @@ -661,9 +688,9 @@ msgstr "hòa trá»™n không trả vá» lần chuyển giao (commit) nà o" #: merge-recursive.c:1997 #, c-format msgid "Could not parse object '%s'" -msgstr "Không thể phân tÃch đối tượng `%s'" +msgstr "Không thể phân tÃch đối tượng “%sâ€" -#: merge-recursive.c:2009 builtin/merge.c:696 +#: merge-recursive.c:2009 builtin/merge.c:643 msgid "Unable to write index." msgstr "Không thể ghi bảng mục lục" @@ -692,22 +719,30 @@ msgstr " %s" #, c-format msgid "Your branch is ahead of '%s' by %d commit.\n" msgid_plural "Your branch is ahead of '%s' by %d commits.\n" -msgstr[0] "Nhánh của bạn là đầu của `%s' bởi %d lần chuyển giao (commit).\n" -msgstr[1] "Nhánh của bạn là đầu của `%s' bởi %d lần chuyển giao (commit).\n" +msgstr[0] "Nhánh của bạn là đầu của “%s†bởi %d lần chuyển giao (commit).\n" +msgstr[1] "Nhánh của bạn là đầu của “%s†bởi %d lần chuyển giao (commit).\n" + +#: remote.c:1637 +msgid " (use \"git push\" to publish your local commits)\n" +msgstr " (dùng \"git push\" để xuất bản các lần chuyển giao ná»™i bá»™ của bạn)\n" -#: remote.c:1638 +#: remote.c:1640 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" "Your branch is behind '%s' by %d commits, and can be fast-forwarded.\n" msgstr[0] "" -"Nhánh của bạn thì ở đằng sau `%s' bởi %d lần chuyển giao (commit), và có thể " +"Nhánh của bạn thì ở đằng sau “%s†bởi %d lần chuyển giao (commit), và có thể " "được fast-forward.\n" msgstr[1] "" -"Nhánh của bạn thì ở đằng sau `%s' bởi %d lần chuyển giao (commit), và có thể " +"Nhánh của bạn thì ở đằng sau “%s†bởi %d lần chuyển giao (commit), và có thể " "được fast-forward.\n" -#: remote.c:1646 +#: remote.c:1647 +msgid " (use \"git pull\" to update your local branch)\n" +msgstr " (dùng \"git pull\" để cáºp nháºt nhánh ná»™i bá»™ của bạn)\n" + +#: remote.c:1650 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -716,24 +751,30 @@ msgid_plural "" "Your branch and '%s' have diverged,\n" "and have %d and %d different commits each, respectively.\n" msgstr[0] "" -"Nhánh của bạn và `%s' bị phân kỳ,\n" +"Nhánh của bạn và “%s†bị phân kỳ,\n" "và có %d và %d lần chuyển giao (commit) khác nhau cho từng cái,\n" "tÆ°Æ¡ng ứng vá»›i má»—i lần.\n" msgstr[1] "" -"Your branch and `%s' have diverged,\n" +"Your branch and “%s†have diverged,\n" "and have %d and %d different commit each, respectively.\n" -#: sequencer.c:123 builtin/merge.c:864 builtin/merge.c:977 -#: builtin/merge.c:1087 builtin/merge.c:1097 +#: remote.c:1659 +msgid " (use \"git pull\" to merge the remote branch into yours)\n" +msgstr "" +" (dùng \"git pull\" để hòa trá»™n nhánh trên máy chủ và o trong nhánh của " +"bạn)\n" + +#: sequencer.c:123 builtin/merge.c:761 builtin/merge.c:874 builtin/merge.c:984 +#: builtin/merge.c:994 #, c-format msgid "Could not open '%s' for writing" -msgstr "Không thể mở %s' để ghi" +msgstr "Không thể mở “%s†để ghi" -#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:867 -#: builtin/merge.c:1089 builtin/merge.c:1102 +#: sequencer.c:125 builtin/merge.c:333 builtin/merge.c:764 builtin/merge.c:986 +#: builtin/merge.c:999 #, c-format msgid "Could not write to '%s'" -msgstr "Không thể ghi và o `%s'" +msgstr "Không thể ghi và o “%sâ€" #: sequencer.c:146 msgid "" @@ -741,7 +782,7 @@ msgid "" "with 'git add <paths>' or 'git rm <paths>'" msgstr "" "sau khi giải quyết các xung Ä‘á»™t, đánh dấu Ä‘Æ°á»ng dẫn đã sá»a\n" -"vá»›i lệnh `git add <Ä‘Æ°á»ng_dẫn>' hoặc `git rm <Ä‘Æ°á»ng_dẫn>'" +"vá»›i lệnh “git add <Ä‘Æ°á»ng_dẫn>†hoặc “git rm <Ä‘Æ°á»ng_dẫn>â€" #: sequencer.c:149 msgid "" @@ -750,8 +791,8 @@ msgid "" "and commit the result with 'git commit'" msgstr "" "sau khi giải quyết các xung Ä‘á»™t, đánh dấu Ä‘Æ°á»ng dẫn đã sá»a\n" -"vá»›i lệnh `git add <Ä‘Æ°á»ng_dẫn>' hoặc `git rm <Ä‘Æ°á»ng_dẫn>'\n" -"và chuyển giao (commit) kết quả bằng lệnh `git commit'" +"vá»›i lệnh “git add <Ä‘Æ°á»ng_dẫn>†hoặc “git rm <Ä‘Æ°á»ng_dẫn>â€\n" +"và chuyển giao (commit) kết quả bằng lệnh “git commitâ€" #: sequencer.c:162 sequencer.c:770 sequencer.c:853 #, c-format @@ -953,7 +994,7 @@ msgstr "kết thúc táºp tin Ä‘á»™t xuất" #: sequencer.c:827 #, c-format msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" -msgstr "táºp tin HEAD 'pre-cherry-pick' đã lÆ°u `%s' bị há»ng" +msgstr "táºp tin HEAD “pre-cherry-pick†đã lÆ°u “%s†bị há»ng" #: sequencer.c:850 #, c-format @@ -975,24 +1016,24 @@ msgstr "HEAD không chỉ đến má»™t nhánh nà o cả" #: sha1_name.c:1047 #, c-format msgid "No such branch: '%s'" -msgstr "Không có nhánh nà o nhÆ° thế: `%s'" +msgstr "Không có nhánh nà o nhÆ° thế: “%sâ€" #: sha1_name.c:1049 #, c-format msgid "No upstream configured for branch '%s'" -msgstr "Không có thượng nguồn (upstream) được cấu hình cho nhánh `%s'" +msgstr "Không có thượng nguồn (upstream) được cấu hình cho nhánh “%sâ€" #: sha1_name.c:1052 #, c-format msgid "Upstream branch '%s' not stored as a remote-tracking branch" msgstr "" -"Nhánh thượng nguồn (upstream) `%s' không được lÆ°u lại nhÆ° là má»™t nhánh " -"'remote-tracking'" +"Nhánh thượng nguồn (upstream) “%s†không được lÆ°u lại nhÆ° là má»™t nhánh " +"“remote-trackingâ€" #: wrapper.c:408 #, c-format msgid "unable to access '%s': %s" -msgstr "không thể truy cáºp `%s': %s" +msgstr "không thể truy cáºp “%sâ€: %s" #: wrapper.c:426 #, c-format @@ -1177,7 +1218,7 @@ msgstr " (dùng \"git commit\" để hoà n tất việc hòa trá»™n)" #: wt-status.c:804 msgid "You are in the middle of an am session." -msgstr "Bạn Ä‘ang ở giữa của má»™t phiên 'am'." +msgstr "Bạn Ä‘ang ở giữa của má»™t phiên “amâ€." #: wt-status.c:807 msgid "The current patch is empty." @@ -1379,34 +1420,34 @@ msgstr "git add [các-tùy-chá»n] [--] <mẫu-táºp-tin>..." msgid "unexpected diff status %c" msgstr "trạng thái lệnh diff không nhÆ° mong đợi %c" -#: builtin/add.c:67 builtin/commit.c:230 +#: builtin/add.c:67 builtin/commit.c:231 msgid "updating files failed" msgstr "Cáºp nháºt táºp tin gặp lá»—i" #: builtin/add.c:77 #, c-format msgid "remove '%s'\n" -msgstr "gỡ bá» `%s'\n" +msgstr "gỡ bỠ“%sâ€\n" #: builtin/add.c:176 #, c-format msgid "Path '%s' is in submodule '%.*s'" -msgstr "ÄÆ°á»ng dẫn `%s' thì ở trong mô-Ä‘un-con `%.*s'" +msgstr "ÄÆ°á»ng dẫn “%s†thì ở trong mô-Ä‘un-con “%.*sâ€" #: builtin/add.c:192 msgid "Unstaged changes after refreshing the index:" msgstr "" "Các thay đổi không được lÆ°u trạng thái sau khi là m tÆ°Æ¡i má»›i lại bảng mục lục:" -#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:186 +#: builtin/add.c:195 builtin/add.c:460 builtin/rm.c:275 #, c-format msgid "pathspec '%s' did not match any files" -msgstr "pathspec `%s' không khá»›p vá»›i bất kỳ táºp tin nà o" +msgstr "pathspec “%s†không khá»›p vá»›i bất kỳ táºp tin nà o" #: builtin/add.c:209 #, c-format msgid "'%s' is beyond a symbolic link" -msgstr "`%s' nằm ngoà i má»™t liên kết tượng trÆ°ng" +msgstr "“%s†nằm ngoà i má»™t liên kết tượng trÆ°ng" #: builtin/add.c:276 msgid "Could not read the index" @@ -1415,7 +1456,7 @@ msgstr "Không thể Ä‘á»c bảng mục lục" #: builtin/add.c:286 #, c-format msgid "Could not open '%s' for writing." -msgstr "Không thể mở `%s' để ghi" +msgstr "Không thể mở “%s†để ghi" #: builtin/add.c:290 msgid "Could not write patch" @@ -1424,7 +1465,7 @@ msgstr "Không thể ghi ra miếng vá" #: builtin/add.c:295 #, c-format msgid "Could not stat '%s'" -msgstr "không thể lấy trạng thái vá» `%s'" +msgstr "không thể lấy trạng thái vỠ“%sâ€" #: builtin/add.c:297 msgid "Empty patch. Aborted." @@ -1433,7 +1474,7 @@ msgstr "Miếng vá trống rá»—ng. Äã bá» qua." #: builtin/add.c:303 #, c-format msgid "Could not apply '%s'" -msgstr "Không thể apply (áp dụng miếng vá) `%s'" +msgstr "Không thể apply (áp dụng miếng vá) “%sâ€" #: builtin/add.c:313 msgid "The following paths are ignored by one of your .gitignore files:\n" @@ -1443,12 +1484,12 @@ msgstr "" #: builtin/add.c:319 builtin/clean.c:52 builtin/fetch.c:78 builtin/mv.c:63 #: builtin/prune-packed.c:76 builtin/push.c:388 builtin/remote.c:1253 -#: builtin/rm.c:133 +#: builtin/rm.c:206 msgid "dry run" msgstr "chạy thá»" -#: builtin/add.c:320 builtin/apply.c:4354 builtin/commit.c:1154 -#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1477 +#: builtin/add.c:320 builtin/apply.c:4354 builtin/commit.c:1160 +#: builtin/count-objects.c:82 builtin/fsck.c:613 builtin/log.c:1483 #: builtin/mv.c:62 builtin/read-tree.c:112 msgid "be verbose" msgstr "chi tiết" @@ -1457,9 +1498,9 @@ msgstr "chi tiết" msgid "interactive picking" msgstr "sá»a bằng cách tÆ°Æ¡ng tác" -#: builtin/add.c:323 builtin/checkout.c:1028 builtin/reset.c:248 +#: builtin/add.c:323 builtin/checkout.c:1031 builtin/reset.c:248 msgid "select hunks interactively" -msgstr "chá»n `hunks' má»™t cách tÆ°Æ¡ng tác" +msgstr "chá»n “hunks†má»™t cách tÆ°Æ¡ng tác" #: builtin/add.c:324 msgid "edit current diff and apply" @@ -1525,14 +1566,14 @@ msgstr "Không có gì được chỉ ra, không có gì được thêm và o.\n" #: builtin/add.c:415 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" -msgstr "Có lẽ bạn muốn là `git add .' phải không?\n" +msgstr "Có lẽ bạn muốn là “git add .†phải không?\n" -#: builtin/add.c:421 builtin/clean.c:95 builtin/commit.c:290 builtin/mv.c:82 -#: builtin/rm.c:162 +#: builtin/add.c:421 builtin/clean.c:95 builtin/commit.c:291 builtin/mv.c:82 +#: builtin/rm.c:235 msgid "index file corrupt" msgstr "táºp tin ghi bảng mục lục bị há»ng" -#: builtin/add.c:481 builtin/apply.c:4450 builtin/mv.c:229 builtin/rm.c:260 +#: builtin/add.c:481 builtin/apply.c:4450 builtin/mv.c:229 builtin/rm.c:370 msgid "Unable to write new index file" msgstr "Không thể ghi táºp tin lÆ°u bảng mục lục má»›i" @@ -1543,12 +1584,12 @@ msgstr "git apply [các-tùy-chá»n] [<miếng-vá>...]" #: builtin/apply.c:110 #, c-format msgid "unrecognized whitespace option '%s'" -msgstr "không nháºn ra tùy chá»n vá» khoảng trắng `%s'" +msgstr "không nháºn ra tùy chá»n vá» khoảng trắng “%sâ€" #: builtin/apply.c:125 #, c-format msgid "unrecognized whitespace ignore option '%s'" -msgstr "không nháºn ra tùy chá»n bá» qua khoảng trắng `%s'" +msgstr "không nháºn ra tùy chá»n bá» qua khoảng trắng “%sâ€" #: builtin/apply.c:823 #, c-format @@ -1654,7 +1695,7 @@ msgstr "miếng vá định dạng nhị phân không được nháºn ra tại d #: builtin/apply.c:1984 #, c-format msgid "patch with only garbage at line %d" -msgstr "vá chỉ vá»›i 'garbage' tại dòng %d" +msgstr "vá chỉ vá»›i “garbage†tại dòng %d" #: builtin/apply.c:2074 #, c-format @@ -1673,7 +1714,7 @@ msgstr "ôi?" #: builtin/apply.c:2671 #, c-format msgid "invalid start of line: '%c'" -msgstr "sai khởi đầu dòng: `%c'" +msgstr "sai khởi đầu dòng: “%câ€" #: builtin/apply.c:2789 #, c-format @@ -1699,18 +1740,18 @@ msgstr "" #: builtin/apply.c:2826 #, c-format msgid "missing binary patch data for '%s'" -msgstr "thiếu dữ liệu của miếng vá định dạng nhị phân cho `%s'" +msgstr "thiếu dữ liệu của miếng vá định dạng nhị phân cho “%sâ€" #: builtin/apply.c:2929 #, c-format msgid "binary patch does not apply to '%s'" -msgstr "miếng vá định dạng nhị phân không được áp dụng cho `%s'" +msgstr "miếng vá định dạng nhị phân không được áp dụng cho “%sâ€" #: builtin/apply.c:2935 #, c-format msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" msgstr "" -"vá nhị phân cho `%s' tạo ra kết quả không chÃnh xác (mong chá» %s, lại nháºn " +"vá nhị phân cho “%s†tạo ra kết quả không chÃnh xác (mong chá» %s, lại nháºn " "%s)" #: builtin/apply.c:2956 @@ -1795,7 +1836,7 @@ msgstr "Äang kiểm tra miếng vá %s..." #: builtin/apply.c:3624 builtin/checkout.c:215 builtin/reset.c:158 #, c-format msgid "make_cache_entry failed for path '%s'" -msgstr "make_cache_entry gặp lá»—i đối vá»›i Ä‘Æ°á»ng dẫn `%s'" +msgstr "make_cache_entry gặp lá»—i đối vá»›i Ä‘Æ°á»ng dẫn “%sâ€" #: builtin/apply.c:3767 #, c-format @@ -1815,7 +1856,7 @@ msgstr "không thể lấy trạng thái vá» táºp tin %s má»›i hÆ¡n đã Ä‘Æ°á #: builtin/apply.c:3804 #, c-format msgid "unable to create backing store for newly created file %s" -msgstr "không thể tạo 'backing store' cho táºp tin được tạo má»›i hÆ¡n %s" +msgstr "không thể tạo “backing store†cho táºp tin được tạo má»›i hÆ¡n %s" #: builtin/apply.c:3807 builtin/apply.c:3915 #, c-format @@ -1825,12 +1866,12 @@ msgstr "không thể thêm mục nhá»› tạm cho %s" #: builtin/apply.c:3840 #, c-format msgid "closing file '%s'" -msgstr "Ä‘ang đóng táºp tin `%s'" +msgstr "Ä‘ang đóng táºp tin “%sâ€" #: builtin/apply.c:3889 #, c-format msgid "unable to write file '%s' mode %o" -msgstr "không thể ghi và o táºp tin `%s' chế Ä‘á»™ (mode) %o" +msgstr "không thể ghi và o táºp tin “%s†chế Ä‘á»™ (mode) %o" #: builtin/apply.c:3976 #, c-format @@ -2005,7 +2046,7 @@ msgstr "--cached ở ngoà i má»™t kho chứa" #: builtin/apply.c:4411 #, c-format msgid "can't open patch '%s'" -msgstr "không thể mở miếng vá `%s'" +msgstr "không thể mở miếng vá “%sâ€" #: builtin/apply.c:4425 #, c-format @@ -2024,7 +2065,7 @@ msgstr[1] "%d dòng thêm khoảng trắng lá»—i." #: builtin/archive.c:17 #, c-format msgid "could not create archive file '%s'" -msgstr "không thể tạo táºp tin kho (lÆ°u trữ, nén) `%s'" +msgstr "không thể tạo táºp tin kho (lÆ°u trữ, nén) “%sâ€" #: builtin/archive.c:20 msgid "could not redirect output" @@ -2062,7 +2103,7 @@ msgstr "git bisect--helper --next-all [--no-checkout]" #: builtin/bisect--helper.c:17 msgid "perform 'git bisect next'" -msgstr "thá»±c hiện `git bisect next'" +msgstr "thá»±c hiện “git bisect nextâ€" #: builtin/bisect--helper.c:19 msgid "update BISECT_HEAD instead of checking out the current commit" @@ -2078,97 +2119,97 @@ msgstr "git blame [các-tùy-chá»n] [rev-opts] [rev] [--] táºp-tin" msgid "[rev-opts] are documented in git-rev-list(1)" msgstr "[rev-opts] được mô tả trong git-rev-list(1)" -#: builtin/blame.c:2373 +#: builtin/blame.c:2374 msgid "Show blame entries as we find them, incrementally" -msgstr "Hiển thị các mục `blame' nhÆ° là chúng ta thấy chúng, tăng dần" +msgstr "Hiển thị các mục “blame†nhÆ° là chúng ta thấy chúng, tăng dần" -#: builtin/blame.c:2374 +#: builtin/blame.c:2375 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "" -"Hiển thị SHA-1 trống cho những lần chuyển giao biên giá»›i (Mặc định: off)" +"Hiển thị SHA-1 trắng cho những lần chuyển giao biên giá»›i (Mặc định: off)" -#: builtin/blame.c:2375 +#: builtin/blame.c:2376 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "Không coi các lần chuyển giao gốc là giá»›i hạn (Mặc định: off)" -#: builtin/blame.c:2376 +#: builtin/blame.c:2377 msgid "Show work cost statistics" msgstr "Hiển thị thống kê công sức là m việc" -#: builtin/blame.c:2377 +#: builtin/blame.c:2378 msgid "Show output score for blame entries" -msgstr "Hiển thị kết xuất Ä‘iểm số có các mục tin `blame'" +msgstr "Hiển thị kết xuất Ä‘iểm số có các mục tin “blameâ€" -#: builtin/blame.c:2378 +#: builtin/blame.c:2379 msgid "Show original filename (Default: auto)" msgstr "Hiển thị tên táºp tin gốc (Mặc định: auto)" -#: builtin/blame.c:2379 +#: builtin/blame.c:2380 msgid "Show original linenumber (Default: off)" msgstr "Hiển thị số dòng gốc (Mặc định: off)" -#: builtin/blame.c:2380 +#: builtin/blame.c:2381 msgid "Show in a format designed for machine consumption" msgstr "Hiển thị ở định dạng đã thiết kế cho sá»± tiêu dùng bằng máy" -#: builtin/blame.c:2381 +#: builtin/blame.c:2382 msgid "Show porcelain format with per-line commit information" -msgstr "Hiển thị định dạng 'porcelain' vá»›i thông tin chuyển giao má»—i dòng" +msgstr "Hiển thị định dạng “porcelain†vá»›i thông tin chuyển giao má»—i dòng" -#: builtin/blame.c:2382 +#: builtin/blame.c:2383 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "Dùng cùng chế Ä‘á»™ xuất ra vóigit-annotate (Mặc định: off)" -#: builtin/blame.c:2383 +#: builtin/blame.c:2384 msgid "Show raw timestamp (Default: off)" msgstr "Hiển thị dấu vết thá»i gian dạng thô (Mặc định: off)" -#: builtin/blame.c:2384 +#: builtin/blame.c:2385 msgid "Show long commit SHA1 (Default: off)" msgstr "Hiển thị SHA1 của lần chuyển giao (commit) dạng dà i (Mặc định: off)" -#: builtin/blame.c:2385 +#: builtin/blame.c:2386 msgid "Suppress author name and timestamp (Default: off)" msgstr "Không hiển thị tên tác giả và dấu vết thá»i gian (Mặc định: off)" -#: builtin/blame.c:2386 +#: builtin/blame.c:2387 msgid "Show author email instead of name (Default: off)" msgstr "Hiển thị thÆ° Ä‘iện tá» của tác giả thay vì tên (Mặc định: off)" -#: builtin/blame.c:2387 +#: builtin/blame.c:2388 msgid "Ignore whitespace differences" msgstr "Bá» qua các khác biệt do khoảng trắng gây ra" -#: builtin/blame.c:2388 +#: builtin/blame.c:2389 msgid "Spend extra cycles to find better match" msgstr "Tiêu thụ thêm năng tà i nguyên máy móc để tìm kiếm tốt hÆ¡n nữa" -#: builtin/blame.c:2389 +#: builtin/blame.c:2390 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "" -"Sá» dụng Ä‘iểm xét duyệt (revision) từ <táºp tin> thay vì gá»i `git-rev-list'" +"Sá» dụng Ä‘iểm xét duyệt (revision) từ <táºp tin> thay vì gá»i “git-rev-listâ€" -#: builtin/blame.c:2390 +#: builtin/blame.c:2391 msgid "Use <file>'s contents as the final image" msgstr "Sá» dụng ná»™i dung của <táºp tin> nhÆ° là ảnh cuối cùng" -#: builtin/blame.c:2391 builtin/blame.c:2392 +#: builtin/blame.c:2392 builtin/blame.c:2393 msgid "score" msgstr "Ä‘iểm số" -#: builtin/blame.c:2391 +#: builtin/blame.c:2392 msgid "Find line copies within and across files" msgstr "Tìm các bản sao chép dòng trong và ngang qua táºp tin" -#: builtin/blame.c:2392 +#: builtin/blame.c:2393 msgid "Find line movements within and across files" msgstr "Tìm các di chuyển dòng trong và ngang qua táºp tin" -#: builtin/blame.c:2393 +#: builtin/blame.c:2394 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2393 +#: builtin/blame.c:2394 msgid "Process only line range n,m, counting from 1" msgstr "Xá» lý chỉ dòng vùng n,m, tÃnh từ 1" @@ -2194,8 +2235,8 @@ msgid "" "deleting branch '%s' that has been merged to\n" " '%s', but not yet merged to HEAD." msgstr "" -"Ä‘ang xóa nhánh `%s' mà nó lại đã được hòa trá»™n và o\n" -" `%s', nhÆ°ng vẫn chÆ°a được hòa trá»™n và o HEAD." +"Ä‘ang xóa nhánh “%s†mà nó lại đã được hòa trá»™n và o\n" +" “%sâ€, nhÆ°ng vẫn chÆ°a được hòa trá»™n và o HEAD." #: builtin/branch.c:149 #, c-format @@ -2203,269 +2244,269 @@ msgid "" "not deleting branch '%s' that is not yet merged to\n" " '%s', even though it is merged to HEAD." msgstr "" -"không xóa nhánh `%s' cái mà chÆ°a được hòa trá»™ng và o\n" -" `%s', cho dù là nó đã được hòa trá»™n và o HEAD." +"không xóa nhánh “%s†cái mà chÆ°a được hòa trá»™n và o\n" +" “%sâ€, cho dù là nó đã được hòa trá»™n và o HEAD." + +#: builtin/branch.c:163 +#, c-format +msgid "Couldn't look up commit object for '%s'" +msgstr "Không thể tìm kiếm đối tượng chuyển giao (commit) cho “%sâ€" + +#: builtin/branch.c:167 +#, c-format +msgid "" +"The branch '%s' is not fully merged.\n" +"If you are sure you want to delete it, run 'git branch -D %s'." +msgstr "" +"Nhánh “%s†không được trá»™n má»™t cách đầy đủ.\n" +"Nếu bạn thá»±c sá»± muốn xóa nó, thì chạy lệnh “git branch -D %sâ€." -#: builtin/branch.c:181 +#: builtin/branch.c:180 +msgid "Update of config-file failed" +msgstr "Cáºp nháºt táºp tin cấu hình gặp lá»—i" + +#: builtin/branch.c:208 msgid "cannot use -a with -d" msgstr "không thể dùng tùy chá»n -a vá»›i -d" -#: builtin/branch.c:187 +#: builtin/branch.c:214 msgid "Couldn't look up commit object for HEAD" msgstr "Không thể tìm kiếm đối tượng chuyển giao (commit) cho HEAD" -#: builtin/branch.c:192 +#: builtin/branch.c:222 #, c-format msgid "Cannot delete the branch '%s' which you are currently on." -msgstr "Không thể xóa nhánh `%s' cái mà bạn hiện nay Ä‘ang ở." +msgstr "Không thể xóa nhánh “%s†cái mà bạn hiện nay Ä‘ang ở." -#: builtin/branch.c:203 +#: builtin/branch.c:235 #, c-format msgid "remote branch '%s' not found." -msgstr "không tìm thấy nhánh máy chủ `%s'." +msgstr "không tìm thấy nhánh máy chủ “%sâ€." -#: builtin/branch.c:204 +#: builtin/branch.c:236 #, c-format msgid "branch '%s' not found." -msgstr "không tìm thấy nhánh `%s'." +msgstr "không tìm thấy nhánh “%sâ€." -#: builtin/branch.c:211 -#, c-format -msgid "Couldn't look up commit object for '%s'" -msgstr "Không thể tìm kiếm đối tượng chuyển giao (commit) cho `%s'" - -#: builtin/branch.c:217 -#, c-format -msgid "" -"The branch '%s' is not fully merged.\n" -"If you are sure you want to delete it, run 'git branch -D %s'." -msgstr "" -"Nhánh `%s' không được trá»™n má»™t cách đầy đủ.\n" -"Nếu bạn thá»±c sá»± muốn xóa nó, thì chạy lệnh `git branch -D %s'." - -#: builtin/branch.c:226 +#: builtin/branch.c:250 #, c-format msgid "Error deleting remote branch '%s'" -msgstr "Gặp lá»—i khi Ä‘ang xóa nhánh máy chủ `%s'" +msgstr "Gặp lá»—i khi Ä‘ang xóa nhánh máy chủ “%sâ€" -#: builtin/branch.c:227 +#: builtin/branch.c:251 #, c-format msgid "Error deleting branch '%s'" -msgstr "Lá»—i khi xoá bá» nhánh `%s'" +msgstr "Lá»—i khi xoá bá» nhánh “%sâ€" -#: builtin/branch.c:234 +#: builtin/branch.c:258 #, c-format msgid "Deleted remote branch %s (was %s).\n" msgstr "Nhánh máy chủ \"%s\" đã bị xóa (từng là %s).\n" -#: builtin/branch.c:235 +#: builtin/branch.c:259 #, c-format msgid "Deleted branch %s (was %s).\n" -msgstr "Nhánh `%s' đã bị xóa (từng là %s)\n" +msgstr "Nhánh “%s†đã bị xóa (từng là %s)\n" -#: builtin/branch.c:240 -msgid "Update of config-file failed" -msgstr "Cáºp nháºt táºp tin cấu hình gặp lá»—i" - -#: builtin/branch.c:338 +#: builtin/branch.c:361 #, c-format msgid "branch '%s' does not point at a commit" -msgstr "nhánh `%s' không chỉ đến má»™t lần chuyển giao (commit) nà o cả" +msgstr "nhánh “%s†không chỉ đến má»™t lần chuyển giao (commit) nà o cả" -#: builtin/branch.c:410 +#: builtin/branch.c:433 #, c-format msgid "[%s: behind %d]" msgstr "[%s: đằng sau %d]" -#: builtin/branch.c:412 +#: builtin/branch.c:435 #, c-format msgid "[behind %d]" msgstr "[đằng sau %d]" -#: builtin/branch.c:416 +#: builtin/branch.c:439 #, c-format msgid "[%s: ahead %d]" msgstr "[%s: phÃa trÆ°á»›c %d]" -#: builtin/branch.c:418 +#: builtin/branch.c:441 #, c-format msgid "[ahead %d]" msgstr "[phÃa trÆ°á»›c %d]" -#: builtin/branch.c:421 +#: builtin/branch.c:444 #, c-format msgid "[%s: ahead %d, behind %d]" msgstr "[%s: trÆ°á»›c %d, sau %d]" -#: builtin/branch.c:424 +#: builtin/branch.c:447 #, c-format msgid "[ahead %d, behind %d]" msgstr "[trÆ°á»›c %d, sau %d]" -#: builtin/branch.c:537 +#: builtin/branch.c:560 msgid "(no branch)" msgstr "(không nhánh)" -#: builtin/branch.c:602 +#: builtin/branch.c:625 msgid "some refs could not be read" msgstr "má»™t số tham chiếu đã không thể Ä‘á»c được" -#: builtin/branch.c:615 +#: builtin/branch.c:638 msgid "cannot rename the current branch while not on any." msgstr "không thể đổi tên nhánh hiện hà nh trong khi nó chẳng ở đâu cả." -#: builtin/branch.c:625 +#: builtin/branch.c:648 #, c-format msgid "Invalid branch name: '%s'" -msgstr "Sai tên nhánh: `%s'" +msgstr "Sai tên nhánh: “%sâ€" -#: builtin/branch.c:640 +#: builtin/branch.c:663 msgid "Branch rename failed" msgstr "Äổi tên nhánh gặp lá»—i" -#: builtin/branch.c:644 +#: builtin/branch.c:667 #, c-format msgid "Renamed a misnamed branch '%s' away" -msgstr "Äã đổi tên nhánh khuyết danh `%s' Ä‘i" +msgstr "Äã đổi tên nhánh khuyết danh “%s†đi" -#: builtin/branch.c:648 +#: builtin/branch.c:671 #, c-format msgid "Branch renamed to %s, but HEAD is not updated!" msgstr "Nhánh bị đổi tên thà nh %s, nhÆ°ng HEAD lại không được cáºp nháºt!" -#: builtin/branch.c:655 +#: builtin/branch.c:678 msgid "Branch is renamed, but update of config-file failed" msgstr "Nhánh bị đổi tên, nhÆ°ng cáºp nháºt táºp tin cấu hình gặp lá»—i" -#: builtin/branch.c:670 +#: builtin/branch.c:693 #, c-format msgid "malformed object name %s" msgstr "tên đối tượng dị hình %s" -#: builtin/branch.c:694 +#: builtin/branch.c:717 #, c-format msgid "could not write branch description template: %s" msgstr "không thể ghi và o mẫu mô tả nhánh: %s" -#: builtin/branch.c:724 +#: builtin/branch.c:747 msgid "Generic options" msgstr "Tùy chá»n chung" -#: builtin/branch.c:726 +#: builtin/branch.c:749 msgid "show hash and subject, give twice for upstream branch" msgstr "hiển thị mã băm và chủ Ä‘á», Ä‘Æ°a ra hai lần cho nhánh thượng nguồn" -#: builtin/branch.c:727 +#: builtin/branch.c:750 msgid "suppress informational messages" msgstr "Thu hồi các thông Ä‘iệp thông tin" -#: builtin/branch.c:728 +#: builtin/branch.c:751 msgid "set up tracking mode (see git-pull(1))" msgstr "cà i đặt chế Ä‘á»™ theo vết (xem git-pull(1))" -#: builtin/branch.c:730 +#: builtin/branch.c:753 msgid "change upstream info" msgstr "thay đổi thông tin thượng nguồn (upstream)" -#: builtin/branch.c:734 +#: builtin/branch.c:757 msgid "use colored output" msgstr "sá» dụng kết xuất có tô mà u" -#: builtin/branch.c:735 +#: builtin/branch.c:758 msgid "act on remote-tracking branches" -msgstr "thao tác trên nhánh `remote-tracking'" +msgstr "thao tác trên nhánh “remote-trackingâ€" -#: builtin/branch.c:738 builtin/branch.c:744 builtin/branch.c:765 -#: builtin/branch.c:771 builtin/commit.c:1362 builtin/commit.c:1363 -#: builtin/commit.c:1364 builtin/commit.c:1365 builtin/tag.c:470 +#: builtin/branch.c:761 builtin/branch.c:767 builtin/branch.c:788 +#: builtin/branch.c:794 builtin/commit.c:1376 builtin/commit.c:1377 +#: builtin/commit.c:1378 builtin/commit.c:1379 builtin/tag.c:470 msgid "commit" msgstr "commit" -#: builtin/branch.c:739 builtin/branch.c:745 +#: builtin/branch.c:762 builtin/branch.c:768 msgid "print only branches that contain the commit" msgstr "chỉ hiển thị những nhánh mà nó chứa lần chuyển giao" -#: builtin/branch.c:751 +#: builtin/branch.c:774 msgid "Specific git-branch actions:" msgstr "Hà nh Ä‘á»™ng git-branch:" -#: builtin/branch.c:752 +#: builtin/branch.c:775 msgid "list both remote-tracking and local branches" -msgstr "liệt kê cả nhánh `remote-tracking' và ná»™i bá»™" +msgstr "liệt kê cả nhánh “remote-tracking†và ná»™i bá»™" -#: builtin/branch.c:754 +#: builtin/branch.c:777 msgid "delete fully merged branch" msgstr "xóa má»™t cách đầy đủ nhánh đã hòa trá»™n" -#: builtin/branch.c:755 +#: builtin/branch.c:778 msgid "delete branch (even if not merged)" msgstr "xoá nhánh (cho dù là chÆ°a được hòa trá»™n)" -#: builtin/branch.c:756 +#: builtin/branch.c:779 msgid "move/rename a branch and its reflog" msgstr "di chuyển hay đổi tên má»™t nhánh và reflog của nó" -#: builtin/branch.c:757 +#: builtin/branch.c:780 msgid "move/rename a branch, even if target exists" -msgstr "di chuyể hoặc đổi tên má»™t nhánh, tháºm chà cả khi Ä‘Ãch đã có sẵn" +msgstr "di chuyển hoặc đổi tên má»™t nhánh, tháºm chà cả khi Ä‘Ãch đã có sẵn" -#: builtin/branch.c:758 +#: builtin/branch.c:781 msgid "list branch names" msgstr "liệt kê các tên nhánh" -#: builtin/branch.c:759 +#: builtin/branch.c:782 msgid "create the branch's reflog" msgstr "tạo reflog của nhánh" -#: builtin/branch.c:761 +#: builtin/branch.c:784 msgid "edit the description for the branch" msgstr "sá»a mô tả cho nhánh" -#: builtin/branch.c:762 +#: builtin/branch.c:785 msgid "force creation (when already exists)" msgstr "ép buá»™c tạo (khi đã sẵn tồn tại rồi)" -#: builtin/branch.c:765 +#: builtin/branch.c:788 msgid "print only not merged branches" msgstr "chỉ hiển thị các nhánh chÆ°a được hòa trá»™n" -#: builtin/branch.c:771 +#: builtin/branch.c:794 msgid "print only merged branches" msgstr "chỉ hiển thị các nhánh được hòa trá»™n" -#: builtin/branch.c:775 +#: builtin/branch.c:798 msgid "list branches in columns" msgstr "liệt kê các nhánh trong các cá»™t" -#: builtin/branch.c:788 +#: builtin/branch.c:811 msgid "Failed to resolve HEAD as a valid ref." msgstr "Gặp lá»—i khi giải quyết HEAD nhÆ° là má»™t tham chiếu (ref) hợp lệ." -#: builtin/branch.c:793 builtin/clone.c:561 +#: builtin/branch.c:816 builtin/clone.c:561 msgid "HEAD not found below refs/heads!" msgstr "không tìm thấy HEAD ở dÆ°á»›i refs/heads!" -#: builtin/branch.c:813 +#: builtin/branch.c:836 msgid "--column and --verbose are incompatible" msgstr "--column và --verbose xung khắc nhau" -#: builtin/branch.c:864 +#: builtin/branch.c:887 #, c-format msgid "branch '%s' does not exist" -msgstr "nhánh `%s' chÆ°a sẵn có" +msgstr "nhánh “%s†chÆ°a sẵn có" -#: builtin/branch.c:876 +#: builtin/branch.c:899 #, c-format msgid "Branch '%s' has no upstream information" -msgstr "Nhánh `%s' không có thông tin thượng nguồn (upstream)" +msgstr "Nhánh “%s†không có thông tin thượng nguồn (upstream)" -#: builtin/branch.c:891 +#: builtin/branch.c:914 msgid "-a and -r options to 'git branch' do not make sense with a branch name" msgstr "" -"hai tùy chá»n -a và -r áp dụng cho lệnh `git branch' không hợp lý đối vá»›i tên " +"hai tùy chá»n -a và -r áp dụng cho lệnh “git branch†không hợp lý đối vá»›i tên " "nhánh" -#: builtin/branch.c:894 +#: builtin/branch.c:917 #, c-format msgid "" "The --set-upstream flag is deprecated and will be removed. Consider using --" @@ -2474,7 +2515,7 @@ msgstr "" "Cá» --set-upstream bị phản đối và sẽ bị xóa bá». Nên dùng --track hoặc --set-" "upstream-to\n" -#: builtin/branch.c:911 +#: builtin/branch.c:934 #, c-format msgid "" "\n" @@ -2482,15 +2523,15 @@ msgid "" "\n" msgstr "" "\n" -"Nếu bạn muốn `%s' theo dõi `%s', thá»±c hiện lệnh sau:\n" +"Nếu bạn muốn “%s†theo dõi “%sâ€, thá»±c hiện lệnh sau:\n" "\n" -#: builtin/branch.c:912 +#: builtin/branch.c:935 #, c-format msgid " git branch -d %s\n" msgstr " git branch -d %s\n" -#: builtin/branch.c:913 +#: builtin/branch.c:936 #, c-format msgid " git branch --set-upstream-to %s\n" msgstr " git branch --set-upstream-to %s\n" @@ -2498,7 +2539,7 @@ msgstr " git branch --set-upstream-to %s\n" #: builtin/bundle.c:47 #, c-format msgid "%s is okay\n" -msgstr "`%s' tốt\n" +msgstr "“%s†tốt\n" #: builtin/bundle.c:56 msgid "Need a repository to create a bundle." @@ -2630,49 +2671,49 @@ msgstr "git checkout [các-tùy-chá»n] [<nhánh>] -- <táºp-tin>..." #: builtin/checkout.c:116 builtin/checkout.c:149 #, c-format msgid "path '%s' does not have our version" -msgstr "Ä‘Æ°á»ng dẫn `%s' không có các phiên bản của chúng ta" +msgstr "Ä‘Æ°á»ng dẫn “%s†không có các phiên bản của chúng ta" #: builtin/checkout.c:118 builtin/checkout.c:151 #, c-format msgid "path '%s' does not have their version" -msgstr "Ä‘Æ°á»ng dẫn `%s' không có các phiên bản của chúng" +msgstr "Ä‘Æ°á»ng dẫn “%s†không có các phiên bản của chúng" #: builtin/checkout.c:134 #, c-format msgid "path '%s' does not have all necessary versions" -msgstr "Ä‘Æ°á»ng dẫn `%s' không có tất cả các phiên bản cần thiết" +msgstr "Ä‘Æ°á»ng dẫn “%s†không có tất cả các phiên bản cần thiết" #: builtin/checkout.c:178 #, c-format msgid "path '%s' does not have necessary versions" -msgstr "Ä‘Æ°á»ng dẫn `%s' không có các phiên bản cần thiết" +msgstr "Ä‘Æ°á»ng dẫn “%s†không có các phiên bản cần thiết" #: builtin/checkout.c:195 #, c-format msgid "path '%s': cannot merge" -msgstr "Ä‘Æ°á»ng dẫn `%s': không thể hòa trá»™n" +msgstr "Ä‘Æ°á»ng dẫn “%sâ€: không thể hòa trá»™n" #: builtin/checkout.c:212 #, c-format msgid "Unable to add merge result for '%s'" -msgstr "Không thể thêm kết quả hòa trá»™n cho `%s'" +msgstr "Không thể thêm kết quả hòa trá»™n cho “%sâ€" #: builtin/checkout.c:236 builtin/checkout.c:239 builtin/checkout.c:242 #: builtin/checkout.c:245 #, c-format msgid "'%s' cannot be used with updating paths" -msgstr "`%s' không thể được sá» dụng vá»›i các Ä‘Æ°á»ng dẫn cáºp nháºt" +msgstr "“%s†không thể được sá» dụng vá»›i các Ä‘Æ°á»ng dẫn cáºp nháºt" #: builtin/checkout.c:248 builtin/checkout.c:251 #, c-format msgid "'%s' cannot be used with %s" -msgstr "`%s' không thể được sá» dụng vá»›i %s" +msgstr "“%s†không thể được sá» dụng vá»›i %s" #: builtin/checkout.c:254 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "" -"Không thể cáºp nháºt các Ä‘Æ°á»ng dẫn và chuyển đến nhánh `%s' cùng má»™t lúc." +"Không thể cáºp nháºt các Ä‘Æ°á»ng dẫn và chuyển đến nhánh “%s†cùng má»™t lúc." #: builtin/checkout.c:265 builtin/checkout.c:426 msgid "corrupt index file" @@ -2681,12 +2722,7 @@ msgstr "táºp tin ghi bảng mục lục bị há»ng" #: builtin/checkout.c:295 builtin/checkout.c:302 #, c-format msgid "path '%s' is unmerged" -msgstr "Ä‘Æ°á»ng dẫn `%s' không được hòa trá»™n" - -#: builtin/checkout.c:333 builtin/checkout.c:534 builtin/clone.c:586 -#: builtin/merge.c:811 -msgid "unable to write new index file" -msgstr "không thể ghi táºp tin lÆ°u bảng mục lục má»›i" +msgstr "Ä‘Æ°á»ng dẫn “%s†không được hòa trá»™n" #: builtin/checkout.c:448 msgid "you need to resolve your current index first" @@ -2695,7 +2731,7 @@ msgstr "bạn cần phải giải quyết bảng mục lục hiện tại của #: builtin/checkout.c:569 #, c-format msgid "Can not do reflog for '%s'\n" -msgstr "Không thể thá»±c hiện reflog cho `%s'\n" +msgstr "Không thể thá»±c hiện reflog cho “%sâ€\n" #: builtin/checkout.c:602 msgid "HEAD is now at" @@ -2704,27 +2740,27 @@ msgstr "HEAD hiện giá» tại" #: builtin/checkout.c:609 #, c-format msgid "Reset branch '%s'\n" -msgstr "Äặt lại nhánh `%s'\n" +msgstr "Äặt lại nhánh “%sâ€\n" #: builtin/checkout.c:612 #, c-format msgid "Already on '%s'\n" -msgstr "Äã sẵn sà ng trên `%s'\n" +msgstr "Äã sẵn sà ng trên “%sâ€\n" #: builtin/checkout.c:616 #, c-format msgid "Switched to and reset branch '%s'\n" -msgstr "Äã chuyển tá»›i và reset nhánh `%s'\n" +msgstr "Äã chuyển tá»›i và reset nhánh “%sâ€\n" -#: builtin/checkout.c:618 +#: builtin/checkout.c:618 builtin/checkout.c:955 #, c-format msgid "Switched to a new branch '%s'\n" -msgstr "Äã chuyển đến nhánh má»›i `%s'\n" +msgstr "Äã chuyển đến nhánh má»›i “%sâ€\n" #: builtin/checkout.c:620 #, c-format msgid "Switched to branch '%s'\n" -msgstr "Äã chuyển đến nhánh `%s'\n" +msgstr "Äã chuyển đến nhánh “%sâ€\n" #: builtin/checkout.c:676 #, c-format @@ -2797,129 +2833,129 @@ msgstr "tham chiếu sai: %s" msgid "reference is not a tree: %s" msgstr "tham chiếu không phải là má»™t cây (tree):%s" -#: builtin/checkout.c:961 +#: builtin/checkout.c:964 msgid "paths cannot be used with switching branches" msgstr "các Ä‘Æ°á»ng dẫn không thể dùng cùng vá»›i các nhánh chuyển" -#: builtin/checkout.c:964 builtin/checkout.c:968 +#: builtin/checkout.c:967 builtin/checkout.c:971 #, c-format msgid "'%s' cannot be used with switching branches" -msgstr "`%s' không thể được sá» dụng vá»›i các nhánh chuyển" +msgstr "“%s†không thể được sá» dụng vá»›i các nhánh chuyển" -#: builtin/checkout.c:972 builtin/checkout.c:975 builtin/checkout.c:980 -#: builtin/checkout.c:983 +#: builtin/checkout.c:975 builtin/checkout.c:978 builtin/checkout.c:983 +#: builtin/checkout.c:986 #, c-format msgid "'%s' cannot be used with '%s'" -msgstr "`%s' không thể được sá» dụng vá»›i `%s'" +msgstr "“%s†không thể được sá» dụng vá»›i “%sâ€" -#: builtin/checkout.c:988 +#: builtin/checkout.c:991 #, c-format msgid "Cannot switch branch to a non-commit '%s'" -msgstr "Không thể chuyển nhánh đến má»™t non-commit `%s'" +msgstr "Không thể chuyển nhánh đến má»™t non-commit “%sâ€" -#: builtin/checkout.c:1009 builtin/gc.c:177 +#: builtin/checkout.c:1012 builtin/gc.c:177 msgid "suppress progress reporting" msgstr "chặn các báo cáo tiến trình hoạt Ä‘á»™ng" -#: builtin/checkout.c:1010 builtin/checkout.c:1012 builtin/clone.c:89 +#: builtin/checkout.c:1013 builtin/checkout.c:1015 builtin/clone.c:89 #: builtin/remote.c:169 builtin/remote.c:171 msgid "branch" msgstr "nhánh" -#: builtin/checkout.c:1011 +#: builtin/checkout.c:1014 msgid "create and checkout a new branch" msgstr "tạo và checkout má»™t nhánh má»›i" -#: builtin/checkout.c:1013 +#: builtin/checkout.c:1016 msgid "create/reset and checkout a branch" msgstr "create/reset và checkout má»™t nhánh" -#: builtin/checkout.c:1014 +#: builtin/checkout.c:1017 msgid "create reflog for new branch" msgstr "tạo reflog cho nhánh má»›i" -#: builtin/checkout.c:1015 +#: builtin/checkout.c:1018 msgid "detach the HEAD at named commit" msgstr "rá»i bá» HEAD tại lần chuyển giao danh nghÄ©a" -#: builtin/checkout.c:1016 +#: builtin/checkout.c:1019 msgid "set upstream info for new branch" msgstr "đặt thông tin thượng nguồn (upstream) cho nhánh má»›i" -#: builtin/checkout.c:1018 +#: builtin/checkout.c:1021 msgid "new branch" msgstr "nhánh má»›i" -#: builtin/checkout.c:1018 +#: builtin/checkout.c:1021 msgid "new unparented branch" msgstr "nhánh mồ côi má»›i" -#: builtin/checkout.c:1019 +#: builtin/checkout.c:1022 msgid "checkout our version for unmerged files" msgstr "" "lấy ra (checkout) phiên bản của chúng ta cho các táºp tin chÆ°a được hòa trá»™n" -#: builtin/checkout.c:1021 +#: builtin/checkout.c:1024 msgid "checkout their version for unmerged files" msgstr "" "lấy ra (checkout) phiên bản của chúng há» cho các táºp tin chÆ°a được hòa trá»™n" -#: builtin/checkout.c:1023 +#: builtin/checkout.c:1026 msgid "force checkout (throw away local modifications)" msgstr "ép buá»™c lấy ra (checkout) (bá» Ä‘i những thay đổi ná»™i bá»™)" -#: builtin/checkout.c:1024 +#: builtin/checkout.c:1027 msgid "perform a 3-way merge with the new branch" msgstr "thá»±c hiện hòa trá»™n kiểu 3-way vá»›i nhánh má»›i" -#: builtin/checkout.c:1025 builtin/merge.c:215 +#: builtin/checkout.c:1028 builtin/merge.c:215 msgid "update ignored files (default)" msgstr "cáºp nháºt các táºp tin bị bá» qua (mặc định)" -#: builtin/checkout.c:1026 builtin/log.c:1111 parse-options.h:241 +#: builtin/checkout.c:1029 builtin/log.c:1116 parse-options.h:241 msgid "style" msgstr "kiểu" -#: builtin/checkout.c:1027 +#: builtin/checkout.c:1030 msgid "conflict style (merge or diff3)" msgstr "xung Ä‘á»™t kiểu (hòa trá»™n hay diff3)" -#: builtin/checkout.c:1030 +#: builtin/checkout.c:1033 msgid "second guess 'git checkout no-such-branch'" -msgstr "gợi ý thứ hai `git checkout không-nhánh-nà o-nhÆ°-váºy'" +msgstr "gợi ý thứ hai “git checkout không-nhánh-nà o-nhÆ°-váºyâ€" -#: builtin/checkout.c:1054 +#: builtin/checkout.c:1057 msgid "-b, -B and --orphan are mutually exclusive" msgstr "Tùy chá»n -b|-B và --orphan loại từ lẫn nhau" -#: builtin/checkout.c:1071 +#: builtin/checkout.c:1074 msgid "--track needs a branch name" msgstr "--track cần tên má»™t nhánh" -#: builtin/checkout.c:1078 +#: builtin/checkout.c:1081 msgid "Missing branch name; try -b" msgstr "Thiếu tên nhánh; hãy thá» -b" -#: builtin/checkout.c:1113 +#: builtin/checkout.c:1116 msgid "invalid path specification" msgstr "Ä‘Æ°á»ng dẫn đã cho không hợp lệ" -#: builtin/checkout.c:1120 +#: builtin/checkout.c:1123 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" "Did you intend to checkout '%s' which can not be resolved as commit?" msgstr "" -"Không thể cáºp nháºt và chuyển thà nh nhánh `%s' cùng lúc\n" -"Bạn đã có ý định checkout `%s' cái mà không thể được phân giải nhÆ° là lần " +"Không thể cáºp nháºt và chuyển thà nh nhánh “%s†cùng lúc\n" +"Bạn đã có ý định checkout “%s†cái mà không thể được phân giải nhÆ° là lần " "chuyển giao (commit)?" -#: builtin/checkout.c:1125 +#: builtin/checkout.c:1128 #, c-format msgid "git checkout: --detach does not take a path argument '%s'" -msgstr "git checkout: --detach không nháºn má»™t đối số Ä‘Æ°á»ng dẫn `%s'" +msgstr "git checkout: --detach không nháºn má»™t đối số Ä‘Æ°á»ng dẫn “%sâ€" -#: builtin/checkout.c:1129 +#: builtin/checkout.c:1132 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -2943,8 +2979,8 @@ msgstr "ép buá»™c" msgid "remove whole directories" msgstr "gỡ bá» toà n bá»™ thÆ° mục" -#: builtin/clean.c:56 builtin/describe.c:413 builtin/grep.c:803 -#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:199 +#: builtin/clean.c:56 builtin/describe.c:413 builtin/grep.c:717 +#: builtin/ls-files.c:491 builtin/name-rev.c:231 builtin/show-ref.c:182 msgid "pattern" msgstr "mẫu" @@ -3059,7 +3095,7 @@ msgstr "tên" #: builtin/clone.c:88 msgid "use <name> instead of 'origin' to track upstream" -msgstr "dùng <tên> thay vì `origin' để theo dõi thượng nguồn (uptream)" +msgstr "dùng <tên> thay vì “origin†để theo dõi thượng nguồn (uptream)" #: builtin/clone.c:90 msgid "checkout <branch> instead of the remote's HEAD" @@ -3069,7 +3105,7 @@ msgstr "lấy ra nhánh (checkout <nhánh>) thay vì HEAD của máy chủ" msgid "path to git-upload-pack on the remote" msgstr "Ä‘Æ°á»ng dẫn đến git-upload-pack trên máy chủ" -#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:748 +#: builtin/clone.c:93 builtin/fetch.c:83 builtin/grep.c:662 msgid "depth" msgstr "Ä‘á»™ sâu" @@ -3100,7 +3136,7 @@ msgstr "đặt cấu hình bên trong má»™t kho chứa má»›i" #: builtin/clone.c:243 #, c-format msgid "reference repository '%s' is not a local directory." -msgstr "kho tham chiếu `%s' không phải là má»™t thÆ° mục ná»™i bá»™." +msgstr "kho tham chiếu “%s†không phải là má»™t thÆ° mục ná»™i bá»™." #: builtin/clone.c:306 #, c-format @@ -3110,7 +3146,7 @@ msgstr "tạo thÆ° mục \"%s\" gặp lá»—i" #: builtin/clone.c:308 builtin/diff.c:77 #, c-format msgid "failed to stat '%s'" -msgstr "gặp lá»—i stat (lấy trạng thái vá») `%s'" +msgstr "gặp lá»—i stat (lấy trạng thái vá») “%sâ€" #: builtin/clone.c:310 #, c-format @@ -3130,7 +3166,7 @@ msgstr "gặp lá»—i khi tạo được liên kết má»m %s" #: builtin/clone.c:350 #, c-format msgid "failed to copy file to '%s'" -msgstr "gặp lá»—i khi chép táºp tin tá»›i `%s'" +msgstr "gặp lá»—i khi chép táºp tin tá»›i “%sâ€" #: builtin/clone.c:373 #, c-format @@ -3162,7 +3198,7 @@ msgstr "tùy chá»n --bare và --origin %s xung khắc nhau." #: builtin/clone.c:719 #, c-format msgid "repository '%s' does not exist" -msgstr "kho chứa `%s' chÆ°a tồn tại" +msgstr "kho chứa “%s†chÆ°a tồn tại" #: builtin/clone.c:724 msgid "--depth is ignored in local clones; use file:// instead." @@ -3171,32 +3207,32 @@ msgstr "--depth bị lá» Ä‘i khi nhân bản ná»™i bá»™; hãy sá» dụng file: #: builtin/clone.c:734 #, c-format msgid "destination path '%s' already exists and is not an empty directory." -msgstr "Ä‘Æ°á»ng dẫn Ä‘Ãch `%s' đã có từ trÆ°á»›c và không phải là má»™t thÆ° mục rá»—ng." +msgstr "Ä‘Æ°á»ng dẫn Ä‘Ãch “%s†đã có từ trÆ°á»›c và không phải là má»™t thÆ° mục rá»—ng." #: builtin/clone.c:744 #, c-format msgid "working tree '%s' already exists." -msgstr "cây là m việc `%s' đã sẵn tồn tại rồi." +msgstr "cây là m việc “%s†đã sẵn tồn tại rồi." #: builtin/clone.c:757 builtin/clone.c:771 #, c-format msgid "could not create leading directories of '%s'" -msgstr "không thể tạo các thÆ° mục dẫn đầu của `%s'" +msgstr "không thể tạo các thÆ° mục dẫn đầu của “%sâ€" #: builtin/clone.c:760 #, c-format msgid "could not create work tree dir '%s'." -msgstr "không thể tạo cây thÆ° mục là m việc dir `%s'." +msgstr "không thể tạo cây thÆ° mục là m việc dir “%sâ€." #: builtin/clone.c:779 #, c-format msgid "Cloning into bare repository '%s'...\n" -msgstr "Äang nhân bản thà nh kho chứa bare `%s'...\n" +msgstr "Äang nhân bản thà nh kho chứa bare “%sâ€...\n" #: builtin/clone.c:781 #, c-format msgid "Cloning into '%s'...\n" -msgstr "Äang nhân bản thà nh `%s'...\n" +msgstr "Äang nhân bản thà nh “%sâ€...\n" #: builtin/clone.c:823 #, c-format @@ -3308,99 +3344,99 @@ msgstr "" "\n" " git commit --allow-empty\n" "\n" -"Nếu không, hãy thá» dùng `git reset'\n" +"Nếu không, hãy thá» dùng “git resetâ€\n" -#: builtin/commit.c:257 +#: builtin/commit.c:258 msgid "failed to unpack HEAD tree object" msgstr "gặp lá»—i khi tháo dỡ HEAD đối tượng cây" -#: builtin/commit.c:299 +#: builtin/commit.c:300 msgid "unable to create temporary index" msgstr "không thể tạo bảng mục lục tạm thá»i" -#: builtin/commit.c:305 +#: builtin/commit.c:306 msgid "interactive add failed" msgstr "việc thêm tÆ°Æ¡ng tác gặp lá»—i" -#: builtin/commit.c:338 builtin/commit.c:359 builtin/commit.c:409 +#: builtin/commit.c:339 builtin/commit.c:360 builtin/commit.c:410 msgid "unable to write new_index file" msgstr "không thể ghi táºp tin lÆ°u bảng mục lục má»›i (new_index)" -#: builtin/commit.c:390 +#: builtin/commit.c:391 msgid "cannot do a partial commit during a merge." msgstr "" "không thể thá»±c hiện việc chuyển giao (commit) cục bá»™ trong khi Ä‘ang được hòa " "trá»™n." -#: builtin/commit.c:392 +#: builtin/commit.c:393 msgid "cannot do a partial commit during a cherry-pick." msgstr "" "không thể thá»±c hiện việc chuyển giao (commit) bá»™ pháºn trong khi Ä‘ang cherry-" "pick." -#: builtin/commit.c:402 +#: builtin/commit.c:403 msgid "cannot read the index" msgstr "không Ä‘á»c được bảng mục lục" -#: builtin/commit.c:422 +#: builtin/commit.c:423 msgid "unable to write temporary index file" msgstr "không thể ghi táºp tin lÆ°u bảng mục lục tạm thá»i" -#: builtin/commit.c:509 builtin/commit.c:515 +#: builtin/commit.c:511 builtin/commit.c:517 #, c-format msgid "invalid commit: %s" msgstr "lần chuyển giao (commit) không hợp lệ: %s" -#: builtin/commit.c:538 +#: builtin/commit.c:540 msgid "malformed --author parameter" msgstr "đối số --author bị dị hình" -#: builtin/commit.c:558 +#: builtin/commit.c:560 #, c-format msgid "Malformed ident string: '%s'" -msgstr "Chuá»—i thụt lỠđầu dòng dị hình: `%s'" +msgstr "Chuá»—i thụt lỠđầu dòng dị hình: “%sâ€" -#: builtin/commit.c:596 builtin/commit.c:629 builtin/commit.c:952 +#: builtin/commit.c:598 builtin/commit.c:631 builtin/commit.c:954 #, c-format msgid "could not lookup commit %s" msgstr "không thể tìm kiếm commit (lần chuyển giao) %s" -#: builtin/commit.c:608 builtin/shortlog.c:296 +#: builtin/commit.c:610 builtin/shortlog.c:296 #, c-format msgid "(reading log message from standard input)\n" msgstr "(Ä‘ang Ä‘á»c thông Ä‘iệp nháºt ký từ đầu và o tiêu chuẩn)\n" -#: builtin/commit.c:610 +#: builtin/commit.c:612 msgid "could not read log from standard input" msgstr "không thể Ä‘á»c nháºt ký từ đầu và o tiêu chuẩn" -#: builtin/commit.c:614 +#: builtin/commit.c:616 #, c-format msgid "could not read log file '%s'" -msgstr "không Ä‘á»c được tệp nháºt ký `%s'" +msgstr "không Ä‘á»c được tệp nháºt ký “%sâ€" -#: builtin/commit.c:620 +#: builtin/commit.c:622 msgid "commit has empty message" msgstr "lần chuyển giao (commit) có ghi chú trống rá»—ng" -#: builtin/commit.c:636 +#: builtin/commit.c:638 msgid "could not read MERGE_MSG" msgstr "không thể Ä‘á»c MERGE_MSG" -#: builtin/commit.c:640 +#: builtin/commit.c:642 msgid "could not read SQUASH_MSG" msgstr "không thể Ä‘á»c SQUASH_MSG" -#: builtin/commit.c:644 +#: builtin/commit.c:646 #, c-format msgid "could not read '%s'" -msgstr "Không thể Ä‘á»c `%s'." +msgstr "Không thể Ä‘á»c “%sâ€." -#: builtin/commit.c:705 +#: builtin/commit.c:707 msgid "could not write commit template" msgstr "không thể ghi mẫu commit" -#: builtin/commit.c:716 +#: builtin/commit.c:718 #, c-format msgid "" "\n" @@ -3415,7 +3451,7 @@ msgstr "" "\t%s\n" "và thá» lại.\n" -#: builtin/commit.c:721 +#: builtin/commit.c:723 #, c-format msgid "" "\n" @@ -3430,17 +3466,17 @@ msgstr "" "\t%s\n" "và thá» lại.\n" -#: builtin/commit.c:733 +#: builtin/commit.c:735 msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '#' will be ignored, and an empty message aborts the commit.\n" msgstr "" "Hãy nháºp và o các thông tin để giải thÃch các thay đổi của bạn. Những dòng " "được\n" -"bắt đầu bằng `#' sẽ được bá» qua, phần chú thÃch nà y nếu rá»—ng sẽ là m hủy bá» " +"bắt đầu bằng “#†sẽ được bá» qua, phần chú thÃch nà y nếu rá»—ng sẽ là m hủy bá» " "lần chuyển giao (commit).\n" -#: builtin/commit.c:738 +#: builtin/commit.c:740 msgid "" "Please enter the commit message for your changes. Lines starting\n" "with '#' will be kept; you may remove them yourself if you want to.\n" @@ -3448,143 +3484,151 @@ msgid "" msgstr "" "Hãy nháºp và o các thông tin để giải thÃch các thay đổi của bạn.Những dòng " "được\n" -"bắt đầu bằng `#' sẽ được bá» qua; bạn có thể xóa chúng Ä‘i nếu muốn.\n" +"bắt đầu bằng “#†sẽ được bá» qua; bạn có thể xóa chúng Ä‘i nếu muốn.\n" "Phần chú thÃch nà y nếu rá»—ng sẽ là m hủy bá» lần chuyển giao (commit).\n" -#: builtin/commit.c:751 +#: builtin/commit.c:753 #, c-format msgid "%sAuthor: %s" msgstr "%sTác giả: %s" -#: builtin/commit.c:758 +#: builtin/commit.c:760 #, c-format msgid "%sCommitter: %s" msgstr "%sNgÆ°á»i chuyển giao (commit): %s" -#: builtin/commit.c:778 +#: builtin/commit.c:780 msgid "Cannot read index" msgstr "không Ä‘á»c được bảng mục lục" -#: builtin/commit.c:815 +#: builtin/commit.c:817 msgid "Error building trees" msgstr "Gặp lá»—i khi xây dá»±ng cây" -#: builtin/commit.c:830 builtin/tag.c:361 +#: builtin/commit.c:832 builtin/tag.c:361 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "Xin hãy áp dụng thông Ä‘iệp sá» dụng hoặc là tùy chá»n -m hoặc là -F.\n" -#: builtin/commit.c:927 +#: builtin/commit.c:929 #, c-format msgid "No existing author found with '%s'" -msgstr "Không tìm thấy tác giả có sẵn vá»›i `%s'" +msgstr "Không tìm thấy tác giả có sẵn vá»›i “%sâ€" -#: builtin/commit.c:942 builtin/commit.c:1142 +#: builtin/commit.c:944 builtin/commit.c:1148 #, c-format msgid "Invalid untracked files mode '%s'" -msgstr "Chế Ä‘á»™ cho các táºp tin không bị theo vết không hợp lệ `%s'" +msgstr "Chế Ä‘á»™ cho các táºp tin không bị theo vết không hợp lệ “%sâ€" -#: builtin/commit.c:982 +#: builtin/commit.c:984 msgid "Using both --reset-author and --author does not make sense" msgstr "Sá» dụng cả hai tùy chá»n --reset-author và --author không hợp lý" -#: builtin/commit.c:993 +#: builtin/commit.c:995 msgid "You have nothing to amend." msgstr "Không có gì để amend (tu bổ) cả." -#: builtin/commit.c:996 +#: builtin/commit.c:998 msgid "You are in the middle of a merge -- cannot amend." msgstr "" "Bạn Ä‘ang ở giữa của quá trình hòa trá»™n -- không thể thá»±c hiện amend (tu bổ)." -#: builtin/commit.c:998 +#: builtin/commit.c:1000 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "" "Bạn Ä‘ang ở giữa của quá trình cherry-pick -- không thể thá»±c hiện amend (tu " "bổ)." -#: builtin/commit.c:1001 +#: builtin/commit.c:1003 msgid "Options --squash and --fixup cannot be used together" msgstr "Các tùy chá»n --squash và --fixup không thể sá» dụng cùng vá»›i nhau" -#: builtin/commit.c:1011 +#: builtin/commit.c:1013 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "Chỉ má»™t tùy chá»n trong số -c/-C/-F/--fixup được sá» dụng" -#: builtin/commit.c:1013 +#: builtin/commit.c:1015 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "Tùy chá»n -m không thể được tổ hợp cùng vá»›i -c/-C/-F/--fixup." -#: builtin/commit.c:1021 +#: builtin/commit.c:1023 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "" "--reset-author chỉ có thể được sá» dụng vá»›i tùy chá»n -C, -c hay --amend." -#: builtin/commit.c:1038 +#: builtin/commit.c:1040 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" "Chỉ má»™t trong các tùy chá»n --include/--only/--all/--interactive/--patch được " "sá» dụng." -#: builtin/commit.c:1040 +#: builtin/commit.c:1042 msgid "No paths with --include/--only does not make sense." msgstr "Không Ä‘Æ°á»ng dẫn vá»›i các tùy chá»n --include/--only không hợp lý." -#: builtin/commit.c:1042 +#: builtin/commit.c:1044 msgid "Clever... amending the last one with dirty index." msgstr "Giá»i... tu bổ cái cuối vá»›i bảng mục lục phi nghÄ©a." -#: builtin/commit.c:1044 +#: builtin/commit.c:1046 msgid "Explicit paths specified without -i nor -o; assuming --only paths..." msgstr "" "Những Ä‘Æ°á»ng dẫn rõ rà ng được chỉ ra không có tùy chá»n -i cÅ©ng không -o; Ä‘ang " "giả định --only những-Ä‘Æ°á»ng-dẫn..." -#: builtin/commit.c:1054 builtin/tag.c:577 +#: builtin/commit.c:1056 builtin/tag.c:577 #, c-format msgid "Invalid cleanup mode %s" msgstr "Chế Ä‘á»™ dá»n dẹp không hợp lệ %s" -#: builtin/commit.c:1059 +#: builtin/commit.c:1061 msgid "Paths with -a does not make sense." msgstr "Các Ä‘Æ°á»ng dẫn vá»›i tùy chá»n -a không hợp lý." -#: builtin/commit.c:1156 builtin/commit.c:1384 +#: builtin/commit.c:1067 builtin/commit.c:1202 +msgid "--long and -z are incompatible" +msgstr "hai tùy chá»n -long và -z không tÆ°Æ¡ng thÃch vá»›i nhau" + +#: builtin/commit.c:1162 builtin/commit.c:1398 msgid "show status concisely" msgstr "hiển thị trạng thái ở dạng súc tÃch" -#: builtin/commit.c:1158 builtin/commit.c:1386 +#: builtin/commit.c:1164 builtin/commit.c:1400 msgid "show branch information" msgstr "hiển thị thông tin nhánh" -#: builtin/commit.c:1160 builtin/commit.c:1388 builtin/push.c:389 +#: builtin/commit.c:1166 builtin/commit.c:1402 builtin/push.c:389 msgid "machine-readable output" msgstr "kết xuất dạng máy-có-thể-Ä‘á»c" -#: builtin/commit.c:1163 builtin/commit.c:1390 +#: builtin/commit.c:1169 builtin/commit.c:1404 +msgid "show status in long format (default)" +msgstr "hiển thị trạng thái ở định dạng dà i (mặc định)" + +#: builtin/commit.c:1172 builtin/commit.c:1407 msgid "terminate entries with NUL" msgstr "chấm dứt các mục bằng NUL" -#: builtin/commit.c:1165 builtin/commit.c:1393 builtin/fast-export.c:636 +#: builtin/commit.c:1174 builtin/commit.c:1410 builtin/fast-export.c:636 #: builtin/fast-export.c:639 builtin/tag.c:461 msgid "mode" msgstr "chế Ä‘á»™" -#: builtin/commit.c:1166 builtin/commit.c:1393 +#: builtin/commit.c:1175 builtin/commit.c:1410 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" "hiển thị các táºp tin chÆ°a được theo dõi dấu vết, các chế Ä‘á»™ tùy chá»n: all, " "normal, no. (Mặc định: all)" -#: builtin/commit.c:1169 +#: builtin/commit.c:1178 msgid "show ignored files" msgstr "hiển thị các táºp tin ẩn" -#: builtin/commit.c:1170 parse-options.h:151 +#: builtin/commit.c:1179 parse-options.h:151 msgid "when" msgstr "khi" -#: builtin/commit.c:1171 +#: builtin/commit.c:1180 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -3592,223 +3636,223 @@ msgstr "" "bá» qua các thay đổi trong mô-Ä‘un con, tùy chá»n khi: all, dirty, untracked. " "(Mặc định: all)" -#: builtin/commit.c:1173 +#: builtin/commit.c:1182 msgid "list untracked files in columns" msgstr "hiển thị danh sách các táºp-tin chÆ°a được theo dõi trong các cá»™t" -#: builtin/commit.c:1242 +#: builtin/commit.c:1256 msgid "couldn't look up newly created commit" msgstr "không thể tìm thấy lần chuyển giao (commit) má»›i hÆ¡n đã được tạo" -#: builtin/commit.c:1244 +#: builtin/commit.c:1258 msgid "could not parse newly created commit" msgstr "" "không thể phân tÃch cú pháp của đối tượng chuyển giao má»›i hÆ¡n đã được tạo" -#: builtin/commit.c:1285 +#: builtin/commit.c:1299 msgid "detached HEAD" msgstr "đã rá»i khá»i HEAD" -#: builtin/commit.c:1287 +#: builtin/commit.c:1301 msgid " (root-commit)" msgstr " (root-commit)" -#: builtin/commit.c:1354 +#: builtin/commit.c:1368 msgid "suppress summary after successful commit" msgstr "không hiển thị tổng kết sau khi chuyển giao thà nh công" -#: builtin/commit.c:1355 +#: builtin/commit.c:1369 msgid "show diff in commit message template" msgstr "hiển thị sá»± khác biệt trong mẫu tin nhắn chuyển giao" -#: builtin/commit.c:1357 +#: builtin/commit.c:1371 msgid "Commit message options" msgstr "Các tùy chá»n ghi chú commit" -#: builtin/commit.c:1358 builtin/tag.c:459 +#: builtin/commit.c:1372 builtin/tag.c:459 msgid "read message from file" msgstr "Ä‘á»c chú thÃch từ táºp tin" -#: builtin/commit.c:1359 +#: builtin/commit.c:1373 msgid "author" msgstr "tác giả" -#: builtin/commit.c:1359 +#: builtin/commit.c:1373 msgid "override author for commit" msgstr "ghi đè tác giả cho commit" -#: builtin/commit.c:1360 builtin/gc.c:178 +#: builtin/commit.c:1374 builtin/gc.c:178 msgid "date" msgstr "ngà y tháng" -#: builtin/commit.c:1360 +#: builtin/commit.c:1374 msgid "override date for commit" msgstr "ghi đè ngà y tháng cho commit" -#: builtin/commit.c:1361 builtin/merge.c:206 builtin/notes.c:537 +#: builtin/commit.c:1375 builtin/merge.c:206 builtin/notes.c:537 #: builtin/notes.c:694 builtin/tag.c:457 msgid "message" msgstr "thông Ä‘iệp" -#: builtin/commit.c:1361 +#: builtin/commit.c:1375 msgid "commit message" msgstr "chú thÃch của lần commit" -#: builtin/commit.c:1362 +#: builtin/commit.c:1376 msgid "reuse and edit message from specified commit" msgstr "" "dùng lại các ghi chú từ lần chuyển giao (commit) đã cho nhÆ°ng có cho sá»a chữa" -#: builtin/commit.c:1363 +#: builtin/commit.c:1377 msgid "reuse message from specified commit" msgstr "dùng lại các ghi chú từ lần chuyển giao (commit) đã cho" -#: builtin/commit.c:1364 +#: builtin/commit.c:1378 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "dùng ghi chú có định dạng autosquash để sá»a chữa lần chuyển giao đã chỉ ra" -#: builtin/commit.c:1365 +#: builtin/commit.c:1379 msgid "use autosquash formatted message to squash specified commit" msgstr "" "dùng lá»i nhắn có định dạng tá»± Ä‘á»™ng nén để nén lại các lần chuyển giao đã chỉ " "ra" -#: builtin/commit.c:1366 +#: builtin/commit.c:1380 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "" "lần chuyển giao nháºn tôi là tác giả (được dùng vá»›i tùy chá»n -C/-c/--amend)" -#: builtin/commit.c:1367 builtin/log.c:1068 builtin/revert.c:109 +#: builtin/commit.c:1381 builtin/log.c:1073 builtin/revert.c:109 msgid "add Signed-off-by:" msgstr "thêm dòng Signed-off-by:" -#: builtin/commit.c:1368 +#: builtin/commit.c:1382 msgid "use specified template file" msgstr "sá» dụng táºp tin mẫu đã cho" -#: builtin/commit.c:1369 +#: builtin/commit.c:1383 msgid "force edit of commit" msgstr "ép buá»™c sá»a lần commit" -#: builtin/commit.c:1370 +#: builtin/commit.c:1384 msgid "default" msgstr "mặc định" -#: builtin/commit.c:1370 builtin/tag.c:462 +#: builtin/commit.c:1384 builtin/tag.c:462 msgid "how to strip spaces and #comments from message" msgstr "là m thế nà o để cắt bá» khoảng trắng và #ghichú từ mẩu tin nhắn" -#: builtin/commit.c:1371 +#: builtin/commit.c:1385 msgid "include status in commit message template" msgstr "bao gồm các trạng thái ghi mẫu ghi chú chuyển giao (commit)" -#: builtin/commit.c:1372 builtin/merge.c:213 builtin/tag.c:463 +#: builtin/commit.c:1386 builtin/merge.c:213 builtin/tag.c:463 msgid "key id" msgstr "id khóa" -#: builtin/commit.c:1373 builtin/merge.c:214 +#: builtin/commit.c:1387 builtin/merge.c:214 msgid "GPG sign commit" msgstr "ký lần commit dùng GPG" #. end commit message options -#: builtin/commit.c:1376 +#: builtin/commit.c:1390 msgid "Commit contents options" msgstr "Các tùy ná»™i dung ghi chú commit" -#: builtin/commit.c:1377 +#: builtin/commit.c:1391 msgid "commit all changed files" msgstr "chuyển giao tất cả các táºp tin có thay đổi" -#: builtin/commit.c:1378 +#: builtin/commit.c:1392 msgid "add specified files to index for commit" msgstr "thêm các táºp tin đã chỉ ra và o bảng mục lục để chuyển giao (commit)" -#: builtin/commit.c:1379 +#: builtin/commit.c:1393 msgid "interactively add files" msgstr "thêm các táºp-tin bằng tÆ°Æ¡ng tác" -#: builtin/commit.c:1380 +#: builtin/commit.c:1394 msgid "interactively add changes" msgstr "thêm các thay đổi bằng tÆ°Æ¡ng tác" -#: builtin/commit.c:1381 +#: builtin/commit.c:1395 msgid "commit only specified files" msgstr "chỉ chuyển giao các táºp tin đã chỉ ra" -#: builtin/commit.c:1382 +#: builtin/commit.c:1396 msgid "bypass pre-commit hook" msgstr "vòng qua móc (hook) pre-commit" -#: builtin/commit.c:1383 +#: builtin/commit.c:1397 msgid "show what would be committed" msgstr "hiển thị xem cái gì có thể được chuyển giao" -#: builtin/commit.c:1391 +#: builtin/commit.c:1408 msgid "amend previous commit" msgstr "tu bổ (amend) lần commit trÆ°á»›c" -#: builtin/commit.c:1392 +#: builtin/commit.c:1409 msgid "bypass post-rewrite hook" msgstr "vòng qua móc (hook) post-rewrite" -#: builtin/commit.c:1397 +#: builtin/commit.c:1414 msgid "ok to record an empty change" msgstr "ok để ghi lại má»™t thay đổi trống rá»—ng" -#: builtin/commit.c:1400 +#: builtin/commit.c:1417 msgid "ok to record a change with an empty message" msgstr "ok để ghi các thay đổi vá»›i lá»i nhắn trống rá»—ng" -#: builtin/commit.c:1432 +#: builtin/commit.c:1449 msgid "could not parse HEAD commit" msgstr "không thể phân tÃch commit (lần chuyển giao) HEAD" -#: builtin/commit.c:1470 builtin/merge.c:508 +#: builtin/commit.c:1487 builtin/merge.c:508 #, c-format msgid "could not open '%s' for reading" -msgstr "không thể mở `%s' để Ä‘á»c" +msgstr "không thể mở “%s†để Ä‘á»c" -#: builtin/commit.c:1477 +#: builtin/commit.c:1494 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Táºp tin MERGE_HEAD sai há»ng (%s)" -#: builtin/commit.c:1484 +#: builtin/commit.c:1501 msgid "could not read MERGE_MODE" msgstr "không thể Ä‘á»c MERGE_MODE" -#: builtin/commit.c:1503 +#: builtin/commit.c:1520 #, c-format msgid "could not read commit message: %s" msgstr "không thể Ä‘á»c thông Ä‘iệp (message) commit (lần chuyển giao): %s" -#: builtin/commit.c:1517 +#: builtin/commit.c:1534 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "" "Äang bá» qua việc chuyển giao (commit); bạn đã không biên soạn thông Ä‘iệp " "(message).\n" -#: builtin/commit.c:1522 +#: builtin/commit.c:1539 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "" "Äang bá» qua lần chuyển giao (commit) bởi vì thông Ä‘iệp của nó trống rá»—ng.\n" -#: builtin/commit.c:1537 builtin/merge.c:935 builtin/merge.c:960 +#: builtin/commit.c:1554 builtin/merge.c:832 builtin/merge.c:857 msgid "failed to write commit object" msgstr "gặp lá»—i khi ghi đối tượng chuyển giao (commit)" -#: builtin/commit.c:1558 +#: builtin/commit.c:1575 msgid "cannot lock HEAD ref" msgstr "không thể khóa HEAD ref (tham chiếu)" -#: builtin/commit.c:1562 +#: builtin/commit.c:1579 msgid "cannot update HEAD ref" msgstr "không thể cáºp nháºt ref (tham chiếu) HEAD" -#: builtin/commit.c:1573 +#: builtin/commit.c:1590 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full or quota is\n" @@ -3823,115 +3867,115 @@ msgstr "" msgid "git config [options]" msgstr "git config [các-tùy-chá»n]" -#: builtin/config.c:52 +#: builtin/config.c:51 msgid "Config file location" msgstr "Vị trà táºp tin cấu hình" -#: builtin/config.c:53 +#: builtin/config.c:52 msgid "use global config file" msgstr "đặt táºp tin cấu hình cần toà n cục" -#: builtin/config.c:54 +#: builtin/config.c:53 msgid "use system config file" msgstr "sá» dụng táºp tin cấu hình hệ thống" -#: builtin/config.c:55 +#: builtin/config.c:54 msgid "use repository config file" msgstr "dùng táºp tin cấu hình của kho" -#: builtin/config.c:56 +#: builtin/config.c:55 msgid "use given config file" msgstr "sá» dụng táºp tin cấu hình đã cho" -#: builtin/config.c:57 +#: builtin/config.c:56 msgid "Action" msgstr "Hà nh Ä‘á»™ng" -#: builtin/config.c:58 +#: builtin/config.c:57 msgid "get value: name [value-regex]" msgstr "lấy giá-trị: tên [value-regex]" -#: builtin/config.c:59 +#: builtin/config.c:58 msgid "get all values: key [value-regex]" msgstr "lấy tất cả giá-trị: khóa [value-regex]" -#: builtin/config.c:60 +#: builtin/config.c:59 msgid "get values for regexp: name-regex [value-regex]" msgstr "lấy giá trị cho regexp: name-regex [value-regex]" -#: builtin/config.c:61 +#: builtin/config.c:60 msgid "replace all matching variables: name value [value_regex]" msgstr "thay thế tất cả các biến khá»›p mẫu: tên giá-trị [value_regex]" -#: builtin/config.c:62 +#: builtin/config.c:61 msgid "add a new variable: name value" msgstr "thêm biến má»›i: tên giá-trị" -#: builtin/config.c:63 +#: builtin/config.c:62 msgid "remove a variable: name [value-regex]" msgstr "gỡ bá» biến: tên [value-regex]" -#: builtin/config.c:64 +#: builtin/config.c:63 msgid "remove all matches: name [value-regex]" msgstr "gỡ bá» má»i cái khá»›p: tên [value-regex]" -#: builtin/config.c:65 +#: builtin/config.c:64 msgid "rename section: old-name new-name" msgstr "đổi tên chÆ°Æ¡ng: tên-cÅ© tên-má»›i" -#: builtin/config.c:66 +#: builtin/config.c:65 msgid "remove a section: name" msgstr "gỡ bá» chÆ°Æ¡ng: tên" -#: builtin/config.c:67 +#: builtin/config.c:66 msgid "list all" msgstr "liệt kê tất" -#: builtin/config.c:68 +#: builtin/config.c:67 msgid "open an editor" msgstr "mở má»™t trình biên soạn" -#: builtin/config.c:69 builtin/config.c:70 +#: builtin/config.c:68 builtin/config.c:69 msgid "slot" msgstr "khe" -#: builtin/config.c:69 +#: builtin/config.c:68 msgid "find the color configured: [default]" msgstr "tìm cấu hình mà u sắc: [mặc định]" -#: builtin/config.c:70 +#: builtin/config.c:69 msgid "find the color setting: [stdout-is-tty]" msgstr "tìm các cà i đặt vá» mà u sắc: [stdout-là -tty]" -#: builtin/config.c:71 +#: builtin/config.c:70 msgid "Type" msgstr "Kiểu" -#: builtin/config.c:72 +#: builtin/config.c:71 msgid "value is \"true\" or \"false\"" msgstr "giá trị là \"true\" hoặc \"false\"" -#: builtin/config.c:73 +#: builtin/config.c:72 msgid "value is decimal number" msgstr "giá trị ở dạng số tháºp phân" -#: builtin/config.c:74 +#: builtin/config.c:73 msgid "value is --bool or --int" msgstr "giá trị là --bool hoặc --int" -#: builtin/config.c:75 +#: builtin/config.c:74 msgid "value is a path (file or directory name)" msgstr "giá trị là đưá»ng dẫn (tên táºp tin hay thÆ° mục)" -#: builtin/config.c:76 +#: builtin/config.c:75 msgid "Other" msgstr "Khác" -#: builtin/config.c:77 +#: builtin/config.c:76 msgid "terminate values with NUL byte" msgstr "chấm dứt giá trị vá»›i byte NUL" -#: builtin/config.c:78 +#: builtin/config.c:77 msgid "respect include directives on lookup" msgstr "tôn trá»ng kể cà các hÆ°á»›ng trong tìm kiếm" @@ -3960,7 +4004,7 @@ msgstr "thẻ được chú giải %s không có tên nhúng" #: builtin/describe.c:240 #, c-format msgid "tag '%s' is really '%s' here" -msgstr "thẻ `%s' đã thá»±c sá»± ở đây `%s' rồi" +msgstr "thẻ “%s†đã thá»±c sá»± ở đây “%s†rồi" #: builtin/describe.c:267 #, c-format @@ -3970,12 +4014,12 @@ msgstr "Không phải tên đối tượng %s hợp lệ" #: builtin/describe.c:270 #, c-format msgid "%s is not a valid '%s' object" -msgstr "%s không phải là má»™t đối tượng `%s' hợp lệ" +msgstr "%s không phải là má»™t đối tượng “%s†hợp lệ" #: builtin/describe.c:287 #, c-format msgid "no tag exactly matches '%s'" -msgstr "không có thẻ nà o khá»›p chÃnh xác vá»›i `%s'" +msgstr "không có thẻ nà o khá»›p chÃnh xác vá»›i “%sâ€" #: builtin/describe.c:289 #, c-format @@ -3993,7 +4037,7 @@ msgid "" "No annotated tags can describe '%s'.\n" "However, there were unannotated tags: try --tags." msgstr "" -"Không có thẻ được chú giải nà o được mô tả là `%s'.\n" +"Không có thẻ được chú giải nà o được mô tả là “%sâ€.\n" "Tuy nhiên, ở đây có những thẻ không được chú giải: hãy thá» --tags." #: builtin/describe.c:357 @@ -4002,7 +4046,7 @@ msgid "" "No tags can describe '%s'.\n" "Try --always, or create some tags." msgstr "" -"Không có thẻ (tag) có thể mô tả `%s'.\n" +"Không có thẻ (tag) có thể mô tả “%sâ€.\n" "Hãy thá» --always, hoặt tạo má»™t số thẻ." #: builtin/describe.c:378 @@ -4078,36 +4122,36 @@ msgstr "--dirty là xung khắc vá»›i các tùy chá»n dà nh cho chuyển giao ( #: builtin/diff.c:79 #, c-format msgid "'%s': not a regular file or symlink" -msgstr "`%s': không phải táºp tin bình thÆ°á»ng hay liên kết tượng trÆ°ng" +msgstr "“%sâ€: không phải táºp tin bình thÆ°á»ng hay liên kết tượng trÆ°ng" -#: builtin/diff.c:224 +#: builtin/diff.c:228 #, c-format msgid "invalid option: %s" msgstr "tùy chá»n sai: %s" -#: builtin/diff.c:301 +#: builtin/diff.c:305 msgid "Not a git repository" msgstr "Không phải là kho git" -#: builtin/diff.c:344 +#: builtin/diff.c:348 #, c-format msgid "invalid object '%s' given." -msgstr "đối tượng đã cho `%s' không hợp lệ." +msgstr "đối tượng đã cho “%s†không hợp lệ." -#: builtin/diff.c:349 +#: builtin/diff.c:353 #, c-format msgid "more than %d trees given: '%s'" -msgstr "đã chỉ ra nhiá»u hÆ¡n %d cây (tree): `%s'" +msgstr "đã chỉ ra nhiá»u hÆ¡n %d cây (tree): “%sâ€" -#: builtin/diff.c:359 +#: builtin/diff.c:363 #, c-format msgid "more than two blobs given: '%s'" -msgstr "đã cho nhiá»u hÆ¡n hai đối tượng blob: `%s'" +msgstr "đã cho nhiá»u hÆ¡n hai đối tượng blob: “%sâ€" -#: builtin/diff.c:367 +#: builtin/diff.c:371 #, c-format msgid "unhandled object '%s' given." -msgstr "đã cho đối tượng không thể nắm giữ `%s'." +msgstr "đã cho đối tượng không thể nắm giữ “%sâ€." #: builtin/fast-export.c:22 msgid "git fast-export [rev-list-opts]" @@ -4196,7 +4240,7 @@ msgstr "không lấy (fetch) tất cả các thẻ (--no-tags)" #: builtin/fetch.c:73 msgid "prune remote-tracking branches no longer on remote" msgstr "" -"cắt cụt (prune) các nhánh `remote-tracking' không còn tồn tại trên máy chủ " +"cắt cụt (prune) các nhánh “remote-tracking†không còn tồn tại trên máy chủ " "nữa" #: builtin/fetch.c:74 @@ -4219,7 +4263,7 @@ msgstr "cho phép cáºp nháºt ref (tham chiếu) HEAD" msgid "deepen history of shallow clone" msgstr "là m sâu hÆ¡n lịch sá» của bản sao" -#: builtin/fetch.c:85 builtin/log.c:1083 +#: builtin/fetch.c:85 builtin/log.c:1088 msgid "dir" msgstr "tmục" @@ -4307,7 +4351,7 @@ msgid "" " 'git remote prune %s' to remove any old, conflicting branches" msgstr "" "má»™t số tham chiếu (refs) ná»™i bá»™ không thể được cáºp nháºt; hãy thá» chạy\n" -" `git remote prune %s' để bá» Ä‘i những nhánh cÅ©, hay bị xung Ä‘á»™t" +" “git remote prune %s†để bá» Ä‘i những nhánh cÅ©, hay bị xung Ä‘á»™t" #: builtin/fetch.c:549 #, c-format @@ -4393,15 +4437,15 @@ msgid "git fmt-merge-msg [-m <message>] [--log[=<n>]|--no-log] [--file <file>]" msgstr "" "git fmt-merge-msg [-m <thông Ä‘iệp>] [--log[=<n>]|--no-log] [--file <táºp-tin>]" -#: builtin/fmt-merge-msg.c:653 builtin/fmt-merge-msg.c:656 builtin/grep.c:787 -#: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:192 +#: builtin/fmt-merge-msg.c:653 builtin/fmt-merge-msg.c:656 builtin/grep.c:701 +#: builtin/merge.c:188 builtin/show-branch.c:656 builtin/show-ref.c:175 #: builtin/tag.c:448 parse-options.h:133 parse-options.h:235 msgid "n" msgstr "n" #: builtin/fmt-merge-msg.c:654 msgid "populate log with at most <n> entries from shortlog" -msgstr "gắn nháºt ký vá»›i Ãt nhất <n> mục từ lệnh `shortlog'" +msgstr "gắn nháºt ký vá»›i Ãt nhất <n> mục từ lệnh “shortlogâ€" #: builtin/fmt-merge-msg.c:657 msgid "alias for --log (deprecated)" @@ -4481,7 +4525,7 @@ msgstr "báo cáo node gốc" #: builtin/fsck.c:618 msgid "make index objects head nodes" -msgstr "tạo ` index objects head nodes'" +msgstr "tạo “ index objects head nodesâ€" #: builtin/fsck.c:619 msgid "make reflogs head nodes (default)" @@ -4510,7 +4554,7 @@ msgstr "git gc [các-tùy-chá»n]" #: builtin/gc.c:63 #, c-format msgid "Invalid %s: '%s'" -msgstr "%s không hợp lệ: `%s'" +msgstr "%s không hợp lệ: “%sâ€" #: builtin/gc.c:90 #, c-format @@ -4543,7 +4587,7 @@ msgstr "" msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" -"Có quá nhiá»u đối tượng tá»± do không được dùng đến; hãy chạy lệnh `git prune' " +"Có quá nhiá»u đối tượng tá»± do không được dùng đến; hãy chạy lệnh “git prune†" "để xóa bá» chúng Ä‘i." #: builtin/grep.c:22 @@ -4555,228 +4599,228 @@ msgstr "git grep [các-tùy-chá»n] [-e] <mẫu> [<rev>...] [[--] <Ä‘Æ°á»ng-dẠmsgid "grep: failed to create thread: %s" msgstr "grep: gặp lá»—i tạo tuyến (thread): %s" -#: builtin/grep.c:455 +#: builtin/grep.c:365 #, c-format msgid "Failed to chdir: %s" msgstr "Gặp lá»—i vá»›i lệnh chdir: %s" -#: builtin/grep.c:531 builtin/grep.c:565 +#: builtin/grep.c:443 builtin/grep.c:478 #, c-format msgid "unable to read tree (%s)" msgstr "không thể Ä‘á»c cây (%s)" -#: builtin/grep.c:579 +#: builtin/grep.c:493 #, c-format msgid "unable to grep from object of type %s" msgstr "không thể thá»±c hiện lệnh grep (lá»c tìm) từ đối tượng thuá»™c kiểu %s" -#: builtin/grep.c:637 +#: builtin/grep.c:551 #, c-format msgid "switch `%c' expects a numerical value" -msgstr "chuyển đến `%c' mong chá» má»™t giá trị bằng số" +msgstr "chuyển đến `%c' cần má»™t giá trị bằng số" -#: builtin/grep.c:654 +#: builtin/grep.c:568 #, c-format msgid "cannot open '%s'" -msgstr "không mở được `%s'" +msgstr "không mở được “%sâ€" -#: builtin/grep.c:729 +#: builtin/grep.c:643 msgid "search in index instead of in the work tree" msgstr "tìm trong bảng mục lục thay vì trong cây là m việc" -#: builtin/grep.c:731 +#: builtin/grep.c:645 msgid "find in contents not managed by git" msgstr "tìm trong ná»™i dung không được quản lý bởi git" -#: builtin/grep.c:733 +#: builtin/grep.c:647 msgid "search in both tracked and untracked files" msgstr "tìm kiếm các táºp tin được và chÆ°a được theo dõi dấu vết" -#: builtin/grep.c:735 +#: builtin/grep.c:649 msgid "search also in ignored files" msgstr "tìm cả trong các táºp tin đã bị lá» Ä‘i" -#: builtin/grep.c:738 +#: builtin/grep.c:652 msgid "show non-matching lines" msgstr "hiển thị những dòng không khá»›p vá»›i mẫu" -#: builtin/grep.c:740 +#: builtin/grep.c:654 msgid "case insensitive matching" msgstr "phân biệt chữ hoa/thÆ°á»ng" -#: builtin/grep.c:742 +#: builtin/grep.c:656 msgid "match patterns only at word boundaries" msgstr "chỉ khá»›p mẫu tại Ä‘Æ°á»ng ranh giá»›i từ" -#: builtin/grep.c:744 +#: builtin/grep.c:658 msgid "process binary files as text" msgstr "xá» lý táºp tin nhị phân nhÆ° là dạng văn bản thÆ°á»ng" -#: builtin/grep.c:746 +#: builtin/grep.c:660 msgid "don't match patterns in binary files" msgstr "không khá»›p mẫu trong các táºp tin nhị phân" -#: builtin/grep.c:749 +#: builtin/grep.c:663 msgid "descend at most <depth> levels" msgstr "giảm xuống Ãt nhất mức <sâu>" -#: builtin/grep.c:753 +#: builtin/grep.c:667 msgid "use extended POSIX regular expressions" msgstr "dùng biểu thức chÃnh qui POSIX có mở rá»™ng" -#: builtin/grep.c:756 +#: builtin/grep.c:670 msgid "use basic POSIX regular expressions (default)" msgstr "sá» dụng biểu thức chÃnh quy kiểu POSIX (mặc định)" -#: builtin/grep.c:759 +#: builtin/grep.c:673 msgid "interpret patterns as fixed strings" msgstr "diá»…n dịch các mẫu nhÆ° là chuá»—i cố định" -#: builtin/grep.c:762 +#: builtin/grep.c:676 msgid "use Perl-compatible regular expressions" msgstr "sá» dụng biểu thức chÃnh quy tÆ°Æ¡ng thÃch Perl" -#: builtin/grep.c:765 +#: builtin/grep.c:679 msgid "show line numbers" msgstr "hiển thị số của dòng" -#: builtin/grep.c:766 +#: builtin/grep.c:680 msgid "don't show filenames" msgstr "không hiển thị tên táºp tin" -#: builtin/grep.c:767 +#: builtin/grep.c:681 msgid "show filenames" msgstr "hiển thị các tên táºp tin" -#: builtin/grep.c:769 +#: builtin/grep.c:683 msgid "show filenames relative to top directory" msgstr "hiển thị tên táºp tin tÆ°Æ¡ng đối vá»›i thÆ° mục đỉnh (top)" -#: builtin/grep.c:771 +#: builtin/grep.c:685 msgid "show only filenames instead of matching lines" msgstr "chỉ hiển thị tên táºp tin thay vì những dòng khá»›p vá»›i mẫu" -#: builtin/grep.c:773 +#: builtin/grep.c:687 msgid "synonym for --files-with-matches" msgstr "đồng nghÄ©a vá»›i --files-with-matches" -#: builtin/grep.c:776 +#: builtin/grep.c:690 msgid "show only the names of files without match" msgstr "chỉ hiển thị tên cho những táºp tin không khá»›p vá»›i mẫu" -#: builtin/grep.c:778 +#: builtin/grep.c:692 msgid "print NUL after filenames" msgstr "thêm NUL và o sau tên táºp tin" -#: builtin/grep.c:780 +#: builtin/grep.c:694 msgid "show the number of matches instead of matching lines" msgstr "hiển thị số lượng khá»›p thay vì những dòng khá»›p vá»›i mẫu" -#: builtin/grep.c:781 +#: builtin/grep.c:695 msgid "highlight matches" msgstr "tô sáng cái khá»›p" -#: builtin/grep.c:783 +#: builtin/grep.c:697 msgid "print empty line between matches from different files" msgstr "hiển thị dòng trống giữa các lần khá»›p từ các táºp tin khác biệt" -#: builtin/grep.c:785 +#: builtin/grep.c:699 msgid "show filename only once above matches from same file" msgstr "" "hiển thị tên táºp tin má»™t lần phÃa trên các lần khá»›p từ cùng má»™t táºp tin" -#: builtin/grep.c:788 +#: builtin/grep.c:702 msgid "show <n> context lines before and after matches" msgstr "hiển thị <n> dòng ná»™i dung phÃa trÆ°á»›c và sau các lần khá»›p" -#: builtin/grep.c:791 +#: builtin/grep.c:705 msgid "show <n> context lines before matches" msgstr "hiển thị <n> dòng ná»™i dung trÆ°á»›c khá»›p" -#: builtin/grep.c:793 +#: builtin/grep.c:707 msgid "show <n> context lines after matches" msgstr "hiển thị <n> dòng ná»™i dung sau khá»›p" -#: builtin/grep.c:794 +#: builtin/grep.c:708 msgid "shortcut for -C NUM" msgstr "Dạng tắt cho -C Sá»" -#: builtin/grep.c:797 +#: builtin/grep.c:711 msgid "show a line with the function name before matches" msgstr "hiển thị dòng vói tên hà m trÆ°á»›c các lần khá»›p" -#: builtin/grep.c:799 +#: builtin/grep.c:713 msgid "show the surrounding function" msgstr "hiển thị hà m bao quanh" -#: builtin/grep.c:802 +#: builtin/grep.c:716 msgid "read patterns from file" msgstr "Ä‘á»c mẫu từ táºp-tin" -#: builtin/grep.c:804 +#: builtin/grep.c:718 msgid "match <pattern>" msgstr "match <mẫu>" -#: builtin/grep.c:806 +#: builtin/grep.c:720 msgid "combine patterns specified with -e" msgstr "tổ hợp mẫu được chỉ ra vá»›i tùy chá»n -e" -#: builtin/grep.c:818 +#: builtin/grep.c:732 msgid "indicate hit with exit status without output" msgstr "Ä‘Æ°a ra gợi ý vá»›i trạng thái thoát mà không có kết xuất" -#: builtin/grep.c:820 +#: builtin/grep.c:734 msgid "show only matches from files that match all patterns" msgstr "chỉ hiển thị những cái khá»›p từ táºp tin mà nó khá»›p toà n bá»™ các mẫu" -#: builtin/grep.c:822 +#: builtin/grep.c:736 msgid "show parse tree for grep expression" -msgstr "hiển thị cây phân tÃch cú pháp cho biểu thức `grep' (tìm kiếm)" +msgstr "hiển thị cây phân tÃch cú pháp cho biểu thức “grep†(tìm kiếm)" -#: builtin/grep.c:826 +#: builtin/grep.c:740 msgid "pager" msgstr "trang giấy" -#: builtin/grep.c:826 +#: builtin/grep.c:740 msgid "show matching files in the pager" msgstr "hiển thị các táºp tin khá»›p trong trang giấy" -#: builtin/grep.c:829 +#: builtin/grep.c:743 msgid "allow calling of grep(1) (ignored by this build)" msgstr "cho phép gá»i grep(1) (bị bá» qua bởi lần dịch nà y)" -#: builtin/grep.c:830 builtin/show-ref.c:201 +#: builtin/grep.c:744 builtin/show-ref.c:184 msgid "show usage" msgstr "hiển thị cách dùng" -#: builtin/grep.c:921 +#: builtin/grep.c:811 msgid "no pattern given." msgstr "chÆ°a chỉ ra mẫu." -#: builtin/grep.c:935 +#: builtin/grep.c:825 #, c-format msgid "bad object %s" msgstr "đối tượng sai %s" -#: builtin/grep.c:976 +#: builtin/grep.c:866 msgid "--open-files-in-pager only works on the worktree" msgstr "--open-files-in-pager chỉ là m việc trên cây-là m-việc" -#: builtin/grep.c:999 +#: builtin/grep.c:889 msgid "--cached or --untracked cannot be used with --no-index." msgstr "--cached hay --untracked không được sá» dụng vá»›i --no-index." -#: builtin/grep.c:1004 +#: builtin/grep.c:894 msgid "--no-index or --untracked cannot be used with revs." msgstr "" "--no-index hay --untracked không được sá» dụng cùng vá»›i các tùy chá»n liên " "quan đến revs." -#: builtin/grep.c:1007 +#: builtin/grep.c:897 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "--[no-]exclude-standard không thể sá» dụng cho ná»™i dung lÆ°u dấu vết." -#: builtin/grep.c:1015 +#: builtin/grep.c:905 msgid "both --cached and trees are given." msgstr "cả hai --cached và các cây phải được chỉ ra." @@ -4839,7 +4883,7 @@ msgstr "git help [--all] [--man|--web|--info] [lệnh]" #: builtin/help.c:65 #, c-format msgid "unrecognized help format '%s'" -msgstr "không nháºn ra định dạng trợ giúp `%s'" +msgstr "không nháºn ra định dạng trợ giúp “%sâ€" #: builtin/help.c:93 msgid "Failed to start emacsclient." @@ -4852,12 +4896,12 @@ msgstr "Gặp lá»—i khi phân tÃch phiên bản emacsclient." #: builtin/help.c:114 #, c-format msgid "emacsclient version '%d' too old (< 22)." -msgstr "phiên bản của emacsclient `%d' quá cÅ© (< 22)." +msgstr "phiên bản của emacsclient “%d†quá cÅ© (< 22)." #: builtin/help.c:132 builtin/help.c:160 builtin/help.c:169 builtin/help.c:177 #, c-format msgid "failed to exec '%s': %s" -msgstr "gặp lá»—i khi thá»±c thi `%s': %s" +msgstr "gặp lá»—i khi thá»±c thi “%sâ€: %s" #: builtin/help.c:217 #, c-format @@ -4865,8 +4909,8 @@ msgid "" "'%s': path for unsupported man viewer.\n" "Please consider using 'man.<tool>.cmd' instead." msgstr "" -"`%s': Ä‘Æ°á»ng dẫn không há»— trợ bá»™ trình chiếu man.\n" -"Hãy cân nhắc đến việc sá» dụng 'man.<tool>.cmd' để thay thế." +"“%sâ€: Ä‘Æ°á»ng dẫn không há»— trợ bá»™ trình chiếu man.\n" +"Hãy cân nhắc đến việc sá» dụng “man.<tool>.cmd†để thay thế." #: builtin/help.c:229 #, c-format @@ -4874,8 +4918,8 @@ msgid "" "'%s': cmd for supported man viewer.\n" "Please consider using 'man.<tool>.path' instead." msgstr "" -"`%s': cmd (lệnh) há»— trợ bá»™ trình chiếu man.\n" -"Hãy cân nhắc đến việc sá» dụng 'man.<tool>.path' để thay thế." +"“%sâ€: cmd (lệnh) há»— trợ bá»™ trình chiếu man.\n" +"Hãy cân nhắc đến việc sá» dụng “man.<tool>.path†để thay thế." #: builtin/help.c:299 msgid "The most commonly used git commands are:" @@ -4884,7 +4928,7 @@ msgstr "Những lệnh git hay được sá» dụng nhất là :" #: builtin/help.c:367 #, c-format msgid "'%s': unknown man viewer." -msgstr "`%s': không rõ chÆ°Æ¡ng trình xem man." +msgstr "“%sâ€: không rõ chÆ°Æ¡ng trình xem man." #: builtin/help.c:384 msgid "no man viewer handled the request" @@ -4939,12 +4983,12 @@ msgstr "pack quá lá»›n so vá»›i định nghÄ©a hiện tại của kiểu off_t" #: builtin/index-pack.c:273 #, c-format msgid "unable to create '%s'" -msgstr "không thể tạo `%s'" +msgstr "không thể tạo “%sâ€" #: builtin/index-pack.c:278 #, c-format msgid "cannot open packfile '%s'" -msgstr "không thể mở packfile `%s'" +msgstr "không thể mở packfile “%sâ€" #: builtin/index-pack.c:292 msgid "pack signature mismatch" @@ -5104,12 +5148,12 @@ msgstr "gặp lá»—i trong khi đóng táºp tin pack" #: builtin/index-pack.c:1266 #, c-format msgid "cannot write keep file '%s'" -msgstr "không thể ghi táºp tin giữ lại `%s'" +msgstr "không thể ghi táºp tin giữ lại “%sâ€" #: builtin/index-pack.c:1274 #, c-format msgid "cannot close written keep file '%s'" -msgstr "không thể đóng táºp tin giữ lại đã được ghi `%s'" +msgstr "không thể đóng táºp tin giữ lại đã được ghi “%sâ€" #: builtin/index-pack.c:1287 msgid "cannot store pack file" @@ -5137,12 +5181,12 @@ msgstr "không há»— trợ Ä‘a tuyến, bá» qua %s" #: builtin/index-pack.c:1399 #, c-format msgid "Cannot open existing pack file '%s'" -msgstr "Không thể mở táºp tin pack đã sẵn có `%s'" +msgstr "Không thể mở táºp tin pack đã sẵn có “%sâ€" #: builtin/index-pack.c:1401 #, c-format msgid "Cannot open existing pack idx file for '%s'" -msgstr "Không thể mở táºp tin 'pack idx' cho `%s'" +msgstr "Không thể mở táºp tin “pack idx†cho “%sâ€" #: builtin/index-pack.c:1448 #, c-format @@ -5175,7 +5219,7 @@ msgstr "--fix-thin không thể được dùng mà không có --stdin" #: builtin/index-pack.c:1563 builtin/index-pack.c:1573 #, c-format msgid "packfile name '%s' does not end with '.pack'" -msgstr "tên táºp tin packfile `%s' không được kết thúc bằng Ä‘uôi '.pack'" +msgstr "tên táºp tin packfile “%s†không được kết thúc bằng Ä‘uôi “.packâ€" #: builtin/index-pack.c:1582 msgid "--verify with no packfile name given" @@ -5194,22 +5238,22 @@ msgstr "tên mẫu dà i má»™t cách Ä‘iên rồ %s" #: builtin/init-db.c:67 #, c-format msgid "cannot stat '%s'" -msgstr "không thể lấy trạng thái (stat) vá» `%s'" +msgstr "không thể lấy trạng thái (stat) vỠ“%sâ€" #: builtin/init-db.c:73 #, c-format msgid "cannot stat template '%s'" -msgstr "không thể stat (lấy trạng thái vá») mẫu `%s'" +msgstr "không thể stat (lấy trạng thái vá») mẫu “%sâ€" #: builtin/init-db.c:80 #, c-format msgid "cannot opendir '%s'" -msgstr "không thể opendir `%s'" +msgstr "không thể opendir “%sâ€" #: builtin/init-db.c:97 #, c-format msgid "cannot readlink '%s'" -msgstr "không thể readlink `%s'" +msgstr "không thể readlink “%sâ€" #: builtin/init-db.c:99 #, c-format @@ -5219,7 +5263,7 @@ msgstr "liên kết tượng trÆ°ng dà i má»™t cách Ä‘iên rồ %s" #: builtin/init-db.c:102 #, c-format msgid "cannot symlink '%s' '%s'" -msgstr "không thể tạo liên kết tượng trÆ°ng (symlink) `%s' `%s'" +msgstr "không thể tạo liên kết tượng trÆ°ng (symlink) “%s†“%sâ€" #: builtin/init-db.c:106 #, c-format @@ -5244,7 +5288,7 @@ msgstr "các mẫu không được tìm thấy %s" #: builtin/init-db.c:154 #, c-format msgid "not copying templates of a wrong format version %d from '%s'" -msgstr "không sao chép các mẫu của phiên bản sai định dạng %d từ `%s'" +msgstr "không sao chép các mẫu của phiên bản sai định dạng %d từ “%sâ€" #: builtin/init-db.c:192 #, c-format @@ -5269,7 +5313,7 @@ msgstr "không di chuyển được %s và o %s" #: builtin/init-db.c:363 #, c-format msgid "Could not create git link %s" -msgstr "Không thể tạo liên kết git `%s'" +msgstr "Không thể tạo liên kết git “%sâ€" #. #. * TRANSLATORS: The first '%s' is either "Reinitialized @@ -5343,7 +5387,7 @@ msgstr "Không thể truy cáºp thÆ° mục là m việc hiện hà nh" #: builtin/init-db.c:586 #, c-format msgid "Cannot access work tree '%s'" -msgstr "không thể truy cáºp cây (tree) là m việc `%s'" +msgstr "không thể truy cáºp cây (tree) là m việc “%sâ€" #: builtin/log.c:37 msgid "git log [<options>] [<since>..<until>] [[--] <path>...]\n" @@ -5370,213 +5414,213 @@ msgstr "các tùy chá»n trang trÃ" msgid "Final output: %d %s\n" msgstr "Kết xuất cuối cùng: %d %s\n" -#: builtin/log.c:403 builtin/log.c:494 +#: builtin/log.c:405 builtin/log.c:497 #, c-format msgid "Could not read object %s" msgstr "Không thể Ä‘á»c đối tượng %s" -#: builtin/log.c:518 +#: builtin/log.c:521 #, c-format msgid "Unknown type: %d" msgstr "Không nháºn ra kiểu: %d" -#: builtin/log.c:608 +#: builtin/log.c:613 msgid "format.headers without value" msgstr "format.headers không có giá trị cụ thể" -#: builtin/log.c:682 +#: builtin/log.c:687 msgid "name of output directory is too long" msgstr "tên của thÆ° mục kết xuất quá dà i" -#: builtin/log.c:693 +#: builtin/log.c:698 #, c-format msgid "Cannot open patch file %s" msgstr "Không thể mở táºp tin miếng vá: %s" -#: builtin/log.c:707 +#: builtin/log.c:712 msgid "Need exactly one range." msgstr "Cần chÃnh xác má»™t vùng." -#: builtin/log.c:715 +#: builtin/log.c:720 msgid "Not a range." msgstr "Không phải là má»™t vùng." -#: builtin/log.c:789 +#: builtin/log.c:794 msgid "Cover letter needs email format" -msgstr "'Cover letter' cần cho định dạng thÆ°" +msgstr "â€Cover letter†cần cho định dạng thÆ°" -#: builtin/log.c:862 +#: builtin/log.c:867 #, c-format msgid "insane in-reply-to: %s" msgstr "in-reply-to Ä‘iên rồ: %s" -#: builtin/log.c:890 +#: builtin/log.c:895 msgid "git format-patch [options] [<since> | <revision range>]" msgstr "git format-patch [các-tùy-chá»n] [<kể-từ> | <vùng-xem-xét>]" -#: builtin/log.c:935 +#: builtin/log.c:940 msgid "Two output directories?" msgstr "Hai thÆ° mục kết xuất?" -#: builtin/log.c:1063 +#: builtin/log.c:1068 msgid "use [PATCH n/m] even with a single patch" msgstr "dùng [PATCH n/m] ngay cả vá»›i miếng vá Ä‘Æ¡n" -#: builtin/log.c:1066 +#: builtin/log.c:1071 msgid "use [PATCH] even with multiple patches" msgstr "dùng [VÃ] ngay cả vá»›i các miếng vá phức tạp" -#: builtin/log.c:1070 +#: builtin/log.c:1075 msgid "print patches to standard out" msgstr "hiển thị miếng vá ra đầu ra chuẩn" -#: builtin/log.c:1072 +#: builtin/log.c:1077 msgid "generate a cover letter" msgstr "tạo bì thÆ°" -#: builtin/log.c:1074 +#: builtin/log.c:1079 msgid "use simple number sequence for output file names" msgstr "sá» dụng chá»—i dãy số dạng Ä‘Æ¡n giản cho tên táºp-tin xuất ra" -#: builtin/log.c:1075 +#: builtin/log.c:1080 msgid "sfx" msgstr "sfx" -#: builtin/log.c:1076 +#: builtin/log.c:1081 msgid "use <sfx> instead of '.patch'" -msgstr "sá» dụng <sfx> thay cho '.patch'" +msgstr "sá» dụng <sfx> thay cho “.patchâ€" -#: builtin/log.c:1078 +#: builtin/log.c:1083 msgid "start numbering patches at <n> instead of 1" msgstr "bắt đầu đánh số miếng vá từ <n> thay vì 1" -#: builtin/log.c:1080 +#: builtin/log.c:1085 msgid "Use [<prefix>] instead of [PATCH]" msgstr "Dùng [<tiá»n-tố>] thay cho [VÃ]" -#: builtin/log.c:1083 +#: builtin/log.c:1088 msgid "store resulting files in <dir>" msgstr "lÆ°u các táºp tin kết quả trong <t.mục>" -#: builtin/log.c:1086 +#: builtin/log.c:1091 msgid "don't strip/add [PATCH]" msgstr "không strip/add [VÃ]" -#: builtin/log.c:1089 +#: builtin/log.c:1094 msgid "don't output binary diffs" msgstr "không kết xuất diff (những khác biệt) nhị phân" -#: builtin/log.c:1091 +#: builtin/log.c:1096 msgid "don't include a patch matching a commit upstream" msgstr "không bao gồm miếng vá khá»›p vá»›i má»™t lần chuyển giao thượng nguồn" -#: builtin/log.c:1093 +#: builtin/log.c:1098 msgid "show patch format instead of default (patch + stat)" msgstr "hiển thị định dạng miếng vá thay vì mặc định (miếng vá + thống kê)" -#: builtin/log.c:1095 +#: builtin/log.c:1100 msgid "Messaging" msgstr "Lá»i nhắn" -#: builtin/log.c:1096 +#: builtin/log.c:1101 msgid "header" msgstr "đầu Ä‘á» thÆ°" -#: builtin/log.c:1097 +#: builtin/log.c:1102 msgid "add email header" msgstr "thêm đầu Ä‘á» thÆ°" -#: builtin/log.c:1098 builtin/log.c:1100 +#: builtin/log.c:1103 builtin/log.c:1105 msgid "email" msgstr "thÆ° Ä‘iện tá»" -#: builtin/log.c:1098 +#: builtin/log.c:1103 msgid "add To: header" msgstr "thêm To: đầu Ä‘á» thÆ°" -#: builtin/log.c:1100 +#: builtin/log.c:1105 msgid "add Cc: header" msgstr "thêm Cc: đầu Ä‘á» thÆ°" -#: builtin/log.c:1102 +#: builtin/log.c:1107 msgid "message-id" msgstr "message-id" -#: builtin/log.c:1103 +#: builtin/log.c:1108 msgid "make first mail a reply to <message-id>" msgstr "dùng thÆ° đầu tiên để trả lá»i <message-id>" -#: builtin/log.c:1104 builtin/log.c:1107 +#: builtin/log.c:1109 builtin/log.c:1112 msgid "boundary" msgstr "ranh giá»›i" -#: builtin/log.c:1105 +#: builtin/log.c:1110 msgid "attach the patch" msgstr "Ä‘Ãnh kèm miếng vá" -#: builtin/log.c:1108 +#: builtin/log.c:1113 msgid "inline the patch" msgstr "dùng miếng vá là m ná»™i dung" -#: builtin/log.c:1112 +#: builtin/log.c:1117 msgid "enable message threading, styles: shallow, deep" -msgstr "cho phép luồng lá»i nhắn, kiểu: `shallow', `deep'" +msgstr "cho phép luồng lá»i nhắn, kiểu: “shallowâ€, “deepâ€" -#: builtin/log.c:1114 +#: builtin/log.c:1119 msgid "signature" msgstr "chữ ký" -#: builtin/log.c:1115 +#: builtin/log.c:1120 msgid "add a signature" msgstr "thêm chữ ký" -#: builtin/log.c:1117 +#: builtin/log.c:1122 msgid "don't print the patch filenames" msgstr "không hiển thị các tên táºp tin của miếng vá" -#: builtin/log.c:1157 +#: builtin/log.c:1163 #, c-format msgid "bogus committer info %s" msgstr "thông tin ngÆ°á»i chuyển giao không có thá»±c %s" -#: builtin/log.c:1202 +#: builtin/log.c:1208 msgid "-n and -k are mutually exclusive." msgstr "-n và -k loại từ lẫn nhau." -#: builtin/log.c:1204 +#: builtin/log.c:1210 msgid "--subject-prefix and -k are mutually exclusive." msgstr "--subject-prefix và -k xung khắc nhau." -#: builtin/log.c:1212 +#: builtin/log.c:1218 msgid "--name-only does not make sense" msgstr "--name-only không hợp lý" -#: builtin/log.c:1214 +#: builtin/log.c:1220 msgid "--name-status does not make sense" msgstr "--name-status không hợp lý" -#: builtin/log.c:1216 +#: builtin/log.c:1222 msgid "--check does not make sense" msgstr "--check không hợp lý" -#: builtin/log.c:1239 +#: builtin/log.c:1245 msgid "standard output, or directory, which one?" msgstr "đầu ra chuẩn, hay thÆ° mục, chá»n cái nà o?" -#: builtin/log.c:1241 +#: builtin/log.c:1247 #, c-format msgid "Could not create directory '%s'" -msgstr "Không thể tạo thÆ° mục `%s'" +msgstr "Không thể tạo thÆ° mục “%sâ€" -#: builtin/log.c:1394 +#: builtin/log.c:1400 msgid "Failed to create output files" msgstr "Gặp lá»—i khi tạo các táºp tin kết xuất" -#: builtin/log.c:1443 +#: builtin/log.c:1449 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [<thượng-nguồn> [<head> [<giá»›i-hạn>]]]" -#: builtin/log.c:1498 +#: builtin/log.c:1504 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" @@ -5584,7 +5628,7 @@ msgstr "" "Không tìm thấy nhánh mạng bị theo vết, hãy chỉ định <thượng-nguồn> má»™t cách " "thủ công.\n" -#: builtin/log.c:1511 builtin/log.c:1513 builtin/log.c:1525 +#: builtin/log.c:1517 builtin/log.c:1519 builtin/log.c:1531 #, c-format msgid "Unknown commit %s" msgstr "Không hiểu lần chuyển giao (commit) %s" @@ -5600,7 +5644,7 @@ msgstr "nháºn dạng các trạng thái táºp tin vá»›i thẻ" #: builtin/ls-files.c:465 msgid "use lowercase letters for 'assume unchanged' files" msgstr "" -"dùng chữ cái viết thÆ°á»ng cho các táºp tin 'assume unchanged' (giả định không " +"dùng chữ cái viết thÆ°á»ng cho các táºp tin “assume unchanged†(giả định không " "thay đổi)" #: builtin/ls-files.c:467 @@ -5633,7 +5677,7 @@ msgstr "hiển thị các táºp tin trên hệ thống táºp tin mà nó cần Ä #: builtin/ls-files.c:482 msgid "show 'other' directories' name only" -msgstr "chỉ hiển thị tên của các thÆ° mục 'khác'" +msgstr "chỉ hiển thị tên của các thÆ° mục “khácâ€" #: builtin/ls-files.c:485 msgid "don't show empty directories" @@ -5739,7 +5783,7 @@ msgstr "switch `m' yêu cầu má»™t giá trị" #: builtin/merge.c:127 #, c-format msgid "Could not find merge strategy '%s'.\n" -msgstr "Không tìm thấy chiến lược hòa trá»™n `%s'.\n" +msgstr "Không tìm thấy chiến lược hòa trá»™n “%sâ€.\n" #: builtin/merge.c:128 #, c-format @@ -5854,7 +5898,7 @@ msgstr "Không thông Ä‘iệp hòa trá»™n -- không cáºp nháºt HEAD\n" #: builtin/merge.c:436 #, c-format msgid "'%s' does not point to a commit" -msgstr "`%s' không chỉ đến má»™t lần chuyển giao (commit) nà o cả" +msgstr "“%s†không chỉ đến má»™t lần chuyển giao (commit) nà o cả" #: builtin/merge.c:535 #, c-format @@ -5865,37 +5909,33 @@ msgstr "Chuá»—i branch.%s.mergeoptions sai: %s" msgid "git write-tree failed to write a tree" msgstr "lệnh git write-tree gặp lá»—i khi ghi má»™t cây" -#: builtin/merge.c:678 -msgid "failed to read the cache" -msgstr "gặp lá»—i khi Ä‘á»c bá»™ nhá»› tạm" - -#: builtin/merge.c:709 +#: builtin/merge.c:656 msgid "Not handling anything other than two heads merge." msgstr "Không cầm nắm gì ngoà i hai head hòa trá»™n" -#: builtin/merge.c:723 +#: builtin/merge.c:670 #, c-format msgid "Unknown option for merge-recursive: -X%s" msgstr "Không hiểu tùy chá»n cho merge-recursive: -X%s" -#: builtin/merge.c:737 +#: builtin/merge.c:684 #, c-format msgid "unable to write %s" msgstr "không thể ghi %s" -#: builtin/merge.c:876 +#: builtin/merge.c:773 #, c-format msgid "Could not read from '%s'" -msgstr "Không thể Ä‘á»c từ `%s'" +msgstr "Không thể Ä‘á»c từ “%sâ€" -#: builtin/merge.c:885 +#: builtin/merge.c:782 #, c-format msgid "Not committing merge; use 'git commit' to complete the merge.\n" msgstr "" -"Vẫn chÆ°a hòa trá»™n các lần chuyển giao (commit); sá» dụng lệnh `git commit' để " +"Vẫn chÆ°a hòa trá»™n các lần chuyển giao (commit); sá» dụng lệnh “git commit†để " "hoà n tất việc hòa trá»™n.\n" -#: builtin/merge.c:891 +#: builtin/merge.c:788 msgid "" "Please enter a commit message to explain why this merge is necessary,\n" "especially if it merges an updated upstream into a topic branch.\n" @@ -5908,59 +5948,59 @@ msgstr "" "đặc biệt là khi nó hòa trá»™n thượng nguồn đã cáºp nháºt và o trong má»™t nhánh " "topic.\n" "\n" -"Những dòng được bắt đầu bằng '#' sẽ được bá» qua, và phần chú thÃch nà y nếu " +"Những dòng được bắt đầu bằng “#†sẽ được bá» qua, và phần chú thÃch nà y nếu " "rá»—ng\n" "sẽ là m hủy bá» lần chuyển giao (commit).\n" -#: builtin/merge.c:915 +#: builtin/merge.c:812 msgid "Empty commit message." msgstr "Chú thÃch của lần commit (chuyển giao) bị trống rá»—ng." -#: builtin/merge.c:927 +#: builtin/merge.c:824 #, c-format msgid "Wonderful.\n" msgstr "Thần kỳ.\n" -#: builtin/merge.c:992 +#: builtin/merge.c:889 #, c-format msgid "Automatic merge failed; fix conflicts and then commit the result.\n" msgstr "" "Việc tá»± Ä‘á»™ng hòa trá»™n gặp lá»—i; hãy sá»a các xung Ä‘á»™t sau đó chuyển giao " "(commit) kết quả.\n" -#: builtin/merge.c:1008 +#: builtin/merge.c:905 #, c-format msgid "'%s' is not a commit" msgstr "%s không phải là má»™t lần commit (chuyển giao)" -#: builtin/merge.c:1049 +#: builtin/merge.c:946 msgid "No current branch." msgstr "không phải nhánh hiện hà nh" -#: builtin/merge.c:1051 +#: builtin/merge.c:948 msgid "No remote for the current branch." msgstr "Không có máy chủ cho nhánh hiện hà nh." -#: builtin/merge.c:1053 +#: builtin/merge.c:950 msgid "No default upstream defined for the current branch." msgstr "Không có thượng nguồn mặc định được định nghÄ©a cho nhánh hiện hà nh." -#: builtin/merge.c:1058 +#: builtin/merge.c:955 #, c-format msgid "No remote tracking branch for %s from %s" msgstr "Không nhánh mạng theo vết cho %s từ %s" -#: builtin/merge.c:1145 builtin/merge.c:1302 +#: builtin/merge.c:1042 builtin/merge.c:1199 #, c-format msgid "%s - not something we can merge" msgstr "%s - không phải là má»™t số thứ chúng tôi có thể hòa trá»™n" -#: builtin/merge.c:1213 +#: builtin/merge.c:1110 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "" "Ở đây không có lần hòa trá»™n nà o được hủy bá» giữa chừng cả (thiếu MERGE_HEAD)." -#: builtin/merge.c:1229 git-pull.sh:31 +#: builtin/merge.c:1126 git-pull.sh:31 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -5968,11 +6008,11 @@ msgstr "" "Bạn chÆ°a kết thúc việc hòa trá»™ng (MERGE_HEAD vẫn tồn tại).\n" "Hãy chuyển giao (commit) các thay đổi trÆ°á»›c khi bạn có thể hòa trá»™n." -#: builtin/merge.c:1232 git-pull.sh:34 +#: builtin/merge.c:1129 git-pull.sh:34 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "Bạn chÆ°a kết thúc việc hòa trá»™ng (MERGE_HEAD vẫn tồn tại)." -#: builtin/merge.c:1236 +#: builtin/merge.c:1133 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you can merge." @@ -5980,85 +6020,85 @@ msgstr "" "Bạn chÆ°a kết thúc việc cherry-pick (CHERRY_PICK_HEAD vẫn tồn tại).\n" "Hãy chuyển giao (commit) các thay đổi trÆ°á»›c khi bạn có thể hòa trá»™n." -#: builtin/merge.c:1239 +#: builtin/merge.c:1136 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." msgstr "Bạn chÆ°a kết thúc việc cherry-pick (CHERRY_PICK_HEAD vẫn tồn tại)." -#: builtin/merge.c:1248 +#: builtin/merge.c:1145 msgid "You cannot combine --squash with --no-ff." msgstr "Bạn không thể kết hợp --squash vá»›i --no-ff." -#: builtin/merge.c:1253 +#: builtin/merge.c:1150 msgid "You cannot combine --no-ff with --ff-only." msgstr "Bạn không thể kết hợp --no-ff vá»›i --ff-only." -#: builtin/merge.c:1260 +#: builtin/merge.c:1157 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "" "Không chỉ ra lần chuyển giao (commit) và merge.defaultToUpstream chÆ°a được " "đặt." -#: builtin/merge.c:1292 +#: builtin/merge.c:1189 msgid "Can merge only exactly one commit into empty head" msgstr "" "Không thể hòa trá»™n má»™t cách đúng đắn má»™t lần chuyển giao (commit) và o má»™t " "head rá»—ng" -#: builtin/merge.c:1295 +#: builtin/merge.c:1192 msgid "Squash commit into empty head not supported yet" msgstr "Squash commit và o má»™t head trống rá»—ng vẫn chÆ°a được há»— trợ" -#: builtin/merge.c:1297 +#: builtin/merge.c:1194 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "" "Chuyển giao (commit) không-fast-forward không hợp lý ở trong má»™t head trống " "rá»—ng" -#: builtin/merge.c:1412 +#: builtin/merge.c:1309 #, c-format msgid "Updating %s..%s\n" msgstr "Äang cáºp nháºt %s..%s\n" -#: builtin/merge.c:1450 +#: builtin/merge.c:1348 #, c-format msgid "Trying really trivial in-index merge...\n" -msgstr "Äang thá» hòa trá»™n kiểu 'trivial in-index'...\n" +msgstr "Äang thá» hòa trá»™n kiểu “trivial in-indexâ€...\n" -#: builtin/merge.c:1457 +#: builtin/merge.c:1355 #, c-format msgid "Nope.\n" msgstr "Không.\n" -#: builtin/merge.c:1489 +#: builtin/merge.c:1387 msgid "Not possible to fast-forward, aborting." msgstr "Thá»±c hiện lệnh fast-forward là không thể được, Ä‘ang bá» qua." -#: builtin/merge.c:1512 builtin/merge.c:1591 +#: builtin/merge.c:1410 builtin/merge.c:1489 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "Äang tua lại cây thà nh thá»i xa xÆ°a...\n" -#: builtin/merge.c:1516 +#: builtin/merge.c:1414 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Äang thá» chiến lược hòa trá»™n %s...\n" -#: builtin/merge.c:1582 +#: builtin/merge.c:1480 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "Không có chiến lược hòa trá»™n nà o được nắm giữ (handle) sá»± hòa trá»™n.\n" -#: builtin/merge.c:1584 +#: builtin/merge.c:1482 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "Hòa trá»™n vá»›i chiến lược %s gặp lá»—i.\n" -#: builtin/merge.c:1593 +#: builtin/merge.c:1491 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "Sá» dụng %s để chuẩn bị giải quyết bằng tay.\n" -#: builtin/merge.c:1605 +#: builtin/merge.c:1503 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -6091,7 +6131,7 @@ msgstr "tìm tổ tiên của hòa trá»™n n-way Ä‘Æ¡n" #: builtin/merge-base.c:100 msgid "list revs not reachable from others" -msgstr "liệt kê các 'rev' mà nó không thể Ä‘á»c được từ cái khác" +msgstr "liệt kê các “rev†mà nó không thể Ä‘á»c được từ cái khác" #: builtin/merge-base.c:102 msgid "is the first one ancestor of the other?" @@ -6168,7 +6208,7 @@ msgstr "bá» qua các lá»—i liên quan đến di chuyển, đổi tên" #: builtin/mv.c:108 #, c-format msgid "Checking rename of '%s' to '%s'\n" -msgstr "Äang kiểm tra việc đổi tên của `%s' thà nh `%s'\n" +msgstr "Äang kiểm tra việc đổi tên của “%s†thà nh “%sâ€\n" #: builtin/mv.c:112 msgid "bad source" @@ -6202,7 +6242,7 @@ msgstr "Ä‘Ãch đã tồn tại sẵn rồi" #: builtin/mv.c:181 #, c-format msgid "overwriting '%s'" -msgstr "Ä‘ang ghi đè lên `%s'" +msgstr "Ä‘ang ghi đè lên “%sâ€" #: builtin/mv.c:184 msgid "Cannot overwrite" @@ -6262,7 +6302,7 @@ msgstr "Ä‘á»c từ đầu và o tiêu chuẩn" #: builtin/name-rev.c:236 msgid "allow to print `undefined` names" -msgstr "cho phép hiển thị các tên `chÆ°a định nghÄ©a'" +msgstr "cho phép hiển thị các tên `chÆ°a định nghÄ©a`" #: builtin/notes.c:26 msgid "git notes [--ref <notes_ref>] [list [<object>]]" @@ -6377,26 +6417,26 @@ msgstr "git notes get-ref" #: builtin/notes.c:142 #, c-format msgid "unable to start 'show' for object '%s'" -msgstr "không thể khởi chạy 'show' cho đối tượng `%s'" +msgstr "không thể khởi chạy “show†cho đối tượng “%sâ€" #: builtin/notes.c:148 msgid "can't fdopen 'show' output fd" -msgstr "không thể fdopen 'show' (lệnh hiển thị) mô tả táºp tin (fd) kết xuất" +msgstr "không thể fdopen “show†(lệnh hiển thị) mô tả táºp tin (fd) kết xuất" #: builtin/notes.c:158 #, c-format msgid "failed to close pipe to 'show' for object '%s'" -msgstr "gặp lá»—i khi đóng Ä‘Æ°á»ng ống cho lệnh 'show' cho đối tượng `%s'" +msgstr "gặp lá»—i khi đóng Ä‘Æ°á»ng ống cho lệnh “show†cho đối tượng “%sâ€" #: builtin/notes.c:161 #, c-format msgid "failed to finish 'show' for object '%s'" -msgstr "gặp lá»—i khi hoà n thà nh `show' cho đối tượng `%s'" +msgstr "gặp lá»—i khi hoà n thà nh “show†cho đối tượng “%sâ€" #: builtin/notes.c:178 builtin/tag.c:347 #, c-format msgid "could not create file '%s'" -msgstr "không thể tạo táºp tin `%s'" +msgstr "không thể tạo táºp tin “%sâ€" #: builtin/notes.c:192 msgid "Please supply the note contents using either -m or -F option" @@ -6420,12 +6460,12 @@ msgstr "Ná»™i dung ghi chú còn lại %s" #: builtin/notes.c:254 builtin/tag.c:542 #, c-format msgid "cannot read '%s'" -msgstr "không thể Ä‘á»c `%s'" +msgstr "không thể Ä‘á»c “%sâ€" #: builtin/notes.c:256 builtin/tag.c:545 #, c-format msgid "could not open or read '%s'" -msgstr "không thể mở để Ä‘á»c hay ghi `%s'" +msgstr "không thể mở để Ä‘á»c hay ghi “%sâ€" #: builtin/notes.c:275 builtin/notes.c:448 builtin/notes.c:450 #: builtin/notes.c:510 builtin/notes.c:564 builtin/notes.c:647 @@ -6433,12 +6473,12 @@ msgstr "không thể mở để Ä‘á»c hay ghi `%s'" #: builtin/notes.c:971 builtin/reset.c:293 builtin/tag.c:558 #, c-format msgid "Failed to resolve '%s' as a valid ref." -msgstr "Gặp lá»—i khi giải quyết `%s' nhÆ° là má»™t tham chiếu (ref) hợp lệ." +msgstr "Gặp lá»—i khi giải quyết “%s†nhÆ° là má»™t tham chiếu (ref) hợp lệ." #: builtin/notes.c:278 #, c-format msgid "Failed to read object '%s'." -msgstr "Gặp lá»—i khi Ä‘á»c đối tượng `%s'." +msgstr "Gặp lá»—i khi Ä‘á»c đối tượng “%sâ€." #: builtin/notes.c:302 msgid "Cannot commit uninitialized/unreferenced notes tree" @@ -6449,7 +6489,7 @@ msgstr "" #: builtin/notes.c:343 #, c-format msgid "Bad notes.rewriteMode value: '%s'" -msgstr "Giá trị notes.rewriteMode sai: `%s'" +msgstr "Giá trị notes.rewriteMode sai: “%sâ€" #: builtin/notes.c:353 #, c-format @@ -6461,17 +6501,17 @@ msgstr "Từ chối ghi đè ghi chú trong %s (nằm ngoà i của refs/notes/)" #: builtin/notes.c:380 #, c-format msgid "Bad %s value: '%s'" -msgstr "Giá trị %s sai: `%s'" +msgstr "Giá trị %s sai: “%sâ€" #: builtin/notes.c:444 #, c-format msgid "Malformed input line: '%s'." -msgstr "Dòng nháºp và o dị hình: `%s'." +msgstr "Dòng nháºp và o dị hình: “%sâ€." #: builtin/notes.c:459 #, c-format msgid "Failed to copy notes from '%s' to '%s'" -msgstr "Gặp lá»—i khi sao chép ghi chú (note) từ `%s' tá»›i `%s'" +msgstr "Gặp lá»—i khi sao chép ghi chú (note) từ “%s†tá»›i “%sâ€" #: builtin/notes.c:503 builtin/notes.c:557 builtin/notes.c:630 #: builtin/notes.c:642 builtin/notes.c:715 builtin/notes.c:762 @@ -6516,7 +6556,7 @@ msgid "" "existing notes" msgstr "" "Không thể thêm các ghi chú. Äã tìm thấy các ghi chú đã có sẵn cho đối tượng " -"%s. Sá» dụng tùy chá»n '-f' để ghi đè lên các ghi chú cÅ©" +"%s. Sá» dụng tùy chá»n “-f†để ghi đè lên các ghi chú cÅ©" #: builtin/notes.c:588 builtin/notes.c:665 #, c-format @@ -6542,7 +6582,7 @@ msgid "" "existing notes" msgstr "" "Không thể sao chép các ghi chú. Äã tìm thấy các ghi chú đã có sẵn cho đối " -"tượng %s. Sá» dụng tùy chá»n '-f' để ghi đè lên các ghi chú cÅ©" +"tượng %s. Sá» dụng tùy chá»n “-f†để ghi đè lên các ghi chú cÅ©" #: builtin/notes.c:671 #, c-format @@ -6555,8 +6595,8 @@ msgid "" "The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n" "Please use 'git notes add -f -m/-F/-c/-C' instead.\n" msgstr "" -"Các tùy chá»n -m/-F/-c/-C đã cổ không còn dùng nữa cho lệnh con `edit'.\n" -"Xin hãy sá» dụng lệnh sau để thay thế: `git notes add -f -m/-F/-c/-C'.\n" +"Các tùy chá»n -m/-F/-c/-C đã cổ không còn dùng nữa cho lệnh con “editâ€.\n" +"Xin hãy sá» dụng lệnh sau để thay thế: “git notes add -f -m/-F/-c/-Câ€.\n" #: builtin/notes.c:867 msgid "General options" @@ -6571,7 +6611,7 @@ msgid "" "resolve notes conflicts using the given strategy (manual/ours/theirs/union/" "cat_sort_uniq)" msgstr "" -"phân giải các xung Ä‘á»™t `notes' sá» dụng chiến lược đã Ä‘Æ°a ra (manual/ours/" +"phân giải các xung Ä‘á»™t “notes†sá» dụng chiến lược đã Ä‘Æ°a ra (manual/ours/" "theirs/union/cat_sort_uniq)" #: builtin/notes.c:873 @@ -6611,7 +6651,7 @@ msgstr "notes_ref" #: builtin/notes.c:1071 msgid "use notes from <notes_ref>" -msgstr "dùng `notes' từ <notes_ref>" +msgstr "dùng “notes†từ <notes_ref>" #: builtin/notes.c:1106 builtin/remote.c:1598 #, c-format @@ -6635,146 +6675,146 @@ msgstr "" msgid "deflate error (%d)" msgstr "lá»—i giải nén (%d)" -#: builtin/pack-objects.c:2398 +#: builtin/pack-objects.c:2397 #, c-format msgid "unsupported index version %s" msgstr "phiên bản mục lục không được há»— trợ %s" -#: builtin/pack-objects.c:2402 +#: builtin/pack-objects.c:2401 #, c-format msgid "bad index version '%s'" -msgstr "phiên bản mục lục sai `%s'" +msgstr "phiên bản mục lục sai “%sâ€" -#: builtin/pack-objects.c:2425 +#: builtin/pack-objects.c:2424 #, c-format msgid "option %s does not accept negative form" msgstr "tùy chá»n %s không chấp nháºn dạng thức âm" -#: builtin/pack-objects.c:2429 +#: builtin/pack-objects.c:2428 #, c-format msgid "unable to parse value '%s' for option %s" -msgstr "không thể phân tÃch giá trị `%s' cho tùy chá»n %s" +msgstr "không thể phân tÃch giá trị “%s†cho tùy chá»n %s" -#: builtin/pack-objects.c:2448 +#: builtin/pack-objects.c:2447 msgid "do not show progress meter" msgstr "không hiển thị bá»™ Ä‘o tiến trình" -#: builtin/pack-objects.c:2450 +#: builtin/pack-objects.c:2449 msgid "show progress meter" msgstr "hiển thị bá»™ Ä‘o tiến trình" -#: builtin/pack-objects.c:2452 +#: builtin/pack-objects.c:2451 msgid "show progress meter during object writing phase" msgstr "hiển thị bá»™ Ä‘o tiến triển trong suốt pha ghi đối tượng" -#: builtin/pack-objects.c:2455 +#: builtin/pack-objects.c:2454 msgid "similar to --all-progress when progress meter is shown" msgstr "tÆ°Æ¡ng tá»± --all-progress khi bá»™ Ä‘o tiến trình được xuất hiện" -#: builtin/pack-objects.c:2456 +#: builtin/pack-objects.c:2455 msgid "version[,offset]" msgstr "phiên bản[,offset]" -#: builtin/pack-objects.c:2457 +#: builtin/pack-objects.c:2456 msgid "write the pack index file in the specified idx format version" msgstr "ghi táºp tin bảng mục lục gói (pack) ở phiên bản định dạng idx đã cho" -#: builtin/pack-objects.c:2460 +#: builtin/pack-objects.c:2459 msgid "maximum size of each output pack file" msgstr "kcÃh thÆ°á»›c tối Ä‘a cho táºp tin gói được tạo" -#: builtin/pack-objects.c:2462 +#: builtin/pack-objects.c:2461 msgid "ignore borrowed objects from alternate object store" msgstr "bá» qua các đối tượng vay mượn từ kho đối tượng thay thế" -#: builtin/pack-objects.c:2464 +#: builtin/pack-objects.c:2463 msgid "ignore packed objects" msgstr "bá» qua các đối tượng đóng gói" -#: builtin/pack-objects.c:2466 +#: builtin/pack-objects.c:2465 msgid "limit pack window by objects" msgstr "giá»›i hạn cá»a sổ đóng gói theo đối tượng" -#: builtin/pack-objects.c:2468 +#: builtin/pack-objects.c:2467 msgid "limit pack window by memory in addition to object limit" msgstr "giá»›i hạn cá»a sổ đóng gói theo bá»™ nhá»› cá»™ng thêm vá»›i giá»›i hạn đối tượng" -#: builtin/pack-objects.c:2470 +#: builtin/pack-objects.c:2469 msgid "maximum length of delta chain allowed in the resulting pack" -msgstr "Ä‘á»™ dà i tối Ä‘a của chuá»—i móc xÃch `delta' được phép trong gói kết quả" +msgstr "Ä‘á»™ dà i tối Ä‘a của chuá»—i móc xÃch “delta†được phép trong gói kết quả" -#: builtin/pack-objects.c:2472 +#: builtin/pack-objects.c:2471 msgid "reuse existing deltas" msgstr "dùng lại các delta sẵn có" -#: builtin/pack-objects.c:2474 +#: builtin/pack-objects.c:2473 msgid "reuse existing objects" msgstr "dùng lại các đối tượng sẵn có" -#: builtin/pack-objects.c:2476 +#: builtin/pack-objects.c:2475 msgid "use OFS_DELTA objects" msgstr "dùng các đối tượng OFS_DELTA" -#: builtin/pack-objects.c:2478 +#: builtin/pack-objects.c:2477 msgid "use threads when searching for best delta matches" msgstr "sá» dụng các tuyến trình khi tìm kiếm cho các mẫu khá»›p delta tốt nhất" -#: builtin/pack-objects.c:2480 +#: builtin/pack-objects.c:2479 msgid "do not create an empty pack output" msgstr "không thể tạo kết xuất gói (pack) trống rá»—ng" -#: builtin/pack-objects.c:2482 +#: builtin/pack-objects.c:2481 msgid "read revision arguments from standard input" -msgstr " Ä‘á»c tham số `revision' từ thiết bị nháºp chuẩn" +msgstr " Ä‘á»c tham số “revision†từ thiết bị nháºp chuẩn" -#: builtin/pack-objects.c:2484 +#: builtin/pack-objects.c:2483 msgid "limit the objects to those that are not yet packed" msgstr "giá»›i hạn các đối tượng thà nh những cái mà chúng vẫn chÆ°a được đóng gói" -#: builtin/pack-objects.c:2487 +#: builtin/pack-objects.c:2486 msgid "include objects reachable from any reference" msgstr "bao gồm các đối tượng có thể Ä‘á»c được từ bất kỳ tham chiếu nà o" -#: builtin/pack-objects.c:2490 +#: builtin/pack-objects.c:2489 msgid "include objects referred by reflog entries" msgstr "bao gồm các đối tượng được tham chiếu bởi các mục reflog" -#: builtin/pack-objects.c:2493 +#: builtin/pack-objects.c:2492 msgid "output pack to stdout" msgstr "xuất gói ra đầu ra tiêu chuẩn" -#: builtin/pack-objects.c:2495 +#: builtin/pack-objects.c:2494 msgid "include tag objects that refer to objects to be packed" msgstr "bao gồm các đối tượng tham chiếu đến các đối tượng được đóng gói" -#: builtin/pack-objects.c:2497 +#: builtin/pack-objects.c:2496 msgid "keep unreachable objects" msgstr "giữ lại các đối tượng không thể Ä‘á»c được" -#: builtin/pack-objects.c:2498 parse-options.h:141 +#: builtin/pack-objects.c:2497 parse-options.h:141 msgid "time" msgstr "thá»i-gian" -#: builtin/pack-objects.c:2499 +#: builtin/pack-objects.c:2498 msgid "unpack unreachable objects newer than <time>" msgstr "" "xả nén (gỡ khá»i gói) các đối tượng không thể Ä‘á»c được má»›i hÆ¡n <thá»i-gian>" -#: builtin/pack-objects.c:2502 +#: builtin/pack-objects.c:2501 msgid "create thin packs" msgstr "tạo gói nhẹ" -#: builtin/pack-objects.c:2504 +#: builtin/pack-objects.c:2503 msgid "ignore packs that have companion .keep file" msgstr "bá» qua các gói mà nó có táºp tin .keep Ä‘i kèm" -#: builtin/pack-objects.c:2506 +#: builtin/pack-objects.c:2505 msgid "pack compression level" msgstr "mức nén gói" -#: builtin/pack-objects.c:2508 +#: builtin/pack-objects.c:2507 msgid "do not hide commits by grafts" -msgstr "không ẩn các lần chuyển giao bởi `grafts'" +msgstr "không ẩn các lần chuyển giao bởi “graftsâ€" #: builtin/pack-refs.c:6 msgid "git pack-refs [options]" @@ -6826,8 +6866,8 @@ msgid "" "To choose either option permanently, see push.default in 'git help config'." msgstr "" "\n" -"Äể chá»n má»—i tùy chá»n má»™t cách cố định, xem push.default trong `git help " -"config'." +"Äể chá»n má»—i tùy chá»n má»™t cách cố định, xem push.default trong “git help " +"configâ€." #: builtin/push.c:102 #, c-format @@ -6895,9 +6935,9 @@ msgid "" "your current branch '%s', without telling me what to push\n" "to update which remote branch." msgstr "" -"Bạn Ä‘ang push (đẩy lên) máy chủ `%s', mà nó không phải là thượng nguồn " +"Bạn Ä‘ang push (đẩy lên) máy chủ “%sâ€, mà nó không phải là thượng nguồn " "(upstream) của\n" -"nhánh hiện tại `%s' của bạn, mà không báo cho tôi biết là cái gì được push\n" +"nhánh hiện tại “%s†của bạn, mà không báo cho tôi biết là cái gì được push\n" "để cáºp nháºt nhánh máy chủ nà o." #: builtin/push.c:151 @@ -6918,7 +6958,7 @@ msgid "" "'current' instead of 'simple' if you sometimes use older versions of Git)" msgstr "" "biến push.default chÆ°a được đặt; giá trị ngầm định của nó\n" -"đã được thay đổi trong Git 2.0 từ 'matching' thà nh 'simple'.\n" +"đã được thay đổi trong Git 2.0 từ “matching†thà nh “simpleâ€.\n" "Äể không hiển thị nhắc nhở nà y và duy trì cách xá» lý sau\n" "những thay đổi mặc định nà y, hãy chạy lệnh:\n" "\n" @@ -6928,10 +6968,10 @@ msgstr "" "\n" " git config --global push.default simple\n" "\n" -"Xem `git help config' và tìm đến `push.default' để có thêm thông tin.\n" -"(chế Ä‘á»™ 'simple' được bắt đầu sá» dụng từ Git 1.7.11. Sá» dụng chế Ä‘á»™ tÆ°Æ¡ng " +"Xem “git help config†và tìm đến “push.default†để có thêm thông tin.\n" +"(chế Ä‘á»™ “simple†được bắt đầu sá» dụng từ Git 1.7.11. Sá» dụng chế Ä‘á»™ tÆ°Æ¡ng " "tá»±\n" -"`current' thay vì `simple' nếu bạn thỉnh thoảng phải sá» dụng bản Git cÅ©)" +"“current†thay vì “simple†nếu bạn thỉnh thoảng phải sá» dụng bản Git cÅ©)" #: builtin/push.c:199 msgid "" @@ -6948,10 +6988,10 @@ msgid "" "See the 'Note about fast-forwards' in 'git push --help' for details." msgstr "" "Việc cáºp nháºt bị từ chối bởi vì đầu mút của nhánh được push nằm đằng sau bá»™\n" -"pháºn tÆ°Æ¡ng ứng của máy chủ. Hòa trá»™n vá»›i các thay đổi từ máy chủ (v.d. `git " -"pull')\n" +"pháºn tÆ°Æ¡ng ứng của máy chủ. Hòa trá»™n vá»›i các thay đổi từ máy chủ (v.d. “git " +"pullâ€)\n" "trÆ°á»›c khi lại push lần nữa.\n" -"Xem trong phần 'Note about fast-forwards' từ lệnh `git push --help' để có " +"Xem trong phần “Note about fast-forwards†từ lệnh “git push --help†để có " "thông tin chi tiết." #: builtin/push.c:212 @@ -6964,9 +7004,9 @@ msgstr "" "Việc cáºp nháºt bị từ chối bởi vì đầu mút của nhánh được push nằm đằng sau bá»™\n" "pháºn tÆ°Æ¡ng ứng của máy chủ. Nếu bạn không có ý định push nhánh đó, bạn có lẽ " "muốn\n" -"chỉ định các nhánh để push hoặt là đặt ná»™i dung cho biến cấu hình 'push." -"default'\n" -"thà nh 'simple', 'current' hoặc 'upstream' để chỉ push nhánh hiện hà nh mà " +"chỉ định các nhánh để push hoặt là đặt ná»™i dung cho biến cấu hình “push." +"defaultâ€\n" +"thà nh “simpleâ€, “current†hoặc “upstream†để chỉ push nhánh hiện hà nh mà " "thôi." #: builtin/push.c:218 @@ -6979,8 +7019,8 @@ msgstr "" "Việc cáºp nháºt bị từ chối bởi vì đầu mút của nhánh được push nằm đằng sau bá»™\n" "pháºn tÆ°Æ¡ng ứng của máy chủ. Checkou nhánh nà y và hòa trá»™n vá»›i các thay đổi " "từ máy chủ\n" -"(v.d. `git pull') trÆ°á»›c khi lại push lần nữa.\n" -"Xem trong phần 'Note about fast-forwards' từ lệnh `git push --help' để có " +"(v.d. “git pullâ€) trÆ°á»›c khi lại push lần nữa.\n" +"Xem trong phần “Note about fast-forwards†từ lệnh “git push --help†để có " "thông tin chi tiết." #: builtin/push.c:258 @@ -6991,12 +7031,12 @@ msgstr "Äang push (đẩy) lên %s\n" #: builtin/push.c:262 #, c-format msgid "failed to push some refs to '%s'" -msgstr "gặp lá»—i khi push (đẩy lên) má»™t số tham chiếu (ref) đến `%s'" +msgstr "gặp lá»—i khi push (đẩy lên) má»™t số tham chiếu (ref) đến “%sâ€" #: builtin/push.c:294 #, c-format msgid "bad repository '%s'" -msgstr "repository (kho) sai `%s'" +msgstr "repository (kho) sai “%sâ€" #: builtin/push.c:295 msgid "" @@ -7126,11 +7166,11 @@ msgstr "thá»±c hiện má»™t hòa trá»™n thêm và o việc Ä‘á»c" #: builtin/read-tree.c:117 msgid "3-way merge if no file level merging required" msgstr "" -"hòa trá»™n kiểu `3-way' nếu không có táºp tin mức hòa trá»™n nà o được yêu cầu " +"hòa trá»™n kiểu “3-way†nếu không có táºp tin mức hòa trá»™n nà o được yêu cầu " #: builtin/read-tree.c:119 msgid "3-way merge in presence of adds and removes" -msgstr "hòa trá»™n 3-way trong sá»± hiện diện của `adds' và `removes'" +msgstr "hòa trá»™n 3-way trong sá»± hiện diện của “adds†và “removesâ€" #: builtin/read-tree.c:121 msgid "same as -m, but discard unmerged entries" @@ -7192,7 +7232,7 @@ msgstr "git remote rename <tên-cÅ©> <tên-má»›i>" msgid "git remote remove <name>" msgstr "git remote remove <tên>" -#: builtin/remote.c:15 +#: builtin/remote.c:15 builtin/remote.c:42 msgid "git remote set-head <name> (-a | -d | <branch>)" msgstr "git remote set-head <tên> (-a | -d | <nhánh>)" @@ -7230,10 +7270,6 @@ msgstr "git remote set-url --delete <tên> <url>" msgid "git remote add [<options>] <name> <url>" msgstr "git remote add [<các-tùy-chá»n>] <tên> <url>" -#: builtin/remote.c:42 -msgid "git remote set-head <name> (-a | -d | <branch>])" -msgstr "git remote set-head <tên> (-a | -d | <nhánh>])" - #: builtin/remote.c:47 msgid "git remote set-branches <name> <branch>..." msgstr "git remote set-branches <tên> <nhánh>..." @@ -7307,7 +7343,7 @@ msgstr "Ä‘ang chỉ định má»™t nhánh master không hợp lý vá»›i tùy chá» #: builtin/remote.c:187 msgid "specifying branches to track makes sense only with fetch mirrors" -msgstr "chỉ định những nhánh để theo vết chỉ hợp lý vá»›i các 'fetch mirror'" +msgstr "chỉ định những nhánh để theo vết chỉ hợp lý vá»›i các “fetch mirrorâ€" #: builtin/remote.c:195 builtin/remote.c:646 #, c-format @@ -7317,12 +7353,12 @@ msgstr "máy chủ %s đã tồn tại rồi." #: builtin/remote.c:199 builtin/remote.c:650 #, c-format msgid "'%s' is not a valid remote name" -msgstr "`%s' không phải tên máy chủ hợp lệ" +msgstr "“%s†không phải tên máy chủ hợp lệ" #: builtin/remote.c:243 #, c-format msgid "Could not setup master '%s'" -msgstr "Không thể cà i đặt nhánh master `%s'" +msgstr "Không thể cà i đặt nhánh master “%sâ€" #: builtin/remote.c:299 #, c-format @@ -7345,7 +7381,7 @@ msgstr "(xoá)" #: builtin/remote.c:595 builtin/remote.c:601 builtin/remote.c:607 #, c-format msgid "Could not append '%s' to '%s'" -msgstr "Không thể nối thêm `%s' và o `%s'" +msgstr "Không thể nối thêm “%s†và o “%sâ€" #: builtin/remote.c:639 builtin/remote.c:792 builtin/remote.c:890 #, c-format @@ -7355,12 +7391,12 @@ msgstr "Không có máy chủ nà o nhÆ° thế: %s" #: builtin/remote.c:656 #, c-format msgid "Could not rename config section '%s' to '%s'" -msgstr "Không thể đổi tên chÆ°Æ¡ng (section) cấu hình từ `%s' thà nh `%s'" +msgstr "Không thể đổi tên chÆ°Æ¡ng (section) cấu hình từ “%s†thà nh “%sâ€" #: builtin/remote.c:662 builtin/remote.c:799 #, c-format msgid "Could not remove config section '%s'" -msgstr "Không thể gỡ bá» chÆ°Æ¡ng (section) cấu hình `%s'" +msgstr "Không thể gỡ bá» chÆ°Æ¡ng (section) cấu hình “%sâ€" #: builtin/remote.c:677 #, c-format @@ -7369,19 +7405,19 @@ msgid "" "\t%s\n" "\tPlease update the configuration manually if necessary." msgstr "" -"Không cáºp nháºt 'non-default fetch respec'\n" +"Không cáºp nháºt “non-default fetch respecâ€\n" "\t%s\n" "\tXin hãy cáºp nháºt phần cấu hình má»™t cách thủ công nếu thấy cần thiết." #: builtin/remote.c:683 #, c-format msgid "Could not append '%s'" -msgstr "Không thể nối thêm `%s'" +msgstr "Không thể nối thêm “%sâ€" #: builtin/remote.c:694 #, c-format msgid "Could not set '%s'" -msgstr "Không thể đặt `%s'" +msgstr "Không thể đặt “%sâ€" #: builtin/remote.c:716 #, c-format @@ -7424,7 +7460,7 @@ msgstr " được theo vết" #: builtin/remote.c:948 msgid " stale (use 'git remote prune' to remove)" -msgstr " cÅ© (dùng `git remote prune' để gỡ bá»)" +msgstr " cÅ© (dùng “git remote prune†để gỡ bá»)" #: builtin/remote.c:950 msgid " ???" @@ -7546,19 +7582,19 @@ msgstr " (trạng thái không được yêu cầu)" #: builtin/remote.c:1163 msgid " Local branch configured for 'git pull':" msgid_plural " Local branches configured for 'git pull':" -msgstr[0] " Nhánh ná»™i bá»™ đã được cấu hình cho lệnh `git pull':" -msgstr[1] " Những nhánh ná»™i bá»™ đã được cấu hình cho lệnh `git pull':" +msgstr[0] " Nhánh ná»™i bá»™ đã được cấu hình cho lệnh “git pullâ€:" +msgstr[1] " Những nhánh ná»™i bá»™ đã được cấu hình cho lệnh “git pullâ€:" #: builtin/remote.c:1171 msgid " Local refs will be mirrored by 'git push'" -msgstr " refs ná»™i bá»™ sẽ được phản chiếu bởi lệnh `git push'" +msgstr " refs ná»™i bá»™ sẽ được phản chiếu bởi lệnh “git pushâ€" #: builtin/remote.c:1178 #, c-format msgid " Local ref configured for 'git push'%s:" msgid_plural " Local refs configured for 'git push'%s:" -msgstr[0] " Tham chiếu ná»™i bá»™ được cấu hình cho lệnh `git push'%s:" -msgstr[1] " Những tham chiếu ná»™i bá»™ được cấu hình cho lệnh `git push'%s:" +msgstr[0] " Tham chiếu ná»™i bá»™ được cấu hình cho lệnh “git pushâ€%s:" +msgstr[1] " Những tham chiếu ná»™i bá»™ được cấu hình cho lệnh “git pushâ€%s:" #: builtin/remote.c:1199 msgid "set refs/remotes/<name>/HEAD according to remote" @@ -7628,7 +7664,7 @@ msgstr "cắt máy chủ sau khi lấy vá»" #: builtin/remote.c:1387 builtin/remote.c:1461 #, c-format msgid "No such remote '%s'" -msgstr "Không có máy chủ nà o có tên `%s'" +msgstr "Không có máy chủ nà o có tên “%sâ€" #: builtin/remote.c:1407 msgid "add branch" @@ -7640,7 +7676,7 @@ msgstr "chÆ°a chỉ ra máy chủ nà o" #: builtin/remote.c:1436 msgid "manipulate push URLs" -msgstr "đẩy các `URL' bằng tay" +msgstr "đẩy các “URL†bằng tay" #: builtin/remote.c:1438 msgid "add URL" @@ -7684,15 +7720,15 @@ msgstr "git replace -d <đối tượng>..." msgid "git replace -l [<pattern>]" msgstr "git replace -l [<mẫu>]" -#: builtin/replace.c:118 +#: builtin/replace.c:121 msgid "list replace refs" msgstr "liệt kê các refs thay thế" -#: builtin/replace.c:119 +#: builtin/replace.c:122 msgid "delete replace refs" msgstr "xóa tham chiếu (refs) thay thế" -#: builtin/replace.c:120 +#: builtin/replace.c:123 msgid "replace the ref if it exists" msgstr "thay thế tham chiếu (ref) nếu nó đã sẵn có" @@ -7796,7 +7832,7 @@ msgstr "đặt lại HEAD nhÆ°ng giữ lại các thay đổi ná»™i bá»™" #: builtin/reset.c:303 #, c-format msgid "Could not parse object '%s'." -msgstr "không thể phân tÃch đối tượng `%s'." +msgstr "không thể phân tÃch đối tượng “%sâ€." #: builtin/reset.c:308 msgid "--patch is incompatible with --{hard,mixed,soft}" @@ -7805,8 +7841,8 @@ msgstr "--patch xung khắc vá»›i --{hard,mixed,soft}" #: builtin/reset.c:317 msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." msgstr "" -"--mixed vá»›i các Ä‘Æ°á»ng dẫn không còn dùng nữa; hãy thay thế bằng lệnh `git " -"reset -- <Ä‘Æ°á»ng_dẫn>'." +"--mixed vá»›i các Ä‘Æ°á»ng dẫn không còn dùng nữa; hãy thay thế bằng lệnh “git " +"reset -- <Ä‘Æ°á»ng_dẫn>â€." #: builtin/reset.c:319 #, c-format @@ -7821,7 +7857,7 @@ msgstr "%s reset không được phép trên kho bare (trên máy chủ)" #: builtin/reset.c:347 #, c-format msgid "Could not reset index file to revision '%s'." -msgstr "Không thể đặt lại (reset) bảng mục lục thà nh Ä‘iểm xét lại `%s'." +msgstr "Không thể đặt lại (reset) bảng mục lục thà nh Ä‘iểm xét lại “%sâ€." #: builtin/rev-parse.c:339 msgid "git rev-parse --parseopt [options] -- [<args>...]" @@ -7829,7 +7865,7 @@ msgstr "git rev-parse --parseopt [các-tùy-chá»n] -- [<th.số>...]" #: builtin/rev-parse.c:344 msgid "keep the `--` passed as an arg" -msgstr "giữ '--' chuyển qua là m tham số" +msgstr "giữ `--` chuyển qua là m tham số" #: builtin/rev-parse.c:346 msgid "stop parsing after the first non-option argument" @@ -7938,63 +7974,73 @@ msgstr "revert gặp lá»—i" msgid "cherry-pick failed" msgstr "cherry-pick gặp lá»—i" -#: builtin/rm.c:14 +#: builtin/rm.c:15 msgid "git rm [options] [--] <file>..." msgstr "git rm [các-tùy-chá»n] [--] <táºp-tin>..." -#: builtin/rm.c:109 +#: builtin/rm.c:64 builtin/rm.c:186 +#, c-format +msgid "" +"submodule '%s' (or one of its nested submodules) uses a .git directory\n" +"(use 'rm -rf' if you really want to remove it including all of its history)" +msgstr "" +"mô-Ä‘un-con '%s' (hoặc cái nằm trong các mô-Ä‘un-con) dùng thÆ° mục .git\n" +"(dùng 'rm -rf' nếu bạn thá»±c sá»± muốn gỡ bá» nó cùng vá»›i tất cả lịch sá» của " +"chúng)" + +#: builtin/rm.c:174 #, c-format msgid "" "'%s' has staged content different from both the file and the HEAD\n" "(use -f to force removal)" msgstr "" -"`%s' có ná»™i dung được lÆ°u trạng thái khác biệt từ cả táºp tin và cả HEAD\n" +"“%s†có ná»™i dung được lÆ°u trạng thái khác biệt từ cả táºp tin và cả HEAD\n" "(dùng tùy chá»n -f để ép buá»™c gỡ bá»)" -#: builtin/rm.c:115 +#: builtin/rm.c:180 #, c-format msgid "" "'%s' has changes staged in the index\n" "(use --cached to keep the file, or -f to force removal)" msgstr "" -"`%s' có các thay đổi được lÆ°u trạng thái trong bảng mục lục\n" +"“%s†có các thay đổi được lÆ°u trạng thái trong bảng mục lục\n" "(dùng tùy chá»n --cached để giữ táºp tin, hoặc -f để ép buá»™c gỡ bá»)" -#: builtin/rm.c:119 +#: builtin/rm.c:191 #, c-format msgid "" "'%s' has local modifications\n" "(use --cached to keep the file, or -f to force removal)" msgstr "" -"`%s' có các thay đổi ná»™i bá»™\n" +"“%s†có các thay đổi ná»™i bá»™\n" "(dùng tùy chá»n --cached để giữ táºp tin, hoặc -f để ép buá»™c gỡ bá»)" -#: builtin/rm.c:134 +#: builtin/rm.c:207 msgid "do not list removed files" msgstr "không liệt kê các táºp tin đã gỡ bá»" -#: builtin/rm.c:135 +#: builtin/rm.c:208 msgid "only remove from the index" msgstr "chỉ gỡ bá» từ mục lục" -#: builtin/rm.c:136 +#: builtin/rm.c:209 msgid "override the up-to-date check" msgstr "ghi đè lên kiểm tra cáºp nháºt" -#: builtin/rm.c:137 +#: builtin/rm.c:210 msgid "allow recursive removal" msgstr "cho phép gỡ bỠđệ qui" -#: builtin/rm.c:139 +#: builtin/rm.c:212 msgid "exit with a zero status even if nothing matched" msgstr "thoát ra vá»›i trạng thái khác không tháºm chà nếu không có gì khá»›p" -#: builtin/rm.c:194 +#: builtin/rm.c:283 #, c-format msgid "not removing '%s' recursively without -r" -msgstr "không thể gỡ bá» `%s' má»™t cách đệ qui mà không có tùy chá»n -r" +msgstr "không thể gỡ bỠ“%s†má»™t cách đệ qui mà không có tùy chá»n -r" -#: builtin/rm.c:230 +#: builtin/rm.c:322 #, c-format msgid "git rm: unable to remove %s" msgstr "git rm: không thể gỡ bá» %s" @@ -8054,7 +8100,7 @@ msgstr "hiển thị các nhánh remote-tracking" #: builtin/show-branch.c:655 msgid "color '*!+-' corresponding to the branch" -msgstr "mà u '*!+-' tÆ°Æ¡ng ứng vá»›i nhánh" +msgstr "mà u “*!+-†tÆ°Æ¡ng ứng vá»›i nhánh" #: builtin/show-branch.c:657 msgid "show <n> more commits after the common ancestor" @@ -8106,7 +8152,7 @@ msgstr "<n>[,<cÆ¡ sở>]" #: builtin/show-branch.c:679 msgid "show <n> most recent ref-log entries starting at base" -msgstr "hiển thị <n> các mục `ref-log' gần nhất kể từ ná»n (base)" +msgstr "hiển thị <n> các mục “ref-log†gần nhất kể từ ná»n (base)" #: builtin/show-ref.c:10 msgid "" @@ -8120,38 +8166,38 @@ msgstr "" msgid "git show-ref --exclude-existing[=pattern] < ref-list" msgstr "git show-ref --exclude-existing[=mẫu] < ref-list" -#: builtin/show-ref.c:182 +#: builtin/show-ref.c:165 msgid "only show tags (can be combined with heads)" msgstr "chỉ hiển thị thẻ (có thể tổ hợp cùng vá»›i đầu)" -#: builtin/show-ref.c:183 +#: builtin/show-ref.c:166 msgid "only show heads (can be combined with tags)" msgstr "chỉ hiển thị đầu (có thể tổ hợp cùng vá»›i thẻ)" -#: builtin/show-ref.c:184 +#: builtin/show-ref.c:167 msgid "stricter reference checking, requires exact ref path" msgstr "" "việc kiểm tra tham chiếu chÃnh xác, đòi há»i chÃnh xác Ä‘Æ°á»ng dẫn tham chiếu " "(ref)" -#: builtin/show-ref.c:187 builtin/show-ref.c:189 +#: builtin/show-ref.c:170 builtin/show-ref.c:172 msgid "show the HEAD reference" msgstr "hiển thị tham chiếu của HEAD" -#: builtin/show-ref.c:191 +#: builtin/show-ref.c:174 msgid "dereference tags into object IDs" msgstr "bãi bá» tham chiếu các thẻ thà nh ra các ID đối tượng" -#: builtin/show-ref.c:193 +#: builtin/show-ref.c:176 msgid "only show SHA1 hash using <n> digits" msgstr "chỉ hiển thị mã băm SHA1 sá» dụng <n> chữ số" -#: builtin/show-ref.c:197 +#: builtin/show-ref.c:180 msgid "do not print results to stdout (useful with --verify)" msgstr "" "không hiển thị kết quả ra đầu ra chuẩn (stdout) (chỉ hữu dụng vá»›i --verify)" -#: builtin/show-ref.c:199 +#: builtin/show-ref.c:182 msgid "show refs from stdin that aren't in local repository" msgstr "" "hiển thị các tham chiếu (refs) từ đầu và o tiêu chuẩn (stdin) cái mà không ở " @@ -8161,20 +8207,28 @@ msgstr "" msgid "git symbolic-ref [options] name [ref]" msgstr "git symbolic-ref [các-tùy-chá»n] tên [t.chiếu]" -#: builtin/symbolic-ref.c:38 +#: builtin/symbolic-ref.c:8 +msgid "git symbolic-ref -d [-q] name" +msgstr "git symbolic-ref -d [-q] tên" + +#: builtin/symbolic-ref.c:40 msgid "suppress error message for non-symbolic (detached) refs" msgstr "" -"chặn các thông tin lá»—i cho các tham chiếu (refs) `non-symbolic' (bị tách ra)" +"chặn các thông tin lá»—i cho các tham chiếu (refs) “non-symbolic†(bị tách ra)" -#: builtin/symbolic-ref.c:39 +#: builtin/symbolic-ref.c:41 +msgid "delete symbolic ref" +msgstr "xóa tham chiếu (ref) tượng trÆ°ng" + +#: builtin/symbolic-ref.c:42 msgid "shorten ref output" msgstr "là m ngắn kết xuất ref (tham chiếu)" -#: builtin/symbolic-ref.c:40 builtin/update-ref.c:18 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18 msgid "reason" msgstr "lý do" -#: builtin/symbolic-ref.c:40 builtin/update-ref.c:18 +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:18 msgid "reason of the update" msgstr "lý do cáºp nháºt" @@ -8203,7 +8257,7 @@ msgstr "git tag -v <tên-thẻ>..." #: builtin/tag.c:60 #, c-format msgid "malformed object at '%s'" -msgstr "đối tượng dị hình tại `%s'" +msgstr "đối tượng dị hình tại “%sâ€" #: builtin/tag.c:207 #, c-format @@ -8213,17 +8267,17 @@ msgstr "tên thẻ quá dà i: %.*s..." #: builtin/tag.c:212 #, c-format msgid "tag '%s' not found." -msgstr "không tìm thấy tìm thấy thẻ `%s'." +msgstr "không tìm thấy tìm thấy thẻ “%sâ€." #: builtin/tag.c:227 #, c-format msgid "Deleted tag '%s' (was %s)\n" -msgstr "Thẻ đã bị xóa `%s' (trÆ°á»›c là %s)\n" +msgstr "Thẻ đã bị xóa “%s†(trÆ°á»›c là %s)\n" #: builtin/tag.c:239 #, c-format msgid "could not verify the tag '%s'" -msgstr "không thể thẩm tra thẻ `%s'" +msgstr "không thể thẩm tra thẻ “%sâ€" #: builtin/tag.c:249 msgid "" @@ -8236,7 +8290,7 @@ msgstr "" "\n" "#\n" "# Viết các ghi chú cho (thẻ) tag\n" -"# Những dòng được bắt đầu bằng '#' sẽ được bá» qua.\n" +"# Những dòng được bắt đầu bằng “#†sẽ được bá» qua.\n" "#\n" #: builtin/tag.c:256 @@ -8251,7 +8305,7 @@ msgstr "" "\n" "#\n" "# Viết các ghi chú cho (thẻ) tag\n" -"# Những dòng được bắt đầu bằng '#' sẽ được bá» qua; bạn có thể xóa chúng Ä‘i " +"# Những dòng được bắt đầu bằng “#†sẽ được bá» qua; bạn có thể xóa chúng Ä‘i " "nếu muốn.\n" "#\n" @@ -8282,12 +8336,12 @@ msgstr "Ná»™i dung ghi chú còn lại %s\n" #: builtin/tag.c:425 msgid "switch 'points-at' requires an object" -msgstr "chuyển đến 'points-at' yêu cần má»™t đối tượng" +msgstr "chuyển đến “points-at†yêu cần má»™t đối tượng" #: builtin/tag.c:427 #, c-format msgid "malformed object name '%s'" -msgstr "tên đối tượng dị hình `%s'" +msgstr "tên đối tượng dị hình “%sâ€" #: builtin/tag.c:447 msgid "list tag names" @@ -8372,12 +8426,12 @@ msgstr "quá nhiá»u đối số" #: builtin/tag.c:561 #, c-format msgid "'%s' is not a valid tag name." -msgstr "`%s' không phải thẻ hợp lệ." +msgstr "“%s†không phải thẻ hợp lệ." #: builtin/tag.c:566 #, c-format msgid "tag '%s' already exists" -msgstr "Thẻ `%s' đã tồn tại rồi" +msgstr "Thẻ “%s†đã tồn tại rồi" #: builtin/tag.c:584 #, c-format @@ -8392,121 +8446,121 @@ msgstr "%s: không thể cáºp nháºt ref (tham chiếu)" #: builtin/tag.c:588 #, c-format msgid "Updated tag '%s' (was %s)\n" -msgstr "Thẻ đã cáºp nháºt `%s' (cÅ© là %s)\n" +msgstr "Äã cáºp nháºt thẻ “%s†(trÆ°á»›c là %s)\n" #: builtin/update-index.c:401 msgid "git update-index [options] [--] [<file>...]" msgstr "git update-index [các-tùy-chá»n] [<táºp-tin>...]" -#: builtin/update-index.c:717 +#: builtin/update-index.c:718 msgid "continue refresh even when index needs update" msgstr "tiếp tục là m má»›i ngay cả khi bảng mục lục cần được cáºp nháºt" -#: builtin/update-index.c:720 +#: builtin/update-index.c:721 msgid "refresh: ignore submodules" msgstr "refresh: lá» Ä‘i mô-Ä‘un-con" -#: builtin/update-index.c:723 +#: builtin/update-index.c:724 msgid "do not ignore new files" msgstr "không bá» qua các táºp tin má»›i tạo" -#: builtin/update-index.c:725 +#: builtin/update-index.c:726 msgid "let files replace directories and vice-versa" -msgstr "để các táºp tin thay thế các thÆ° mục và `vice-versa'" +msgstr "để các táºp tin thay thế các thÆ° mục và “vice-versaâ€" -#: builtin/update-index.c:727 +#: builtin/update-index.c:728 msgid "notice files missing from worktree" msgstr "thông báo các táºp-tin thiếu trong thÆ°-mục là m việc" -#: builtin/update-index.c:729 +#: builtin/update-index.c:730 msgid "refresh even if index contains unmerged entries" msgstr "" "là m tÆ°Æ¡i má»›i tháºm chà khi bảng mục lục chứa các mục tin chÆ°a được hòa trá»™n" -#: builtin/update-index.c:732 +#: builtin/update-index.c:733 msgid "refresh stat information" msgstr "lấy lại thông tin thống kê" -#: builtin/update-index.c:736 +#: builtin/update-index.c:737 msgid "like --refresh, but ignore assume-unchanged setting" -msgstr "giống --refresh, nhÆ°ng bá» qua các cà i đặt `assume-unchanged'" +msgstr "giống --refresh, nhÆ°ng bá» qua các cà i đặt “assume-unchangedâ€" -#: builtin/update-index.c:740 +#: builtin/update-index.c:741 msgid "<mode> <object> <path>" msgstr "<mode> <đối tượng> <Ä‘Æ°á»ng dẫn>" -#: builtin/update-index.c:741 +#: builtin/update-index.c:742 msgid "add the specified entry to the index" msgstr "thêm các táºp tin đã chỉ ra và o bảng mục lục" -#: builtin/update-index.c:745 +#: builtin/update-index.c:746 msgid "(+/-)x" msgstr "(+/-)x" -#: builtin/update-index.c:746 +#: builtin/update-index.c:747 msgid "override the executable bit of the listed files" msgstr "ghi đè lên bÃt thi hà nh của các táºp tin được liệt kê" -#: builtin/update-index.c:750 +#: builtin/update-index.c:751 msgid "mark files as \"not changing\"" msgstr "Äánh dấu các táºp tin là \"không thay đổi\"" -#: builtin/update-index.c:753 +#: builtin/update-index.c:754 msgid "clear assumed-unchanged bit" msgstr "xóa bÃt assumed-unchanged" -#: builtin/update-index.c:756 +#: builtin/update-index.c:757 msgid "mark files as \"index-only\"" -msgstr "đánh dấu các táºp tin là `chỉ-Ä‘á»c'" +msgstr "đánh dấu các táºp tin là “chỉ-Ä‘á»câ€" -#: builtin/update-index.c:759 +#: builtin/update-index.c:760 msgid "clear skip-worktree bit" msgstr "xóa bÃt skip-worktree" -#: builtin/update-index.c:762 +#: builtin/update-index.c:763 msgid "add to index only; do not add content to object database" msgstr "" "chỉ thêm và o bảng mục lục; không thêm ná»™i dung và o cÆ¡ sở dữ liệu đối tượng" -#: builtin/update-index.c:764 +#: builtin/update-index.c:765 msgid "remove named paths even if present in worktree" msgstr "" "gỡ bá» các Ä‘Æ°á»ng dẫn được đặt tên tháºm chà cả khi nó hiện diện trong thÆ° mục " "là m việc" -#: builtin/update-index.c:766 +#: builtin/update-index.c:767 msgid "with --stdin: input lines are terminated by null bytes" msgstr "vá»›i tùy chá»n --stdin: các dòng đầu và o được chấm dứt bởi ký tá»± null" -#: builtin/update-index.c:768 +#: builtin/update-index.c:769 msgid "read list of paths to be updated from standard input" msgstr "Ä‘á»c danh sách Ä‘Æ°á»ng dẫn cần cáºp nháºt từ đầu và o tiêu chuẩn" -#: builtin/update-index.c:772 +#: builtin/update-index.c:773 msgid "add entries from standard input to the index" msgstr "không thể Ä‘á»c các mục từ đầu và o tiêu chuẩn và o bảng mục lục" -#: builtin/update-index.c:776 +#: builtin/update-index.c:777 msgid "repopulate stages #2 and #3 for the listed paths" msgstr "phục hồi các trạng thái #2 và #3 cho các Ä‘Æ°á»ng dẫn được liệt kê" -#: builtin/update-index.c:780 +#: builtin/update-index.c:781 msgid "only update entries that differ from HEAD" msgstr "chỉ cáºp nháºt các mục tin mà nó khác biệt so vá»›i HEAD" -#: builtin/update-index.c:784 +#: builtin/update-index.c:785 msgid "ignore files missing from worktree" msgstr "bá» qua các táºp-tin thiếu trong thÆ°-mục là m việc" -#: builtin/update-index.c:787 +#: builtin/update-index.c:788 msgid "report actions to standard output" msgstr "báo cáo các thao tác ra thiết bị xuất chuẩn" -#: builtin/update-index.c:789 +#: builtin/update-index.c:790 msgid "(for porcelains) forget saved unresolved conflicts" -msgstr "(cho `porcelains') quên các xung Ä‘á»™t chÆ°a được giải quyết đã ghi" +msgstr "(cho “porcelainsâ€) quên các xung Ä‘á»™t chÆ°a được giải quyết đã ghi" -#: builtin/update-index.c:793 +#: builtin/update-index.c:794 msgid "write index in this format" msgstr "ghi mục lục ở định dạng nà y" @@ -8573,7 +8627,7 @@ msgstr "chỉ hữu Ãch khi cần gỡ lá»—i" #: git.c:16 msgid "See 'git help <command>' for more information on a specific command." msgstr "" -"Chạy lệnh `git help <tên-lệnh>' để có thêm thông tin vá» lệnh được chỉ ra." +"Chạy lệnh “git help <tên-lệnh>†để có thêm thông tin vá» lệnh được chỉ ra." #: parse-options.h:156 msgid "no-op (backward compatibility)" @@ -8605,7 +8659,7 @@ msgstr "Liệt kê, tạo hay là xóa các nhánh" #: common-cmds.h:11 msgid "Checkout a branch or paths to the working tree" -msgstr "Checkout má»™t nhánh hay các Ä‘Æ°á»ng dẫn tá»›i cây là m việc" +msgstr "Lấy ra (checkout) má»™t nhánh hay các Ä‘Æ°á»ng dẫn tá»›i cây là m việc" #: common-cmds.h:12 msgid "Clone a repository into a new directory" @@ -8636,7 +8690,7 @@ msgstr "" #: common-cmds.h:18 msgid "Show commit logs" -msgstr "hiển thị nháºt ký các lần commit (chuyển giao)" +msgstr "Hiển thị nháºt ký các lần chuyển giao (commit)" #: common-cmds.h:19 msgid "Join two or more development histories together" @@ -8650,7 +8704,7 @@ msgstr "Di chuyển, đổi tên má»™t táºp tin, thÆ° mục hay liên kết tÆ° #: common-cmds.h:21 msgid "Fetch from and merge with another repository or a local branch" -msgstr "Fetch (lấy vá») và hòa trá»™ng vá»›i kho khác hay nhánh ná»™i bá»™" +msgstr "Lấy vá» (fetch) và hòa trá»™n vá»›i kho khác hay nhánh ná»™i bá»™" #: common-cmds.h:22 msgid "Update remote refs along with associated objects" @@ -8693,7 +8747,7 @@ msgid "" "You seem to have moved HEAD since the last 'am' failure.\n" "Not rewinding to ORIG_HEAD" msgstr "" -"Bạn có lẽ đã có HEAD đã bị di chuyển Ä‘i kể từ lần 'am' thất bại cuối cùng.\n" +"Bạn có lẽ đã có HEAD đã bị di chuyển Ä‘i kể từ lần “am†thất bại cuối cùng.\n" "Không thể chuyển tá»›i ORIG_HEAD" #: git-am.sh:105 @@ -8711,11 +8765,11 @@ msgstr "" #: git-am.sh:121 msgid "Cannot fall back to three-way merge." -msgstr "Äang trở lại để hòa trá»™n kiểu 'three-way'." +msgstr "Äang trở lại để hòa trá»™n kiểu “three-wayâ€." #: git-am.sh:137 msgid "Repository lacks necessary blobs to fall back on 3-way merge." -msgstr "Kho thiếu đối tượng blob cần thiết để trở vá» trên '3-way merge'." +msgstr "Kho thiếu đối tượng blob cần thiết để trở vá» trên “3-way mergeâ€." #: git-am.sh:139 msgid "Using index info to reconstruct a base tree..." @@ -8732,7 +8786,7 @@ msgstr "" #: git-am.sh:163 msgid "Falling back to patching base and 3-way merge..." -msgstr "Äang trở lại để vá cÆ¡ sở và '3-way merge'..." +msgstr "Äang trở lại để vá cÆ¡ sở và “3-way mergeâ€..." #: git-am.sh:179 msgid "Failed to merge in the changes." @@ -8824,7 +8878,7 @@ msgid "" "If there is nothing left to stage, chances are that something else\n" "already introduced the same changes; you might want to skip this patch." msgstr "" -"Không có thay đổi nà o - bạn đã quên sá» dụng lệnh `git add' à ?\n" +"Không có thay đổi nà o - bạn đã quên sá» dụng lệnh “git add†à ?\n" "Nếu ở đây không có gì còn lại stage, tình cá» là có má»™t số thứ khác\n" "đã sẵn được Ä‘Æ°a và o vá»›i cùng ná»™i dung thay đổi; bạn có lẽ muốn bá» qua miếng " "vá nà y." @@ -8835,7 +8889,7 @@ msgid "" "did you forget to use 'git add'?" msgstr "" "Bạn vẫn có những Ä‘Æ°á»ng dẫn chÆ°a được hòa trá»™n trong bảng mục lục của mình\n" -"bạn đã quên sá» dụng lệnh `git add' à ?" +"bạn đã quên sá» dụng lệnh “git add†à ?" #: git-am.sh:845 msgid "No changes -- Patch already applied." @@ -8873,12 +8927,12 @@ msgstr "Bạn có muốn tôi thá»±c hiện Ä‘iá»u nà y cho bạn không [Y/n]? #: git-bisect.sh:95 #, sh-format msgid "unrecognised option: '$arg'" -msgstr "không công nháºn tùy chá»n: '$arg'" +msgstr "không công nháºn tùy chá»n: “$argâ€" #: git-bisect.sh:99 #, sh-format msgid "'$arg' does not appear to be a valid revision" -msgstr "'$arg' không có vẻ nhÆ° là má»™t sá»± xét lại hợp lệ" +msgstr "â€$arg†không có vẻ nhÆ° là má»™t sá»± xét lại hợp lệ" #: git-bisect.sh:117 msgid "Bad HEAD - I need a HEAD" @@ -8889,8 +8943,8 @@ msgstr "HEAD sai - Tôi cần má»™t HEAD" msgid "" "Checking out '$start_head' failed. Try 'git bisect reset <validbranch>'." msgstr "" -"Việc checkout '$start_head' gặp lá»—i. Hãy thá» `git bisect reset " -"<nhánh_hợp_lệ>'." +"Việc checkout “$start_head†gặp lá»—i. Hãy thỠ“git bisect reset " +"<nhánh_hợp_lệ>â€." #: git-bisect.sh:140 msgid "won't bisect on seeked tree" @@ -8912,7 +8966,7 @@ msgstr "Äầu và o rev sai: $arg" #: git-bisect.sh:232 msgid "Please call 'bisect_state' with at least one argument." -msgstr "Hãy gá»i lệnhl 'bisect_state' vá»›i Ãt nhất má»™t đối số." +msgstr "Hãy gá»i lệnhl “bisect_state†vá»›i Ãt nhất má»™t đối số." #: git-bisect.sh:244 #, sh-format @@ -8921,7 +8975,7 @@ msgstr "Äầu và o rev sai: $rev" #: git-bisect.sh:250 msgid "'git bisect bad' can take only one argument." -msgstr "`git bisect bad' có thể lấy chỉ má»™t đối số." +msgstr "“git bisect bad†có thể lấy chỉ má»™t đối số." #. have bad but not good. we could bisect although #. this is less optimum. @@ -8963,7 +9017,7 @@ msgstr "Chúng tôi không bisect." #: git-bisect.sh:354 #, sh-format msgid "'$invalid' is not a valid commit" -msgstr "'$invalid' không phải là lần chuyển giao (commit) hợp lệ" +msgstr "â€$invalid†không phải là lần chuyển giao (commit) hợp lệ" #: git-bisect.sh:363 #, sh-format @@ -8971,8 +9025,8 @@ msgid "" "Could not check out original HEAD '$branch'.\n" "Try 'git bisect reset <commit>'." msgstr "" -"Không thể check-out HEAD nguyên thủy của '$branch'.\n" -"Hãy thá» `git bisect reset <lần-chuyển-giao>'." +"Không thể check-out HEAD nguyên thủy của “$branchâ€.\n" +"Hãy thỠ“git bisect reset <lần-chuyển-giao>â€." #: git-bisect.sh:390 msgid "No logfile given" @@ -8999,7 +9053,7 @@ msgid "" "exit code $res from '$command' is < 0 or >= 128" msgstr "" "chạy bisect gặp lá»—i:\n" -"mã trả vá» $res từ lệnh '$command' là < 0 hoặc >= 128" +"mã trả vá» $res từ lệnh “$command†là < 0 hoặc >= 128" #: git-bisect.sh:453 msgid "bisect run cannot continue any more" @@ -9012,7 +9066,7 @@ msgid "" "'bisect_state $state' exited with error code $res" msgstr "" "chạy bisect gặp lá»—i:\n" -"'bisect_state $state' đã thoát ra vá»›i mã lá»—i $res" +"â€bisect_state $state†đã thoát ra vá»›i mã lá»—i $res" #: git-bisect.sh:466 msgid "bisect run success" @@ -9025,9 +9079,9 @@ msgid "" "as appropriate to mark resolution, or use 'git commit -a'." msgstr "" "Pull là không thể được bởi vì bạn có những táºp tin chÆ°a được hòa trá»™n.\n" -"Xin hãy sá»a chữa chúng trÆ°á»›c, và sau đó sá» dụng lệnh `git add/rm <táºp-tin>'\n" -"để phê chuẩn việc đánh dấu đây cần được giải quyết, hoặc là sá» dụng `git " -"commit -a'." +"Xin hãy sá»a chữa chúng trÆ°á»›c, và sau đó sá» dụng lệnh “git add/rm <táºp-tin>â€\n" +"để phê chuẩn việc đánh dấu đây cần được giải quyết, hoặc là sá» dụng “git " +"commit -aâ€." #: git-pull.sh:25 msgid "Pull is not possible because you have unmerged files." @@ -9044,7 +9098,7 @@ msgstr "" #. The working tree and the index file is still based on the #. $orig_head commit, but we are merging into $curr_head. #. First update the working tree to match $curr_head. -#: git-pull.sh:228 +#: git-pull.sh:229 #, sh-format msgid "" "Warning: fetch updated the current branch head.\n" @@ -9055,11 +9109,11 @@ msgstr "" "Cảnh báo: Ä‘ang fast-forward cây là m việc của bạn từ\n" "Cảnh báo: commit $orig_head." -#: git-pull.sh:253 +#: git-pull.sh:254 msgid "Cannot merge multiple branches into empty head" msgstr "Không thể hòa trá»™n nhiá»u nhánh và trong má»™t head trống rá»—ng" -#: git-pull.sh:257 +#: git-pull.sh:258 msgid "Cannot rebase onto multiple branches" msgstr "Không thể thá»±c hiện lệnh rebase (cÆ¡ cấu lại) trên nhiá»u nhánh" @@ -9078,7 +9132,7 @@ msgstr "" #: git-rebase.sh:160 msgid "The pre-rebase hook refused to rebase." -msgstr "hook (chÆ°Æ¡ng trình móc và o git) pre-rebase từ chối rebase." +msgstr "Móc (hook) pre-rebase từ chối rebase." #: git-rebase.sh:165 msgid "It looks like git-am is in progress. Cannot rebase." @@ -9097,7 +9151,7 @@ msgstr "Không có tiến trình rebase nà o phải không?" #: git-rebase.sh:312 msgid "The --edit-todo action can only be used during interactive rebase." msgstr "" -"Hà nh Ä‘á»™ng `--edit-todo' chỉ có thể dùng trong quá trình `rebase' (sá»a lịch " +"Hà nh Ä‘á»™ng “--edit-todo†chỉ có thể dùng trong quá trình “rebase†(sá»a lịch " "sá») tÆ°Æ¡ng tác." #: git-rebase.sh:319 @@ -9148,12 +9202,12 @@ msgstr "thượng nguồn không hợp lệ $upstream_name" #: git-rebase.sh:428 #, sh-format msgid "$onto_name: there are more than one merge bases" -msgstr "$onto_name: ở đây có nhiá»u hÆ¡n má»™t" +msgstr "$onto_name: ở đây có nhiá»u hÆ¡n má»™t ná»n móng hòa trá»™n" #: git-rebase.sh:431 git-rebase.sh:435 #, sh-format msgid "$onto_name: there is no merge base" -msgstr "$onto_name: ở đây không có gì để hòa trá»™n" +msgstr "$onto_name: ở đây không có ná»n móng hòa trá»™n nà o" #: git-rebase.sh:440 #, sh-format @@ -9167,7 +9221,7 @@ msgstr "nghiêm trá»ng: không có nhánh nhÆ° thế: $branch_name" #: git-rebase.sh:483 msgid "Please commit or stash them." -msgstr "Xin hãy commit hoặc stash chúng." +msgstr "Xin hãy commit hoặc tạm cất (stash) chúng." #: git-rebase.sh:501 #, sh-format @@ -9240,8 +9294,8 @@ msgid "" "error: unknown option for 'stash save': $option\n" " To provide a message, use git stash save -- '$option'" msgstr "" -"lá»—i: không hiểu tùy chá»n cho 'stash save': $option\n" -" Äể cung cấp má»™t thông Ä‘iệp, sá» dụng git stash save -- '$option'" +"lá»—i: không hiểu tùy chá»n cho “stash saveâ€: $option\n" +" Äể cung cấp má»™t thông Ä‘iệp, sá» dụng git stash save -- “$optionâ€" #: git-stash.sh:223 msgid "No local changes to save" @@ -9276,12 +9330,12 @@ msgstr "$reference không phải là tham chiếu hợp lệ" #: git-stash.sh:393 #, sh-format msgid "'$args' is not a stash-like commit" -msgstr "'$args' không phải là lần chuyển giao (commit) giống-stash" +msgstr "â€$args†không phải là lần chuyển giao (commit) giống-stash" #: git-stash.sh:404 #, sh-format msgid "'$args' is not a stash reference" -msgstr "'$args' không phải tham chiếu đến stash" +msgstr "â€$args†không phải tham chiếu đến stash" #: git-stash.sh:412 msgid "unable to refresh index" @@ -9325,41 +9379,41 @@ msgstr "ChÆ°a chỉ ra tên của nhánh" msgid "(To restore them type \"git stash apply\")" msgstr "(Äể phục hồi lại chúng hãy gõ \"git stash apply\")" -#: git-submodule.sh:88 +#: git-submodule.sh:89 #, sh-format msgid "cannot strip one component off url '$remoteurl'" -msgstr "không thể tháo bá» má»™t thà nh phần ra khá»i url '$remoteurl'" +msgstr "không thể tháo bá» má»™t thà nh phần ra khá»i “$remoteurl†url" -#: git-submodule.sh:167 +#: git-submodule.sh:168 #, sh-format msgid "No submodule mapping found in .gitmodules for path '$sm_path'" msgstr "" "Không tìm thấy ánh xạ (mapping) mô-Ä‘un-con trong .gitmodules cho Ä‘Æ°á»ng dẫn " -"'$sm_path'" +"“$sm_pathâ€" #: git-submodule.sh:211 #, sh-format msgid "Clone of '$url' into submodule path '$sm_path' failed" -msgstr "Nhân bản '$url' và o Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path' gặp lá»—i" +msgstr "Nhân bản “$url†và o Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_path†gặp lá»—i" #: git-submodule.sh:223 #, sh-format msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" msgstr "" -"Gitdir '$a' là bá»™ pháºn của Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$b' hoặc \"vice versa\"" +"Gitdir “$a†là bá»™ pháºn của Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$b†hoặc \"vice versa\"" -#: git-submodule.sh:312 +#: git-submodule.sh:316 #, sh-format msgid "repo URL: '$repo' must be absolute or begin with ./|../" msgstr "" -"repo URL: '$repo' phải là đưá»ng dẫn tuyệt đối hoặc là bắt đầu bằng ./|../" +"repo URL: “$repo†phải là đưá»ng dẫn tuyệt đối hoặc là bắt đầu bằng ./|../" -#: git-submodule.sh:329 +#: git-submodule.sh:333 #, sh-format msgid "'$sm_path' already exists in the index" -msgstr "'$sm_path' thá»±c sá»± đã tồn tại ở bảng mục lục rồi" +msgstr "â€$sm_path†thá»±c sá»± đã tồn tại ở bảng mục lục rồi" -#: git-submodule.sh:333 +#: git-submodule.sh:337 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -9371,162 +9425,199 @@ msgstr "" "$sm_path\n" "Sá» dụng -f nếu bạn thá»±c sá»± muốn thêm nó và o." -#: git-submodule.sh:344 +#: git-submodule.sh:355 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" -msgstr "Äang thêm repo có sẵn tại '$sm_path' và o bảng mục lục" +msgstr "Äang thêm repo có sẵn tại “$sm_path†và o bảng mục lục" -#: git-submodule.sh:346 +#: git-submodule.sh:357 #, sh-format msgid "'$sm_path' already exists and is not a valid git repo" -msgstr "'$sm_path' đã tồn tại từ trÆ°á»›c và không phải là má»™t kho git hợp lệ" +msgstr "â€$sm_path†đã tồn tại từ trÆ°á»›c và không phải là má»™t kho git hợp lệ" + +#: git-submodule.sh:365 +#, sh-format +msgid "A git directory for '$sm_name' is found locally with remote(s):" +msgstr "" +"ThÆ° mục git cho '$sm_name' được tìm thấy má»™t cách cục bá»™ vá»›i các máy chủ:" -#: git-submodule.sh:360 +#: git-submodule.sh:367 +#, sh-format +msgid "" +"If you want to reuse this local git directory instead of cloning again from" +msgstr "Nếu bạn muốn dùng lại thÆ° mục git ná»™i bá»™ nà y thay vì nhân bản từ nó" + +#: git-submodule.sh:369 +#, sh-format +msgid "" +"use the '--force' option. If the local git directory is not the correct repo" +msgstr "" +"dùng tùy chá»n '--force'. Nếu thÆ° mục git ná»™i bá»™ không phải là repo (kho) đúng" + +#: git-submodule.sh:370 +#, sh-format +msgid "" +"or you are unsure what this means choose another name with the '--name' " +"option." +msgstr "" +"hay bạn không chắc chắn Ä‘iá»u đó có nghÄ©a gì chá»n tên khác vá»›i tùy chá»n '--" +"name'." + +#: git-submodule.sh:372 +#, sh-format +msgid "Reactivating local git directory for submodule '$sm_name'." +msgstr "" +"Phục hồi sá»± hoạt Ä‘á»™ng của thÆ° mục git ná»™i bá»™ cho mô-Ä‘un-con '$sm_name'." + +#: git-submodule.sh:384 #, sh-format msgid "Unable to checkout submodule '$sm_path'" -msgstr "Không thể checkout mô-Ä‘un con '$sm_path'" +msgstr "Không thể checkout mô-Ä‘un con “$sm_pathâ€" -#: git-submodule.sh:365 +#: git-submodule.sh:389 #, sh-format msgid "Failed to add submodule '$sm_path'" -msgstr "Gặp lá»—i khi thêm mô-Ä‘un con '$sm_path'" +msgstr "Gặp lá»—i khi thêm mô-Ä‘un con “$sm_pathâ€" -#: git-submodule.sh:370 +#: git-submodule.sh:394 #, sh-format msgid "Failed to register submodule '$sm_path'" -msgstr "Gặp lá»—i khi đăng ký vá»›i hệ thống mô-Ä‘un con '$sm_path'" +msgstr "Gặp lá»—i khi đăng ký vá»›i hệ thống mô-Ä‘un con “$sm_pathâ€" -#: git-submodule.sh:413 +#: git-submodule.sh:437 #, sh-format msgid "Entering '$prefix$sm_path'" -msgstr "Äang nháºp '$prefix$sm_path'" +msgstr "Äang nháºp “$prefix$sm_pathâ€" -#: git-submodule.sh:427 +#: git-submodule.sh:451 #, sh-format msgid "Stopping at '$sm_path'; script returned non-zero status." -msgstr "Dừng lại tại '$sm_path'; script trả vá» trạng thái khác không." +msgstr "Dừng lại tại “$sm_pathâ€; script trả vá» trạng thái khác không." -#: git-submodule.sh:471 +#: git-submodule.sh:495 #, sh-format msgid "No url found for submodule path '$sm_path' in .gitmodules" msgstr "" -"Không tìm thấy url cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path' trong .gitmodules" +"Không tìm thấy url cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_path†trong .gitmodules" -#: git-submodule.sh:480 +#: git-submodule.sh:504 #, sh-format msgid "Failed to register url for submodule path '$sm_path'" -msgstr "Gặp lá»—i khi đăng ký url cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path'" +msgstr "Gặp lá»—i khi đăng ký url cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:482 +#: git-submodule.sh:506 #, sh-format msgid "Submodule '$name' ($url) registered for path '$sm_path'" -msgstr "Mô-Ä‘un-con '$name' ($url) được đăng ký cho Ä‘Æ°á»ng dẫn '$sm_path'" +msgstr "Mô-Ä‘un-con “$name†($url) được đăng ký cho Ä‘Æ°á»ng dẫn “$sm_pathâ€" -#: git-submodule.sh:490 +#: git-submodule.sh:514 #, sh-format msgid "Failed to register update mode for submodule path '$sm_path'" msgstr "" -"Gặp lá»—i khi đăng ký chế Ä‘á»™ cáºp nháºt cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path'" +"Gặp lá»—i khi đăng ký chế Ä‘á»™ cáºp nháºt cho Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:590 +#: git-submodule.sh:614 #, sh-format msgid "" "Submodule path '$sm_path' not initialized\n" "Maybe you want to use 'update --init'?" msgstr "" -"ÄÆ°á»ng dẫn mô-Ä‘un-con '$sm_path' chÆ°a được khởi tạo\n" -"Có lẽ bạn muốn sá» dụng lệnh 'update --init'?" +"ÄÆ°á»ng dẫn mô-Ä‘un-con “$sm_path†chÆ°a được khởi tạo\n" +"Có lẽ bạn muốn sá» dụng lệnh “update --initâ€?" -#: git-submodule.sh:603 +#: git-submodule.sh:627 #, sh-format msgid "Unable to find current revision in submodule path '$sm_path'" msgstr "" -"Không tìm thấy Ä‘iểm xét lại hiện hà nh trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path'" +"Không tìm thấy Ä‘iểm xét lại hiện hà nh trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:622 +#: git-submodule.sh:646 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" -msgstr "Không thể lấy vá» (fetch) trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path'" +msgstr "Không thể lấy vá» (fetch) trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:636 +#: git-submodule.sh:660 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$sm_path'" -msgstr "Không thể rebase '$sha1' trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path'" +msgstr "Không thể rebase “$sha1†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:637 +#: git-submodule.sh:661 #, sh-format msgid "Submodule path '$sm_path': rebased into '$sha1'" -msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con '$sm_path': được rebase và o trong '$sha1'" +msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€: được rebase và o trong “$sha1â€" -#: git-submodule.sh:642 +#: git-submodule.sh:666 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$sm_path'" msgstr "" -"Không thể hòa trá»™n (merge) '$sha1' trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path'" +"Không thể hòa trá»™n (merge) “$sha1†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:643 +#: git-submodule.sh:667 #, sh-format msgid "Submodule path '$sm_path': merged in '$sha1'" -msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con '$sm_path': được hòa trá»™n và o '$sha1'" +msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€: được hòa trá»™n và o “$sha1â€" -#: git-submodule.sh:648 +#: git-submodule.sh:672 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$sm_path'" -msgstr "Không thể checkout '$sha1' trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path'" +msgstr "Không thể checkout “$sha1†trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:649 +#: git-submodule.sh:673 #, sh-format msgid "Submodule path '$sm_path': checked out '$sha1'" -msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con '$sm_path': được checkout '$sha1'" +msgstr "ÄÆ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€: được checkout “$sha1â€" -#: git-submodule.sh:671 git-submodule.sh:995 +#: git-submodule.sh:695 git-submodule.sh:1017 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" -msgstr "Gặp lá»—i khi đệ quy và o trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con '$sm_path'" +msgstr "Gặp lá»—i khi đệ quy và o trong Ä‘Æ°á»ng dẫn mô-Ä‘un-con “$sm_pathâ€" -#: git-submodule.sh:779 +#: git-submodule.sh:803 msgid "The --cached option cannot be used with the --files option" msgstr "Tùy chá»n --cached không thể dùng cùng vá»›i tùy chá»n --files" #. unexpected type -#: git-submodule.sh:819 +#: git-submodule.sh:843 #, sh-format msgid "unexpected mode $mod_dst" msgstr "chế Ä‘á»™ không nhÆ° mong chá» $mod_dst" -#: git-submodule.sh:837 +#: git-submodule.sh:861 #, sh-format msgid " Warn: $name doesn't contain commit $sha1_src" msgstr " Cảnh báo: $name không chứa lần chuyển giao (commit) $sha1_src" -#: git-submodule.sh:840 +#: git-submodule.sh:864 #, sh-format msgid " Warn: $name doesn't contain commit $sha1_dst" msgstr " Cảnh báo: $name không chứa lần chuyển giao (commit) $sha1_dst" -#: git-submodule.sh:843 +#: git-submodule.sh:867 #, sh-format msgid " Warn: $name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" " Cảnh báo: $name không chứa những lần chuyển giao (commit) $sha1_src và " "$sha1_dst" -#: git-submodule.sh:868 +#: git-submodule.sh:892 msgid "blob" msgstr "blob" -#: git-submodule.sh:906 +#: git-submodule.sh:930 msgid "# Submodules changed but not updated:" -msgstr "# Những mô-Ä‘un-con đã bị thay đổi nhÆ°ng chÆ°a được cáºp nháºt:" +msgstr "# Các mô-Ä‘un-con đã bị thay đổi nhÆ°ng chÆ°a được cáºp nháºt:" -#: git-submodule.sh:908 +#: git-submodule.sh:932 msgid "# Submodule changes to be committed:" msgstr "# Những thay đổi mô-Ä‘un-con được chuyển giao (commit):" -#: git-submodule.sh:1054 +#: git-submodule.sh:1080 #, sh-format -msgid "Synchronizing submodule url for '$name'" -msgstr "Äang đồng bá»™ hóa url mô-Ä‘un-con cho '$name'" +msgid "Synchronizing submodule url for '$prefix$sm_path'" +msgstr "Url Mô-Ä‘un-con đồng bá»™ hóa cho '$prefix$sm_path'" + +#~ msgid "git remote set-head <name> (-a | -d | <branch>])" +#~ msgstr "git remote set-head <tên> (-a | -d | <nhánh>])" #~ msgid " 0 files changed" #~ msgstr " 0 có táºp tin nà o thay đổi cả" @@ -9595,7 +9686,7 @@ msgstr "Äang đồng bá»™ hóa url mô-Ä‘un-con cho '$name'" #~ msgstr "%s: đã được xóa/thay-tên" #~ msgid "'%s': not a documentation directory." -#~ msgstr "'%s': không phải là má»™t thÆ° mục tà i liệu." +#~ msgstr "â€%sâ€: không phải là má»™t thÆ° mục tà i liệu." #~ msgid "--" #~ msgstr "--" @@ -9604,10 +9695,5 @@ msgstr "Äang đồng bá»™ hóa url mô-Ä‘un-con cho '$name'" #~ msgstr "" #~ "Không thể rút trÃch địa chỉ thÆ° Ä‘iện tá» từ định danh ngÆ°á»i chuyển giao" -#, fuzzy #~ msgid "could not parse commit %s\n" -#~ msgstr "Không thể phân tÃch commit (lần chuyển giao) %s\n" - -#, fuzzy -#~ msgid "cherry-pick" -#~ msgstr "< Chá»n D-Mod" +#~ msgstr "không thể phân tÃch commit (lần chuyển giao) %s\n" @@ -1627,13 +1627,16 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb) base = branch->merge[0]->dst; base = shorten_unambiguous_ref(base, 0); - if (!num_theirs) + if (!num_theirs) { strbuf_addf(sb, Q_("Your branch is ahead of '%s' by %d commit.\n", "Your branch is ahead of '%s' by %d commits.\n", num_ours), base, num_ours); - else if (!num_ours) + if (advice_status_hints) + strbuf_addf(sb, + _(" (use \"git push\" to publish your local commits)\n")); + } else if (!num_ours) { strbuf_addf(sb, Q_("Your branch is behind '%s' by %d commit, " "and can be fast-forwarded.\n", @@ -1641,7 +1644,10 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb) "and can be fast-forwarded.\n", num_theirs), base, num_theirs); - else + if (advice_status_hints) + strbuf_addf(sb, + _(" (use \"git pull\" to update your local branch)\n")); + } else { strbuf_addf(sb, Q_("Your branch and '%s' have diverged,\n" "and have %d and %d different commit each, " @@ -1651,6 +1657,10 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb) "respectively.\n", num_theirs), base, num_ours, num_theirs); + if (advice_status_hints) + strbuf_addf(sb, + _(" (use \"git pull\" to merge the remote branch into yours)\n")); + } return 1; } diff --git a/t/Makefile b/t/Makefile index 88e289fc8b..3025418ff5 100644 --- a/t/Makefile +++ b/t/Makefile @@ -6,7 +6,7 @@ -include ../config.mak.autogen -include ../config.mak -#GIT_TEST_OPTS=--verbose --debug +#GIT_TEST_OPTS = --verbose --debug SHELL_PATH ?= $(SHELL) PERL_PATH ?= /usr/bin/perl TAR ?= $(TAR) diff --git a/t/t0000-basic.sh b/t/t0000-basic.sh index 08677df10e..562cf41cad 100755 --- a/t/t0000-basic.sh +++ b/t/t0000-basic.sh @@ -115,6 +115,38 @@ then exit 1 fi +test_lazy_prereq LAZY_TRUE true +havetrue=no +test_expect_success LAZY_TRUE 'test runs if lazy prereq is satisfied' ' + havetrue=yes +' +donthavetrue=yes +test_expect_success !LAZY_TRUE 'missing lazy prereqs skip tests' ' + donthavetrue=no +' + +if test "$havetrue$donthavetrue" != yesyes +then + say 'bug in test framework: lazy prerequisites do not work' + exit 1 +fi + +test_lazy_prereq LAZY_FALSE false +nothavefalse=no +test_expect_success !LAZY_FALSE 'negative lazy prereqs checked' ' + nothavefalse=yes +' +havefalse=yes +test_expect_success LAZY_FALSE 'missing negative lazy prereqs will skip' ' + havefalse=no +' + +if test "$nothavefalse$havefalse" != yesyes +then + say 'bug in test framework: negative lazy prerequisites do not work' + exit 1 +fi + clean=no test_expect_success 'tests clean up after themselves' ' test_when_finished clean=yes diff --git a/t/t0007-git-var.sh b/t/t0007-git-var.sh new file mode 100755 index 0000000000..5868a87352 --- /dev/null +++ b/t/t0007-git-var.sh @@ -0,0 +1,49 @@ +#!/bin/sh + +test_description='basic sanity checks for git var' +. ./test-lib.sh + +test_expect_success 'get GIT_AUTHOR_IDENT' ' + test_tick && + echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect && + git var GIT_AUTHOR_IDENT >actual && + test_cmp expect actual +' + +test_expect_success 'get GIT_COMMITTER_IDENT' ' + test_tick && + echo "$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" >expect && + git var GIT_COMMITTER_IDENT >actual && + test_cmp expect actual +' + +test_expect_success !AUTOIDENT 'requested identites are strict' ' + ( + sane_unset GIT_COMMITTER_NAME && + sane_unset GIT_COMMITTER_EMAIL && + test_must_fail git var GIT_COMMITTER_IDENT + ) +' + +# For git var -l, we check only a representative variable; +# testing the whole output would make our test too brittle with +# respect to unrelated changes in the test suite's environment. +test_expect_success 'git var -l lists variables' ' + git var -l >actual && + echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect && + sed -n s/GIT_AUTHOR_IDENT=//p <actual >actual.author && + test_cmp expect actual.author +' + +test_expect_success 'git var -l lists config' ' + git var -l >actual && + echo false >expect && + sed -n s/core\\.bare=//p <actual >actual.bare && + test_cmp expect actual.bare +' + +test_expect_success 'listing and asking for variables are exclusive' ' + test_must_fail git var -l GIT_COMMITTER_IDENT +' + +test_done diff --git a/t/t2020-checkout-detach.sh b/t/t2020-checkout-detach.sh index 81005373d7..5d68729d7a 100755 --- a/t/t2020-checkout-detach.sh +++ b/t/t2020-checkout-detach.sh @@ -151,6 +151,7 @@ test_expect_success 'checkout does not warn leaving reachable commit' ' cat >expect <<'EOF' Your branch is behind 'master' by 1 commit, and can be fast-forwarded. + (use "git pull" to update your local branch) EOF test_expect_success 'tracking count is accurate after orphan check' ' reset && diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh index 97254e8d33..06f63848ea 100755 --- a/t/t3600-rm.sh +++ b/t/t3600-rm.sh @@ -302,6 +302,23 @@ test_expect_success 'rm removes work tree of unmodified submodules' ' test_cmp expect actual ' +test_expect_success 'rm removes a submodule with a trailing /' ' + git reset --hard && + git submodule update && + git rm submod/ && + test ! -d submod && + git status -s -uno --ignore-submodules=none > actual && + test_cmp expect actual +' + +test_expect_success 'rm fails when given a file with a trailing /' ' + test_must_fail git rm empty/ +' + +test_expect_success 'rm succeeds when given a directory with a trailing /' ' + git rm -r frotz/ +' + test_expect_success 'rm of a populated submodule with different HEAD fails unless forced' ' git reset --hard && git submodule update && diff --git a/t/t4030-diff-textconv.sh b/t/t4030-diff-textconv.sh index 461d27ac20..53ec330ce8 100755 --- a/t/t4030-diff-textconv.sh +++ b/t/t4030-diff-textconv.sh @@ -96,6 +96,18 @@ test_expect_success 'grep-diff (-G) operates on textconv data (modification)' ' test_cmp expect actual ' +test_expect_success 'pickaxe (-S) operates on textconv data (add)' ' + echo one >expect && + git log --root --format=%s -S0 >actual && + test_cmp expect actual +' + +test_expect_success 'pickaxe (-S) operates on textconv data (modification)' ' + echo two >expect && + git log --root --format=%s -S1 >actual && + test_cmp expect actual +' + cat >expect.stat <<'EOF' file | Bin 2 -> 4 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/t/t4041-diff-submodule-option.sh b/t/t4041-diff-submodule-option.sh index 57e8a9dacb..32d4a60425 100755 --- a/t/t4041-diff-submodule-option.sh +++ b/t/t4041-diff-submodule-option.sh @@ -11,18 +11,18 @@ This test tries to verify the sanity of the --submodule option of git diff. . ./test-lib.sh add_file () { - sm=$1 - shift - owd=$(pwd) - cd "$sm" - for name; do - echo "$name" > "$name" && - git add "$name" && - test_tick && - git commit -m "Add $name" - done >/dev/null - git rev-parse --verify HEAD | cut -c1-7 - cd "$owd" + ( + cd "$1" && + shift && + for name + do + echo "$name" >"$name" && + git add "$name" && + test_tick && + git commit -m "Add $name" || exit + done >/dev/null && + git rev-parse --short --verify HEAD + ) } commit_file () { test_tick && @@ -33,43 +33,43 @@ test_create_repo sm1 && add_file . foo >/dev/null head1=$(add_file sm1 foo1 foo2) -fullhead1=$(cd sm1; git rev-list --max-count=1 $head1) +fullhead1=$(cd sm1; git rev-parse --verify HEAD) -test_expect_success 'added submodule' " +test_expect_success 'added submodule' ' git add sm1 && git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 0000000...$head1 (new submodule) -EOF + Submodule sm1 0000000...$head1 (new submodule) + EOF test_cmp expected actual -" +' -test_expect_success 'added submodule, set diff.submodule' " +test_expect_success 'added submodule, set diff.submodule' ' git config diff.submodule log && git add sm1 && git diff --cached >actual && cat >expected <<-EOF && -Submodule sm1 0000000...$head1 (new submodule) -EOF + Submodule sm1 0000000...$head1 (new submodule) + EOF git config --unset diff.submodule && test_cmp expected actual -" +' -test_expect_success '--submodule=short overrides diff.submodule' " +test_expect_success '--submodule=short overrides diff.submodule' ' test_config diff.submodule log && git add sm1 && git diff --submodule=short --cached >actual && cat >expected <<-EOF && -diff --git a/sm1 b/sm1 -new file mode 160000 -index 0000000..a2c4dab ---- /dev/null -+++ b/sm1 -@@ -0,0 +1 @@ -+Subproject commit $fullhead1 -EOF + diff --git a/sm1 b/sm1 + new file mode 160000 + index 0000000..$head1 + --- /dev/null + +++ b/sm1 + @@ -0,0 +1 @@ + +Subproject commit $fullhead1 + EOF test_cmp expected actual -" +' test_expect_success 'diff.submodule does not affect plumbing' ' test_config diff.submodule log && @@ -77,7 +77,7 @@ test_expect_success 'diff.submodule does not affect plumbing' ' cat >expected <<-EOF && diff --git a/sm1 b/sm1 new file mode 160000 - index 0000000..a2c4dab + index 0000000..$head1 --- /dev/null +++ b/sm1 @@ -0,0 +1 @@ @@ -89,78 +89,77 @@ test_expect_success 'diff.submodule does not affect plumbing' ' commit_file sm1 && head2=$(add_file sm1 foo3) -test_expect_success 'modified submodule(forward)' " +test_expect_success 'modified submodule(forward)' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head1..$head2: - > Add foo3 -EOF + Submodule sm1 $head1..$head2: + > Add foo3 + EOF test_cmp expected actual -" +' -test_expect_success 'modified submodule(forward)' " +test_expect_success 'modified submodule(forward)' ' git diff --submodule=log >actual && cat >expected <<-EOF && -Submodule sm1 $head1..$head2: - > Add foo3 -EOF + Submodule sm1 $head1..$head2: + > Add foo3 + EOF test_cmp expected actual -" +' -test_expect_success 'modified submodule(forward) --submodule' " +test_expect_success 'modified submodule(forward) --submodule' ' git diff --submodule >actual && cat >expected <<-EOF && -Submodule sm1 $head1..$head2: - > Add foo3 -EOF + Submodule sm1 $head1..$head2: + > Add foo3 + EOF test_cmp expected actual -" +' -fullhead2=$(cd sm1; git rev-list --max-count=1 $head2) -test_expect_success 'modified submodule(forward) --submodule=short' " +fullhead2=$(cd sm1; git rev-parse --verify HEAD) +test_expect_success 'modified submodule(forward) --submodule=short' ' git diff --submodule=short >actual && cat >expected <<-EOF && -diff --git a/sm1 b/sm1 -index $head1..$head2 160000 ---- a/sm1 -+++ b/sm1 -@@ -1 +1 @@ --Subproject commit $fullhead1 -+Subproject commit $fullhead2 -EOF + diff --git a/sm1 b/sm1 + index $head1..$head2 160000 + --- a/sm1 + +++ b/sm1 + @@ -1 +1 @@ + -Subproject commit $fullhead1 + +Subproject commit $fullhead2 + EOF test_cmp expected actual -" +' commit_file sm1 && head3=$( cd sm1 && git reset --hard HEAD~2 >/dev/null && - git rev-parse --verify HEAD | cut -c1-7 + git rev-parse --short --verify HEAD ) -test_expect_success 'modified submodule(backward)' " +test_expect_success 'modified submodule(backward)' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head2..$head3 (rewind): - < Add foo3 - < Add foo2 -EOF + Submodule sm1 $head2..$head3 (rewind): + < Add foo3 + < Add foo2 + EOF test_cmp expected actual -" +' -head4=$(add_file sm1 foo4 foo5) && -head4_full=$(GIT_DIR=sm1/.git git rev-parse --verify HEAD) -test_expect_success 'modified submodule(backward and forward)' " +head4=$(add_file sm1 foo4 foo5) +test_expect_success 'modified submodule(backward and forward)' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head2...$head4: - > Add foo5 - > Add foo4 - < Add foo3 - < Add foo2 -EOF + Submodule sm1 $head2...$head4: + > Add foo5 + > Add foo4 + < Add foo3 + < Add foo2 + EOF test_cmp expected actual -" +' commit_file sm1 && mv sm1 sm1-bak && @@ -170,319 +169,319 @@ git add sm1 && rm -f sm1 && mv sm1-bak sm1 -test_expect_success 'typechanged submodule(submodule->blob), --cached' " +test_expect_success 'typechanged submodule(submodule->blob), --cached' ' git diff --submodule=log --cached >actual && cat >expected <<-EOF && -Submodule sm1 41fbea9...0000000 (submodule deleted) -diff --git a/sm1 b/sm1 -new file mode 100644 -index 0000000..9da5fb8 ---- /dev/null -+++ b/sm1 -@@ -0,0 +1 @@ -+sm1 -EOF + Submodule sm1 $head4...0000000 (submodule deleted) + diff --git a/sm1 b/sm1 + new file mode 100644 + index 0000000..$head5 + --- /dev/null + +++ b/sm1 + @@ -0,0 +1 @@ + +sm1 + EOF test_cmp expected actual -" +' -test_expect_success 'typechanged submodule(submodule->blob)' " +test_expect_success 'typechanged submodule(submodule->blob)' ' git diff --submodule=log >actual && cat >expected <<-EOF && -diff --git a/sm1 b/sm1 -deleted file mode 100644 -index 9da5fb8..0000000 ---- a/sm1 -+++ /dev/null -@@ -1 +0,0 @@ --sm1 -Submodule sm1 0000000...$head4 (new submodule) -EOF + diff --git a/sm1 b/sm1 + deleted file mode 100644 + index $head5..0000000 + --- a/sm1 + +++ /dev/null + @@ -1 +0,0 @@ + -sm1 + Submodule sm1 0000000...$head4 (new submodule) + EOF test_cmp expected actual -" +' rm -rf sm1 && git checkout-index sm1 -test_expect_success 'typechanged submodule(submodule->blob)' " +test_expect_success 'typechanged submodule(submodule->blob)' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head4...0000000 (submodule deleted) -diff --git a/sm1 b/sm1 -new file mode 100644 -index 0000000..$head5 ---- /dev/null -+++ b/sm1 -@@ -0,0 +1 @@ -+sm1 -EOF + Submodule sm1 $head4...0000000 (submodule deleted) + diff --git a/sm1 b/sm1 + new file mode 100644 + index 0000000..$head5 + --- /dev/null + +++ b/sm1 + @@ -0,0 +1 @@ + +sm1 + EOF test_cmp expected actual -" +' rm -f sm1 && test_create_repo sm1 && head6=$(add_file sm1 foo6 foo7) -fullhead6=$(cd sm1; git rev-list --max-count=1 $head6) -test_expect_success 'nonexistent commit' " +fullhead6=$(cd sm1; git rev-parse --verify HEAD) +test_expect_success 'nonexistent commit' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head4...$head6 (commits not present) -EOF + Submodule sm1 $head4...$head6 (commits not present) + EOF test_cmp expected actual -" +' commit_file -test_expect_success 'typechanged submodule(blob->submodule)' " +test_expect_success 'typechanged submodule(blob->submodule)' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -diff --git a/sm1 b/sm1 -deleted file mode 100644 -index $head5..0000000 ---- a/sm1 -+++ /dev/null -@@ -1 +0,0 @@ --sm1 -Submodule sm1 0000000...$head6 (new submodule) -EOF + diff --git a/sm1 b/sm1 + deleted file mode 100644 + index $head5..0000000 + --- a/sm1 + +++ /dev/null + @@ -1 +0,0 @@ + -sm1 + Submodule sm1 0000000...$head6 (new submodule) + EOF test_cmp expected actual -" +' commit_file sm1 && -test_expect_success 'submodule is up to date' " +test_expect_success 'submodule is up to date' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -EOF + EOF test_cmp expected actual -" +' -test_expect_success 'submodule contains untracked content' " +test_expect_success 'submodule contains untracked content' ' echo new > sm1/new-file && git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 contains untracked content -EOF + Submodule sm1 contains untracked content + EOF test_cmp expected actual -" +' -test_expect_success 'submodule contains untracked content (untracked ignored)' " +test_expect_success 'submodule contains untracked content (untracked ignored)' ' git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual && ! test -s actual -" +' -test_expect_success 'submodule contains untracked content (dirty ignored)' " +test_expect_success 'submodule contains untracked content (dirty ignored)' ' git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual && ! test -s actual -" +' -test_expect_success 'submodule contains untracked content (all ignored)' " +test_expect_success 'submodule contains untracked content (all ignored)' ' git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual && ! test -s actual -" +' -test_expect_success 'submodule contains untracked and modifed content' " +test_expect_success 'submodule contains untracked and modifed content' ' echo new > sm1/foo6 && git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 contains untracked content -Submodule sm1 contains modified content -EOF + Submodule sm1 contains untracked content + Submodule sm1 contains modified content + EOF test_cmp expected actual -" +' -test_expect_success 'submodule contains untracked and modifed content (untracked ignored)' " +test_expect_success 'submodule contains untracked and modifed content (untracked ignored)' ' echo new > sm1/foo6 && git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 contains modified content -EOF + Submodule sm1 contains modified content + EOF test_cmp expected actual -" +' -test_expect_success 'submodule contains untracked and modifed content (dirty ignored)' " +test_expect_success 'submodule contains untracked and modifed content (dirty ignored)' ' echo new > sm1/foo6 && git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual && ! test -s actual -" +' -test_expect_success 'submodule contains untracked and modifed content (all ignored)' " +test_expect_success 'submodule contains untracked and modifed content (all ignored)' ' echo new > sm1/foo6 && git diff-index -p --ignore-submodules --submodule=log HEAD >actual && ! test -s actual -" +' -test_expect_success 'submodule contains modifed content' " +test_expect_success 'submodule contains modifed content' ' rm -f sm1/new-file && git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 contains modified content -EOF + Submodule sm1 contains modified content + EOF test_cmp expected actual -" +' (cd sm1; git commit -mchange foo6 >/dev/null) && -head8=$(cd sm1; git rev-parse --verify HEAD | cut -c1-7) && -test_expect_success 'submodule is modified' " +head8=$(cd sm1; git rev-parse --short --verify HEAD) && +test_expect_success 'submodule is modified' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head6..$head8: - > change -EOF + Submodule sm1 $head6..$head8: + > change + EOF test_cmp expected actual -" +' -test_expect_success 'modified submodule contains untracked content' " +test_expect_success 'modified submodule contains untracked content' ' echo new > sm1/new-file && git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 contains untracked content -Submodule sm1 $head6..$head8: - > change -EOF + Submodule sm1 contains untracked content + Submodule sm1 $head6..$head8: + > change + EOF test_cmp expected actual -" +' -test_expect_success 'modified submodule contains untracked content (untracked ignored)' " +test_expect_success 'modified submodule contains untracked content (untracked ignored)' ' git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head6..$head8: - > change -EOF + Submodule sm1 $head6..$head8: + > change + EOF test_cmp expected actual -" +' -test_expect_success 'modified submodule contains untracked content (dirty ignored)' " +test_expect_success 'modified submodule contains untracked content (dirty ignored)' ' git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head6..$head8: - > change -EOF + Submodule sm1 $head6..$head8: + > change + EOF test_cmp expected actual -" +' -test_expect_success 'modified submodule contains untracked content (all ignored)' " +test_expect_success 'modified submodule contains untracked content (all ignored)' ' git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual && ! test -s actual -" +' -test_expect_success 'modified submodule contains untracked and modifed content' " +test_expect_success 'modified submodule contains untracked and modifed content' ' echo modification >> sm1/foo6 && git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 contains untracked content -Submodule sm1 contains modified content -Submodule sm1 $head6..$head8: - > change -EOF + Submodule sm1 contains untracked content + Submodule sm1 contains modified content + Submodule sm1 $head6..$head8: + > change + EOF test_cmp expected actual -" +' -test_expect_success 'modified submodule contains untracked and modifed content (untracked ignored)' " +test_expect_success 'modified submodule contains untracked and modifed content (untracked ignored)' ' echo modification >> sm1/foo6 && git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 contains modified content -Submodule sm1 $head6..$head8: - > change -EOF + Submodule sm1 contains modified content + Submodule sm1 $head6..$head8: + > change + EOF test_cmp expected actual -" +' -test_expect_success 'modified submodule contains untracked and modifed content (dirty ignored)' " +test_expect_success 'modified submodule contains untracked and modifed content (dirty ignored)' ' echo modification >> sm1/foo6 && git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head6..$head8: - > change -EOF + Submodule sm1 $head6..$head8: + > change + EOF test_cmp expected actual -" +' -test_expect_success 'modified submodule contains untracked and modifed content (all ignored)' " +test_expect_success 'modified submodule contains untracked and modifed content (all ignored)' ' echo modification >> sm1/foo6 && git diff-index -p --ignore-submodules --submodule=log HEAD >actual && ! test -s actual -" +' -test_expect_success 'modified submodule contains modifed content' " +test_expect_success 'modified submodule contains modifed content' ' rm -f sm1/new-file && git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 contains modified content -Submodule sm1 $head6..$head8: - > change -EOF + Submodule sm1 contains modified content + Submodule sm1 $head6..$head8: + > change + EOF test_cmp expected actual -" +' rm -rf sm1 -test_expect_success 'deleted submodule' " +test_expect_success 'deleted submodule' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head6...0000000 (submodule deleted) -EOF + Submodule sm1 $head6...0000000 (submodule deleted) + EOF test_cmp expected actual -" +' test_create_repo sm2 && head7=$(add_file sm2 foo8 foo9) && git add sm2 -test_expect_success 'multiple submodules' " +test_expect_success 'multiple submodules' ' git diff-index -p --submodule=log HEAD >actual && cat >expected <<-EOF && -Submodule sm1 $head6...0000000 (submodule deleted) -Submodule sm2 0000000...$head7 (new submodule) -EOF + Submodule sm1 $head6...0000000 (submodule deleted) + Submodule sm2 0000000...$head7 (new submodule) + EOF test_cmp expected actual -" +' -test_expect_success 'path filter' " +test_expect_success 'path filter' ' git diff-index -p --submodule=log HEAD sm2 >actual && cat >expected <<-EOF && -Submodule sm2 0000000...$head7 (new submodule) -EOF + Submodule sm2 0000000...$head7 (new submodule) + EOF test_cmp expected actual -" +' commit_file sm2 -test_expect_success 'given commit' " +test_expect_success 'given commit' ' git diff-index -p --submodule=log HEAD^ >actual && cat >expected <<-EOF && -Submodule sm1 $head6...0000000 (submodule deleted) -Submodule sm2 0000000...$head7 (new submodule) -EOF + Submodule sm1 $head6...0000000 (submodule deleted) + Submodule sm2 0000000...$head7 (new submodule) + EOF test_cmp expected actual -" +' -test_expect_success 'given commit --submodule' " +test_expect_success 'given commit --submodule' ' git diff-index -p --submodule HEAD^ >actual && cat >expected <<-EOF && -Submodule sm1 $head6...0000000 (submodule deleted) -Submodule sm2 0000000...$head7 (new submodule) -EOF + Submodule sm1 $head6...0000000 (submodule deleted) + Submodule sm2 0000000...$head7 (new submodule) + EOF test_cmp expected actual -" +' -fullhead7=$(cd sm2; git rev-list --max-count=1 $head7) +fullhead7=$(cd sm2; git rev-parse --verify HEAD) -test_expect_success 'given commit --submodule=short' " +test_expect_success 'given commit --submodule=short' ' git diff-index -p --submodule=short HEAD^ >actual && cat >expected <<-EOF && -diff --git a/sm1 b/sm1 -deleted file mode 160000 -index $head6..0000000 ---- a/sm1 -+++ /dev/null -@@ -1 +0,0 @@ --Subproject commit $fullhead6 -diff --git a/sm2 b/sm2 -new file mode 160000 -index 0000000..$head7 ---- /dev/null -+++ b/sm2 -@@ -0,0 +1 @@ -+Subproject commit $fullhead7 -EOF - test_cmp expected actual -" + diff --git a/sm1 b/sm1 + deleted file mode 160000 + index $head6..0000000 + --- a/sm1 + +++ /dev/null + @@ -1 +0,0 @@ + -Subproject commit $fullhead6 + diff --git a/sm2 b/sm2 + new file mode 160000 + index 0000000..$head7 + --- /dev/null + +++ b/sm2 + @@ -0,0 +1 @@ + +Subproject commit $fullhead7 + EOF + test_cmp expected actual +' test_expect_success 'setup .git file for sm2' ' (cd sm2 && @@ -494,9 +493,9 @@ test_expect_success 'setup .git file for sm2' ' test_expect_success 'diff --submodule with .git file' ' git diff --submodule HEAD^ >actual && cat >expected <<-EOF && -Submodule sm1 $head6...0000000 (submodule deleted) -Submodule sm2 0000000...$head7 (new submodule) -EOF + Submodule sm1 $head6...0000000 (submodule deleted) + Submodule sm2 0000000...$head7 (new submodule) + EOF test_cmp expected actual ' diff --git a/t/t4049-diff-stat-count.sh b/t/t4049-diff-stat-count.sh index 7b3ef00533..5b594e878f 100755 --- a/t/t4049-diff-stat-count.sh +++ b/t/t4049-diff-stat-count.sh @@ -4,20 +4,62 @@ test_description='diff --stat-count' . ./test-lib.sh -test_expect_success setup ' +test_expect_success 'setup' ' >a && >b && >c && >d && git add a b c d && - chmod +x c d && + git commit -m initial +' + +test_expect_success 'mode-only change show as a 0-line change' ' + git reset --hard && + test_chmod +x b d && + echo a >a && + echo c >c && + cat >expect <<-\EOF + a | 1 + + b | 0 + ... + 4 files changed, 2 insertions(+) + EOF + git diff --stat --stat-count=2 HEAD >actual && + test_i18ncmp expect actual +' + +test_expect_success 'binary changes do not count in lines' ' + git reset --hard && + echo a >a && + echo c >c && + cat "$TEST_DIRECTORY"/test-binary-1.png >d && + cat >expect <<-\EOF + a | 1 + + c | 1 + + ... + 3 files changed, 2 insertions(+) + EOF + git diff --stat --stat-count=2 >actual && + test_i18ncmp expect actual +' + +test_expect_success 'exclude unmerged entries from total file count' ' + git reset --hard && echo a >a && echo b >b && + git ls-files -s a >x && + git rm -f d && + for stage in 1 2 3 + do + sed -e "s/ 0 a/ $stage d/" x + done | + git update-index --index-info && + echo d >d && cat >expect <<-\EOF a | 1 + b | 1 + ... - 4 files changed, 2 insertions(+) + 3 files changed, 3 insertions(+) EOF git diff --stat --stat-count=2 >actual && test_i18ncmp expect actual diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh index deb187eb7b..1a5cb6983c 100755 --- a/t/t7502-commit.sh +++ b/t/t7502-commit.sh @@ -243,16 +243,6 @@ test_expect_success 'message shows author when it is not equal to committer' ' .git/COMMIT_EDITMSG ' -test_expect_success 'setup auto-ident prerequisite' ' - if (sane_unset GIT_COMMITTER_EMAIL && - sane_unset GIT_COMMITTER_NAME && - git var GIT_COMMITTER_IDENT); then - test_set_prereq AUTOIDENT - else - test_set_prereq NOAUTOIDENT - fi -' - test_expect_success AUTOIDENT 'message shows committer when it is automatic' ' echo >>negative && @@ -271,7 +261,7 @@ echo editor started > "$(pwd)/.git/result" exit 0 EOF -test_expect_success NOAUTOIDENT 'do not fire editor when committer is bogus' ' +test_expect_success !AUTOIDENT 'do not fire editor when committer is bogus' ' >.git/result >expect && diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 6c6af7d13f..97d6f4c7de 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -191,17 +191,44 @@ test_expect_success $PREREQ 'Show all headers' ' test_expect_success $PREREQ 'Prompting works' ' clean_fake_sendmail && - (echo "Example <from@example.com>" - echo "to@example.com" + (echo "to@example.com" echo "" ) | GIT_SEND_EMAIL_NOTTY=1 git send-email \ --smtp-server="$(pwd)/fake.sendmail" \ $patches \ 2>errors && - grep "^From: Example <from@example.com>\$" msgtxt1 && + grep "^From: A U Thor <author@example.com>\$" msgtxt1 && grep "^To: to@example.com\$" msgtxt1 ' +test_expect_success $PREREQ,AUTOIDENT 'implicit ident is allowed' ' + clean_fake_sendmail && + (sane_unset GIT_AUTHOR_NAME && + sane_unset GIT_AUTHOR_EMAIL && + sane_unset GIT_COMMITTER_NAME && + sane_unset GIT_COMMITTER_EMAIL && + GIT_SEND_EMAIL_NOTTY=1 git send-email \ + --smtp-server="$(pwd)/fake.sendmail" \ + --to=to@example.com \ + $patches </dev/null 2>errors + ) +' + +test_expect_success $PREREQ,!AUTOIDENT 'broken implicit ident aborts send-email' ' + clean_fake_sendmail && + (sane_unset GIT_AUTHOR_NAME && + sane_unset GIT_AUTHOR_EMAIL && + sane_unset GIT_COMMITTER_NAME && + sane_unset GIT_COMMITTER_EMAIL && + GIT_SEND_EMAIL_NOTTY=1 && export GIT_SEND_EMAIL_NOTTY && + test_must_fail git send-email \ + --smtp-server="$(pwd)/fake.sendmail" \ + --to=to@example.com \ + $patches </dev/null 2>errors && + test_i18ngrep "tell me who you are" errors + ) +' + test_expect_success $PREREQ 'tocmd works' ' clean_fake_sendmail && cp $patches tocmd.patch && diff --git a/t/t9800-git-p4-basic.sh b/t/t9800-git-p4-basic.sh index b7ad716b09..8c5979647f 100755 --- a/t/t9800-git-p4-basic.sh +++ b/t/t9800-git-p4-basic.sh @@ -143,7 +143,18 @@ test_expect_success 'exit when p4 fails to produce marshaled output' ' ! test_i18ngrep Traceback errs ' -test_expect_success 'clone bare' ' +# Hide a file from p4d, make sure we catch its complaint. This won't fail in +# p4 changes, files, or describe; just in p4 print. If P4CLIENT is unset, the +# message will include "Librarian checkout". +test_expect_success 'exit gracefully for p4 server errors' ' + test_when_finished "mv \"$db\"/depot/file1,v,hidden \"$db\"/depot/file1,v" && + mv "$db"/depot/file1,v "$db"/depot/file1,v,hidden && + test_when_finished cleanup_git && + test_expect_code 1 git p4 clone --dest="$git" //depot@1 >out 2>err && + test_i18ngrep "Error from p4 print" err +' + +test_expect_success 'clone --bare should make a bare repository' ' rm -rf "$git" && git p4 clone --dest="$git" --bare //depot && test_when_finished cleanup_git && @@ -172,6 +183,18 @@ test_expect_success 'initial import time from top change time' ' ) ' +test_expect_success 'unresolvable host in P4PORT should display error' ' + test_when_finished cleanup_git && + git p4 clone --dest="$git" //depot && + ( + cd "$git" && + P4PORT=nosuchhost:65537 && + export P4PORT && + test_expect_code 1 git p4 sync >out 2>err && + grep "connect to nosuchhost" err + ) +' + test_expect_success 'kill p4d' ' kill_p4d ' diff --git a/t/t9814-git-p4-rename.sh b/t/t9814-git-p4-rename.sh index 3bf1224ae0..be802e0e16 100755 --- a/t/t9814-git-p4-rename.sh +++ b/t/t9814-git-p4-rename.sh @@ -199,6 +199,41 @@ test_expect_success 'detect copies' ' ) ' +# See if configurables can be set, and in particular if the run.move.allow +# variable exists, which allows admins to disable the "p4 move" command. +test_expect_success 'p4 configure command and run.move.allow are available' ' + p4 configure show run.move.allow >out ; retval=$? && + test $retval = 0 && + { + egrep ^run.move.allow: out && + test_set_prereq P4D_HAVE_CONFIGURABLE_RUN_MOVE_ALLOW || + true + } || true +' + +# If move can be disabled, turn it off and test p4 move handling +test_expect_success P4D_HAVE_CONFIGURABLE_RUN_MOVE_ALLOW \ + 'do not use p4 move when administratively disabled' ' + test_when_finished "p4 configure set run.move.allow=1" && + p4 configure set run.move.allow=0 && + ( + cd "$cli" && + echo move-disallow-file >move-disallow-file && + p4 add move-disallow-file && + p4 submit -d "add move-disallow-file" + ) && + test_when_finished cleanup_git && + git p4 clone --dest="$git" //depot && + ( + cd "$git" && + git config git-p4.skipSubmitEdit true && + git config git-p4.detectRenames true && + git mv move-disallow-file move-disallow-file-moved && + git commit -m "move move-disallow-file" && + git p4 submit + ) +' + test_expect_success 'kill p4d' ' kill_p4d ' diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index 8fa025f9d4..3cd53f87fb 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -54,105 +54,78 @@ run_completion () __git_wrap__git_main && print_comp } +# Test high-level completion +# Arguments are: +# 1: typed text so far (cur) +# 2: expected completion test_completion () { - test $# -gt 1 && echo "$2" > expected - run_completion "$@" && + if test $# -gt 1 + then + printf '%s\n' "$2" >expected + else + sed -e 's/Z$//' >expected + fi && + run_completion "$1" && test_cmp expected out } -# Like test_completion, but reads expectation from stdin, -# which is convenient when it is multiline. We also process "_" into -# spaces to make test vectors more readable. -test_completion_long () +# Test __gitcomp. +# The first argument is the typed text so far (cur); the rest are +# passed to __gitcomp. Expected output comes is read from the +# standard input, like test_completion(). +test_gitcomp () { - tr _ " " >expected && - test_completion "$1" + local -a COMPREPLY && + sed -e 's/Z$//' >expected && + cur="$1" && + shift && + __gitcomp "$@" && + print_comp && + test_cmp expected out } -newline=$'\n' - test_expect_success '__gitcomp - trailing space - options' ' - sed -e "s/Z$//" >expected <<-\EOF && + test_gitcomp "--re" "--dry-run --reuse-message= --reedit-message= + --reset-author" <<-EOF --reuse-message=Z --reedit-message=Z --reset-author Z EOF - ( - local -a COMPREPLY && - cur="--re" && - __gitcomp "--dry-run --reuse-message= --reedit-message= - --reset-author" && - IFS="$newline" && - echo "${COMPREPLY[*]}" > out - ) && - test_cmp expected out ' test_expect_success '__gitcomp - trailing space - config keys' ' - sed -e "s/Z$//" >expected <<-\EOF && + test_gitcomp "br" "branch. branch.autosetupmerge + branch.autosetuprebase browser." <<-\EOF branch.Z branch.autosetupmerge Z branch.autosetuprebase Z browser.Z EOF - ( - local -a COMPREPLY && - cur="br" && - __gitcomp "branch. branch.autosetupmerge - branch.autosetuprebase browser." && - IFS="$newline" && - echo "${COMPREPLY[*]}" > out - ) && - test_cmp expected out ' test_expect_success '__gitcomp - option parameter' ' - sed -e "s/Z$//" >expected <<-\EOF && + test_gitcomp "--strategy=re" "octopus ours recursive resolve subtree" \ + "" "re" <<-\EOF recursive Z resolve Z EOF - ( - local -a COMPREPLY && - cur="--strategy=re" && - __gitcomp "octopus ours recursive resolve subtree - " "" "re" && - IFS="$newline" && - echo "${COMPREPLY[*]}" > out - ) && - test_cmp expected out ' test_expect_success '__gitcomp - prefix' ' - sed -e "s/Z$//" >expected <<-\EOF && + test_gitcomp "branch.me" "remote merge mergeoptions rebase" \ + "branch.maint." "me" <<-\EOF branch.maint.merge Z branch.maint.mergeoptions Z EOF - ( - local -a COMPREPLY && - cur="branch.me" && - __gitcomp "remote merge mergeoptions rebase - " "branch.maint." "me" && - IFS="$newline" && - echo "${COMPREPLY[*]}" > out - ) && - test_cmp expected out ' test_expect_success '__gitcomp - suffix' ' - sed -e "s/Z$//" >expected <<-\EOF && + test_gitcomp "branch.me" "master maint next pu" "branch." \ + "ma" "." <<-\EOF branch.master.Z branch.maint.Z EOF - ( - local -a COMPREPLY && - cur="branch.me" && - __gitcomp "master maint next pu - " "branch." "ma" "." && - IFS="$newline" && - echo "${COMPREPLY[*]}" > out - ) && - test_cmp expected out ' test_expect_success 'basic' ' @@ -169,7 +142,7 @@ test_expect_success 'basic' ' ' test_expect_success 'double dash "git" itself' ' - sed -e "s/Z$//" >expected <<-\EOF && + test_completion "git --" <<-\EOF --paginate Z --no-pager Z --git-dir= @@ -184,11 +157,10 @@ test_expect_success 'double dash "git" itself' ' --no-replace-objects Z --help Z EOF - test_completion "git --" ' test_expect_success 'double dash "git checkout"' ' - sed -e "s/Z$//" >expected <<-\EOF && + test_completion "git checkout --" <<-\EOF --quiet Z --ours Z --theirs Z @@ -199,17 +171,15 @@ test_expect_success 'double dash "git checkout"' ' --orphan Z --patch Z EOF - test_completion "git checkout --" ' test_expect_success 'general options' ' test_completion "git --ver" "--version " && test_completion "git --hel" "--help " && - sed -e "s/Z$//" >expected <<-\EOF && + test_completion "git --exe" <<-\EOF && --exec-path Z --exec-path= EOF - test_completion "git --exe" && test_completion "git --htm" "--html-path " && test_completion "git --pag" "--paginate " && test_completion "git --no-p" "--no-pager " && @@ -247,25 +217,25 @@ test_expect_success 'setup for ref completion' ' ' test_expect_success 'checkout completes ref names' ' - test_completion_long "git checkout m" <<-\EOF - master_ - mybranch_ - mytag_ + test_completion "git checkout m" <<-\EOF + master Z + mybranch Z + mytag Z EOF ' test_expect_success 'show completes all refs' ' - test_completion_long "git show m" <<-\EOF - master_ - mybranch_ - mytag_ + test_completion "git show m" <<-\EOF + master Z + mybranch Z + mytag Z EOF ' test_expect_success '<ref>: completes paths' ' - test_completion_long "git show mytag:f" <<-\EOF - file1_ - file2_ + test_completion "git show mytag:f" <<-\EOF + file1 Z + file2 Z EOF ' @@ -273,8 +243,8 @@ test_expect_success 'complete tree filename with spaces' ' echo content >"name with spaces" && git add . && git commit -m spaces && - test_completion_long "git show HEAD:nam" <<-\EOF - name with spaces_ + test_completion "git show HEAD:nam" <<-\EOF + name with spaces Z EOF ' @@ -282,9 +252,9 @@ test_expect_failure 'complete tree filename with metacharacters' ' echo content >"name with \${meta}" && git add . && git commit -m meta && - test_completion_long "git show HEAD:nam" <<-\EOF - name with ${meta}_ - name with spaces_ + test_completion "git show HEAD:nam" <<-\EOF + name with ${meta} Z + name with spaces Z EOF ' diff --git a/t/test-lib-functions.sh b/t/test-lib-functions.sh index 8889ba5104..22a4f8fb64 100644 --- a/t/test-lib-functions.sh +++ b/t/test-lib-functions.sh @@ -275,6 +275,15 @@ test_have_prereq () { for prerequisite do + case "$prerequisite" in + !*) + negative_prereq=t + prerequisite=${prerequisite#!} + ;; + *) + negative_prereq= + esac + case " $lazily_tested_prereq " in *" $prerequisite "*) ;; @@ -294,10 +303,20 @@ test_have_prereq () { total_prereq=$(($total_prereq + 1)) case "$satisfied_prereq" in *" $prerequisite "*) + satisfied_this_prereq=t + ;; + *) + satisfied_this_prereq= + esac + + case "$satisfied_this_prereq,$negative_prereq" in + t,|,t) ok_prereq=$(($ok_prereq + 1)) ;; *) - # Keep a list of missing prerequisites + # Keep a list of missing prerequisites; restore + # the negative marker if necessary. + prerequisite=${negative_prereq:+!}$prerequisite if test -z "$missing_prereq" then missing_prereq=$prerequisite diff --git a/t/test-lib.sh b/t/test-lib.sh index 489bc80fc1..f50f8341d4 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -389,7 +389,8 @@ test_done () { then test_results_dir="$TEST_OUTPUT_DIRECTORY/test-results" mkdir -p "$test_results_dir" - test_results_path="$test_results_dir/${0%.sh}-$$.counts" + base=${0##*/} + test_results_path="$test_results_dir/${base%.sh}-$$.counts" cat >>"$test_results_path" <<-EOF total $test_count @@ -738,6 +739,12 @@ test_lazy_prereq UTF8_NFD_TO_NFC ' esac ' +test_lazy_prereq AUTOIDENT ' + sane_unset GIT_AUTHOR_NAME && + sane_unset GIT_AUTHOR_EMAIL && + git var GIT_AUTHOR_IDENT +' + # When the tests are run as root, permission tests will report that # things are writable when they shouldn't be. test -w / || test_set_prereq SANITY |