diff options
179 files changed, 15588 insertions, 2349 deletions
diff --git a/Documentation/RelNotes/2.6.5.txt b/Documentation/RelNotes/2.6.5.txt index 3e6331d9d..f0924b62e 100644 --- a/Documentation/RelNotes/2.6.5.txt +++ b/Documentation/RelNotes/2.6.5.txt @@ -35,5 +35,24 @@ Fixes since v2.6.4 * The exit code of git-fsck did not reflect some types of errors found in packed objects, which has been corrected. + * The completion script (in contrib/) used to list "git column" + (which is not an end-user facing command) as one of the choices + + * Improve error reporting when SMTP TLS fails. + + * When getpwuid() on the system returned NULL (e.g. the user is not + in the /etc/passwd file or other uid-to-name mappings), the + codepath to find who the user is to record it in the reflog barfed + and died. Loosen the check in this codepath, which already accepts + questionable ident string (e.g. host part of the e-mail address is + obviously bogus), and in general when we operate fmt_ident() function + in non-strict mode. + + * "git symbolic-ref" forgot to report a failure with its exit status. + + * History traversal with "git log --source" that starts with an + annotated tag failed to report the tag as "source", due to an + old regression in the command line parser back in v2.2 days. + Also contains typofixes, documentation updates and trivial code clean-ups. diff --git a/Documentation/RelNotes/2.7.0.txt b/Documentation/RelNotes/2.7.0.txt index dbc3fea7f..563dadc57 100644 --- a/Documentation/RelNotes/2.7.0.txt +++ b/Documentation/RelNotes/2.7.0.txt @@ -400,4 +400,15 @@ notes for details). in non-strict mode. (merge 92bcbb9 jk/ident-loosen-getpwuid later to maint). + * "git symbolic-ref" forgot to report a failure with its exit status. + (merge f91b273 jk/symbolic-ref-maint later to maint). + + * History traversal with "git log --source" that starts with an + annotated tag failed to report the tag as "source", due to an + old regression in the command line parser back in v2.2 days. + (merge 728350b jk/pending-keep-tag-name later to maint). + + * "git p4" when interacting with multiple depots at the same time + used to incorrectly drop changes. + * Code clean-up, minor fixes etc. diff --git a/Documentation/RelNotes/2.8.0.txt b/Documentation/RelNotes/2.8.0.txt new file mode 100644 index 000000000..ac3f8789d --- /dev/null +++ b/Documentation/RelNotes/2.8.0.txt @@ -0,0 +1,121 @@ +Git 2.8 Release Notes +===================== + +Updates since v2.7 +------------------ + +UI, Workflows & Features + + * "branch --delete" has "branch -d" but "push --delete" does not. + (merge 38a2559 ps/push-delete-option later to maint). + + * "git blame" learned to produce the progress eye-candy when it takes + too much time before emitting the first line of the result. + + * "git grep" can now be configured (or told from the command line) + how many threads to use when searching in the working tree files. + + * Some "git notes" operations, e.g. "git log --notes=<note>", should + be able to read notes from any tree-ish that is shaped like a notes + tree, but the notes infrastructure required that the argument must + be a ref under refs/notes/. Loosen it to require a valid ref only + when the operation would update the notes (in which case we must + have a place to store the updated notes tree, iow, a ref). + + * "git grep" by default does not fall back to its "--no-index" + behaviour outside a directory under Git's control (otherwise the + user may by mistake end up running a huge recursive search); with a + new configuration (set in $HOME/.gitconfig--by definition this + cannot be set in the config file per project), this safety can be + disabled. + + +Performance, Internal Implementation, Development Support etc. + + * Add a framework to spawn a group of processes in parallel, and use + it to run "git fetch --recurse-submodules" in parallel. + + * A slight update to the Makefile to mark "phoney" targets + as such correctly. + + * In-core storage of the reverse index for .pack files (which lets + you go from a pack offset to an object name) has been streamlined. + + * d95138e6 (setup: set env $GIT_WORK_TREE when work tree is set, like + $GIT_DIR, 2015-06-26) attempted to work around a glitch in alias + handling by overwriting GIT_WORK_TREE environment variable to + affect subprocesses when set_git_work_tree() gets called, which + resulted in a rather unpleasant regression to "clone" and "init". + Try to address the same issue by always restoring the environment + and respawning the real underlying command when handling alias. + + +Also contains various documentation updates and code clean-ups. + + +Fixes since v2.7 +---------------- + +Unless otherwise noted, all the fixes since v2.7 in the maintenance +track are contained in this release (see the maintenance releases' +notes for details). + + * An earlier change in 2.5.x-era broke users' hooks and aliases by + exporting GIT_WORK_TREE to point at the root of the working tree, + interfering when they tried to use a different working tree without + setting GIT_WORK_TREE environment themselves. + (merge df1e6ea nd/stop-setenv-work-tree later to maint). + + * The "exclude_list" structure has the usual "alloc, nr" pair of + fields to be used by ALLOC_GROW(), but clear_exclude_list() forgot + to reset 'alloc' to 0 when it cleared 'nr' to discard the managed + array. + (merge 2653a8c nd/dir-exclude-cleanup later to maint). + + * Paths that have been told the index about with "add -N" are not + quite yet in the index, but a few commands behaved as if they + already are in a harmful way. + (merge 4d55200 nd/ita-cleanup later to maint). + + * "git send-email" was confused by escaped quotes stored in the alias + files saved by "mutt", which has been corrected. + (merge 2c510f2 ew/send-email-mutt-alias-fix later to maint). + + * A few unportable C construct have been spotted by clang compiler + and have been fixed. + (merge a0df2e5 jk/clang-pedantic later to maint). + + * The documentation has been updated to hint the connection between + the '--signoff' option and DCO. + (merge b2c150d dw/signoff-doc later to maint). + + * "git reflog" incorrectly assumed that all objects that used to be + at the tip of a ref must be commits, which caused it to segfault. + (merge aecad37 dk/reflog-walk-with-non-commit later to maint). + + * The ignore mechanism saw a few regressions around untracked file + listing and sparse checkout selection areas in 2.7.0; the change + that is responsible for the regression has been reverted. + (merge 8c72236 nd/exclusion-regression-fix later to maint). + + * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR + (e.g. COMMIT_EDITMSG) that is meant to be left after the command is + done. This however did not work well if the repository is set to + be shared with core.sharedRepository and the umask of the previous + user is tighter. They have been made to work better by calling + unlink(2) and retrying after fopen(3) fails with EPERM. + (merge ea56518 js/fopen-harder later to maint). + + * Asking gitweb for a nonexistent commit left a warning in the server + log. + + Somebody may want to follow this up with an additional test, perhaps? + IIRC, we do test that no Perl warnings are given to the server log, + so this should have been caught if our test coverage were good. + (merge a9eb90a ho/gitweb-squelch-undef-warning later to maint). + + * Other minor clean-ups and documentation updates + (merge 99487cf ss/user-manual later to maint). + (merge e914ef0 ew/for-each-ref-doc later to maint). + (merge 36fc7d8 sg/t6050-failing-editor-test-fix later to maint). + (merge 60253a6 ss/clone-depth-single-doc later to maint). diff --git a/Documentation/blame-options.txt b/Documentation/blame-options.txt index 760eab742..02cb6845c 100644 --- a/Documentation/blame-options.txt +++ b/Documentation/blame-options.txt @@ -69,6 +69,13 @@ include::line-range-format.txt[] iso format is used. For supported values, see the discussion of the --date option at linkgit:git-log[1]. +--[no-]progress:: + Progress status is reported on the standard error stream + by default when it is attached to a terminal. This flag + enables progress reporting even if not attached to a + terminal. Can't use `--progress` together with `--porcelain` + or `--incremental`. + -M|<num>|:: Detect moved or copied lines within a file. When a commit moves or copies a block of lines (e.g. the original file diff --git a/Documentation/config.txt b/Documentation/config.txt index f61788668..877cbc875 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -870,6 +870,8 @@ When preserve, also pass `--preserve-merges` along to 'git rebase' so that locally committed merge commits will not be flattened by running 'git pull'. + +When the value is `interactive`, the rebase is run in interactive mode. ++ *NOTE*: this is a possibly dangerous operation; do *not* use it unless you understand the implications (see linkgit:git-rebase[1] for details). @@ -1243,6 +1245,10 @@ format.coverLetter:: format-patch is invoked, but in addition can be set to "auto", to generate a cover-letter only when there's more than one patch. +format.outputDirectory:: + Set a custom directory to store the resulting files instead of the + current working directory. + filter.<driver>.clean:: The command which is used to convert the content of a worktree file to a blob upon checkin. See linkgit:gitattributes[5] for @@ -1450,6 +1456,14 @@ grep.extendedRegexp:: option is ignored when the 'grep.patternType' option is set to a value other than 'default'. +grep.threads:: + Number of grep worker threads to use. + See `grep.threads` in linkgit:git-grep[1] for more information. + +grep.fallbackToNoIndex:: + If set to true, fall back to git grep --no-index if git grep + is executed outside of a git repository. Defaults to false. + gpg.program:: Use this custom program instead of "gpg" found on $PATH when making or verifying a PGP signature. The program must support the @@ -2149,6 +2163,8 @@ When preserve, also pass `--preserve-merges` along to 'git rebase' so that locally committed merge commits will not be flattened by running 'git pull'. + +When the value is `interactive`, the rebase is run in interactive mode. ++ *NOTE*: this is a possibly dangerous operation; do *not* use it unless you understand the implications (see linkgit:git-rebase[1] for details). diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt index 45583d845..952dfdfef 100644 --- a/Documentation/fetch-options.txt +++ b/Documentation/fetch-options.txt @@ -8,10 +8,11 @@ option old data in `.git/FETCH_HEAD` will be overwritten. --depth=<depth>:: - Deepen or shorten the history of a 'shallow' repository created by - `git clone` with `--depth=<depth>` option (see linkgit:git-clone[1]) - to the specified number of commits from the tip of each remote - branch history. Tags for the deepened commits are not fetched. + Limit fetching to the specified number of commits from the tip of + each remote branch history. If fetching to a 'shallow' repository + created by `git clone` with `--depth=<depth>` option (see + linkgit:git-clone[1]), deepen or shorten the history to the specified + number of commits. Tags for the deepened commits are not fetched. --unshallow:: If the source repository is complete, convert a shallow @@ -100,6 +101,13 @@ ifndef::git-pull[] reference to a commit that isn't already in the local submodule clone. +-j:: +--jobs=<n>:: + Number of parallel children to be used for fetching submodules. + Each will fetch from different submodules, such that fetching many + submodules will be faster. By default submodules will be fetched + one at a time. + --no-recurse-submodules:: Disable recursive fetching of submodules (this has the same effect as using the '--recurse-submodules=no' option). diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt index 452c1feb2..13cdd7f3b 100644 --- a/Documentation/git-am.txt +++ b/Documentation/git-am.txt @@ -35,6 +35,7 @@ OPTIONS --signoff:: Add a `Signed-off-by:` line to the commit message, using the committer identity of yourself. + See the signoff option in linkgit:git-commit[1] for more information. -k:: --keep:: diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt index e6e947c80..ba5417567 100644 --- a/Documentation/git-blame.txt +++ b/Documentation/git-blame.txt @@ -10,7 +10,8 @@ SYNOPSIS [verse] 'git blame' [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental] [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>] - [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>] [--] <file> + [--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>] + [--] <file> DESCRIPTION ----------- diff --git a/Documentation/git-cherry-pick.txt b/Documentation/git-cherry-pick.txt index 77da29a47..6154e5723 100644 --- a/Documentation/git-cherry-pick.txt +++ b/Documentation/git-cherry-pick.txt @@ -100,6 +100,7 @@ effect to your index in a row. -s:: --signoff:: Add Signed-off-by line at the end of the commit message. + See the signoff option in linkgit:git-commit[1] for more information. -S[<keyid>]:: --gpg-sign[=<keyid>]:: diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index 6bf000dac..789b668f7 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -190,15 +190,14 @@ objects from the source repository into a pack in the cloned repository. --depth <depth>:: Create a 'shallow' clone with a history truncated to the - specified number of revisions. + specified number of commits. Implies `--single-branch` unless + `--no-single-branch` is given to fetch the histories near the + tips of all branches. --[no-]single-branch:: Clone only the history leading to the tip of a single branch, either specified by the `--branch` option or the primary - branch remote's `HEAD` points at. When creating a shallow - clone with the `--depth` option, this is the default, unless - `--no-single-branch` is given to fetch the histories near the - tips of all branches. + branch remote's `HEAD` points at. Further fetches into the resulting repository will only update the remote-tracking branch for the branch this option was used for the initial cloning. If the HEAD at the remote did not point at any diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt index 7f34a5b33..9ec6b3cc1 100644 --- a/Documentation/git-commit.txt +++ b/Documentation/git-commit.txt @@ -154,7 +154,11 @@ OPTIONS -s:: --signoff:: Add Signed-off-by line by the committer at the end of the commit - log message. + log message. The meaning of a signoff depends on the project, + but it typically certifies that committer has + the rights to submit this work under the same license and + agrees to a Developer Certificate of Origin + (see http://developercertificate.org/ for more information). -n:: --no-verify:: diff --git a/Documentation/git-for-each-ref.txt b/Documentation/git-for-each-ref.txt index c6f073cea..06208c499 100644 --- a/Documentation/git-for-each-ref.txt +++ b/Documentation/git-for-each-ref.txt @@ -142,6 +142,11 @@ In addition to the above, for commit and tag objects, the header field names (`tree`, `parent`, `object`, `type`, and `tag`) can be used to specify the value in the header field. +For commit and tag objects, the special `creatordate` and `creator` +fields will correspond to the appropriate date or name-email-date tuple +from the `committer` or `tagger` fields depending on the object type. +These are intended for working on a mix of annotated and lightweight tags. + Fields that have name-email-date tuple as its value (`author`, `committer`, and `tagger`) can be suffixed with `name`, `email`, and `date` to extract the named component. @@ -153,8 +158,8 @@ line is 'contents:body', where body is all of the lines after the first blank line. The optional GPG signature is `contents:signature`. The first `N` lines of the message is obtained using `contents:lines=N`. -For sorting purposes, fields with numeric values sort in numeric -order (`objectsize`, `authordate`, `committerdate`, `taggerdate`). +For sorting purposes, fields with numeric values sort in numeric order +(`objectsize`, `authordate`, `committerdate`, `creatordate`, `taggerdate`). All other fields are used to sort in their byte-value order. There is also an option to sort by versions, this can be done by using diff --git a/Documentation/git-format-patch.txt b/Documentation/git-format-patch.txt index e3cdaeb95..6821441d7 100644 --- a/Documentation/git-format-patch.txt +++ b/Documentation/git-format-patch.txt @@ -57,7 +57,11 @@ The names of the output files are printed to standard output, unless the `--stdout` option is specified. If `-o` is specified, output files are created in <dir>. Otherwise -they are created in the current working directory. +they are created in the current working directory. The default path +can be set with the 'format.outputDirectory' configuration option. +The `-o` option takes precedence over `format.outputDirectory`. +To store patches in the current working directory even when +`format.outputDirectory` points elsewhere, use `-o .`. By default, the subject of a single patch is "[PATCH] " followed by the concatenation of lines from the commit message up to the first blank @@ -109,6 +113,7 @@ include::diff-options.txt[] --signoff:: Add `Signed-off-by:` line to the commit message, using the committer identity of yourself. + See the signoff option in linkgit:git-commit[1] for more information. --stdout:: Print all commits to the standard output in mbox format, diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt index 4a44d6da1..cb0f6cf67 100644 --- a/Documentation/git-grep.txt +++ b/Documentation/git-grep.txt @@ -23,6 +23,7 @@ SYNOPSIS [--break] [--heading] [-p | --show-function] [-A <post-context>] [-B <pre-context>] [-C <context>] [-W | --function-context] + [--threads <num>] [-f <file>] [-e] <pattern> [--and|--or|--not|(|)|-e <pattern>...] [ [--[no-]exclude-standard] [--cached | --no-index | --untracked] | <tree>...] @@ -53,9 +54,17 @@ grep.extendedRegexp:: option is ignored when the 'grep.patternType' option is set to a value other than 'default'. +grep.threads:: + Number of grep worker threads to use. If unset (or set to 0), + 8 threads are used by default (for now). + grep.fullName:: If set to true, enable '--full-name' option by default. +grep.fallbackToNoIndex:: + If set to true, fall back to git grep --no-index if git grep + is executed outside of a git repository. Defaults to false. + OPTIONS ------- @@ -227,6 +236,10 @@ OPTIONS effectively showing the whole function in which the match was found. +--threads <num>:: + Number of grep worker threads to use. + See `grep.threads` in 'CONFIGURATION' for more information. + -f <file>:: Read patterns from <file>, one per line. diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt index 93c72a29c..a62a2a615 100644 --- a/Documentation/git-pull.txt +++ b/Documentation/git-pull.txt @@ -101,7 +101,7 @@ Options related to merging include::merge-options.txt[] -r:: ---rebase[=false|true|preserve]:: +--rebase[=false|true|preserve|interactive]:: When true, rebase the current branch on top of the upstream branch after fetching. If there is a remote-tracking branch corresponding to the upstream branch and the upstream branch @@ -113,6 +113,8 @@ to `git rebase` so that locally created merge commits will not be flattened. + When false, merge the current branch into the upstream branch. + +When `interactive`, enable the interactive mode of rebase. ++ See `pull.rebase`, `branch.<name>.rebase` and `branch.autoSetupRebase` in linkgit:git-config[1] if you want to make `git pull` always use `--rebase` instead of merging. diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt index 4c775bcec..32482cec4 100644 --- a/Documentation/git-push.txt +++ b/Documentation/git-push.txt @@ -10,7 +10,7 @@ SYNOPSIS -------- [verse] 'git push' [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>] - [--repo=<repository>] [-f | --force] [--prune] [-v | --verbose] + [--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-v | --verbose] [-u | --set-upstream] [--[no-]signed|--sign=(true|false|if-asked)] [--force-with-lease[=<refname>[:<expect>]]] diff --git a/Documentation/git-revert.txt b/Documentation/git-revert.txt index b15139ffd..573616a04 100644 --- a/Documentation/git-revert.txt +++ b/Documentation/git-revert.txt @@ -89,6 +89,7 @@ effect to your index in a row. -s:: --signoff:: Add Signed-off-by line at the end of the commit message. + See the signoff option in linkgit:git-commit[1] for more information. --strategy=<strategy>:: Use the given merge strategy. Should only be used once. diff --git a/Documentation/git.txt b/Documentation/git.txt index cbf157be4..bff6302c0 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,15 @@ unreleased) version of Git, that is available from the 'master' branch of the `git.git` repository. Documentation for older releases are available here: -* link:v2.6.4/git.html[documentation for release 2.6.4] +* link:v2.7.0/git.html[documentation for release 2.7] * release notes for + link:RelNotes/2.7.0.txt[2.7]. + +* link:v2.6.5/git.html[documentation for release 2.6.5] + +* release notes for + link:RelNotes/2.6.5.txt[2.6.5], link:RelNotes/2.6.4.txt[2.6.4], link:RelNotes/2.6.3.txt[2.6.3], link:RelNotes/2.6.2.txt[2.6.2], diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt index 79a1948a0..473623d63 100644 --- a/Documentation/gitignore.txt +++ b/Documentation/gitignore.txt @@ -82,12 +82,12 @@ PATTERN FORMAT - An optional prefix "`!`" which negates the pattern; any matching file excluded by a previous pattern will become - included again. + included again. It is not possible to re-include a file if a parent + directory of that file is excluded. Git doesn't list excluded + directories for performance reasons, so any patterns on contained + files have no effect, no matter where they are defined. Put a backslash ("`\`") in front of the first "`!`" for patterns that begin with a literal "`!`", for example, "`\!important!.txt`". - It is possible to re-include a file if a parent directory of that - file is excluded if certain conditions are met. See section NOTES - for detail. - If the pattern ends with a slash, it is removed for the purpose of the following description, but it would only find @@ -141,21 +141,6 @@ not tracked by Git remain untracked. To stop tracking a file that is currently tracked, use 'git rm --cached'. -To re-include files or directories when their parent directory is -excluded, the following conditions must be met: - - - The rules to exclude a directory and re-include a subset back must - be in the same .gitignore file. - - - The directory part in the re-include rules must be literal (i.e. no - wildcards) - - - The rules to exclude the parent directory must not end with a - trailing slash. - - - The rules to exclude the parent directory must have at least one - slash. - EXAMPLES -------- diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt index e22597425..cafc28435 100644 --- a/Documentation/glossary-content.txt +++ b/Documentation/glossary-content.txt @@ -531,6 +531,11 @@ The most notable example is `HEAD`. "Secure Hash Algorithm 1"; a cryptographic hash function. In the context of Git used as a synonym for <<def_object_name,object name>>. +[[def_shallow_clone]]shallow clone:: + Mostly a synonym to <<def_shallow_repository,shallow repository>> + but the phrase makes it more explicit that it was created by + running `git clone --depth=...` command. + [[def_shallow_repository]]shallow repository:: A shallow <<def_repository,repository>> has an incomplete history some of whose <<def_commit,commits>> have <<def_parent,parents>> cauterized away (in other diff --git a/Documentation/pretty-options.txt b/Documentation/pretty-options.txt index 4b659ac1a..54b88b6dc 100644 --- a/Documentation/pretty-options.txt +++ b/Documentation/pretty-options.txt @@ -43,7 +43,7 @@ people using 80-column terminals. commit may be copied to the output. ifndef::git-rev-list[] ---notes[=<ref>]:: +--notes[=<treeish>]:: Show the notes (see linkgit:git-notes[1]) that annotate the commit, when showing the commit log message. This is the default for `git log`, `git show` and `git whatchanged` commands when @@ -54,8 +54,8 @@ By default, the notes shown are from the notes refs listed in the 'core.notesRef' and 'notes.displayRef' variables (or corresponding environment overrides). See linkgit:git-config[1] for more details. + -With an optional '<ref>' argument, show this notes ref instead of the -default notes ref(s). The ref specifies the full refname when it begins +With an optional '<treeish>' argument, use the treeish to find the notes +to display. The treeish can specify the full refname when it begins with `refs/notes/`; when it begins with `notes/`, `refs/` and otherwise `refs/notes/` is prefixed to form a full name of the ref. + @@ -71,7 +71,7 @@ being displayed. Examples: "--notes=foo" will show only notes from "--notes --notes=foo --no-notes --notes=bar" will only show notes from "refs/notes/bar". ---show-notes[=<ref>]:: +--show-notes[=<treeish>]:: --[no-]standard-notes:: These options are deprecated. Use the above --notes/--no-notes options instead. diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index 1c790ac74..ec6bacfcd 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -2125,8 +2125,37 @@ Allowing web browsing of a repository ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The gitweb cgi script provides users an easy way to browse your -project's files and history without having to install Git; see the file -gitweb/INSTALL in the Git source tree for instructions on setting it up. +project's revisions, file contents and logs without having to install +Git. Features like RSS/Atom feeds and blame/annotation details may +optionally be enabled. + +The linkgit:git-instaweb[1] command provides a simple way to start +browsing the repository using gitweb. The default server when using +instaweb is lighttpd. + +See the file gitweb/INSTALL in the Git source tree and +linkgit:gitweb[1] for instructions on details setting up a permament +installation with a CGI or Perl capable server. + +[[how-to-get-a-git-repository-with-minimal-history]] +How to get a Git repository with minimal history +------------------------------------------------ + +A <<def_shallow_clone,shallow clone>>, with its truncated +history, is useful when one is interested only in recent history +of a project and getting full history from the upstream is +expensive. + +A <<def_shallow_clone,shallow clone>> is created by specifying +the linkgit:git-clone[1] `--depth` switch. The depth can later be +changed with the linkgit:git-fetch[1] `--depth` switch, or full +history restored with `--unshallow`. + +Merging inside a <<def_shallow_clone,shallow clone>> will work as long +as a merge base is in the recent history. +Otherwise, it will be like merging unrelated histories and may +have to result in huge conflicts. This limitation may make such +a repository unsuitable to be used in merge based workflows. [[sharing-development-examples]] Examples @@ -4636,23 +4665,15 @@ Scan email archives for other stuff left out Scan man pages to see if any assume more background than this manual provides. -Simplify beginning by suggesting disconnected head instead of -temporary branch creation? - Add more good examples. Entire sections of just cookbook examples might be a good idea; maybe make an "advanced examples" section a standard end-of-chapter section? Include cross-references to the glossary, where appropriate. -Document shallow clones? See draft 1.5.0 release notes for some -documentation. - Add a section on working with other version control systems, including CVS, Subversion, and just imports of series of release tarballs. -More details on gitweb? - Write a chapter on using plumbing and writing scripts. Alternates, clone -reference, etc. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 904265b2c..5873f163e 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v2.7.0-rc2 +DEF_VER=v2.7.0.GIT LF=' ' @@ -2025,6 +2025,7 @@ $(VCSSVN_LIB): $(VCSSVN_OBJS) export DEFAULT_EDITOR DEFAULT_PAGER +.PHONY: doc man html info pdf doc: $(MAKE) -C Documentation all @@ -2068,6 +2069,7 @@ po/git.pot: $(GENERATED_H) FORCE $(LOCALIZED_PERL) mv $@+ $@ +.PHONY: pot pot: po/git.pot POFILES := $(wildcard po/*.po) @@ -2277,6 +2279,7 @@ mergetools_instdir_SQ = $(subst ','\'',$(mergetools_instdir)) install_bindir_programs := $(patsubst %,%$X,$(BINDIR_PROGRAMS_NEED_X)) $(BINDIR_PROGRAMS_NO_X) +.PHONY: profile-install profile-fast-install profile-install: profile $(MAKE) install @@ -2343,6 +2346,8 @@ endif done && \ ./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X" +.PHONY: install-gitweb install-doc install-man install-html install-info install-pdf +.PHONY: quick-install-doc quick-install-man quick-install-html install-gitweb: $(MAKE) -C gitweb install @@ -2402,6 +2407,7 @@ rpm: dist htmldocs = git-htmldocs-$(GIT_VERSION) manpages = git-manpages-$(GIT_VERSION) +.PHONY: dist-doc distclean dist-doc: $(RM) -r .doc-tmp-dir mkdir .doc-tmp-dir @@ -2470,6 +2476,8 @@ ALL_COMMANDS += git ALL_COMMANDS += gitk ALL_COMMANDS += gitweb ALL_COMMANDS += git-gui git-citool + +.PHONY: check-docs check-docs:: @(for v in $(ALL_COMMANDS); \ do \ @@ -2514,6 +2522,7 @@ check-builtins:: ### Test suite coverage testing # .PHONY: coverage coverage-clean coverage-compile coverage-test coverage-report +.PHONY: coverage-untested-functions cover_db cover_db_html .PHONY: coverage-clean-results coverage: @@ -1 +1 @@ -Documentation/RelNotes/2.7.0.txt
\ No newline at end of file +Documentation/RelNotes/2.8.0.txt
\ No newline at end of file diff --git a/builtin/am.c b/builtin/am.c index 9fb42fdd7..de235cf11 100644 --- a/builtin/am.c +++ b/builtin/am.c @@ -1939,6 +1939,7 @@ next: */ if (!state->rebasing) { am_destroy(state); + close_all_packs(); run_command_v_opt(argv_gc_auto, RUN_GIT_CMD); } } diff --git a/builtin/blame.c b/builtin/blame.c index 1df13cf7f..55bf5fae9 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -28,6 +28,7 @@ #include "line-range.h" #include "line-log.h" #include "dir.h" +#include "progress.h" static char blame_usage[] = N_("git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"); @@ -50,6 +51,7 @@ static int incremental; static int xdl_opts; static int abbrev = -1; static int no_whole_file_rename; +static int show_progress; static struct date_mode blame_date_mode = { DATE_ISO8601 }; static size_t blame_date_width; @@ -127,6 +129,11 @@ struct origin { char path[FLEX_ARRAY]; }; +struct progress_info { + struct progress *progress; + int blamed_lines; +}; + static int diff_hunks(mmfile_t *file_a, mmfile_t *file_b, long ctxlen, xdl_emit_hunk_consume_func_t hunk_func, void *cb_data) { @@ -1746,7 +1753,8 @@ static int emit_one_suspect_detail(struct origin *suspect, int repeat) * The blame_entry is found to be guilty for the range. * Show it in incremental output. */ -static void found_guilty_entry(struct blame_entry *ent) +static void found_guilty_entry(struct blame_entry *ent, + struct progress_info *pi) { if (incremental) { struct origin *suspect = ent->suspect; @@ -1758,6 +1766,8 @@ static void found_guilty_entry(struct blame_entry *ent) write_filename_info(suspect->path); maybe_flush_or_die(stdout, "stdout"); } + pi->blamed_lines += ent->num_lines; + display_progress(pi->progress, pi->blamed_lines); } /* @@ -1768,6 +1778,11 @@ static void assign_blame(struct scoreboard *sb, int opt) { struct rev_info *revs = sb->revs; struct commit *commit = prio_queue_get(&sb->commits); + struct progress_info pi = { NULL, 0 }; + + if (show_progress) + pi.progress = start_progress_delay(_("Blaming lines"), + sb->num_lines, 50, 1); while (commit) { struct blame_entry *ent; @@ -1809,7 +1824,7 @@ static void assign_blame(struct scoreboard *sb, int opt) suspect->guilty = 1; for (;;) { struct blame_entry *next = ent->next; - found_guilty_entry(ent); + found_guilty_entry(ent, &pi); if (next) { ent = next; continue; @@ -1825,6 +1840,8 @@ static void assign_blame(struct scoreboard *sb, int opt) if (DEBUG) /* sanity */ sanity_check_refcnt(sb); } + + stop_progress(&pi.progress); } static const char *format_time(unsigned long time, const char *tz_str, @@ -2392,11 +2409,6 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt, ce->ce_mode = create_ce_mode(mode); add_cache_entry(ce, ADD_CACHE_OK_TO_ADD|ADD_CACHE_OK_TO_REPLACE); - /* - * We are not going to write this out, so this does not matter - * right now, but someday we might optimize diff-index --cached - * with cache-tree information. - */ cache_tree_invalidate_path(&the_index, path); return commit; @@ -2520,6 +2532,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix) OPT_BOOL('b', NULL, &blank_boundary, N_("Show blank SHA-1 for boundary commits (Default: off)")), OPT_BOOL(0, "root", &show_root, N_("Do not treat root commits as boundaries (Default: off)")), OPT_BOOL(0, "show-stats", &show_stats, N_("Show work cost statistics")), + OPT_BOOL(0, "progress", &show_progress, N_("Force progress reporting")), OPT_BIT(0, "score-debug", &output_option, N_("Show output score for blame entries"), OUTPUT_SHOW_SCORE), OPT_BIT('f', "show-name", &output_option, N_("Show original filename (Default: auto)"), OUTPUT_SHOW_NAME), OPT_BIT('n', "show-number", &output_option, N_("Show original linenumber (Default: off)"), OUTPUT_SHOW_NUMBER), @@ -2555,6 +2568,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix) save_commit_buffer = 0; dashdash_pos = 0; + show_progress = -1; parse_options_start(&ctx, argc, argv, prefix, options, PARSE_OPT_KEEP_DASHDASH | PARSE_OPT_KEEP_ARGV0); @@ -2579,6 +2593,13 @@ parse_done: DIFF_OPT_CLR(&revs.diffopt, FOLLOW_RENAMES); argc = parse_options_end(&ctx); + if (incremental || (output_option & OUTPUT_PORCELAIN)) { + if (show_progress > 0) + die("--progress can't be used with --incremental or porcelain formats"); + show_progress = 0; + } else if (show_progress < 0) + show_progress = isatty(2); + if (0 < abbrev) /* one more abbrev length is needed for the boundary commit */ abbrev++; @@ -2828,11 +2849,11 @@ parse_done: read_mailmap(&mailmap, NULL); + assign_blame(&sb, opt); + if (!incremental) setup_pager(); - assign_blame(&sb, opt); - free(final_commit_name); if (incremental) diff --git a/builtin/commit.c b/builtin/commit.c index d054f8496..89bf6ad38 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -761,7 +761,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix, hook_arg2 = ""; } - s->fp = fopen(git_path(commit_editmsg), "w"); + s->fp = fopen_for_writing(git_path(commit_editmsg)); if (s->fp == NULL) die_errno(_("could not open '%s'"), git_path(commit_editmsg)); diff --git a/builtin/fast-export.c b/builtin/fast-export.c index d9ac5d841..2471297f7 100644 --- a/builtin/fast-export.c +++ b/builtin/fast-export.c @@ -880,7 +880,7 @@ static void export_marks(char *file) FILE *f; int e = 0; - f = fopen(file, "w"); + f = fopen_for_writing(file); if (!f) die_errno("Unable to open marks file %s for writing.", file); diff --git a/builtin/fetch.c b/builtin/fetch.c index c85f3471d..8e742135f 100644 --- a/builtin/fetch.c +++ b/builtin/fetch.c @@ -37,6 +37,7 @@ static int prune = -1; /* unspecified */ static int all, append, dry_run, force, keep, multiple, update_head_ok, verbosity; static int progress = -1, recurse_submodules = RECURSE_SUBMODULES_DEFAULT; static int tags = TAGS_DEFAULT, unshallow, update_shallow; +static int max_children = 1; static const char *depth; static const char *upload_pack; static struct strbuf default_rla = STRBUF_INIT; @@ -99,6 +100,8 @@ static struct option builtin_fetch_options[] = { N_("fetch all tags and associated objects"), TAGS_SET), OPT_SET_INT('n', NULL, &tags, N_("do not fetch all tags (--no-tags)"), TAGS_UNSET), + OPT_INTEGER('j', "jobs", &max_children, + N_("number of submodules fetched in parallel")), OPT_BOOL('p', "prune", &prune, N_("prune remote-tracking branches no longer on remote")), { OPTION_CALLBACK, 0, "recurse-submodules", NULL, N_("on-demand"), @@ -837,7 +840,7 @@ static void check_not_current_branch(struct ref *ref_map) static int truncate_fetch_head(void) { const char *filename = git_path_fetch_head(); - FILE *fp = fopen(filename, "w"); + FILE *fp = fopen_for_writing(filename); if (!fp) return error(_("cannot open %s: %s\n"), filename, strerror(errno)); @@ -1213,7 +1216,8 @@ int cmd_fetch(int argc, const char **argv, const char *prefix) result = fetch_populated_submodules(&options, submodule_prefix, recurse_submodules, - verbosity < 0); + verbosity < 0, + max_children); argv_array_clear(&options); } @@ -1221,6 +1225,8 @@ int cmd_fetch(int argc, const char **argv, const char *prefix) list.strdup_strings = 1; string_list_clear(&list, 0); + close_all_packs(); + argv_array_pushl(&argv_gc_auto, "gc", "--auto", NULL); if (verbosity < 0) argv_array_push(&argv_gc_auto, "--quiet"); diff --git a/builtin/grep.c b/builtin/grep.c index 4229cae39..5526fd705 100644 --- a/builtin/grep.c +++ b/builtin/grep.c @@ -24,11 +24,11 @@ static char const * const grep_usage[] = { NULL }; -static int use_threads = 1; +#define GREP_NUM_THREADS_DEFAULT 8 +static int num_threads; #ifndef NO_PTHREADS -#define THREADS 8 -static pthread_t threads[THREADS]; +static pthread_t *threads; /* We use one producer thread and THREADS consumer * threads. The producer adds struct work_items to 'todo' and the @@ -63,13 +63,13 @@ static pthread_mutex_t grep_mutex; static inline void grep_lock(void) { - if (use_threads) + if (num_threads) pthread_mutex_lock(&grep_mutex); } static inline void grep_unlock(void) { - if (use_threads) + if (num_threads) pthread_mutex_unlock(&grep_mutex); } @@ -206,7 +206,8 @@ static void start_threads(struct grep_opt *opt) strbuf_init(&todo[i].out, 0); } - for (i = 0; i < ARRAY_SIZE(threads); i++) { + threads = xcalloc(num_threads, sizeof(*threads)); + for (i = 0; i < num_threads; i++) { int err; struct grep_opt *o = grep_opt_dup(opt); o->output = strbuf_out; @@ -238,12 +239,14 @@ static int wait_all(void) pthread_cond_broadcast(&cond_add); grep_unlock(); - for (i = 0; i < ARRAY_SIZE(threads); i++) { + for (i = 0; i < num_threads; i++) { void *h; pthread_join(threads[i], &h); hit |= (int) (intptr_t) h; } + free(threads); + pthread_mutex_destroy(&grep_mutex); pthread_mutex_destroy(&grep_read_mutex); pthread_mutex_destroy(&grep_attr_mutex); @@ -267,6 +270,14 @@ static int grep_cmd_config(const char *var, const char *value, void *cb) int st = grep_config(var, value, cb); if (git_color_default_config(var, value, cb) < 0) st = -1; + + if (!strcmp(var, "grep.threads")) { + num_threads = git_config_int(var, value); + if (num_threads < 0) + die(_("invalid number of threads specified (%d) for %s"), + num_threads, var); + } + return st; } @@ -294,7 +305,7 @@ static int grep_sha1(struct grep_opt *opt, const unsigned char *sha1, } #ifndef NO_PTHREADS - if (use_threads) { + if (num_threads) { add_work(opt, GREP_SOURCE_SHA1, pathbuf.buf, path, sha1); strbuf_release(&pathbuf); return 0; @@ -323,7 +334,7 @@ static int grep_file(struct grep_opt *opt, const char *filename) strbuf_addstr(&buf, filename); #ifndef NO_PTHREADS - if (use_threads) { + if (num_threads) { add_work(opt, GREP_SOURCE_FILE, buf.buf, filename, filename); strbuf_release(&buf); return 0; @@ -375,7 +386,7 @@ static int grep_cache(struct grep_opt *opt, const struct pathspec *pathspec, int for (nr = 0; nr < active_nr; nr++) { const struct cache_entry *ce = active_cache[nr]; - if (!S_ISREG(ce->ce_mode)) + if (!S_ISREG(ce->ce_mode) || ce_intent_to_add(ce)) continue; if (!ce_path_match(ce, pathspec, NULL)) continue; @@ -697,6 +708,8 @@ int cmd_grep(int argc, const char **argv, const char *prefix) N_("show <n> context lines before matches")), OPT_INTEGER('A', "after-context", &opt.post_context, N_("show <n> context lines after matches")), + OPT_INTEGER(0, "threads", &num_threads, + N_("use <n> worker threads")), OPT_NUMBER_CALLBACK(&opt, N_("shortcut for -C NUM"), context_callback), OPT_BOOL('p', "show-function", &opt.funcname, @@ -755,9 +768,15 @@ int cmd_grep(int argc, const char **argv, const char *prefix) PARSE_OPT_STOP_AT_NON_OPTION); grep_commit_pattern_type(pattern_type_arg, &opt); - if (use_index && !startup_info->have_repository) - /* die the same way as if we did it at the beginning */ - setup_git_directory(); + if (use_index && !startup_info->have_repository) { + int fallback = 0; + git_config_get_bool("grep.fallbacktonoindex", &fallback); + if (fallback) + use_index = 0; + else + /* die the same way as if we did it at the beginning */ + setup_git_directory(); + } /* * skip a -- separator; we know it cannot be @@ -786,7 +805,6 @@ int cmd_grep(int argc, const char **argv, const char *prefix) opt.output_priv = &path_list; opt.output = append_path; string_list_append(&path_list, show_in_pager); - use_threads = 0; } if (!opt.pattern_list) @@ -817,14 +835,18 @@ int cmd_grep(int argc, const char **argv, const char *prefix) } #ifndef NO_PTHREADS - if (list.nr || cached || online_cpus() == 1) - use_threads = 0; + if (list.nr || cached || show_in_pager) + num_threads = 0; + else if (num_threads == 0) + num_threads = GREP_NUM_THREADS_DEFAULT; + else if (num_threads < 0) + die(_("invalid number of threads specified (%d)"), num_threads); #else - use_threads = 0; + num_threads = 0; #endif #ifndef NO_PTHREADS - if (use_threads) { + if (num_threads) { if (!(opt.name_only || opt.unmatch_name_only || opt.count) && (opt.pre_context || opt.post_context || opt.file_break || opt.funcbody)) @@ -894,7 +916,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix) hit = grep_objects(&opt, &pathspec, &list); } - if (use_threads) + if (num_threads) hit |= wait_all(); if (hit && show_in_pager) run_pager(&opt, prefix); diff --git a/builtin/log.c b/builtin/log.c index e00cea75c..0d738d6dd 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -699,6 +699,7 @@ static int do_signoff; static const char *signature = git_version_string; static const char *signature_file; static int config_cover_letter; +static const char *config_output_directory; enum { COVER_UNSET, @@ -777,6 +778,8 @@ static int git_format_config(const char *var, const char *value, void *cb) config_cover_letter = git_config_bool(var, value) ? COVER_ON : COVER_OFF; return 0; } + if (!strcmp(var, "format.outputdirectory")) + return git_config_string(&config_output_directory, var, value); return git_log_config(var, value, cb); } @@ -1391,6 +1394,9 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) if (rev.show_notes) init_display_notes(&rev.notes_opt); + if (!output_directory && !use_stdout) + output_directory = config_output_directory; + if (!use_stdout) output_directory = set_outdir(prefix, output_directory); else diff --git a/builtin/merge.c b/builtin/merge.c index 15bf95b3a..b98a3489b 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -404,6 +404,7 @@ static void finish(struct commit *head_commit, * We ignore errors in 'gc --auto', since the * user should see them. */ + close_all_packs(); run_command_v_opt(argv_gc_auto, RUN_GIT_CMD); } } diff --git a/builtin/notes.c b/builtin/notes.c index 52aa9af74..e1556896f 100644 --- a/builtin/notes.c +++ b/builtin/notes.c @@ -286,7 +286,7 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd) if (!c) return 0; } else { - init_notes(NULL, NULL, NULL, 0); + init_notes(NULL, NULL, NULL, NOTES_INIT_WRITABLE); t = &default_notes_tree; } @@ -329,15 +329,18 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd) return ret; } -static struct notes_tree *init_notes_check(const char *subcommand) +static struct notes_tree *init_notes_check(const char *subcommand, + int flags) { struct notes_tree *t; - init_notes(NULL, NULL, NULL, 0); + const char *ref; + init_notes(NULL, NULL, NULL, flags); t = &default_notes_tree; - if (!starts_with(t->ref, "refs/notes/")) + ref = (flags & NOTES_INIT_WRITABLE) ? t->update_ref : t->ref; + if (!starts_with(ref, "refs/notes/")) die("Refusing to %s notes in %s (outside of refs/notes/)", - subcommand, t->ref); + subcommand, ref); return t; } @@ -360,7 +363,7 @@ static int list(int argc, const char **argv, const char *prefix) usage_with_options(git_notes_list_usage, options); } - t = init_notes_check("list"); + t = init_notes_check("list", 0); if (argc) { if (get_sha1(argv[0], object)) die(_("Failed to resolve '%s' as a valid ref."), argv[0]); @@ -420,7 +423,7 @@ static int add(int argc, const char **argv, const char *prefix) if (get_sha1(object_ref, object)) die(_("Failed to resolve '%s' as a valid ref."), object_ref); - t = init_notes_check("add"); + t = init_notes_check("add", NOTES_INIT_WRITABLE); note = get_note(t, object); if (note) { @@ -511,7 +514,7 @@ static int copy(int argc, const char **argv, const char *prefix) if (get_sha1(object_ref, object)) die(_("Failed to resolve '%s' as a valid ref."), object_ref); - t = init_notes_check("copy"); + t = init_notes_check("copy", NOTES_INIT_WRITABLE); note = get_note(t, object); if (note) { @@ -589,7 +592,7 @@ static int append_edit(int argc, const char **argv, const char *prefix) if (get_sha1(object_ref, object)) die(_("Failed to resolve '%s' as a valid ref."), object_ref); - t = init_notes_check(argv[0]); + t = init_notes_check(argv[0], NOTES_INIT_WRITABLE); note = get_note(t, object); prepare_note_data(object, &d, edit ? note : NULL); @@ -652,7 +655,7 @@ static int show(int argc, const char **argv, const char *prefix) if (get_sha1(object_ref, object)) die(_("Failed to resolve '%s' as a valid ref."), object_ref); - t = init_notes_check("show"); + t = init_notes_check("show", 0); note = get_note(t, object); if (!note) @@ -809,7 +812,7 @@ static int merge(int argc, const char **argv, const char *prefix) expand_notes_ref(&remote_ref); o.remote_ref = remote_ref.buf; - t = init_notes_check("merge"); + t = init_notes_check("merge", NOTES_INIT_WRITABLE); if (strategy) { if (parse_notes_merge_strategy(strategy, &o.strategy)) { @@ -901,7 +904,7 @@ static int remove_cmd(int argc, const char **argv, const char *prefix) argc = parse_options(argc, argv, prefix, options, git_notes_remove_usage, 0); - t = init_notes_check("remove"); + t = init_notes_check("remove", NOTES_INIT_WRITABLE); if (!argc && !from_stdin) { retval = remove_one_note(t, "HEAD", flag); @@ -943,7 +946,7 @@ static int prune(int argc, const char **argv, const char *prefix) usage_with_options(git_notes_prune_usage, options); } - t = init_notes_check("prune"); + t = init_notes_check("prune", NOTES_INIT_WRITABLE); prune_notes(t, (verbose ? NOTES_PRUNE_VERBOSE : 0) | (show_only ? NOTES_PRUNE_VERBOSE|NOTES_PRUNE_DRYRUN : 0) ); diff --git a/builtin/pull.c b/builtin/pull.c index 5145fc60a..c713fe065 100644 --- a/builtin/pull.c +++ b/builtin/pull.c @@ -22,7 +22,8 @@ enum rebase_type { REBASE_INVALID = -1, REBASE_FALSE = 0, REBASE_TRUE, - REBASE_PRESERVE + REBASE_PRESERVE, + REBASE_INTERACTIVE }; /** @@ -42,6 +43,8 @@ static enum rebase_type parse_config_rebase(const char *key, const char *value, return REBASE_TRUE; else if (!strcmp(value, "preserve")) return REBASE_PRESERVE; + else if (!strcmp(value, "interactive")) + return REBASE_INTERACTIVE; if (fatal) die(_("Invalid value for %s: %s"), key, value); @@ -95,6 +98,7 @@ static int opt_force; static char *opt_tags; static char *opt_prune; static char *opt_recurse_submodules; +static char *max_children; static int opt_dry_run; static char *opt_keep; static char *opt_depth; @@ -112,7 +116,7 @@ static struct option pull_options[] = { /* Options passed to git-merge or git-rebase */ OPT_GROUP(N_("Options related to merging")), { OPTION_CALLBACK, 'r', "rebase", &opt_rebase, - "false|true|preserve", + "false|true|preserve|interactive", N_("incorporate changes by rebasing rather than merging"), PARSE_OPT_OPTARG, parse_opt_rebase }, OPT_PASSTHRU('n', NULL, &opt_diffstat, NULL, @@ -178,6 +182,9 @@ static struct option pull_options[] = { N_("on-demand"), N_("control recursive fetching of submodules"), PARSE_OPT_OPTARG), + OPT_PASSTHRU('j', "jobs", &max_children, N_("n"), + N_("number of submodules pulled in parallel"), + PARSE_OPT_OPTARG), OPT_BOOL(0, "dry-run", &opt_dry_run, N_("dry run")), OPT_PASSTHRU('k', "keep", &opt_keep, NULL, @@ -525,6 +532,8 @@ static int run_fetch(const char *repo, const char **refspecs) argv_array_push(&args, opt_prune); if (opt_recurse_submodules) argv_array_push(&args, opt_recurse_submodules); + if (max_children) + argv_array_push(&args, max_children); if (opt_dry_run) argv_array_push(&args, "--dry-run"); if (opt_keep) @@ -772,6 +781,8 @@ static int run_rebase(const unsigned char *curr_head, /* Options passed to git-rebase */ if (opt_rebase == REBASE_PRESERVE) argv_array_push(&args, "--preserve-merges"); + else if (opt_rebase == REBASE_INTERACTIVE) + argv_array_push(&args, "--interactive"); if (opt_diffstat) argv_array_push(&args, opt_diffstat); argv_array_pushv(&args, opt_strategies.argv); diff --git a/builtin/push.c b/builtin/push.c index 8963dbdf3..960ffc31e 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -538,7 +538,7 @@ int cmd_push(int argc, const char **argv, const char *prefix) OPT_BIT( 0 , "all", &flags, N_("push all refs"), TRANSPORT_PUSH_ALL), OPT_BIT( 0 , "mirror", &flags, N_("mirror all refs"), (TRANSPORT_PUSH_MIRROR|TRANSPORT_PUSH_FORCE)), - OPT_BOOL( 0, "delete", &deleterefs, N_("delete refs")), + OPT_BOOL('d', "delete", &deleterefs, N_("delete refs")), OPT_BOOL( 0 , "tags", &tags, N_("push tags (can't be used with --all or --mirror)")), OPT_BIT('n' , "dry-run", &flags, N_("dry run"), TRANSPORT_PUSH_DRY_RUN), OPT_BIT( 0, "porcelain", &flags, N_("machine-readable output"), TRANSPORT_PUSH_PORCELAIN), diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index ca3813187..f2d6761af 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -1618,7 +1618,7 @@ static void prepare_shallow_update(struct command *commands, continue; si->need_reachability_test[i]++; for (k = 0; k < 32; k++) - if (si->used_shallow[i][j] & (1 << k)) + if (si->used_shallow[i][j] & (1U << k)) si->shallow_ref[j * 32 + k]++; } @@ -1796,6 +1796,7 @@ int cmd_receive_pack(int argc, const char **argv, const char *prefix) "gc", "--auto", "--quiet", NULL, }; int opt = RUN_GIT_CMD | RUN_COMMAND_STDOUT_TO_STDERR; + close_all_packs(); run_command_v_opt(argv_gc_auto, opt); } if (auto_update_server_info) diff --git a/builtin/remote.c b/builtin/remote.c index 6694cf20e..2b2ff9b7d 100644 --- a/builtin/remote.c +++ b/builtin/remote.c @@ -251,7 +251,7 @@ static int add(int argc, const char **argv) struct branch_info { char *remote_name; struct string_list merge; - int rebase; + enum { NO_REBASE, NORMAL_REBASE, INTERACTIVE_REBASE } rebase; }; static struct string_list branch_list; @@ -311,7 +311,9 @@ static int config_read_branches(const char *key, const char *value, void *cb) if (v >= 0) info->rebase = v; else if (!strcmp(value, "preserve")) - info->rebase = 1; + info->rebase = NORMAL_REBASE; + else if (!strcmp(value, "interactive")) + info->rebase = INTERACTIVE_REBASE; } } return 0; @@ -980,7 +982,9 @@ static int show_local_info_item(struct string_list_item *item, void *cb_data) printf(" %-*s ", show_info->width, item->string); if (branch_info->rebase) { - printf_ln(_("rebases onto remote %s"), merge->items[0].string); + printf_ln(_(branch_info->rebase == INTERACTIVE_REBASE ? + "rebases interactively onto remote %s" : + "rebases onto remote %s"), merge->items[0].string); return 0; } else if (show_info->any_rebase) { printf_ln(_(" merges with remote %s"), merge->items[0].string); diff --git a/builtin/rm.c b/builtin/rm.c index 80b972f92..8829b09d0 100644 --- a/builtin/rm.c +++ b/builtin/rm.c @@ -211,7 +211,7 @@ static int check_local_mod(unsigned char *head, int index_only) * "intent to add" entry. */ if (local_changes && staged_changes) { - if (!index_only || !(ce->ce_flags & CE_INTENT_TO_ADD)) + if (!index_only || !ce_intent_to_add(ce)) string_list_append(&files_staged, name); } else if (!index_only) { diff --git a/cache-tree.c b/cache-tree.c index a59e6f1e1..20ee7b52d 100644 --- a/cache-tree.c +++ b/cache-tree.c @@ -377,7 +377,7 @@ static int update_one(struct cache_tree *it, * they are not part of generated trees. Invalidate up * to root to force cache-tree users to read elsewhere. */ - if (ce->ce_flags & CE_INTENT_TO_ADD) { + if (ce_intent_to_add(ce)) { to_invalidate = 1; continue; } @@ -9,6 +9,7 @@ #include "convert.h" #include "trace.h" #include "string-list.h" +#include "pack-revindex.h" #include SHA1_HEADER #ifndef platform_SHA_CTX @@ -214,7 +215,7 @@ struct cache_entry { #define CE_INTENT_TO_ADD (1 << 29) #define CE_SKIP_WORKTREE (1 << 30) /* CE_EXTENDED2 is for future extension */ -#define CE_EXTENDED2 (1 << 31) +#define CE_EXTENDED2 (1U << 31) #define CE_EXTENDED_FLAGS (CE_INTENT_TO_ADD | CE_SKIP_WORKTREE) @@ -259,6 +260,7 @@ static inline unsigned create_ce_flags(unsigned stage) #define ce_uptodate(ce) ((ce)->ce_flags & CE_UPTODATE) #define ce_skip_worktree(ce) ((ce)->ce_flags & CE_SKIP_WORKTREE) #define ce_mark_uptodate(ce) ((ce)->ce_flags |= CE_UPTODATE) +#define ce_intent_to_add(ce) ((ce)->ce_flags & CE_INTENT_TO_ADD) #define ce_permissions(mode) (((mode) & 0100) ? 0755 : 0644) static inline unsigned int create_ce_mode(unsigned int mode) @@ -1299,6 +1301,7 @@ extern struct packed_git { freshened:1, do_not_close:1; unsigned char sha1[20]; + struct revindex_entry *revindex; /* something like ".git/objects/pack/xxxxx.pack" */ char pack_name[FLEX_ARRAY]; /* more */ } *packed_git; diff --git a/compat/bswap.h b/compat/bswap.h index 7fed637ed..d47c00354 100644 --- a/compat/bswap.h +++ b/compat/bswap.h @@ -149,11 +149,12 @@ static inline uint64_t git_bswap64(uint64_t x) * and is faster on architectures with memory alignment issues. */ -#if defined(__i386__) || defined(__x86_64__) || \ +#if !defined(NO_UNALIGNED_LOADS) && ( \ + defined(__i386__) || defined(__x86_64__) || \ defined(_M_IX86) || defined(_M_X64) || \ defined(__ppc__) || defined(__ppc64__) || \ defined(__powerpc__) || defined(__powerpc64__) || \ - defined(__s390__) || defined(__s390x__) + defined(__s390__) || defined(__s390x__)) #define get_be16(p) ntohs(*(unsigned short *)(p)) #define get_be32(p) ntohl(*(unsigned int *)(p)) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 695680751..51f5223e2 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1312,6 +1312,7 @@ _git_grep () --full-name --line-number --extended-regexp --basic-regexp --fixed-strings --perl-regexp + --threads --files-with-matches --name-only --files-without-match --max-depth @@ -1808,7 +1809,7 @@ _git_config () return ;; branch.*.rebase) - __gitcomp "false true" + __gitcomp "false true preserve interactive" return ;; remote.pushdefault) diff --git a/contrib/examples/git-commit.sh b/contrib/examples/git-commit.sh index 934505bab..86c9cfa0c 100755 --- a/contrib/examples/git-commit.sh +++ b/contrib/examples/git-commit.sh @@ -574,10 +574,10 @@ then if test "$templatefile" != "" then # Test whether this is just the unaltered template. - if cnt=`sed -e '/^#/d' < "$templatefile" | + if cnt=$(sed -e '/^#/d' < "$templatefile" | git stripspace | diff "$GIT_DIR"/COMMIT_BAREMSG - | - wc -l` && + wc -l) && test 0 -lt $cnt then have_commitmsg=t @@ -630,8 +630,8 @@ then fi if test -z "$quiet" then - commit=`git diff-tree --always --shortstat --pretty="format:%h: %s"\ - --abbrev --summary --root HEAD --` + commit=$(git diff-tree --always --shortstat --pretty="format:%h: %s"\ + --abbrev --summary --root HEAD --) echo "Created${initial_commit:+ initial} commit $commit" fi fi diff --git a/contrib/examples/git-fetch.sh b/contrib/examples/git-fetch.sh index 554070909..57d2e5616 100755 --- a/contrib/examples/git-fetch.sh +++ b/contrib/examples/git-fetch.sh @@ -146,13 +146,13 @@ esac reflist=$(get_remote_refs_for_fetch "$@") if test "$tags" then - taglist=`IFS=' ' && + taglist=$(IFS=' ' && echo "$ls_remote_result" | git show-ref --exclude-existing=refs/tags/ | while read sha1 name do echo ".${name}:${name}" - done` || exit + done) || exit if test "$#" -gt 1 then # remote URL plus explicit refspecs; we need to merge them. diff --git a/contrib/examples/git-merge.sh b/contrib/examples/git-merge.sh index 52f2aafb9..ee99f1a4e 100755 --- a/contrib/examples/git-merge.sh +++ b/contrib/examples/git-merge.sh @@ -523,10 +523,10 @@ do if test "$exit" -eq 1 then - cnt=`{ + cnt=$({ git diff-files --name-only git ls-files --unmerged - } | wc -l` + } | wc -l) if test $best_cnt -le 0 || test $cnt -le $best_cnt then best_strategy=$strategy diff --git a/contrib/examples/git-repack.sh b/contrib/examples/git-repack.sh index 96e3fed32..672af9344 100755 --- a/contrib/examples/git-repack.sh +++ b/contrib/examples/git-repack.sh @@ -67,8 +67,8 @@ case ",$all_into_one," in ,t,) args= existing= if [ -d "$PACKDIR" ]; then - for e in `cd "$PACKDIR" && find . -type f -name '*.pack' \ - | sed -e 's/^\.\///' -e 's/\.pack$//'` + for e in $(cd "$PACKDIR" && find . -type f -name '*.pack' \ + | sed -e 's/^\.\///' -e 's/\.pack$//') do if [ -e "$PACKDIR/$e.keep" ]; then : keep diff --git a/contrib/examples/git-revert.sh b/contrib/examples/git-revert.sh index 7e2aad549..197838d10 100755 --- a/contrib/examples/git-revert.sh +++ b/contrib/examples/git-revert.sh @@ -138,8 +138,8 @@ cherry-pick) }' logmsg=$(git show -s --pretty=raw --encoding="$encoding" "$commit") - set_author_env=`echo "$logmsg" | - LANG=C LC_ALL=C sed -ne "$pick_author_script"` + set_author_env=$(echo "$logmsg" | + LANG=C LC_ALL=C sed -ne "$pick_author_script") eval "$set_author_env" export GIT_AUTHOR_NAME export GIT_AUTHOR_EMAIL @@ -160,9 +160,9 @@ cherry-pick) esac >.msg eval GITHEAD_$head=HEAD -eval GITHEAD_$next='`git show -s \ +eval GITHEAD_$next='$(git show -s \ --pretty=oneline --encoding="$encoding" "$commit" | - sed -e "s/^[^ ]* //"`' + sed -e "s/^[^ ]* //")' export GITHEAD_$head GITHEAD_$next # This three way merge is an interesting one. We are at diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh index edf36f8c3..efbdb720e 100755 --- a/contrib/subtree/git-subtree.sh +++ b/contrib/subtree/git-subtree.sh @@ -245,7 +245,10 @@ find_latest_squash() case "$a" in START) sq="$b" ;; git-subtree-mainline:) main="$b" ;; - git-subtree-split:) sub="$b" ;; + git-subtree-split:) + sub="$(git rev-parse "$b^0")" || + die "could not rev-parse split hash $b from commit $sq" + ;; END) if [ -n "$sub" ]; then if [ -n "$main" ]; then @@ -278,7 +281,10 @@ find_existing_splits() case "$a" in START) sq="$b" ;; git-subtree-mainline:) main="$b" ;; - git-subtree-split:) sub="$b" ;; + git-subtree-split:) + sub="$(git rev-parse "$b^0")" || + die "could not rev-parse split hash $b from commit $sq" + ;; END) debug " Main is: '$main'" if [ -z "$main" -a -n "$sub" ]; then diff --git a/contrib/thunderbird-patch-inline/appp.sh b/contrib/thunderbird-patch-inline/appp.sh index 8dc73ece1..1053872ee 100755 --- a/contrib/thunderbird-patch-inline/appp.sh +++ b/contrib/thunderbird-patch-inline/appp.sh @@ -31,8 +31,8 @@ BODY=$(sed -e "1,/${SEP}/d" $1) CMT_MSG=$(sed -e '1,/^$/d' -e '/^---$/,$d' "${PATCH}") DIFF=$(sed -e '1,/^---$/d' "${PATCH}") -CCS=`echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \ - -e 's/^Signed-off-by: \(.*\)/\1,/gp'` +CCS=$(echo -e "$CMT_MSG\n$HEADERS" | sed -n -e 's/^Cc: \(.*\)$/\1,/gp' \ + -e 's/^Signed-off-by: \(.*\)/\1,/gp') echo "$SUBJECT" > $1 echo "Cc: $CCS" >> $1 @@ -91,7 +91,7 @@ typedef struct strbuf *(*diff_prefix_fn_t)(struct diff_options *opt, void *data) #define DIFF_OPT_DIRSTAT_BY_LINE (1 << 28) #define DIFF_OPT_FUNCCONTEXT (1 << 29) #define DIFF_OPT_PICKAXE_IGNORE_CASE (1 << 30) -#define DIFF_OPT_DEFAULT_FOLLOW_RENAMES (1 << 31) +#define DIFF_OPT_DEFAULT_FOLLOW_RENAMES (1U << 31) #define DIFF_OPT_TST(opts, flag) ((opts)->flags & DIFF_OPT_##flag) #define DIFF_OPT_TOUCHED(opts, flag) ((opts)->touched_flags & DIFF_OPT_##flag) @@ -564,9 +564,7 @@ void clear_exclude_list(struct exclude_list *el) free(el->excludes); free(el->filebuf); - el->nr = 0; - el->excludes = NULL; - el->filebuf = NULL; + memset(el, 0, sizeof(*el)); } static void trim_trailing_spaces(char *buf) @@ -882,25 +880,6 @@ int match_pathname(const char *pathname, int pathlen, */ if (!patternlen && !namelen) return 1; - /* - * This can happen when we ignore some exclude rules - * on directories in other to see if negative rules - * may match. E.g. - * - * /abc - * !/abc/def/ghi - * - * The pattern of interest is "/abc". On the first - * try, we should match path "abc" with this pattern - * in the "if" statement right above, but the caller - * ignores it. - * - * On the second try with paths within "abc", - * e.g. "abc/xyz", we come here and try to match it - * with "/abc". - */ - if (!patternlen && namelen && *name == '/') - return 1; } return fnmatch_icase_mem(pattern, patternlen, @@ -909,48 +888,6 @@ int match_pathname(const char *pathname, int pathlen, } /* - * Return non-zero if pathname is a directory and an ancestor of the - * literal path in a (negative) pattern. This is used to keep - * descending in "foo" and "foo/bar" when the pattern is - * "!foo/bar/.gitignore". "foo/notbar" will not be descended however. - */ -static int match_neg_path(const char *pathname, int pathlen, int *dtype, - const char *base, int baselen, - const char *pattern, int prefix, int patternlen, - int flags) -{ - assert((flags & EXC_FLAG_NEGATIVE) && !(flags & EXC_FLAG_NODIR)); - - if (*dtype == DT_UNKNOWN) - *dtype = get_dtype(NULL, pathname, pathlen); - if (*dtype != DT_DIR) - return 0; - - if (*pattern == '/') { - pattern++; - patternlen--; - prefix--; - } - - if (baselen) { - if (((pathlen < baselen && base[pathlen] == '/') || - pathlen == baselen) && - !strncmp_icase(pathname, base, pathlen)) - return 1; - pathname += baselen + 1; - pathlen -= baselen + 1; - } - - - if (prefix && - ((pathlen < prefix && pattern[pathlen] == '/') && - !strncmp_icase(pathname, pattern, pathlen))) - return 1; - - return 0; -} - -/* * Scan the given exclude list in reverse to see whether pathname * should be ignored. The first match (i.e. the last on the list), if * any, determines the fate. Returns the exclude_list element which @@ -963,7 +900,7 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname, struct exclude_list *el) { struct exclude *exc = NULL; /* undecided */ - int i, matched_negative_path = 0; + int i; if (!el->nr) return NULL; /* undefined */ @@ -998,18 +935,7 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname, exc = x; break; } - - if ((x->flags & EXC_FLAG_NEGATIVE) && !matched_negative_path && - match_neg_path(pathname, pathlen, dtype, x->base, - x->baselen ? x->baselen - 1 : 0, - exclude, prefix, x->patternlen, x->flags)) - matched_negative_path = 1; - } - if (exc && - !(exc->flags & EXC_FLAG_NEGATIVE) && - !(exc->flags & EXC_FLAG_NODIR) && - matched_negative_path) - exc = NULL; + } return exc; } diff --git a/environment.c b/environment.c index 2da7fe2e0..1cc4aab4e 100644 --- a/environment.c +++ b/environment.c @@ -235,8 +235,6 @@ void set_git_work_tree(const char *new_work_tree) } git_work_tree_initialized = 1; work_tree = xstrdup(real_path(new_work_tree)); - if (setenv(GIT_WORK_TREE_ENVIRONMENT, work_tree, 1)) - die("could not set GIT_WORK_TREE to '%s'", work_tree); } const char *get_git_work_tree(void) diff --git a/git-compat-util.h b/git-compat-util.h index 2da0a75a3..e8f286722 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -733,6 +733,7 @@ extern int xmkstemp_mode(char *template, int mode); extern int odb_mkstemp(char *template, size_t limit, const char *pattern); extern int odb_pack_keep(char *name, size_t namesz, const unsigned char *sha1); extern char *xgetcwd(void); +extern FILE *fopen_for_writing(const char *path); #define REALLOC_ARRAY(x, alloc) (x) = xrealloc((x), (alloc) * sizeof(*(x))) diff --git a/git-gui/po/glossary/txt-to-pot.sh b/git-gui/po/glossary/txt-to-pot.sh index 49bf7c536..8249915d3 100755 --- a/git-gui/po/glossary/txt-to-pot.sh +++ b/git-gui/po/glossary/txt-to-pot.sh @@ -11,7 +11,7 @@ if [ $# -eq 0 ] then cat <<! -Usage: `basename $0` git-gui-glossary.txt > git-gui-glossary.pot +Usage: $(basename $0) git-gui-glossary.txt > git-gui-glossary.pot ! exit 1; fi @@ -33,7 +33,7 @@ cat <<! msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: `date +'%Y-%m-%d %H:%M%z'`\n" +"POT-Creation-Date: $(date +'%Y-%m-%d %H:%M%z')\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" @@ -253,8 +253,8 @@ def p4_add(f): def p4_delete(f): p4_system(["delete", wildcard_encode(f)]) -def p4_edit(f): - p4_system(["edit", wildcard_encode(f)]) +def p4_edit(f, *options): + p4_system(["edit"] + list(options) + [wildcard_encode(f)]) def p4_revert(f): p4_system(["revert", wildcard_encode(f)]) @@ -822,39 +822,37 @@ def p4ChangesForPaths(depotPaths, changeRange, requestedBlockSize): die("cannot use --changes-block-size with non-numeric revisions") block_size = None - # Accumulate change numbers in a dictionary to avoid duplicates - changes = {} + changes = [] - for p in depotPaths: - # Retrieve changes a block at a time, to prevent running - # into a MaxResults/MaxScanRows error from the server. + # Retrieve changes a block at a time, to prevent running + # into a MaxResults/MaxScanRows error from the server. - while True: - cmd = ['changes'] + while True: + cmd = ['changes'] - if block_size: - end = min(changeEnd, changeStart + block_size) - revisionRange = "%d,%d" % (changeStart, end) - else: - revisionRange = "%s,%s" % (changeStart, changeEnd) + if block_size: + end = min(changeEnd, changeStart + block_size) + revisionRange = "%d,%d" % (changeStart, end) + else: + revisionRange = "%s,%s" % (changeStart, changeEnd) + for p in depotPaths: cmd += ["%s...@%s" % (p, revisionRange)] - for line in p4_read_pipe_lines(cmd): - changeNum = int(line.split(" ")[1]) - changes[changeNum] = True + # Insert changes in chronological order + for line in reversed(p4_read_pipe_lines(cmd)): + changes.append(int(line.split(" ")[1])) - if not block_size: - break + if not block_size: + break - if end >= changeEnd: - break + if end >= changeEnd: + break - changeStart = end + 1 + changeStart = end + 1 - changelist = changes.keys() - changelist.sort() - return changelist + changes = sorted(changes) + return changes def p4PathStartsWith(path, prefix): # This method tries to remedy a potential mixed-case issue: @@ -1458,6 +1456,8 @@ class P4Submit(Command, P4UserMap): Remove lines in the Files section that show changes to files outside the depot path we're committing into.""" + [upstream, settings] = findUpstreamBranchPoint() + template = "" inFilesSection = False for line in p4_read_pipe_lines(['change', '-o']): @@ -1470,8 +1470,13 @@ class P4Submit(Command, P4UserMap): lastTab = path.rfind("\t") if lastTab != -1: path = path[:lastTab] - if not p4PathStartsWith(path, self.depotPath): - continue + if settings.has_key('depot-paths'): + if not [p for p in settings['depot-paths'] + if p4PathStartsWith(path, p)]: + continue + else: + if not p4PathStartsWith(path, self.depotPath): + continue else: inFilesSection = False else: @@ -1549,6 +1554,7 @@ class P4Submit(Command, P4UserMap): diff = read_pipe_lines("git diff-tree -r %s \"%s^\" \"%s\"" % (self.diffOpts, id, id)) filesToAdd = set() + filesToChangeType = set() filesToDelete = set() editedFiles = set() pureRenameCopy = set() @@ -1609,6 +1615,8 @@ class P4Submit(Command, P4UserMap): os.unlink(dest) filesToDelete.add(src) editedFiles.add(dest) + elif modifier == "T": + filesToChangeType.add(path) else: die("unknown modifier %s for %s" % (modifier, path)) @@ -1668,6 +1676,8 @@ class P4Submit(Command, P4UserMap): # system(applyPatchCmd) + for f in filesToChangeType: + p4_edit(f, "-t", "auto") for f in filesToAdd: p4_add(f) for f in filesToDelete: diff --git a/git-rebase.sh b/git-rebase.sh index af7ba5fd9..cf60c4390 100755 --- a/git-rebase.sh +++ b/git-rebase.sh @@ -176,7 +176,7 @@ You can run "git stash pop" or "git stash drop" at any time. finish_rebase () { apply_autostash && - git gc --auto && + { git gc --auto || true; } && rm -rf "$state_dir" } diff --git a/git-send-email.perl b/git-send-email.perl index 6caa5b563..d35690134 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -524,8 +524,13 @@ my %parse_alias = ( if (/^\s*alias\s+(?:-group\s+\S+\s+)*(\S+)\s+(.*)$/) { my ($alias, $addr) = ($1, $2); $addr =~ s/#.*$//; # mutt allows # comments - # commas delimit multiple addresses - $aliases{$alias} = [ split_addrs($addr) ]; + # commas delimit multiple addresses + my @addr = split_addrs($addr); + + # quotes may be escaped in the file, + # unescape them so we do not double-escape them later. + s/\\"/"/g foreach @addr; + $aliases{$alias} = \@addr }}}, mailrc => sub { my $fh = shift; while (<$fh>) { if (/^alias\s+(\S+)\s+(.*)$/) { @@ -25,14 +25,14 @@ static const char *env_names[] = { GIT_PREFIX_ENVIRONMENT }; static char *orig_env[4]; -static int saved_environment; +static int saved_env_before_alias; -static void save_env(void) +static void save_env_before_alias(void) { int i; - if (saved_environment) + if (saved_env_before_alias) return; - saved_environment = 1; + saved_env_before_alias = 1; orig_cwd = xgetcwd(); for (i = 0; i < ARRAY_SIZE(env_names); i++) { orig_env[i] = getenv(env_names[i]); @@ -41,13 +41,16 @@ static void save_env(void) } } -static void restore_env(void) +static void restore_env(int external_alias) { int i; - if (orig_cwd && chdir(orig_cwd)) + if (!external_alias && orig_cwd && chdir(orig_cwd)) die_errno("could not move to %s", orig_cwd); free(orig_cwd); for (i = 0; i < ARRAY_SIZE(env_names); i++) { + if (external_alias && + !strcmp(env_names[i], GIT_PREFIX_ENVIRONMENT)) + continue; if (orig_env[i]) setenv(env_names[i], orig_env[i], 1); else @@ -226,14 +229,14 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) static int handle_alias(int *argcp, const char ***argv) { int envchanged = 0, ret = 0, saved_errno = errno; - const char *subdir; int count, option_count; const char **new_argv; const char *alias_command; char *alias_string; int unused_nongit; - subdir = setup_git_directory_gently(&unused_nongit); + save_env_before_alias(); + setup_git_directory_gently(&unused_nongit); alias_command = (*argv)[0]; alias_string = alias_lookup(alias_command); @@ -243,6 +246,7 @@ static int handle_alias(int *argcp, const char ***argv) int argc = *argcp, i; commit_pager_choice(); + restore_env(1); /* build alias_argv */ alias_argv = xmalloc(sizeof(*alias_argv) * (argc + 1)); @@ -291,8 +295,7 @@ static int handle_alias(int *argcp, const char ***argv) ret = 1; } - if (subdir && chdir(subdir)) - die_errno("Cannot change to '%s'", subdir); + restore_env(0); errno = saved_errno; @@ -307,7 +310,6 @@ static int handle_alias(int *argcp, const char ***argv) * RUN_SETUP for reading from the configuration file. */ #define NEED_WORK_TREE (1<<3) -#define NO_SETUP (1<<4) struct cmd_struct { const char *cmd; @@ -389,7 +391,7 @@ static struct cmd_struct commands[] = { { "cherry", cmd_cherry, RUN_SETUP }, { "cherry-pick", cmd_cherry_pick, RUN_SETUP | NEED_WORK_TREE }, { "clean", cmd_clean, RUN_SETUP | NEED_WORK_TREE }, - { "clone", cmd_clone, NO_SETUP }, + { "clone", cmd_clone }, { "column", cmd_column, RUN_SETUP_GENTLY }, { "commit", cmd_commit, RUN_SETUP | NEED_WORK_TREE }, { "commit-tree", cmd_commit_tree, RUN_SETUP }, @@ -415,8 +417,8 @@ static struct cmd_struct commands[] = { { "hash-object", cmd_hash_object }, { "help", cmd_help }, { "index-pack", cmd_index_pack, RUN_SETUP_GENTLY }, - { "init", cmd_init_db, NO_SETUP }, - { "init-db", cmd_init_db, NO_SETUP }, + { "init", cmd_init_db }, + { "init-db", cmd_init_db }, { "interpret-trailers", cmd_interpret_trailers, RUN_SETUP_GENTLY }, { "log", cmd_log, RUN_SETUP }, { "ls-files", cmd_ls_files, RUN_SETUP }, @@ -530,9 +532,13 @@ static void handle_builtin(int argc, const char **argv) builtin = get_builtin(cmd); if (builtin) { - if (saved_environment && (builtin->option & NO_SETUP)) - restore_env(); - else + /* + * XXX: if we can figure out cases where it is _safe_ + * to do, we can avoid spawning a new process when + * saved_env_before_alias is true + * (i.e. setup_git_dir* has been run once) + */ + if (!saved_env_before_alias) exit(run_builtin(builtin, argc, argv)); } } @@ -590,7 +596,6 @@ static int run_argv(int *argcp, const char ***argv) */ if (done_alias) break; - save_env(); if (!handle_alias(argcp, argv)) break; done_alias = 1; diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 7a5b23acf..05d7910b7 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -7576,7 +7576,7 @@ sub git_object { git_cmd(), 'cat-file', '-t', $object_id) . ' 2> /dev/null' or die_error(404, "Object does not exist"); $type = <$fd>; - chomp $type; + defined $type && chomp $type; close $fd or die_error(404, "Object does not exist"); diff --git a/notes-cache.c b/notes-cache.c index c4e9bb7f6..5dfc5cbd0 100644 --- a/notes-cache.c +++ b/notes-cache.c @@ -32,14 +32,14 @@ void notes_cache_init(struct notes_cache *c, const char *name, const char *validity) { struct strbuf ref = STRBUF_INIT; - int flags = 0; + int flags = NOTES_INIT_WRITABLE; memset(c, 0, sizeof(*c)); c->validity = xstrdup(validity); strbuf_addf(&ref, "refs/notes/%s", name); if (!notes_cache_match_validity(ref.buf, validity)) - flags = NOTES_INIT_EMPTY; + flags |= NOTES_INIT_EMPTY; init_notes(&c->tree, ref.buf, combine_notes_overwrite, flags); strbuf_release(&ref); } @@ -49,7 +49,8 @@ int notes_cache_write(struct notes_cache *c) unsigned char tree_sha1[20]; unsigned char commit_sha1[20]; - if (!c || !c->tree.initialized || !c->tree.ref || !*c->tree.ref) + if (!c || !c->tree.initialized || !c->tree.update_ref || + !*c->tree.update_ref) return -1; if (!c->tree.dirty) return 0; @@ -59,8 +60,8 @@ int notes_cache_write(struct notes_cache *c) if (commit_tree(c->validity, strlen(c->validity), tree_sha1, NULL, commit_sha1, NULL, NULL) < 0) return -1; - if (update_ref("update notes cache", c->tree.ref, commit_sha1, NULL, - 0, UPDATE_REFS_QUIET_ON_ERR) < 0) + if (update_ref("update notes cache", c->tree.update_ref, commit_sha1, + NULL, 0, UPDATE_REFS_QUIET_ON_ERR) < 0) return -1; return 0; diff --git a/notes-utils.c b/notes-utils.c index 299e34bcc..24a33616a 100644 --- a/notes-utils.c +++ b/notes-utils.c @@ -37,7 +37,7 @@ void commit_notes(struct notes_tree *t, const char *msg) if (!t) t = &default_notes_tree; - if (!t->initialized || !t->ref || !*t->ref) + if (!t->initialized || !t->update_ref || !*t->update_ref) die(_("Cannot commit uninitialized/unreferenced notes tree")); if (!t->dirty) return; /* don't have to commit an unchanged tree */ @@ -48,7 +48,7 @@ void commit_notes(struct notes_tree *t, const char *msg) create_notes_commit(t, NULL, buf.buf, buf.len, commit_sha1); strbuf_insert(&buf, 0, "notes: ", 7); /* commit message starts at index 7 */ - update_ref(buf.buf, t->ref, commit_sha1, NULL, 0, + update_ref(buf.buf, t->update_ref, commit_sha1, NULL, 0, UPDATE_REFS_DIE_ON_ERR); strbuf_release(&buf); @@ -148,7 +148,7 @@ struct notes_rewrite_cfg *init_copy_notes_for_rewrite(const char *cmd) free(c); return NULL; } - c->trees = load_notes_trees(c->refs); + c->trees = load_notes_trees(c->refs, NOTES_INIT_WRITABLE); string_list_clear(c->refs, 0); free(c->refs); return c; @@ -1011,13 +1011,16 @@ void init_notes(struct notes_tree *t, const char *notes_ref, t->first_non_note = NULL; t->prev_non_note = NULL; t->ref = xstrdup_or_null(notes_ref); + t->update_ref = (flags & NOTES_INIT_WRITABLE) ? t->ref : NULL; t->combine_notes = combine_notes; t->initialized = 1; t->dirty = 0; if (flags & NOTES_INIT_EMPTY || !notes_ref || - read_ref(notes_ref, object_sha1)) + get_sha1_treeish(notes_ref, object_sha1)) return; + if (flags & NOTES_INIT_WRITABLE && read_ref(notes_ref, object_sha1)) + die("Cannot use notes ref %s", notes_ref); if (get_tree_entry(object_sha1, "", sha1, &mode)) die("Failed to read notes tree referenced by %s (%s)", notes_ref, sha1_to_hex(object_sha1)); @@ -1027,7 +1030,7 @@ void init_notes(struct notes_tree *t, const char *notes_ref, load_subtree(t, &root_tree, t->root, 0); } -struct notes_tree **load_notes_trees(struct string_list *refs) +struct notes_tree **load_notes_trees(struct string_list *refs, int flags) { struct string_list_item *item; int counter = 0; @@ -1035,7 +1038,7 @@ struct notes_tree **load_notes_trees(struct string_list *refs) trees = xmalloc((refs->nr+1) * sizeof(struct notes_tree *)); for_each_string_list_item(item, refs) { struct notes_tree *t = xcalloc(1, sizeof(struct notes_tree)); - init_notes(t, item->string, combine_notes_ignore, 0); + init_notes(t, item->string, combine_notes_ignore, flags); trees[counter++] = t; } trees[counter] = NULL; @@ -1071,7 +1074,7 @@ void init_display_notes(struct display_notes_opt *opt) item->string); } - display_notes_trees = load_notes_trees(&display_notes_refs); + display_notes_trees = load_notes_trees(&display_notes_refs, 0); string_list_clear(&display_notes_refs, 0); } @@ -44,6 +44,7 @@ extern struct notes_tree { struct int_node *root; struct non_note *first_non_note, *prev_non_note; char *ref; + char *update_ref; combine_notes_fn combine_notes; int initialized; int dirty; @@ -72,6 +73,13 @@ const char *default_notes_ref(void); #define NOTES_INIT_EMPTY 1 /* + * By default, the notes tree is only readable, and the notes ref can be + * any treeish. The notes tree can however be made writable with this flag, + * in which case only strict ref names can be used. + */ +#define NOTES_INIT_WRITABLE 2 + +/* * Initialize the given notes_tree with the notes tree structure at the given * ref. If given ref is NULL, the value of the $GIT_NOTES_REF environment * variable is used, and if that is missing, the default notes ref is used @@ -276,7 +284,7 @@ void format_display_notes(const unsigned char *object_sha1, * Load the notes tree from each ref listed in 'refs'. The output is * an array of notes_tree*, terminated by a NULL. */ -struct notes_tree **load_notes_trees(struct string_list *refs); +struct notes_tree **load_notes_trees(struct string_list *refs, int flags); /* * Add all refs that match 'glob' to the 'list'. diff --git a/pack-bitmap.c b/pack-bitmap.c index cb9c62280..dd8dc16e6 100644 --- a/pack-bitmap.c +++ b/pack-bitmap.c @@ -33,9 +33,6 @@ static struct bitmap_index { /* Packfile to which this bitmap index belongs to */ struct packed_git *pack; - /* reverse index for the packfile */ - struct pack_revindex *reverse_index; - /* * Mark the first `reuse_objects` in the packfile as reused: * they will be sent as-is without using them for repacking @@ -308,7 +305,7 @@ static int load_pack_bitmap(void) bitmap_git.bitmaps = kh_init_sha1(); bitmap_git.ext_index.positions = kh_init_sha1_pos(); - bitmap_git.reverse_index = revindex_for_pack(bitmap_git.pack); + load_pack_revindex(bitmap_git.pack); if (!(bitmap_git.commits = read_bitmap_1(&bitmap_git)) || !(bitmap_git.trees = read_bitmap_1(&bitmap_git)) || @@ -380,7 +377,7 @@ static inline int bitmap_position_packfile(const unsigned char *sha1) if (!offset) return -1; - return find_revindex_position(bitmap_git.reverse_index, offset); + return find_revindex_position(bitmap_git.pack, offset); } static int bitmap_position(const unsigned char *sha1) @@ -630,7 +627,7 @@ static void show_objects_for_type( if (pos + offset < bitmap_git.reuse_objects) continue; - entry = &bitmap_git.reverse_index->revindex[pos + offset]; + entry = &bitmap_git.pack->revindex[pos + offset]; sha1 = nth_packed_object_sha1(bitmap_git.pack, entry->nr); if (bitmap_git.hashes) @@ -804,7 +801,7 @@ int reuse_partial_packfile_from_bitmap(struct packed_git **packfile, return -1; bitmap_git.reuse_objects = *entries = reuse_objects; - *up_to = bitmap_git.reverse_index->revindex[reuse_objects].offset; + *up_to = bitmap_git.pack->revindex[reuse_objects].offset; *packfile = bitmap_git.pack; return 0; @@ -1038,7 +1035,7 @@ int rebuild_existing_bitmaps(struct packing_data *mapping, struct revindex_entry *entry; struct object_entry *oe; - entry = &bitmap_git.reverse_index->revindex[i]; + entry = &bitmap_git.pack->revindex[i]; sha1 = nth_packed_object_sha1(bitmap_git.pack, entry->nr); oe = packlist_find(mapping, sha1, NULL); diff --git a/pack-revindex.c b/pack-revindex.c index e542ea770..155a8a3d6 100644 --- a/pack-revindex.c +++ b/pack-revindex.c @@ -8,52 +8,13 @@ * size is easily available by examining the pack entry header). It is * also rather expensive to find the sha1 for an object given its offset. * - * We build a hashtable of existing packs (pack_revindex), and keep reverse - * index here -- pack index file is sorted by object name mapping to offset; - * this pack_revindex[].revindex array is a list of offset/index_nr pairs + * The pack index file is sorted by object name mapping to offset; + * this revindex array is a list of offset/index_nr pairs * ordered by offset, so if you know the offset of an object, next offset * is where its packed representation ends and the index_nr can be used to * get the object sha1 from the main index. */ -static struct pack_revindex *pack_revindex; -static int pack_revindex_hashsz; - -static int pack_revindex_ix(struct packed_git *p) -{ - unsigned long ui = (unsigned long)(intptr_t)p; - int i; - - ui = ui ^ (ui >> 16); /* defeat structure alignment */ - i = (int)(ui % pack_revindex_hashsz); - while (pack_revindex[i].p) { - if (pack_revindex[i].p == p) - return i; - if (++i == pack_revindex_hashsz) - i = 0; - } - return -1 - i; -} - -static void init_pack_revindex(void) -{ - int num; - struct packed_git *p; - - for (num = 0, p = packed_git; p; p = p->next) - num++; - if (!num) - return; - pack_revindex_hashsz = num * 11; - pack_revindex = xcalloc(pack_revindex_hashsz, sizeof(*pack_revindex)); - for (p = packed_git; p; p = p->next) { - num = pack_revindex_ix(p); - num = - 1 - num; - pack_revindex[num].p = p; - } - /* revindex elements are lazily initialized */ -} - /* * This is a least-significant-digit radix sort. * @@ -154,14 +115,13 @@ static void sort_revindex(struct revindex_entry *entries, unsigned n, off_t max) /* * Ordered list of offsets of objects in the pack. */ -static void create_pack_revindex(struct pack_revindex *rix) +static void create_pack_revindex(struct packed_git *p) { - struct packed_git *p = rix->p; unsigned num_ent = p->num_objects; unsigned i; const char *index = p->index_data; - rix->revindex = xmalloc(sizeof(*rix->revindex) * (num_ent + 1)); + p->revindex = xmalloc(sizeof(*p->revindex) * (num_ent + 1)); index += 4 * 256; if (p->index_version > 1) { @@ -171,55 +131,42 @@ static void create_pack_revindex(struct pack_revindex *rix) for (i = 0; i < num_ent; i++) { uint32_t off = ntohl(*off_32++); if (!(off & 0x80000000)) { - rix->revindex[i].offset = off; + p->revindex[i].offset = off; } else { - rix->revindex[i].offset = + p->revindex[i].offset = ((uint64_t)ntohl(*off_64++)) << 32; - rix->revindex[i].offset |= + p->revindex[i].offset |= ntohl(*off_64++); } - rix->revindex[i].nr = i; + p->revindex[i].nr = i; } } else { for (i = 0; i < num_ent; i++) { uint32_t hl = *((uint32_t *)(index + 24 * i)); - rix->revindex[i].offset = ntohl(hl); - rix->revindex[i].nr = i; + p->revindex[i].offset = ntohl(hl); + p->revindex[i].nr = i; } } /* This knows the pack format -- the 20-byte trailer * follows immediately after the last object data. */ - rix->revindex[num_ent].offset = p->pack_size - 20; - rix->revindex[num_ent].nr = -1; - sort_revindex(rix->revindex, num_ent, p->pack_size); + p->revindex[num_ent].offset = p->pack_size - 20; + p->revindex[num_ent].nr = -1; + sort_revindex(p->revindex, num_ent, p->pack_size); } -struct pack_revindex *revindex_for_pack(struct packed_git *p) +void load_pack_revindex(struct packed_git *p) { - int num; - struct pack_revindex *rix; - - if (!pack_revindex_hashsz) - init_pack_revindex(); - - num = pack_revindex_ix(p); - if (num < 0) - die("internal error: pack revindex fubar"); - - rix = &pack_revindex[num]; - if (!rix->revindex) - create_pack_revindex(rix); - - return rix; + if (!p->revindex) + create_pack_revindex(p); } -int find_revindex_position(struct pack_revindex *pridx, off_t ofs) +int find_revindex_position(struct packed_git *p, off_t ofs) { int lo = 0; - int hi = pridx->p->num_objects + 1; - struct revindex_entry *revindex = pridx->revindex; + int hi = p->num_objects + 1; + struct revindex_entry *revindex = p->revindex; do { unsigned mi = lo + (hi - lo) / 2; @@ -237,11 +184,13 @@ int find_revindex_position(struct pack_revindex *pridx, off_t ofs) struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs) { - struct pack_revindex *pridx = revindex_for_pack(p); - int pos = find_revindex_position(pridx, ofs); + int pos; + + load_pack_revindex(p); + pos = find_revindex_position(p, ofs); if (pos < 0) return NULL; - return pridx->revindex + pos; + return p->revindex + pos; } diff --git a/pack-revindex.h b/pack-revindex.h index d737f9896..e262f3efe 100644 --- a/pack-revindex.h +++ b/pack-revindex.h @@ -1,18 +1,15 @@ #ifndef PACK_REVINDEX_H #define PACK_REVINDEX_H +struct packed_git; + struct revindex_entry { off_t offset; unsigned int nr; }; -struct pack_revindex { - struct packed_git *p; - struct revindex_entry *revindex; -}; - -struct pack_revindex *revindex_for_pack(struct packed_git *p); -int find_revindex_position(struct pack_revindex *pridx, off_t ofs); +void load_pack_revindex(struct packed_git *p); +int find_revindex_position(struct packed_git *p, off_t ofs); struct revindex_entry *find_pack_revindex(struct packed_git *p, off_t ofs); @@ -32,6 +32,10 @@ Repository: https://github.com/quizzlo/git-po-it/ Leader: Marco Paolone <marcopaolone AT gmail.com> Members: Stefano Lattarini <stefano.lattarini AT gmail.com> +Language: ko (Korean) +Repository: https://github.com/changwoo/git-l10n-ko/ +Leader: Changwoo Ryu <cwryu@debian.org> + Language: pt_PT (Portuguese - Portugal) Repository: https://github.com/marcomsousa/git-l10n-pt_PT/ Leader: Marco Sousa <marcomsousa AT gmail.com> @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2015-09-15 06:45+0800\n" +"POT-Creation-Date: 2015-12-22 22:50+0800\n" "PO-Revision-Date: 2015-01-21 15:01+0800\n" "Last-Translator: Ralf Thielow <ralf.thielow@gmail.com>\n" "Language-Team: German <>\n" @@ -31,13 +31,13 @@ msgstr "" "dann 'git add/rm <Datei>', um die Auflösung entsprechend zu markieren\n" "und zu committen." -#: advice.c:101 builtin/merge.c:1227 +#: advice.c:101 builtin/merge.c:1225 msgid "You have not concluded your merge (MERGE_HEAD exists)." msgstr "Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert)." #: advice.c:103 -msgid "Please, commit your changes before you can merge." -msgstr "Bitte committen Sie Ihre Änderungen, bevor Sie den Merge ausführen." +msgid "Please, commit your changes before merging." +msgstr "Bitte committen Sie Ihre Änderungen, bevor Sie mergen." #: advice.c:104 msgid "Exiting because of unfinished merge." @@ -62,76 +62,76 @@ msgstr "" msgid "git archive --remote <repo> [--exec <cmd>] --list" msgstr "git archive --remote <Repository> [--exec <Programm>] --list" -#: archive.c:343 builtin/add.c:137 builtin/add.c:426 builtin/rm.c:327 +#: archive.c:344 builtin/add.c:137 builtin/add.c:420 builtin/rm.c:327 #, c-format msgid "pathspec '%s' did not match any files" msgstr "Pfadspezifikation '%s' stimmt mit keinen Dateien überein" -#: archive.c:428 +#: archive.c:429 msgid "fmt" msgstr "Format" -#: archive.c:428 +#: archive.c:429 msgid "archive format" msgstr "Archivformat" -#: archive.c:429 builtin/log.c:1229 +#: archive.c:430 builtin/log.c:1229 msgid "prefix" msgstr "Präfix" -#: archive.c:430 +#: archive.c:431 msgid "prepend prefix to each pathname in the archive" msgstr "einen Präfix vor jeden Pfadnamen in dem Archiv stellen" -#: archive.c:431 builtin/archive.c:88 builtin/blame.c:2516 -#: builtin/blame.c:2517 builtin/config.c:58 builtin/fast-export.c:987 -#: builtin/fast-export.c:989 builtin/grep.c:712 builtin/hash-object.c:99 +#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535 +#: builtin/blame.c:2536 builtin/config.c:58 builtin/fast-export.c:987 +#: builtin/fast-export.c:989 builtin/grep.c:707 builtin/hash-object.c:99 #: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395 #: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153 msgid "file" msgstr "Datei" -#: archive.c:432 builtin/archive.c:89 +#: archive.c:433 builtin/archive.c:89 msgid "write the archive to this file" msgstr "das Archiv in diese Datei schreiben" -#: archive.c:434 +#: archive.c:435 msgid "read .gitattributes in working directory" msgstr ".gitattributes aus dem Arbeitsverzeichnis lesen" -#: archive.c:435 +#: archive.c:436 msgid "report archived files on stderr" msgstr "archivierte Dateien in der Standard-Fehlerausgabe ausgeben" -#: archive.c:436 +#: archive.c:437 msgid "store only" msgstr "nur speichern" -#: archive.c:437 +#: archive.c:438 msgid "compress faster" msgstr "schneller komprimieren" -#: archive.c:445 +#: archive.c:446 msgid "compress better" msgstr "besser komprimieren" -#: archive.c:448 +#: archive.c:449 msgid "list supported archive formats" msgstr "unterstützte Archivformate auflisten" -#: archive.c:450 builtin/archive.c:90 builtin/clone.c:77 +#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77 msgid "repo" msgstr "Repository" -#: archive.c:451 builtin/archive.c:91 +#: archive.c:452 builtin/archive.c:91 msgid "retrieve the archive from remote repository <repo>" msgstr "Archiv vom Remote-Repository <Repository> abrufen" -#: archive.c:452 builtin/archive.c:92 builtin/notes.c:479 +#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479 msgid "command" msgstr "Programm" -#: archive.c:453 builtin/archive.c:93 +#: archive.c:454 builtin/archive.c:93 msgid "path to the remote git-upload-archive command" msgstr "Pfad zum externen \"git-upload-archive\"-Programm" @@ -143,87 +143,87 @@ msgstr "" "Verneinende Muster werden in Git-Attributen ignoriert.\n" "Benutzen Sie '\\!' für führende Ausrufezeichen." -#: branch.c:60 +#: branch.c:61 #, c-format msgid "Not setting branch %s as its own upstream." msgstr "Branch %s kann nicht sein eigener Upstream-Branch sein." -#: branch.c:83 +#: branch.c:84 #, c-format msgid "Branch %s set up to track remote branch %s from %s by rebasing." msgstr "" "Branch %s konfiguriert zum Folgen von Remote-Branch %s von %s durch Rebase." -#: branch.c:84 +#: branch.c:85 #, c-format msgid "Branch %s set up to track remote branch %s from %s." msgstr "Branch %s konfiguriert zum Folgen von Remote-Branch %s von %s." -#: branch.c:88 +#: branch.c:89 #, c-format msgid "Branch %s set up to track local branch %s by rebasing." msgstr "Branch %s konfiguriert zum Folgen von lokalem Branch %s durch Rebase." -#: branch.c:89 +#: branch.c:90 #, c-format msgid "Branch %s set up to track local branch %s." msgstr "Branch %s konfiguriert zum Folgen von lokalem Branch %s." -#: branch.c:94 +#: branch.c:95 #, c-format msgid "Branch %s set up to track remote ref %s by rebasing." msgstr "Branch %s konfiguriert zum Folgen von Remote-Referenz %s durch Rebase." -#: branch.c:95 +#: branch.c:96 #, c-format msgid "Branch %s set up to track remote ref %s." msgstr "Branch %s konfiguriert zum Folgen von Remote-Referenz %s." -#: branch.c:99 +#: branch.c:100 #, c-format msgid "Branch %s set up to track local ref %s by rebasing." msgstr "" "Branch %s konfiguriert zum Folgen von lokaler Referenz %s durch Rebase." -#: branch.c:100 +#: branch.c:101 #, c-format msgid "Branch %s set up to track local ref %s." msgstr "Branch %s konfiguriert zum Folgen von lokaler Referenz %s." -#: branch.c:133 +#: branch.c:134 #, c-format msgid "Not tracking: ambiguous information for ref %s" msgstr "" "Konfiguration zum Folgen von Branch nicht eingerichtet. Referenz %s ist " "mehrdeutig." -#: branch.c:162 +#: branch.c:163 #, c-format msgid "'%s' is not a valid branch name." msgstr "'%s' ist kein gültiger Branchname." -#: branch.c:167 +#: branch.c:168 #, c-format msgid "A branch named '%s' already exists." msgstr "Branch '%s' existiert bereits." -#: branch.c:175 +#: branch.c:176 msgid "Cannot force update the current branch." msgstr "Kann Aktualisierung des aktuellen Branches nicht erzwingen." -#: branch.c:195 +#: branch.c:196 #, c-format msgid "Cannot setup tracking information; starting point '%s' is not a branch." msgstr "" "Kann Tracking-Informationen nicht einrichten; Startpunkt '%s' ist kein " "Branch." -#: branch.c:197 +#: branch.c:198 #, c-format msgid "the requested upstream branch '%s' does not exist" msgstr "der angeforderte Upstream-Branch '%s' existiert nicht" -#: branch.c:199 +#: branch.c:200 msgid "" "\n" "If you are planning on basing your work on an upstream\n" @@ -244,22 +244,22 @@ msgstr "" "\"git push -u\" verwenden, um den Upstream-Branch beim \"push\"\n" "zu konfigurieren." -#: branch.c:243 +#: branch.c:244 #, c-format msgid "Not a valid object name: '%s'." msgstr "Ungültiger Objekt-Name: '%s'" -#: branch.c:263 +#: branch.c:264 #, c-format msgid "Ambiguous object name: '%s'." msgstr "mehrdeutiger Objekt-Name: '%s'" -#: branch.c:268 +#: branch.c:269 #, c-format msgid "Not a valid branch point: '%s'." msgstr "Ungültiger Branchpunkt: '%s'" -#: branch.c:399 +#: branch.c:322 #, c-format msgid "'%s' is already checked out at '%s'" msgstr "'%s' ist bereits in '%s' ausgecheckt" @@ -274,7 +274,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:87 builtin/commit.c:765 +#: bundle.c:87 builtin/commit.c:766 #, c-format msgid "could not open '%s'" msgstr "Konnte '%s' nicht öffnen" @@ -283,9 +283,9 @@ msgstr "Konnte '%s' nicht öffnen" msgid "Repository lacks these prerequisite commits:" msgstr "Dem Repository fehlen folgende vorausgesetzte Commits:" -#: bundle.c:163 sequencer.c:636 sequencer.c:1083 builtin/blame.c:2708 -#: builtin/branch.c:652 builtin/commit.c:1044 builtin/log.c:334 -#: builtin/log.c:850 builtin/log.c:1457 builtin/log.c:1690 builtin/merge.c:358 +#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083 +#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334 +#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358 #: builtin/shortlog.c:158 msgid "revision walk setup failed" msgstr "Einrichtung des Revisionsgangs fehlgeschlagen" @@ -325,7 +325,7 @@ msgstr "\"rev-list\" abgebrochen" msgid "ref '%s' is excluded by the rev-list options" msgstr "Referenz '%s' wird durch \"rev-list\" Optionen ausgeschlossen" -#: bundle.c:443 builtin/log.c:157 builtin/log.c:1367 builtin/shortlog.c:261 +#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261 #, c-format msgid "unrecognized argument: %s" msgstr "nicht erkanntes Argument: %s" @@ -343,13 +343,13 @@ msgstr "kann '%s' nicht erstellen" msgid "index-pack died" msgstr "Erstellung der Paketindexdatei abgebrochen" -#: color.c:260 +#: color.c:275 #, c-format msgid "invalid color value: %.*s" msgstr "Ungültiger Farbwert: %.*s" -#: commit.c:40 builtin/am.c:451 builtin/am.c:487 builtin/am.c:1516 -#: builtin/am.c:2128 +#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520 +#: builtin/am.c:2149 #, c-format msgid "could not parse %s" msgstr "konnte %s nicht parsen" @@ -511,23 +511,23 @@ msgstr "Fehler beim Lesen der Reihenfolgedatei '%s'." msgid "Performing inexact rename detection" msgstr "Führe Erkennung für ungenaue Umbenennung aus" -#: diff.c:116 +#: diff.c:115 #, c-format msgid " Failed to parse dirstat cut-off percentage '%s'\n" msgstr "" " Fehler beim Parsen des abgeschnittenen \"dirstat\" Prozentsatzes '%s'\n" -#: diff.c:121 +#: diff.c:120 #, c-format msgid " Unknown dirstat parameter '%s'\n" msgstr " Unbekannter \"dirstat\" Parameter '%s'\n" -#: diff.c:216 +#: diff.c:215 #, c-format msgid "Unknown value for 'diff.submodule' config variable: '%s'" msgstr "Unbekannter Wert in Konfigurationsvariable 'diff.dirstat': '%s'" -#: diff.c:268 +#: diff.c:267 #, c-format msgid "" "Found errors in 'diff.dirstat' config variable:\n" @@ -536,16 +536,16 @@ msgstr "" "Fehler in 'diff.dirstat' Konfigurationsvariable gefunden:\n" "%s" -#: diff.c:2998 +#: diff.c:3000 #, c-format msgid "external diff died, stopping at %s" msgstr "externes Diff-Programm unerwartet beendet, angehalten bei %s" -#: diff.c:3394 +#: diff.c:3396 msgid "--follow requires exactly one pathspec" msgstr "--follow erfordert genau eine Pfadspezifikation" -#: diff.c:3557 +#: diff.c:3559 #, c-format msgid "" "Failed to parse --dirstat/-X option parameter:\n" @@ -554,16 +554,16 @@ msgstr "" "Fehler beim Parsen des --dirstat/-X Optionsparameters:\n" "%s" -#: diff.c:3571 +#: diff.c:3573 #, c-format msgid "Failed to parse --submodule option parameter: '%s'" msgstr "Fehler beim Parsen des --submodule Optionsparameters: '%s'" -#: dir.c:1853 +#: dir.c:1915 msgid "failed to get kernel name and information" msgstr "Fehler beim Sammeln von Namen und Informationen zum Kernel" -#: dir.c:1936 +#: dir.c:1998 msgid "Untracked cache is disabled on this system." msgstr "Cache für unversionierte Dateien ist auf diesem System deaktiviert." @@ -592,7 +592,7 @@ msgstr "Fehler beim Schreiben der Signatur nach '%s': %s" #: grep.c:1718 #, c-format msgid "'%s': unable to read %s" -msgstr "'%s': konnte nicht lesen %s" +msgstr "'%s': konnte %s nicht lesen" #: grep.c:1735 #, c-format @@ -672,8 +672,8 @@ msgstr "%s: %s - %s" msgid "failed to read the cache" msgstr "Lesen des Zwischenspeichers fehlgeschlagen" -#: merge.c:94 builtin/am.c:2001 builtin/am.c:2036 builtin/checkout.c:375 -#: builtin/checkout.c:586 builtin/clone.c:715 +#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376 +#: builtin/checkout.c:587 builtin/clone.c:722 msgid "unable to write new index file" msgstr "Konnte neue Index-Datei nicht schreiben." @@ -691,64 +691,64 @@ msgstr "addinfo_cache für Pfad '%s' fehlgeschlagen" msgid "error building trees" msgstr "Fehler beim Erstellen der \"Tree\"-Objekte" -#: merge-recursive.c:687 +#: merge-recursive.c:686 #, c-format msgid "failed to create path '%s'%s" msgstr "Fehler beim Erstellen des Pfades '%s'%s" -#: merge-recursive.c:698 +#: merge-recursive.c:697 #, c-format msgid "Removing %s to make room for subdirectory\n" msgstr "Entferne %s, um Platz für Unterverzeichnis zu schaffen\n" -#: merge-recursive.c:712 merge-recursive.c:733 +#: merge-recursive.c:711 merge-recursive.c:732 msgid ": perhaps a D/F conflict?" msgstr ": vielleicht ein Verzeichnis/Datei-Konflikt?" -#: merge-recursive.c:723 +#: merge-recursive.c:722 #, c-format msgid "refusing to lose untracked file at '%s'" msgstr "verweigere, da unversionierte Dateien in '%s' verloren gehen würden" -#: merge-recursive.c:763 +#: merge-recursive.c:762 #, c-format msgid "cannot read object %s '%s'" msgstr "kann Objekt %s '%s' nicht lesen" -#: merge-recursive.c:765 +#: merge-recursive.c:764 #, c-format msgid "blob expected for %s '%s'" msgstr "Blob erwartet für %s '%s'" -#: merge-recursive.c:788 builtin/clone.c:364 +#: merge-recursive.c:787 builtin/clone.c:369 #, c-format msgid "failed to open '%s'" msgstr "Fehler beim Öffnen von '%s'" -#: merge-recursive.c:796 +#: merge-recursive.c:795 #, c-format msgid "failed to symlink '%s'" msgstr "Fehler beim Erstellen einer symbolischen Verknüpfung für '%s'" -#: merge-recursive.c:799 +#: merge-recursive.c:798 #, c-format 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:937 +#: merge-recursive.c:936 msgid "Failed to execute internal merge" msgstr "Fehler bei Ausführung des internen Merges" -#: merge-recursive.c:941 +#: merge-recursive.c:940 #, c-format msgid "Unable to add %s to database" msgstr "Konnte %s nicht zur Datenbank hinzufügen" -#: merge-recursive.c:957 +#: merge-recursive.c:956 msgid "unsupported object type in the tree" msgstr "nicht unterstützter Objekttyp im Verzeichnis" -#: merge-recursive.c:1032 merge-recursive.c:1046 +#: merge-recursive.c:1031 merge-recursive.c:1045 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -757,7 +757,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:1038 merge-recursive.c:1051 +#: merge-recursive.c:1037 merge-recursive.c:1050 #, c-format msgid "" "CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " @@ -766,20 +766,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:1092 +#: merge-recursive.c:1091 msgid "rename" msgstr "umbenennen" -#: merge-recursive.c:1092 +#: merge-recursive.c:1091 msgid "renamed" msgstr "umbenannt" -#: merge-recursive.c:1148 +#: merge-recursive.c:1147 #, 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:1170 +#: merge-recursive.c:1169 #, c-format msgid "" "CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" @@ -788,148 +788,148 @@ msgstr "" "KONFLIKT (umbenennen/umbenennen): Benenne um \"%s\"->\"%s\" in Branch \"%s\" " "und \"%s\"->\"%s\" in Branch \"%s\"%s" -#: merge-recursive.c:1175 +#: merge-recursive.c:1174 msgid " (left unresolved)" msgstr " (bleibt unaufgelöst)" -#: merge-recursive.c:1229 +#: merge-recursive.c:1228 #, 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:1259 +#: merge-recursive.c:1258 #, 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:1458 +#: merge-recursive.c:1457 #, 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:1468 +#: merge-recursive.c:1467 #, c-format msgid "Adding merged %s" msgstr "Füge zusammengeführte Datei %s hinzu" -#: merge-recursive.c:1473 merge-recursive.c:1671 +#: merge-recursive.c:1472 merge-recursive.c:1674 #, c-format msgid "Adding as %s instead" msgstr "Füge stattdessen als %s hinzu" -#: merge-recursive.c:1524 +#: merge-recursive.c:1523 #, c-format msgid "cannot read object %s" msgstr "kann Objekt %s nicht lesen" -#: merge-recursive.c:1527 +#: merge-recursive.c:1526 #, c-format msgid "object %s is not a blob" msgstr "Objekt %s ist kein Blob" -#: merge-recursive.c:1575 +#: merge-recursive.c:1578 msgid "modify" msgstr "ändern" -#: merge-recursive.c:1575 +#: merge-recursive.c:1578 msgid "modified" msgstr "geändert" -#: merge-recursive.c:1585 +#: merge-recursive.c:1588 msgid "content" msgstr "Inhalt" -#: merge-recursive.c:1592 +#: merge-recursive.c:1595 msgid "add/add" msgstr "hinzufügen/hinzufügen" -#: merge-recursive.c:1626 +#: merge-recursive.c:1629 #, c-format msgid "Skipped %s (merged same as existing)" msgstr "%s ausgelassen (Ergebnis des Merges existiert bereits)" -#: merge-recursive.c:1640 +#: merge-recursive.c:1643 #, c-format msgid "Auto-merging %s" msgstr "automatischer Merge von %s" -#: merge-recursive.c:1644 git-submodule.sh:1150 +#: merge-recursive.c:1647 git-submodule.sh:1025 msgid "submodule" msgstr "Submodul" -#: merge-recursive.c:1645 +#: merge-recursive.c:1648 #, c-format msgid "CONFLICT (%s): Merge conflict in %s" msgstr "KONFLIKT (%s): Merge-Konflikt in %s" -#: merge-recursive.c:1731 +#: merge-recursive.c:1734 #, c-format msgid "Removing %s" msgstr "Entferne %s" -#: merge-recursive.c:1756 +#: merge-recursive.c:1759 msgid "file/directory" msgstr "Datei/Verzeichnis" -#: merge-recursive.c:1762 +#: merge-recursive.c:1765 msgid "directory/file" msgstr "Verzeichnis/Datei" -#: merge-recursive.c:1767 +#: merge-recursive.c:1770 #, 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:1777 +#: merge-recursive.c:1780 #, c-format msgid "Adding %s" msgstr "Füge %s hinzu" -#: merge-recursive.c:1794 +#: merge-recursive.c:1797 msgid "Fatal merge failure, shouldn't happen." msgstr "Fataler Merge-Fehler. Sollte nicht passieren." -#: merge-recursive.c:1813 +#: merge-recursive.c:1816 msgid "Already up-to-date!" msgstr "Bereits aktuell!" -#: merge-recursive.c:1822 +#: merge-recursive.c:1825 #, c-format msgid "merging of trees %s and %s failed" msgstr "Zusammenführen der \"Tree\"-Objekte %s und %s fehlgeschlagen" -#: merge-recursive.c:1852 +#: merge-recursive.c:1855 #, c-format msgid "Unprocessed path??? %s" msgstr "unverarbeiteter Pfad??? %s" -#: merge-recursive.c:1900 +#: merge-recursive.c:1903 msgid "Merging:" msgstr "Merge:" -#: merge-recursive.c:1913 +#: merge-recursive.c:1916 #, c-format msgid "found %u common ancestor:" msgid_plural "found %u common ancestors:" msgstr[0] "%u gemeinsamen Vorgänger-Commit gefunden" msgstr[1] "%u gemeinsame Vorgänger-Commits gefunden" -#: merge-recursive.c:1950 +#: merge-recursive.c:1953 msgid "merge returned no commit" msgstr "Merge hat keinen Commit zurückgegeben" -#: merge-recursive.c:2007 +#: merge-recursive.c:2010 #, c-format msgid "Could not parse object '%s'" msgstr "Konnte Objekt '%s' nicht parsen." -#: merge-recursive.c:2018 builtin/merge.c:645 +#: merge-recursive.c:2021 builtin/merge.c:645 msgid "Unable to write index." msgstr "Konnte Index nicht schreiben." @@ -961,31 +961,41 @@ msgstr "Ungültiger %s Wert: '%s'" msgid "unable to parse object: %s" msgstr "Konnte Objekt '%s' nicht parsen." -#: parse-options.c:563 +#: parse-options.c:570 msgid "..." msgstr "..." -#: parse-options.c:581 +#: parse-options.c:588 #, c-format msgid "usage: %s" msgstr "Verwendung: %s" #. TRANSLATORS: the colon here should align with the #. one in "usage: %s" translation -#: parse-options.c:585 +#: parse-options.c:592 #, c-format msgid " or: %s" msgstr " oder: %s" -#: parse-options.c:588 +#: parse-options.c:595 #, c-format msgid " %s" msgstr " %s" -#: parse-options.c:622 +#: parse-options.c:629 msgid "-NUM" msgstr "-NUM" +#: parse-options-cb.c:108 +#, c-format +msgid "malformed object name '%s'" +msgstr "fehlerhafter Objekt-Name '%s'" + +#: path.c:752 +#, c-format +msgid "Could not make %s writable by group" +msgstr "Konnte Gruppenschreibrecht für %s nicht setzen." + #: pathspec.c:133 msgid "global 'glob' and 'noglob' pathspec settings are incompatible" msgstr "" @@ -1057,11 +1067,11 @@ msgstr "" msgid "unable to parse --pretty format" msgstr "Konnte --pretty Format nicht parsen." -#: progress.c:236 +#: progress.c:235 msgid "done" msgstr "Fertig" -#: read-cache.c:1296 +#: read-cache.c:1281 #, c-format msgid "" "index.version set, but the value is invalid.\n" @@ -1070,7 +1080,7 @@ msgstr "" "index.version gesetzt, aber Wert ungültig.\n" "Verwende Version %i" -#: read-cache.c:1306 +#: read-cache.c:1291 #, c-format msgid "" "GIT_INDEX_VERSION set, but the value is invalid.\n" @@ -1079,121 +1089,166 @@ msgstr "" "GIT_INDEX_VERSION gesetzt, aber Wert ungültig.\n" "Verwende Version %i" -#: refs.c:2941 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973 +#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973 #: builtin/merge.c:983 #, c-format msgid "Could not open '%s' for writing" msgstr "Konnte '%s' nicht zum Schreiben öffnen." -#: refs.c:3001 +#: refs/files-backend.c:2359 #, c-format msgid "could not delete reference %s: %s" msgstr "Konnte Referenz %s nicht entfernen: %s" -#: refs.c:3004 +#: refs/files-backend.c:2362 #, c-format msgid "could not delete references: %s" msgstr "Konnte Referenzen nicht entfernen: %s" -#: refs.c:3013 +#: refs/files-backend.c:2371 #, c-format msgid "could not remove reference %s" msgstr "Konnte Referenz %s nicht löschen" -#: ref-filter.c:660 +#: ref-filter.c:245 +#, c-format +msgid "format: %%(end) atom used without corresponding atom" +msgstr "Format: %%(end) Atom ohne zugehöriges Atom verwendet" + +#: ref-filter.c:704 +#, c-format +msgid "positive value expected contents:lines=%s" +msgstr "Positiver Wert erwartet contents:lines=%s" + +#: ref-filter.c:833 +#, c-format +msgid "expected format: %%(color:<color>)" +msgstr "Erwartetes Format: %%(color:<Farbe>)" + +#: ref-filter.c:835 msgid "unable to parse format" msgstr "Konnte Format nicht parsen." -#: remote.c:792 +#: ref-filter.c:870 +#, c-format +msgid "expected format: %%(align:<width>,<position>)" +msgstr "Erwartetes Format: %%(align:<Breite>,<Position>)" + +#: ref-filter.c:893 +#, c-format +msgid "improper format entered align:%s" +msgstr "Sie haben ein ungültiges Format eingegeben align:%s" + +#: ref-filter.c:898 +#, c-format +msgid "positive width expected with the %%(align) atom" +msgstr "Positive Breitenangabe für %%(align) erwartet" + +#: ref-filter.c:1219 +#, c-format +msgid "malformed object at '%s'" +msgstr "fehlerhaftes Objekt bei '%s'" + +#: ref-filter.c:1561 +#, c-format +msgid "format: %%(end) atom missing" +msgstr "Format: %%(end) Atom fehlt" + +#: ref-filter.c:1615 +#, c-format +msgid "malformed object name %s" +msgstr "Missgebildeter Objektname %s" + +#: remote.c:756 #, c-format msgid "Cannot fetch both %s and %s to %s" msgstr "Kann 'fetch' nicht für sowohl %s als auch %s nach %s ausführen." -#: remote.c:796 +#: remote.c:760 #, c-format msgid "%s usually tracks %s, not %s" msgstr "%s folgt üblicherweise %s, nicht %s" -#: remote.c:800 +#: remote.c:764 #, c-format msgid "%s tracks both %s and %s" msgstr "%s folgt sowohl %s als auch %s" -#: remote.c:808 +#: remote.c:772 msgid "Internal error" msgstr "Interner Fehler" -#: remote.c:1723 remote.c:1766 +#: remote.c:1687 remote.c:1730 msgid "HEAD does not point to a branch" msgstr "HEAD zeigt auf keinen Branch" -#: remote.c:1732 +#: remote.c:1696 #, c-format msgid "no such branch: '%s'" msgstr "Kein solcher Branch: '%s'" -#: remote.c:1735 +#: remote.c:1699 #, c-format msgid "no upstream configured for branch '%s'" msgstr "Kein Upstream-Branch für Branch '%s' konfiguriert." -#: remote.c:1741 +#: remote.c:1705 #, c-format msgid "upstream branch '%s' not stored as a remote-tracking branch" msgstr "Upstream-Branch '%s' nicht als Remote-Tracking-Branch gespeichert" -#: remote.c:1756 +#: remote.c:1720 #, c-format msgid "push destination '%s' on remote '%s' has no local tracking branch" msgstr "" "Ziel für \"push\" '%s' auf Remote-Repository '%s' hat keinen lokal gefolgten " "Branch" -#: remote.c:1771 +#: remote.c:1735 #, c-format msgid "branch '%s' has no remote for pushing" msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt" -#: remote.c:1782 +#: remote.c:1746 #, c-format msgid "push refspecs for '%s' do not include '%s'" msgstr "Push-Refspecs für '%s' beinhalten nicht '%s'" -#: remote.c:1795 +#: remote.c:1759 msgid "push has no destination (push.default is 'nothing')" msgstr "kein Ziel für \"push\" (push.default ist 'nothing')" -#: remote.c:1817 +#: remote.c:1781 msgid "cannot resolve 'simple' push to a single destination" msgstr "kann einzelnes Ziel für \"push\" im Modus 'simple' nicht auflösen" -#: remote.c:2124 +#: remote.c:2083 #, c-format msgid "Your branch is based on '%s', but the upstream is gone.\n" msgstr "" "Ihr Branch basiert auf '%s', aber der Upstream-Branch wurde entfernt.\n" -#: remote.c:2128 +#: remote.c:2087 msgid " (use \"git branch --unset-upstream\" to fixup)\n" msgstr " (benutzen Sie \"git branch --unset-upstream\" zum Beheben)\n" -#: remote.c:2131 +#: remote.c:2090 #, c-format msgid "Your branch is up-to-date with '%s'.\n" msgstr "Ihr Branch ist auf dem selben Stand wie '%s'.\n" -#: remote.c:2135 +#: remote.c:2094 #, 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] "Ihr Branch ist vor '%s' um %d Commit.\n" msgstr[1] "Ihr Branch ist vor '%s' um %d Commits.\n" -#: remote.c:2141 +#: remote.c:2100 msgid " (use \"git push\" to publish your local commits)\n" msgstr " (benutzen Sie \"git push\", um lokale Commits zu publizieren)\n" -#: remote.c:2144 +#: remote.c:2103 #, c-format msgid "Your branch is behind '%s' by %d commit, and can be fast-forwarded.\n" msgid_plural "" @@ -1203,12 +1258,12 @@ msgstr[0] "" msgstr[1] "" "Ihr Branch ist zu '%s' um %d Commits hinterher, und kann vorgespult werden.\n" -#: remote.c:2152 +#: remote.c:2111 msgid " (use \"git pull\" to update your local branch)\n" msgstr "" " (benutzen Sie \"git pull\", um Ihren lokalen Branch zu aktualisieren)\n" -#: remote.c:2155 +#: remote.c:2114 #, c-format msgid "" "Your branch and '%s' have diverged,\n" @@ -1223,30 +1278,30 @@ msgstr[1] "" "Ihr Branch und '%s' sind divergiert,\n" "und haben jeweils %d und %d unterschiedliche Commits.\n" -#: remote.c:2165 +#: remote.c:2124 msgid " (use \"git pull\" to merge the remote branch into yours)\n" msgstr "" " (benutzen Sie \"git pull\", um Ihren Branch mit dem Remote-Branch " "zusammenzuführen)\n" -#: revision.c:2198 +#: revision.c:2193 msgid "your current branch appears to be broken" msgstr "Ihr aktueller Branch scheint fehlerhaft zu sein." -#: revision.c:2201 +#: revision.c:2196 #, c-format msgid "your current branch '%s' does not have any commits yet" msgstr "Ihr aktueller Branch '%s' hat noch keine Commits." -#: revision.c:2395 +#: revision.c:2390 msgid "--first-parent is incompatible with --bisect" msgstr "Die Optionen --first-parent und --bisect sind inkompatibel." -#: run-command.c:83 +#: run-command.c:90 msgid "open /dev/null failed" msgstr "Öffnen von /dev/null fehlgeschlagen" -#: run-command.c:85 +#: run-command.c:92 #, c-format msgid "dup2(%d,%d) failed" msgstr "dup2(%d,%d) fehlgeschlagen" @@ -1467,7 +1522,7 @@ msgstr "kann HEAD nicht auflösen" msgid "cannot abort from a branch yet to be born" msgstr "kann nicht abbrechen: bin auf einem Branch, der noch geboren wird" -#: sequencer.c:887 builtin/apply.c:4291 +#: sequencer.c:887 builtin/apply.c:4287 #, c-format msgid "cannot open %s: %s" msgstr "Kann %s nicht öffnen: %s" @@ -1509,12 +1564,12 @@ msgstr "Kann nicht als allerersten Commit einen Revert ausführen." msgid "Can't cherry-pick into empty head" msgstr "Kann nicht als allerersten Commit einen Cherry-Pick ausführen." -#: setup.c:243 +#: setup.c:248 #, c-format msgid "failed to read %s" msgstr "Fehler beim Lesen von %s" -#: sha1_name.c:453 +#: sha1_name.c:463 msgid "" "Git normally never creates a ref that ends with 40 hex characters\n" "because it will be ignored when you just specify 40-hex. These refs\n" @@ -1564,7 +1619,7 @@ msgstr "Konnte Eintrag '%s' nicht aus .gitmodules entfernen" msgid "staging updated .gitmodules failed" msgstr "Konnte aktualisierte .gitmodules-Datei nicht zum Commit vormerken" -#: submodule.c:1045 +#: submodule.c:1040 #, c-format msgid "Could not set core.worktree in %s" msgstr "Konnte core.worktree in '%s' nicht setzen." @@ -1575,7 +1630,7 @@ msgstr "Konnte core.worktree in '%s' nicht setzen." msgid "unknown value '%s' for key '%s'" msgstr "unbekannter Wert '%s' für Schlüssel %s" -#: trailer.c:543 trailer.c:548 builtin/remote.c:290 +#: trailer.c:543 trailer.c:548 builtin/remote.c:296 #, c-format msgid "more than one %s" msgstr "mehr als ein %s" @@ -1642,8 +1697,8 @@ msgstr "Konnte '%s' nicht zum Lesen und Schreiben öffnen." msgid "could not open '%s' for writing" msgstr "Konnte '%s' nicht zum Schreiben öffnen." -#: wrapper.c:223 wrapper.c:366 builtin/am.c:337 builtin/commit.c:1688 -#: builtin/merge.c:1076 builtin/pull.c:380 +#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691 +#: builtin/merge.c:1074 builtin/pull.c:380 #, c-format msgid "could not open '%s' for reading" msgstr "Konnte '%s' nicht zum Lesen öffnen." @@ -1658,30 +1713,21 @@ msgstr "konnte nicht auf '%s' zugreifen: %s" msgid "unable to access '%s'" msgstr "konnte nicht auf '%s' zugreifen" -#: wrapper.c:611 -#, 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:612 -msgid "no such user" -msgstr "kein solcher Benutzer" - -#: wrapper.c:620 +#: wrapper.c:608 msgid "unable to get current working directory" msgstr "Konnte aktuelles Arbeitsverzeichnis nicht bekommen." -#: wrapper.c:631 +#: wrapper.c:635 #, c-format msgid "could not open %s for writing" msgstr "Konnte '%s' nicht zum Schreiben öffnen." -#: wrapper.c:642 builtin/am.c:424 +#: wrapper.c:646 builtin/am.c:425 #, c-format msgid "could not write to %s" msgstr "Konnte nicht nach '%s' schreiben." -#: wrapper.c:648 +#: wrapper.c:652 #, c-format msgid "could not close %s" msgstr "Konnte '%s' nicht schließen." @@ -2055,27 +2101,27 @@ msgstr "" " (benutzen Sie \"git bisect reset\", um zum ursprünglichen Branch " "zurückzukehren)" -#: wt-status.c:1437 +#: wt-status.c:1438 msgid "On branch " msgstr "Auf Branch " -#: wt-status.c:1445 +#: wt-status.c:1444 msgid "interactive rebase in progress; onto " msgstr "interaktives Rebase im Gange; auf " -#: wt-status.c:1447 +#: wt-status.c:1446 msgid "rebase in progress; onto " msgstr "Rebase im Gange; auf " -#: wt-status.c:1452 +#: wt-status.c:1451 msgid "HEAD detached at " msgstr "HEAD losgelöst bei " -#: wt-status.c:1454 +#: wt-status.c:1453 msgid "HEAD detached from " msgstr "HEAD losgelöst von " -#: wt-status.c:1457 +#: wt-status.c:1456 msgid "Not currently on any branch." msgstr "Im Moment auf keinem Branch." @@ -2165,23 +2211,23 @@ msgstr "" msgid "nothing to commit, working directory clean\n" msgstr "nichts zu committen, Arbeitsverzeichnis unverändert\n" -#: wt-status.c:1644 -msgid "HEAD (no branch)" -msgstr "HEAD (kein Branch)" - -#: wt-status.c:1650 +#: wt-status.c:1642 msgid "Initial commit on " msgstr "Initialer Commit auf " -#: wt-status.c:1677 +#: wt-status.c:1646 +msgid "HEAD (no branch)" +msgstr "HEAD (kein Branch)" + +#: wt-status.c:1675 msgid "gone" msgstr "entfernt" -#: wt-status.c:1679 wt-status.c:1687 +#: wt-status.c:1677 wt-status.c:1685 msgid "behind " msgstr "hinterher " -#: compat/precompose_utf8.c:55 builtin/clone.c:403 +#: compat/precompose_utf8.c:56 builtin/clone.c:408 #, c-format msgid "failed to unlink '%s'" msgstr "Konnte '%s' nicht entfernen." @@ -2195,7 +2241,7 @@ msgstr "git add [<Optionen>] [--] <Pfadspezifikation>..." msgid "unexpected diff status %c" msgstr "unerwarteter Differenz-Status %c" -#: builtin/add.c:70 builtin/commit.c:277 +#: builtin/add.c:70 builtin/commit.c:278 msgid "updating files failed" msgstr "Aktualisierung der Dateien fehlgeschlagen" @@ -2209,7 +2255,7 @@ msgid "Unstaged changes after refreshing the index:" msgstr "" "Nicht zum Commit vorgemerkte Änderungen nach Aktualisierung der Staging-Area:" -#: builtin/add.c:194 builtin/rev-parse.c:799 +#: builtin/add.c:194 builtin/rev-parse.c:796 msgid "Could not read the index" msgstr "Konnte den Index nicht lesen" @@ -2246,15 +2292,15 @@ msgstr "" "Die folgenden Pfade werden durch eine Ihrer \".gitignore\" Dateien " "ignoriert:\n" -#: builtin/add.c:249 builtin/clean.c:896 builtin/fetch.c:108 builtin/mv.c:110 -#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:545 -#: builtin/remote.c:1339 builtin/rm.c:268 builtin/send-pack.c:162 +#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110 +#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543 +#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162 msgid "dry run" msgstr "Probelauf" -#: builtin/add.c:250 builtin/apply.c:4580 builtin/check-ignore.c:19 -#: builtin/commit.c:1321 builtin/count-objects.c:63 builtin/fsck.c:636 -#: builtin/log.c:1641 builtin/mv.c:109 builtin/read-tree.c:114 +#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19 +#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558 +#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114 msgid "be verbose" msgstr "erweiterte Ausgaben" @@ -2262,7 +2308,7 @@ msgstr "erweiterte Ausgaben" msgid "interactive picking" msgstr "interaktives Auswählen" -#: builtin/add.c:253 builtin/checkout.c:1152 builtin/reset.c:286 +#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286 msgid "select hunks interactively" msgstr "Blöcke interaktiv auswählen" @@ -2323,154 +2369,154 @@ msgid "Option --ignore-missing can only be used together with --dry-run" msgstr "" "Die Option --ignore-missing kann nur zusammen mit --dry-run verwendet werden." -#: builtin/add.c:358 +#: builtin/add.c:352 #, c-format msgid "Nothing specified, nothing added.\n" msgstr "Nichts spezifiziert, nichts hinzugefügt.\n" -#: builtin/add.c:359 +#: builtin/add.c:353 #, c-format msgid "Maybe you wanted to say 'git add .'?\n" msgstr "Meinten Sie vielleicht 'git add .'?\n" -#: builtin/add.c:364 builtin/check-ignore.c:172 builtin/clean.c:940 -#: builtin/commit.c:336 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298 +#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938 +#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298 +#: builtin/submodule--helper.c:40 msgid "index file corrupt" msgstr "Index-Datei beschädigt" -#: builtin/add.c:445 builtin/apply.c:4678 builtin/mv.c:279 builtin/rm.c:430 +#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430 msgid "Unable to write new index file" msgstr "Konnte neue Index-Datei nicht schreiben." -#: builtin/am.c:41 +#: builtin/am.c:42 #, c-format msgid "could not stat %s" msgstr "Konnte '%s' nicht lesen" -#: builtin/am.c:270 builtin/am.c:1345 builtin/commit.c:737 -#: builtin/merge.c:1079 +#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077 #, c-format msgid "could not read '%s'" msgstr "Konnte '%s' nicht lesen" -#: builtin/am.c:444 +#: builtin/am.c:445 msgid "could not parse author script" msgstr "konnte Autor-Skript nicht parsen" -#: builtin/am.c:521 +#: builtin/am.c:522 #, c-format msgid "'%s' was deleted by the applypatch-msg hook" msgstr "'%s' wurde durch den applypatch-msg Hook entfernt" -#: builtin/am.c:562 builtin/notes.c:300 +#: builtin/am.c:563 builtin/notes.c:300 #, c-format msgid "Malformed input line: '%s'." msgstr "Fehlerhafte Eingabezeile: '%s'." -#: builtin/am.c:599 builtin/notes.c:315 +#: builtin/am.c:600 builtin/notes.c:315 #, c-format msgid "Failed to copy notes from '%s' to '%s'" msgstr "Fehler beim Kopieren der Notizen von '%s' nach '%s'" -#: builtin/am.c:625 +#: builtin/am.c:626 msgid "fseek failed" msgstr "\"fseek\" fehlgeschlagen" -#: builtin/am.c:786 builtin/am.c:874 +#: builtin/am.c:787 builtin/am.c:875 #, c-format msgid "could not open '%s' for reading: %s" msgstr "Konnte '%s' nicht zum Lesen öffnen: %s" -#: builtin/am.c:793 +#: builtin/am.c:794 #, c-format msgid "could not open '%s' for writing: %s" msgstr "Konnte '%s' nicht zum Schreiben öffnen: %s" -#: builtin/am.c:802 +#: builtin/am.c:803 #, c-format msgid "could not parse patch '%s'" msgstr "konnte Patch '%s' nicht parsen" -#: builtin/am.c:867 +#: builtin/am.c:868 msgid "Only one StGIT patch series can be applied at once" msgstr "Es kann nur eine StGIT Patch-Serie auf einmal angewendet werden." -#: builtin/am.c:915 +#: builtin/am.c:916 msgid "invalid timestamp" msgstr "ungültiger Zeitstempel" -#: builtin/am.c:918 builtin/am.c:926 +#: builtin/am.c:919 builtin/am.c:927 msgid "invalid Date line" msgstr "Ungültige \"Date\"-Zeile" -#: builtin/am.c:923 +#: builtin/am.c:924 msgid "invalid timezone offset" msgstr "Ungültiger Offset in der Zeitzone" -#: builtin/am.c:1010 +#: builtin/am.c:1011 msgid "Patch format detection failed." msgstr "Patch-Formaterkennung fehlgeschlagen." -#: builtin/am.c:1015 builtin/clone.c:368 +#: builtin/am.c:1016 builtin/clone.c:373 #, c-format msgid "failed to create directory '%s'" msgstr "Fehler beim Erstellen von Verzeichnis '%s'" -#: builtin/am.c:1019 +#: builtin/am.c:1020 msgid "Failed to split patches." msgstr "Fehler beim Aufteilen der Patches." -#: builtin/am.c:1151 builtin/commit.c:362 +#: builtin/am.c:1152 builtin/commit.c:363 msgid "unable to write index file" msgstr "Konnte Index-Datei nicht schreiben." -#: builtin/am.c:1202 +#: builtin/am.c:1203 #, c-format msgid "When you have resolved this problem, run \"%s --continue\"." msgstr "" "Wenn Sie das Problem aufgelöst haben, führen Sie \"%s --continue\" aus." -#: builtin/am.c:1203 +#: builtin/am.c:1204 #, c-format msgid "If you prefer to skip this patch, run \"%s --skip\" instead." msgstr "" "Falls Sie diesen Patch auslassen möchten, führen Sie stattdessen \"%s --skip" "\" aus." -#: builtin/am.c:1204 +#: builtin/am.c:1205 #, c-format msgid "To restore the original branch and stop patching, run \"%s --abort\"." msgstr "" "Um den ursprünglichen Branch wiederherzustellen und die Anwendung der " "Patches abzubrechen, führen Sie \"%s --abort\" aus." -#: builtin/am.c:1339 +#: builtin/am.c:1343 msgid "Patch is empty. Was it split wrong?" msgstr "Patch ist leer. War dessen Aufteilung falsch?" -#: builtin/am.c:1413 builtin/log.c:1345 +#: builtin/am.c:1417 builtin/log.c:1347 #, c-format msgid "invalid ident line: %s" msgstr "Ungültige Identifikationszeile: %s" -#: builtin/am.c:1440 +#: builtin/am.c:1444 #, c-format msgid "unable to parse commit %s" msgstr "Konnte Commit '%s' nicht parsen." -#: builtin/am.c:1614 +#: builtin/am.c:1646 msgid "Repository lacks necessary blobs to fall back on 3-way merge." msgstr "" "Dem Repository fehlen notwendige Blobs um auf einen 3-Wege-Merge " "zurückzufallen." -#: builtin/am.c:1616 +#: builtin/am.c:1648 msgid "Using index info to reconstruct a base tree..." msgstr "" "Verwende Informationen aus der Staging-Area, um ein Basisverzeichnis " "nachzustellen ..." -#: builtin/am.c:1635 +#: builtin/am.c:1667 msgid "" "Did you hand edit your patch?\n" "It does not apply to blobs recorded in its index." @@ -2478,39 +2524,39 @@ msgstr "" "Haben Sie den Patch per Hand editiert?\n" "Er kann nicht auf die Blobs in seiner 'index' Zeile angewendet werden." -#: builtin/am.c:1641 +#: builtin/am.c:1673 msgid "Falling back to patching base and 3-way merge..." msgstr "Falle zurück zum Patchen der Basis und zum 3-Wege-Merge ..." -#: builtin/am.c:1666 +#: builtin/am.c:1688 msgid "Failed to merge in the changes." msgstr "Merge der Änderungen fehlgeschlagen." -#: builtin/am.c:1691 builtin/merge.c:632 +#: builtin/am.c:1712 builtin/merge.c:632 msgid "git write-tree failed to write a tree" msgstr "\"git write-tree\" schlug beim Schreiben eines \"Tree\"-Objektes fehl" -#: builtin/am.c:1698 +#: builtin/am.c:1719 msgid "applying to an empty history" msgstr "auf leere Historie anwenden" -#: builtin/am.c:1711 builtin/commit.c:1752 builtin/merge.c:829 +#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829 #: builtin/merge.c:854 msgid "failed to write commit object" msgstr "Fehler beim Schreiben des Commit-Objektes." -#: builtin/am.c:1743 builtin/am.c:1747 +#: builtin/am.c:1764 builtin/am.c:1768 #, c-format msgid "cannot resume: %s does not exist." msgstr "Kann nicht fortsetzen: %s existiert nicht" -#: builtin/am.c:1763 +#: builtin/am.c:1784 msgid "cannot be interactive without stdin connected to a terminal." msgstr "" "Kann nicht interaktiv sein, ohne dass die Standard-Eingabe mit einem " "Terminal verbunden ist." -#: builtin/am.c:1768 +#: builtin/am.c:1789 msgid "Commit Body is:" msgstr "Commit-Beschreibung ist:" @@ -2518,35 +2564,35 @@ msgstr "Commit-Beschreibung ist:" #. in your translation. The program will only accept English #. input at this point. #. -#: builtin/am.c:1778 +#: builtin/am.c:1799 msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: " msgstr "Anwenden? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: " -#: builtin/am.c:1828 +#: builtin/am.c:1849 #, c-format msgid "Dirty index: cannot apply patches (dirty: %s)" msgstr "Geänderter Index: kann Patches nicht anwenden (geändert: %s)" -#: builtin/am.c:1863 builtin/am.c:1934 +#: builtin/am.c:1884 builtin/am.c:1955 #, c-format msgid "Applying: %.*s" msgstr "Wende an: %.*s" -#: builtin/am.c:1879 +#: builtin/am.c:1900 msgid "No changes -- Patch already applied." msgstr "Keine Änderungen -- Patches bereits angewendet." -#: builtin/am.c:1887 +#: builtin/am.c:1908 #, c-format msgid "Patch failed at %s %.*s" msgstr "Anwendung des Patches fehlgeschlagen bei %s %.*s" -#: builtin/am.c:1893 +#: builtin/am.c:1914 #, c-format msgid "The copy of the patch that failed is found in: %s" msgstr "Die Kopie des fehlgeschlagenen Patches befindet sich in: %s" -#: builtin/am.c:1937 +#: builtin/am.c:1958 msgid "" "No changes - did you forget to use 'git add'?\n" "If there is nothing left to stage, chances are that something else\n" @@ -2557,7 +2603,7 @@ msgstr "" "diese bereits anderweitig eingefügt worden sein; Sie könnten diesen Patch\n" "auslassen." -#: builtin/am.c:1944 +#: builtin/am.c:1965 msgid "" "You still have unmerged paths in your index.\n" "Did you forget to use 'git add'?" @@ -2565,17 +2611,17 @@ msgstr "" "Sie haben immer noch nicht zusammengeführte Pfade im Index.\n" "Haben Sie vergessen 'git add' zu benutzen?" -#: builtin/am.c:2052 builtin/am.c:2056 builtin/am.c:2068 builtin/reset.c:308 +#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308 #: builtin/reset.c:316 #, c-format msgid "Could not parse object '%s'." msgstr "Konnte Objekt '%s' nicht parsen." -#: builtin/am.c:2104 +#: builtin/am.c:2125 msgid "failed to clean index" msgstr "Fehler beim Bereinigen des Index" -#: builtin/am.c:2138 +#: builtin/am.c:2159 msgid "" "You seem to have moved HEAD since the last 'am' failure.\n" "Not rewinding to ORIG_HEAD" @@ -2583,151 +2629,153 @@ msgstr "" "Sie scheinen seit dem letzten gescheiterten 'am' HEAD geändert zu haben.\n" "Keine Zurücksetzung zu ORIG_HEAD." -#: builtin/am.c:2199 +#: builtin/am.c:2220 #, c-format msgid "Invalid value for --patch-format: %s" msgstr "Ungültiger Wert für --patch-format: %s" -#: builtin/am.c:2221 -msgid "git am [options] [(<mbox>|<Maildir>)...]" -msgstr "git am [Optionen] [(<mbox>|<E-Mail-Verzeichnis>)...]" +#: builtin/am.c:2253 +msgid "git am [<options>] [(<mbox>|<Maildir>)...]" +msgstr "git am [<Optionen>] [(<mbox>|<E-Mail-Verzeichnis>)...]" -#: builtin/am.c:2222 -msgid "git am [options] (--continue | --skip | --abort)" -msgstr "git am [Optionen] (--continue | --skip | --abort)" +#: builtin/am.c:2254 +msgid "git am [<options>] (--continue | --skip | --abort)" +msgstr "git am [<Optionen>] (--continue | --skip | --abort)" -#: builtin/am.c:2228 +#: builtin/am.c:2260 msgid "run interactively" msgstr "interaktiv ausführen" -#: builtin/am.c:2230 +#: builtin/am.c:2262 msgid "historical option -- no-op" msgstr "historische Option -- kein Effekt" -#: builtin/am.c:2232 +#: builtin/am.c:2264 msgid "allow fall back on 3way merging if needed" msgstr "erlaube, falls notwendig, das Zurückfallen auf einen 3-Wege-Merge" -#: builtin/am.c:2233 builtin/init-db.c:509 builtin/prune-packed.c:57 +#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57 #: builtin/repack.c:171 msgid "be quiet" msgstr "weniger Ausgaben" -#: builtin/am.c:2235 +#: builtin/am.c:2267 msgid "add a Signed-off-by line to the commit message" msgstr "der Commit-Beschreibung eine Signed-off-by Zeile hinzufügen" -#: builtin/am.c:2238 +#: builtin/am.c:2270 msgid "recode into utf8 (default)" msgstr "nach UTF-8 umkodieren (Standard)" -#: builtin/am.c:2240 +#: builtin/am.c:2272 msgid "pass -k flag to git-mailinfo" msgstr "-k an git-mailinfo übergeben" -#: builtin/am.c:2242 +#: builtin/am.c:2274 msgid "pass -b flag to git-mailinfo" msgstr "-b an git-mailinfo übergeben" -#: builtin/am.c:2244 +#: builtin/am.c:2276 msgid "pass -m flag to git-mailinfo" msgstr "-m an git-mailinfo übergeben" -#: builtin/am.c:2246 +#: builtin/am.c:2278 msgid "pass --keep-cr flag to git-mailsplit for mbox format" msgstr "--keep-cr an git-mailsplit für mbox-Format übergeben" -#: builtin/am.c:2249 +#: builtin/am.c:2281 msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr" msgstr "kein --keep-cr an git-mailsplit übergeben, unabhängig von am.keepcr" -#: builtin/am.c:2252 +#: builtin/am.c:2284 msgid "strip everything before a scissors line" msgstr "alles vor einer Scheren-Zeile entfernen" -#: builtin/am.c:2253 builtin/apply.c:4563 +#: builtin/am.c:2285 builtin/apply.c:4554 msgid "action" msgstr "Aktion" -#: builtin/am.c:2254 builtin/am.c:2257 builtin/am.c:2260 builtin/am.c:2263 -#: builtin/am.c:2266 builtin/am.c:2269 builtin/am.c:2272 builtin/am.c:2275 -#: builtin/am.c:2281 +#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295 +#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307 +#: builtin/am.c:2313 msgid "pass it through git-apply" msgstr "an git-apply übergeben" -#: builtin/am.c:2262 builtin/apply.c:4587 +#: builtin/am.c:2294 builtin/apply.c:4578 msgid "root" msgstr "Wurzelverzeichnis" -#: builtin/am.c:2265 builtin/am.c:2268 builtin/apply.c:4525 -#: builtin/apply.c:4528 builtin/clone.c:85 builtin/fetch.c:93 -#: builtin/pull.c:167 +#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516 +#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93 +#: builtin/pull.c:167 builtin/submodule--helper.c:78 +#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169 msgid "path" msgstr "Pfad" -#: builtin/am.c:2271 builtin/fmt-merge-msg.c:669 builtin/fmt-merge-msg.c:672 -#: builtin/grep.c:698 builtin/merge.c:198 builtin/pull.c:127 -#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:664 -#: builtin/show-ref.c:180 builtin/tag.c:591 parse-options.h:132 -#: parse-options.h:134 parse-options.h:243 +#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669 +#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127 +#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645 +#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132 +#: parse-options.h:134 parse-options.h:244 msgid "n" msgstr "Anzahl" -#: builtin/am.c:2274 builtin/apply.c:4531 +#: builtin/am.c:2306 builtin/apply.c:4522 msgid "num" msgstr "Anzahl" -#: builtin/am.c:2277 builtin/for-each-ref.c:34 builtin/replace.c:438 +#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438 +#: builtin/tag.c:372 msgid "format" msgstr "Format" -#: builtin/am.c:2278 +#: builtin/am.c:2310 msgid "format the patch(es) are in" msgstr "Patch-Format" -#: builtin/am.c:2284 +#: builtin/am.c:2316 msgid "override error message when patch failure occurs" msgstr "Meldung bei fehlerhafter Patch-Anwendung überschreiben" -#: builtin/am.c:2286 +#: builtin/am.c:2318 msgid "continue applying patches after resolving a conflict" msgstr "Anwendung der Patches nach Auflösung eines Konfliktes fortsetzen" -#: builtin/am.c:2289 +#: builtin/am.c:2321 msgid "synonyms for --continue" msgstr "Synonyme für --continue" -#: builtin/am.c:2292 +#: builtin/am.c:2324 msgid "skip the current patch" msgstr "den aktuellen Patch auslassen" -#: builtin/am.c:2295 +#: builtin/am.c:2327 msgid "restore the original branch and abort the patching operation." msgstr "" "ursprünglichen Branch wiederherstellen und Anwendung der Patches abbrechen" -#: builtin/am.c:2299 +#: builtin/am.c:2331 msgid "lie about committer date" msgstr "Autor-Datum als Commit-Datum verwenden" -#: builtin/am.c:2301 +#: builtin/am.c:2333 msgid "use current timestamp for author date" msgstr "aktuellen Zeitstempel als Autor-Datum verwenden" -#: builtin/am.c:2303 builtin/commit.c:1590 builtin/merge.c:225 -#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:606 +#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225 +#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355 msgid "key-id" msgstr "GPG-Schlüsselkennung" -#: builtin/am.c:2304 +#: builtin/am.c:2336 msgid "GPG-sign commits" msgstr "Commits mit GPG signieren" -#: builtin/am.c:2307 +#: builtin/am.c:2339 msgid "(internal use for git-rebase)" msgstr "(intern für git-rebase verwendet)" -#: builtin/am.c:2322 +#: builtin/am.c:2354 msgid "" "The -b/--binary option has been a no-op for long time, and\n" "it will be removed. Please do not use it anymore." @@ -2735,16 +2783,16 @@ msgstr "" "Die -b/--binary Option hat seit Langem keinen Effekt und wird\n" "entfernt. Bitte verwenden Sie diese nicht mehr." -#: builtin/am.c:2329 +#: builtin/am.c:2361 msgid "failed to read the index" msgstr "Fehler beim Lesen des Index" -#: builtin/am.c:2344 +#: builtin/am.c:2376 #, c-format msgid "previous rebase directory %s still exists but mbox given." msgstr "Vorheriges Rebase-Verzeichnis %s existiert noch, aber mbox gegeben." -#: builtin/am.c:2368 +#: builtin/am.c:2400 #, c-format msgid "" "Stray %s directory found.\n" @@ -2753,7 +2801,7 @@ msgstr "" "Stray %s Verzeichnis gefunden.\n" "Benutzen Sie \"git am --abort\", um es zu entfernen." -#: builtin/am.c:2374 +#: builtin/am.c:2406 msgid "Resolve operation not in progress, we are not resuming." msgstr "Es ist keine Auflösung im Gange, es wird nicht fortgesetzt." @@ -2761,66 +2809,66 @@ msgstr "Es ist keine Auflösung im Gange, es wird nicht fortgesetzt." msgid "git apply [<options>] [<patch>...]" msgstr "git apply [<Optionen>] [<Patch>...]" -#: builtin/apply.c:112 +#: builtin/apply.c:111 #, c-format msgid "unrecognized whitespace option '%s'" msgstr "nicht erkannte Whitespace-Option: '%s'" -#: builtin/apply.c:127 +#: builtin/apply.c:126 #, c-format msgid "unrecognized whitespace ignore option '%s'" msgstr "nicht erkannte Option zum Ignorieren von Whitespace: '%s'" -#: builtin/apply.c:822 +#: builtin/apply.c:818 #, c-format msgid "Cannot prepare timestamp regexp %s" msgstr "Kann regulären Ausdruck für Zeitstempel %s nicht verarbeiten" -#: builtin/apply.c:831 +#: builtin/apply.c:827 #, c-format msgid "regexec returned %d for input: %s" msgstr "Ausführung des regulären Ausdrucks gab %d zurück. Eingabe: %s" -#: builtin/apply.c:912 +#: builtin/apply.c:908 #, c-format msgid "unable to find filename in patch at line %d" msgstr "Konnte keinen Dateinamen in Zeile %d des Patches finden." -#: builtin/apply.c:944 +#: builtin/apply.c:940 #, c-format msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d" msgstr "" "git apply: ungültiges 'git-diff' - erwartete /dev/null, erhielt %s in Zeile " "%d" -#: builtin/apply.c:948 +#: builtin/apply.c:944 #, c-format msgid "git apply: bad git-diff - inconsistent new filename on line %d" msgstr "" "git apply: ungültiges 'git-diff' - Inkonsistenter neuer Dateiname in Zeile %d" -#: builtin/apply.c:949 +#: builtin/apply.c:945 #, c-format msgid "git apply: bad git-diff - inconsistent old filename on line %d" msgstr "" "git apply: ungültiges 'git-diff' - Inkonsistenter alter Dateiname in Zeile %d" -#: builtin/apply.c:956 +#: builtin/apply.c:952 #, c-format 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:1419 +#: builtin/apply.c:1415 #, c-format msgid "recount: unexpected line: %.*s" msgstr "recount: unerwartete Zeile: %.*s" -#: builtin/apply.c:1476 +#: builtin/apply.c:1472 #, c-format msgid "patch fragment without header at line %d: %.*s" msgstr "Patch-Fragment ohne Kopfbereich bei Zeile %d: %.*s" -#: builtin/apply.c:1493 +#: builtin/apply.c:1489 #, c-format msgid "" "git diff header lacks filename information when removing %d leading pathname " @@ -2835,65 +2883,65 @@ msgstr[1] "" "Dem Kopfbereich von \"git diff\" fehlen Informationen zum Dateinamen, wenn " "%d vorangestellte Teile des Pfades entfernt werden (Zeile %d)" -#: builtin/apply.c:1659 +#: builtin/apply.c:1655 msgid "new file depends on old contents" msgstr "neue Datei hängt von alten Inhalten ab" -#: builtin/apply.c:1661 +#: builtin/apply.c:1657 msgid "deleted file still has contents" msgstr "entfernte Datei hat noch Inhalte" -#: builtin/apply.c:1687 +#: builtin/apply.c:1683 #, c-format msgid "corrupt patch at line %d" msgstr "fehlerhafter Patch bei Zeile %d" -#: builtin/apply.c:1723 +#: builtin/apply.c:1719 #, c-format msgid "new file %s depends on old contents" msgstr "neue Datei %s hängt von alten Inhalten ab" -#: builtin/apply.c:1725 +#: builtin/apply.c:1721 #, c-format msgid "deleted file %s still has contents" msgstr "entfernte Datei %s hat noch Inhalte" -#: builtin/apply.c:1728 +#: builtin/apply.c:1724 #, c-format msgid "** warning: file %s becomes empty but is not deleted" msgstr "** Warnung: Datei %s wird leer, aber nicht entfernt." -#: builtin/apply.c:1874 +#: builtin/apply.c:1870 #, c-format msgid "corrupt binary patch at line %d: %.*s" msgstr "fehlerhafter Binär-Patch bei Zeile %d: %.*s" -#: builtin/apply.c:1903 +#: builtin/apply.c:1899 #, c-format msgid "unrecognized binary patch at line %d" msgstr "nicht erkannter Binär-Patch bei Zeile %d" -#: builtin/apply.c:2054 +#: builtin/apply.c:2050 #, c-format msgid "patch with only garbage at line %d" msgstr "Patch mit nutzlosen Informationen bei Zeile %d" -#: builtin/apply.c:2144 +#: builtin/apply.c:2140 #, c-format msgid "unable to read symlink %s" msgstr "konnte symbolische Verknüpfung %s nicht lesen" -#: builtin/apply.c:2148 +#: builtin/apply.c:2144 #, c-format msgid "unable to open or read %s" msgstr "konnte %s nicht öffnen oder lesen" -#: builtin/apply.c:2781 +#: builtin/apply.c:2777 #, c-format msgid "invalid start of line: '%c'" msgstr "Ungültiger Zeilenanfang: '%c'" -#: builtin/apply.c:2900 +#: builtin/apply.c:2896 #, c-format msgid "Hunk #%d succeeded at %d (offset %d line)." msgid_plural "Hunk #%d succeeded at %d (offset %d lines)." @@ -2901,12 +2949,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:2912 +#: builtin/apply.c:2908 #, 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:2918 +#: builtin/apply.c:2914 #, c-format msgid "" "while searching for:\n" @@ -2915,337 +2963,337 @@ msgstr "" "bei der Suche nach:\n" "%.*s" -#: builtin/apply.c:2938 +#: builtin/apply.c:2934 #, c-format msgid "missing binary patch data for '%s'" msgstr "keine Daten in Binär-Patch für '%s'" -#: builtin/apply.c:3039 +#: builtin/apply.c:3035 #, c-format msgid "binary patch does not apply to '%s'" msgstr "Konnte Binär-Patch nicht auf '%s' anwenden" -#: builtin/apply.c:3045 +#: builtin/apply.c:3041 #, 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:3066 +#: builtin/apply.c:3062 #, c-format msgid "patch failed: %s:%ld" msgstr "Anwendung des Patches fehlgeschlagen: %s:%ld" -#: builtin/apply.c:3190 +#: builtin/apply.c:3186 #, c-format msgid "cannot checkout %s" msgstr "kann %s nicht auschecken" -#: builtin/apply.c:3235 builtin/apply.c:3246 builtin/apply.c:3291 +#: builtin/apply.c:3231 builtin/apply.c:3242 builtin/apply.c:3287 #, c-format msgid "read of %s failed" msgstr "Konnte %s nicht lesen" -#: builtin/apply.c:3243 +#: builtin/apply.c:3239 #, c-format msgid "reading from '%s' beyond a symbolic link" msgstr "'%s' ist hinter einer symbolischen Verknüpfung" -#: builtin/apply.c:3271 builtin/apply.c:3493 +#: builtin/apply.c:3267 builtin/apply.c:3489 #, c-format msgid "path %s has been renamed/deleted" msgstr "Pfad %s wurde umbenannt/gelöscht" -#: builtin/apply.c:3352 builtin/apply.c:3507 +#: builtin/apply.c:3348 builtin/apply.c:3503 #, c-format msgid "%s: does not exist in index" msgstr "%s ist nicht im Index" -#: builtin/apply.c:3356 builtin/apply.c:3499 builtin/apply.c:3521 +#: builtin/apply.c:3352 builtin/apply.c:3495 builtin/apply.c:3517 #, c-format msgid "%s: %s" msgstr "%s: %s" -#: builtin/apply.c:3361 builtin/apply.c:3515 +#: builtin/apply.c:3357 builtin/apply.c:3511 #, c-format msgid "%s: does not match index" msgstr "%s entspricht nicht der Version im Index" -#: builtin/apply.c:3463 +#: builtin/apply.c:3459 msgid "removal patch leaves file contents" msgstr "Lösch-Patch hinterlässt Dateiinhalte" -#: builtin/apply.c:3532 +#: builtin/apply.c:3528 #, c-format msgid "%s: wrong type" msgstr "%s: falscher Typ" -#: builtin/apply.c:3534 +#: builtin/apply.c:3530 #, c-format msgid "%s has type %o, expected %o" msgstr "%s ist vom Typ %o, erwartete %o" -#: builtin/apply.c:3693 builtin/apply.c:3695 +#: builtin/apply.c:3689 builtin/apply.c:3691 #, c-format msgid "invalid path '%s'" msgstr "Ungültiger Pfad '%s'" -#: builtin/apply.c:3750 +#: builtin/apply.c:3746 #, c-format msgid "%s: already exists in index" msgstr "%s ist bereits bereitgestellt" -#: builtin/apply.c:3753 +#: builtin/apply.c:3749 #, c-format msgid "%s: already exists in working directory" msgstr "%s existiert bereits im Arbeitsverzeichnis" -#: builtin/apply.c:3773 +#: builtin/apply.c:3769 #, 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:3778 +#: builtin/apply.c:3774 #, 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:3798 +#: builtin/apply.c:3794 #, c-format msgid "affected file '%s' is beyond a symbolic link" msgstr "betroffene Datei '%s' ist hinter einer symbolischen Verknüpfung" -#: builtin/apply.c:3802 +#: builtin/apply.c:3798 #, c-format msgid "%s: patch does not apply" msgstr "%s: Patch konnte nicht angewendet werden" -#: builtin/apply.c:3816 +#: builtin/apply.c:3812 #, c-format msgid "Checking patch %s..." msgstr "Prüfe Patch %s ..." -#: builtin/apply.c:3909 builtin/checkout.c:232 builtin/reset.c:135 +#: builtin/apply.c:3905 builtin/checkout.c:233 builtin/reset.c:135 #, c-format msgid "make_cache_entry failed for path '%s'" msgstr "make_cache_entry für Pfad '%s' fehlgeschlagen" -#: builtin/apply.c:4052 +#: builtin/apply.c:4048 #, c-format msgid "unable to remove %s from index" msgstr "konnte %s nicht aus dem Index entfernen" -#: builtin/apply.c:4081 +#: builtin/apply.c:4077 #, c-format msgid "corrupt patch for submodule %s" msgstr "fehlerhafter Patch für Submodul %s" -#: builtin/apply.c:4085 +#: builtin/apply.c:4081 #, c-format msgid "unable to stat newly created file '%s'" msgstr "konnte neu erstellte Datei '%s' nicht lesen" -#: builtin/apply.c:4090 +#: builtin/apply.c:4086 #, 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:4093 builtin/apply.c:4201 +#: builtin/apply.c:4089 builtin/apply.c:4197 #, 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:4126 +#: builtin/apply.c:4122 #, c-format msgid "closing file '%s'" msgstr "schließe Datei '%s'" -#: builtin/apply.c:4175 +#: builtin/apply.c:4171 #, c-format msgid "unable to write file '%s' mode %o" msgstr "konnte Datei '%s' mit Modus %o nicht schreiben" -#: builtin/apply.c:4262 +#: builtin/apply.c:4258 #, c-format msgid "Applied patch %s cleanly." msgstr "Patch %s sauber angewendet" -#: builtin/apply.c:4270 +#: builtin/apply.c:4266 msgid "internal error" msgstr "interner Fehler" -#: builtin/apply.c:4273 +#: builtin/apply.c:4269 #, 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:4283 +#: builtin/apply.c:4279 #, c-format msgid "truncating .rej filename to %.*s.rej" msgstr "Verkürze Name von .rej Datei zu %.*s.rej" -#: builtin/apply.c:4304 +#: builtin/apply.c:4300 #, c-format msgid "Hunk #%d applied cleanly." msgstr "Patch-Bereich #%d sauber angewendet." -#: builtin/apply.c:4307 +#: builtin/apply.c:4303 #, c-format msgid "Rejected hunk #%d." msgstr "Patch-Block #%d zurückgewiesen." -#: builtin/apply.c:4397 +#: builtin/apply.c:4393 msgid "unrecognized input" msgstr "nicht erkannte Eingabe" -#: builtin/apply.c:4408 +#: builtin/apply.c:4404 msgid "unable to read index file" msgstr "Konnte Index-Datei nicht lesen" -#: builtin/apply.c:4526 +#: builtin/apply.c:4517 msgid "don't apply changes matching the given path" msgstr "keine Änderungen im angegebenen Pfad anwenden" -#: builtin/apply.c:4529 +#: builtin/apply.c:4520 msgid "apply changes matching the given path" msgstr "Änderungen nur im angegebenen Pfad anwenden" -#: builtin/apply.c:4532 +#: builtin/apply.c:4523 msgid "remove <num> leading slashes from traditional diff paths" msgstr "" "<Anzahl> vorangestellte Schrägstriche von herkömmlichen Differenzpfaden " "entfernen" -#: builtin/apply.c:4535 +#: builtin/apply.c:4526 msgid "ignore additions made by the patch" msgstr "hinzugefügte Zeilen des Patches ignorieren" -#: builtin/apply.c:4537 +#: builtin/apply.c:4528 msgid "instead of applying the patch, output diffstat for the input" msgstr "" "anstatt der Anwendung des Patches, den \"diffstat\" für die Eingabe " "ausgegeben" -#: builtin/apply.c:4541 +#: builtin/apply.c:4532 msgid "show number of added and deleted lines in decimal notation" msgstr "" "die Anzahl von hinzugefügten/entfernten Zeilen in Dezimalnotation anzeigen" -#: builtin/apply.c:4543 +#: builtin/apply.c:4534 msgid "instead of applying the patch, output a summary for the input" msgstr "" "anstatt der Anwendung des Patches, eine Zusammenfassung für die Eingabe " "ausgeben" -#: builtin/apply.c:4545 +#: builtin/apply.c:4536 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:4547 +#: builtin/apply.c:4538 msgid "make sure the patch is applicable to the current index" msgstr "" "sicherstellen, dass der Patch mit dem aktuellen Index angewendet werden kann" -#: builtin/apply.c:4549 +#: builtin/apply.c:4540 msgid "apply a patch without touching the working tree" msgstr "Patch anwenden, ohne Änderungen im Arbeitsverzeichnis vorzunehmen" -#: builtin/apply.c:4551 +#: builtin/apply.c:4542 msgid "accept a patch that touches outside the working area" msgstr "" "Patch anwenden, der Änderungen außerhalb des Arbeitsverzeichnisses vornimmt" -#: builtin/apply.c:4553 +#: builtin/apply.c:4544 msgid "also apply the patch (use with --stat/--summary/--check)" msgstr "Patch anwenden (Benutzung mit --stat/--summary/--check)" -#: builtin/apply.c:4555 +#: builtin/apply.c:4546 msgid "attempt three-way merge if a patch does not apply" msgstr "versuche 3-Wege-Merge, wenn der Patch nicht angewendet werden konnte" -#: builtin/apply.c:4557 +#: builtin/apply.c:4548 msgid "build a temporary index based on embedded index information" msgstr "" "einen temporären Index, basierend auf den integrierten Index-Informationen, " "erstellen" -#: builtin/apply.c:4559 builtin/checkout-index.c:198 builtin/ls-files.c:412 +#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412 msgid "paths are separated with NUL character" msgstr "Pfade sind getrennt durch NUL Zeichen" -#: builtin/apply.c:4562 +#: builtin/apply.c:4553 msgid "ensure at least <n> lines of context match" msgstr "" "sicher stellen, dass mindestens <n> Zeilen des Kontextes übereinstimmen" -#: builtin/apply.c:4564 +#: builtin/apply.c:4555 msgid "detect new or modified lines that have whitespace errors" msgstr "neue oder geänderte Zeilen, die Whitespace-Fehler haben, ermitteln" -#: builtin/apply.c:4567 builtin/apply.c:4570 +#: builtin/apply.c:4558 builtin/apply.c:4561 msgid "ignore changes in whitespace when finding context" msgstr "Änderungen im Whitespace bei der Suche des Kontextes ignorieren" -#: builtin/apply.c:4573 +#: builtin/apply.c:4564 msgid "apply the patch in reverse" msgstr "den Patch in umgekehrter Reihenfolge anwenden" -#: builtin/apply.c:4575 +#: builtin/apply.c:4566 msgid "don't expect at least one line of context" msgstr "keinen Kontext erwarten" -#: builtin/apply.c:4577 +#: builtin/apply.c:4568 msgid "leave the rejected hunks in corresponding *.rej files" msgstr "" "zurückgewiesene Patch-Blöcke in entsprechenden *.rej Dateien hinterlassen" -#: builtin/apply.c:4579 +#: builtin/apply.c:4570 msgid "allow overlapping hunks" msgstr "sich überlappende Patch-Blöcke erlauben" -#: builtin/apply.c:4582 +#: builtin/apply.c:4573 msgid "tolerate incorrectly detected missing new-line at the end of file" msgstr "fehlerhaft erkannten fehlenden Zeilenumbruch am Dateiende tolerieren" -#: builtin/apply.c:4585 +#: builtin/apply.c:4576 msgid "do not trust the line counts in the hunk headers" msgstr "den Zeilennummern im Kopf des Patch-Blocks nicht vertrauen" -#: builtin/apply.c:4588 +#: builtin/apply.c:4579 msgid "prepend <root> to all filenames" msgstr "<Wurzelverzeichnis> vor alle Dateinamen stellen" -#: builtin/apply.c:4610 +#: builtin/apply.c:4601 msgid "--3way outside a repository" msgstr "" "Die Option --3way kann nicht außerhalb eines Repositories verwendet werden." -#: builtin/apply.c:4618 +#: builtin/apply.c:4609 msgid "--index outside a repository" msgstr "" "Die Option --index kann nicht außerhalb eines Repositories verwendet werden." -#: builtin/apply.c:4621 +#: builtin/apply.c:4612 msgid "--cached outside a repository" msgstr "" "Die Option --cached kann nicht außerhalb eines Repositories verwendet werden." -#: builtin/apply.c:4640 +#: builtin/apply.c:4631 #, c-format msgid "can't open patch '%s'" msgstr "kann Patch '%s' nicht öffnen" -#: builtin/apply.c:4654 +#: builtin/apply.c:4645 #, c-format msgid "squelched %d whitespace error" msgid_plural "squelched %d whitespace errors" msgstr[0] "unterdrückte %d Whitespace-Fehler" msgstr[1] "unterdrückte %d Whitespace-Fehler" -#: builtin/apply.c:4660 builtin/apply.c:4670 +#: builtin/apply.c:4651 builtin/apply.c:4661 #, c-format msgid "%d line adds whitespace errors." msgid_plural "%d lines add whitespace errors." @@ -3307,98 +3355,98 @@ msgstr "git blame [<Optionen>] [<rev-opts>] [<Commit>] [--] <Datei>" msgid "<rev-opts> are documented in git-rev-list(1)" msgstr "<rev-opts> sind dokumentiert in git-rev-list(1)" -#: builtin/blame.c:2500 +#: builtin/blame.c:2519 msgid "Show blame entries as we find them, incrementally" msgstr "\"blame\"-Einträge schrittweise anzeigen, während wir sie generieren" -#: builtin/blame.c:2501 +#: builtin/blame.c:2520 msgid "Show blank SHA-1 for boundary commits (Default: off)" msgstr "leere SHA-1 für Grenz-Commits anzeigen (Standard: aus)" -#: builtin/blame.c:2502 +#: builtin/blame.c:2521 msgid "Do not treat root commits as boundaries (Default: off)" msgstr "Ursprungs-Commit nicht als Grenzen behandeln (Standard: aus)" -#: builtin/blame.c:2503 +#: builtin/blame.c:2522 msgid "Show work cost statistics" msgstr "Statistiken zum Arbeitsaufwand anzeigen" -#: builtin/blame.c:2504 +#: builtin/blame.c:2523 msgid "Show output score for blame entries" msgstr "Ausgabebewertung für \"blame\"-Einträge anzeigen" -#: builtin/blame.c:2505 +#: builtin/blame.c:2524 msgid "Show original filename (Default: auto)" msgstr "ursprünglichen Dateinamen anzeigen (Standard: auto)" -#: builtin/blame.c:2506 +#: builtin/blame.c:2525 msgid "Show original linenumber (Default: off)" msgstr "ursprüngliche Zeilennummer anzeigen (Standard: aus)" -#: builtin/blame.c:2507 +#: builtin/blame.c:2526 msgid "Show in a format designed for machine consumption" msgstr "Anzeige in einem Format für maschinelle Auswertung" -#: builtin/blame.c:2508 +#: builtin/blame.c:2527 msgid "Show porcelain format with per-line commit information" msgstr "" "Anzeige in Format für Fremdprogramme mit Commit-Informationen pro Zeile" -#: builtin/blame.c:2509 +#: builtin/blame.c:2528 msgid "Use the same output mode as git-annotate (Default: off)" msgstr "" "Den gleichen Ausgabemodus benutzen wie \"git-annotate\" (Standard: aus)" -#: builtin/blame.c:2510 +#: builtin/blame.c:2529 msgid "Show raw timestamp (Default: off)" msgstr "Unbearbeiteten Zeitstempel anzeigen (Standard: aus)" -#: builtin/blame.c:2511 +#: builtin/blame.c:2530 msgid "Show long commit SHA1 (Default: off)" msgstr "Langen Commit-SHA1 anzeigen (Standard: aus)" -#: builtin/blame.c:2512 +#: builtin/blame.c:2531 msgid "Suppress author name and timestamp (Default: off)" msgstr "Den Namen des Autors und den Zeitstempel unterdrücken (Standard: aus)" -#: builtin/blame.c:2513 +#: builtin/blame.c:2532 msgid "Show author email instead of name (Default: off)" msgstr "" "Anstatt des Namens die E-Mail-Adresse des Autors anzeigen (Standard: aus)" -#: builtin/blame.c:2514 +#: builtin/blame.c:2533 msgid "Ignore whitespace differences" msgstr "Unterschiede im Whitespace ignorieren" -#: builtin/blame.c:2515 +#: builtin/blame.c:2534 msgid "Spend extra cycles to find better match" msgstr "Länger arbeiten, um bessere Übereinstimmungen zu finden" -#: builtin/blame.c:2516 +#: builtin/blame.c:2535 msgid "Use revisions from <file> instead of calling git-rev-list" msgstr "Commits von <Datei> benutzen, anstatt \"git-rev-list\" aufzurufen" -#: builtin/blame.c:2517 +#: builtin/blame.c:2536 msgid "Use <file>'s contents as the final image" msgstr "Inhalte der <Datei>en als endgültiges Abbild benutzen" -#: builtin/blame.c:2518 builtin/blame.c:2519 +#: builtin/blame.c:2537 builtin/blame.c:2538 msgid "score" msgstr "Bewertung" -#: builtin/blame.c:2518 +#: builtin/blame.c:2537 msgid "Find line copies within and across files" msgstr "kopierte Zeilen innerhalb oder zwischen Dateien finden" -#: builtin/blame.c:2519 +#: builtin/blame.c:2538 msgid "Find line movements within and across files" msgstr "verschobene Zeilen innerhalb oder zwischen Dateien finden" -#: builtin/blame.c:2520 +#: builtin/blame.c:2539 msgid "n,m" msgstr "n,m" -#: builtin/blame.c:2520 +#: builtin/blame.c:2539 msgid "Process only line range n,m, counting from 1" msgstr "nur Zeilen im Bereich n,m verarbeiten, gezählt von 1" @@ -3408,27 +3456,31 @@ msgstr "nur Zeilen im Bereich n,m verarbeiten, gezählt von 1" #. takes 22 places, is the longest among various forms of #. relative timestamps, but your language may need more or #. fewer display columns. -#: builtin/blame.c:2601 +#: builtin/blame.c:2620 msgid "4 years, 11 months ago" msgstr "vor 4 Jahren, und 11 Monaten" -#: builtin/branch.c:24 +#: builtin/branch.c:25 msgid "git branch [<options>] [-r | -a] [--merged | --no-merged]" msgstr "git branch [<Optionen>] [-r | -a] [--merged | --no-merged]" -#: builtin/branch.c:25 +#: builtin/branch.c:26 msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]" msgstr "git branch [<Optionen>] [-l] [-f] <Branchname> [<Startpunkt>]" -#: builtin/branch.c:26 +#: builtin/branch.c:27 msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..." msgstr "git branch [<Optionen>] [-r] (-d | -D) <Branchname>..." -#: builtin/branch.c:27 +#: builtin/branch.c:28 msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>" msgstr "git branch [<Optionen>] (-m | -M) [<alter-Branch>] <neuer-Branch>" -#: builtin/branch.c:150 +#: builtin/branch.c:29 +msgid "git branch [<options>] [-r | -a] [--points-at]" +msgstr "git branch [<Optionen>] [-r | -a] [--points-at]" + +#: builtin/branch.c:142 #, c-format msgid "" "deleting branch '%s' that has been merged to\n" @@ -3437,7 +3489,7 @@ msgstr "" "entferne Branch '%s', der zusammengeführt wurde mit\n" " '%s', aber noch nicht mit HEAD zusammengeführt wurde." -#: builtin/branch.c:154 +#: builtin/branch.c:146 #, c-format msgid "" "not deleting branch '%s' that is not yet merged to\n" @@ -3446,12 +3498,12 @@ msgstr "" "entferne Branch '%s' nicht, der noch nicht zusammengeführt wurde mit\n" " '%s', obwohl er mit HEAD zusammengeführt wurde." -#: builtin/branch.c:168 +#: builtin/branch.c:160 #, c-format msgid "Couldn't look up commit object for '%s'" msgstr "Konnte Commit-Objekt für '%s' nicht nachschlagen." -#: builtin/branch.c:172 +#: builtin/branch.c:164 #, c-format msgid "" "The branch '%s' is not fully merged.\n" @@ -3461,311 +3513,303 @@ msgstr "" "Wenn Sie sicher sind diesen Branch zu entfernen, führen Sie 'git branch -D " "%s' aus." -#: builtin/branch.c:185 +#: builtin/branch.c:177 msgid "Update of config-file failed" msgstr "Aktualisierung der Konfigurationsdatei fehlgeschlagen." -#: builtin/branch.c:213 +#: builtin/branch.c:205 msgid "cannot use -a with -d" msgstr "kann -a nicht mit -d benutzen" -#: builtin/branch.c:219 +#: builtin/branch.c:211 msgid "Couldn't look up commit object for HEAD" msgstr "Konnte Commit-Objekt für HEAD nicht nachschlagen." -#: builtin/branch.c:227 +#: builtin/branch.c:219 #, c-format msgid "Cannot delete the branch '%s' which you are currently on." msgstr "" "Kann Branch '%s' nicht entfernen, da Sie sich gerade auf diesem befinden." -#: builtin/branch.c:243 +#: builtin/branch.c:235 #, c-format msgid "remote-tracking branch '%s' not found." msgstr "Remote-Tracking-Branch '%s' nicht gefunden" -#: builtin/branch.c:244 +#: builtin/branch.c:236 #, c-format msgid "branch '%s' not found." msgstr "Branch '%s' nicht gefunden." -#: builtin/branch.c:259 +#: builtin/branch.c:251 #, c-format msgid "Error deleting remote-tracking branch '%s'" msgstr "Fehler beim Entfernen des Remote-Tracking-Branches '%s'" -#: builtin/branch.c:260 +#: builtin/branch.c:252 #, c-format msgid "Error deleting branch '%s'" msgstr "Fehler beim Entfernen des Branches '%s'" -#: builtin/branch.c:267 +#: builtin/branch.c:259 #, c-format msgid "Deleted remote-tracking branch %s (was %s).\n" msgstr "Remote-Tracking-Branch %s entfernt (war %s).\n" -#: builtin/branch.c:268 +#: builtin/branch.c:260 #, c-format msgid "Deleted branch %s (was %s).\n" msgstr "Branch %s entfernt (war %s).\n" -#: builtin/branch.c:369 -#, c-format -msgid "branch '%s' does not point at a commit" -msgstr "Branch '%s' zeigt auf keinen Commit" - -#: builtin/branch.c:452 +#: builtin/branch.c:303 #, c-format msgid "[%s: gone]" msgstr "[%s: entfernt]" -#: builtin/branch.c:457 +#: builtin/branch.c:308 #, c-format msgid "[%s]" msgstr "[%s]" -#: builtin/branch.c:462 +#: builtin/branch.c:313 #, c-format msgid "[%s: behind %d]" msgstr "[%s: %d hinterher]" -#: builtin/branch.c:464 +#: builtin/branch.c:315 #, c-format msgid "[behind %d]" msgstr "[%d hinterher]" -#: builtin/branch.c:468 +#: builtin/branch.c:319 #, c-format msgid "[%s: ahead %d]" msgstr "[%s: %d voraus]" -#: builtin/branch.c:470 +#: builtin/branch.c:321 #, c-format msgid "[ahead %d]" msgstr "[%d voraus]" -#: builtin/branch.c:473 +#: builtin/branch.c:324 #, c-format msgid "[%s: ahead %d, behind %d]" msgstr "[%s: %d voraus, %d hinterher]" -#: builtin/branch.c:476 +#: builtin/branch.c:327 #, c-format msgid "[ahead %d, behind %d]" msgstr "[%d voraus, %d hinterher]" -#: builtin/branch.c:489 +#: builtin/branch.c:340 msgid " **** invalid ref ****" msgstr " **** ungültige Referenz ****" -#: builtin/branch.c:580 +#: builtin/branch.c:366 #, c-format msgid "(no branch, rebasing %s)" msgstr "(kein Branch, Rebase von Branch %s im Gange)" -#: builtin/branch.c:583 +#: builtin/branch.c:369 #, c-format msgid "(no branch, bisect started on %s)" msgstr "(kein Branch, binäre Suche begonnen bei %s)" -#: builtin/branch.c:589 +#: builtin/branch.c:375 #, c-format msgid "(HEAD detached at %s)" msgstr "(HEAD losgelöst bei %s)" -#: builtin/branch.c:592 +#: builtin/branch.c:378 #, c-format msgid "(HEAD detached from %s)" msgstr "(HEAD losgelöst von %s)" -#: builtin/branch.c:596 +#: builtin/branch.c:382 msgid "(no branch)" msgstr "(kein Branch)" -#: builtin/branch.c:643 -#, c-format -msgid "object '%s' does not point to a commit" -msgstr "Objekt '%s' zeigt auf keinen Commit" - -#: builtin/branch.c:691 -msgid "some refs could not be read" -msgstr "Konnte einige Referenzen nicht lesen" - -#: builtin/branch.c:704 +#: builtin/branch.c:524 msgid "cannot rename the current branch while not on any." msgstr "" "Kann aktuellen Branch nicht umbenennen, solange Sie sich auf keinem befinden." -#: builtin/branch.c:714 +#: builtin/branch.c:534 #, c-format msgid "Invalid branch name: '%s'" msgstr "Ungültiger Branchname: '%s'" -#: builtin/branch.c:729 +#: builtin/branch.c:549 msgid "Branch rename failed" msgstr "Umbenennung des Branches fehlgeschlagen" -#: builtin/branch.c:733 +#: builtin/branch.c:553 #, c-format msgid "Renamed a misnamed branch '%s' away" msgstr "falsch benannten Branch '%s' umbenannt" -#: builtin/branch.c:737 +#: builtin/branch.c:557 #, c-format msgid "Branch renamed to %s, but HEAD is not updated!" msgstr "Branch umbenannt zu %s, aber HEAD ist nicht aktualisiert!" -#: builtin/branch.c:744 +#: builtin/branch.c:564 msgid "Branch is renamed, but update of config-file failed" msgstr "" "Branch ist umbenannt, aber die Aktualisierung der Konfigurationsdatei ist " "fehlgeschlagen." -#: builtin/branch.c:759 -#, c-format -msgid "malformed object name %s" -msgstr "Missgebildeter Objektname %s" - -#: builtin/branch.c:781 +#: builtin/branch.c:587 #, c-format msgid "could not write branch description template: %s" msgstr "Konnte Beschreibungsvorlage für Branch nicht schreiben: %s" -#: builtin/branch.c:811 +#: builtin/branch.c:616 msgid "Generic options" msgstr "Allgemeine Optionen" -#: builtin/branch.c:813 +#: builtin/branch.c:618 msgid "show hash and subject, give twice for upstream branch" msgstr "Hash und Betreff anzeigen; -vv: zusätzlich Upstream-Branch" -#: builtin/branch.c:814 +#: builtin/branch.c:619 msgid "suppress informational messages" msgstr "Informationsmeldungen unterdrücken" -#: builtin/branch.c:815 +#: builtin/branch.c:620 msgid "set up tracking mode (see git-pull(1))" msgstr "den Übernahmemodus einstellen (siehe git-pull(1))" -#: builtin/branch.c:817 +#: builtin/branch.c:622 msgid "change upstream info" msgstr "Informationen zum Upstream-Branch ändern" -#: builtin/branch.c:821 +#: builtin/branch.c:626 msgid "use colored output" msgstr "farbige Ausgaben verwenden" -#: builtin/branch.c:822 +#: builtin/branch.c:627 msgid "act on remote-tracking branches" msgstr "auf Remote-Tracking-Branches wirken" -#: builtin/branch.c:825 builtin/branch.c:831 builtin/branch.c:852 -#: builtin/branch.c:858 builtin/commit.c:1580 builtin/commit.c:1581 -#: builtin/commit.c:1582 builtin/commit.c:1583 builtin/tag.c:618 -#: builtin/tag.c:624 -msgid "commit" -msgstr "Commit" - -#: builtin/branch.c:826 builtin/branch.c:832 +#: builtin/branch.c:629 builtin/branch.c:630 msgid "print only branches that contain the commit" msgstr "nur Branches ausgeben, welche diesen Commit beinhalten" -#: builtin/branch.c:838 +#: builtin/branch.c:633 msgid "Specific git-branch actions:" msgstr "spezifische Aktionen für \"git-branch\":" -#: builtin/branch.c:839 +#: builtin/branch.c:634 msgid "list both remote-tracking and local branches" msgstr "Remote-Tracking und lokale Branches auflisten" -#: builtin/branch.c:841 +#: builtin/branch.c:636 msgid "delete fully merged branch" msgstr "vollständig zusammengeführten Branch entfernen" -#: builtin/branch.c:842 +#: builtin/branch.c:637 msgid "delete branch (even if not merged)" msgstr "Branch löschen (auch wenn nicht zusammengeführt)" -#: builtin/branch.c:843 +#: builtin/branch.c:638 msgid "move/rename a branch and its reflog" msgstr "einen Branch und dessen Reflog verschieben/umbenennen" -#: builtin/branch.c:844 +#: builtin/branch.c:639 msgid "move/rename a branch, even if target exists" msgstr "" "einen Branch verschieben/umbenennen, auch wenn das Ziel bereits existiert" -#: builtin/branch.c:845 +#: builtin/branch.c:640 msgid "list branch names" msgstr "Branchnamen auflisten" -#: builtin/branch.c:846 +#: builtin/branch.c:641 msgid "create the branch's reflog" msgstr "das Reflog des Branches erzeugen" -#: builtin/branch.c:848 +#: builtin/branch.c:643 msgid "edit the description for the branch" msgstr "die Beschreibung für den Branch bearbeiten" -#: builtin/branch.c:849 +#: builtin/branch.c:644 msgid "force creation, move/rename, deletion" msgstr "Erstellung, Verschiebung/Umbenennung oder Löschung erzwingen" -#: builtin/branch.c:852 -msgid "print only not merged branches" -msgstr "nur Branches ausgeben, die nicht zusammengeführt sind" +#: builtin/branch.c:645 +msgid "print only branches that are merged" +msgstr "nur zusammengeführte Branches ausgeben" -#: builtin/branch.c:858 -msgid "print only merged branches" -msgstr "nur Branches ausgeben, die zusammengeführt sind" +#: builtin/branch.c:646 +msgid "print only branches that are not merged" +msgstr "nur nicht zusammengeführte Branches ausgeben" -#: builtin/branch.c:862 +#: builtin/branch.c:647 msgid "list branches in columns" msgstr "Branches in Spalten auflisten" -#: builtin/branch.c:875 +#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366 +msgid "key" +msgstr "Schüssel" + +#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367 +msgid "field name to sort on" +msgstr "sortiere nach diesem Feld" + +#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398 +#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564 +#: builtin/tag.c:369 +msgid "object" +msgstr "Objekt" + +#: builtin/branch.c:652 +msgid "print only branches of the object" +msgstr "nur Branches von diesem Objekt ausgeben" + +#: builtin/branch.c:670 msgid "Failed to resolve HEAD as a valid ref." msgstr "Konnte HEAD nicht als gültige Referenz auflösen." -#: builtin/branch.c:879 builtin/clone.c:690 +#: builtin/branch.c:674 builtin/clone.c:697 msgid "HEAD not found below refs/heads!" msgstr "HEAD wurde nicht unter \"refs/heads\" gefunden!" -#: builtin/branch.c:901 +#: builtin/branch.c:694 msgid "--column and --verbose are incompatible" msgstr "Die Optionen --column und --verbose sind inkompatibel." -#: builtin/branch.c:912 builtin/branch.c:951 +#: builtin/branch.c:705 builtin/branch.c:747 msgid "branch name required" msgstr "Branchname erforderlich" -#: builtin/branch.c:927 +#: builtin/branch.c:723 msgid "Cannot give description to detached HEAD" msgstr "zu losgelöstem HEAD kann keine Beschreibung hinterlegt werden" -#: builtin/branch.c:932 +#: builtin/branch.c:728 msgid "cannot edit description of more than one branch" msgstr "Beschreibung von mehr als einem Branch kann nicht bearbeitet werden" -#: builtin/branch.c:939 +#: builtin/branch.c:735 #, c-format msgid "No commit on branch '%s' yet." msgstr "Noch kein Commit in Branch '%s'." -#: builtin/branch.c:942 +#: builtin/branch.c:738 #, c-format msgid "No branch named '%s'." msgstr "Branch '%s' nicht vorhanden." -#: builtin/branch.c:957 +#: builtin/branch.c:753 msgid "too many branches for a rename operation" msgstr "zu viele Branches für eine Umbenennen-Operation angegeben" -#: builtin/branch.c:962 +#: builtin/branch.c:758 msgid "too many branches to set new upstream" msgstr "zu viele Branches angegeben, um Upstream-Branch zu setzen" -#: builtin/branch.c:966 +#: builtin/branch.c:762 #, c-format msgid "" "could not set upstream of HEAD to %s when it does not point to any branch." @@ -3773,43 +3817,43 @@ msgstr "" "Konnte keinen neuen Upstream-Branch von HEAD zu %s setzen, da dieser auf\n" "keinen Branch zeigt." -#: builtin/branch.c:969 builtin/branch.c:991 builtin/branch.c:1012 +#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808 #, c-format msgid "no such branch '%s'" msgstr "Kein solcher Branch '%s'" -#: builtin/branch.c:973 +#: builtin/branch.c:769 #, c-format msgid "branch '%s' does not exist" msgstr "Branch '%s' existiert nicht" -#: builtin/branch.c:985 +#: builtin/branch.c:781 msgid "too many branches to unset upstream" msgstr "" "zu viele Branches angegeben, um Konfiguration zu Upstream-Branch zu entfernen" -#: builtin/branch.c:989 +#: builtin/branch.c:785 msgid "could not unset upstream of HEAD when it does not point to any branch." msgstr "" "Konnte Konfiguration zu Upstream-Branch von HEAD nicht entfernen, da dieser\n" "auf keinen Branch zeigt." -#: builtin/branch.c:995 +#: builtin/branch.c:791 #, c-format msgid "Branch '%s' has no upstream information" msgstr "Branch '%s' hat keinen Upstream-Branch gesetzt" -#: builtin/branch.c:1009 +#: builtin/branch.c:805 msgid "it does not make sense to create 'HEAD' manually" msgstr "'HEAD' darf nicht manuell erstellt werden" -#: builtin/branch.c:1015 +#: builtin/branch.c:811 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' können nicht gemeimsam mit einem " "Branchnamen verwendet werden." -#: builtin/branch.c:1018 +#: builtin/branch.c:814 #, c-format msgid "" "The --set-upstream flag is deprecated and will be removed. Consider using --" @@ -3818,7 +3862,7 @@ msgstr "" "Die --set-upstream Option ist veraltet und wird entfernt. Benutzen Sie --" "track oder --set-upstream-to\n" -#: builtin/branch.c:1035 +#: builtin/branch.c:831 #, c-format msgid "" "\n" @@ -3829,12 +3873,12 @@ msgstr "" "Wenn Sie wollten, dass '%s' den Branch '%s' als Upstream-Branch hat, führen " "Sie aus:\n" -#: builtin/branch.c:1036 +#: builtin/branch.c:832 #, c-format msgid " git branch -d %s\n" msgstr " git branch -d %s\n" -#: builtin/branch.c:1037 +#: builtin/branch.c:833 #, c-format msgid " git branch --set-upstream-to %s\n" msgstr " git branch --set-upstream-to %s\n" @@ -3861,12 +3905,8 @@ msgstr "" "<Art>|--textconv) <Objekt>" #: builtin/cat-file.c:429 -msgid "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] < <list-of-" -"objects>" -msgstr "" -"git cat-file (--batch | --batch-check) [--follow-symlinks] < <Liste-von-" -"Objekten" +msgid "git cat-file (--batch | --batch-check) [--follow-symlinks]" +msgstr "git cat-file (--batch | --batch-check) [--follow-symlinks]" #: builtin/cat-file.c:466 msgid "<type> can be one of: blob, tree, commit, tag" @@ -3926,9 +3966,8 @@ 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>" +msgid "git check-attr --stdin [-z] [-a | --all | <attr>...]" +msgstr "git check-attr --stdin [-z] [-a | --all | <Attribut>...]" #: builtin/check-attr.c:19 msgid "report all attributes set on file" @@ -3946,7 +3985,7 @@ msgstr "Dateinamen von der Standard-Eingabe lesen" msgid "terminate input and output records by a NUL character" msgstr "Einträge von Ein- und Ausgabe mit NUL-Zeichen abschließen" -#: builtin/check-ignore.c:18 builtin/checkout.c:1133 builtin/gc.c:267 +#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325 msgid "suppress progress reporting" msgstr "Fortschrittsanzeige unterdrücken" @@ -4035,6 +4074,8 @@ msgid "write the content to temporary files" msgstr "den Inhalt in temporäre Dateien schreiben" #: builtin/checkout-index.c:204 builtin/column.c:30 +#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175 +#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181 msgid "string" msgstr "Zeichenkette" @@ -4055,106 +4096,106 @@ msgstr "git checkout [<Optionen>] <Branch>" msgid "git checkout [<options>] [<branch>] -- <file>..." msgstr "git checkout [<Optionen>] [<Branch>] -- <Datei>..." -#: builtin/checkout.c:133 builtin/checkout.c:166 +#: builtin/checkout.c:134 builtin/checkout.c:167 #, c-format msgid "path '%s' does not have our version" msgstr "Pfad '%s' hat nicht unsere Version." -#: builtin/checkout.c:135 builtin/checkout.c:168 +#: builtin/checkout.c:136 builtin/checkout.c:169 #, c-format msgid "path '%s' does not have their version" msgstr "Pfad '%s' hat nicht deren Version." -#: builtin/checkout.c:151 +#: builtin/checkout.c:152 #, c-format msgid "path '%s' does not have all necessary versions" msgstr "Pfad '%s' hat nicht alle notwendigen Versionen." -#: builtin/checkout.c:195 +#: builtin/checkout.c:196 #, c-format msgid "path '%s' does not have necessary versions" msgstr "Pfad '%s' hat nicht die notwendigen Versionen." -#: builtin/checkout.c:212 +#: builtin/checkout.c:213 #, c-format msgid "path '%s': cannot merge" msgstr "Pfad '%s': kann nicht zusammenführen" -#: builtin/checkout.c:229 +#: builtin/checkout.c:230 #, c-format msgid "Unable to add merge result for '%s'" msgstr "Konnte Merge-Ergebnis von '%s' nicht hinzufügen." -#: builtin/checkout.c:250 builtin/checkout.c:253 builtin/checkout.c:256 -#: builtin/checkout.c:259 +#: builtin/checkout.c:251 builtin/checkout.c:254 builtin/checkout.c:257 +#: builtin/checkout.c:260 #, c-format msgid "'%s' cannot be used with updating paths" msgstr "'%s' kann nicht mit der Aktualisierung von Pfaden verwendet werden" -#: builtin/checkout.c:262 builtin/checkout.c:265 +#: builtin/checkout.c:263 builtin/checkout.c:266 #, c-format msgid "'%s' cannot be used with %s" msgstr "'%s' kann nicht mit '%s' verwendet werden" -#: builtin/checkout.c:268 +#: builtin/checkout.c:269 #, c-format msgid "Cannot update paths and switch to branch '%s' at the same time." msgstr "" "Kann nicht gleichzeitig Pfade aktualisieren und zu Branch '%s' wechseln" -#: builtin/checkout.c:279 builtin/checkout.c:473 +#: builtin/checkout.c:280 builtin/checkout.c:474 msgid "corrupt index file" msgstr "beschädigte Index-Datei" -#: builtin/checkout.c:339 builtin/checkout.c:346 +#: builtin/checkout.c:340 builtin/checkout.c:347 #, c-format msgid "path '%s' is unmerged" msgstr "Pfad '%s' ist nicht zusammengeführt." -#: builtin/checkout.c:495 +#: builtin/checkout.c:496 msgid "you need to resolve your current index first" msgstr "Sie müssen zuerst die Konflikte in Ihrem aktuellen Index auflösen." -#: builtin/checkout.c:622 +#: builtin/checkout.c:623 #, c-format msgid "Can not do reflog for '%s': %s\n" msgstr "Kann \"reflog\" für '%s' nicht durchführen: %s\n" -#: builtin/checkout.c:660 +#: builtin/checkout.c:661 msgid "HEAD is now at" msgstr "HEAD ist jetzt bei" -#: builtin/checkout.c:667 +#: builtin/checkout.c:668 #, c-format msgid "Reset branch '%s'\n" msgstr "Setze Branch '%s' neu\n" -#: builtin/checkout.c:670 +#: builtin/checkout.c:671 #, c-format msgid "Already on '%s'\n" msgstr "Bereits auf '%s'\n" -#: builtin/checkout.c:674 +#: builtin/checkout.c:675 #, c-format msgid "Switched to and reset branch '%s'\n" msgstr "Zu umgesetztem Branch '%s' gewechselt\n" -#: builtin/checkout.c:676 builtin/checkout.c:1065 +#: builtin/checkout.c:677 builtin/checkout.c:1066 #, c-format msgid "Switched to a new branch '%s'\n" msgstr "Zu neuem Branch '%s' gewechselt\n" -#: builtin/checkout.c:678 +#: builtin/checkout.c:679 #, c-format msgid "Switched to branch '%s'\n" msgstr "Zu Branch '%s' gewechselt\n" -#: builtin/checkout.c:730 +#: builtin/checkout.c:731 #, c-format msgid " ... and %d more.\n" msgstr " ... und %d weitere.\n" -#: builtin/checkout.c:736 +#: builtin/checkout.c:737 #, c-format msgid "" "Warning: you are leaving %d commit behind, not connected to\n" @@ -4177,7 +4218,7 @@ msgstr[1] "" "\n" "%s\n" -#: builtin/checkout.c:755 +#: builtin/checkout.c:756 #, c-format msgid "" "If you want to keep it by creating a new branch, this may be a good time\n" @@ -4204,146 +4245,152 @@ msgstr[1] "" " git branch <neuer-Branchname> %s\n" "\n" -#: builtin/checkout.c:791 +#: builtin/checkout.c:792 msgid "internal error in revision walk" msgstr "interner Fehler im Revisionsgang" -#: builtin/checkout.c:795 +#: builtin/checkout.c:796 msgid "Previous HEAD position was" msgstr "Vorherige Position von HEAD war" -#: builtin/checkout.c:822 builtin/checkout.c:1060 +#: builtin/checkout.c:823 builtin/checkout.c:1061 msgid "You are on a branch yet to be born" msgstr "Sie sind auf einem Branch, der noch geboren wird" -#: builtin/checkout.c:967 +#: builtin/checkout.c:968 #, c-format msgid "only one reference expected, %d given." msgstr "nur eine Referenz erwartet, %d gegeben." -#: builtin/checkout.c:1006 builtin/worktree.c:210 +#: builtin/checkout.c:1007 builtin/worktree.c:213 #, c-format msgid "invalid reference: %s" msgstr "Ungültige Referenz: %s" -#: builtin/checkout.c:1035 +#: builtin/checkout.c:1036 #, c-format msgid "reference is not a tree: %s" msgstr "Referenz ist kein \"Tree\"-Objekt: %s" -#: builtin/checkout.c:1074 +#: builtin/checkout.c:1075 msgid "paths cannot be used with switching branches" msgstr "Pfade können nicht beim Wechseln von Branches verwendet werden" -#: builtin/checkout.c:1077 builtin/checkout.c:1081 +#: builtin/checkout.c:1078 builtin/checkout.c:1082 #, c-format msgid "'%s' cannot be used with switching branches" msgstr "'%s' kann nicht beim Wechseln von Branches verwendet werden" -#: builtin/checkout.c:1085 builtin/checkout.c:1088 builtin/checkout.c:1093 -#: builtin/checkout.c:1096 +#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094 +#: builtin/checkout.c:1097 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' kann nicht mit '%s' verwendet werden" -#: builtin/checkout.c:1101 +#: builtin/checkout.c:1102 #, c-format msgid "Cannot switch branch to a non-commit '%s'" msgstr "Kann Branch nicht zu Nicht-Commit '%s' wechseln" -#: builtin/checkout.c:1134 builtin/checkout.c:1136 builtin/clone.c:83 -#: builtin/remote.c:159 builtin/remote.c:161 builtin/worktree.c:317 -#: builtin/worktree.c:319 +#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83 +#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320 +#: builtin/worktree.c:322 msgid "branch" msgstr "Branch" -#: builtin/checkout.c:1135 +#: builtin/checkout.c:1136 msgid "create and checkout a new branch" msgstr "einen neuen Branch erzeugen und auschecken" -#: builtin/checkout.c:1137 +#: builtin/checkout.c:1138 msgid "create/reset and checkout a branch" msgstr "einen Branch erstellen/umsetzen und auschecken" -#: builtin/checkout.c:1138 +#: builtin/checkout.c:1139 msgid "create reflog for new branch" msgstr "das Reflog für den neuen Branch erzeugen" -#: builtin/checkout.c:1139 +#: builtin/checkout.c:1140 msgid "detach the HEAD at named commit" msgstr "HEAD zu benanntem Commit setzen" -#: builtin/checkout.c:1140 +#: builtin/checkout.c:1141 msgid "set upstream info for new branch" msgstr "Informationen zum Upstream-Branch für den neuen Branch setzen" -#: builtin/checkout.c:1142 +#: builtin/checkout.c:1143 msgid "new-branch" msgstr "neuer Branch" -#: builtin/checkout.c:1142 +#: builtin/checkout.c:1143 msgid "new unparented branch" msgstr "neuer Branch ohne Eltern-Commit" -#: builtin/checkout.c:1143 +#: builtin/checkout.c:1144 msgid "checkout our version for unmerged files" msgstr "unsere Variante für nicht zusammengeführte Dateien auschecken" -#: builtin/checkout.c:1145 +#: builtin/checkout.c:1146 msgid "checkout their version for unmerged files" msgstr "ihre Variante für nicht zusammengeführte Dateien auschecken" -#: builtin/checkout.c:1147 +#: builtin/checkout.c:1148 msgid "force checkout (throw away local modifications)" msgstr "Auschecken erzwingen (verwirft lokale Änderungen)" -#: builtin/checkout.c:1148 +#: builtin/checkout.c:1149 msgid "perform a 3-way merge with the new branch" msgstr "einen 3-Wege-Merge mit dem neuen Branch ausführen" -#: builtin/checkout.c:1149 builtin/merge.c:227 +#: builtin/checkout.c:1150 builtin/merge.c:227 msgid "update ignored files (default)" msgstr "ignorierte Dateien aktualisieren (Standard)" -#: builtin/checkout.c:1150 builtin/log.c:1264 parse-options.h:249 +#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250 msgid "style" msgstr "Stil" -#: builtin/checkout.c:1151 +#: builtin/checkout.c:1152 msgid "conflict style (merge or diff3)" msgstr "Konfliktstil (merge oder diff3)" -#: builtin/checkout.c:1154 +#: builtin/checkout.c:1155 msgid "do not limit pathspecs to sparse entries only" msgstr "keine Einschränkung bei Pfadspezifikationen zum partiellen Auschecken" -#: builtin/checkout.c:1156 +#: builtin/checkout.c:1157 msgid "second guess 'git checkout <no-such-branch>'" msgstr "second guess 'git checkout <no-such-branch>'" -#: builtin/checkout.c:1158 +#: builtin/checkout.c:1159 msgid "do not check if another worktree is holding the given ref" msgstr "" "Prüfung, ob die Referenz bereits in einem anderen Arbeitsverzeichnis " "ausgecheckt wurde, deaktivieren" -#: builtin/checkout.c:1181 +#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112 +#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558 +#: builtin/send-pack.c:168 +msgid "force progress reporting" +msgstr "Fortschrittsanzeige erzwingen" + +#: builtin/checkout.c:1191 msgid "-b, -B and --orphan are mutually exclusive" msgstr "Die Optionen -b, -B und --orphan schließen sich gegenseitig aus." -#: builtin/checkout.c:1198 +#: builtin/checkout.c:1208 msgid "--track needs a branch name" msgstr "Bei der Option --track muss ein Branchname angegeben werden." -#: builtin/checkout.c:1203 +#: builtin/checkout.c:1213 msgid "Missing branch name; try -b" msgstr "Vermisse Branchnamen; versuchen Sie -b" -#: builtin/checkout.c:1239 +#: builtin/checkout.c:1249 msgid "invalid path specification" msgstr "ungültige Pfadspezifikation" -#: builtin/checkout.c:1246 +#: builtin/checkout.c:1256 #, c-format msgid "" "Cannot update paths and switch to branch '%s' at the same time.\n" @@ -4353,12 +4400,12 @@ msgstr "" "Haben Sie beabsichtigt '%s' auszuchecken, welcher nicht als Commit aufgelöst " "werden kann?" -#: builtin/checkout.c:1251 +#: builtin/checkout.c:1261 #, 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:1255 +#: builtin/checkout.c:1265 msgid "" "git checkout: --ours/--theirs, --force and --merge are incompatible when\n" "checking out of the index." @@ -4397,7 +4444,7 @@ msgstr "Würde Repository %s überspringen\n" msgid "failed to remove %s" msgstr "Fehler beim Löschen von %s" -#: builtin/clean.c:317 +#: builtin/clean.c:315 msgid "" "Prompt help:\n" "1 - select a numbered item\n" @@ -4409,7 +4456,7 @@ msgstr "" "foo - Element anhand eines eindeutigen Präfix auswählen\n" " - (leer) nichts auswählen" -#: builtin/clean.c:321 +#: builtin/clean.c:319 msgid "" "Prompt help:\n" "1 - select a single item\n" @@ -4429,36 +4476,36 @@ msgstr "" "* - alle Elemente auswählen\n" " - (leer) Auswahl beenden" -#: builtin/clean.c:537 +#: builtin/clean.c:535 #, c-format msgid "Huh (%s)?" msgstr "Wie bitte (%s)?" -#: builtin/clean.c:679 +#: builtin/clean.c:677 #, c-format msgid "Input ignore patterns>> " msgstr "Ignorier-Muster eingeben>> " -#: builtin/clean.c:716 +#: builtin/clean.c:714 #, c-format msgid "WARNING: Cannot find items matched by: %s" msgstr "WARNUNG: Kann keine Einträge finden die Muster entsprechen: %s" -#: builtin/clean.c:737 +#: builtin/clean.c:735 msgid "Select items to delete" msgstr "Wählen Sie Einträge zum Löschen" #. TRANSLATORS: Make sure to keep [y/N] as is -#: builtin/clean.c:778 +#: builtin/clean.c:776 #, c-format msgid "Remove %s [y/N]? " msgstr "'%s' löschen [y/N]? " -#: builtin/clean.c:803 +#: builtin/clean.c:801 msgid "Bye." msgstr "Tschüss." -#: builtin/clean.c:811 +#: builtin/clean.c:809 msgid "" "clean - start cleaning\n" "filter by pattern - exclude items from deletion\n" @@ -4476,62 +4523,62 @@ msgstr "" "help - diese Meldung anzeigen\n" "? - Hilfe zur Auswahl mittels Eingabe anzeigen" -#: builtin/clean.c:838 +#: builtin/clean.c:836 msgid "*** Commands ***" msgstr "*** Kommandos ***" -#: builtin/clean.c:839 +#: builtin/clean.c:837 msgid "What now" msgstr "Was nun" -#: builtin/clean.c:847 +#: builtin/clean.c:845 msgid "Would remove the following item:" msgid_plural "Would remove the following items:" msgstr[0] "Würde das folgende Element entfernen:" msgstr[1] "Würde die folgenden Elemente entfernen:" -#: builtin/clean.c:864 +#: builtin/clean.c:862 msgid "No more files to clean, exiting." msgstr "Keine Dateien mehr zum Löschen, beende." -#: builtin/clean.c:895 +#: builtin/clean.c:893 msgid "do not print names of files removed" msgstr "keine Namen von gelöschten Dateien ausgeben" -#: builtin/clean.c:897 +#: builtin/clean.c:895 msgid "force" msgstr "Aktion erzwingen" -#: builtin/clean.c:898 +#: builtin/clean.c:896 msgid "interactive cleaning" msgstr "interaktives Clean" -#: builtin/clean.c:900 +#: builtin/clean.c:898 msgid "remove whole directories" msgstr "ganze Verzeichnisse löschen" -#: builtin/clean.c:901 builtin/describe.c:407 builtin/grep.c:714 -#: builtin/ls-files.c:443 builtin/name-rev.c:311 builtin/show-ref.c:187 +#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709 +#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182 msgid "pattern" msgstr "Muster" -#: builtin/clean.c:902 +#: builtin/clean.c:900 msgid "add <pattern> to ignore rules" msgstr "<Muster> zu den Regeln für ignorierte Pfade hinzufügen" -#: builtin/clean.c:903 +#: builtin/clean.c:901 msgid "remove ignored files, too" msgstr "auch ignorierte Dateien löschen" -#: builtin/clean.c:905 +#: builtin/clean.c:903 msgid "remove only ignored files" msgstr "nur ignorierte Dateien löschen" -#: builtin/clean.c:923 +#: builtin/clean.c:921 msgid "-x and -X cannot be used together" msgstr "Die Optionen -x und -X können nicht gemeinsam verwendet werden." -#: builtin/clean.c:927 +#: builtin/clean.c:925 msgid "" "clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " "clean" @@ -4539,7 +4586,7 @@ msgstr "" "clean.requireForce auf \"true\" gesetzt und weder -i, -n noch -f gegeben; " "\"clean\" verweigert" -#: builtin/clean.c:930 +#: builtin/clean.c:928 msgid "" "clean.requireForce defaults to true and neither -i, -n, nor -f given; " "refusing to clean" @@ -4551,16 +4598,11 @@ msgstr "" msgid "git clone [<options>] [--] <repo> [<dir>]" msgstr "git clone [<Optionen>] [--] <Repository> [<Verzeichnis>]" -#: builtin/clone.c:57 builtin/fetch.c:112 builtin/merge.c:224 -#: builtin/pull.c:109 builtin/push.c:560 builtin/send-pack.c:168 -msgid "force progress reporting" -msgstr "Fortschrittsanzeige erzwingen" - #: builtin/clone.c:59 msgid "don't create a checkout" msgstr "kein Auschecken" -#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:504 +#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469 msgid "create a bare repository" msgstr "ein Bare-Repository erstellen" @@ -4584,15 +4626,15 @@ msgstr "als verteiltes Repository einrichten" msgid "initialize submodules in the clone" msgstr "Submodule im Klon initialisieren" -#: builtin/clone.c:75 builtin/init-db.c:501 +#: builtin/clone.c:75 builtin/init-db.c:466 msgid "template-directory" msgstr "Vorlagenverzeichnis" -#: builtin/clone.c:76 builtin/init-db.c:502 +#: builtin/clone.c:76 builtin/init-db.c:467 msgid "directory from which templates will be used" msgstr "Verzeichnis, von welchem die Vorlagen verwendet werden" -#: builtin/clone.c:78 +#: builtin/clone.c:78 builtin/submodule--helper.c:179 msgid "reference repository" msgstr "Repository referenzieren" @@ -4616,7 +4658,7 @@ msgstr "<Branch> auschecken, anstatt HEAD des Remote-Repositories" msgid "path to git-upload-pack on the remote" msgstr "Pfad zu \"git-upload-pack\" auf der Gegenseite" -#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:659 +#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654 #: builtin/pull.c:186 msgid "depth" msgstr "Tiefe" @@ -4630,11 +4672,11 @@ msgstr "" msgid "clone only one branch, HEAD or --branch" msgstr "nur einen Branch klonen, HEAD oder --branch" -#: builtin/clone.c:91 builtin/init-db.c:510 +#: builtin/clone.c:91 builtin/init-db.c:475 msgid "gitdir" msgstr ".git-Verzeichnis" -#: builtin/clone.c:92 builtin/init-db.c:511 +#: builtin/clone.c:92 builtin/init-db.c:476 msgid "separate git dir from working tree" msgstr "Git-Verzeichnis vom Arbeitsverzeichnis separieren" @@ -4646,55 +4688,61 @@ msgstr "Schlüssel=Wert" msgid "set config inside the new repository" msgstr "Konfiguration innerhalb des neuen Repositories setzen" -#: builtin/clone.c:298 +#: builtin/clone.c:300 +#, c-format +msgid "reference repository '%s' as a linked checkout is not supported yet." +msgstr "Referenziertes Repository '%s' wird noch nicht als verknüpftes\n" +"Arbeitsverzeichnis unterstützt." + +#: builtin/clone.c:302 #, c-format msgid "reference repository '%s' is not a local repository." msgstr "Referenziertes Repository '%s' ist kein lokales Repository." -#: builtin/clone.c:302 +#: builtin/clone.c:307 #, c-format msgid "reference repository '%s' is shallow" msgstr "" "Referenziertes Repository '%s' hat eine unvollständige Historie (shallow)." -#: builtin/clone.c:305 +#: builtin/clone.c:310 #, c-format msgid "reference repository '%s' is grafted" msgstr "" "Referenziertes Repository '%s' ist mit künstlichen Vorgängern (\"grafts\") " "eingehängt." -#: builtin/clone.c:370 builtin/diff.c:84 +#: builtin/clone.c:375 builtin/diff.c:84 #, c-format msgid "failed to stat '%s'" msgstr "Konnte '%s' nicht lesen" -#: builtin/clone.c:372 +#: builtin/clone.c:377 #, c-format msgid "%s exists and is not a directory" msgstr "%s existiert und ist kein Verzeichnis" -#: builtin/clone.c:386 +#: builtin/clone.c:391 #, c-format msgid "failed to stat %s\n" msgstr "Konnte %s nicht lesen\n" -#: builtin/clone.c:408 +#: builtin/clone.c:413 #, c-format msgid "failed to create link '%s'" msgstr "Konnte Verweis '%s' nicht erstellen" -#: builtin/clone.c:412 +#: builtin/clone.c:417 #, c-format msgid "failed to copy file to '%s'" msgstr "Konnte Datei nicht nach '%s' kopieren" -#: builtin/clone.c:435 builtin/clone.c:619 +#: builtin/clone.c:442 builtin/clone.c:626 #, c-format msgid "done.\n" msgstr "Fertig.\n" -#: builtin/clone.c:447 +#: builtin/clone.c:454 msgid "" "Clone succeeded, but checkout failed.\n" "You can inspect what was checked out with 'git status'\n" @@ -4704,127 +4752,123 @@ msgstr "" "Sie können mit 'git status' prüfen, was ausgecheckt worden ist\n" "und das Auschecken mit 'git checkout -f HEAD' erneut versuchen.\n" -#: builtin/clone.c:524 +#: builtin/clone.c:531 #, c-format msgid "Could not find remote branch %s to clone." msgstr "Konnte zu klonenden Remote-Branch %s nicht finden." -#: builtin/clone.c:614 +#: builtin/clone.c:621 #, c-format msgid "Checking connectivity... " msgstr "Prüfe Konnektivität ... " -#: builtin/clone.c:617 +#: builtin/clone.c:624 msgid "remote did not send all necessary objects" msgstr "Remote-Repository hat nicht alle erforderlichen Objekte gesendet." -#: builtin/clone.c:681 +#: builtin/clone.c:688 msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" msgstr "" "Externer HEAD bezieht sich auf eine nicht existierende Referenz und kann " "nicht ausgecheckt werden.\n" -#: builtin/clone.c:712 +#: builtin/clone.c:719 msgid "unable to checkout working tree" msgstr "Arbeitsverzeichnis konnte nicht ausgecheckt werden" -#: builtin/clone.c:799 +#: builtin/clone.c:808 msgid "cannot repack to clean up" msgstr "Kann \"repack\" zum Aufräumen nicht aufrufen" -#: builtin/clone.c:801 +#: builtin/clone.c:810 msgid "cannot unlink temporary alternates file" msgstr "Kann temporäre \"alternates\"-Datei nicht entfernen" -#: builtin/clone.c:831 +#: builtin/clone.c:842 msgid "Too many arguments." msgstr "Zu viele Argumente." -#: builtin/clone.c:835 +#: builtin/clone.c:846 msgid "You must specify a repository to clone." msgstr "Sie müssen ein Repository zum Klonen angeben." -#: builtin/clone.c:846 +#: builtin/clone.c:857 #, c-format msgid "--bare and --origin %s options are incompatible." msgstr "Die Optionen --bare und --origin %s sind inkompatibel." -#: builtin/clone.c:849 +#: builtin/clone.c:860 msgid "--bare and --separate-git-dir are incompatible." msgstr "Die Optionen --bare und --separate-git-dir sind inkompatibel." -#: builtin/clone.c:862 +#: builtin/clone.c:873 #, c-format msgid "repository '%s' does not exist" msgstr "Repository '%s' existiert nicht." -#: builtin/clone.c:868 builtin/fetch.c:1168 +#: builtin/clone.c:879 builtin/fetch.c:1166 #, c-format msgid "depth %s is not a positive number" msgstr "Tiefe %s ist keine positive Zahl" -#: builtin/clone.c:878 +#: builtin/clone.c:889 #, 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:888 +#: builtin/clone.c:899 #, c-format msgid "working tree '%s' already exists." msgstr "Arbeitsverzeichnis '%s' existiert bereits." -#: builtin/clone.c:903 builtin/clone.c:914 builtin/worktree.c:218 -#: builtin/worktree.c:245 +#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224 +#: builtin/worktree.c:221 builtin/worktree.c:248 #, c-format msgid "could not create leading directories of '%s'" msgstr "Konnte führende Verzeichnisse von '%s' nicht erstellen." -#: builtin/clone.c:906 +#: builtin/clone.c:917 #, c-format msgid "could not create work tree dir '%s'" msgstr "Konnte Arbeitsverzeichnis '%s' nicht erstellen" -#: builtin/clone.c:924 +#: builtin/clone.c:935 #, c-format msgid "Cloning into bare repository '%s'...\n" msgstr "Klone in Bare-Repository '%s' ...\n" -#: builtin/clone.c:926 +#: builtin/clone.c:937 #, c-format msgid "Cloning into '%s'...\n" msgstr "Klone nach '%s' ...\n" -#: builtin/clone.c:951 -msgid "--dissociate given, but there is no --reference" -msgstr "--dissociate ohne --reference angegeben" - -#: builtin/clone.c:968 +#: builtin/clone.c:975 msgid "--depth is ignored in local clones; use file:// instead." msgstr "" "Die Option --depth wird in lokalen Klonen ignoriert; benutzen Sie " "stattdessen file://" -#: builtin/clone.c:971 +#: builtin/clone.c:978 msgid "source repository is shallow, ignoring --local" msgstr "" "Quelle ist ein Repository mit unvollständiger Historie (shallow),ignoriere --" "local" -#: builtin/clone.c:976 +#: builtin/clone.c:983 msgid "--local is ignored" msgstr "--local wird ignoriert" -#: builtin/clone.c:980 +#: builtin/clone.c:987 #, c-format msgid "Don't know how to clone %s" msgstr "Weiß nicht wie %s zu klonen ist." -#: builtin/clone.c:1029 builtin/clone.c:1037 +#: builtin/clone.c:1036 builtin/clone.c:1044 #, c-format msgid "Remote branch %s not found in upstream %s" msgstr "Remote-Branch %s nicht im Upstream-Repository %s gefunden" -#: builtin/clone.c:1040 +#: builtin/clone.c:1047 msgid "You appear to have cloned an empty repository." msgstr "Sie scheinen ein leeres Repository geklont zu haben." @@ -4860,15 +4904,15 @@ msgstr "Abstand zwischen Spalten" msgid "--command must be the first argument" msgstr "Die Option --command muss an erster Stelle stehen." -#: builtin/commit.c:37 +#: builtin/commit.c:38 msgid "git commit [<options>] [--] <pathspec>..." msgstr "git commit [<Optionen>] [--] <Pfadspezifikation>..." -#: builtin/commit.c:42 +#: builtin/commit.c:43 msgid "git status [<options>] [--] <pathspec>..." msgstr "git status [<Optionen>] [--] <Pfadspezifikation>..." -#: builtin/commit.c:47 +#: builtin/commit.c:48 msgid "" "Your name and email address were configured automatically based\n" "on your username and hostname. Please check that they are accurate.\n" @@ -4896,7 +4940,7 @@ msgstr "" "\n" " git commit --amend --reset-author\n" -#: builtin/commit.c:60 +#: builtin/commit.c:61 msgid "" "Your name and email address were configured automatically based\n" "on your username and hostname. Please check that they are accurate.\n" @@ -4922,7 +4966,7 @@ msgstr "" "\n" " git commit --amend --reset-author\n" -#: builtin/commit.c:72 +#: builtin/commit.c:73 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" @@ -4932,7 +4976,7 @@ msgstr "" "machen. Sie können Ihr Kommando mit --allow-empty wiederholen, oder diesen\n" "Commit mit \"git reset HEAD^\" vollständig entfernen.\n" -#: builtin/commit.c:77 +#: builtin/commit.c:78 msgid "" "The previous cherry-pick is now empty, possibly due to conflict resolution.\n" "If you wish to commit it anyway, use:\n" @@ -4947,11 +4991,11 @@ msgstr "" " git commit --allow-empty\n" "\n" -#: builtin/commit.c:84 +#: builtin/commit.c:85 msgid "Otherwise, please use 'git reset'\n" msgstr "Andernfalls benutzen Sie bitte 'git reset'\n" -#: builtin/commit.c:87 +#: builtin/commit.c:88 msgid "" "If you wish to skip this commit, use:\n" "\n" @@ -4967,67 +5011,67 @@ msgstr "" "Benutzen Sie anschließend \"git cherry-pick --continue\", um die\n" "Cherry-Pick-Operation mit den verbleibenden Commits fortzusetzen.\n" -#: builtin/commit.c:304 +#: builtin/commit.c:305 msgid "failed to unpack HEAD tree object" msgstr "Fehler beim Entpacken des \"Tree\"-Objektes von HEAD." -#: builtin/commit.c:345 +#: builtin/commit.c:346 msgid "unable to create temporary index" msgstr "Konnte temporären Index nicht erstellen." -#: builtin/commit.c:351 +#: builtin/commit.c:352 msgid "interactive add failed" msgstr "interaktives Hinzufügen fehlgeschlagen" -#: builtin/commit.c:364 +#: builtin/commit.c:365 msgid "unable to update temporary index" msgstr "Konnte temporären Index nicht aktualisieren." -#: builtin/commit.c:366 +#: builtin/commit.c:367 msgid "Failed to update main cache tree" msgstr "Konnte Haupt-Cache-Verzeichnis nicht aktualisieren" -#: builtin/commit.c:390 builtin/commit.c:413 builtin/commit.c:462 +#: builtin/commit.c:391 builtin/commit.c:414 builtin/commit.c:463 msgid "unable to write new_index file" msgstr "Konnte new_index Datei nicht schreiben" -#: builtin/commit.c:444 +#: builtin/commit.c:445 msgid "cannot do a partial commit during a merge." msgstr "Kann keinen Teil-Commit durchführen, während ein Merge im Gange ist." -#: builtin/commit.c:446 +#: builtin/commit.c:447 msgid "cannot do a partial commit during a cherry-pick." msgstr "" "Kann keinen Teil-Commit durchführen, während \"cherry-pick\" im Gange ist." -#: builtin/commit.c:455 +#: builtin/commit.c:456 msgid "cannot read the index" msgstr "Kann Index nicht lesen" -#: builtin/commit.c:474 +#: builtin/commit.c:475 msgid "unable to write temporary index file" msgstr "Konnte temporäre Index-Datei nicht schreiben." -#: builtin/commit.c:579 +#: builtin/commit.c:580 #, c-format msgid "commit '%s' lacks author header" msgstr "Commit '%s' fehlt Autor-Kopfbereich" -#: builtin/commit.c:581 +#: builtin/commit.c:582 #, c-format msgid "commit '%s' has malformed author line" msgstr "Commit '%s' hat fehlerhafte Autor-Zeile" -#: builtin/commit.c:600 +#: builtin/commit.c:601 msgid "malformed --author parameter" msgstr "Fehlerhafter --author Parameter" -#: builtin/commit.c:608 +#: builtin/commit.c:609 #, c-format msgid "invalid date format: %s" msgstr "Ungültiges Datumsformat: %s" -#: builtin/commit.c:652 +#: builtin/commit.c:653 msgid "" "unable to select a comment character that is not used\n" "in the current commit message" @@ -5035,38 +5079,38 @@ msgstr "" "Konnte kein Kommentar-Zeichen auswählen, das nicht in\n" "der aktuellen Commit-Beschreibung verwendet wird." -#: builtin/commit.c:689 builtin/commit.c:722 builtin/commit.c:1079 +#: builtin/commit.c:690 builtin/commit.c:723 builtin/commit.c:1080 #, c-format msgid "could not lookup commit %s" msgstr "Konnte Commit %s nicht nachschlagen" -#: builtin/commit.c:701 builtin/shortlog.c:273 +#: builtin/commit.c:702 builtin/shortlog.c:273 #, c-format msgid "(reading log message from standard input)\n" msgstr "(lese Log-Nachricht von Standard-Eingabe)\n" -#: builtin/commit.c:703 +#: builtin/commit.c:704 msgid "could not read log from standard input" msgstr "Konnte Log nicht von Standard-Eingabe lesen." -#: builtin/commit.c:707 +#: builtin/commit.c:708 #, c-format msgid "could not read log file '%s'" msgstr "Konnte Log-Datei '%s' nicht lesen" -#: builtin/commit.c:729 +#: builtin/commit.c:730 msgid "could not read MERGE_MSG" msgstr "Konnte MERGE_MSG nicht lesen" -#: builtin/commit.c:733 +#: builtin/commit.c:734 msgid "could not read SQUASH_MSG" msgstr "Konnte SQUASH_MSG nicht lesen" -#: builtin/commit.c:784 +#: builtin/commit.c:785 msgid "could not write commit template" msgstr "Konnte Commit-Vorlage nicht schreiben" -#: builtin/commit.c:802 +#: builtin/commit.c:803 #, c-format msgid "" "\n" @@ -5081,7 +5125,7 @@ msgstr "" "\t%s\n" "und versuchen Sie es erneut.\n" -#: builtin/commit.c:807 +#: builtin/commit.c:808 #, c-format msgid "" "\n" @@ -5096,7 +5140,7 @@ msgstr "" "\t%s\n" "und versuchen Sie es erneut.\n" -#: builtin/commit.c:820 +#: builtin/commit.c:821 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -5106,7 +5150,7 @@ msgstr "" "die mit '%c' beginnen, werden ignoriert, und eine leere Beschreibung\n" "bricht den Commit ab.\n" -#: builtin/commit.c:827 +#: builtin/commit.c:828 #, c-format msgid "" "Please enter the commit message for your changes. Lines starting\n" @@ -5119,156 +5163,157 @@ msgstr "" "entfernen.\n" "Eine leere Beschreibung bricht den Commit ab.\n" -#: builtin/commit.c:847 +#: builtin/commit.c:848 #, c-format msgid "%sAuthor: %.*s <%.*s>" msgstr "%sAutor: %.*s <%.*s>" -#: builtin/commit.c:855 +#: builtin/commit.c:856 #, c-format msgid "%sDate: %s" msgstr "%sDatum: %s" -#: builtin/commit.c:862 +#: builtin/commit.c:863 #, c-format msgid "%sCommitter: %.*s <%.*s>" msgstr "%sCommit-Ersteller: %.*s <%.*s>" -#: builtin/commit.c:880 +#: builtin/commit.c:881 msgid "Cannot read index" msgstr "Kann Index nicht lesen" -#: builtin/commit.c:937 +#: builtin/commit.c:938 msgid "Error building trees" msgstr "Fehler beim Erzeugen der \"Tree\"-Objekte" -#: builtin/commit.c:952 builtin/tag.c:495 +#: builtin/commit.c:953 builtin/tag.c:266 #, c-format msgid "Please supply the message using either -m or -F option.\n" msgstr "" "Bitte liefern Sie eine Beschreibung entweder mit der Option -m oder -F.\n" -#: builtin/commit.c:1054 +#: builtin/commit.c:1055 #, c-format msgid "--author '%s' is not 'Name <email>' and matches no existing author" msgstr "" "--author '%s' ist nicht im Format 'Name <E-Mail>' und stimmt mit keinem " "vorhandenen Autor überein" -#: builtin/commit.c:1069 builtin/commit.c:1309 +#: builtin/commit.c:1070 builtin/commit.c:1310 #, c-format msgid "Invalid untracked files mode '%s'" msgstr "Ungültiger Modus '%s' für unversionierte Dateien" -#: builtin/commit.c:1106 +#: builtin/commit.c:1107 msgid "--long and -z are incompatible" msgstr "Die Optionen --long und -z sind inkompatibel." -#: builtin/commit.c:1136 +#: builtin/commit.c:1137 msgid "Using both --reset-author and --author does not make sense" msgstr "" "Die Optionen --reset-author und --author können nicht gemeinsam verwendet " "werden." -#: builtin/commit.c:1145 +#: builtin/commit.c:1146 msgid "You have nothing to amend." msgstr "Sie haben nichts für \"--amend\"." -#: builtin/commit.c:1148 +#: builtin/commit.c:1149 msgid "You are in the middle of a merge -- cannot amend." msgstr "Ein Merge ist im Gange -- kann \"--amend\" nicht ausführen." -#: builtin/commit.c:1150 +#: builtin/commit.c:1151 msgid "You are in the middle of a cherry-pick -- cannot amend." msgstr "\"cherry-pick\" ist im Gange -- kann \"--amend\" nicht ausführen." -#: builtin/commit.c:1153 +#: builtin/commit.c:1154 msgid "Options --squash and --fixup cannot be used together" msgstr "" "Die Optionen --squash und --fixup können nicht gemeinsam verwendet werden." -#: builtin/commit.c:1163 +#: builtin/commit.c:1164 msgid "Only one of -c/-C/-F/--fixup can be used." msgstr "Es kann nur eine Option von -c/-C/-F/--fixup verwendet werden." -#: builtin/commit.c:1165 +#: builtin/commit.c:1166 msgid "Option -m cannot be combined with -c/-C/-F/--fixup." msgstr "Die Option -m kann nicht mit -c/-C/-F/--fixup kombiniert werden." -#: builtin/commit.c:1173 +#: builtin/commit.c:1174 msgid "--reset-author can be used only with -C, -c or --amend." msgstr "" "Die Option --reset--author kann nur mit -C, -c oder --amend verwendet werden." -#: builtin/commit.c:1190 +#: builtin/commit.c:1191 msgid "Only one of --include/--only/--all/--interactive/--patch can be used." msgstr "" "Es kann nur eine Option von --include/--only/--all/--interactive/--patch " "verwendet werden." -#: builtin/commit.c:1192 +#: builtin/commit.c:1193 msgid "No paths with --include/--only does not make sense." msgstr "" "Die Optionen --include und --only können nur mit der Angabe von Pfaden " "verwendet werden." -#: builtin/commit.c:1194 +#: builtin/commit.c:1195 msgid "Clever... amending the last one with dirty index." msgstr "Klug ... den letzten Commit mit einem geänderten Index nachbessern." -#: builtin/commit.c:1196 +#: builtin/commit.c:1197 msgid "Explicit paths specified without -i or -o; assuming --only paths..." msgstr "Explizite Pfade ohne -i oder -o angegeben; nehme --only an" -#: builtin/commit.c:1208 builtin/tag.c:730 +#: builtin/commit.c:1209 builtin/tag.c:475 #, c-format msgid "Invalid cleanup mode %s" msgstr "Ungültiger \"cleanup\" Modus %s" -#: builtin/commit.c:1213 +#: builtin/commit.c:1214 msgid "Paths with -a does not make sense." msgstr "Die Option -a kann nicht mit der Angabe von Pfaden verwendet werden." -#: builtin/commit.c:1323 builtin/commit.c:1602 +#: builtin/commit.c:1324 builtin/commit.c:1605 msgid "show status concisely" msgstr "Status im Kurzformat anzeigen" -#: builtin/commit.c:1325 builtin/commit.c:1604 +#: builtin/commit.c:1326 builtin/commit.c:1607 msgid "show branch information" msgstr "Branchinformationen anzeigen" -#: builtin/commit.c:1327 builtin/commit.c:1606 builtin/push.c:546 +#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544 +#: builtin/worktree.c:423 msgid "machine-readable output" msgstr "maschinenlesbare Ausgabe" -#: builtin/commit.c:1330 builtin/commit.c:1608 +#: builtin/commit.c:1331 builtin/commit.c:1611 msgid "show status in long format (default)" msgstr "Status im Langformat anzeigen (Standard)" -#: builtin/commit.c:1333 builtin/commit.c:1611 +#: builtin/commit.c:1334 builtin/commit.c:1614 msgid "terminate entries with NUL" msgstr "Einträge mit NUL-Zeichen abschließen" -#: builtin/commit.c:1335 builtin/commit.c:1614 builtin/fast-export.c:981 -#: builtin/fast-export.c:984 builtin/tag.c:604 +#: builtin/commit.c:1336 builtin/commit.c:1617 builtin/fast-export.c:981 +#: builtin/fast-export.c:984 builtin/tag.c:353 msgid "mode" msgstr "Modus" -#: builtin/commit.c:1336 builtin/commit.c:1614 +#: builtin/commit.c:1337 builtin/commit.c:1617 msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" "unversionierte Dateien anzeigen, optionale Modi: all, normal, no. (Standard: " "all)" -#: builtin/commit.c:1339 +#: builtin/commit.c:1340 msgid "show ignored files" msgstr "ignorierte Dateien anzeigen" -#: builtin/commit.c:1340 parse-options.h:155 +#: builtin/commit.c:1341 parse-options.h:155 msgid "when" msgstr "wann" -#: builtin/commit.c:1341 +#: builtin/commit.c:1342 msgid "" "ignore changes to submodules, optional when: all, dirty, untracked. " "(Default: all)" @@ -5276,198 +5321,203 @@ msgstr "" "Änderungen in Submodulen ignorieren, optional wenn: all, dirty, untracked. " "(Standard: all)" -#: builtin/commit.c:1343 +#: builtin/commit.c:1344 msgid "list untracked files in columns" msgstr "unversionierte Dateien in Spalten auflisten" -#: builtin/commit.c:1429 +#: builtin/commit.c:1430 msgid "couldn't look up newly created commit" msgstr "Konnte neu erstellten Commit nicht nachschlagen." -#: builtin/commit.c:1431 +#: builtin/commit.c:1432 msgid "could not parse newly created commit" msgstr "Konnte neulich erstellten Commit nicht analysieren." -#: builtin/commit.c:1476 +#: builtin/commit.c:1477 msgid "detached HEAD" msgstr "losgelöster HEAD" -#: builtin/commit.c:1479 +#: builtin/commit.c:1480 msgid " (root-commit)" msgstr " (Basis-Commit)" -#: builtin/commit.c:1572 +#: builtin/commit.c:1575 msgid "suppress summary after successful commit" msgstr "Zusammenfassung nach erfolgreichem Commit unterdrücken" -#: builtin/commit.c:1573 +#: builtin/commit.c:1576 msgid "show diff in commit message template" msgstr "Unterschiede in Commit-Beschreibungsvorlage anzeigen" -#: builtin/commit.c:1575 +#: builtin/commit.c:1578 msgid "Commit message options" msgstr "Optionen für Commit-Beschreibung" -#: builtin/commit.c:1576 builtin/tag.c:602 +#: builtin/commit.c:1579 builtin/tag.c:351 msgid "read message from file" msgstr "Beschreibung von Datei lesen" -#: builtin/commit.c:1577 +#: builtin/commit.c:1580 msgid "author" msgstr "Autor" -#: builtin/commit.c:1577 +#: builtin/commit.c:1580 msgid "override author for commit" msgstr "Autor eines Commits überschreiben" -#: builtin/commit.c:1578 builtin/gc.c:268 +#: builtin/commit.c:1581 builtin/gc.c:326 msgid "date" msgstr "Datum" -#: builtin/commit.c:1578 +#: builtin/commit.c:1581 msgid "override date for commit" msgstr "Datum eines Commits überschreiben" -#: builtin/commit.c:1579 builtin/merge.c:218 builtin/notes.c:392 -#: builtin/notes.c:555 builtin/tag.c:600 +#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392 +#: builtin/notes.c:555 builtin/tag.c:349 msgid "message" msgstr "Beschreibung" -#: builtin/commit.c:1579 +#: builtin/commit.c:1582 msgid "commit message" msgstr "Commit-Beschreibung" -#: builtin/commit.c:1580 +#: builtin/commit.c:1583 builtin/commit.c:1584 builtin/commit.c:1585 +#: builtin/commit.c:1586 parse-options.h:256 ref-filter.h:79 +msgid "commit" +msgstr "Commit" + +#: builtin/commit.c:1583 msgid "reuse and edit message from specified commit" msgstr "Beschreibung des angegebenen Commits wiederverwenden und editieren" -#: builtin/commit.c:1581 +#: builtin/commit.c:1584 msgid "reuse message from specified commit" msgstr "Beschreibung des angegebenen Commits wiederverwenden" -#: builtin/commit.c:1582 +#: builtin/commit.c:1585 msgid "use autosquash formatted message to fixup specified commit" msgstr "" "eine automatisch zusammengesetzte Beschreibung zum Nachbessern des " "angegebenen Commits verwenden" -#: builtin/commit.c:1583 +#: builtin/commit.c:1586 msgid "use autosquash formatted message to squash specified commit" msgstr "" "eine automatisch zusammengesetzte Beschreibung beim \"squash\" des " "angegebenen Commits verwenden" -#: builtin/commit.c:1584 +#: builtin/commit.c:1587 msgid "the commit is authored by me now (used with -C/-c/--amend)" msgstr "Sie als Autor des Commits setzen (verwendet mit -C/-c/--amend)" -#: builtin/commit.c:1585 builtin/log.c:1216 builtin/revert.c:86 +#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86 msgid "add Signed-off-by:" msgstr "'Signed-off-by:'-Zeile hinzufügen" -#: builtin/commit.c:1586 +#: builtin/commit.c:1589 msgid "use specified template file" msgstr "angegebene Vorlagendatei verwenden" -#: builtin/commit.c:1587 +#: builtin/commit.c:1590 msgid "force edit of commit" msgstr "Bearbeitung des Commits erzwingen" -#: builtin/commit.c:1588 +#: builtin/commit.c:1591 msgid "default" msgstr "Standard" -#: builtin/commit.c:1588 builtin/tag.c:605 +#: builtin/commit.c:1591 builtin/tag.c:354 msgid "how to strip spaces and #comments from message" msgstr "" "wie Leerzeichen und #Kommentare von der Beschreibung getrennt werden sollen" -#: builtin/commit.c:1589 +#: builtin/commit.c:1592 msgid "include status in commit message template" msgstr "Status in die Commit-Beschreibungsvorlage einfügen" -#: builtin/commit.c:1591 builtin/merge.c:226 builtin/pull.c:156 +#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156 #: builtin/revert.c:93 msgid "GPG sign commit" msgstr "Commit mit GPG signieren" -#: builtin/commit.c:1594 +#: builtin/commit.c:1597 msgid "Commit contents options" msgstr "Optionen für Commit-Inhalt" -#: builtin/commit.c:1595 +#: builtin/commit.c:1598 msgid "commit all changed files" msgstr "alle geänderten Dateien committen" -#: builtin/commit.c:1596 +#: builtin/commit.c:1599 msgid "add specified files to index for commit" msgstr "die angegebenen Dateien zusätzlich zum Commit vormerken" -#: builtin/commit.c:1597 +#: builtin/commit.c:1600 msgid "interactively add files" msgstr "interaktives Hinzufügen von Dateien" -#: builtin/commit.c:1598 +#: builtin/commit.c:1601 msgid "interactively add changes" msgstr "interaktives Hinzufügen von Änderungen" -#: builtin/commit.c:1599 +#: builtin/commit.c:1602 msgid "commit only specified files" msgstr "nur die angegebenen Dateien committen" -#: builtin/commit.c:1600 +#: builtin/commit.c:1603 msgid "bypass pre-commit hook" msgstr "\"pre-commit hook\" umgehen" -#: builtin/commit.c:1601 +#: builtin/commit.c:1604 msgid "show what would be committed" msgstr "anzeigen, was committet werden würde" -#: builtin/commit.c:1612 +#: builtin/commit.c:1615 msgid "amend previous commit" msgstr "vorherigen Commit ändern" -#: builtin/commit.c:1613 +#: builtin/commit.c:1616 msgid "bypass post-rewrite hook" msgstr "\"post-rewrite hook\" umgehen" -#: builtin/commit.c:1618 +#: builtin/commit.c:1621 msgid "ok to record an empty change" msgstr "Aufzeichnung einer leeren Änderung erlauben" -#: builtin/commit.c:1620 +#: builtin/commit.c:1623 msgid "ok to record a change with an empty message" msgstr "Aufzeichnung einer Änderung mit einer leeren Beschreibung erlauben" -#: builtin/commit.c:1649 +#: builtin/commit.c:1652 msgid "could not parse HEAD commit" msgstr "Konnte Commit von HEAD nicht analysieren." -#: builtin/commit.c:1695 +#: builtin/commit.c:1698 #, c-format msgid "Corrupt MERGE_HEAD file (%s)" msgstr "Beschädigte MERGE_HEAD-Datei (%s)" -#: builtin/commit.c:1702 +#: builtin/commit.c:1705 msgid "could not read MERGE_MODE" msgstr "Konnte MERGE_MODE nicht lesen" -#: builtin/commit.c:1721 +#: builtin/commit.c:1724 #, c-format msgid "could not read commit message: %s" msgstr "Konnte Commit-Beschreibung nicht lesen: %s" -#: builtin/commit.c:1732 +#: builtin/commit.c:1735 #, c-format msgid "Aborting commit; you did not edit the message.\n" msgstr "Commit abgebrochen; Sie haben die Beschreibung nicht editiert.\n" -#: builtin/commit.c:1737 +#: builtin/commit.c:1740 #, c-format msgid "Aborting commit due to empty commit message.\n" msgstr "Commit aufgrund leerer Beschreibung abgebrochen.\n" -#: builtin/commit.c:1785 +#: builtin/commit.c:1788 msgid "" "Repository has been updated, but unable to write\n" "new_index file. Check that disk is not full and quota is\n" @@ -5606,11 +5656,11 @@ msgstr "nur Variablennamen anzeigen" msgid "respect include directives on lookup" msgstr "beachtet \"include\"-Direktiven beim Nachschlagen" -#: builtin/config.c:311 +#: builtin/config.c:303 msgid "unable to parse default color value" msgstr "konnte Standard-Farbwert nicht parsen" -#: builtin/config.c:449 +#: builtin/config.c:441 #, c-format msgid "" "# This is Git's per-user configuration file.\n" @@ -5625,16 +5675,16 @@ msgstr "" "#\tname = %s\n" "#\temail = %s\n" -#: builtin/config.c:583 +#: builtin/config.c:575 #, c-format msgid "cannot create configuration file %s" msgstr "Konnte Konfigurationsdatei '%s' nicht erstellen." -#: builtin/count-objects.c:55 +#: builtin/count-objects.c:77 msgid "git count-objects [-v] [-H | --human-readable]" msgstr "git count-objects [-v] [-H | --human-readable]" -#: builtin/count-objects.c:65 +#: builtin/count-objects.c:87 msgid "print sizes in human readable format" msgstr "gibt Größenangaben in menschenlesbaren Format aus" @@ -5754,7 +5804,7 @@ msgstr "die jüngsten <n> Tags betrachten (Standard: 10)" msgid "only consider tags matching <pattern>" msgstr "nur Tags, die <Muster> entsprechen, betrachten" -#: builtin/describe.c:410 builtin/name-rev.c:318 +#: builtin/describe.c:410 builtin/name-rev.c:314 msgid "show abbreviated commit object as fallback" msgstr "gekürztes Commit-Objekt anzeigen, wenn sonst nichts zutrifft" @@ -5979,7 +6029,7 @@ msgid "! %-*s %-*s -> %s (can't fetch in current branch)" msgstr "" "! %-*s %-*s -> %s (kann \"fetch\" im aktuellen Branch nicht ausführen)" -#: builtin/fetch.c:478 builtin/fetch.c:564 +#: builtin/fetch.c:478 builtin/fetch.c:566 msgid "[rejected]" msgstr "[zurückgewiesen]" @@ -6003,41 +6053,41 @@ msgstr "[neuer Branch]" msgid "[new ref]" msgstr "[neue Referenz]" -#: builtin/fetch.c:560 +#: builtin/fetch.c:561 msgid "unable to update local ref" msgstr "kann lokale Referenz nicht aktualisieren" -#: builtin/fetch.c:560 +#: builtin/fetch.c:561 msgid "forced update" msgstr "Aktualisierung erzwungen" -#: builtin/fetch.c:566 +#: builtin/fetch.c:568 msgid "(non-fast-forward)" msgstr "(kein Vorspulen)" -#: builtin/fetch.c:600 builtin/fetch.c:842 +#: builtin/fetch.c:602 builtin/fetch.c:843 #, c-format msgid "cannot open %s: %s\n" msgstr "kann %s nicht öffnen: %s\n" -#: builtin/fetch.c:609 +#: builtin/fetch.c:611 #, c-format msgid "%s did not send all necessary objects\n" msgstr "%s hat nicht alle erforderlichen Objekte gesendet\n" -#: builtin/fetch.c:627 +#: builtin/fetch.c:629 #, c-format msgid "reject %s because shallow roots are not allowed to be updated" msgstr "" "%s wurde zurückgewiesen, da Ursprungs-Commits von Repositoriesmit " "unvollständiger Historie (shallow) nicht aktualisiert werden dürfen." -#: builtin/fetch.c:715 builtin/fetch.c:807 +#: builtin/fetch.c:716 builtin/fetch.c:808 #, c-format msgid "From %.*s\n" msgstr "Von %.*s\n" -#: builtin/fetch.c:726 +#: builtin/fetch.c:727 #, c-format msgid "" "some local refs could not be updated; try running\n" @@ -6046,57 +6096,57 @@ msgstr "" "Einige lokale Referenzen konnten nicht aktualisiert werden; versuchen Sie\n" "'git remote prune %s', um jeden älteren, widersprüchlichen Branch zu löschen." -#: builtin/fetch.c:778 +#: builtin/fetch.c:779 #, c-format msgid " (%s will become dangling)" msgstr " (%s wird unreferenziert)" -#: builtin/fetch.c:779 +#: builtin/fetch.c:780 #, c-format msgid " (%s has become dangling)" msgstr " (%s wurde unreferenziert)" -#: builtin/fetch.c:811 +#: builtin/fetch.c:812 msgid "[deleted]" msgstr "[gelöscht]" -#: builtin/fetch.c:812 builtin/remote.c:1034 +#: builtin/fetch.c:813 builtin/remote.c:1040 msgid "(none)" msgstr "(nichts)" -#: builtin/fetch.c:832 +#: builtin/fetch.c:833 #, c-format msgid "Refusing to fetch into current branch %s of non-bare repository" msgstr "" "Der \"fetch\" in den aktuellen Branch %s von einem nicht-Bare-Repository " "wurde verweigert." -#: builtin/fetch.c:851 +#: builtin/fetch.c:852 #, c-format msgid "Option \"%s\" value \"%s\" is not valid for %s" msgstr "Option \"%s\" Wert \"%s\" ist nicht gültig für %s" -#: builtin/fetch.c:854 +#: builtin/fetch.c:855 #, c-format msgid "Option \"%s\" is ignored for %s\n" msgstr "Option \"%s\" wird ignoriert für %s\n" -#: builtin/fetch.c:910 +#: builtin/fetch.c:911 #, c-format msgid "Don't know how to fetch from %s" msgstr "Weiß nicht wie von %s angefordert wird." -#: builtin/fetch.c:1071 +#: builtin/fetch.c:1072 #, c-format msgid "Fetching %s\n" msgstr "Fordere an von %s\n" -#: builtin/fetch.c:1073 builtin/remote.c:90 +#: builtin/fetch.c:1074 builtin/remote.c:96 #, c-format msgid "Could not fetch %s" msgstr "Konnte nicht von %s anfordern" -#: builtin/fetch.c:1091 +#: builtin/fetch.c:1092 msgid "" "No remote repository specified. Please, specify either a URL or a\n" "remote name from which new revisions should be fetched." @@ -6105,35 +6155,35 @@ msgstr "" "oder den Namen des Remote-Repositories an, von welchem neue\n" "Commits angefordert werden sollen." -#: builtin/fetch.c:1114 +#: builtin/fetch.c:1115 msgid "You need to specify a tag name." msgstr "Sie müssen den Namen des Tags angeben." -#: builtin/fetch.c:1156 +#: builtin/fetch.c:1157 msgid "--depth and --unshallow cannot be used together" msgstr "" "Die Optionen --depth und --unshallow können nicht gemeinsam verwendet werden." -#: builtin/fetch.c:1158 +#: builtin/fetch.c:1159 msgid "--unshallow on a complete repository does not make sense" msgstr "" "Die Option --unshallow kann nicht in einem Repository mit unvollständiger " "Historie verwendet werden." -#: builtin/fetch.c:1181 +#: builtin/fetch.c:1179 msgid "fetch --all does not take a repository argument" msgstr "fetch --all akzeptiert kein Repository als Argument" -#: builtin/fetch.c:1183 +#: builtin/fetch.c:1181 msgid "fetch --all does not make sense with refspecs" msgstr "fetch --all kann nicht mit Refspecs verwendet werden." -#: builtin/fetch.c:1194 +#: builtin/fetch.c:1192 #, c-format msgid "No such remote or remote group: %s" msgstr "Kein Remote-Repository (einzeln oder Gruppe): %s" -#: builtin/fetch.c:1202 +#: builtin/fetch.c:1200 msgid "Fetching a group and specifying refspecs does not make sense" msgstr "" "Das Abholen einer Gruppe von Remote-Repositories kann nicht mit der Angabe\n" @@ -6146,23 +6196,23 @@ msgstr "" "git fmt-merge-msg [-m <Beschreibung>] [--log[=<n>] | --no-log] [--file " "<Datei>]" -#: builtin/fmt-merge-msg.c:670 +#: builtin/fmt-merge-msg.c:667 msgid "populate log with at most <n> entries from shortlog" msgstr "Historie mit höchstens <n> Einträgen von \"shortlog\" hinzufügen" -#: builtin/fmt-merge-msg.c:673 +#: builtin/fmt-merge-msg.c:670 msgid "alias for --log (deprecated)" msgstr "Alias für --log (veraltet)" -#: builtin/fmt-merge-msg.c:676 +#: builtin/fmt-merge-msg.c:673 msgid "text" msgstr "Text" -#: builtin/fmt-merge-msg.c:677 +#: builtin/fmt-merge-msg.c:674 msgid "use <text> as start of message" msgstr "<Text> als Beschreibungsanfang verwenden" -#: builtin/fmt-merge-msg.c:678 +#: builtin/fmt-merge-msg.c:675 msgid "file to read from" msgstr "Datei zum Einlesen" @@ -6170,95 +6220,115 @@ msgstr "Datei zum Einlesen" msgid "git for-each-ref [<options>] [<pattern>]" msgstr "git for-each-ref [<Optionen>] [<Muster>]" -#: builtin/for-each-ref.c:24 +#: builtin/for-each-ref.c:10 +msgid "git for-each-ref [--points-at <object>]" +msgstr "git for-each-ref [--points-at <Objekt>]" + +#: builtin/for-each-ref.c:11 +msgid "git for-each-ref [(--merged | --no-merged) [<object>]]" +msgstr "git for-each-ref [(--merged | --no-merged) [<Objekt>]]" + +#: builtin/for-each-ref.c:12 +msgid "git for-each-ref [--contains [<object>]]" +msgstr "git for-each-ref [--contains [<Objekt>]]" + +#: builtin/for-each-ref.c:27 msgid "quote placeholders suitably for shells" msgstr "Platzhalter als Shell-String formatieren" -#: builtin/for-each-ref.c:26 +#: builtin/for-each-ref.c:29 msgid "quote placeholders suitably for perl" msgstr "Platzhalter als Perl-String formatieren" -#: builtin/for-each-ref.c:28 +#: builtin/for-each-ref.c:31 msgid "quote placeholders suitably for python" msgstr "Platzhalter als Python-String formatieren" -#: builtin/for-each-ref.c:30 +#: builtin/for-each-ref.c:33 msgid "quote placeholders suitably for Tcl" msgstr "Platzhalter als Tcl-String formatieren" -#: builtin/for-each-ref.c:33 +#: builtin/for-each-ref.c:36 msgid "show only <n> matched refs" msgstr "nur <n> passende Referenzen anzeigen" -#: builtin/for-each-ref.c:34 +#: builtin/for-each-ref.c:37 builtin/tag.c:372 msgid "format to use for the output" msgstr "für die Ausgabe zu verwendendes Format" -#: builtin/for-each-ref.c:35 -msgid "key" -msgstr "Schüssel" +#: builtin/for-each-ref.c:41 +msgid "print only refs which points at the given object" +msgstr "nur auf dieses Objekt zeigende Referenzen ausgeben" -#: builtin/for-each-ref.c:36 -msgid "field name to sort on" -msgstr "sortiere nach diesem Feld" +#: builtin/for-each-ref.c:43 +msgid "print only refs that are merged" +msgstr "nur zusammengeführte Referenzen ausgeben" + +#: builtin/for-each-ref.c:44 +msgid "print only refs that are not merged" +msgstr "nur nicht zusammengeführte Referenzen ausgeben" -#: builtin/fsck.c:163 builtin/prune.c:137 +#: builtin/for-each-ref.c:45 +msgid "print only refs which contain the commit" +msgstr "nur Referenzen ausgeben, die diesen Commit enthalten" + +#: builtin/fsck.c:156 builtin/prune.c:140 msgid "Checking connectivity" msgstr "Prüfe Konnektivität" -#: builtin/fsck.c:568 +#: builtin/fsck.c:486 msgid "Checking object directories" msgstr "Prüfe Objekt-Verzeichnisse" -#: builtin/fsck.c:631 +#: builtin/fsck.c:553 msgid "git fsck [<options>] [<object>...]" msgstr "git fsck [<Optionen>] [<Objekt>...]" -#: builtin/fsck.c:637 +#: builtin/fsck.c:559 msgid "show unreachable objects" msgstr "unerreichbare Objekte anzeigen" -#: builtin/fsck.c:638 +#: builtin/fsck.c:560 msgid "show dangling objects" msgstr "unreferenzierte Objekte anzeigen" -#: builtin/fsck.c:639 +#: builtin/fsck.c:561 msgid "report tags" msgstr "Tags melden" -#: builtin/fsck.c:640 +#: builtin/fsck.c:562 msgid "report root nodes" msgstr "Hauptwurzeln melden" -#: builtin/fsck.c:641 +#: builtin/fsck.c:563 msgid "make index objects head nodes" msgstr "Index-Objekte in Erreichbarkeitsprüfung einbeziehen" -#: builtin/fsck.c:642 +#: builtin/fsck.c:564 msgid "make reflogs head nodes (default)" msgstr "Reflogs in Erreichbarkeitsprüfung einbeziehen (Standard)" -#: builtin/fsck.c:643 +#: builtin/fsck.c:565 msgid "also consider packs and alternate objects" msgstr "ebenso Pakete und alternative Objekte betrachten" -#: builtin/fsck.c:644 +#: builtin/fsck.c:566 msgid "check only connectivity" msgstr "nur Konnektivität prüfen" -#: builtin/fsck.c:645 +#: builtin/fsck.c:567 msgid "enable more strict checking" msgstr "genauere Prüfung aktivieren" -#: builtin/fsck.c:647 +#: builtin/fsck.c:569 msgid "write dangling objects in .git/lost-found" msgstr "unreferenzierte Objekte nach .git/lost-found schreiben" -#: builtin/fsck.c:648 builtin/prune.c:107 +#: builtin/fsck.c:570 builtin/prune.c:107 msgid "show progress" msgstr "Fortschrittsanzeige anzeigen" -#: builtin/fsck.c:707 +#: builtin/fsck.c:631 msgid "Checking objects" msgstr "Prüfe Objekte" @@ -6266,54 +6336,70 @@ msgstr "Prüfe Objekte" msgid "git gc [<options>]" msgstr "git gc [<Optionen>]" -#: builtin/gc.c:55 +#: builtin/gc.c:72 #, c-format msgid "Invalid %s: '%s'" msgstr "Ungültiger %s: '%s'" -#: builtin/gc.c:100 +#: builtin/gc.c:139 #, c-format msgid "insanely long object directory %.*s" msgstr "zu langes Objekt-Verzeichnis %.*s" -#: builtin/gc.c:269 +#: builtin/gc.c:290 +#, c-format +msgid "" +"The last gc run reported the following. Please correct the root cause\n" +"and remove %s.\n" +"Automatic cleanup will not be performed until the file is removed.\n" +"\n" +"%s" +msgstr "" +"Die letzte Ausführung von \"gc run\" enthielt die folgenden Meldungen.\n" +"Bitte beheben Sie das Hauptproblem und löschen Sie %s.\n" +"Ein automatischer Cleanup wird nicht ausgeführt, bis diese Datei entfernt\n" +"wurde.\n" +"\n" +"%s" + +#: builtin/gc.c:327 msgid "prune unreferenced objects" msgstr "unreferenzierte Objekte entfernen" -#: builtin/gc.c:271 +#: builtin/gc.c:329 msgid "be more thorough (increased runtime)" msgstr "mehr Gründlichkeit (erhöht Laufzeit)" -#: builtin/gc.c:272 +#: builtin/gc.c:330 msgid "enable auto-gc mode" msgstr "\"auto-gc\" Modus aktivieren" -#: builtin/gc.c:273 +#: builtin/gc.c:331 msgid "force running gc even if there may be another gc running" msgstr "" "Ausführung von \"git gc\" erwzingen, selbst wenn ein anderes\n" "\"git gc\" bereits ausgeführt wird" -#: builtin/gc.c:315 +#: builtin/gc.c:373 #, c-format msgid "Auto packing the repository in background for optimum performance.\n" msgstr "" "Die Datenbank des Repositories wird für eine optimale Performance im\n" "Hintergrund komprimiert.\n" -#: builtin/gc.c:317 +#: builtin/gc.c:375 #, 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:318 +#: builtin/gc.c:376 #, c-format msgid "See \"git help gc\" for manual housekeeping.\n" msgstr "Siehe \"git help gc\" für manuelles Aufräumen.\n" -#: builtin/gc.c:336 +#: builtin/gc.c:397 #, c-format msgid "" "gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" @@ -6321,7 +6407,7 @@ msgstr "" "\"git gc\" wird bereits auf Maschine '%s' pid %<PRIuMAX> ausgeführt\n" "(benutzen Sie --force falls nicht)" -#: builtin/gc.c:364 +#: builtin/gc.c:441 msgid "" "There are too many unreachable loose objects; run 'git prune' to remove them." msgstr "" @@ -6357,211 +6443,207 @@ msgstr "Schalter '%c' erwartet einen numerischen Wert" msgid "cannot open '%s'" msgstr "kann '%s' nicht öffnen" -#: builtin/grep.c:638 +#: builtin/grep.c:633 msgid "search in index instead of in the work tree" msgstr "im Index anstatt im Arbeitsverzeichnis suchen" -#: builtin/grep.c:640 +#: builtin/grep.c:635 msgid "find in contents not managed by git" msgstr "auch in Inhalten finden, die nicht von Git verwaltet werden" -#: builtin/grep.c:642 +#: builtin/grep.c:637 msgid "search in both tracked and untracked files" msgstr "in versionierten und unversionierten Dateien suchen" -#: builtin/grep.c:644 +#: builtin/grep.c:639 msgid "ignore files specified via '.gitignore'" msgstr "Dateien, die über '.gitignore' angegeben sind, ignorieren" -#: builtin/grep.c:647 +#: builtin/grep.c:642 msgid "show non-matching lines" msgstr "Zeilen ohne Übereinstimmungen anzeigen" -#: builtin/grep.c:649 +#: builtin/grep.c:644 msgid "case insensitive matching" msgstr "Übereinstimmungen unabhängig von Groß- und Kleinschreibung finden" -#: builtin/grep.c:651 +#: builtin/grep.c:646 msgid "match patterns only at word boundaries" msgstr "nur ganze Wörter suchen" -#: builtin/grep.c:653 +#: builtin/grep.c:648 msgid "process binary files as text" msgstr "binäre Dateien als Text verarbeiten" -#: builtin/grep.c:655 +#: builtin/grep.c:650 msgid "don't match patterns in binary files" msgstr "keine Muster in Binärdateien finden" -#: builtin/grep.c:658 +#: builtin/grep.c:653 msgid "process binary files with textconv filters" msgstr "binäre Dateien mit \"textconv\"-Filtern verarbeiten" -#: builtin/grep.c:660 +#: builtin/grep.c:655 msgid "descend at most <depth> levels" msgstr "höchstens <Tiefe> Ebenen durchlaufen" -#: builtin/grep.c:664 +#: builtin/grep.c:659 msgid "use extended POSIX regular expressions" msgstr "erweiterte reguläre Ausdrücke aus POSIX verwenden" -#: builtin/grep.c:667 +#: builtin/grep.c:662 msgid "use basic POSIX regular expressions (default)" msgstr "grundlegende reguläre Ausdrücke aus POSIX verwenden (Standard)" -#: builtin/grep.c:670 +#: builtin/grep.c:665 msgid "interpret patterns as fixed strings" msgstr "Muster als feste Zeichenketten interpretieren" -#: builtin/grep.c:673 +#: builtin/grep.c:668 msgid "use Perl-compatible regular expressions" msgstr "Perl-kompatible reguläre Ausdrücke verwenden" -#: builtin/grep.c:676 +#: builtin/grep.c:671 msgid "show line numbers" msgstr "Zeilennummern anzeigen" -#: builtin/grep.c:677 +#: builtin/grep.c:672 msgid "don't show filenames" msgstr "keine Dateinamen anzeigen" -#: builtin/grep.c:678 +#: builtin/grep.c:673 msgid "show filenames" msgstr "Dateinamen anzeigen" -#: builtin/grep.c:680 +#: builtin/grep.c:675 msgid "show filenames relative to top directory" msgstr "Dateinamen relativ zum Projektverzeichnis anzeigen" -#: builtin/grep.c:682 +#: builtin/grep.c:677 msgid "show only filenames instead of matching lines" msgstr "nur Dateinamen anzeigen anstatt übereinstimmende Zeilen" -#: builtin/grep.c:684 +#: builtin/grep.c:679 msgid "synonym for --files-with-matches" msgstr "Synonym für --files-with-matches" -#: builtin/grep.c:687 +#: builtin/grep.c:682 msgid "show only the names of files without match" msgstr "nur die Dateinamen ohne Übereinstimmungen anzeigen" -#: builtin/grep.c:689 +#: builtin/grep.c:684 msgid "print NUL after filenames" msgstr "NUL-Zeichen nach Dateinamen ausgeben" -#: builtin/grep.c:691 +#: builtin/grep.c:686 msgid "show the number of matches instead of matching lines" msgstr "anstatt der Zeilen, die Anzahl der übereinstimmenden Zeilen anzeigen" -#: builtin/grep.c:692 +#: builtin/grep.c:687 msgid "highlight matches" msgstr "Übereinstimmungen hervorheben" -#: builtin/grep.c:694 +#: builtin/grep.c:689 msgid "print empty line between matches from different files" msgstr "" "eine Leerzeile zwischen Übereinstimmungen in verschiedenen Dateien ausgeben" -#: builtin/grep.c:696 +#: builtin/grep.c:691 msgid "show filename only once above matches from same file" msgstr "" "den Dateinamen nur einmal oberhalb der Übereinstimmungen aus dieser Datei " "anzeigen" -#: builtin/grep.c:699 +#: builtin/grep.c:694 msgid "show <n> context lines before and after matches" msgstr "<n> Zeilen vor und nach den Übereinstimmungen anzeigen" -#: builtin/grep.c:702 +#: builtin/grep.c:697 msgid "show <n> context lines before matches" msgstr "<n> Zeilen vor den Übereinstimmungen anzeigen" -#: builtin/grep.c:704 +#: builtin/grep.c:699 msgid "show <n> context lines after matches" msgstr "<n> Zeilen nach den Übereinstimmungen anzeigen" -#: builtin/grep.c:705 +#: builtin/grep.c:700 msgid "shortcut for -C NUM" msgstr "Kurzform für -C NUM" -#: builtin/grep.c:708 +#: builtin/grep.c:703 msgid "show a line with the function name before matches" msgstr "eine Zeile mit dem Funktionsnamen vor Übereinstimmungen anzeigen" -#: builtin/grep.c:710 +#: builtin/grep.c:705 msgid "show the surrounding function" msgstr "die umgebende Funktion anzeigen" -#: builtin/grep.c:713 +#: builtin/grep.c:708 msgid "read patterns from file" msgstr "Muster von einer Datei lesen" -#: builtin/grep.c:715 +#: builtin/grep.c:710 msgid "match <pattern>" msgstr "<Muster> finden" -#: builtin/grep.c:717 +#: builtin/grep.c:712 msgid "combine patterns specified with -e" msgstr "Muster kombinieren, die mit -e angegeben wurden" -#: builtin/grep.c:729 +#: builtin/grep.c:724 msgid "indicate hit with exit status without output" msgstr "Übereinstimmungen nur durch Beendigungsstatus anzeigen" -#: builtin/grep.c:731 +#: builtin/grep.c:726 msgid "show only matches from files that match all patterns" msgstr "" "nur Übereinstimmungen von Dateien anzeigen, die allen Mustern entsprechen" -#: builtin/grep.c:733 +#: builtin/grep.c:728 msgid "show parse tree for grep expression" msgstr "geparstes Verzeichnis für \"grep\"-Ausdruck anzeigen" -#: builtin/grep.c:737 +#: builtin/grep.c:732 msgid "pager" msgstr "Anzeigeprogramm" -#: builtin/grep.c:737 +#: builtin/grep.c:732 msgid "show matching files in the pager" msgstr "Dateien mit Übereinstimmungen im Anzeigeprogramm anzeigen" -#: builtin/grep.c:740 +#: builtin/grep.c:735 msgid "allow calling of grep(1) (ignored by this build)" msgstr "den Aufruf von grep(1) erlauben (von dieser Programmversion ignoriert)" -#: builtin/grep.c:741 builtin/show-ref.c:189 -msgid "show usage" -msgstr "Verwendung anzeigen" - -#: builtin/grep.c:808 +#: builtin/grep.c:793 msgid "no pattern given." msgstr "keine Muster angegeben" -#: builtin/grep.c:866 +#: builtin/grep.c:851 msgid "--open-files-in-pager only works on the worktree" msgstr "" "Die Option --open-files-in-pager kann nur innerhalb des " "Arbeitsverzeichnisses verwendet werden." -#: builtin/grep.c:892 +#: builtin/grep.c:877 msgid "--cached or --untracked cannot be used with --no-index." msgstr "" "Die Optionen --cached und --untracked können nicht mit --no-index verwendet " "werden." -#: builtin/grep.c:897 +#: builtin/grep.c:882 msgid "--no-index or --untracked cannot be used with revs." msgstr "" "Die Optionen --no-index und --untracked können nicht mit Commits verwendet " "werden." -#: builtin/grep.c:900 +#: builtin/grep.c:885 msgid "--[no-]exclude-standard cannot be used for tracked contents." msgstr "" "Die Option --[no-]exclude-standard kann nicht mit versionierten Inhalten " "verwendet werden." -#: builtin/grep.c:908 +#: builtin/grep.c:893 msgid "both --cached and trees are given." msgstr "Die Option --cached kann nicht mit \"Tree\"-Objekten verwendet werden." @@ -6574,10 +6656,10 @@ msgstr "" "[--] <Datei>..." #: builtin/hash-object.c:81 -msgid "git hash-object --stdin-paths < <list-of-paths>" -msgstr "git hash-object --stdin-paths < <Liste-von-Pfaden>" +msgid "git hash-object --stdin-paths" +msgstr "git hash-object --stdin-paths" -#: builtin/hash-object.c:92 builtin/tag.c:614 +#: builtin/hash-object.c:92 msgid "type" msgstr "Art" @@ -6650,12 +6732,12 @@ msgstr "Konnte Version des emacsclient nicht parsen." msgid "emacsclient version '%d' too old (< 22)." msgstr "Version des emacsclient '%d' ist zu alt (< 22)." -#: builtin/help.c:130 builtin/help.c:158 builtin/help.c:167 builtin/help.c:175 +#: builtin/help.c:130 builtin/help.c:151 builtin/help.c:160 builtin/help.c:168 #, c-format msgid "failed to exec '%s': %s" msgstr "Fehler beim Ausführen von '%s': %s" -#: builtin/help.c:215 +#: builtin/help.c:208 #, c-format msgid "" "'%s': path for unsupported man viewer.\n" @@ -6664,7 +6746,7 @@ msgstr "" "'%s': Pfad für nicht unterstützten Handbuchbetrachter.\n" "Sie könnten stattdessen 'man.<Werkzeug>.cmd' benutzen." -#: builtin/help.c:227 +#: builtin/help.c:220 #, c-format msgid "" "'%s': cmd for supported man viewer.\n" @@ -6673,61 +6755,61 @@ msgstr "" "'%s': Kommando für unterstützten Handbuchbetrachter.\n" "Sie könnten stattdessen 'man.<Werkzeug>.path' benutzen." -#: builtin/help.c:354 +#: builtin/help.c:337 #, c-format msgid "'%s': unknown man viewer." msgstr "'%s': unbekannter Handbuch-Betrachter." -#: builtin/help.c:371 +#: builtin/help.c:354 msgid "no man viewer handled the request" msgstr "kein Handbuch-Betrachter konnte mit dieser Anfrage umgehen" -#: builtin/help.c:379 +#: builtin/help.c:362 msgid "no info viewer handled the request" msgstr "kein Informations-Betrachter konnte mit dieser Anfrage umgehen" -#: builtin/help.c:428 +#: builtin/help.c:411 msgid "Defining attributes per path" msgstr "Definition von Attributen pro Pfad" -#: builtin/help.c:429 +#: builtin/help.c:412 msgid "Everyday Git With 20 Commands Or So" msgstr "Tägliche Benutzung von Git mit ungefähr 20 Kommandos" -#: builtin/help.c:430 +#: builtin/help.c:413 msgid "A Git glossary" msgstr "Ein Git-Glossar" -#: builtin/help.c:431 +#: builtin/help.c:414 msgid "Specifies intentionally untracked files to ignore" msgstr "Spezifikation von bewusst ignorierten, unversionierten Dateien" -#: builtin/help.c:432 +#: builtin/help.c:415 msgid "Defining submodule properties" msgstr "Definition von Submodul-Eigenschaften" -#: builtin/help.c:433 +#: builtin/help.c:416 msgid "Specifying revisions and ranges for Git" msgstr "Spezifikation von Commits und Bereichen für Git" -#: builtin/help.c:434 +#: builtin/help.c:417 msgid "A tutorial introduction to Git (for version 1.5.1 or newer)" msgstr "Eine einführende Anleitung zu Git (für Version 1.5.1 oder neuer)" -#: builtin/help.c:435 +#: builtin/help.c:418 msgid "An overview of recommended workflows with Git" msgstr "Eine Übersicht über empfohlene Arbeitsabläufe mit Git" -#: builtin/help.c:447 +#: builtin/help.c:430 msgid "The common Git guides are:\n" msgstr "Die allgemein verwendeten Git-Anleitungen sind:\n" -#: builtin/help.c:468 builtin/help.c:485 +#: builtin/help.c:451 builtin/help.c:468 #, c-format msgid "usage: %s%s" msgstr "Verwendung: %s%s" -#: builtin/help.c:501 +#: builtin/help.c:484 #, c-format msgid "`git %s' is aliased to `%s'" msgstr "für `git %s' wurde der Alias `%s' angelegt" @@ -7021,87 +7103,62 @@ msgstr "Name der Paketdatei '%s' endet nicht mit '.pack'" msgid "--verify with no packfile name given" msgstr "Die Option --verify wurde ohne Namen der Paketdatei angegeben." -#: builtin/init-db.c:36 -#, c-format -msgid "Could not make %s writable by group" -msgstr "Konnte Gruppenschreibrecht für %s nicht setzen." - -#: builtin/init-db.c:63 -#, c-format -msgid "insanely long template name %s" -msgstr "zu langer Vorlagen-Name %s" - -#: builtin/init-db.c:68 +#: builtin/init-db.c:55 #, c-format msgid "cannot stat '%s'" msgstr "Kann '%s' nicht lesen" -#: builtin/init-db.c:74 +#: builtin/init-db.c:61 #, c-format msgid "cannot stat template '%s'" msgstr "kann Vorlage '%s' nicht lesen" -#: builtin/init-db.c:81 +#: builtin/init-db.c:66 #, c-format msgid "cannot opendir '%s'" msgstr "kann Verzeichnis '%s' nicht öffnen" -#: builtin/init-db.c:98 +#: builtin/init-db.c:77 #, c-format msgid "cannot readlink '%s'" msgstr "kann Verweis '%s' nicht lesen" -#: builtin/init-db.c:100 -#, c-format -msgid "insanely long symlink %s" -msgstr "zu lange symbolische Verknüpfung %s" - -#: builtin/init-db.c:103 +#: builtin/init-db.c:79 #, c-format msgid "cannot symlink '%s' '%s'" msgstr "kann symbolische Verknüpfung '%s' auf '%s' nicht erstellen" -#: builtin/init-db.c:107 +#: builtin/init-db.c:85 #, c-format msgid "cannot copy '%s' to '%s'" msgstr "kann '%s' nicht nach '%s' kopieren" -#: builtin/init-db.c:111 +#: builtin/init-db.c:89 #, c-format msgid "ignoring template %s" msgstr "ignoriere Vorlage %s" -#: builtin/init-db.c:137 -#, c-format -msgid "insanely long template path %s" -msgstr "zu langer Vorlagen-Pfad %s" - -#: builtin/init-db.c:145 +#: builtin/init-db.c:118 #, c-format msgid "templates not found %s" msgstr "keine Vorlagen in '%s' gefunden" -#: builtin/init-db.c:158 +#: builtin/init-db.c:131 #, c-format msgid "not copying templates of a wrong format version %d from '%s'" msgstr "kopiere keine Vorlagen mit einer falschen Formatversion %d von '%s'" -#: builtin/init-db.c:212 -#, c-format -msgid "insane git directory %s" -msgstr "ungültiges Git-Verzeichnis %s" - -#: builtin/init-db.c:344 builtin/init-db.c:347 +#: builtin/init-db.c:309 builtin/init-db.c:312 #, c-format msgid "%s already exists" msgstr "%s existiert bereits" -#: builtin/init-db.c:375 +#: builtin/init-db.c:340 #, c-format msgid "unable to handle file type %d" msgstr "kann nicht mit Dateityp %d umgehen" -#: builtin/init-db.c:378 +#: builtin/init-db.c:343 #, c-format msgid "unable to move %s to %s" msgstr "Konnte %s nicht nach %s verschieben" @@ -7109,24 +7166,24 @@ msgstr "Konnte %s nicht nach %s verschieben" #. TRANSLATORS: The first '%s' is either "Reinitialized #. existing" or "Initialized empty", the second " shared" or #. "", and the last '%s%s' is the verbatim directory name. -#: builtin/init-db.c:434 +#: builtin/init-db.c:399 #, c-format msgid "%s%s Git repository in %s%s\n" msgstr "%s%s Git-Repository in %s%s\n" -#: builtin/init-db.c:435 +#: builtin/init-db.c:400 msgid "Reinitialized existing" msgstr "Reinitialisierte existierendes" -#: builtin/init-db.c:435 +#: builtin/init-db.c:400 msgid "Initialized empty" msgstr "Initialisierte leeres" -#: builtin/init-db.c:436 +#: builtin/init-db.c:401 msgid " shared" msgstr " gemeinsames" -#: builtin/init-db.c:483 +#: builtin/init-db.c:448 msgid "" "git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" "shared[=<permissions>]] [<directory>]" @@ -7134,25 +7191,25 @@ msgstr "" "git init [-q | --quiet] [--bare] [--template=<Vorlagenverzeichnis>] [--" "shared[=<Berechtigungen>]] [<Verzeichnis>]" -#: builtin/init-db.c:506 +#: builtin/init-db.c:471 msgid "permissions" msgstr "Berechtigungen" -#: builtin/init-db.c:507 +#: builtin/init-db.c:472 msgid "specify that the git repository is to be shared amongst several users" msgstr "angeben, dass das Git-Repository mit mehreren Benutzern geteilt wird" -#: builtin/init-db.c:541 builtin/init-db.c:546 +#: builtin/init-db.c:506 builtin/init-db.c:511 #, c-format msgid "cannot mkdir %s" msgstr "kann Verzeichnis %s nicht erstellen" -#: builtin/init-db.c:550 +#: builtin/init-db.c:515 #, c-format msgid "cannot chdir to %s" msgstr "kann nicht in Verzeichnis %s wechseln" -#: builtin/init-db.c:571 +#: builtin/init-db.c:536 #, c-format msgid "" "%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" @@ -7161,7 +7218,7 @@ msgstr "" "%s (oder --work-tree=<Verzeichnis>) nicht erlaubt ohne Spezifizierung von %s " "(oder --git-dir=<Verzeichnis>)" -#: builtin/init-db.c:599 +#: builtin/init-db.c:564 #, c-format msgid "Cannot access work tree '%s'" msgstr "Kann nicht auf Arbeitsverzeichnis '%s' zugreifen." @@ -7247,33 +7304,33 @@ msgstr "format.headers ohne Wert" msgid "name of output directory is too long" msgstr "Name des Ausgabeverzeichnisses ist zu lang." -#: builtin/log.c:814 +#: builtin/log.c:813 #, c-format msgid "Cannot open patch file %s" msgstr "Kann Patch-Datei %s nicht öffnen" -#: builtin/log.c:828 +#: builtin/log.c:827 msgid "Need exactly one range." msgstr "Brauche genau einen Commit-Bereich." -#: builtin/log.c:838 +#: builtin/log.c:837 msgid "Not a range." msgstr "Kein Commit-Bereich." -#: builtin/log.c:944 +#: builtin/log.c:943 msgid "Cover letter needs email format" msgstr "Anschreiben benötigt E-Mail-Format" -#: builtin/log.c:1023 +#: builtin/log.c:1022 #, c-format msgid "insane in-reply-to: %s" msgstr "ungültiges in-reply-to: %s" -#: builtin/log.c:1051 +#: builtin/log.c:1050 msgid "git format-patch [<options>] [<since> | <revision-range>]" msgstr "git format-patch [<Optionen>] [<seit> | <Commitbereich>]" -#: builtin/log.c:1096 +#: builtin/log.c:1095 msgid "Two output directories?" msgstr "Zwei Ausgabeverzeichnisse?" @@ -7330,131 +7387,135 @@ msgid "don't output binary diffs" msgstr "keine binären Unterschiede ausgeben" #: builtin/log.c:1241 +msgid "output all-zero hash in From header" +msgstr "Hash mit Nullen in \"From\"-Header ausgeben" + +#: builtin/log.c:1243 msgid "don't include a patch matching a commit upstream" msgstr "" "keine Patches einschließen, die einem Commit im Upstream-Branch entsprechen" -#: builtin/log.c:1243 +#: builtin/log.c:1245 msgid "show patch format instead of default (patch + stat)" msgstr "Patchformat anstatt des Standards anzeigen (Patch + Zusammenfassung)" -#: builtin/log.c:1245 +#: builtin/log.c:1247 msgid "Messaging" msgstr "E-Mail-Einstellungen" -#: builtin/log.c:1246 +#: builtin/log.c:1248 msgid "header" msgstr "Header" -#: builtin/log.c:1247 +#: builtin/log.c:1249 msgid "add email header" msgstr "E-Mail-Header hinzufügen" -#: builtin/log.c:1248 builtin/log.c:1250 +#: builtin/log.c:1250 builtin/log.c:1252 msgid "email" msgstr "E-Mail" -#: builtin/log.c:1248 +#: builtin/log.c:1250 msgid "add To: header" msgstr "\"To:\"-Header hinzufügen" -#: builtin/log.c:1250 +#: builtin/log.c:1252 msgid "add Cc: header" msgstr "\"Cc:\"-Header hinzufügen" -#: builtin/log.c:1252 +#: builtin/log.c:1254 msgid "ident" msgstr "Ident" -#: builtin/log.c:1253 +#: builtin/log.c:1255 msgid "set From address to <ident> (or committer ident if absent)" msgstr "" "\"From\"-Adresse auf <Ident> setzen (oder Ident des Commit-Erstellers, wenn " "fehlend)" -#: builtin/log.c:1255 +#: builtin/log.c:1257 msgid "message-id" msgstr "message-id" -#: builtin/log.c:1256 +#: builtin/log.c:1258 msgid "make first mail a reply to <message-id>" msgstr "aus erster E-Mail eine Antwort zu <message-id> machen" -#: builtin/log.c:1257 builtin/log.c:1260 +#: builtin/log.c:1259 builtin/log.c:1262 msgid "boundary" msgstr "Grenze" -#: builtin/log.c:1258 +#: builtin/log.c:1260 msgid "attach the patch" msgstr "den Patch anhängen" -#: builtin/log.c:1261 +#: builtin/log.c:1263 msgid "inline the patch" msgstr "den Patch direkt in die Nachricht einfügen" -#: builtin/log.c:1265 +#: builtin/log.c:1267 msgid "enable message threading, styles: shallow, deep" msgstr "Nachrichtenverkettung aktivieren, Stile: shallow, deep" -#: builtin/log.c:1267 +#: builtin/log.c:1269 msgid "signature" msgstr "Signatur" -#: builtin/log.c:1268 +#: builtin/log.c:1270 msgid "add a signature" msgstr "eine Signatur hinzufügen" -#: builtin/log.c:1270 +#: builtin/log.c:1272 msgid "add a signature from a file" msgstr "eine Signatur aus einer Datei hinzufügen" -#: builtin/log.c:1271 +#: builtin/log.c:1273 msgid "don't print the patch filenames" msgstr "keine Dateinamen der Patches anzeigen" -#: builtin/log.c:1360 +#: builtin/log.c:1362 msgid "-n and -k are mutually exclusive." msgstr "Die Optionen -n und -k schließen sich gegenseitig aus." -#: builtin/log.c:1362 +#: builtin/log.c:1364 msgid "--subject-prefix and -k are mutually exclusive." msgstr "Die Optionen --subject-prefix und -k schließen sich gegenseitig aus." -#: builtin/log.c:1370 +#: builtin/log.c:1372 msgid "--name-only does not make sense" msgstr "Die Option --name-only kann nicht verwendet werden." -#: builtin/log.c:1372 +#: builtin/log.c:1374 msgid "--name-status does not make sense" msgstr "Die Option --name-status kann nicht verwendet werden." -#: builtin/log.c:1374 +#: builtin/log.c:1376 msgid "--check does not make sense" msgstr "Die Option --check kann nicht verwendet werden." -#: builtin/log.c:1397 +#: builtin/log.c:1401 msgid "standard output, or directory, which one?" msgstr "Standard-Ausgabe oder Verzeichnis, welches von beidem?" -#: builtin/log.c:1399 +#: builtin/log.c:1403 #, c-format msgid "Could not create directory '%s'" msgstr "Konnte Verzeichnis '%s' nicht erstellen." -#: builtin/log.c:1496 +#: builtin/log.c:1500 #, c-format msgid "unable to read signature file '%s'" msgstr "Konnte Signatur-Datei '%s' nicht lesen" -#: builtin/log.c:1559 +#: builtin/log.c:1563 msgid "Failed to create output files" msgstr "Fehler beim Erstellen der Ausgabedateien." -#: builtin/log.c:1607 +#: builtin/log.c:1611 msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" msgstr "git cherry [-v] [<Upstream> [<Branch> [<Limit>]]]" -#: builtin/log.c:1661 +#: builtin/log.c:1665 #, c-format msgid "" "Could not find a tracked remote branch, please specify <upstream> manually.\n" @@ -7462,7 +7523,7 @@ msgstr "" "Konnte gefolgten Remote-Branch nicht finden, bitte geben Sie <Upstream> " "manuell an.\n" -#: builtin/log.c:1672 builtin/log.c:1674 builtin/log.c:1686 +#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690 #, c-format msgid "Unknown commit %s" msgstr "Unbekannter Commit %s" @@ -7568,35 +7629,35 @@ msgstr "Ausgaben zur Fehlersuche anzeigen" msgid "git ls-tree [<options>] <tree-ish> [<path>...]" msgstr "git ls-tree [<Optionen>] <Commit-Referenz> [<Pfad>...]" -#: builtin/ls-tree.c:127 +#: builtin/ls-tree.c:128 msgid "only show trees" msgstr "nur Verzeichnisse anzeigen" -#: builtin/ls-tree.c:129 +#: builtin/ls-tree.c:130 msgid "recurse into subtrees" msgstr "Rekursion in Unterverzeichnissen durchführen" -#: builtin/ls-tree.c:131 +#: builtin/ls-tree.c:132 msgid "show trees when recursing" msgstr "Verzeichnisse bei Rekursion anzeigen" -#: builtin/ls-tree.c:134 +#: builtin/ls-tree.c:135 msgid "terminate entries with NUL byte" msgstr "Einträge mit NUL-Byte abschließen" -#: builtin/ls-tree.c:135 +#: builtin/ls-tree.c:136 msgid "include object size" msgstr "Objektgröße einschließen" -#: builtin/ls-tree.c:137 builtin/ls-tree.c:139 +#: builtin/ls-tree.c:138 builtin/ls-tree.c:140 msgid "list only filenames" msgstr "nur Dateinamen auflisten" -#: builtin/ls-tree.c:142 +#: builtin/ls-tree.c:143 msgid "use full path names" msgstr "vollständige Pfadnamen verwenden" -#: builtin/ls-tree.c:144 +#: builtin/ls-tree.c:145 msgid "list entire tree; not just current directory (implies --full-name)" msgstr "" "das gesamte Verzeichnis auflisten; nicht nur das aktuelle Verzeichnis " @@ -7837,16 +7898,16 @@ msgstr "" msgid "No remote-tracking branch for %s from %s" msgstr "Kein Remote-Tracking-Branch für %s von %s" -#: builtin/merge.c:1081 +#: builtin/merge.c:1079 #, c-format msgid "could not close '%s'" msgstr "Konnte '%s' nicht schließen" -#: builtin/merge.c:1208 +#: builtin/merge.c:1206 msgid "There is no merge to abort (MERGE_HEAD missing)." msgstr "Es gibt keinen Merge zum Abbrechen (MERGE_HEAD fehlt)" -#: builtin/merge.c:1224 +#: builtin/merge.c:1222 msgid "" "You have not concluded your merge (MERGE_HEAD exists).\n" "Please, commit your changes before you merge." @@ -7854,7 +7915,7 @@ msgstr "" "Sie haben Ihren Merge nicht abgeschlossen (MERGE_HEAD existiert).\n" "Bitte committen Sie Ihre Änderungen, bevor Sie den Merge ausführen." -#: builtin/merge.c:1231 +#: builtin/merge.c:1229 msgid "" "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" "Please, commit your changes before you merge." @@ -7862,56 +7923,56 @@ msgstr "" "Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert).\n" "Bitte committen Sie Ihre Änderungen, bevor Sie den Merge ausführen." -#: builtin/merge.c:1234 +#: builtin/merge.c:1232 msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." msgstr "" "Sie haben \"cherry-pick\" nicht abgeschlossen (CHERRY_PICK_HEAD existiert)." -#: builtin/merge.c:1243 +#: builtin/merge.c:1241 msgid "You cannot combine --squash with --no-ff." msgstr "Sie können --squash nicht mit --no-ff kombinieren." -#: builtin/merge.c:1251 +#: builtin/merge.c:1249 msgid "No commit specified and merge.defaultToUpstream not set." msgstr "Kein Commit angegeben und merge.defaultToUpstream ist nicht gesetzt." -#: builtin/merge.c:1268 +#: builtin/merge.c:1266 msgid "Squash commit into empty head not supported yet" msgstr "" "Bin auf einem Commit, der noch geboren wird; kann \"squash\" nicht ausführen." -#: builtin/merge.c:1270 +#: builtin/merge.c:1268 msgid "Non-fast-forward commit does not make sense into an empty head" msgstr "" "Nicht vorzuspulender Commit kann nicht in einem leeren Branch verwendet " "werden." -#: builtin/merge.c:1276 +#: builtin/merge.c:1274 #, c-format msgid "%s - not something we can merge" msgstr "%s - nichts was wir zusammenführen können" -#: builtin/merge.c:1278 +#: builtin/merge.c:1276 msgid "Can merge only exactly one commit into empty head" msgstr "Kann nur exakt einen Commit in einem leeren Branch zusammenführen." -#: builtin/merge.c:1333 +#: builtin/merge.c:1331 #, c-format msgid "Commit %s has an untrusted GPG signature, allegedly by %s." msgstr "" "Commit %s hat eine nicht vertrauenswürdige GPG-Signatur, angeblich von %s." -#: builtin/merge.c:1336 +#: builtin/merge.c:1334 #, c-format msgid "Commit %s has a bad GPG signature allegedly by %s." msgstr "Commit %s hat eine ungültige GPG-Signatur, angeblich von %s." -#: builtin/merge.c:1339 +#: builtin/merge.c:1337 #, c-format msgid "Commit %s does not have a GPG signature." msgstr "Commit %s hat keine GPG-Signatur." -#: builtin/merge.c:1342 +#: builtin/merge.c:1340 #, c-format msgid "Commit %s has a good GPG signature by %s\n" msgstr "Commit %s hat eine gültige GPG-Signatur von %s\n" @@ -7921,46 +7982,46 @@ msgstr "Commit %s hat eine gültige GPG-Signatur von %s\n" msgid "Updating %s..%s\n" msgstr "Aktualisiere %s..%s\n" -#: builtin/merge.c:1462 +#: builtin/merge.c:1460 #, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Probiere wirklich trivialen \"in-index\"-Merge ...\n" -#: builtin/merge.c:1469 +#: builtin/merge.c:1467 #, c-format msgid "Nope.\n" msgstr "Nein.\n" -#: builtin/merge.c:1501 +#: builtin/merge.c:1499 msgid "Not possible to fast-forward, aborting." msgstr "Vorspulen nicht möglich, breche ab." -#: builtin/merge.c:1524 builtin/merge.c:1603 +#: builtin/merge.c:1522 builtin/merge.c:1601 #, c-format msgid "Rewinding the tree to pristine...\n" msgstr "Rücklauf des Verzeichnisses bis zum Ursprung ...\n" -#: builtin/merge.c:1528 +#: builtin/merge.c:1526 #, c-format msgid "Trying merge strategy %s...\n" msgstr "Probiere Merge-Strategie %s ...\n" -#: builtin/merge.c:1594 +#: builtin/merge.c:1592 #, c-format msgid "No merge strategy handled the merge.\n" msgstr "Keine Merge-Strategie behandelt diesen Merge.\n" -#: builtin/merge.c:1596 +#: builtin/merge.c:1594 #, c-format msgid "Merge with strategy %s failed.\n" msgstr "Merge mit Strategie %s fehlgeschlagen.\n" -#: builtin/merge.c:1605 +#: builtin/merge.c:1603 #, c-format msgid "Using the %s to prepare resolving by hand.\n" msgstr "Benutzen Sie \"%s\", um die Auflösung per Hand vorzubereiten.\n" -#: builtin/merge.c:1617 +#: builtin/merge.c:1615 #, c-format msgid "Automatic merge went well; stopped before committing as requested\n" msgstr "" @@ -8152,48 +8213,48 @@ msgstr "%s, Quelle=%s, Ziel=%s" msgid "Renaming %s to %s\n" msgstr "Benenne %s nach %s um\n" -#: builtin/mv.c:256 builtin/remote.c:722 builtin/repack.c:362 +#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365 #, c-format msgid "renaming '%s' failed" msgstr "Umbenennung von '%s' fehlgeschlagen" -#: builtin/name-rev.c:255 +#: builtin/name-rev.c:251 msgid "git name-rev [<options>] <commit>..." msgstr "git name-rev [<Optionen>] <Commit>..." -#: builtin/name-rev.c:256 +#: builtin/name-rev.c:252 msgid "git name-rev [<options>] --all" msgstr "git name-rev [<Optionen>] --all" -#: builtin/name-rev.c:257 +#: builtin/name-rev.c:253 msgid "git name-rev [<options>] --stdin" msgstr "git name-rev [<Optionen>] --stdin" -#: builtin/name-rev.c:309 +#: builtin/name-rev.c:305 msgid "print only names (no SHA-1)" msgstr "nur Namen anzeigen (keine SHA-1)" -#: builtin/name-rev.c:310 +#: builtin/name-rev.c:306 msgid "only use tags to name the commits" msgstr "nur Tags verwenden, um die Commits zu benennen" -#: builtin/name-rev.c:312 +#: builtin/name-rev.c:308 msgid "only use refs matching <pattern>" msgstr "nur Referenzen verwenden die <Muster> entsprechen" -#: builtin/name-rev.c:314 +#: builtin/name-rev.c:310 msgid "list all commits reachable from all refs" msgstr "alle Commits auflisten, die von allen Referenzen erreichbar sind" -#: builtin/name-rev.c:315 +#: builtin/name-rev.c:311 msgid "read from stdin" msgstr "von der Standard-Eingabe lesen" -#: builtin/name-rev.c:316 +#: builtin/name-rev.c:312 msgid "allow to print `undefined` names (default)" msgstr "Ausgabe von `undefinierten` Namen erlauben (Standard)" -#: builtin/name-rev.c:322 +#: builtin/name-rev.c:318 msgid "dereference tags in the input (internal use)" msgstr "Tags in der Eingabe dereferenzieren (interne Verwendung)" @@ -8323,7 +8384,7 @@ msgstr "Konnte Ausgabe von 'show' nicht lesen." msgid "failed to finish 'show' for object '%s'" msgstr "konnte 'show' für Objekt '%s' nicht abschließen" -#: builtin/notes.c:174 builtin/tag.c:477 +#: builtin/notes.c:174 builtin/tag.c:248 #, c-format msgid "could not create file '%s'" msgstr "konnte Datei '%s' nicht erstellen" @@ -8342,12 +8403,12 @@ msgstr "Konnte Notiz-Objekt nicht schreiben" msgid "The note contents have been left in %s" msgstr "Die Notiz-Inhalte wurden in %s belassen" -#: builtin/notes.c:232 builtin/tag.c:695 +#: builtin/notes.c:232 builtin/tag.c:440 #, c-format msgid "cannot read '%s'" msgstr "kann '%s' nicht lesen" -#: builtin/notes.c:234 builtin/tag.c:698 +#: builtin/notes.c:234 builtin/tag.c:443 #, c-format msgid "could not open or read '%s'" msgstr "konnte '%s' nicht öffnen oder lesen" @@ -8355,7 +8416,7 @@ msgstr "konnte '%s' nicht öffnen oder lesen" #: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306 #: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507 #: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653 -#: builtin/notes.c:877 builtin/tag.c:711 +#: builtin/notes.c:877 builtin/tag.c:456 #, c-format msgid "Failed to resolve '%s' as a valid ref." msgstr "Konnte '%s' nicht als gültige Referenz auflösen." @@ -8389,11 +8450,6 @@ msgstr "Notizinhalte als Zeichenkette" msgid "note contents in a file" msgstr "Notizinhalte in einer Datei" -#: builtin/notes.c:398 builtin/notes.c:401 builtin/notes.c:561 -#: builtin/notes.c:564 builtin/tag.c:630 -msgid "object" -msgstr "Objekt" - #: builtin/notes.c:399 builtin/notes.c:562 msgid "reuse and edit specified note object" msgstr "Wiederverwendung und Bearbeitung des angegebenen Notiz-Objektes" @@ -8526,7 +8582,7 @@ msgstr "Notiz-Referenz" msgid "use notes from <notes-ref>" msgstr "Notizen von <Notiz-Referenz> verwenden" -#: builtin/notes.c:1012 builtin/remote.c:1588 +#: builtin/notes.c:1012 builtin/remote.c:1647 #, c-format msgid "Unknown subcommand: %s" msgstr "Unbekanntes Unterkommando: %s" @@ -8747,20 +8803,24 @@ msgstr "Lösche doppelte Objekte" msgid "git prune [-n] [-v] [--expire <time>] [--] [<head>...]" msgstr "git prune [-n] [-v] [--expire <Zeit>] [--] [<head>...]" -#: builtin/prune.c:105 builtin/worktree.c:121 +#: builtin/prune.c:105 builtin/worktree.c:124 msgid "do not remove, show only" msgstr "nicht löschen, nur anzeigen" -#: builtin/prune.c:106 builtin/worktree.c:122 +#: builtin/prune.c:106 builtin/worktree.c:125 msgid "report pruned objects" msgstr "gelöschte Objekte melden" -#: builtin/prune.c:109 builtin/worktree.c:124 +#: builtin/prune.c:109 builtin/worktree.c:127 msgid "expire objects older than <time>" msgstr "Objekte älter als <Zeit> verfallen lassen" +#: builtin/prune.c:123 +msgid "cannot prune in a precious-objects repo" +msgstr "kann \"prune\" in precious-objects Repository nicht ausführen" + #: builtin/pull.c:69 -msgid "git pull [options] [<repository> [<refspec>...]]" +msgid "git pull [<options>] [<repository> [<refspec>...]]" msgstr "git pull [<Optionen>] [<Repository> [<Refspec>...]]" #: builtin/pull.c:113 @@ -8925,19 +8985,19 @@ msgstr "Kann nicht mehrere Branches in einen leeren Branch zusammenführen." msgid "Cannot rebase onto multiple branches." msgstr "Kann Rebase nicht auf mehrere Branches ausführen." -#: builtin/push.c:15 +#: builtin/push.c:16 msgid "git push [<options>] [<repository> [<refspec>...]]" msgstr "git push [<Optionen>] [<Repository> [<Refspec>...]]" -#: builtin/push.c:86 +#: builtin/push.c:88 msgid "tag shorthand without <tag>" msgstr "Kurzschrift für Tag ohne <Tag>" -#: builtin/push.c:96 +#: builtin/push.c:98 msgid "--delete only accepts plain target ref names" msgstr "Die Option --delete akzeptiert nur reine Referenznamen als Ziel." -#: builtin/push.c:140 +#: builtin/push.c:142 msgid "" "\n" "To choose either option permanently, see push.default in 'git help config'." @@ -8946,7 +9006,7 @@ msgstr "" "Um eine Variante permanent zu verwenden, siehe push.default in 'git help " "config'." -#: builtin/push.c:143 +#: builtin/push.c:145 #, c-format msgid "" "The upstream branch of your current branch does not match\n" @@ -8972,7 +9032,7 @@ msgstr "" " git push %s %s\n" "%s" -#: builtin/push.c:158 +#: builtin/push.c:160 #, c-format msgid "" "You are not currently on a branch.\n" @@ -8987,7 +9047,7 @@ msgstr "" "\n" " git push %s HEAD:<Name-des-Remote-Branches>\n" -#: builtin/push.c:172 +#: builtin/push.c:174 #, c-format msgid "" "The current branch %s has no upstream branch.\n" @@ -9001,13 +9061,13 @@ msgstr "" "\n" " git push --set-upstream %s %s\n" -#: builtin/push.c:180 +#: builtin/push.c:182 #, c-format msgid "The current branch %s has multiple upstream branches, refusing to push." msgstr "" "Der aktuelle Branch %s hat mehrere Upstream-Branches, \"push\" verweigert." -#: builtin/push.c:183 +#: builtin/push.c:185 #, c-format msgid "" "You are pushing to remote '%s', which is not the upstream of\n" @@ -9018,7 +9078,7 @@ msgstr "" "Branches '%s' ist, ohne anzugeben, was versendet werden soll, um welchen\n" "Remote-Branch zu aktualisieren." -#: builtin/push.c:206 +#: builtin/push.c:208 msgid "" "push.default is unset; its implicit value has changed in\n" "Git 2.0 from 'matching' to 'simple'. To squelch this message\n" @@ -9069,14 +9129,14 @@ msgstr "" "von\n" "Git benutzen.)" -#: builtin/push.c:273 +#: builtin/push.c:275 msgid "" "You didn't specify any refspecs to push, and push.default is \"nothing\"." msgstr "" "Sie haben keine Refspec für \"push\" angegeben, und push.default ist " "\"nothing\"." -#: builtin/push.c:280 +#: builtin/push.c:282 msgid "" "Updates were rejected because the tip of your current branch is behind\n" "its remote counterpart. Integrate the remote changes (e.g.\n" @@ -9090,7 +9150,7 @@ msgstr "" "Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n" "für weitere Details." -#: builtin/push.c:286 +#: builtin/push.c:288 msgid "" "Updates were rejected because a pushed branch tip is behind its remote\n" "counterpart. Check out this branch and integrate the remote changes\n" @@ -9104,7 +9164,7 @@ msgstr "" "Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n" "für weitere Details." -#: builtin/push.c:292 +#: builtin/push.c:294 msgid "" "Updates were rejected because the remote contains work that you do\n" "not have locally. This is usually caused by another repository pushing\n" @@ -9123,13 +9183,13 @@ msgstr "" "Siehe auch die Sektion 'Note about fast-forwards' in 'git push --help'\n" "für weitere Details." -#: builtin/push.c:299 +#: builtin/push.c:301 msgid "Updates were rejected because the tag already exists in the remote." msgstr "" "Aktualisierungen wurden zurückgewiesen, weil das Tag bereits\n" "im Remote-Repository existiert." -#: builtin/push.c:302 +#: builtin/push.c:304 msgid "" "You cannot update a remote ref that points at a non-commit object,\n" "or update a remote ref to make it point at a non-commit object,\n" @@ -9139,22 +9199,22 @@ msgstr "" "das kein Commit ist, oder es auf ein solches Objekt zeigen lassen, ohne\n" "die Option '--force' zu verwenden.\n" -#: builtin/push.c:361 +#: builtin/push.c:363 #, c-format msgid "Pushing to %s\n" msgstr "Versende nach %s\n" -#: builtin/push.c:365 +#: builtin/push.c:367 #, c-format msgid "failed to push some refs to '%s'" msgstr "Fehler beim Versenden einiger Referenzen nach '%s'" -#: builtin/push.c:395 +#: builtin/push.c:397 #, c-format msgid "bad repository '%s'" msgstr "ungültiges Repository '%s'" -#: builtin/push.c:396 +#: builtin/push.c:398 msgid "" "No configured push destination.\n" "Either specify the URL from the command-line or configure a remote " @@ -9176,100 +9236,104 @@ msgstr "" "\n" " git push <Name>\n" -#: builtin/push.c:411 +#: builtin/push.c:413 msgid "--all and --tags are incompatible" msgstr "Die Optionen --all und --tags sind inkompatibel." -#: builtin/push.c:412 +#: builtin/push.c:414 msgid "--all can't be combined with refspecs" msgstr "Die Option --all kann nicht mit Refspecs kombiniert werden." -#: builtin/push.c:417 +#: builtin/push.c:419 msgid "--mirror and --tags are incompatible" msgstr "Die Optionen --mirror und --tags sind inkompatibel." -#: builtin/push.c:418 +#: builtin/push.c:420 msgid "--mirror can't be combined with refspecs" msgstr "Die Option --mirror kann nicht mit Refspecs kombiniert werden." -#: builtin/push.c:423 +#: builtin/push.c:425 msgid "--all and --mirror are incompatible" msgstr "Die Optionen --all und --mirror sind inkompatibel." -#: builtin/push.c:539 +#: builtin/push.c:537 msgid "repository" msgstr "Repository" -#: builtin/push.c:540 builtin/send-pack.c:161 +#: builtin/push.c:538 builtin/send-pack.c:161 msgid "push all refs" msgstr "alle Referenzen versenden" -#: builtin/push.c:541 builtin/send-pack.c:163 +#: builtin/push.c:539 builtin/send-pack.c:163 msgid "mirror all refs" msgstr "alle Referenzen spiegeln" -#: builtin/push.c:543 +#: builtin/push.c:541 msgid "delete refs" msgstr "Referenzen löschen" -#: builtin/push.c:544 +#: builtin/push.c:542 msgid "push tags (can't be used with --all or --mirror)" msgstr "Tags versenden (kann nicht mit --all oder --mirror verwendet werden)" -#: builtin/push.c:547 builtin/send-pack.c:164 +#: builtin/push.c:545 builtin/send-pack.c:164 msgid "force updates" msgstr "Aktualisierung erzwingen" -#: builtin/push.c:549 builtin/send-pack.c:175 +#: builtin/push.c:547 builtin/send-pack.c:175 msgid "refname>:<expect" msgstr "Referenzname>:<Erwartungswert" -#: builtin/push.c:550 builtin/send-pack.c:176 +#: builtin/push.c:548 builtin/send-pack.c:176 msgid "require old value of ref to be at this value" msgstr "Referenz muss sich auf dem angegebenen Wert befinden" -#: builtin/push.c:553 +#: builtin/push.c:550 +msgid "check|on-demand|no" +msgstr "check|on-demand|no" + +#: builtin/push.c:551 msgid "control recursive pushing of submodules" msgstr "rekursiven \"push\" von Submodulen steuern" -#: builtin/push.c:555 builtin/send-pack.c:169 +#: builtin/push.c:553 builtin/send-pack.c:169 msgid "use thin pack" msgstr "kleinere Pakete verwenden" -#: builtin/push.c:556 builtin/push.c:557 builtin/send-pack.c:158 +#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158 #: builtin/send-pack.c:159 msgid "receive pack program" msgstr "'receive pack' Programm" -#: builtin/push.c:558 +#: builtin/push.c:556 msgid "set upstream for git pull/status" msgstr "Upstream für \"git pull/status\" setzen" -#: builtin/push.c:561 +#: builtin/push.c:559 msgid "prune locally removed refs" msgstr "lokal gelöschte Referenzen entfernen" -#: builtin/push.c:563 +#: builtin/push.c:561 msgid "bypass pre-push hook" msgstr "\"pre-push hook\" umgehen" -#: builtin/push.c:564 +#: builtin/push.c:562 msgid "push missing but relevant tags" msgstr "fehlende, aber relevante Tags versenden" -#: builtin/push.c:567 builtin/send-pack.c:166 +#: builtin/push.c:565 builtin/send-pack.c:166 msgid "GPG sign the push" msgstr "signiert \"push\" mit GPG" -#: builtin/push.c:569 builtin/send-pack.c:170 +#: builtin/push.c:567 builtin/send-pack.c:170 msgid "request atomic transaction on remote side" msgstr "Referenzen atomar versenden" -#: builtin/push.c:579 +#: builtin/push.c:577 msgid "--delete is incompatible with --all, --mirror and --tags" msgstr "Die Option --delete ist inkompatibel mit --all, --mirror und --tags." -#: builtin/push.c:581 +#: builtin/push.c:579 msgid "--delete doesn't make sense without any refs" msgstr "Die Option --delete kann nur mit Referenzen verwendet werden." @@ -9348,12 +9412,12 @@ msgstr "Anwendung des Filters für spärliches Auschecken überspringen" msgid "debug unpack-trees" msgstr "Entpacken der Bäume protokollieren" -#: builtin/reflog.c:432 +#: builtin/reflog.c:428 #, c-format msgid "'%s' for '%s' is not a valid timestamp" msgstr "'%s' ist kein gültiger Zeitstempel für '%s'" -#: builtin/reflog.c:549 builtin/reflog.c:554 +#: builtin/reflog.c:545 builtin/reflog.c:550 #, c-format msgid "'%s' is not a valid timestamp" msgstr "'%s' ist kein gültiger Zeitstempel" @@ -9370,15 +9434,15 @@ msgstr "" "git remote add [-t <Branch>] [-m <master>] [-f] [--tags | --no-tags] [--" "mirror=<fetch|push>] <Name> <URL>" -#: builtin/remote.c:14 builtin/remote.c:33 +#: builtin/remote.c:14 builtin/remote.c:34 msgid "git remote rename <old> <new>" msgstr "git remote rename <alt> <neu>" -#: builtin/remote.c:15 builtin/remote.c:38 +#: builtin/remote.c:15 builtin/remote.c:39 msgid "git remote remove <name>" msgstr "git remote remove <Name>" -#: builtin/remote.c:16 builtin/remote.c:43 +#: builtin/remote.c:16 builtin/remote.c:44 msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)" msgstr "git remote set-head <Name> (-a | --auto | -d | --delete | <Branch>)" @@ -9400,48 +9464,52 @@ msgstr "" msgid "git remote set-branches [--add] <name> <branch>..." msgstr "git remote set-branches [--add] <Name> <Branch>..." -#: builtin/remote.c:21 builtin/remote.c:69 +#: builtin/remote.c:21 builtin/remote.c:70 +msgid "git remote get-url [--push] [--all] <name>" +msgstr "git remote get-url [--push] [--all] <Name>" + +#: builtin/remote.c:22 builtin/remote.c:75 msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]" msgstr "git remote set-url [--push] <Name> <neueURL> [<alteURL>]" -#: builtin/remote.c:22 builtin/remote.c:70 +#: builtin/remote.c:23 builtin/remote.c:76 msgid "git remote set-url --add <name> <newurl>" msgstr "git remote set-url --add <Name> <neueURL>" -#: builtin/remote.c:23 builtin/remote.c:71 +#: builtin/remote.c:24 builtin/remote.c:77 msgid "git remote set-url --delete <name> <url>" msgstr "git remote set-url --delete <Name> <URL>" -#: builtin/remote.c:28 +#: builtin/remote.c:29 msgid "git remote add [<options>] <name> <url>" msgstr "git remote add [<Optionen>] <Name> <URL>" -#: builtin/remote.c:48 +#: builtin/remote.c:49 msgid "git remote set-branches <name> <branch>..." msgstr "git remote set-branches <Name> <Branch>..." -#: builtin/remote.c:49 +#: builtin/remote.c:50 msgid "git remote set-branches --add <name> <branch>..." msgstr "git remote set-branches --add <Name> <Branch>..." -#: builtin/remote.c:54 +#: builtin/remote.c:55 msgid "git remote show [<options>] <name>" msgstr "git remote show [<Optionen>] <Name>" -#: builtin/remote.c:59 +#: builtin/remote.c:60 msgid "git remote prune [<options>] <name>" msgstr "git remote prune [<Optionen>] <Name>" -#: builtin/remote.c:64 +#: builtin/remote.c:65 msgid "git remote update [<options>] [<group> | <remote>]..." msgstr "git remote update [<Optionen>] [<Gruppe> | <externesRepository>]..." -#: builtin/remote.c:88 +#: builtin/remote.c:94 #, c-format msgid "Updating %s" msgstr "Aktualisiere %s" -#: builtin/remote.c:120 +#: builtin/remote.c:126 msgid "" "--mirror is dangerous and deprecated; please\n" "\t use --mirror=fetch or --mirror=push instead" @@ -9449,102 +9517,102 @@ msgstr "" "--mirror ist gefährlich und veraltet; bitte\n" "\t benutzen Sie stattdessen --mirror=fetch oder --mirror=push" -#: builtin/remote.c:137 +#: builtin/remote.c:143 #, c-format msgid "unknown mirror argument: %s" msgstr "unbekanntes Argument für Option --mirror: %s" -#: builtin/remote.c:153 +#: builtin/remote.c:159 msgid "fetch the remote branches" msgstr "die Remote-Branches anfordern" -#: builtin/remote.c:155 +#: builtin/remote.c:161 msgid "import all tags and associated objects when fetching" msgstr "alle Tags und verbundene Objekte beim Anfordern importieren" -#: builtin/remote.c:158 +#: builtin/remote.c:164 msgid "or do not fetch any tag at all (--no-tags)" msgstr "oder fordere gar keine Zweige an (--no-tags)" -#: builtin/remote.c:160 +#: builtin/remote.c:166 msgid "branch(es) to track" msgstr "Branch(es) zur Übernahme" -#: builtin/remote.c:161 +#: builtin/remote.c:167 msgid "master branch" msgstr "Hauptbranch" -#: builtin/remote.c:162 +#: builtin/remote.c:168 msgid "push|fetch" msgstr "push|fetch" -#: builtin/remote.c:163 +#: builtin/remote.c:169 msgid "set up remote as a mirror to push to or fetch from" msgstr "" "Aufsetzen des Remote-Repositories als Spiegel-Repository für \"push\" und " "\"fetch\"" -#: builtin/remote.c:175 +#: builtin/remote.c:181 msgid "specifying a master branch makes no sense with --mirror" msgstr "" "Die Option --mirror kann nicht mit der Angabe eines Hauptbranches verwendet " "werden." -#: builtin/remote.c:177 +#: builtin/remote.c:183 msgid "specifying branches to track makes sense only with fetch mirrors" msgstr "" "Die Angabe von zu folgenden Branches kann nur mit dem Anfordern von " "Spiegelarchiven verwendet werden." -#: builtin/remote.c:187 builtin/remote.c:637 +#: builtin/remote.c:193 builtin/remote.c:643 #, c-format msgid "remote %s already exists." msgstr "externes Repository %s existiert bereits" -#: builtin/remote.c:191 builtin/remote.c:641 +#: builtin/remote.c:197 builtin/remote.c:647 #, c-format msgid "'%s' is not a valid remote name" msgstr "'%s' ist kein gültiger Name für ein Remote-Repository" -#: builtin/remote.c:235 +#: builtin/remote.c:241 #, c-format msgid "Could not setup master '%s'" msgstr "Konnte symbolische Referenz für Hauptbranch von '%s' nicht einrichten" -#: builtin/remote.c:335 +#: builtin/remote.c:341 #, c-format msgid "Could not get fetch map for refspec %s" msgstr "Konnte Fetch-Map für Refspec %s nicht bekommen" -#: builtin/remote.c:436 builtin/remote.c:444 +#: builtin/remote.c:442 builtin/remote.c:450 msgid "(matching)" msgstr "(übereinstimmend)" -#: builtin/remote.c:448 +#: builtin/remote.c:454 msgid "(delete)" msgstr "(lösche)" -#: builtin/remote.c:588 builtin/remote.c:594 builtin/remote.c:600 +#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606 #, c-format msgid "Could not append '%s' to '%s'" msgstr "Konnte '%s' nicht an '%s' anhängen." -#: builtin/remote.c:630 builtin/remote.c:769 builtin/remote.c:869 +#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875 #, c-format msgid "No such remote: %s" msgstr "Kein solches Remote-Repository: %s" -#: builtin/remote.c:647 +#: builtin/remote.c:653 #, c-format msgid "Could not rename config section '%s' to '%s'" msgstr "Konnte Sektion '%s' in Konfiguration nicht nach '%s' umbenennen" -#: builtin/remote.c:653 builtin/remote.c:821 +#: builtin/remote.c:659 builtin/remote.c:827 #, c-format msgid "Could not remove config section '%s'" msgstr "Konnte Sektion '%s' nicht aus Konfiguration entfernen" -#: builtin/remote.c:668 +#: builtin/remote.c:674 #, c-format msgid "" "Not updating non-default fetch refspec\n" @@ -9555,27 +9623,27 @@ msgstr "" "\t%s\n" "\tBitte aktualisieren Sie, falls notwendig, die Konfiguration manuell." -#: builtin/remote.c:674 +#: builtin/remote.c:680 #, c-format msgid "Could not append '%s'" msgstr "Konnte '%s' nicht anhängen." -#: builtin/remote.c:685 +#: builtin/remote.c:691 #, c-format msgid "Could not set '%s'" msgstr "Konnte '%s' nicht setzen" -#: builtin/remote.c:707 +#: builtin/remote.c:713 #, c-format msgid "deleting '%s' failed" msgstr "Konnte '%s' nicht löschen" -#: builtin/remote.c:741 +#: builtin/remote.c:747 #, c-format msgid "creating '%s' failed" msgstr "Konnte '%s' nicht erstellen" -#: builtin/remote.c:807 +#: builtin/remote.c:813 msgid "" "Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" "to delete it, use:" @@ -9591,120 +9659,120 @@ msgstr[1] "" "entfernt;\n" "um diese zu entfernen, benutzen Sie:" -#: builtin/remote.c:922 +#: builtin/remote.c:928 #, c-format msgid " new (next fetch will store in remotes/%s)" msgstr " neu (wird bei nächstem \"fetch\" in remotes/%s gespeichert)" -#: builtin/remote.c:925 +#: builtin/remote.c:931 msgid " tracked" msgstr " gefolgt" -#: builtin/remote.c:927 +#: builtin/remote.c:933 msgid " stale (use 'git remote prune' to remove)" msgstr " veraltet (benutzen Sie 'git remote prune' zum Löschen)" -#: builtin/remote.c:929 +#: builtin/remote.c:935 msgid " ???" msgstr " ???" -#: builtin/remote.c:970 +#: builtin/remote.c:976 #, c-format msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch" msgstr "ungültiges branch.%s.merge; kann Rebase nicht auf > 1 Branch ausführen" -#: builtin/remote.c:977 +#: builtin/remote.c:983 #, c-format msgid "rebases onto remote %s" msgstr "Rebase auf Remote-Branch %s" -#: builtin/remote.c:980 +#: builtin/remote.c:986 #, c-format msgid " merges with remote %s" msgstr " führt mit Remote-Branch %s zusammen" -#: builtin/remote.c:981 +#: builtin/remote.c:987 msgid " and with remote" msgstr " und mit Remote-Branch" -#: builtin/remote.c:983 +#: builtin/remote.c:989 #, c-format msgid "merges with remote %s" msgstr "führt mit Remote-Branch %s zusammen" -#: builtin/remote.c:984 +#: builtin/remote.c:990 msgid " and with remote" msgstr " und mit Remote-Branch" -#: builtin/remote.c:1030 +#: builtin/remote.c:1036 msgid "create" msgstr "erstellt" -#: builtin/remote.c:1033 +#: builtin/remote.c:1039 msgid "delete" msgstr "gelöscht" -#: builtin/remote.c:1037 +#: builtin/remote.c:1043 msgid "up to date" msgstr "aktuell" -#: builtin/remote.c:1040 +#: builtin/remote.c:1046 msgid "fast-forwardable" msgstr "vorspulbar" -#: builtin/remote.c:1043 +#: builtin/remote.c:1049 msgid "local out of date" msgstr "lokal nicht aktuell" -#: builtin/remote.c:1050 +#: builtin/remote.c:1056 #, c-format msgid " %-*s forces to %-*s (%s)" msgstr " %-*s erzwingt Versandt nach %-*s (%s)" -#: builtin/remote.c:1053 +#: builtin/remote.c:1059 #, c-format msgid " %-*s pushes to %-*s (%s)" msgstr " %-*s versendet nach %-*s (%s)" -#: builtin/remote.c:1057 +#: builtin/remote.c:1063 #, c-format msgid " %-*s forces to %s" msgstr " %-*s erzwingt Versand nach %s" -#: builtin/remote.c:1060 +#: builtin/remote.c:1066 #, c-format msgid " %-*s pushes to %s" msgstr " %-*s versendet nach %s" -#: builtin/remote.c:1128 +#: builtin/remote.c:1134 msgid "do not query remotes" msgstr "keine Abfrage von Remote-Repositories" -#: builtin/remote.c:1155 +#: builtin/remote.c:1161 #, c-format msgid "* remote %s" msgstr "* Remote-Repository %s" -#: builtin/remote.c:1156 +#: builtin/remote.c:1162 #, c-format msgid " Fetch URL: %s" msgstr " URL zum Abholen: %s" -#: builtin/remote.c:1157 builtin/remote.c:1308 +#: builtin/remote.c:1163 builtin/remote.c:1314 msgid "(no URL)" msgstr "(keine URL)" -#: builtin/remote.c:1166 builtin/remote.c:1168 +#: builtin/remote.c:1172 builtin/remote.c:1174 #, c-format msgid " Push URL: %s" msgstr " URL zum Versenden: %s" -#: builtin/remote.c:1170 builtin/remote.c:1172 builtin/remote.c:1174 +#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180 #, c-format msgid " HEAD branch: %s" msgstr " Hauptbranch: %s" -#: builtin/remote.c:1176 +#: builtin/remote.c:1182 #, c-format msgid "" " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" @@ -9712,146 +9780,159 @@ msgstr "" " Hauptbranch (externer HEAD ist mehrdeutig, könnte einer der folgenden " "sein):\n" -#: builtin/remote.c:1188 +#: builtin/remote.c:1194 #, c-format msgid " Remote branch:%s" msgid_plural " Remote branches:%s" msgstr[0] " Remote-Branch:%s" msgstr[1] " Remote-Branches:%s" -#: builtin/remote.c:1191 builtin/remote.c:1218 +#: builtin/remote.c:1197 builtin/remote.c:1224 msgid " (status not queried)" msgstr " (Zustand nicht abgefragt)" -#: builtin/remote.c:1200 +#: builtin/remote.c:1206 msgid " Local branch configured for 'git pull':" msgid_plural " Local branches configured for 'git pull':" msgstr[0] " Lokaler Branch konfiguriert für 'git pull':" msgstr[1] " Lokale Branches konfiguriert für 'git pull':" -#: builtin/remote.c:1208 +#: builtin/remote.c:1214 msgid " Local refs will be mirrored by 'git push'" msgstr " Lokale Referenzen werden von 'git push' gespiegelt" -#: builtin/remote.c:1215 +#: builtin/remote.c:1221 #, c-format msgid " Local ref configured for 'git push'%s:" 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:1236 +#: builtin/remote.c:1242 msgid "set refs/remotes/<name>/HEAD according to remote" msgstr "setzt refs/remotes/<Name>/HEAD gemäß dem Remote-Repository" -#: builtin/remote.c:1238 +#: builtin/remote.c:1244 msgid "delete refs/remotes/<name>/HEAD" msgstr "entfernt refs/remotes/<Name>/HEAD" -#: builtin/remote.c:1253 +#: builtin/remote.c:1259 msgid "Cannot determine remote HEAD" msgstr "Kann HEAD des Remote-Repositories nicht bestimmen" -#: builtin/remote.c:1255 +#: builtin/remote.c:1261 msgid "Multiple remote HEAD branches. Please choose one explicitly with:" msgstr "" "Mehrere Hauptbranches im Remote-Repository. Bitte wählen Sie explizit einen " "aus mit:" -#: builtin/remote.c:1265 +#: builtin/remote.c:1271 #, c-format msgid "Could not delete %s" msgstr "Konnte %s nicht entfernen" -#: builtin/remote.c:1273 +#: builtin/remote.c:1279 #, c-format msgid "Not a valid ref: %s" msgstr "keine gültige Referenz: %s" -#: builtin/remote.c:1275 +#: builtin/remote.c:1281 #, c-format msgid "Could not setup %s" msgstr "Konnte %s nicht einrichten" -#: builtin/remote.c:1293 +#: builtin/remote.c:1299 #, c-format msgid " %s will become dangling!" msgstr " %s wird unreferenziert!" -#: builtin/remote.c:1294 +#: builtin/remote.c:1300 #, c-format msgid " %s has become dangling!" msgstr " %s wurde unreferenziert!" -#: builtin/remote.c:1304 +#: builtin/remote.c:1310 #, c-format msgid "Pruning %s" msgstr "entferne veraltete Branches von %s" -#: builtin/remote.c:1305 +#: builtin/remote.c:1311 #, c-format msgid "URL: %s" msgstr "URL: %s" -#: builtin/remote.c:1321 +#: builtin/remote.c:1327 #, c-format msgid " * [would prune] %s" msgstr " * [würde veralteten Branch entfernen] %s" -#: builtin/remote.c:1324 +#: builtin/remote.c:1330 #, c-format msgid " * [pruned] %s" msgstr "* [veralteten Branch entfernt] %s" -#: builtin/remote.c:1369 +#: builtin/remote.c:1375 msgid "prune remotes after fetching" msgstr "entferne veraltete Branches im Remote-Repository nach \"fetch\"" -#: builtin/remote.c:1435 builtin/remote.c:1509 +#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566 #, c-format msgid "No such remote '%s'" msgstr "Kein solches Remote-Repository '%s'" -#: builtin/remote.c:1455 +#: builtin/remote.c:1461 msgid "add branch" msgstr "Branch hinzufügen" -#: builtin/remote.c:1462 +#: builtin/remote.c:1468 msgid "no remote specified" msgstr "kein Remote-Repository angegeben" -#: builtin/remote.c:1484 +#: builtin/remote.c:1485 +msgid "query push URLs rather than fetch URLs" +msgstr "nur URLs für Push ausgeben" + +#: builtin/remote.c:1487 +msgid "return all URLs" +msgstr "alle URLs ausgeben" + +#: builtin/remote.c:1515 +#, c-format +msgid "no URLs configured for remote '%s'" +msgstr "Keine URLs für Remote-Repository '%s' konfiguriert." + +#: builtin/remote.c:1541 msgid "manipulate push URLs" msgstr "URLs für \"push\" manipulieren" -#: builtin/remote.c:1486 +#: builtin/remote.c:1543 msgid "add URL" msgstr "URL hinzufügen" -#: builtin/remote.c:1488 +#: builtin/remote.c:1545 msgid "delete URLs" msgstr "URLs löschen" -#: builtin/remote.c:1495 +#: builtin/remote.c:1552 msgid "--add --delete doesn't make sense" msgstr "" "Die Optionen --add und --delete können nicht gemeinsam verwendet werden." -#: builtin/remote.c:1535 +#: builtin/remote.c:1592 #, c-format msgid "Invalid old URL pattern: %s" msgstr "ungültiges altes URL Format: %s" -#: builtin/remote.c:1543 +#: builtin/remote.c:1600 #, c-format msgid "No such URL found: %s" msgstr "Keine solche URL gefunden: %s" -#: builtin/remote.c:1545 +#: builtin/remote.c:1602 msgid "Will not delete all non-push URLs" msgstr "Werde keine URLs entfernen, die nicht für \"push\" bestimmt sind" -#: builtin/remote.c:1559 +#: builtin/remote.c:1616 msgid "be verbose; must be placed before a subcommand" msgstr "erweiterte Ausgaben; muss vor einem Unterkommando angegeben werden" @@ -9926,7 +10007,11 @@ msgid "repack objects in packs marked with .keep" msgstr "" "Objekte umpacken, die sich in mit .keep markierten Pack-Dateien befinden" -#: builtin/repack.c:378 +#: builtin/repack.c:197 +msgid "cannot delete packs in a precious-objects repo" +msgstr "kann Pack-Dateien in precious-objects Repository nicht löschen" + +#: builtin/repack.c:381 #, c-format msgid "removing '%s' failed" msgstr "Löschen von '%s' fehlgeschlagen" @@ -10021,7 +10106,7 @@ msgstr "das angegebene Format benutzen" msgid "git rerere [clear | forget <path>... | status | remaining | diff | gc]" msgstr "git rerere [clean | forget <Pfad>... | status | remaining | diff | gc]" -#: builtin/rerere.c:57 +#: builtin/rerere.c:58 msgid "register clean resolutions in index" msgstr "saubere Auflösungen im Index registrieren" @@ -10157,24 +10242,24 @@ msgstr "Konnte neue Index-Datei nicht schreiben." msgid "rev-list does not support display of notes" msgstr "rev-list unterstützt keine Anzeige von Notizen" -#: builtin/rev-parse.c:361 +#: builtin/rev-parse.c:358 msgid "git rev-parse --parseopt [<options>] -- [<args>...]" msgstr "git rev-parse --parseopt [<Optionen>] -- [<Argumente>...]" -#: builtin/rev-parse.c:366 +#: builtin/rev-parse.c:363 msgid "keep the `--` passed as an arg" msgstr "`--` als Argument lassen" -#: builtin/rev-parse.c:368 +#: builtin/rev-parse.c:365 msgid "stop parsing after the first non-option argument" msgstr "das Parsen nach dem ersten Argument, was keine Option ist, stoppen" -#: builtin/rev-parse.c:371 +#: builtin/rev-parse.c:368 msgid "output in stuck long form" msgstr "" "Ausgabe in Langform mit Argumenten an den Optionen (getrennt durch '=')" -#: builtin/rev-parse.c:502 +#: builtin/rev-parse.c:499 msgid "" "git rev-parse --parseopt [<options>] -- [<args>...]\n" " or: git rev-parse --sq-quote [<arg>...]\n" @@ -10440,7 +10525,7 @@ msgstr "w[,i1[,i2]]" msgid "Linewrap output" msgstr "Ausgabe mit Zeilenumbrüchen" -#: builtin/show-branch.c:9 +#: builtin/show-branch.c:10 msgid "" "git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n" "\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n" @@ -10452,72 +10537,72 @@ msgstr "" "\t\t[--more=<n> | --list | --independent | --merge-base]\n" "\t\t[--no-name | --sha1-name] [--topics] [(<Commit> | <glob>)...]" -#: builtin/show-branch.c:13 +#: builtin/show-branch.c:14 msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]" msgstr "git show-branch (-g | --reflog)[=<n>[,<Basis>]] [--list] [<Referenz>]" -#: builtin/show-branch.c:659 +#: builtin/show-branch.c:640 msgid "show remote-tracking and local branches" msgstr "Remote-Tracking und lokale Branches anzeigen" -#: builtin/show-branch.c:661 +#: builtin/show-branch.c:642 msgid "show remote-tracking branches" msgstr "Remote-Tracking-Branches anzeigen" -#: builtin/show-branch.c:663 +#: builtin/show-branch.c:644 msgid "color '*!+-' corresponding to the branch" msgstr "'*!+-' entsprechend des Branches einfärben" -#: builtin/show-branch.c:665 +#: builtin/show-branch.c:646 msgid "show <n> more commits after the common ancestor" msgstr "<n> weitere Commits nach dem gemeinsamen Vorgänger-Commit anzeigen" -#: builtin/show-branch.c:667 +#: builtin/show-branch.c:648 msgid "synonym to more=-1" msgstr "Synonym für more=-1" -#: builtin/show-branch.c:668 +#: builtin/show-branch.c:649 msgid "suppress naming strings" msgstr "Namen unterdrücken" -#: builtin/show-branch.c:670 +#: builtin/show-branch.c:651 msgid "include the current branch" msgstr "den aktuellen Branch einbeziehen" -#: builtin/show-branch.c:672 +#: builtin/show-branch.c:653 msgid "name commits with their object names" msgstr "Commits nach ihren Objektnamen benennen" -#: builtin/show-branch.c:674 +#: builtin/show-branch.c:655 msgid "show possible merge bases" msgstr "mögliche Merge-Basen anzeigen" -#: builtin/show-branch.c:676 +#: builtin/show-branch.c:657 msgid "show refs unreachable from any other ref" msgstr "" "Referenzen, die unerreichbar von allen anderen Referenzen sind, anzeigen" -#: builtin/show-branch.c:678 +#: builtin/show-branch.c:659 msgid "show commits in topological order" msgstr "Commits in topologischer Ordnung anzeigen" -#: builtin/show-branch.c:681 +#: builtin/show-branch.c:662 msgid "show only commits not on the first branch" msgstr "nur Commits anzeigen, die sich nicht im ersten Branch befinden" -#: builtin/show-branch.c:683 +#: builtin/show-branch.c:664 msgid "show merges reachable from only one tip" msgstr "Merges anzeigen, die nur von einem Branch aus erreichbar sind" -#: builtin/show-branch.c:685 +#: builtin/show-branch.c:666 msgid "topologically sort, maintaining date order where possible" msgstr "topologische Sortierung, Beibehaltung Datumsordnung wo möglich" -#: builtin/show-branch.c:688 +#: builtin/show-branch.c:669 msgid "<n>[,<base>]" msgstr "<n>[,<Basis>]" -#: builtin/show-branch.c:689 +#: builtin/show-branch.c:670 msgid "show <n> most recent ref-log entries starting at base" msgstr "die <n> jüngsten Einträge im Reflog, beginnend an der Basis, anzeigen" @@ -10530,45 +10615,138 @@ msgstr "" "hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<Muster>...] " #: builtin/show-ref.c:11 -msgid "git show-ref --exclude-existing[=<pattern>] < <ref-list>" -msgstr "git show-ref --exclude-existing[=<Muster>] < <Referenzliste>" +msgid "git show-ref --exclude-existing[=<pattern>]" +msgstr "git show-ref --exclude-existing[=<Muster>]" -#: builtin/show-ref.c:170 +#: builtin/show-ref.c:165 msgid "only show tags (can be combined with heads)" msgstr "nur Tags anzeigen (kann mit \"heads\" kombiniert werden)" -#: builtin/show-ref.c:171 +#: builtin/show-ref.c:166 msgid "only show heads (can be combined with tags)" msgstr "nur Branches anzeigen (kann mit \"tags\" kombiniert werden)" -#: builtin/show-ref.c:172 +#: builtin/show-ref.c:167 msgid "stricter reference checking, requires exact ref path" msgstr "strengere Referenzprüfung, erfordert exakten Referenzpfad" -#: builtin/show-ref.c:175 builtin/show-ref.c:177 +#: builtin/show-ref.c:170 builtin/show-ref.c:172 msgid "show the HEAD reference, even if it would be filtered out" msgstr "" "die HEAD-Referenz anzeigen, selbst wenn diese ausgefiltert werden würde" -#: builtin/show-ref.c:179 +#: builtin/show-ref.c:174 msgid "dereference tags into object IDs" msgstr "Tags in Objekt-Identifikationen dereferenzieren" -#: builtin/show-ref.c:181 +#: builtin/show-ref.c:176 msgid "only show SHA1 hash using <n> digits" msgstr "nur SHA1 Hash mit <n> Ziffern anzeigen" -#: builtin/show-ref.c:185 +#: 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:187 +#: builtin/show-ref.c:182 msgid "show refs from stdin that aren't in local repository" msgstr "" "Referenzen von der Standard-Eingabe anzeigen, die sich nicht im lokalen " "Repository befinden" +#: builtin/stripspace.c:17 +msgid "git stripspace [-s | --strip-comments]" +msgstr "git stripspace [-s | --strip-comments]" + +#: builtin/stripspace.c:18 +msgid "git stripspace [-c | --comment-lines]" +msgstr "git stripspace [-c | --comment-lines]" + +#: builtin/stripspace.c:35 +msgid "skip and remove all lines starting with comment character" +msgstr "alle Zeilen, die mit dem Kommentarzeichen beginnen, überspringen und " +"entfernen" + +#: builtin/stripspace.c:38 +msgid "prepend comment character and blank to each line" +msgstr "Kommentarzeichen mit Leerzeichen an jeder Zeile voranstellen" + +#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167 +msgid "alternative anchor for relative paths" +msgstr "Alternativer Anker für relative Pfade" + +#: builtin/submodule--helper.c:84 +msgid "git submodule--helper list [--prefix=<path>] [<path>...]" +msgstr "git submodule--helper list [--prefix=<Pfad>] [<Pfad>...]" + +#: builtin/submodule--helper.c:114 +msgid "git submodule--helper name <path>" +msgstr "git submodule--helper name <Pfad>" + +#: builtin/submodule--helper.c:120 +#, c-format +msgid "no submodule mapping found in .gitmodules for path '%s'" +msgstr "Keine Submodul-Zuordnung in .gitmodules für Pfad '%s' gefunden" + +#: builtin/submodule--helper.c:170 +msgid "where the new submodule will be cloned to" +msgstr "Pfad für neues Submodul" + +#: builtin/submodule--helper.c:173 +msgid "name of the new submodule" +msgstr "Name des neuen Submoduls" + +#: builtin/submodule--helper.c:176 +msgid "url where to clone the submodule from" +msgstr "URL von der das Submodul geklont wird" + +#: builtin/submodule--helper.c:182 +msgid "depth for shallow clones" +msgstr "Tiefe des Klons mit unvollständiger Historie (shallow)" + +#: builtin/submodule--helper.c:188 +msgid "" +"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference " +"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]" +msgstr "" +"git submodule--helper clone [--prefix=<Pfad>] [--quiet] [--reference " +"<Repository>] [--name <Name>] [--url <URL>][--depth <Tiefe>] [--] [<Pfad>...]" + +#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208 +#: builtin/submodule--helper.c:216 +#, c-format +msgid "could not create directory '%s'" +msgstr "Konnte Verzeichnis '%s' nicht erstellen." + +#: builtin/submodule--helper.c:204 +#, c-format +msgid "clone of '%s' into submodule path '%s' failed" +msgstr "Klonen von '%s' in Submodul-Pfad '%s' fehlgeschlagen" + +#: builtin/submodule--helper.c:227 +#, c-format +msgid "cannot open file '%s'" +msgstr "Kann Datei '%s' nicht öffnen" + +#: builtin/submodule--helper.c:232 +#, c-format +msgid "could not close file %s" +msgstr "Konnte Datei '%s' nicht schließen." + +#: builtin/submodule--helper.c:247 +#, c-format +msgid "could not get submodule directory for '%s'" +msgstr "Konnte Submodul-Verzeichnis '%s' nicht finden." + +#: builtin/submodule--helper.c:273 +msgid "fatal: submodule--helper subcommand must be called with a subcommand" +msgstr "fatal: submodule--helper muss mit einem Unterkommando aufgerufen werden" + +#: builtin/submodule--helper.c:280 +#, c-format +msgid "fatal: '%s' is not a valid submodule--helper subcommand" +msgstr "fatal: '%s' ist kein gültiges Unterkommando von submodule--helper" + #: builtin/symbolic-ref.c:7 msgid "git symbolic-ref [<options>] <name> [<ref>]" msgstr "git symbolic-ref [<Optionen>] <Name> [<Referenz>]" @@ -10598,7 +10776,7 @@ msgstr "Grund" msgid "reason of the update" msgstr "Grund für die Aktualisierung" -#: builtin/tag.c:22 +#: builtin/tag.c:23 msgid "" "git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] <tagname> " "[<head>]" @@ -10606,48 +10784,43 @@ msgstr "" "git tag [-a | -s | -u <Schlüssel-id>] [-f] [-m <Beschreibung> | -F <Datei>] " "<Tagname> [<Commit>]" -#: builtin/tag.c:23 +#: builtin/tag.c:24 msgid "git tag -d <tagname>..." msgstr "git tag -d <Tagname>..." -#: builtin/tag.c:24 +#: builtin/tag.c:25 msgid "" "git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>]\n" -"\t\t[<pattern>...]" +"\t\t[--format=<format>] [--[no-]merged [<commit>]] [<pattern>...]" msgstr "" "git tag -l [-n[<Nummer>]] [--contains <Commit>] [--points-at <Objekt>]\n" -"\t\t[<Muster>...]" +"\t\t[--format=<Muster>] [--[no-]merged [<Commit>]] [<Muster>...]" -#: builtin/tag.c:26 +#: builtin/tag.c:27 msgid "git tag -v <tagname>..." msgstr "git tag -v <Tagname>..." -#: builtin/tag.c:69 -#, c-format -msgid "malformed object at '%s'" -msgstr "fehlerhaftes Objekt bei '%s'" - -#: builtin/tag.c:301 +#: builtin/tag.c:80 #, c-format msgid "tag name too long: %.*s..." msgstr "Tagname zu lang: %.*s..." -#: builtin/tag.c:306 +#: builtin/tag.c:85 #, c-format msgid "tag '%s' not found." msgstr "Tag '%s' nicht gefunden." -#: builtin/tag.c:321 +#: builtin/tag.c:100 #, c-format msgid "Deleted tag '%s' (was %s)\n" msgstr "Tag '%s' gelöscht (war %s)\n" -#: builtin/tag.c:333 +#: builtin/tag.c:112 #, c-format msgid "could not verify the tag '%s'" msgstr "Konnte Tag '%s' nicht verifizieren" -#: builtin/tag.c:343 +#: builtin/tag.c:122 #, c-format msgid "" "\n" @@ -10660,7 +10833,7 @@ msgstr "" " %s\n" "ein. Zeilen, die mit '%c' beginnen, werden ignoriert.\n" -#: builtin/tag.c:347 +#: builtin/tag.c:126 #, c-format msgid "" "\n" @@ -10675,153 +10848,138 @@ msgstr "" "ein. Zeilen, die mit '%c' beginnen, werden behalten; Sie dürfen diese\n" "selbst entfernen wenn Sie möchten.\n" -#: builtin/tag.c:371 -#, c-format -msgid "unsupported sort specification '%s'" -msgstr "Nicht unterstützte Angabe für \"--sort\" '%s'" - -#: builtin/tag.c:373 -#, c-format -msgid "unsupported sort specification '%s' in variable '%s'" -msgstr "Nicht unterstützte Angabe für \"--sort\" '%s' in Variable '%s'" - -#: builtin/tag.c:428 +#: builtin/tag.c:199 msgid "unable to sign the tag" msgstr "konnte Tag nicht signieren" -#: builtin/tag.c:430 +#: builtin/tag.c:201 msgid "unable to write tag file" msgstr "konnte Tag-Datei nicht schreiben" -#: builtin/tag.c:455 +#: builtin/tag.c:226 msgid "bad object type." msgstr "ungültiger Objekt-Typ" -#: builtin/tag.c:468 +#: builtin/tag.c:239 msgid "tag header too big." msgstr "Tag-Kopf zu groß." -#: builtin/tag.c:504 +#: builtin/tag.c:275 msgid "no tag message?" msgstr "keine Tag-Beschreibung?" -#: builtin/tag.c:510 +#: builtin/tag.c:281 #, c-format msgid "The tag message has been left in %s\n" msgstr "Die Tag-Beschreibung wurde gelassen in %s\n" -#: builtin/tag.c:559 -msgid "switch 'points-at' requires an object" -msgstr "Option 'points-at' erfordert ein Objekt" - -#: builtin/tag.c:561 -#, c-format -msgid "malformed object name '%s'" -msgstr "fehlerhafter Objekt-Name '%s'" - -#: builtin/tag.c:590 +#: builtin/tag.c:339 msgid "list tag names" msgstr "Tagnamen auflisten" -#: builtin/tag.c:592 +#: builtin/tag.c:341 msgid "print <n> lines of each tag message" msgstr "<n> Zeilen jeder Tag-Beschreibung anzeigen" -#: builtin/tag.c:594 +#: builtin/tag.c:343 msgid "delete tags" msgstr "Tags löschen" -#: builtin/tag.c:595 +#: builtin/tag.c:344 msgid "verify tags" msgstr "Tags überprüfen" -#: builtin/tag.c:597 +#: builtin/tag.c:346 msgid "Tag creation options" msgstr "Optionen für Erstellung von Tags" -#: builtin/tag.c:599 +#: builtin/tag.c:348 msgid "annotated tag, needs a message" msgstr "annotiertes Tag, benötigt eine Beschreibung" -#: builtin/tag.c:601 +#: builtin/tag.c:350 msgid "tag message" msgstr "Tag-Beschreibung" -#: builtin/tag.c:603 +#: builtin/tag.c:352 msgid "annotated and GPG-signed tag" msgstr "annotiertes und GPG-signiertes Tag" -#: builtin/tag.c:607 +#: builtin/tag.c:356 msgid "use another key to sign the tag" msgstr "einen anderen Schlüssel verwenden, um das Tag zu signieren" -#: builtin/tag.c:608 +#: builtin/tag.c:357 msgid "replace the tag if exists" msgstr "das Tag ersetzen, wenn es existiert" -#: builtin/tag.c:609 builtin/update-ref.c:368 +#: builtin/tag.c:358 builtin/update-ref.c:368 msgid "create a reflog" msgstr "Reflog erstellen" -#: builtin/tag.c:611 +#: builtin/tag.c:360 msgid "Tag listing options" msgstr "Optionen für Auflistung der Tags" -#: builtin/tag.c:612 +#: builtin/tag.c:361 msgid "show tag list in columns" msgstr "Liste der Tags in Spalten anzeigen" -#: builtin/tag.c:614 -msgid "sort tags" -msgstr "Tags sortieren" - -#: builtin/tag.c:619 builtin/tag.c:625 +#: builtin/tag.c:362 builtin/tag.c:363 msgid "print only tags that contain the commit" msgstr "nur Tags ausgeben, die diesen Commit beinhalten" -#: builtin/tag.c:631 +#: builtin/tag.c:364 +msgid "print only tags that are merged" +msgstr "nur Tags ausgeben, die gemerged wurden" + +#: builtin/tag.c:365 +msgid "print only tags that are not merged" +msgstr "nur Tags ausgeben, die nicht gemerged wurden" + +#: builtin/tag.c:370 msgid "print only tags of the object" msgstr "nur Tags von dem Objekt ausgeben" -#: builtin/tag.c:657 +#: builtin/tag.c:399 msgid "--column and -n are incompatible" msgstr "--column und -n sind inkompatibel" -#: builtin/tag.c:669 -msgid "--sort and -n are incompatible" -msgstr "--sort und -n sind inkompatibel" - -#: builtin/tag.c:676 +#: builtin/tag.c:419 msgid "-n option is only allowed with -l." msgstr "-n Option ist nur erlaubt mit -l." -#: builtin/tag.c:678 +#: builtin/tag.c:421 msgid "--contains option is only allowed with -l." msgstr "--contains Option ist nur erlaubt mit -l." -#: builtin/tag.c:680 +#: builtin/tag.c:423 msgid "--points-at option is only allowed with -l." msgstr "--points-at Option ist nur erlaubt mit -l." -#: builtin/tag.c:688 +#: builtin/tag.c:425 +msgid "--merged and --no-merged option are only allowed with -l" +msgstr "Die Optionen --merged und --no-merged sind nur mit -l erlaubt." + +#: builtin/tag.c:433 msgid "only one -F or -m option is allowed." msgstr "nur eine -F oder -m Option ist erlaubt." -#: builtin/tag.c:708 +#: builtin/tag.c:453 msgid "too many params" msgstr "zu viele Parameter" -#: builtin/tag.c:714 +#: builtin/tag.c:459 #, c-format msgid "'%s' is not a valid tag name." msgstr "'%s' ist kein gültiger Tagname." -#: builtin/tag.c:719 +#: builtin/tag.c:464 #, c-format msgid "tag '%s' already exists" msgstr "Tag '%s' existiert bereits" -#: builtin/tag.c:744 +#: builtin/tag.c:489 #, c-format msgid "Updated tag '%s' (was %s)\n" msgstr "Tag '%s' aktualisiert (war %s)\n" @@ -11099,78 +11257,82 @@ msgstr "git verify-tag [-v | --verbose] <Tag>..." msgid "print tag contents" msgstr "Tag-Inhalte ausgeben" -#: builtin/worktree.c:13 -msgid "git worktree add [<options>] <path> <branch>" -msgstr "git worktree add [<Optionen>] <Pfad> <Branch>" +#: builtin/worktree.c:15 +msgid "git worktree add [<options>] <path> [<branch>]" +msgstr "git worktree add [<Optionen>] <Pfad> [<Branch>]" -#: builtin/worktree.c:14 +#: builtin/worktree.c:16 msgid "git worktree prune [<options>]" msgstr "git worktree prune [<Optionen>]" -#: builtin/worktree.c:36 +#: builtin/worktree.c:17 +msgid "git worktree list [<options>]" +msgstr "git worktree list [<Optionen>]" + +#: builtin/worktree.c:39 #, c-format msgid "Removing worktrees/%s: not a valid directory" msgstr "Lösche worktrees/%s: kein gültiges Verzeichnis" -#: builtin/worktree.c:42 +#: builtin/worktree.c:45 #, c-format msgid "Removing worktrees/%s: gitdir file does not exist" msgstr "Lösche worktrees/%s: gitdir-Datei existiert nicht" -#: builtin/worktree.c:47 +#: builtin/worktree.c:50 #, c-format msgid "Removing worktrees/%s: unable to read gitdir file (%s)" msgstr "Lösche worktrees/%s: konnte gitdir-Datei (%s) nicht lesen" -#: builtin/worktree.c:58 +#: builtin/worktree.c:61 #, c-format msgid "Removing worktrees/%s: invalid gitdir file" msgstr "Lösche worktrees/%s: ungültige gitdir-Datei" -#: builtin/worktree.c:74 +#: builtin/worktree.c:77 #, c-format msgid "Removing worktrees/%s: gitdir file points to non-existent location" msgstr "Lösche worktrees/%s: gitdir-Datei verweist auf nicht existierenden Ort" -#: builtin/worktree.c:109 +#: builtin/worktree.c:112 #, c-format msgid "failed to remove: %s" msgstr "Fehler beim Löschen: %s" -#: builtin/worktree.c:198 +#: builtin/worktree.c:201 #, c-format msgid "'%s' already exists" msgstr "'%s' existiert bereits" -#: builtin/worktree.c:232 +#: builtin/worktree.c:235 #, c-format msgid "could not create directory of '%s'" msgstr "Konnte Verzeichnis '%s' nicht erstellen." -#: builtin/worktree.c:268 +#: builtin/worktree.c:271 #, c-format msgid "Preparing %s (identifier %s)" msgstr "Bereite %s vor (Identifikation %s)" -#: builtin/worktree.c:316 +#: builtin/worktree.c:319 msgid "checkout <branch> even if already checked out in other worktree" msgstr "" "<Branch> auschecken, auch wenn dieser bereits in einem anderen " "Arbeitsverzeichnis ausgecheckt ist" -#: builtin/worktree.c:318 +#: builtin/worktree.c:321 msgid "create a new branch" msgstr "neuen Branch erstellen" -#: builtin/worktree.c:320 +#: builtin/worktree.c:323 msgid "create or reset a branch" msgstr "Branch erstellen oder umsetzen" -#: builtin/worktree.c:321 +#: builtin/worktree.c:324 msgid "detach HEAD at named commit" msgstr "HEAD bei benanntem Commit loslösen" -#: builtin/worktree.c:328 +#: builtin/worktree.c:331 msgid "-b, -B, and --detach are mutually exclusive" msgstr "-b, -B und --detach schließen sich gegenseitig aus" @@ -11327,49 +11489,49 @@ msgstr "Verfallsdatum" msgid "no-op (backward compatibility)" msgstr "Kein Effekt (Rückwärtskompatibilität)" -#: parse-options.h:236 +#: parse-options.h:237 msgid "be more verbose" msgstr "erweiterte Ausgaben" -#: parse-options.h:238 +#: parse-options.h:239 msgid "be more quiet" msgstr "weniger Ausgaben" -#: parse-options.h:244 +#: parse-options.h:245 msgid "use <n> digits to display SHA-1s" msgstr "benutze <n> Ziffern zur Anzeige von SHA-1s" -#: rerere.h:28 +#: rerere.h:38 msgid "update the index with reused conflict resolution if possible" msgstr "" "Index, wenn möglich, mit wiederverwendeter Konfliktauflösung aktualisieren" -#: git-bisect.sh:50 +#: git-bisect.sh:55 msgid "You need to start by \"git bisect start\"" msgstr "Sie müssen mit \"git bisect start\" beginnen." #. TRANSLATORS: Make sure to include [Y] and [n] in your #. translation. The program will only accept English input #. at this point. -#: git-bisect.sh:56 +#: git-bisect.sh:61 msgid "Do you want me to do it for you [Y/n]? " msgstr "Wollen Sie, dass ich es für Sie mache [Y/n]? " -#: git-bisect.sh:99 +#: git-bisect.sh:122 #, sh-format msgid "unrecognised option: '$arg'" msgstr "nicht erkannte Option: '$arg'" -#: git-bisect.sh:103 +#: git-bisect.sh:126 #, sh-format msgid "'$arg' does not appear to be a valid revision" msgstr "'$arg' scheint kein gültiger Commit zu sein" -#: git-bisect.sh:132 +#: git-bisect.sh:155 msgid "Bad HEAD - I need a HEAD" msgstr "Ungültiger HEAD - HEAD wird benötigt" -#: git-bisect.sh:145 +#: git-bisect.sh:168 #, sh-format msgid "" "Checking out '$start_head' failed. Try 'git bisect reset <valid-branch>'." @@ -11377,40 +11539,40 @@ msgstr "" "Auschecken von '$start_head' fehlgeschlagen. Versuchen Sie 'git bisect reset " "<gültiger-Branch>'." -#: git-bisect.sh:155 +#: git-bisect.sh:178 msgid "won't bisect on cg-seek'ed tree" msgstr "" "binäre Suche auf einem durch 'cg-seek' geändertem Verzeichnis nicht möglich" -#: git-bisect.sh:159 +#: git-bisect.sh:182 msgid "Bad HEAD - strange symbolic ref" msgstr "Ungültiger HEAD - merkwürdige symbolische Referenz" -#: git-bisect.sh:211 +#: git-bisect.sh:234 #, sh-format msgid "Bad bisect_write argument: $state" msgstr "Ungültiges \"bisect_write\" Argument: $state" -#: git-bisect.sh:240 +#: git-bisect.sh:263 #, sh-format msgid "Bad rev input: $arg" msgstr "Ungültige Referenz-Eingabe: $arg" -#: git-bisect.sh:255 +#: git-bisect.sh:278 msgid "Please call 'bisect_state' with at least one argument." msgstr "Bitte rufen Sie 'bisect_state' mit mindestens einem Argument auf." -#: git-bisect.sh:267 +#: git-bisect.sh:290 #, sh-format msgid "Bad rev input: $rev" msgstr "Ungültige Referenz-Eingabe: $rev" -#: git-bisect.sh:276 +#: git-bisect.sh:299 #, sh-format msgid "'git bisect $TERM_BAD' can take only one argument." msgstr "'git bisect $TERM_BAD' kann nur ein Argument entgegennehmen." -#: git-bisect.sh:299 +#: git-bisect.sh:322 #, sh-format msgid "Warning: bisecting only with a $TERM_BAD commit." msgstr "Warnung: binäre Suche nur mit einem $TERM_BAD Commit." @@ -11418,11 +11580,11 @@ msgstr "Warnung: binäre Suche nur mit einem $TERM_BAD Commit." #. TRANSLATORS: Make sure to include [Y] and [n] in your #. translation. The program will only accept English input #. at this point. -#: git-bisect.sh:305 +#: git-bisect.sh:328 msgid "Are you sure [Y/n]? " msgstr "Sind Sie sicher [Y/n]? " -#: git-bisect.sh:317 +#: git-bisect.sh:340 #, sh-format msgid "" "You need to give me at least one $bad_syn and one $good_syn revision.\n" @@ -11433,7 +11595,7 @@ msgstr "" "(Sie können dafür \"git bisect $bad_syn\" und \"git bisect $good_syn\" " "benutzen.)" -#: git-bisect.sh:320 +#: git-bisect.sh:343 #, sh-format msgid "" "You need to start by \"git bisect start\".\n" @@ -11446,16 +11608,16 @@ msgstr "" "(Sie können dafür \"git bisect $bad_syn\" und \"git bisect $good_syn\" " "benutzen.)" -#: git-bisect.sh:391 git-bisect.sh:521 +#: git-bisect.sh:414 git-bisect.sh:546 msgid "We are not bisecting." msgstr "keine binäre Suche im Gange" -#: git-bisect.sh:398 +#: git-bisect.sh:421 #, sh-format msgid "'$invalid' is not a valid commit" msgstr "'$invalid' ist kein gültiger Commit" -#: git-bisect.sh:407 +#: git-bisect.sh:430 #, sh-format msgid "" "Could not check out original HEAD '$branch'.\n" @@ -11464,25 +11626,25 @@ msgstr "" "Konnte den ursprünglichen HEAD '$branch' nicht auschecken.\n" "Versuchen Sie 'git bisect reset <Commit>'." -#: git-bisect.sh:435 +#: git-bisect.sh:458 msgid "No logfile given" msgstr "Keine Log-Datei gegeben" -#: git-bisect.sh:436 +#: git-bisect.sh:459 #, sh-format msgid "cannot read $file for replaying" msgstr "kann $file nicht für das Abspielen lesen" -#: git-bisect.sh:455 +#: git-bisect.sh:480 msgid "?? what are you talking about?" msgstr "?? Was reden Sie da?" -#: git-bisect.sh:467 +#: git-bisect.sh:492 #, sh-format msgid "running $command" msgstr "führe $command aus" -#: git-bisect.sh:474 +#: git-bisect.sh:499 #, sh-format msgid "" "bisect run failed:\n" @@ -11491,11 +11653,11 @@ msgstr "" "'bisect run' fehlgeschlagen:\n" "Rückkehrwert $res von '$command' ist < 0 oder >= 128" -#: git-bisect.sh:500 +#: git-bisect.sh:525 msgid "bisect run cannot continue any more" msgstr "'bisect run' kann nicht mehr fortgesetzt werden" -#: git-bisect.sh:506 +#: git-bisect.sh:531 #, sh-format msgid "" "bisect run failed:\n" @@ -11504,17 +11666,49 @@ msgstr "" "'bisect run' fehlgeschlagen:\n" "'bisect_state $state' wurde mit Fehlerwert $res beendet" -#: git-bisect.sh:513 +#: git-bisect.sh:538 msgid "bisect run success" msgstr "'bisect run' erfolgreich ausgeführt" -#: git-bisect.sh:548 +#: git-bisect.sh:565 +msgid "please use two different terms" +msgstr "Bitte verwenden Sie zwei verschiedene Begriffe." + +#: git-bisect.sh:575 +#, sh-format +msgid "'$term' is not a valid term" +msgstr "'$term' ist kein gültiger Begriff" + +#: git-bisect.sh:578 +#, sh-format +msgid "can't use the builtin command '$term' as a term" +msgstr "Kann eingebautes Kommando '$term' nicht als Begriff verwenden" + +#: git-bisect.sh:587 git-bisect.sh:593 +#, sh-format +msgid "can't change the meaning of term '$term'" +msgstr "Kann Bedeutung von '$term' nicht ändern." + +#: git-bisect.sh:606 #, sh-format msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect." msgstr "" "Ungültiges Kommando: Sie sind gerade bei einer binären $TERM_BAD/$TERM_GOOD " "Suche." +#: git-bisect.sh:636 +msgid "no terms defined" +msgstr "Keine Begriffe definiert." + +#: git-bisect.sh:653 +#, sh-format +msgid "" +"invalid argument $arg for 'git bisect terms'.\n" +"Supported options are: --term-good|--term-old and --term-bad|--term-new." +msgstr "" +"Ungültiges Argument $arg für 'git bisect terms'.\n" +"Unterstützte Optionen sind: --term-good|--term-old und --term-bad|--term-new." + #: git-rebase.sh:57 msgid "" "When you have resolved this problem, run \"git rebase --continue\".\n" @@ -11556,25 +11750,25 @@ msgstr "Der \"pre-rebase hook\" hat den Rebase zurückgewiesen." msgid "It looks like git-am is in progress. Cannot rebase." msgstr "\"git-am\" scheint im Gange zu sein. Kann Rebase nicht durchführen." -#: git-rebase.sh:351 +#: git-rebase.sh:354 msgid "The --exec option must be used with the --interactive option" msgstr "Die Option --exec muss mit --interactive verwendet werden." -#: git-rebase.sh:356 +#: git-rebase.sh:359 msgid "No rebase in progress?" msgstr "Kein Rebase im Gange?" -#: git-rebase.sh:367 +#: git-rebase.sh:370 msgid "The --edit-todo action can only be used during interactive rebase." msgstr "" "Die --edit-todo Aktion kann nur während eines interaktiven Rebase verwendet " "werden." -#: git-rebase.sh:374 +#: git-rebase.sh:377 msgid "Cannot read HEAD" msgstr "Kann HEAD nicht lesen" -#: git-rebase.sh:377 +#: git-rebase.sh:380 msgid "" "You must edit all merge conflicts and then\n" "mark them as resolved using git add" @@ -11582,12 +11776,12 @@ msgstr "" "Sie müssen alle Merge-Konflikte editieren und diese dann\n" "mittels \"git add\" als aufgelöst markieren" -#: git-rebase.sh:395 +#: git-rebase.sh:398 #, sh-format msgid "Could not move back to $head_name" msgstr "Konnte nicht zu $head_name zurückgehen" -#: git-rebase.sh:414 +#: git-rebase.sh:417 #, sh-format msgid "" "It seems that there is already a $state_dir_base directory, and\n" @@ -11608,67 +11802,67 @@ msgstr "" "und führen Sie dieses Kommando nochmal aus. Es wird angehalten, falls noch\n" "etwas Schützenswertes vorhanden ist." -#: git-rebase.sh:465 +#: git-rebase.sh:468 #, sh-format msgid "invalid upstream $upstream_name" msgstr "ungültiger Upstream-Branch $upstream_name" -#: git-rebase.sh:489 +#: git-rebase.sh:492 #, sh-format msgid "$onto_name: there are more than one merge bases" msgstr "$onto_name: es gibt mehr als eine Merge-Basis" -#: git-rebase.sh:492 git-rebase.sh:496 +#: git-rebase.sh:495 git-rebase.sh:499 #, sh-format msgid "$onto_name: there is no merge base" msgstr "$onto_name: es gibt keine Merge-Basis" -#: git-rebase.sh:501 +#: git-rebase.sh:504 #, sh-format msgid "Does not point to a valid commit: $onto_name" msgstr "$onto_name zeigt auf keinen gültigen Commit" -#: git-rebase.sh:524 +#: git-rebase.sh:527 #, sh-format msgid "fatal: no such branch: $branch_name" msgstr "fatal: Branch $branch_name nicht gefunden" -#: git-rebase.sh:557 +#: git-rebase.sh:560 msgid "Cannot autostash" msgstr "Kann \"autostash\" nicht ausführen." -#: git-rebase.sh:562 +#: git-rebase.sh:565 #, sh-format msgid "Created autostash: $stash_abbrev" msgstr "\"autostash\" erzeugt: $stash_abbrev" -#: git-rebase.sh:566 +#: git-rebase.sh:569 msgid "Please commit or stash them." msgstr "Bitte committen Sie die Änderungen oder benutzen Sie \"stash\"." -#: git-rebase.sh:586 +#: git-rebase.sh:589 #, sh-format msgid "Current branch $branch_name is up to date." msgstr "Aktueller Branch $branch_name ist auf dem neuesten Stand." -#: git-rebase.sh:590 +#: git-rebase.sh:593 #, sh-format msgid "Current branch $branch_name is up to date, rebase forced." msgstr "" "Aktueller Branch $branch_name ist auf dem neuesten Stand, Rebase erzwungen." -#: git-rebase.sh:601 +#: git-rebase.sh:604 #, sh-format msgid "Changes from $mb to $onto:" msgstr "Änderungen von $mb zu $onto:" -#: git-rebase.sh:610 +#: git-rebase.sh:613 msgid "First, rewinding head to replay your work on top of it..." msgstr "" "Zunächst wird der Branch zurückgespult, um Ihre Änderungen\n" "darauf neu anzuwenden ..." -#: git-rebase.sh:620 +#: git-rebase.sh:623 #, sh-format msgid "Fast-forwarded $branch_name to $onto_name." msgstr "$branch_name zu $onto_name vorgespult." @@ -11742,114 +11936,99 @@ msgstr "Kann den aktuellen Status nicht speichern" msgid "Cannot remove worktree changes" msgstr "Kann Änderungen im Arbeitsverzeichnis nicht löschen" -#: git-stash.sh:387 +#: git-stash.sh:405 #, sh-format msgid "unknown option: $opt" msgstr "unbekannte Option: $opt" -#: git-stash.sh:397 +#: git-stash.sh:415 msgid "No stash found." -msgstr "Kein \"stash\" gefunden." +msgstr "Kein Stash-Eintrag gefunden." -#: git-stash.sh:404 +#: git-stash.sh:422 #, sh-format msgid "Too many revisions specified: $REV" msgstr "Zu viele Commits angegeben: $REV" -#: git-stash.sh:410 +#: git-stash.sh:428 #, sh-format msgid "$reference is not a valid reference" msgstr "$reference ist keine gültige Referenz" -#: git-stash.sh:438 +#: git-stash.sh:456 #, sh-format msgid "'$args' is not a stash-like commit" msgstr "'$args' ist kein \"stash\"-artiger Commit" -#: git-stash.sh:449 +#: git-stash.sh:467 #, sh-format msgid "'$args' is not a stash reference" msgstr "'$args' ist keine \"stash\"-Referenz" -#: git-stash.sh:457 +#: git-stash.sh:475 msgid "unable to refresh index" -msgstr "unfähig den Index zu aktualisieren" +msgstr "Konnte den Index nicht aktualisieren." -#: git-stash.sh:461 +#: git-stash.sh:479 msgid "Cannot apply a stash in the middle of a merge" msgstr "Kann \"stash\" nicht anwenden, solang ein Merge im Gange ist" -#: git-stash.sh:469 +#: git-stash.sh:487 msgid "Conflicts in index. Try without --index." msgstr "Konflikte im Index. Versuchen Sie es ohne --index." -#: git-stash.sh:471 +#: git-stash.sh:489 msgid "Could not save index tree" msgstr "Konnte Index-Verzeichnis nicht speichern" -#: git-stash.sh:505 +#: git-stash.sh:523 msgid "Cannot unstage modified files" msgstr "Kann geänderte Dateien nicht aus dem Index entfernen" -#: git-stash.sh:520 +#: git-stash.sh:538 msgid "Index was not unstashed." msgstr "Index wurde nicht aus dem Stash zurückgeladen." -#: git-stash.sh:543 +#: git-stash.sh:561 #, sh-format msgid "Dropped ${REV} ($s)" msgstr "Gelöscht ${REV} ($s)" -#: git-stash.sh:544 +#: git-stash.sh:562 #, sh-format msgid "${REV}: Could not drop stash entry" msgstr "${REV}: Konnte \"stash\"-Eintrag nicht löschen" -#: git-stash.sh:552 +#: git-stash.sh:570 msgid "No branch name specified" msgstr "Kein Branchname spezifiziert" -#: git-stash.sh:624 +#: git-stash.sh:642 msgid "(To restore them type \"git stash apply\")" msgstr "(Zur Wiederherstellung geben Sie \"git stash apply\" ein)" -#: git-submodule.sh:95 +#: git-submodule.sh:104 #, sh-format msgid "cannot strip one component off url '$remoteurl'" msgstr "Kann eine Komponente von URL '$remoteurl' nicht extrahieren" -#: git-submodule.sh:237 -#, sh-format -msgid "No submodule mapping found in .gitmodules for path '$sm_path'" -msgstr "Keine Submodul-Zuordnung in .gitmodules für Pfad '$sm_path' gefunden" - -#: git-submodule.sh:287 -#, sh-format -msgid "Clone of '$url' into submodule path '$sm_path' failed" -msgstr "Klonen von '$url' in Submodul-Pfad '$sm_path' fehlgeschlagen" - -#: git-submodule.sh:296 -#, sh-format -msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" -msgstr "Git-Verzeichnis '$a' ist Teil des Submodul-Pfades '$b', oder umgekehrt" - -#: git-submodule.sh:406 +#: git-submodule.sh:281 msgid "Relative path can only be used from the toplevel of the working tree" msgstr "" "Relative Pfade können nur von der obersten Ebene des Arbeitsverzeichnisses " "benutzt werden." -#: git-submodule.sh:416 +#: git-submodule.sh:291 #, 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:433 +#: git-submodule.sh:308 #, sh-format msgid "'$sm_path' already exists in the index" msgstr "'$sm_path' ist bereits zum Commit vorgemerkt" -#: git-submodule.sh:437 +#: git-submodule.sh:312 #, sh-format msgid "" "The following path is ignored by one of your .gitignore files:\n" @@ -11860,24 +12039,24 @@ msgstr "" "$sm_path\n" "Benutzen Sie -f wenn Sie diesen wirklich hinzufügen möchten." -#: git-submodule.sh:455 +#: git-submodule.sh:330 #, sh-format msgid "Adding existing repo at '$sm_path' to the index" msgstr "Füge existierendes Repository in '$sm_path' dem Index hinzu." -#: git-submodule.sh:457 +#: git-submodule.sh:332 #, 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-Repository" -#: git-submodule.sh:465 +#: git-submodule.sh:340 #, 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 Remote-" "Repositories:" -#: git-submodule.sh:467 +#: git-submodule.sh:342 #, sh-format msgid "" "If you want to reuse this local git directory instead of cloning again from" @@ -11885,7 +12064,7 @@ msgstr "" "Wenn Sie dieses lokale Git-Verzeichnis wiederverwenden möchtest, anstatt " "erneut zu klonen" -#: git-submodule.sh:469 +#: git-submodule.sh:344 #, sh-format msgid "" "use the '--force' option. If the local git directory is not the correct repo" @@ -11893,7 +12072,7 @@ msgstr "" "benutzen Sie die Option '--force'. Wenn das lokale Git-Verzeichnis nicht das " "korrekte Repository ist" -#: git-submodule.sh:470 +#: git-submodule.sh:345 #, sh-format msgid "" "or you are unsure what this means choose another name with the '--name' " @@ -11902,77 +12081,77 @@ msgstr "" "oder Sie sich unsicher sind, was das bedeutet, wählen Sie einen anderen " "Namenmit der Option '--name'." -#: git-submodule.sh:472 +#: git-submodule.sh:347 #, sh-format msgid "Reactivating local git directory for submodule '$sm_name'." msgstr "Reaktiviere lokales Git-Verzeichnis für Submodul '$sm_name'." -#: git-submodule.sh:484 +#: git-submodule.sh:359 #, sh-format msgid "Unable to checkout submodule '$sm_path'" msgstr "Kann Submodul '$sm_path' nicht auschecken" -#: git-submodule.sh:489 +#: git-submodule.sh:364 #, sh-format msgid "Failed to add submodule '$sm_path'" msgstr "Hinzufügen von Submodul '$sm_path' fehlgeschlagen" -#: git-submodule.sh:498 +#: git-submodule.sh:373 #, sh-format msgid "Failed to register submodule '$sm_path'" msgstr "Fehler beim Eintragen von Submodul '$sm_path' in die Konfiguration." -#: git-submodule.sh:542 +#: git-submodule.sh:417 #, sh-format msgid "Entering '$prefix$displaypath'" msgstr "Betrete '$prefix$displaypath'" -#: git-submodule.sh:562 +#: git-submodule.sh:437 #, sh-format msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." msgstr "Stoppe bei '$prefix$displaypath'; Skript gab nicht-Null Status zurück." -#: git-submodule.sh:608 +#: git-submodule.sh:483 #, sh-format msgid "No url found for submodule path '$displaypath' in .gitmodules" msgstr "Keine URL für Submodul-Pfad '$displaypath' in .gitmodules gefunden" -#: git-submodule.sh:617 +#: git-submodule.sh:492 #, sh-format msgid "Failed to register url for submodule path '$displaypath'" msgstr "" "Fehler beim Eintragen der URL für Submodul-Pfad '$displaypath' in die " "Konfiguration." -#: git-submodule.sh:619 +#: git-submodule.sh:494 #, sh-format msgid "Submodule '$name' ($url) registered for path '$displaypath'" msgstr "" "Submodul '$name' ($url) für Pfad '$displaypath' in die Konfiguration " "eingetragen." -#: git-submodule.sh:636 +#: git-submodule.sh:511 #, sh-format msgid "Failed to register update mode for submodule path '$displaypath'" msgstr "" "Fehler bei Änderung des Aktualisierungsmodus für Submodul-Pfad " "'$displaypath' in der Konfiguration." -#: git-submodule.sh:674 +#: git-submodule.sh:549 #, sh-format msgid "Use '.' if you really want to deinitialize all submodules" msgstr "" "Verwenden Sie '.' wenn Sie wirklich alle Submodule\n" "deinitialisieren möchten." -#: git-submodule.sh:691 +#: git-submodule.sh:566 #, sh-format msgid "Submodule work tree '$displaypath' contains a .git directory" msgstr "" "Arbeitsverzeichnis des Submoduls in '$displaypath' enthält ein .git-" "Verzeichnis" -#: git-submodule.sh:692 +#: git-submodule.sh:567 #, sh-format msgid "" "(use 'rm -rf' if you really want to remove it including all of its history)" @@ -11980,7 +12159,7 @@ msgstr "" "(benutzen Sie 'rm -rf' wenn Sie dieses Submodul wirklich mitsamt\n" "seiner Historie löschen möchten)" -#: git-submodule.sh:698 +#: git-submodule.sh:573 #, sh-format msgid "" "Submodule work tree '$displaypath' contains local modifications; use '-f' to " @@ -11989,31 +12168,31 @@ msgstr "" "Arbeitsverzeichnis von Submodul in '$displaypath' enthält lokale Änderungen; " "verwenden Sie '-f', um diese zu verwerfen" -#: git-submodule.sh:701 +#: git-submodule.sh:576 #, sh-format msgid "Cleared directory '$displaypath'" msgstr "Verzeichnis '$displaypath' bereinigt." -#: git-submodule.sh:702 +#: git-submodule.sh:577 #, sh-format msgid "Could not remove submodule work tree '$displaypath'" msgstr "" "Konnte Arbeitsverzeichnis des Submoduls in '$displaypath' nicht löschen." -#: git-submodule.sh:705 +#: git-submodule.sh:580 #, sh-format msgid "Could not create empty submodule directory '$displaypath'" msgstr "" "Konnte kein leeres Verzeichnis für Submodul in '$displaypath' erstellen." -#: git-submodule.sh:714 +#: git-submodule.sh:589 #, sh-format msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" msgstr "" "Submodul '$name' ($url) für Pfad '$displaypath' wurde aus der Konfiguration " "entfernt." -#: git-submodule.sh:830 +#: git-submodule.sh:705 #, sh-format msgid "" "Submodule path '$displaypath' not initialized\n" @@ -12022,52 +12201,52 @@ msgstr "" "Submodul-Pfad '$displaypath' ist nicht initialisiert.\n" "Vielleicht möchten Sie 'update --init' benutzen?" -#: git-submodule.sh:843 +#: git-submodule.sh:718 #, sh-format msgid "Unable to find current revision in submodule path '$displaypath'" msgstr "Konnte aktuellen Commit in Submodul-Pfad '$displaypath' nicht finden." -#: git-submodule.sh:852 +#: git-submodule.sh:727 #, sh-format msgid "Unable to fetch in submodule path '$sm_path'" msgstr "Konnte \"fetch\" in Submodul-Pfad '$sm_path' nicht ausführen" -#: git-submodule.sh:876 +#: git-submodule.sh:751 #, sh-format msgid "Unable to fetch in submodule path '$displaypath'" msgstr "Konnte \"fetch\" in Submodul-Pfad '$displaypath' nicht ausführen" -#: git-submodule.sh:890 +#: git-submodule.sh:765 #, sh-format msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" msgstr "Konnte '$sha1' in Submodul-Pfad '$displaypath' nicht auschecken." -#: git-submodule.sh:891 +#: git-submodule.sh:766 #, sh-format msgid "Submodule path '$displaypath': checked out '$sha1'" msgstr "Submodul-Pfad: '$displaypath': '$sha1' ausgecheckt" -#: git-submodule.sh:895 +#: git-submodule.sh:770 #, sh-format msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" msgstr "Rebase auf '$sha1' in Submodul-Pfad '$displaypath' nicht möglich" -#: git-submodule.sh:896 +#: git-submodule.sh:771 #, sh-format msgid "Submodule path '$displaypath': rebased into '$sha1'" msgstr "Submodul-Pfad '$displaypath': Rebase auf '$sha1'" -#: git-submodule.sh:901 +#: git-submodule.sh:776 #, sh-format msgid "Unable to merge '$sha1' in submodule path '$displaypath'" msgstr "Merge von '$sha1' in Submodul-Pfad '$displaypath' fehlgeschlagen" -#: git-submodule.sh:902 +#: git-submodule.sh:777 #, sh-format msgid "Submodule path '$displaypath': merged in '$sha1'" msgstr "Submodul-Pfad '$displaypath': zusammengeführt in '$sha1'" -#: git-submodule.sh:907 +#: git-submodule.sh:782 #, sh-format msgid "" "Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" @@ -12075,56 +12254,111 @@ msgstr "" "Ausführung von '$command $sha1' in Submodul-Pfad '$prefix$sm_path' " "fehlgeschlagen" -#: git-submodule.sh:908 +#: git-submodule.sh:783 #, sh-format msgid "Submodule path '$prefix$sm_path': '$command $sha1'" msgstr "Submodul-Pfad '$prefix$sm_path': '$command $sha1'" -#: git-submodule.sh:938 +#: git-submodule.sh:813 #, sh-format msgid "Failed to recurse into submodule path '$displaypath'" msgstr "Fehler bei Rekursion in Submodul-Pfad '$displaypath'" -#: git-submodule.sh:1046 +#: git-submodule.sh:921 msgid "The --cached option cannot be used with the --files option" msgstr "" "Die Optionen --cached und --files können nicht gemeinsam verwendet werden." -#: git-submodule.sh:1098 +#: git-submodule.sh:973 #, sh-format msgid "unexpected mode $mod_dst" msgstr "unerwarteter Modus $mod_dst" -#: git-submodule.sh:1118 +#: git-submodule.sh:993 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_src" msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_src" -#: git-submodule.sh:1121 +#: git-submodule.sh:996 #, sh-format msgid " Warn: $display_name doesn't contain commit $sha1_dst" msgstr " Warnung: $display_name beinhaltet nicht Commit $sha1_dst" -#: git-submodule.sh:1124 +#: git-submodule.sh:999 #, sh-format msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" msgstr "" " Warnung: $display_name beinhaltet nicht die Commits $sha1_src und $sha1_dst" -#: git-submodule.sh:1149 +#: git-submodule.sh:1024 msgid "blob" msgstr "Blob" -#: git-submodule.sh:1267 +#: git-submodule.sh:1142 #, sh-format msgid "Failed to recurse into submodule path '$sm_path'" msgstr "Fehler bei Rekursion in Submodul-Pfad '$sm_path'" -#: git-submodule.sh:1331 +#: git-submodule.sh:1206 #, sh-format msgid "Synchronizing submodule url for '$displaypath'" msgstr "Synchronisiere Submodul-URL für '$displaypath'" +#~ msgid "unable to look up current user in the passwd file: %s" +#~ msgstr "konnte aktuellen Benutzer nicht in Passwort-Datei finden: %s" + +#~ msgid "no such user" +#~ msgstr "kein solcher Benutzer" + +#~ msgid "branch '%s' does not point at a commit" +#~ msgstr "Branch '%s' zeigt auf keinen Commit" + +#~ msgid "object '%s' does not point to a commit" +#~ msgstr "Objekt '%s' zeigt auf keinen Commit" + +#~ msgid "some refs could not be read" +#~ msgstr "Konnte einige Referenzen nicht lesen" + +#~ msgid "print only merged branches" +#~ msgstr "nur Branches ausgeben, die zusammengeführt sind" + +#~ msgid "--dissociate given, but there is no --reference" +#~ msgstr "--dissociate ohne --reference angegeben" + +#~ msgid "show usage" +#~ msgstr "Verwendung anzeigen" + +#~ msgid "insanely long template name %s" +#~ msgstr "zu langer Vorlagen-Name %s" + +#~ msgid "insanely long symlink %s" +#~ msgstr "zu lange symbolische Verknüpfung %s" + +#~ msgid "insanely long template path %s" +#~ msgstr "zu langer Vorlagen-Pfad %s" + +#~ msgid "insane git directory %s" +#~ msgstr "ungültiges Git-Verzeichnis %s" + +#~ msgid "unsupported sort specification '%s'" +#~ msgstr "Nicht unterstützte Angabe für \"--sort\" '%s'" + +#~ msgid "unsupported sort specification '%s' in variable '%s'" +#~ msgstr "Nicht unterstützte Angabe für \"--sort\" '%s' in Variable '%s'" + +#~ msgid "switch 'points-at' requires an object" +#~ msgstr "Option 'points-at' erfordert ein Objekt" + +#~ msgid "sort tags" +#~ msgstr "Tags sortieren" + +#~ msgid "--sort and -n are incompatible" +#~ msgstr "--sort und -n sind inkompatibel" + +#~ msgid "Gitdir '$a' is part of the submodule path '$b' or vice versa" +#~ msgstr "" +#~ "Git-Verzeichnis '$a' ist Teil des Submodul-Pfades '$b', oder umgekehrt" + #~ msgid "false|true|preserve" #~ msgstr "false|true|preserve" diff --git a/po/ko.po b/po/ko.po new file mode 100644 index 000000000..8ec0eac13 --- /dev/null +++ b/po/ko.po @@ -0,0 +1,11859 @@ +# Git Korean translation +# Copyright (C) 2015-2016 Changwoo Ryu and contributors +# This file is distributed under the same license as the Git package. +# +# Contributors: +# Hyunjun Kim <yoloseem AT users.noreply.github.com>, 2015. +# Changwoo Ryu <cwryu@debian.org>, 2015-2016. +# +# - 작업자는 위 Contributors 목록에 추가해 주세요. +# - 번역하면서 80컬럼을 넘어가지 않도록 해 주세요. +# - 가능한한 원문이 1줄이면 1줄에 들어가게 하고, 부득이하면 경우에 따라 +# 알맞게 줄바꿈합니다. (커맨드라인이면 줄바꿈하고 다음 줄에 탭 2개) +# - 용어는 일관성을 지켜 주십시오. +# - 용어가 바뀌어야 한다고 생각하면 그렇게 번역하기 전에 충분히 의견 교환을 +# 하십시오. +# - 일반적인 문장에서 영어 단어를 그대로 쓰지 않습니다. 최소한 음역합니다. +# - 예외적으로 명령어 등 문자 그대로 가리키는 경우에만 원문 그대로 씁니다. +# - 예: 업스트림 추적에 'origin' 대신 <이름>을 사용합니다 +# - 번역된 용어가 깃 명령어와 연관되는 경우에는 괄호 안에 씁니다. +# - 예: 되돌리기(revert)가 진행 중입니다 +# - 용어: +# +--------------+----------------------------------------------+ +# | 3-way merge | 3-방향 병합 | +# | author | 작성자 | +# | bisect | 이등분 | +# | blob | 블롭 | +# | bundle | 번들 | +# | branch | 브랜치 | +# | cherry-pick | (커밋) 빼오기 | +# | commit | 커밋 | +# | commit-ish | 커밋-따위 | +# | committer | 커미터 | +# | conflict | 충돌 | +# | fast-forward | 정방향 진행 | +# | head | 헤드 | +# | hook | 훅 | +# | history | (커밋) 내역 | +# | Git | 깃 | +# | log | 기록 | +# | merge | 병합 | +# | note | 노트 | +# | pack | 묶음 | +# | pathspec | 경로명세 | +# | rebase | 리베이스 | +# | ref | 레퍼런스 | +# | repo | 저장소 | +# | remote | 리모트 (저장소) | +# | reset | 재지정 | +# | revert | 되돌리기 | +# | subcommand | 하위 명령 | +# | submodule | 하위 모듈 | +# | tree-ish | 트리-따위 | +# | working tree | 작업 폴더 | +# +--------------+----------------------------------------------+ +# +msgid "" +msgstr "" +"Project-Id-Version: git\n" +"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" +"POT-Creation-Date: 2015-12-22 22:50+0800\n" +"PO-Revision-Date: 2016-01-03 18:50+0900\n" +"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n" +"Language-Team: Git Korean translation <http://github.com/changwoo/git-l10n-" +"ko>\n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: advice.c:55 +#, c-format +msgid "hint: %.*s\n" +msgstr "힌트: %.*s\n" + +#: advice.c:88 +msgid "" +"Fix them up in the work tree, and then use 'git add/rm <file>'\n" +"as appropriate to mark resolution and make a commit." +msgstr "" +"작업 폴더에서 문제를 바로잡은 다음, 'git add/rm <파일>'을 적절히\n" +"사용해 해결 표시하고 커밋하십시오." + +#: advice.c:101 builtin/merge.c:1225 +msgid "You have not concluded your merge (MERGE_HEAD exists)." +msgstr "병합 작업을 다 마치지 않았습니다 (MERGE_HEAD 파일이 있습니다)." + +#: advice.c:103 +msgid "Please, commit your changes before merging." +msgstr "병합하기 전에 변경 사항을 커밋하십시오." + +#: advice.c:104 +msgid "Exiting because of unfinished merge." +msgstr "병합을 마치지 못했기 때문에 끝납니다." + +#: archive.c:12 +msgid "git archive [<options>] <tree-ish> [<path>...]" +msgstr "git archive [<옵션>] <트리-따위> [<경로>...]" + +#: archive.c:13 +msgid "git archive --list" +msgstr "git archive --list" + +#: archive.c:14 +msgid "" +"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]" +msgstr "" +"git archive --remote <저장소> [--exec <명령>] [<옵션>] <트리-따위> [<경로" +">...]" + +#: archive.c:15 +msgid "git archive --remote <repo> [--exec <cmd>] --list" +msgstr "git archive --remote <저장소> [--exec <명령>] --list" + +#: archive.c:344 builtin/add.c:137 builtin/add.c:420 builtin/rm.c:327 +#, c-format +msgid "pathspec '%s' did not match any files" +msgstr "'%s' 경로명세가 어떤 파일과도 일치하지 않습니다" + +#: archive.c:429 +msgid "fmt" +msgstr "형식" + +#: archive.c:429 +msgid "archive format" +msgstr "압축 형식" + +#: archive.c:430 builtin/log.c:1229 +msgid "prefix" +msgstr "접두어" + +#: archive.c:431 +msgid "prepend prefix to each pathname in the archive" +msgstr "아카이브의 각 경로 이름의 앞에 지정한 경로를 붙입니다" + +#: archive.c:432 builtin/archive.c:88 builtin/blame.c:2535 builtin/blame.c:2536 +#: builtin/config.c:58 builtin/fast-export.c:987 builtin/fast-export.c:989 +#: builtin/grep.c:707 builtin/hash-object.c:99 builtin/ls-files.c:446 +#: builtin/ls-files.c:449 builtin/notes.c:395 builtin/notes.c:558 +#: builtin/read-tree.c:109 parse-options.h:153 +msgid "file" +msgstr "파일" + +#: archive.c:433 builtin/archive.c:89 +msgid "write the archive to this file" +msgstr "아카이브를 이 파일에 씁니다" + +#: archive.c:435 +msgid "read .gitattributes in working directory" +msgstr "작업 폴더의 .gitattributes를 읽습니다" + +#: archive.c:436 +msgid "report archived files on stderr" +msgstr "아카이브에 포함된 파일을 표준오류로 표시합니다" + +#: archive.c:437 +msgid "store only" +msgstr "저장만 하기" + +#: archive.c:438 +msgid "compress faster" +msgstr "더 빠르게 압축" + +#: archive.c:446 +msgid "compress better" +msgstr "더 작게 압축" + +#: archive.c:449 +msgid "list supported archive formats" +msgstr "지원하는 압축 형식의 목록을 표시합니다" + +#: archive.c:451 builtin/archive.c:90 builtin/clone.c:77 +msgid "repo" +msgstr "저장소" + +#: archive.c:452 builtin/archive.c:91 +msgid "retrieve the archive from remote repository <repo>" +msgstr "원격 저장소 <저장소>에서 아카이브를 가져옵니다" + +#: archive.c:453 builtin/archive.c:92 builtin/notes.c:479 +msgid "command" +msgstr "명령" + +#: archive.c:454 builtin/archive.c:93 +msgid "path to the remote git-upload-archive command" +msgstr "원격 git-upload-archive 명령의 경로" + +#: attr.c:265 +msgid "" +"Negative patterns are ignored in git attributes\n" +"Use '\\!' for literal leading exclamation." +msgstr "" +"git attributes에서 반대 패턴은 무시됩니다.\n" +"앞에 느낌표를 쓰려면 '\\!'를 사용하십시오." + +#: branch.c:61 +#, c-format +msgid "Not setting branch %s as its own upstream." +msgstr "%s 브랜치를 자신의 업스트림으로 지정하지 않음." + +#: branch.c:84 +#, c-format +msgid "Branch %s set up to track remote branch %s from %s by rebasing." +msgstr "" +"%s 브랜치가 리베이스를 통해 리모트의 %s 브랜치를 (%s에서) 따라가도록 설정되었" +"습니다." + +#: branch.c:85 +#, c-format +msgid "Branch %s set up to track remote branch %s from %s." +msgstr "%s 브랜치가 리모트의 %s 브랜치를 (%s에서) 따라가도록 설정되었습니다." + +#: branch.c:89 +#, c-format +msgid "Branch %s set up to track local branch %s by rebasing." +msgstr "" +"%s 브랜치가 리베이스를 통해 리모트의 %s 브랜치를 따라가도록 설정되었습니다." + +#: branch.c:90 +#, c-format +msgid "Branch %s set up to track local branch %s." +msgstr "%s 브랜치가 %s 브랜치를 따라가도록 설정되었습니다." + +#: branch.c:95 +#, c-format +msgid "Branch %s set up to track remote ref %s by rebasing." +msgstr "" +"%s 브랜치가 리베이스를 통해 리모트의 %s 레퍼런스를 따라가도록 설정되었습니다." + +#: branch.c:96 +#, c-format +msgid "Branch %s set up to track remote ref %s." +msgstr "%s 브랜치가 리모트의 %s 레퍼런스를 따라가도록 설정되었습니다." + +#: branch.c:100 +#, c-format +msgid "Branch %s set up to track local ref %s by rebasing." +msgstr "" +"%s 브랜치가 리베이스를 통해 로컬의 %s 레퍼런스를 따라가도록 설정되었습니다." + +#: branch.c:101 +#, c-format +msgid "Branch %s set up to track local ref %s." +msgstr "%s 브랜치가 로컬의 %s 레퍼런스를 따라가도록 설정되었습니다." + +#: branch.c:134 +#, c-format +msgid "Not tracking: ambiguous information for ref %s" +msgstr "따라가지 않음: %s 레퍼런스에 대해 애매한 정보" + +#: branch.c:163 +#, c-format +msgid "'%s' is not a valid branch name." +msgstr "'%s'은(는) 올바른 브랜치 이름이 아닙니다." + +#: branch.c:168 +#, c-format +msgid "A branch named '%s' already exists." +msgstr "이름이 '%s'인 브랜치가 이미 있습니다." + +#: branch.c:176 +msgid "Cannot force update the current branch." +msgstr "현재 브랜치를 강제로 업데이트할 수 없습니다." + +#: branch.c:196 +#, c-format +msgid "Cannot setup tracking information; starting point '%s' is not a branch." +msgstr "" +"따라가기 정보를 설정할 수 없습니다. 시작 위치 '%s'이(가) 브랜치가 아닙니다." + +#: branch.c:198 +#, c-format +msgid "the requested upstream branch '%s' does not exist" +msgstr "요청한 업스트림 '%s' 브랜치가 없습니다" + +#: branch.c:200 +msgid "" +"\n" +"If you are planning on basing your work on an upstream\n" +"branch that already exists at the remote, you may need to\n" +"run \"git fetch\" to retrieve it.\n" +"\n" +"If you are planning to push out a new local branch that\n" +"will track its remote counterpart, you may want to use\n" +"\"git push -u\" to set the upstream config as you push." +msgstr "" +"\n" +"리모트에 이미 있는 업스트림 브랜치를 기반으로 작업하려면,\n" +"먼저 \"git fetch\"로 가져 리모트 브랜치를 가져옵니다.\n" +"\n" +"새 로컬 브랜치를 거기에 해당하는 리모트 브랜치로 push하려면,\n" +"\"git push -u\"로 push하는 업스트림을 설정할 수 있습니다." + +#: branch.c:244 +#, c-format +msgid "Not a valid object name: '%s'." +msgstr "올바른 오브젝트 이름이 아닙니다: '%s'." + +#: branch.c:264 +#, c-format +msgid "Ambiguous object name: '%s'." +msgstr "애매한 오브젝트 이름: '%s'." + +#: branch.c:269 +#, c-format +msgid "Not a valid branch point: '%s'." +msgstr "올바른 브랜치 위치가 아닙니다: '%s'." + +#: branch.c:322 +#, c-format +msgid "'%s' is already checked out at '%s'" +msgstr "'%s'은(는) 이미 '%s' 위치에 받아져 있습니다" + +#: bundle.c:34 +#, c-format +msgid "'%s' does not look like a v2 bundle file" +msgstr "'%s' 파일이 버전2 번들 파일로 보이지 않습니다" + +#: bundle.c:61 +#, c-format +msgid "unrecognized header: %s%s (%d)" +msgstr "인식할 수 없는 헤더: %s%s (%d)" + +#: bundle.c:87 builtin/commit.c:766 +#, c-format +msgid "could not open '%s'" +msgstr "'%s'을(를) 열 수 없습니다" + +#: bundle.c:139 +msgid "Repository lacks these prerequisite commits:" +msgstr "저장소에 필수적인 다음 커밋이 없습니다:" + +#: bundle.c:163 ref-filter.c:1372 sequencer.c:636 sequencer.c:1083 +#: builtin/blame.c:2734 builtin/commit.c:1045 builtin/log.c:334 +#: builtin/log.c:849 builtin/log.c:1461 builtin/log.c:1694 builtin/merge.c:358 +#: builtin/shortlog.c:158 +msgid "revision walk setup failed" +msgstr "리비전 walk 준비가 실패했습니다" + +#: bundle.c:185 +#, c-format +msgid "The bundle contains this ref:" +msgid_plural "The bundle contains these %d refs:" +msgstr[0] "번들에 다음 레퍼런스 %d개가 있습니다:" + +#: bundle.c:192 +msgid "The bundle records a complete history." +msgstr "번들은 전체 커밋 내역을 기록합니다." + +#: bundle.c:194 +#, c-format +msgid "The bundle requires this ref:" +msgid_plural "The bundle requires these %d refs:" +msgstr[0] "번들에 다음 레퍼런스 %d개가 필요합니다:" + +#: bundle.c:253 +msgid "Could not spawn pack-objects" +msgstr "pack-objects 명령을 실행할 수 없습니다" + +#: bundle.c:264 +msgid "pack-objects died" +msgstr "pack-objects 명령이 죽었습니다" + +#: bundle.c:304 +msgid "rev-list died" +msgstr "rev-list 명령이 죽었습니다" + +#: bundle.c:353 +#, c-format +msgid "ref '%s' is excluded by the rev-list options" +msgstr "rev-list 옵션에서 '%s' 레퍼런스가 제외되었습니다" + +#: bundle.c:443 builtin/log.c:157 builtin/log.c:1369 builtin/shortlog.c:261 +#, c-format +msgid "unrecognized argument: %s" +msgstr "알 수 없는 인자: %s" + +#: bundle.c:449 +msgid "Refusing to create empty bundle." +msgstr "빈 번들은 만들지 않습니다." + +#: bundle.c:459 +#, c-format +msgid "cannot create '%s'" +msgstr "'%s'을(를) 만들 수 없습니다" + +#: bundle.c:480 +msgid "index-pack died" +msgstr "index-pack 명령이 죽었습니다" + +#: color.c:275 +#, c-format +msgid "invalid color value: %.*s" +msgstr "잘못된 색 값: %.*s" + +#: commit.c:40 builtin/am.c:452 builtin/am.c:488 builtin/am.c:1520 +#: builtin/am.c:2149 +#, c-format +msgid "could not parse %s" +msgstr "parse %s을(를) 파싱할 수 없습니다" + +#: commit.c:42 +#, c-format +msgid "%s %s is not a commit!" +msgstr "%s %s, 커밋이 아닙니다" + +#: compat/obstack.c:406 compat/obstack.c:408 +msgid "memory exhausted" +msgstr "메모리 바닥남" + +#: config.c:474 config.c:476 +#, c-format +msgid "bad config file line %d in %s" +msgstr "%2$s 파일 %1$d번 줄에 잘못된 설정" + +#: config.c:592 +#, c-format +msgid "bad numeric config value '%s' for '%s' in %s: %s" +msgstr "잘못된 수치 설정 값 '%s' (키 '%s', %s 파일): %s" + +#: config.c:594 +#, c-format +msgid "bad numeric config value '%s' for '%s': %s" +msgstr "잘못된 수치 설정 값 '%s' (키 '%s'): %s" + +#: config.c:679 +#, c-format +msgid "failed to expand user dir in: '%s'" +msgstr "다음에 사용자 디렉터리 확장에 실패: '%s'" + +#: config.c:757 config.c:768 +#, c-format +msgid "bad zlib compression level %d" +msgstr "%d번은 올바른 zlib 압축 단계가 아닙니다" + +#: config.c:890 +#, c-format +msgid "invalid mode for object creation: %s" +msgstr "오브젝트 생성 모드가 올바르지 않습니다: %s" + +#: config.c:1216 +msgid "unable to parse command-line config" +msgstr "명령행 설정을 파싱할 수 없습니다" + +#: config.c:1277 +msgid "unknown error occured while reading the configuration files" +msgstr "설정 파일을 읽는 중 알 수 없는 오류가 생겼습니다" + +#: config.c:1601 +#, c-format +msgid "unable to parse '%s' from command-line config" +msgstr "명령행 설정에서 '%s'을(를) 설정할 수 없습니다" + +#: config.c:1603 +#, c-format +msgid "bad config variable '%s' in file '%s' at line %d" +msgstr "'%2$s' 파일의 %3$d번 줄 '%1$s' 설정 변수가 잘못되었습니다" + +#: config.c:1662 +#, c-format +msgid "%s has multiple values" +msgstr "%s은(는) 여러 개 값이 있습니다" + +#: connected.c:69 +msgid "Could not run 'git rev-list'" +msgstr "'git rev-list'를 실행할 수 없습니다" + +#: connected.c:89 +#, c-format +msgid "failed write to rev-list: %s" +msgstr "rev-list 쓰기에 실패했습니다: %s" + +#: connected.c:97 +#, c-format +msgid "failed to close rev-list's stdin: %s" +msgstr "rev-list의 표준입력을 닫는데 실패했습니다: %s" + +#: date.c:95 +msgid "in the future" +msgstr "미래에" + +#: date.c:101 +#, c-format +msgid "%lu second ago" +msgid_plural "%lu seconds ago" +msgstr[0] "%lu초 전" + +#: date.c:108 +#, c-format +msgid "%lu minute ago" +msgid_plural "%lu minutes ago" +msgstr[0] "%lu분 전" + +#: date.c:115 +#, c-format +msgid "%lu hour ago" +msgid_plural "%lu hours ago" +msgstr[0] "%lu시간 전" + +#: date.c:122 +#, c-format +msgid "%lu day ago" +msgid_plural "%lu days ago" +msgstr[0] "%lu일 전" + +#: date.c:128 +#, c-format +msgid "%lu week ago" +msgid_plural "%lu weeks ago" +msgstr[0] "%lu주 전" + +#: date.c:135 +#, c-format +msgid "%lu month ago" +msgid_plural "%lu months ago" +msgstr[0] "%lu달 전" + +#: date.c:146 +#, c-format +msgid "%lu year" +msgid_plural "%lu years" +msgstr[0] "%lu년" + +#. TRANSLATORS: "%s" is "<n> years" +#: date.c:149 +#, c-format +msgid "%s, %lu month ago" +msgid_plural "%s, %lu months ago" +msgstr[0] "%s %lu달 전" + +#: date.c:154 date.c:159 +#, c-format +msgid "%lu year ago" +msgid_plural "%lu years ago" +msgstr[0] "%lu년 전" + +#: diffcore-order.c:24 +#, c-format +msgid "failed to read orderfile '%s'" +msgstr "'%s' 순서 파일을 읽는데 실패했습니다" + +#: diffcore-rename.c:536 +msgid "Performing inexact rename detection" +msgstr "부정확한 이름 바꾸기 탐색을 수행하는 중" + +#: diff.c:115 +#, c-format +msgid " Failed to parse dirstat cut-off percentage '%s'\n" +msgstr " dirstat 자름 퍼센트 값 '%s' 파싱에 실패했습니다\n" + +#: diff.c:120 +#, c-format +msgid " Unknown dirstat parameter '%s'\n" +msgstr " 알 수 없는 dirstat 파라미터 '%s'\n" + +#: diff.c:215 +#, c-format +msgid "Unknown value for 'diff.submodule' config variable: '%s'" +msgstr "'diff.submodule' 설정 변수에 알 수 없는 값: '%s'" + +#: diff.c:267 +#, c-format +msgid "" +"Found errors in 'diff.dirstat' config variable:\n" +"%s" +msgstr "" +"'diff.submodule' 설정 변수에 오류:\n" +"%s'" + +#: diff.c:3000 +#, c-format +msgid "external diff died, stopping at %s" +msgstr "외부 diff 프로그램이 죽음, %s 위치에서 멈춤" + +#: diff.c:3396 +msgid "--follow requires exactly one pathspec" +msgstr "--follow 옵션에는 정확히 하나의 경로명세가 필요합니다" + +#: diff.c:3559 +#, c-format +msgid "" +"Failed to parse --dirstat/-X option parameter:\n" +"%s" +msgstr "" +"--dirstat/-X 옵션 파라미터를 파싱하는데 실패했습니다:\n" +"%s" + +#: diff.c:3573 +#, c-format +msgid "Failed to parse --submodule option parameter: '%s'" +msgstr "--submodule 옵션 파라미터 파싱에 실패했습니다: '%s'" + +#: dir.c:1915 +msgid "failed to get kernel name and information" +msgstr "커널 이름과 정보를 가져오는데 실패했습니다" + +#: dir.c:1998 +msgid "Untracked cache is disabled on this system." +msgstr "이 시스템에서는 추적되지 않는 캐시를 사용하지 않습니다." + +#: gpg-interface.c:166 gpg-interface.c:237 +msgid "could not run gpg." +msgstr "gpg를 실행할 수 없습니다." + +#: gpg-interface.c:178 +msgid "gpg did not accept the data" +msgstr "gpg에서 데이터를 받아들이지 않습니다" + +#: gpg-interface.c:189 +msgid "gpg failed to sign the data" +msgstr "gpg에서 데이터를 서명하는데 실패했습니다." + +#: gpg-interface.c:222 +#, c-format +msgid "could not create temporary file '%s': %s" +msgstr "임시 파일 '%s'을(를) 만들 수 없습니다: %s" + +#: gpg-interface.c:225 +#, c-format +msgid "failed writing detached signature to '%s': %s" +msgstr "분리된 서명을 '%s'에 쓰는데 실패했습니다: %s" + +#: grep.c:1718 +#, c-format +msgid "'%s': unable to read %s" +msgstr "'%s': %s을(를) 읽을 수 없습니다" + +#: grep.c:1735 +#, c-format +msgid "'%s': %s" +msgstr "'%s': %s" + +#: grep.c:1746 +#, c-format +msgid "'%s': short read %s" +msgstr "'%s': %s에서 읽다가 잘림" + +#: help.c:207 +#, c-format +msgid "available git commands in '%s'" +msgstr "'%s'에 있는 깃 명령" + +#: help.c:214 +msgid "git commands available from elsewhere on your $PATH" +msgstr "다른 $PATH에 있는 깃 명령" + +#: help.c:246 +msgid "These are common Git commands used in various situations:" +msgstr "다음은 여러가지 상황에서 자주 사용하는 깃 명령입니다:" + +#: help.c:311 +#, c-format +msgid "" +"'%s' appears to be a git command, but we were not\n" +"able to execute it. Maybe git-%s is broken?" +msgstr "" +"'%s'은(는) 깃 명령으로 보이지만, 실행할 수\n" +"없습니다. 아마도 git-%s 망가진 것 같습니다." + +#: help.c:368 +msgid "Uh oh. Your system reports no Git commands at all." +msgstr "어라라. 시스템에 깃 명령이 하나도 없다고 나옵니다." + +#: help.c:390 +#, c-format +msgid "" +"WARNING: You called a Git command named '%s', which does not exist.\n" +"Continuing under the assumption that you meant '%s'" +msgstr "" +"경고: 이름이 '%s'인 깃 명령을 실행했지만, 그 명령이 없습니다.\n" +"자동으로 '%s' 명령이라고 가정하고 계속합니다" + +#: help.c:395 +#, c-format +msgid "in %0.1f seconds automatically..." +msgstr "(%0.1f초 뒤에)..." + +#: help.c:402 +#, c-format +msgid "git: '%s' is not a git command. See 'git --help'." +msgstr "git: '%s'은(는) 깃 명령이 아닙니다. 'git --help'를 참고하십시오." + +#: help.c:406 help.c:466 +msgid "" +"\n" +"Did you mean this?" +msgid_plural "" +"\n" +"Did you mean one of these?" +msgstr[0] "" +"\n" +"다음을 의도하신 것 아니었나요?" + +#: help.c:462 +#, c-format +msgid "%s: %s - %s" +msgstr "%s: %s - %s" + +#: merge.c:41 +msgid "failed to read the cache" +msgstr "캐시를 읽는데 실패했습니다" + +#: merge.c:94 builtin/am.c:2022 builtin/am.c:2057 builtin/checkout.c:376 +#: builtin/checkout.c:587 builtin/clone.c:722 +msgid "unable to write new index file" +msgstr "새 인덱스 파일을 쓸 수 없습니다" + +#: merge-recursive.c:189 +#, c-format +msgid "(bad commit)\n" +msgstr "(잘못된 커밋)\n" + +#: merge-recursive.c:209 +#, c-format +msgid "addinfo_cache failed for path '%s'" +msgstr "'%s' 경로에 대해 addinfo_cache가 실패했습니다" + +#: merge-recursive.c:270 +msgid "error building trees" +msgstr "트리 빌드에 오류" + +#: merge-recursive.c:686 +#, c-format +msgid "failed to create path '%s'%s" +msgstr "'%s' 경로 만들기에 실패했습니다%s" + +#: merge-recursive.c:697 +#, c-format +msgid "Removing %s to make room for subdirectory\n" +msgstr "하위 디렉터리에 공간을 만드려고 %s을(를) 제거합니다\n" + +#: merge-recursive.c:711 merge-recursive.c:732 +msgid ": perhaps a D/F conflict?" +msgstr ": 아마도 D/F 충돌?" + +#: merge-recursive.c:722 +#, c-format +msgid "refusing to lose untracked file at '%s'" +msgstr "'%s' 위치의 추적되지 않는 파일을 잃기를 거부합니다" + +#: merge-recursive.c:762 +#, c-format +msgid "cannot read object %s '%s'" +msgstr "%s '%s' 오브젝트를 읽을 수 없음" + +#: merge-recursive.c:764 +#, c-format +msgid "blob expected for %s '%s'" +msgstr "%s '%s'에 대해 블롭을 예상" + +#: merge-recursive.c:787 builtin/clone.c:369 +#, c-format +msgid "failed to open '%s'" +msgstr "'%s'을(를) 여는데 실패" + +#: merge-recursive.c:795 +#, c-format +msgid "failed to symlink '%s'" +msgstr "'%s' 심볼릭 링크에 실패" + +#: merge-recursive.c:798 +#, c-format +msgid "do not know what to do with %06o %s '%s'" +msgstr "다음을 어떻게 할지 알 수 없습니다: %06o %s '%s'" + +#: merge-recursive.c:936 +msgid "Failed to execute internal merge" +msgstr "내부 병합 실행에 실패" + +#: merge-recursive.c:940 +#, c-format +msgid "Unable to add %s to database" +msgstr "%s을(를) 데이터베이스에 추가할 수 없습니다" + +#: merge-recursive.c:956 +msgid "unsupported object type in the tree" +msgstr "트리에서 지원하지 않는 오브젝트 종류" + +#: merge-recursive.c:1031 merge-recursive.c:1045 +#, c-format +msgid "" +"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " +"in tree." +msgstr "" +"충돌! (%s/삭제): %s (위치 %s) 및 %s (%s에서) 삭제. %s 버전의 %s 트리에 남음." + +#: merge-recursive.c:1037 merge-recursive.c:1050 +#, c-format +msgid "" +"CONFLICT (%s/delete): %s deleted in %s and %s in %s. Version %s of %s left " +"in tree at %s." +msgstr "" +"충돌! (%s/삭제): %s (위치 %s) 및 %s (위치 %s) 삭제. %s 버전의 %s 트리에 " +"%s(으)로 남음." + +#: merge-recursive.c:1091 +msgid "rename" +msgstr "이름바꾸기" + +#: merge-recursive.c:1091 +msgid "renamed" +msgstr "이름바꿈" + +#: merge-recursive.c:1147 +#, c-format +msgid "%s is a directory in %s adding as %s instead" +msgstr "%s은(는) %s에 있는 디렉터리로 %s(으)로 이름을 바꿉니다" + +#: merge-recursive.c:1169 +#, c-format +msgid "" +"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" +"\"->\"%s\" in \"%s\"%s" +msgstr "" +"충돌! (이름바꾸기/이름바꾸기): \"%3$s\" 브랜치에서 이름바꾸기 \"%1$s\"->" +"\"%2$s\" \"%6$s\" 브랜치에서 이름 바꾸기 \"%4$s\"->\"%5$s\"%7$s" + +#: merge-recursive.c:1174 +msgid " (left unresolved)" +msgstr " (해결되지 않음)" + +#: merge-recursive.c:1228 +#, c-format +msgid "CONFLICT (rename/rename): Rename %s->%s in %s. Rename %s->%s in %s" +msgstr "" +"충돌! (rename/rename): 이름 바꾸기 %s->%s (위치 %s). 이름 바꾸기 %s->%s (위" +"치 %s)" + +#: merge-recursive.c:1258 +#, c-format +msgid "Renaming %s to %s and %s to %s instead" +msgstr "대신 이름을 %s에서 %s(으)로 바꾸고 %s에서 %s(으)로 바꿉니다" + +#: merge-recursive.c:1457 +#, c-format +msgid "CONFLICT (rename/add): Rename %s->%s in %s. %s added in %s" +msgstr "충돌! (rename/add): 이름 바꾸기 %s->%s (위치 %s). %s 추가 (위치 %s)" + +#: merge-recursive.c:1467 +#, c-format +msgid "Adding merged %s" +msgstr "병합된 %s을(를) 추가합니다" + +#: merge-recursive.c:1472 merge-recursive.c:1674 +#, c-format +msgid "Adding as %s instead" +msgstr "대신 %s(으)로 추가합니다" + +#: merge-recursive.c:1523 +#, c-format +msgid "cannot read object %s" +msgstr "%s 오브젝트를 읽을 수 없습니다" + +#: merge-recursive.c:1526 +#, c-format +msgid "object %s is not a blob" +msgstr "%s 오브젝트는 블롭이 아닙니다" + +#: merge-recursive.c:1578 +msgid "modify" +msgstr "수정" + +#: merge-recursive.c:1578 +msgid "modified" +msgstr "수정됨" + +#: merge-recursive.c:1588 +msgid "content" +msgstr "내용" + +#: merge-recursive.c:1595 +msgid "add/add" +msgstr "추가/추가" + +#: merge-recursive.c:1629 +#, c-format +msgid "Skipped %s (merged same as existing)" +msgstr "건너뛰기: %s (기존과 같게 병합)" + +#: merge-recursive.c:1643 +#, c-format +msgid "Auto-merging %s" +msgstr "자동 병합: %s" + +#: merge-recursive.c:1647 git-submodule.sh:1025 +msgid "submodule" +msgstr "하위 모듈" + +#: merge-recursive.c:1648 +#, c-format +msgid "CONFLICT (%s): Merge conflict in %s" +msgstr "충돌! (%s): %s에 병합 충돌" + +#: merge-recursive.c:1734 +#, c-format +msgid "Removing %s" +msgstr "제거: %s" + +#: merge-recursive.c:1759 +msgid "file/directory" +msgstr "파일/디렉터리" + +#: merge-recursive.c:1765 +msgid "directory/file" +msgstr "디렉터리/파일" + +#: merge-recursive.c:1770 +#, c-format +msgid "CONFLICT (%s): There is a directory with name %s in %s. Adding %s as %s" +msgstr "" +"충돌! (%s): 이름이 %s인 디렉터리가 %s에 있습니다. %s을(를) %s(으)로 추가합니" +"다" + +#: merge-recursive.c:1780 +#, c-format +msgid "Adding %s" +msgstr "추가: %s" + +#: merge-recursive.c:1797 +msgid "Fatal merge failure, shouldn't happen." +msgstr "치명적인 병합 실패, 일어날 수 없는 상황." + +#: merge-recursive.c:1816 +msgid "Already up-to-date!" +msgstr "이미 업데이트 상태입니다!" + +#: merge-recursive.c:1825 +#, c-format +msgid "merging of trees %s and %s failed" +msgstr "%s 및 %s 트리의 병합이 실패했습니다" + +#: merge-recursive.c:1855 +#, c-format +msgid "Unprocessed path??? %s" +msgstr "처리되지 않은 경로??? %s" + +#: merge-recursive.c:1903 +msgid "Merging:" +msgstr "병합:" + +#: merge-recursive.c:1916 +#, c-format +msgid "found %u common ancestor:" +msgid_plural "found %u common ancestors:" +msgstr[0] "과거의 공통 커밋 %u개 발견:" + +#: merge-recursive.c:1953 +msgid "merge returned no commit" +msgstr "병합 결과에 커밋이 없습니다" + +#: merge-recursive.c:2010 +#, c-format +msgid "Could not parse object '%s'" +msgstr "'%s' 오브젝트를 파싱할 수 없습니다" + +#: merge-recursive.c:2021 builtin/merge.c:645 +msgid "Unable to write index." +msgstr "인덱스를 쓸 수 없습니다." + +#: notes-utils.c:41 +msgid "Cannot commit uninitialized/unreferenced notes tree" +msgstr "초기화하지 않았거나 레퍼런스하지 않은 notes 트리를 커밋할 수 없습니다" + +#: notes-utils.c:100 +#, c-format +msgid "Bad notes.rewriteMode value: '%s'" +msgstr "잘못된 notes.rewriteMode 값: '%s'" + +#: notes-utils.c:110 +#, c-format +msgid "Refusing to rewrite notes in %s (outside of refs/notes/)" +msgstr "%s에서 노트를 다시 쓰기를 거부합니다 (refs/notes/ 밖임)" + +#. TRANSLATORS: The first %s is the name of the +#. environment variable, the second %s is its value +#: notes-utils.c:137 +#, c-format +msgid "Bad %s value: '%s'" +msgstr "잘못된 %s 값: '%s'" + +#: object.c:242 +#, c-format +msgid "unable to parse object: %s" +msgstr "오브젝트를 파싱할 수 없습니다: %s" + +#: parse-options.c:570 +msgid "..." +msgstr "..." + +#: parse-options.c:588 +#, c-format +msgid "usage: %s" +msgstr "사용법: %s" + +#. TRANSLATORS: the colon here should align with the +#. one in "usage: %s" translation +#: parse-options.c:592 +#, c-format +msgid " or: %s" +msgstr " 또는: %s" + +#: parse-options.c:595 +#, c-format +msgid " %s" +msgstr " %s" + +#: parse-options.c:629 +msgid "-NUM" +msgstr "-NUM" + +#: parse-options-cb.c:108 +#, c-format +msgid "malformed object name '%s'" +msgstr "잘못된 형식의 오브젝트 이름 '%s'" + +#: path.c:752 +#, c-format +msgid "Could not make %s writable by group" +msgstr "%s을(를) 그룹에서 쓰기 가능하도록 만들 수 없습니다" + +#: pathspec.c:133 +msgid "global 'glob' and 'noglob' pathspec settings are incompatible" +msgstr "'glob' 및 'noglob' 경로명세 전체 설정은 호환되지 않습니다" + +#: pathspec.c:143 +msgid "" +"global 'literal' pathspec setting is incompatible with all other global " +"pathspec settings" +msgstr "" +"'literal' 경로명세 전체 설정은 다른 경로명세 전체 설정과 호환되지 않습니다" + +#: pathspec.c:177 +msgid "invalid parameter for pathspec magic 'prefix'" +msgstr "경로명세 지시어 'prefix'에 잘못된 파라미터" + +#: pathspec.c:183 +#, c-format +msgid "Invalid pathspec magic '%.*s' in '%s'" +msgstr "잘못된 경로명세 지시어 '%.*s' (위치 '%s')" + +#: pathspec.c:187 +#, c-format +msgid "Missing ')' at the end of pathspec magic in '%s'" +msgstr "경로 명세 지시어 끝에 ')' 빠짐 (위치 '%s')" + +#: pathspec.c:205 +#, c-format +msgid "Unimplemented pathspec magic '%c' in '%s'" +msgstr "구현되지 않은 경로명세 지시어 '%c' (위치 '%s')" + +#: pathspec.c:230 +#, c-format +msgid "%s: 'literal' and 'glob' are incompatible" +msgstr "%s: 'literal'과 'glob'은 호환되지 않습니다" + +#: pathspec.c:241 +#, c-format +msgid "%s: '%s' is outside repository" +msgstr "%s: '%s'은(는) 저장소 밖입니다" + +#: pathspec.c:291 +#, c-format +msgid "Pathspec '%s' is in submodule '%.*s'" +msgstr "경로명세 '%s'은(는) ''%.*s' 하위 모듈 안에 있습니다" + +#: pathspec.c:353 +#, c-format +msgid "%s: pathspec magic not supported by this command: %s" +msgstr "%s: 경로명세 지시어가 이 명령어에서 지원하지 않습니다: %s" + +#: pathspec.c:432 +#, c-format +msgid "pathspec '%s' is beyond a symbolic link" +msgstr "'%s' 경로명세는 심볼릭 링크 아래에 있습니다" + +#: pathspec.c:441 +msgid "" +"There is nothing to exclude from by :(exclude) patterns.\n" +"Perhaps you forgot to add either ':/' or '.' ?" +msgstr "" +":(exclude) 패턴으로 제외할 사항이 없습니다.\n" +"':/' 또는 '.' 추가를 잊으신 것 아닙니까?" + +#: pretty.c:969 +msgid "unable to parse --pretty format" +msgstr "--pretty 형식을 파싱할 수 없습니다" + +#: progress.c:235 +msgid "done" +msgstr "완료" + +#: read-cache.c:1281 +#, c-format +msgid "" +"index.version set, but the value is invalid.\n" +"Using version %i" +msgstr "" +"index.version이 설정되었지만, 이 값이 잘못되었습니다.\n" +"%i 버전을 사용합니다" + +#: read-cache.c:1291 +#, c-format +msgid "" +"GIT_INDEX_VERSION set, but the value is invalid.\n" +"Using version %i" +msgstr "" +"GIT_INDEX_VERSION이 설정되었지만, 이 값이 잘못되었습니다.\n" +"%i 버전을 사용합니다" + +#: refs.c:543 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973 +#: builtin/merge.c:983 +#, c-format +msgid "Could not open '%s' for writing" +msgstr "'%s'을(를) 쓰기용으로 열 수 없습니다" + +#: refs/files-backend.c:2359 +#, c-format +msgid "could not delete reference %s: %s" +msgstr "%s 레퍼런스를 삭제할 수 없습니다: %s" + +#: refs/files-backend.c:2362 +#, c-format +msgid "could not delete references: %s" +msgstr "레퍼런스를 삭제할 수 없습니다: %s" + +#: refs/files-backend.c:2371 +#, c-format +msgid "could not remove reference %s" +msgstr "%s 레퍼런스를 제거할 수 없습니다" + +#: ref-filter.c:245 +#, c-format +msgid "format: %%(end) atom used without corresponding atom" +msgstr "형식: %%(end) 아톰이 대응되는 아톰 없이 사용되었습니다" + +#: ref-filter.c:704 +#, c-format +msgid "positive value expected contents:lines=%s" +msgstr "'contents:lines=%s'에서 0보다 큰 값이 와야 합니다" + +#: ref-filter.c:833 +#, c-format +msgid "expected format: %%(color:<color>)" +msgstr "예상한 형식: %%(color:<색>)" + +#: ref-filter.c:835 +msgid "unable to parse format" +msgstr "형식을 파싱할 수 없습니다" + +#: ref-filter.c:870 +#, c-format +msgid "expected format: %%(align:<width>,<position>)" +msgstr "예상한 형식: %%(align:<너비>,<위치>)" + +#: ref-filter.c:893 +#, c-format +msgid "improper format entered align:%s" +msgstr "align:%s 잘못된 형식이 입력되었습니다" + +#: ref-filter.c:898 +#, c-format +msgid "positive width expected with the %%(align) atom" +msgstr "%%(align) 아톰에 너비가 0보다 커야 합니다" + +#: ref-filter.c:1219 +#, c-format +msgid "malformed object at '%s'" +msgstr "'%s'에 잘못된 형식의 오브젝트" + +#: ref-filter.c:1561 +#, c-format +msgid "format: %%(end) atom missing" +msgstr "형식: %%(end) 아톰이 없습니다" + +#: ref-filter.c:1615 +#, c-format +msgid "malformed object name %s" +msgstr "잘못된 형식의 오브젝트 이름 %s" + +#: remote.c:756 +#, c-format +msgid "Cannot fetch both %s and %s to %s" +msgstr "%s 및 %s을(를) 모두 %s에 가져올 수 없습니다" + +#: remote.c:760 +#, c-format +msgid "%s usually tracks %s, not %s" +msgstr "%s은(는) 보통 %s을(를) 추적하고, %s을(를) 추적하지 않습니다" + +#: remote.c:764 +#, c-format +msgid "%s tracks both %s and %s" +msgstr "%s은(는) %s 및 %s 모두 추적합니다" + +#: remote.c:772 +msgid "Internal error" +msgstr "내부 오류" + +#: remote.c:1687 remote.c:1730 +msgid "HEAD does not point to a branch" +msgstr "HEAD가 브랜치를 가리키지 않습니다" + +#: remote.c:1696 +#, c-format +msgid "no such branch: '%s'" +msgstr "그런 브랜치가 없습니다: '%s'" + +#: remote.c:1699 +#, c-format +msgid "no upstream configured for branch '%s'" +msgstr "'%s' 브랜치에 대해 업스트림을 설정하지 않았습니다" + +#: remote.c:1705 +#, c-format +msgid "upstream branch '%s' not stored as a remote-tracking branch" +msgstr "업스트림 '%s' 브랜치가 리모트 추적 브랜치로 저장되지 않았습니다" + +#: remote.c:1720 +#, c-format +msgid "push destination '%s' on remote '%s' has no local tracking branch" +msgstr "리모트 '%2$s'의 푸시 대상 '%1$s'에 로컬 추적 브랜치가 없습니다" + +#: remote.c:1735 +#, c-format +msgid "branch '%s' has no remote for pushing" +msgstr "'%s' 브랜치에 푸시 리모트가 없습니다" + +#: remote.c:1746 +#, c-format +msgid "push refspecs for '%s' do not include '%s'" +msgstr "'%s'에 대한 푸시 레퍼런스명세에 '%s'이(가) 들어 있지 않습니다" + +#: remote.c:1759 +msgid "push has no destination (push.default is 'nothing')" +msgstr "푸시의 대상이 없습니다 (push.default가 'nothing'입니다)" + +#: remote.c:1781 +msgid "cannot resolve 'simple' push to a single destination" +msgstr "하나의 대상에 대해 'simple' 푸시를 처리할 수 없습니다" + +#: remote.c:2083 +#, c-format +msgid "Your branch is based on '%s', but the upstream is gone.\n" +msgstr "현재 브랜치가 '%s' 기반이지만, 업스트림이 없어졌습니다.\n" + +#: remote.c:2087 +msgid " (use \"git branch --unset-upstream\" to fixup)\n" +msgstr " (바로잡으려면 \"git branch --unset-upstream\"을 사용하십시오)\n" + +#: remote.c:2090 +#, c-format +msgid "Your branch is up-to-date with '%s'.\n" +msgstr "브랜치가 '%s'에 맞게 업데이트된 상태입니다.\n" + +#: remote.c:2094 +#, 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] "브랜치가 '%s'보다 %d개 커밋만큼 앞에 있습니다.\n" + +#: remote.c:2100 +msgid " (use \"git push\" to publish your local commits)\n" +msgstr " (로컬에 있는 커밋을 제출하려면 \"git push\"를 사용하십시오)\n" + +#: remote.c:2103 +#, 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] "브랜치가 '%s'보다 %d개 커밋 뒤에 있고, 앞으로 돌릴 수 있습니다.\n" + +#: remote.c:2111 +msgid " (use \"git pull\" to update your local branch)\n" +msgstr " (로컬 브랜치를 업데이트하려면 \"git pull\"을 사용하십시오)\n" + +#: remote.c:2114 +#, c-format +msgid "" +"Your branch and '%s' have diverged,\n" +"and have %d and %d different commit each, respectively.\n" +msgid_plural "" +"Your branch and '%s' have diverged,\n" +"and have %d and %d different commits each, respectively.\n" +msgstr[0] "" +"현재 브랜치와 '%s'이(가) 갈라졌습니다,\n" +"다른 커밋이 각각 %d개와 %d개 있습니다.\n" + +#: remote.c:2124 +msgid " (use \"git pull\" to merge the remote branch into yours)\n" +msgstr "" +" (리모트의 브랜치를 현재 브랜치로 병합하려면 \"git pull\"을 사용하십시오)\n" + +#: revision.c:2193 +msgid "your current branch appears to be broken" +msgstr "현재 브랜치가 망가진 것처럼 보입니다" + +#: revision.c:2196 +#, c-format +msgid "your current branch '%s' does not have any commits yet" +msgstr "현재 '%s' 브랜치에 아직 아무 커밋도 없습니다" + +#: revision.c:2390 +msgid "--first-parent is incompatible with --bisect" +msgstr "--first-parent 옵션은 --bisect 옵션과 호환되지 않습니다" + +#: run-command.c:90 +msgid "open /dev/null failed" +msgstr "/dev/null 열기 실패" + +#: run-command.c:92 +#, c-format +msgid "dup2(%d,%d) failed" +msgstr "dup2(%d,%d) 실패" + +#: send-pack.c:295 +msgid "failed to sign the push certificate" +msgstr "푸시 인증서 서명에 실패했습니다" + +#: send-pack.c:404 +msgid "the receiving end does not support --signed push" +msgstr "받는 쪽에서 --signed 푸시를 지원하지 않습니다" + +#: send-pack.c:406 +msgid "" +"not sending a push certificate since the receiving end does not support --" +"signed push" +msgstr "" +"받는 쪽에서 --signed 푸시를 지원하지 않으므로 푸시 인증서를 보내지 않습니다" + +#: send-pack.c:418 +msgid "the receiving end does not support --atomic push" +msgstr "받는 쪽에서 --atomic 푸시를 지원하지 않습니다" + +#: sequencer.c:183 +msgid "" +"after resolving the conflicts, mark the corrected paths\n" +"with 'git add <paths>' or 'git rm <paths>'" +msgstr "" +"이 충돌을 해결한 뒤에, 바로잡은 경로를\n" +"'git add <경로>' 또는 'git rm <경로>'로 표시하십시오" + +#: sequencer.c:186 +msgid "" +"after resolving the conflicts, mark the corrected paths\n" +"with 'git add <paths>' or 'git rm <paths>'\n" +"and commit the result with 'git commit'" +msgstr "" +"이 충돌을 해결한 뒤에, 바로잡은 경로를\n" +"'git add <경로>' 또는 'git rm <경로>'로 표시하십시오.\n" +"그리고 결과물을 'git commit'으로 커밋하십시오" + +#: sequencer.c:199 sequencer.c:842 sequencer.c:922 +#, c-format +msgid "Could not write to %s" +msgstr "%s에 쓸 수 없습니다" + +#: sequencer.c:202 +#, c-format +msgid "Error wrapping up %s" +msgstr "%s 잠그는데 오류" + +#: sequencer.c:217 +msgid "Your local changes would be overwritten by cherry-pick." +msgstr "로컬 변경 사항을 cherry-pick 때문에 덮어 쓰게 됩니다." + +#: sequencer.c:219 +msgid "Your local changes would be overwritten by revert." +msgstr "로컬 변경 사항을 revert 때문에 덮어 쓰게 됩니다." + +#: sequencer.c:222 +msgid "Commit your changes or stash them to proceed." +msgstr "변경 사항을 스테이징하거나 스태시한 다음 계속하십시오." + +#. TRANSLATORS: %s will be "revert" or "cherry-pick" +#: sequencer.c:309 +#, c-format +msgid "%s: Unable to write new index file" +msgstr "%s: 새 인덱스 파일을 쓸 수 없습니다" + +#: sequencer.c:327 +msgid "Could not resolve HEAD commit\n" +msgstr "HEAD 커밋을 처리할 수 없습니다\n" + +#: sequencer.c:347 +msgid "Unable to update cache tree\n" +msgstr "캐시 트리를 업데이트할 수 없습니다\n" + +#: sequencer.c:399 +#, c-format +msgid "Could not parse commit %s\n" +msgstr "%s 커밋을 파싱할 수 없습니다\n" + +#: sequencer.c:404 +#, c-format +msgid "Could not parse parent commit %s\n" +msgstr "%s 이전 커밋을 파싱할 수 없습니다\n" + +#: sequencer.c:469 +msgid "Your index file is unmerged." +msgstr "인덱스 파일이 병합되지 않았습니다." + +#: sequencer.c:488 +#, c-format +msgid "Commit %s is a merge but no -m option was given." +msgstr "%s 커밋은 병합이지만 -m 옵션이 주어지지 않았습니다." + +# FIXME: "parent %d" 번호가 무슨 의미? +#: sequencer.c:496 +#, c-format +msgid "Commit %s does not have parent %d" +msgstr "Commit %s 커밋에 이전 커밋 %d이(가) 없습니다" + +#: sequencer.c:500 +#, c-format +msgid "Mainline was specified but commit %s is not a merge." +msgstr "메인라인을 지정했지만 %s 커밋이 병합 커밋이 아닙니다." + +#. TRANSLATORS: The first %s will be "revert" or +#. "cherry-pick", the second %s a SHA1 +#: sequencer.c:513 +#, c-format +msgid "%s: cannot parse parent commit %s" +msgstr "%s: %s 이전 커밋을 파싱할 수 없습니다" + +#: sequencer.c:517 +#, c-format +msgid "Cannot get commit message for %s" +msgstr "%s에 대한 커밋 메시지를 가져올 수 없습니다" + +#: sequencer.c:603 +#, c-format +msgid "could not revert %s... %s" +msgstr "다음을 되돌릴(revert) 수 없습니다: %s... %s" + +#: sequencer.c:604 +#, c-format +msgid "could not apply %s... %s" +msgstr "다음을 적용할(apply) 수 없습니다: %s... %s" + +#: sequencer.c:639 +msgid "empty commit set passed" +msgstr "빈 커밋 모음을 건너 뜁니다" + +#: sequencer.c:647 +#, c-format +msgid "git %s: failed to read the index" +msgstr "git %s: 인덱스 읽기에 실패했습니다" + +#: sequencer.c:651 +#, c-format +msgid "git %s: failed to refresh the index" +msgstr "git %s: 인덱스 새로 고침에 실패했습니다" + +#: sequencer.c:711 +#, c-format +msgid "Cannot %s during a %s" +msgstr "%2$s 동안 %1$s 할 수 없습니다" + +#: sequencer.c:733 +#, c-format +msgid "Could not parse line %d." +msgstr "%d번 줄을 파싱할 수 없습니다." + +#: sequencer.c:738 +msgid "No commits parsed." +msgstr "파싱한 커밋이 없습니다." + +#: sequencer.c:750 +#, c-format +msgid "Could not open %s" +msgstr "%s을(를) 열 수 없습니다" + +#: sequencer.c:754 +#, c-format +msgid "Could not read %s." +msgstr "%s을(를) 읽을 수 없습니다." + +#: sequencer.c:761 +#, c-format +msgid "Unusable instruction sheet: %s" +msgstr "사용 불가능 인스트럭션 파일: %s" + +#: sequencer.c:791 +#, c-format +msgid "Invalid key: %s" +msgstr "잘못된 키: %s" + +#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49 +#, c-format +msgid "Invalid value for %s: %s" +msgstr "%s의 값이 올바르지 않습니다: %s" + +#: sequencer.c:804 +#, c-format +msgid "Malformed options sheet: %s" +msgstr "형식이 잘못된 옵션 파일: %s" + +#: sequencer.c:823 +msgid "a cherry-pick or revert is already in progress" +msgstr "이미 커밋 빼오기(cherry-pick) 또는 되돌리기(revert)가 진행 중입니다" + +#: sequencer.c:824 +msgid "try \"git cherry-pick (--continue | --quit | --abort)\"" +msgstr "\"git cherry-pick (--continue | --quit | --abort)\" 명령을 해 보십시오" + +#: sequencer.c:828 +#, c-format +msgid "Could not create sequencer directory %s" +msgstr "%s 시퀀서 디렉터리를 만들 수 없습니다" + +#: sequencer.c:844 sequencer.c:926 +#, c-format +msgid "Error wrapping up %s." +msgstr "%s 잠그는데 오류." + +#: sequencer.c:863 sequencer.c:996 +msgid "no cherry-pick or revert in progress" +msgstr "빼오기(cherry-pick) 또는 되돌리기(revert)가 진행 중이지 않습니다" + +#: sequencer.c:865 +msgid "cannot resolve HEAD" +msgstr "HEAD를 구해 올 수 없습니다" + +#: sequencer.c:867 +msgid "cannot abort from a branch yet to be born" +msgstr "새로 만들고 있는 브랜치에서 중지할 수 없습니다" + +#: sequencer.c:887 builtin/apply.c:4287 +#, c-format +msgid "cannot open %s: %s" +msgstr "%s을(를) 열 수 없습니다: %s" + +#: sequencer.c:890 +#, c-format +msgid "cannot read %s: %s" +msgstr "%s을(를) 읽을 수 없습니다: %s" + +#: sequencer.c:891 +msgid "unexpected end of file" +msgstr "예상치 못하게 파일이 끝났습니다" + +#: sequencer.c:897 +#, c-format +msgid "stored pre-cherry-pick HEAD file '%s' is corrupt" +msgstr "빼오기 전에 저장한 HEAD 파일이('%s') 손상되었습니다" + +#: sequencer.c:919 +#, c-format +msgid "Could not format %s." +msgstr "%s에 포매팅할 수 없습니다." + +#: sequencer.c:1064 +#, c-format +msgid "%s: can't cherry-pick a %s" +msgstr "%s: %s 커밋을 빼올 수 없습니다" + +#: sequencer.c:1067 +#, c-format +msgid "%s: bad revision" +msgstr "%s: 잘못된 리비전" + +#: sequencer.c:1101 +msgid "Can't revert as initial commit" +msgstr "최초의 커밋을 되돌릴 수 없습니다" + +#: sequencer.c:1102 +msgid "Can't cherry-pick into empty head" +msgstr "빈 헤드로 커밋을 빼올 수 없습니다." + +#: setup.c:248 +#, c-format +msgid "failed to read %s" +msgstr "%s을(를) 읽는데 실패했습니다" + +#: sha1_name.c:463 +msgid "" +"Git normally never creates a ref that ends with 40 hex characters\n" +"because it will be ignored when you just specify 40-hex. These refs\n" +"may be created by mistake. For example,\n" +"\n" +" git checkout -b $br $(git rev-parse ...)\n" +"\n" +"where \"$br\" is somehow empty and a 40-hex ref is created. Please\n" +"examine these refs and maybe delete them. Turn this message off by\n" +"running \"git config advice.objectNameWarning false\"" +msgstr "" +"깃에서는 보통 40개의 16진수 문자로 끝나는 레퍼런스를 만들지 않습니다.\n" +"16진수 문자 40자를 지정했을 때 이 레퍼런스가 무시되기 때문입니다. 이\n" +"레퍼런스는 실수로 만들어졌을 수도 있습니다. 예를 들어,\n" +"\n" +" git checkout -b $br $(git rev-parse ...)\n" +"\n" +"여기서 \"$br\"은 비어 있으므로 40자 레퍼런스가 만들어집니다. 이 레퍼런스를\n" +"확인해 보시고 잘못 만들어진 것이면 지우십시오. 이 메시지를 보고 싶지\n" +"않으면 \"git config advice.objectNameWarning false\" 명령을 사용하십시오." + +#: submodule.c:61 submodule.c:95 +msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first" +msgstr "" +"병합하지 않은 .gitmodules를 바꿀 수 없습니다. 병합 충돌을 먼저 해결하십시오" + +#: submodule.c:65 submodule.c:99 +#, c-format +msgid "Could not find section in .gitmodules where path=%s" +msgstr "경로가 %s일 때 .gitmodules의 섹션을 찾을 수 없습니다" + +#: submodule.c:73 +#, c-format +msgid "Could not update .gitmodules entry %s" +msgstr ".gitmodules 항목 %s을(를) 업데이트할 수 없습니다" + +#: submodule.c:106 +#, c-format +msgid "Could not remove .gitmodules entry for %s" +msgstr "%s에 대한 .gitmodules 항목을 제거할 수 없습니다" + +#: submodule.c:117 +msgid "staging updated .gitmodules failed" +msgstr "업데이트한 .gitmodules를 커밋할 사항으로 표시하는데 실패" + +#: submodule.c:1040 +#, c-format +msgid "Could not set core.worktree in %s" +msgstr "%s에서 core.worktree를 설정할 수 없습니다" + +#: trailer.c:491 trailer.c:495 trailer.c:499 trailer.c:553 trailer.c:557 +#: trailer.c:561 +#, c-format +msgid "unknown value '%s' for key '%s'" +msgstr "알 수 없는 값 '%s', 키 '%s'" + +#: trailer.c:543 trailer.c:548 builtin/remote.c:296 +#, c-format +msgid "more than one %s" +msgstr "%s이(가) 여러개입니다" + +#: trailer.c:581 +#, c-format +msgid "empty trailer token in trailer '%.*s'" +msgstr "트레일러 '%.*s'에서 빈 트레일러 토큰" + +#: trailer.c:701 +#, c-format +msgid "could not read input file '%s'" +msgstr "'%s' 입력 파일을 읽을 수 없습니다" + +#: trailer.c:704 +msgid "could not read from stdin" +msgstr "표준 입력에서 읽을 수 없습니다" + +#: transport-helper.c:1025 +#, c-format +msgid "Could not read ref %s" +msgstr "%s 레퍼런스를 읽을 수 없습니다" + +#: unpack-trees.c:203 +msgid "Checking out files" +msgstr "파일을 가져옵니다" + +#: urlmatch.c:120 +msgid "invalid URL scheme name or missing '://' suffix" +msgstr "URL 스킴 이름이 잘못되었거나 '://'가 뒤에 붙지 않았습니다" + +#: urlmatch.c:144 urlmatch.c:297 urlmatch.c:356 +#, c-format +msgid "invalid %XX escape sequence" +msgstr "잘못된 %XX 이스케이프 시퀀스" + +#: urlmatch.c:172 +msgid "missing host and scheme is not 'file:'" +msgstr "호스트가 없고 스킴이 'file:'이 아닙니다" + +#: urlmatch.c:189 +msgid "a 'file:' URL may not have a port number" +msgstr "'file:' URL에는 포트 번호를 쓸 수 없습니다" + +#: urlmatch.c:199 +msgid "invalid characters in host name" +msgstr "호스트 이름에 잘못된 문자" + +#: urlmatch.c:244 urlmatch.c:255 +msgid "invalid port number" +msgstr "잘못된 포트 번호" + +#: urlmatch.c:322 +msgid "invalid '..' path segment" +msgstr "경로에서 잘못된 '..' 부분" + +#: wrapper.c:219 wrapper.c:362 +#, c-format +msgid "could not open '%s' for reading and writing" +msgstr "읽기와 쓰기용으로 '%s'을(를) 열 수 없습니다" + +#: wrapper.c:221 wrapper.c:364 +#, c-format +msgid "could not open '%s' for writing" +msgstr "'%s'을(를) 쓰기용으로 열 수 없습니다" + +#: wrapper.c:223 wrapper.c:366 builtin/am.c:338 builtin/commit.c:1691 +#: builtin/merge.c:1074 builtin/pull.c:380 +#, c-format +msgid "could not open '%s' for reading" +msgstr "'%s'을(를) 읽기용으로 열 수 없습니다" + +#: wrapper.c:579 +#, c-format +msgid "unable to access '%s': %s" +msgstr "'%s'에 접근할 수 없습니다: %s" + +#: wrapper.c:600 +#, c-format +msgid "unable to access '%s'" +msgstr "'%s'에 접근할 수 없습니다" + +#: wrapper.c:608 +msgid "unable to get current working directory" +msgstr "현재 작업 디렉터리를 가져올 수 없습니다" + +#: wrapper.c:635 +#, c-format +msgid "could not open %s for writing" +msgstr "%s을(를) 쓰기용으로 열 수 없습니다" + +#: wrapper.c:646 builtin/am.c:425 +#, c-format +msgid "could not write to %s" +msgstr "%s에 쓸 수 없습니다" + +#: wrapper.c:652 +#, c-format +msgid "could not close %s" +msgstr "%s을(를) 닫을 수 없습니다" + +#: wt-status.c:149 +msgid "Unmerged paths:" +msgstr "병합하지 않은 경로:" + +#: wt-status.c:176 wt-status.c:203 +#, c-format +msgid " (use \"git reset %s <file>...\" to unstage)" +msgstr " (스테이지 해제하려면 \"git reset %s <파일>...\"을 사용하십시오)" + +#: wt-status.c:178 wt-status.c:205 +msgid " (use \"git rm --cached <file>...\" to unstage)" +msgstr " (스테이지 해제하려면 \"git rm --cached <파일>...\"을 사용하십시오)" + +#: wt-status.c:182 +msgid " (use \"git add <file>...\" to mark resolution)" +msgstr " (해결했다고 표시하려면 \"git add <파일>...\"을 사용하십시오)" + +#: wt-status.c:184 wt-status.c:188 +msgid " (use \"git add/rm <file>...\" as appropriate to mark resolution)" +msgstr "" +" (해결했다고 표시하려면 알맞게 \"git add/rm <파일>...\"을 사용하십시오)" + +#: wt-status.c:186 +msgid " (use \"git rm <file>...\" to mark resolution)" +msgstr " (해결했다고 표시하려면 \"git rm <파일>...\"을 사용하십시오)" + +#: wt-status.c:197 wt-status.c:880 +msgid "Changes to be committed:" +msgstr "커밋할 변경 사항:" + +#: wt-status.c:215 wt-status.c:889 +msgid "Changes not staged for commit:" +msgstr "커밋하도록 정하지 않은 변경 사항:" + +#: wt-status.c:219 +msgid " (use \"git add <file>...\" to update what will be committed)" +msgstr " (무엇을 커밋할지 바꾸려면 \"git add <파일>...\"을 사용하십시오)" + +#: wt-status.c:221 +msgid " (use \"git add/rm <file>...\" to update what will be committed)" +msgstr " (무엇을 커밋할지 바꾸려면 \"git add/rm <파일>...\"을 사용하십시오)" + +#: wt-status.c:222 +msgid "" +" (use \"git checkout -- <file>...\" to discard changes in working directory)" +msgstr "" +" (작업 폴더의 변경 사항을 버리려면 \"git checkout -- <파일>...\"을 사용하십" +"시오)" + +#: wt-status.c:224 +msgid " (commit or discard the untracked or modified content in submodules)" +msgstr "" +" (하위 모듈의 추적되지 않는 파일이나 수정된 내용을 커밋하거나 버리십시오)" + +#: wt-status.c:236 +#, c-format +msgid " (use \"git %s <file>...\" to include in what will be committed)" +msgstr " (커밋할 사항에 포함하려면 \"git %s <파일>...\"을 사용하십시오)" + +#: wt-status.c:251 +msgid "both deleted:" +msgstr "양쪽에서 삭제:" + +#: wt-status.c:253 +msgid "added by us:" +msgstr "이 쪽에서 추가:" + +#: wt-status.c:255 +msgid "deleted by them:" +msgstr "저 쪽에서 삭제:" + +#: wt-status.c:257 +msgid "added by them:" +msgstr "저 쪽에서 추가:" + +#: wt-status.c:259 +msgid "deleted by us:" +msgstr "이 쪽에서 삭제:" + +#: wt-status.c:261 +msgid "both added:" +msgstr "양쪽에서 추가:" + +#: wt-status.c:263 +msgid "both modified:" +msgstr "양쪽에서 수정:" + +#: wt-status.c:265 +#, c-format +msgid "bug: unhandled unmerged status %x" +msgstr "bug: 병합하지 않은 상태 %x 처리되지 않음" + +#: wt-status.c:273 +msgid "new file:" +msgstr "새 파일:" + +#: wt-status.c:275 +msgid "copied:" +msgstr "복사함:" + +#: wt-status.c:277 +msgid "deleted:" +msgstr "삭제함:" + +#: wt-status.c:279 +msgid "modified:" +msgstr "수정함:" + +#: wt-status.c:281 +msgid "renamed:" +msgstr "이름 바꿈:" + +#: wt-status.c:283 +msgid "typechange:" +msgstr "종류 바뀜:" + +#: wt-status.c:285 +msgid "unknown:" +msgstr "알 수 없음:" + +#: wt-status.c:287 +msgid "unmerged:" +msgstr "병합하지 않음:" + +#: wt-status.c:369 +msgid "new commits, " +msgstr "새 커밋, " + +#: wt-status.c:371 +msgid "modified content, " +msgstr "수정한 내용, " + +#: wt-status.c:373 +msgid "untracked content, " +msgstr "추적하지 않은 내용, " + +#: wt-status.c:390 +#, c-format +msgid "bug: unhandled diff status %c" +msgstr "버그: 처리되지 않은 diff 상태 %c" + +#: wt-status.c:754 +msgid "Submodules changed but not updated:" +msgstr "변경되었지만 업데이트하지 않은 하위 모듈:" + +#: wt-status.c:756 +msgid "Submodule changes to be committed:" +msgstr "커밋할 하위 모듈의 변경 사항:" + +#: wt-status.c:837 +msgid "" +"Do not touch the line above.\n" +"Everything below will be removed." +msgstr "" +"위의 줄을 바꾸지 마십시오.\n" +"아래 있는 내용은 모두 제거됩니다." + +#: wt-status.c:948 +msgid "You have unmerged paths." +msgstr "병합하지 않은 경로가 있습니다." + +#: wt-status.c:951 +msgid " (fix conflicts and run \"git commit\")" +msgstr " (충돌을 바로잡고 \"git commit\"을 실행하십시오)" + +#: wt-status.c:954 +msgid "All conflicts fixed but you are still merging." +msgstr "모든 충돌을 바로잡았지만 아직 병합하는 중입니다." + +#: wt-status.c:957 +msgid " (use \"git commit\" to conclude merge)" +msgstr " (병합을 마무리하려면 \"git commit\"을 사용하십시오)" + +#: wt-status.c:967 +msgid "You are in the middle of an am session." +msgstr "am 세션 중간에 있습니다." + +#: wt-status.c:970 +msgid "The current patch is empty." +msgstr "현재 패치가 비어 있습니다." + +#: wt-status.c:974 +msgid " (fix conflicts and then run \"git am --continue\")" +msgstr " (충돌을 바로잡은 다음 \"git am --continue\"를 사용하십시오)" + +#: wt-status.c:976 +msgid " (use \"git am --skip\" to skip this patch)" +msgstr " (이 패치를 건너 뛰려면 \"git am --skip\"을 사용하십시오)" + +#: wt-status.c:978 +msgid " (use \"git am --abort\" to restore the original branch)" +msgstr " (원본 브랜치를 복구하려면 \"git am --abort\"를 사용하십시오)" + +#: wt-status.c:1105 +msgid "No commands done." +msgstr "완료한 명령 없음." + +#: wt-status.c:1108 +#, c-format +msgid "Last command done (%d command done):" +msgid_plural "Last commands done (%d commands done):" +msgstr[0] "최근 완료한 명령 (%d개 명령 완료):" + +#: wt-status.c:1119 +#, c-format +msgid " (see more in file %s)" +msgstr " (자세한 정보는 %s 파일 참고)" + +#: wt-status.c:1124 +msgid "No commands remaining." +msgstr "명령이 남아있지 않음." + +#: wt-status.c:1127 +#, c-format +msgid "Next command to do (%d remaining command):" +msgid_plural "Next commands to do (%d remaining commands):" +msgstr[0] "다음에 할 명령 (%d개 명령 남음):" + +#: wt-status.c:1135 +msgid " (use \"git rebase --edit-todo\" to view and edit)" +msgstr " (보고 편집하려면 \"git rebase --edit-todo\"를 사용하십시오)" + +#: wt-status.c:1148 +#, c-format +msgid "You are currently rebasing branch '%s' on '%s'." +msgstr "현재 '%s' 브랜치를 '%s' 위로 리베이스하는 중입니다." + +#: wt-status.c:1153 +msgid "You are currently rebasing." +msgstr "현재 리베이스하는 중입니다." + +#: wt-status.c:1167 +msgid " (fix conflicts and then run \"git rebase --continue\")" +msgstr " (충돌을 바로잡고 \"git rebase --continue\"를 사용하십시오)" + +#: wt-status.c:1169 +msgid " (use \"git rebase --skip\" to skip this patch)" +msgstr " (이 패치를 건너뛰려면 \"git rebase --skip\"을 사용하십시오)" + +#: wt-status.c:1171 +msgid " (use \"git rebase --abort\" to check out the original branch)" +msgstr " (원본 브랜치를 가져오려면 \"git rebase --abort\"를 사용하십시오)" + +#: wt-status.c:1177 +msgid " (all conflicts fixed: run \"git rebase --continue\")" +msgstr "" +" (모든 충돌을 바로잡았습니다: \"git rebase --continue\"를 실행하십시오)" + +#: wt-status.c:1181 +#, c-format +msgid "" +"You are currently splitting a commit while rebasing branch '%s' on '%s'." +msgstr "현재 '%s' 브랜치를 '%s' 위로 리베이스하는 중 커밋을 분리하는 중입니다." + +#: wt-status.c:1186 +msgid "You are currently splitting a commit during a rebase." +msgstr "현재 리베이스하는 중 커밋을 분리하는 중입니다." + +#: wt-status.c:1189 +msgid " (Once your working directory is clean, run \"git rebase --continue\")" +msgstr " (작업 폴더가 깨끗해지면, \"git rebase --continue\"를 실행하십시오)" + +#: wt-status.c:1193 +#, c-format +msgid "You are currently editing a commit while rebasing branch '%s' on '%s'." +msgstr "'%s' 브랜치를 '%s' 위로 리베이스하는 중 커밋을 편집하는 중입니다." + +#: wt-status.c:1198 +msgid "You are currently editing a commit during a rebase." +msgstr "리베이스 중에 커밋을 편집하는 중입니다." + +#: wt-status.c:1201 +msgid " (use \"git commit --amend\" to amend the current commit)" +msgstr " (현재 커밋을 수정하려면 \"git commit --amend\"을 사용하십시오)" + +#: wt-status.c:1203 +msgid "" +" (use \"git rebase --continue\" once you are satisfied with your changes)" +msgstr " (변경 사항에 만족할 때 \"git rebase --continue\"를 사용하십시오)" + +#: wt-status.c:1213 +#, c-format +msgid "You are currently cherry-picking commit %s." +msgstr "현재 %s 커밋을 뽑아 내고 있습니다." + +#: wt-status.c:1218 +msgid " (fix conflicts and run \"git cherry-pick --continue\")" +msgstr " (충돌을 바로잡고 \"git cherry-pick --continue\"를 실행하십시오)" + +#: wt-status.c:1221 +msgid " (all conflicts fixed: run \"git cherry-pick --continue\")" +msgstr "" +" (모든 충돌을 바로잡았습니다: \"git cherry-pick --continue\"를 실행하십시오)" + +#: wt-status.c:1223 +msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)" +msgstr " (뽑기 작업을 취소하려면 \"git cherry-pick --abort\"를 사용하십시오)" + +#: wt-status.c:1232 +#, c-format +msgid "You are currently reverting commit %s." +msgstr "현재 %s 커밋을 되돌리는 중입니다." + +#: wt-status.c:1237 +msgid " (fix conflicts and run \"git revert --continue\")" +msgstr " (충돌을 바로잡고 \"git revert --continue\"를 실행하십시오)" + +#: wt-status.c:1240 +msgid " (all conflicts fixed: run \"git revert --continue\")" +msgstr "" +" (모든 충돌을 바로잡았습니다: \"git revert --continue\"를 실행하십시오)" + +#: wt-status.c:1242 +msgid " (use \"git revert --abort\" to cancel the revert operation)" +msgstr " (되돌리기 작업을 취소하려면 \"git revert --abort\"를 사용하십시오)" + +#: wt-status.c:1253 +#, c-format +msgid "You are currently bisecting, started from branch '%s'." +msgstr "'이등분하는 중입니다. '%s' 브랜치부터 시작." + +#: wt-status.c:1257 +msgid "You are currently bisecting." +msgstr "'이등분하는 중입니다." + +#: wt-status.c:1260 +msgid " (use \"git bisect reset\" to get back to the original branch)" +msgstr " (원래 브랜치로 돌아가려면 \"git bisect reset\"을 사용하십시오)" + +#: wt-status.c:1438 +msgid "On branch " +msgstr "현재 브랜치 " + +#: wt-status.c:1444 +msgid "interactive rebase in progress; onto " +msgstr "대화형 리베이스 진행 중. 갈 위치는 " + +#: wt-status.c:1446 +msgid "rebase in progress; onto " +msgstr "리베이스 진행 중. 갈 위치는 " + +#: wt-status.c:1451 +msgid "HEAD detached at " +msgstr "HEAD가 다음 위치에서 분리: " + +#: wt-status.c:1453 +msgid "HEAD detached from " +msgstr "HEAD가 다음으로부터 분리: " + +#: wt-status.c:1456 +msgid "Not currently on any branch." +msgstr "현재 어떤 브랜치도 사용하지 않음." + +#: wt-status.c:1474 +msgid "Initial commit" +msgstr "최초 커밋" + +#: wt-status.c:1488 +msgid "Untracked files" +msgstr "추적하지 않는 파일" + +#: wt-status.c:1490 +msgid "Ignored files" +msgstr "무시한 파일" + +#: wt-status.c:1494 +#, c-format +msgid "" +"It took %.2f seconds to enumerate untracked files. 'status -uno'\n" +"may speed it up, but you have to be careful not to forget to add\n" +"new files yourself (see 'git help status')." +msgstr "" +"추적하지 않는 파일을 모두 확인하는데 %.2f초가 걸렸습니다.\n" +"'status -uno' 옵션을 쓰면 빨라질 수도 있지만, 새 파일을\n" +"직접 찾아서 추가해야 합니다. ('git help status' 참고)" + +#: wt-status.c:1500 +#, c-format +msgid "Untracked files not listed%s" +msgstr "추적하지 않는 파일을 보지 않습니다%s" + +#: wt-status.c:1502 +msgid " (use -u option to show untracked files)" +msgstr " (추적하지 않는 파일을 보려면 -u 옵션을 사용하십시오)" + +#: wt-status.c:1508 +msgid "No changes" +msgstr "변경 사항 없음" + +#: wt-status.c:1513 +#, c-format +msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n" +msgstr "" +"커밋할 변경 사항을 추가하지 않았습니다 (\"git add\" 및/또는 \"git commit -a" +"\"를\n" +"사용하십시오)\n" + +#: wt-status.c:1516 +#, c-format +msgid "no changes added to commit\n" +msgstr "커밋할 변경 사항을 추가하지 않았습니다\n" + +#: wt-status.c:1519 +#, c-format +msgid "" +"nothing added to commit but untracked files present (use \"git add\" to " +"track)\n" +msgstr "" +"커밋할 사항을 추가하지 않았지만 추적하지 않는 파일이 있습니다 (추적하려면 " +"\"git\n" +"add\"를 사용하십시오)\n" + +#: wt-status.c:1522 +#, c-format +msgid "nothing added to commit but untracked files present\n" +msgstr "커밋할 사항을 추가하지 않았지만 추적하지 않는 파일이 있습니다\n" + +#: wt-status.c:1525 +#, c-format +msgid "nothing to commit (create/copy files and use \"git add\" to track)\n" +msgstr "" +"커밋할 사항 없음 (파일을 만들거나 복사하고 \"git add\"를 사용하면 추적합니" +"다)\n" + +#: wt-status.c:1528 wt-status.c:1533 +#, c-format +msgid "nothing to commit\n" +msgstr "커밋할 사항 없음\n" + +#: wt-status.c:1531 +#, c-format +msgid "nothing to commit (use -u to show untracked files)\n" +msgstr "" +"커밋할 사항 없음 (추적하지 않는 파일을 보려면 -u 옵션을 사용하십시오)\n" + +#: wt-status.c:1535 +#, c-format +msgid "nothing to commit, working directory clean\n" +msgstr "커밋할 사항 없음, 작업 폴더 깨끗함\n" + +#: wt-status.c:1642 +msgid "Initial commit on " +msgstr "최초 커밋, 브랜치: " + +#: wt-status.c:1646 +msgid "HEAD (no branch)" +msgstr "HEAD (브랜치 없음)" + +#: wt-status.c:1675 +msgid "gone" +msgstr "없음" + +#: wt-status.c:1677 wt-status.c:1685 +msgid "behind " +msgstr "뒤에: " + +#: compat/precompose_utf8.c:56 builtin/clone.c:408 +#, c-format +msgid "failed to unlink '%s'" +msgstr "'%s' 파일 삭제에 실패했습니다" + +#: builtin/add.c:22 +msgid "git add [<options>] [--] <pathspec>..." +msgstr "git add [<옵션>] [--] <경로명세>..." + +#: builtin/add.c:65 +#, c-format +msgid "unexpected diff status %c" +msgstr "예상치 못한 diff 상태 %c" + +#: builtin/add.c:70 builtin/commit.c:278 +msgid "updating files failed" +msgstr "파일 업데이트가 실패했습니다" + +#: builtin/add.c:80 +#, c-format +msgid "remove '%s'\n" +msgstr "'%s' 제거\n" + +#: builtin/add.c:134 +msgid "Unstaged changes after refreshing the index:" +msgstr "인덱스를 새로 고친 다음 커밋 표시하지 않은 변경 사항:" + +#: builtin/add.c:194 builtin/rev-parse.c:796 +msgid "Could not read the index" +msgstr "인덱스를 읽을 수 없습니다" + +#: builtin/add.c:205 +#, c-format +msgid "Could not open '%s' for writing." +msgstr "'%s' 파일을 쓰기용으로 열 수 없습니다." + +#: builtin/add.c:209 +msgid "Could not write patch" +msgstr "패치를 쓸 수 없습니다" + +#: builtin/add.c:212 +msgid "editing patch failed" +msgstr "패치 편집에 실패했습니다" + +#: builtin/add.c:215 +#, c-format +msgid "Could not stat '%s'" +msgstr "'%s'을(를) stat()할 수 없습니다" + +#: builtin/add.c:217 +msgid "Empty patch. Aborted." +msgstr "빈 패치. 중지." + +#: builtin/add.c:222 +#, c-format +msgid "Could not apply '%s'" +msgstr "'%s'을(를) 적용할 수 없습니다" + +#: builtin/add.c:232 +msgid "The following paths are ignored by one of your .gitignore files:\n" +msgstr "다음 경로는 .gitignore 파일 중 하나 때문에 무시합니다:\n" + +#: builtin/add.c:249 builtin/clean.c:894 builtin/fetch.c:108 builtin/mv.c:110 +#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:543 +#: builtin/remote.c:1345 builtin/rm.c:268 builtin/send-pack.c:162 +msgid "dry run" +msgstr "가짜로 실행" + +#: builtin/add.c:250 builtin/apply.c:4571 builtin/check-ignore.c:19 +#: builtin/commit.c:1322 builtin/count-objects.c:85 builtin/fsck.c:558 +#: builtin/log.c:1645 builtin/mv.c:109 builtin/read-tree.c:114 +msgid "be verbose" +msgstr "자세히 표시" + +#: builtin/add.c:252 +msgid "interactive picking" +msgstr "대화식으로 고릅니다" + +#: builtin/add.c:253 builtin/checkout.c:1153 builtin/reset.c:286 +msgid "select hunks interactively" +msgstr "대화식으로 변경된 부분을 선택합니다" + +#: builtin/add.c:254 +msgid "edit current diff and apply" +msgstr "현재 diff를 편집하고 적용합니다" + +#: builtin/add.c:255 +msgid "allow adding otherwise ignored files" +msgstr "무시하는 파일의 추가를 허용합니다" + +#: builtin/add.c:256 +msgid "update tracked files" +msgstr "추적되는 파일을 업데이트합니다" + +#: builtin/add.c:257 +msgid "record only the fact that the path will be added later" +msgstr "나중에 추가할 것이라는 사실만 기록합니다" + +#: builtin/add.c:258 +msgid "add changes from all tracked and untracked files" +msgstr "추적되고 추적되지 않는 모든 파일의 변경 사항을 추가합니다" + +#: builtin/add.c:261 +msgid "ignore paths removed in the working tree (same as --no-all)" +msgstr "작업 폴더에서 제거한 경로를 무시합니다 (--no-all과 동일)" + +#: builtin/add.c:263 +msgid "don't add, only refresh the index" +msgstr "추가하지 않고 인덱스만 새로 고칩니다" + +#: builtin/add.c:264 +msgid "just skip files which cannot be added because of errors" +msgstr "오류 때문에 추가할 수 없는 파일을 건너뜁니다" + +#: builtin/add.c:265 +msgid "check if - even missing - files are ignored in dry run" +msgstr "가짜로 실행했을 때 파일을 무시하는지 확인합니다" + +#: builtin/add.c:287 +#, c-format +msgid "Use -f if you really want to add them.\n" +msgstr "정말로 추가하려면 -f 옵션을 사용하십시오.\n" + +#: builtin/add.c:294 +msgid "adding files failed" +msgstr "파일 추가가 실패했습니다" + +#: builtin/add.c:330 +msgid "-A and -u are mutually incompatible" +msgstr "-A 및 -u 옵션은 서로 호환되지 않습니다" + +#: builtin/add.c:337 +msgid "Option --ignore-missing can only be used together with --dry-run" +msgstr "" +"--ignore-missing 옵션은 --dry-run 옵션과 같이 사용할 경우에만 쓸 수 있습니다." + +#: builtin/add.c:352 +#, c-format +msgid "Nothing specified, nothing added.\n" +msgstr "아무 것도 지정하지 않았으므로 아무 것도 추가하지 않습니다.\n" + +#: builtin/add.c:353 +#, c-format +msgid "Maybe you wanted to say 'git add .'?\n" +msgstr "'git add .' 명령을 실행하려고 한 것 아니었습니까?\n" + +#: builtin/add.c:358 builtin/check-ignore.c:172 builtin/clean.c:938 +#: builtin/commit.c:337 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298 +#: builtin/submodule--helper.c:40 +msgid "index file corrupt" +msgstr "인덱스 파일이 손상되었습니다" + +#: builtin/add.c:439 builtin/apply.c:4669 builtin/mv.c:279 builtin/rm.c:430 +msgid "Unable to write new index file" +msgstr "새 인덱스 파일에 쓸 수 없습니다" + +#: builtin/am.c:42 +#, c-format +msgid "could not stat %s" +msgstr "%s에 대해 stat()할 수 없습니다" + +#: builtin/am.c:271 builtin/commit.c:738 builtin/merge.c:1077 +#, c-format +msgid "could not read '%s'" +msgstr "'%s'에서 읽을 수 없습니다" + +#: builtin/am.c:445 +msgid "could not parse author script" +msgstr "작성자 스크립트를 파싱할 수 없습니다" + +#: builtin/am.c:522 +#, c-format +msgid "'%s' was deleted by the applypatch-msg hook" +msgstr "applypatch-msg 훅 때문에 '%s'이(가) 삭제되었습니다." + +#: builtin/am.c:563 builtin/notes.c:300 +#, c-format +msgid "Malformed input line: '%s'." +msgstr "잘못된 형식의 입력 줄: '%s'." + +#: builtin/am.c:600 builtin/notes.c:315 +#, c-format +msgid "Failed to copy notes from '%s' to '%s'" +msgstr "'%s'에서 '%s'(으)로 노트를 복사하는데 실패했습니다" + +#: builtin/am.c:626 +msgid "fseek failed" +msgstr "fseek 실패" + +#: builtin/am.c:787 builtin/am.c:875 +#, c-format +msgid "could not open '%s' for reading: %s" +msgstr "'%s'을(를) 읽기용으로 열 수 없습니다: %s" + +#: builtin/am.c:794 +#, c-format +msgid "could not open '%s' for writing: %s" +msgstr "'%s'을(를) 쓰기용으로 열 수 없습니다: %s" + +#: builtin/am.c:803 +#, c-format +msgid "could not parse patch '%s'" +msgstr "'%s' 패치를 파싱할 수 없습니다" + +#: builtin/am.c:868 +msgid "Only one StGIT patch series can be applied at once" +msgstr "한번에 하나의 StGIT 패치 시리즈만 적용할 수 있습니다" + +#: builtin/am.c:916 +msgid "invalid timestamp" +msgstr "시각이 잘못되었습니다" + +#: builtin/am.c:919 builtin/am.c:927 +msgid "invalid Date line" +msgstr "Date 줄이 잘못되었습니다" + +#: builtin/am.c:924 +msgid "invalid timezone offset" +msgstr "시간대 오프셋이 잘못되었습니다" + +#: builtin/am.c:1011 +msgid "Patch format detection failed." +msgstr "패치 형식 검색이 실패했습니다." + +#: builtin/am.c:1016 builtin/clone.c:373 +#, c-format +msgid "failed to create directory '%s'" +msgstr "'%s' 디렉터리 만들기가 실패했습니다" + +#: builtin/am.c:1020 +msgid "Failed to split patches." +msgstr "패치를 쪼개는데 실패했습니다." + +#: builtin/am.c:1152 builtin/commit.c:363 +msgid "unable to write index file" +msgstr "인덱스 파일을 쓸 수 없습니다" + +#: builtin/am.c:1203 +#, c-format +msgid "When you have resolved this problem, run \"%s --continue\"." +msgstr "이 문제를 해결했을 때 \"%s --continue\"를 실행하십시오." + +#: builtin/am.c:1204 +#, c-format +msgid "If you prefer to skip this patch, run \"%s --skip\" instead." +msgstr "이 패치를 건너뛰려면, 그 대신 \"%s --skip\"을 실행하십시오." + +#: builtin/am.c:1205 +#, c-format +msgid "To restore the original branch and stop patching, run \"%s --abort\"." +msgstr "" +"원래 브랜치를 복구하고 패치 적용을 중지하려면 \"%s --abort\"를 실행하십시오." + +#: builtin/am.c:1343 +msgid "Patch is empty. Was it split wrong?" +msgstr "패치가 비어 있습니다. 잘못 쪼개지지 않았나요?" + +#: builtin/am.c:1417 builtin/log.c:1347 +#, c-format +msgid "invalid ident line: %s" +msgstr "잘못된 신원 줄: %s" + +#: builtin/am.c:1444 +#, c-format +msgid "unable to parse commit %s" +msgstr "%s 커밋을 파싱할 수 없습니다" + +#: builtin/am.c:1646 +msgid "Repository lacks necessary blobs to fall back on 3-way merge." +msgstr "저장소에 3-방향 병합으로 대신할 때 필요한 블롭이 없습니다." + +#: builtin/am.c:1648 +msgid "Using index info to reconstruct a base tree..." +msgstr "인덱스 정보를 사용해 기본 트리를 다시 만듭니다..." + +#: builtin/am.c:1667 +msgid "" +"Did you hand edit your patch?\n" +"It does not apply to blobs recorded in its index." +msgstr "" +"패치를 직접 편집하셨습니까?\n" +"이 패치는 인덱스에 기록된 블롭에는 적용되지 않습니다." + +#: builtin/am.c:1673 +msgid "Falling back to patching base and 3-way merge..." +msgstr "베이스 패치 적용 및 3-방향 병합으로 대신합니다..." + +#: builtin/am.c:1688 +msgid "Failed to merge in the changes." +msgstr "변경 사항에서 병합하는데 실패했습니다." + +#: builtin/am.c:1712 builtin/merge.c:632 +msgid "git write-tree failed to write a tree" +msgstr "git write-tree가 트리를 쓰는데 실패했습니다" + +#: builtin/am.c:1719 +msgid "applying to an empty history" +msgstr "빈 커밋 내역에 대해 적용합니다" + +#: builtin/am.c:1732 builtin/commit.c:1755 builtin/merge.c:829 +#: builtin/merge.c:854 +msgid "failed to write commit object" +msgstr "커밋 오브젝트를 쓰는데 실패했습니다" + +#: builtin/am.c:1764 builtin/am.c:1768 +#, c-format +msgid "cannot resume: %s does not exist." +msgstr "다시 시작할 수 없습니다: %s이(가) 없습니다." + +#: builtin/am.c:1784 +msgid "cannot be interactive without stdin connected to a terminal." +msgstr "" +"터미널에 표준 입력이 연결되지 않은 상태에서 대화형으로 실행할 수 없습니다." + +#: builtin/am.c:1789 +msgid "Commit Body is:" +msgstr "커밋 본문은:" + +#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a] +#. in your translation. The program will only accept English +#. input at this point. +#. +#: builtin/am.c:1799 +msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: " +msgstr "적용? 예[y]/아니오[n]/편집[e]/패치 보기[v]/모두 적용[a]: " + +#: builtin/am.c:1849 +#, c-format +msgid "Dirty index: cannot apply patches (dirty: %s)" +msgstr "변경된 인덱스: 패치를 적용할 수 없습니다 (dirty: %s)" + +#: builtin/am.c:1884 builtin/am.c:1955 +#, c-format +msgid "Applying: %.*s" +msgstr "적용하는 중: %.*s" + +#: builtin/am.c:1900 +msgid "No changes -- Patch already applied." +msgstr "변경 사항 없음 -- 패치가 이미 적용되었습니다." + +#: builtin/am.c:1908 +#, c-format +msgid "Patch failed at %s %.*s" +msgstr "패치가 %s %.*s 위치에서 실패했습니다" + +#: builtin/am.c:1914 +#, c-format +msgid "The copy of the patch that failed is found in: %s" +msgstr "실패한 패치의 복사본이 다음 위치에 있습니다: %s" + +#: builtin/am.c:1958 +msgid "" +"No changes - did you forget to use 'git add'?\n" +"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 "" +"변경 사항이 없습니다 - 'git add' 사용을 잊으셨습니까?\n" +"커밋으로 표시할 사항이 남아 있지 않으면, 이미 같은 패치에서 적용된\n" +"경우일 수도 있습니다. 그런 경우에는 이 패치를 건너뛰면 됩니다." + +#: builtin/am.c:1965 +msgid "" +"You still have unmerged paths in your index.\n" +"Did you forget to use 'git add'?" +msgstr "" +"인덱스에 병합하지 않은 경로가 남아 있습니다.\n" +"'git add' 사용을 잊지 않으셨습니까?" + +#: builtin/am.c:2073 builtin/am.c:2077 builtin/am.c:2089 builtin/reset.c:308 +#: builtin/reset.c:316 +#, c-format +msgid "Could not parse object '%s'." +msgstr "'%s' 오브젝트를 파싱할 수 없습니다." + +#: builtin/am.c:2125 +msgid "failed to clean index" +msgstr "인덱스 지우기에 실패했습니다" + +#: builtin/am.c:2159 +msgid "" +"You seem to have moved HEAD since the last 'am' failure.\n" +"Not rewinding to ORIG_HEAD" +msgstr "" +"마지막 'am' 실패 이후 HEAD를 옮긴 것 같습니다.\n" +"ORIG_HEAD로 되돌리지 않습니다." + +#: builtin/am.c:2220 +#, c-format +msgid "Invalid value for --patch-format: %s" +msgstr "--patch-format 옵션에 대해 잘못된 값: %s" + +#: builtin/am.c:2253 +msgid "git am [<options>] [(<mbox>|<Maildir>)...]" +msgstr "git am [<옵션>] [(<mbox>|<Maildir>)...]" + +#: builtin/am.c:2254 +msgid "git am [<options>] (--continue | --skip | --abort)" +msgstr "git am [<옵션>] (--continue | --skip | --abort)" + +#: builtin/am.c:2260 +msgid "run interactively" +msgstr "대화형으로 실행합니다" + +#: builtin/am.c:2262 +msgid "historical option -- no-op" +msgstr "아무 동작도 하지 않습니다 (과거부터 있었던 옵션)" + +#: builtin/am.c:2264 +msgid "allow fall back on 3way merging if needed" +msgstr "필요하면 3-방향 병합으로 대신하도록 허용합니다" + +#: builtin/am.c:2265 builtin/init-db.c:474 builtin/prune-packed.c:57 +#: builtin/repack.c:171 +msgid "be quiet" +msgstr "간략히 표시합니다" + +#: builtin/am.c:2267 +msgid "add a Signed-off-by line to the commit message" +msgstr "커밋 메시지에 Signed-off-by 줄을 남깁니다" + +#: builtin/am.c:2270 +msgid "recode into utf8 (default)" +msgstr "UTF-8 인코딩으로 변환합니다 (기본값)" + +#: builtin/am.c:2272 +msgid "pass -k flag to git-mailinfo" +msgstr "git-mailinfo에 -k 옵션을 씁니다" + +#: builtin/am.c:2274 +msgid "pass -b flag to git-mailinfo" +msgstr "git-mailinfo에 -b 옵션을 씁니다" + +#: builtin/am.c:2276 +msgid "pass -m flag to git-mailinfo" +msgstr "git-mailinfo에 -m 옵션을 씁니다" + +#: builtin/am.c:2278 +msgid "pass --keep-cr flag to git-mailsplit for mbox format" +msgstr "mbox 형식에 대해 git-mailsplit에 --keep-cr 옵션을 사용합니다" + +#: builtin/am.c:2281 +msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr" +msgstr "" +"am.keepcr에 무관하게 git-mailsplit에 --keep-cr 옵션을 사용하지 않습니다." + +#: builtin/am.c:2284 +msgid "strip everything before a scissors line" +msgstr "절취선 앞의 모든 사항을 무시합니다" + +#: builtin/am.c:2285 builtin/apply.c:4554 +msgid "action" +msgstr "동작" + +#: builtin/am.c:2286 builtin/am.c:2289 builtin/am.c:2292 builtin/am.c:2295 +#: builtin/am.c:2298 builtin/am.c:2301 builtin/am.c:2304 builtin/am.c:2307 +#: builtin/am.c:2313 +msgid "pass it through git-apply" +msgstr "git-apply에 넘깁니다" + +#: builtin/am.c:2294 builtin/apply.c:4578 +msgid "root" +msgstr "최상위" + +#: builtin/am.c:2297 builtin/am.c:2300 builtin/apply.c:4516 +#: builtin/apply.c:4519 builtin/clone.c:85 builtin/fetch.c:93 +#: builtin/pull.c:167 builtin/submodule--helper.c:78 +#: builtin/submodule--helper.c:166 builtin/submodule--helper.c:169 +msgid "path" +msgstr "경로" + +#: builtin/am.c:2303 builtin/fmt-merge-msg.c:666 builtin/fmt-merge-msg.c:669 +#: builtin/grep.c:693 builtin/merge.c:198 builtin/pull.c:127 +#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:645 +#: builtin/show-ref.c:175 builtin/tag.c:340 parse-options.h:132 +#: parse-options.h:134 parse-options.h:244 +msgid "n" +msgstr "n" + +#: builtin/am.c:2306 builtin/apply.c:4522 +msgid "num" +msgstr "개수" + +#: builtin/am.c:2309 builtin/for-each-ref.c:37 builtin/replace.c:438 +#: builtin/tag.c:372 +msgid "format" +msgstr "형식" + +#: builtin/am.c:2310 +msgid "format the patch(es) are in" +msgstr "패치의 형식" + +#: builtin/am.c:2316 +msgid "override error message when patch failure occurs" +msgstr "패치 실패가 발생했을 때 오류 메시지 대신 사용합니다" + +#: builtin/am.c:2318 +msgid "continue applying patches after resolving a conflict" +msgstr "충돌을 해결한 다음 패치 적용을 계속합니다" + +#: builtin/am.c:2321 +msgid "synonyms for --continue" +msgstr "--continue 옵션과 동일" + +#: builtin/am.c:2324 +msgid "skip the current patch" +msgstr "현재 패치 건너뛰기" + +#: builtin/am.c:2327 +msgid "restore the original branch and abort the patching operation." +msgstr "원래 브랜치를 복구하고 패치 적용 작업을 중지합니다." + +# NOTE: 옵션의 의미는 이게 맞다. 원문에서는 사용자가 +# --committer-date-is-author-date라는 옵션을 보고 의미를 알 수 있다고 가정하고 있다. +#: builtin/am.c:2331 +msgid "lie about committer date" +msgstr "커미터 시각을 작성자 시각으로 넣습니다" + +#: builtin/am.c:2333 +msgid "use current timestamp for author date" +msgstr "현재 시각을 작성자 시각으로 사용합니다" + +#: builtin/am.c:2335 builtin/commit.c:1593 builtin/merge.c:225 +#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:355 +msgid "key-id" +msgstr "키-ID" + +#: builtin/am.c:2336 +msgid "GPG-sign commits" +msgstr "GPG 서명 커밋" + +#: builtin/am.c:2339 +msgid "(internal use for git-rebase)" +msgstr "(git-rebase를 위한 내부 용도)" + +#: builtin/am.c:2354 +msgid "" +"The -b/--binary option has been a no-op for long time, and\n" +"it will be removed. Please do not use it anymore." +msgstr "" +"-b/--binary 옵션은 오랜 시간 동안 아무 동작도 하지 않았으므로, 이\n" +"옵션은 제거될 예정입니다. 이제 사용하지 마십시오." + +#: builtin/am.c:2361 +msgid "failed to read the index" +msgstr "인덱스 읽기에 실패했습니다" + +#: builtin/am.c:2376 +#, c-format +msgid "previous rebase directory %s still exists but mbox given." +msgstr "이전 리베이스 디렉터리 %s이(가) 아직 있고 mbox를 지정했습니다." + +#: builtin/am.c:2400 +#, c-format +msgid "" +"Stray %s directory found.\n" +"Use \"git am --abort\" to remove it." +msgstr "" +"벗어난 %s 디렉터리가 발견되었습니다.\n" +"제거하려면 \"git am --abort\"를 사용하십시오." + +#: builtin/am.c:2406 +msgid "Resolve operation not in progress, we are not resuming." +msgstr "해소 작업이 진행 중입니다. 다시 시작하지 않습니다." + +#: builtin/apply.c:59 +msgid "git apply [<options>] [<patch>...]" +msgstr "git apply [<옵션>] [<패치>...]" + +#: builtin/apply.c:111 +#, c-format +msgid "unrecognized whitespace option '%s'" +msgstr "알 수 없는 공백 옵션 '%s'" + +#: builtin/apply.c:126 +#, c-format +msgid "unrecognized whitespace ignore option '%s'" +msgstr "알 수 없는 공백 무시 옵션 '%s'" + +#: builtin/apply.c:818 +#, c-format +msgid "Cannot prepare timestamp regexp %s" +msgstr "타임스탬프 정규식을 준비할 수 없습니다 (%s)" + +#: builtin/apply.c:827 +#, c-format +msgid "regexec returned %d for input: %s" +msgstr "regexec()에서 다음 입력에 대해 %d번을 리턴했습니다: %s" + +#: builtin/apply.c:908 +#, c-format +msgid "unable to find filename in patch at line %d" +msgstr "패치의 %d번 줄에 파일 이름을 찾을 수 없습니다" + +#: builtin/apply.c:940 +#, c-format +msgid "git apply: bad git-diff - expected /dev/null, got %s on line %d" +msgstr "git apply: 잘못된 git-diff - %2$d번 줄에서 /dev/null을 기대했지만, '%1$s'이(가) 왔습니다" + +#: builtin/apply.c:944 +#, c-format +msgid "git apply: bad git-diff - inconsistent new filename on line %d" +msgstr "git apply: 잘못된 git-diff - %d번 줄에 새 파일 이름이 올바르지 않습니다" + +#: builtin/apply.c:945 +#, c-format +msgid "git apply: bad git-diff - inconsistent old filename on line %d" +msgstr "git apply: 잘못된 git-diff - %d번 줄에 예전 파일 이름이 올바르지 않습니다" + +#: builtin/apply.c:952 +#, c-format +msgid "git apply: bad git-diff - expected /dev/null on line %d" +msgstr "git apply: 잘못된 git-diff - %d번 줄에서 /dev/null을 기대했습니다" + +#: builtin/apply.c:1415 +#, c-format +msgid "recount: unexpected line: %.*s" +msgstr "recount: 예상치 못한 줄: %.*s" + +#: builtin/apply.c:1472 +#, c-format +msgid "patch fragment without header at line %d: %.*s" +msgstr "%d번 줄에 헤더 없는 패치 부분: %.*s" + +#: builtin/apply.c:1489 +#, c-format +msgid "" +"git diff header lacks filename information when removing %d leading pathname " +"component (line %d)" +msgid_plural "" +"git diff header lacks filename information when removing %d leading pathname " +"components (line %d)" +msgstr[0] "" +"경로 이름 부분에서 %d개를 제거라 때 git diff 헤더에 파일 이름 정보가 없습니" +"다. (%d번 줄)" + +#: builtin/apply.c:1655 +msgid "new file depends on old contents" +msgstr "새 파일이 예전 내용에 의존합니다" + +#: builtin/apply.c:1657 +msgid "deleted file still has contents" +msgstr "삭제한 파일에 아직 내용이 들어 있습니다" + +#: builtin/apply.c:1683 +#, c-format +msgid "corrupt patch at line %d" +msgstr "패치가 %d번 줄에서 망가졌습니다" + +#: builtin/apply.c:1719 +#, c-format +msgid "new file %s depends on old contents" +msgstr "새 파일 %s이(가) 예전 내용에 의존합니다" + +#: builtin/apply.c:1721 +#, c-format +msgid "deleted file %s still has contents" +msgstr "삭제한 파일 %s이(가) 아직 내용이 들어 있습니다" + +#: builtin/apply.c:1724 +#, c-format +msgid "** warning: file %s becomes empty but is not deleted" +msgstr "** 경고: %s 파일의 내용이 비어 있지만 삭제되지 않았습니다" + +#: builtin/apply.c:1870 +#, c-format +msgid "corrupt binary patch at line %d: %.*s" +msgstr "%d번 줄에 바이너리 패치가 손상되었습니다: %.*s" + +#: builtin/apply.c:1899 +#, c-format +msgid "unrecognized binary patch at line %d" +msgstr "%d번 줄에 바이너리 패치가 이해할 수 없습니다" + +#: builtin/apply.c:2050 +#, c-format +msgid "patch with only garbage at line %d" +msgstr "%d번 줄에 쓰레기 데이터만 있는 패치" + +#: builtin/apply.c:2140 +#, c-format +msgid "unable to read symlink %s" +msgstr "%s 심볼릭 링크를 읽을 수 없습니다" + +#: builtin/apply.c:2144 +#, c-format +msgid "unable to open or read %s" +msgstr "%s을(를) 열거나 읽을 수 없습니다" + +#: builtin/apply.c:2777 +#, c-format +msgid "invalid start of line: '%c'" +msgstr "줄 시작이 잘못됨: '%c'" + +#: builtin/apply.c:2896 +#, c-format +msgid "Hunk #%d succeeded at %d (offset %d line)." +msgid_plural "Hunk #%d succeeded at %d (offset %d lines)." +msgstr[0] "패치 %d번 부분 %d번 줄에서 성공 (오프셋 %d줄)" + +#: builtin/apply.c:2908 +#, c-format +msgid "Context reduced to (%ld/%ld) to apply fragment at %d" +msgstr "컨텍스트가 (%ld/%ld)로 줄어듭니다. (%d번 줄에서 적용)" + +#: builtin/apply.c:2914 +#, c-format +msgid "" +"while searching for:\n" +"%.*s" +msgstr "" +"다음을 검색하던 중:\n" +"%.*s" + +#: builtin/apply.c:2934 +#, c-format +msgid "missing binary patch data for '%s'" +msgstr "'%s'에 대한 바이너리 패치 데이터가 없습니다" + +#: builtin/apply.c:3035 +#, c-format +msgid "binary patch does not apply to '%s'" +msgstr "바이너리 패치를 '%s'에 적용할 수 없습니다" + +#: builtin/apply.c:3041 +#, c-format +msgid "binary patch to '%s' creates incorrect result (expecting %s, got %s)" +msgstr "" +"'%s'에 대한 바이너리 패치가 올바르지 않은 결과를 만듭니다. (기대한 값 %s, 실" +"제 %s)" + +#: builtin/apply.c:3062 +#, c-format +msgid "patch failed: %s:%ld" +msgstr "패치 실패: %s:%ld" + +#: builtin/apply.c:3186 +#, c-format +msgid "cannot checkout %s" +msgstr "%s을(를) 가져올 수 없습니다" + +#: builtin/apply.c:3231 builtin/apply.c:3242 builtin/apply.c:3287 +#, c-format +msgid "read of %s failed" +msgstr "%s 읽기가 실패했습니다" + +#: builtin/apply.c:3239 +#, c-format +msgid "reading from '%s' beyond a symbolic link" +msgstr "심볼릭 링크 뒤에 있는 '%s' 읽기" + +#: builtin/apply.c:3267 builtin/apply.c:3489 +#, c-format +msgid "path %s has been renamed/deleted" +msgstr "%s 경로가 이름이 바뀌었거나 삭제되었습니다" + +#: builtin/apply.c:3348 builtin/apply.c:3503 +#, c-format +msgid "%s: does not exist in index" +msgstr "%s: 인덱스에 없습니다" + +#: builtin/apply.c:3352 builtin/apply.c:3495 builtin/apply.c:3517 +#, c-format +msgid "%s: %s" +msgstr "%s: %s" + +#: builtin/apply.c:3357 builtin/apply.c:3511 +#, c-format +msgid "%s: does not match index" +msgstr "%s: 인덱스와 맞지 않습니다" + +#: builtin/apply.c:3459 +msgid "removal patch leaves file contents" +msgstr "제거하는 패치 다음에 파일 내용이 남았습니다" + +#: builtin/apply.c:3528 +#, c-format +msgid "%s: wrong type" +msgstr "%s: 잘못된 종류" + +#: builtin/apply.c:3530 +#, c-format +msgid "%s has type %o, expected %o" +msgstr "%s의 종류가 %o이지만 %o이(가) 되어야 합니다" + +#: builtin/apply.c:3689 builtin/apply.c:3691 +#, c-format +msgid "invalid path '%s'" +msgstr "잘못된 경로 '%s'" + +#: builtin/apply.c:3746 +#, c-format +msgid "%s: already exists in index" +msgstr "%s: 이미 인덱스에 있습니다" + +#: builtin/apply.c:3749 +#, c-format +msgid "%s: already exists in working directory" +msgstr "%s: 이미 작업 디렉터리에 있습니다" + +#: builtin/apply.c:3769 +#, c-format +msgid "new mode (%o) of %s does not match old mode (%o)" +msgstr "%2$s의 새 모드(%1$o)가 예전 모드(%3$o)와 다릅니다" + +#: builtin/apply.c:3774 +#, c-format +msgid "new mode (%o) of %s does not match old mode (%o) of %s" +msgstr "%2$s의 새 모드(%1$o)가 %4$s의 예전 모드(%3$o)와 다릅니다" + +#: builtin/apply.c:3794 +#, c-format +msgid "affected file '%s' is beyond a symbolic link" +msgstr "영향 받는 '%s' 파일이 심볼릭 링크 뒤에 있습니다" + +#: builtin/apply.c:3798 +#, c-format +msgid "%s: patch does not apply" +msgstr "%s: 패치를 적용하지 않습니다" + +#: builtin/apply.c:3812 +#, c-format +msgid "Checking patch %s..." +msgstr "%s 패치를 확인하는 중입니다..." + +#: builtin/apply.c:3905 builtin/checkout.c:233 builtin/reset.c:135 +#, c-format +msgid "make_cache_entry failed for path '%s'" +msgstr "경로 '%s'에 대해 make_cache_entry 실패" + +#: builtin/apply.c:4048 +#, c-format +msgid "unable to remove %s from index" +msgstr "인덱스에서 %s을(를) 제거할 수 없습니다" + +#: builtin/apply.c:4077 +#, c-format +msgid "corrupt patch for submodule %s" +msgstr "하위 모듈 %s에 대해 손상된 패치" + +#: builtin/apply.c:4081 +#, c-format +msgid "unable to stat newly created file '%s'" +msgstr "새로 만든 파일 '%s'에 대해 stat()할 수 없습니다" + +#: builtin/apply.c:4086 +#, c-format +msgid "unable to create backing store for newly created file %s" +msgstr "새로 만든 파일 '%s'에 대해 예비 저장소를 만들 수 없습니다" + +#: builtin/apply.c:4089 builtin/apply.c:4197 +#, c-format +msgid "unable to add cache entry for %s" +msgstr "%s에 대해 캐시 항목을 추가할 수 없습니다" + +#: builtin/apply.c:4122 +#, c-format +msgid "closing file '%s'" +msgstr "'%s' 파일을 닫는 중입니다" + +#: builtin/apply.c:4171 +#, c-format +msgid "unable to write file '%s' mode %o" +msgstr "'%s' 파일에 쓸 수 없습니다 ('%o' 모드)" + +#: builtin/apply.c:4258 +#, c-format +msgid "Applied patch %s cleanly." +msgstr "%s 패치 깔끔하게 적용." + +#: builtin/apply.c:4266 +msgid "internal error" +msgstr "내부 오류" + +#: builtin/apply.c:4269 +#, c-format +msgid "Applying patch %%s with %d reject..." +msgid_plural "Applying patch %%s with %d rejects..." +msgstr[0] "%%s 패치를 (%d개 거부) 적용..." + +#: builtin/apply.c:4279 +#, c-format +msgid "truncating .rej filename to %.*s.rej" +msgstr "truncating .rej 파일 이름을 '%.*s.rej'(으)로 자름" + +#: builtin/apply.c:4300 +#, c-format +msgid "Hunk #%d applied cleanly." +msgstr "패치 부위 #%d 깔끔하게 적용." + +#: builtin/apply.c:4303 +#, c-format +msgid "Rejected hunk #%d." +msgstr "패치 부위 #%d 거부됨." + +#: builtin/apply.c:4393 +msgid "unrecognized input" +msgstr "인식할 수 없는 입력" + +#: builtin/apply.c:4404 +msgid "unable to read index file" +msgstr "인덱스 파일을 읽을 수 없습니다" + +#: builtin/apply.c:4517 +msgid "don't apply changes matching the given path" +msgstr "주어진 경로에 해당하는 변경 사항을 적용하지 않습니다" + +#: builtin/apply.c:4520 +msgid "apply changes matching the given path" +msgstr "주어진 경로에 해당하는 변경 사항을 적용합니다" + +#: builtin/apply.c:4523 +msgid "remove <num> leading slashes from traditional diff paths" +msgstr "전통적인 diff 경로 앞의 <개수>개의 앞 슬래시(/)를 제거합니다" + +#: builtin/apply.c:4526 +msgid "ignore additions made by the patch" +msgstr "패치에서 추가하는 파일을 무시합니다" + +#: builtin/apply.c:4528 +msgid "instead of applying the patch, output diffstat for the input" +msgstr "패치를 적용하는 대신, 입력에 대한 diffstat을 출력합니다" + +#: builtin/apply.c:4532 +msgid "show number of added and deleted lines in decimal notation" +msgstr "십진수로 추가 및 삭제한 줄 수를 표시합니다" + +#: builtin/apply.c:4534 +msgid "instead of applying the patch, output a summary for the input" +msgstr "패치를 적용하는 대신, 입력에 대한 요약을 출력합니다" + +#: builtin/apply.c:4536 +msgid "instead of applying the patch, see if the patch is applicable" +msgstr "패치를 적용하는 대신, 패치를 적용 가능한지 확인합니다" + +#: builtin/apply.c:4538 +msgid "make sure the patch is applicable to the current index" +msgstr "현재 인덱스에서 패치가 적용 가능한지 확인합니다" + +#: builtin/apply.c:4540 +msgid "apply a patch without touching the working tree" +msgstr "작업 폴더를 바꾸지 않고 패치를 적용합니다" + +#: builtin/apply.c:4542 +msgid "accept a patch that touches outside the working area" +msgstr "작업 영역 밖의 파일을 바꾸는 패치를 허용합니다" + +#: builtin/apply.c:4544 +msgid "also apply the patch (use with --stat/--summary/--check)" +msgstr "그리고 패치도 적용합니다 (--stat/--summary/--check 옵션과 같이 사용)" + +#: builtin/apply.c:4546 +msgid "attempt three-way merge if a patch does not apply" +msgstr "패치를 적용하지 않으면 3-방향 병합을 시도합니다" + +#: builtin/apply.c:4548 +msgid "build a temporary index based on embedded index information" +msgstr "내장 인덱스 정보를 사용해 임시 인덱스를 만듭니다" + +#: builtin/apply.c:4550 builtin/checkout-index.c:198 builtin/ls-files.c:412 +msgid "paths are separated with NUL character" +msgstr "경로를 NUL 문자로 구분합니다" + +#: builtin/apply.c:4553 +msgid "ensure at least <n> lines of context match" +msgstr "최소한 <n>줄이 컨텍스트와 일치하는지 확인합니다" + +#: builtin/apply.c:4555 +msgid "detect new or modified lines that have whitespace errors" +msgstr "공백 오류가 있는 추가됐거나 수정된 줄을 찾습니다" + +#: builtin/apply.c:4558 builtin/apply.c:4561 +msgid "ignore changes in whitespace when finding context" +msgstr "컨텍스트를 찾을 때 공백 변경 사항을 무시합니다" + +#: builtin/apply.c:4564 +msgid "apply the patch in reverse" +msgstr "패치를 반대 순서로 적용합니다" + +#: builtin/apply.c:4566 +msgid "don't expect at least one line of context" +msgstr "최소한의 컨텍스트 한 줄도 없이 적용합니다" + +#: builtin/apply.c:4568 +msgid "leave the rejected hunks in corresponding *.rej files" +msgstr "거부된 패치 부분을 대응되는 *.rej 파일에 남겨둡니다" + +#: builtin/apply.c:4570 +msgid "allow overlapping hunks" +msgstr "패치 부분이 겹쳐도 허용합니다" + +#: builtin/apply.c:4573 +msgid "tolerate incorrectly detected missing new-line at the end of file" +msgstr "파일 끝에 줄바꿈이 빠졌음을 잘못 검색한 경우에 무시합니다" + +#: builtin/apply.c:4576 +msgid "do not trust the line counts in the hunk headers" +msgstr "패치 부분의 헤더의 줄 수를 신용하지 않습니다" + +#: builtin/apply.c:4579 +msgid "prepend <root> to all filenames" +msgstr "모든 파일 이름에 <최상위>를 앞에 붙입니다" + +#: builtin/apply.c:4601 +msgid "--3way outside a repository" +msgstr "저장소 밖에서 --3way 옵션 사용" + +#: builtin/apply.c:4609 +msgid "--index outside a repository" +msgstr "저장소 밖에서 --index 옵션 사용" + +#: builtin/apply.c:4612 +msgid "--cached outside a repository" +msgstr "저장소 밖에서 --cached 옵션 사용" + +#: builtin/apply.c:4631 +#, c-format +msgid "can't open patch '%s'" +msgstr "'%s' 패치를 열 수 없습니다" + +#: builtin/apply.c:4645 +#, c-format +msgid "squelched %d whitespace error" +msgid_plural "squelched %d whitespace errors" +msgstr[0] "공백 오류 %d개를 넘어갑니다" + +#: builtin/apply.c:4651 builtin/apply.c:4661 +#, c-format +msgid "%d line adds whitespace errors." +msgid_plural "%d lines add whitespace errors." +msgstr[0] "%d줄에서 공백 오류를 추가합니다." + +#: builtin/archive.c:17 +#, c-format +msgid "could not create archive file '%s'" +msgstr "'%s' 아카이브 파일을 만들 수 없습니다" + +#: builtin/archive.c:20 +msgid "could not redirect output" +msgstr "출력 방향을 돌릴 수 없습니다" + +#: builtin/archive.c:37 +msgid "git archive: Remote with no URL" +msgstr "git archive: URL 없는 리모트" + +#: builtin/archive.c:58 +msgid "git archive: expected ACK/NAK, got EOF" +msgstr "git archive: ACK/NAK가 와야 하지만, EOF를 받았습니다" + +#: builtin/archive.c:61 +#, c-format +msgid "git archive: NACK %s" +msgstr "git archive: NACK %s" + +#: builtin/archive.c:63 +#, c-format +msgid "remote error: %s" +msgstr "리모트 오류: %s" + +#: builtin/archive.c:64 +msgid "git archive: protocol error" +msgstr "git archive: 프로토콜 오류" + +#: builtin/archive.c:68 +msgid "git archive: expected a flush" +msgstr "git archive: 파일 끝을 예상함" + +#: 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 "'git bisect next'를 수행합니다" + +#: builtin/bisect--helper.c:19 +msgid "update BISECT_HEAD instead of checking out the current commit" +msgstr "현재 커밋을 가져오는 대신 BISECT_HEAD를 업데이트합니다" + +#: builtin/blame.c:32 +msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>" +msgstr "git blame [<옵션>] [<리비전-옵션>] [<리비전>] [--] <파일>" + +#: builtin/blame.c:37 +msgid "<rev-opts> are documented in git-rev-list(1)" +msgstr "<리비전-옵션>은 git-rev-list(1)에 설명되어 있습니다" + +#: builtin/blame.c:2519 +msgid "Show blame entries as we find them, incrementally" +msgstr "blame 항목을 찾자마자 점진적으로 표시합니다" + +#: builtin/blame.c:2520 +msgid "Show blank SHA-1 for boundary commits (Default: off)" +msgstr "가장자리 커밋에 대해 빈 SHA-1을 표시합니다 (기본값: 꺼짐)" + +#: builtin/blame.c:2521 +msgid "Do not treat root commits as boundaries (Default: off)" +msgstr "최상위 커밋을 가장자리 커밋으로 취급하지 않습니다 (기본값: 꺼짐)" + +#: builtin/blame.c:2522 +msgid "Show work cost statistics" +msgstr "작업 비용 통계를 표시합니다" + +#: builtin/blame.c:2523 +msgid "Show output score for blame entries" +msgstr "blame 항목에 대해 출력 점수를 표시합니다" + +#: builtin/blame.c:2524 +msgid "Show original filename (Default: auto)" +msgstr "원래 파일 이름 표시 (기본값: 자동)" + +#: builtin/blame.c:2525 +msgid "Show original linenumber (Default: off)" +msgstr "원래 줄 번호 표시 (기본값: 하지 않음)" + +#: builtin/blame.c:2526 +msgid "Show in a format designed for machine consumption" +msgstr "컴퓨터 처리용으로 설계된 형식으로 표시합니다" + +#: builtin/blame.c:2527 +msgid "Show porcelain format with per-line commit information" +msgstr "줄마다 커밋 정보가 표시되는 사용자용 형식으로 표시합니다" + +#: builtin/blame.c:2528 +msgid "Use the same output mode as git-annotate (Default: off)" +msgstr "git-annotate와 동일한 형식을 사용합니다 (기본값: 꺼짐)" + +#: builtin/blame.c:2529 +msgid "Show raw timestamp (Default: off)" +msgstr "내부 형식으로 시각을 표시합니다 (기본값: 꺼짐)" + +#: builtin/blame.c:2530 +msgid "Show long commit SHA1 (Default: off)" +msgstr "길게 커밋 SHA1을 표시합니다 (기본값: 꺼짐)" + +#: builtin/blame.c:2531 +msgid "Suppress author name and timestamp (Default: off)" +msgstr "작성자 이름과 시각을 표시하지 않습니다 (기본값: 꺼짐)" + +#: builtin/blame.c:2532 +msgid "Show author email instead of name (Default: off)" +msgstr "작성자 이름 대신에 전자메일을 표시합니다 (기본값: 꺼짐)" + +#: builtin/blame.c:2533 +msgid "Ignore whitespace differences" +msgstr "공백 문자 차이점을 무시합니다" + +#: builtin/blame.c:2534 +msgid "Spend extra cycles to find better match" +msgstr "더 일치하는 항목을 찾는데 더 시간을 소모합니다" + +#: builtin/blame.c:2535 +msgid "Use revisions from <file> instead of calling git-rev-list" +msgstr "git-rev-list를 호출하는 대신 <파일>에서 리비전을 사용합니다" + +#: builtin/blame.c:2536 +msgid "Use <file>'s contents as the final image" +msgstr "<파일>의 내용을 최종 이미지로 사용합니다" + +#: builtin/blame.c:2537 builtin/blame.c:2538 +msgid "score" +msgstr "점수" + +#: builtin/blame.c:2537 +msgid "Find line copies within and across files" +msgstr "파일 내부와 파일 사이의 복사된 줄을 찾습니다" + +#: builtin/blame.c:2538 +msgid "Find line movements within and across files" +msgstr "파일 내부와 파일 사이의 옮겨진 줄을 찾습니다" + +#: builtin/blame.c:2539 +msgid "n,m" +msgstr "n,m" + +#: builtin/blame.c:2539 +msgid "Process only line range n,m, counting from 1" +msgstr "n,m줄 (1번 줄부터 시작) 사이의 범위만 처리" + +#. TRANSLATORS: This string is used to tell us the maximum +#. display width for a relative timestamp in "git blame" +#. output. For C locale, "4 years, 11 months ago", which +#. takes 22 places, is the longest among various forms of +#. relative timestamps, but your language may need more or +#. fewer display columns. +#: builtin/blame.c:2620 +msgid "4 years, 11 months ago" +msgstr "4년 11달 전" + +#: builtin/branch.c:25 +msgid "git branch [<options>] [-r | -a] [--merged | --no-merged]" +msgstr "git branch [<옵션>] [-r | -a] [--merged | --no-merged]" + +#: builtin/branch.c:26 +msgid "git branch [<options>] [-l] [-f] <branch-name> [<start-point>]" +msgstr "git branch [<옵션>] [-l] [-f] <브랜치-이름> [<시작-지점>]" + +#: builtin/branch.c:27 +msgid "git branch [<options>] [-r] (-d | -D) <branch-name>..." +msgstr "git branch [<옵션>] [-r] (-d | -D) <브랜치-이름>..." + +#: builtin/branch.c:28 +msgid "git branch [<options>] (-m | -M) [<old-branch>] <new-branch>" +msgstr "git branch [<옵션>] (-m | -M) [<과거-브랜치>] <새-브랜치>" + +#: builtin/branch.c:29 +msgid "git branch [<options>] [-r | -a] [--points-at]" +msgstr "git branch [<옵션>] [-r | -a] [--points-at]" + +#: builtin/branch.c:142 +#, c-format +msgid "" +"deleting branch '%s' that has been merged to\n" +" '%s', but not yet merged to HEAD." +msgstr "" +"'%s' 브랜치를 삭제합니다. 이 브랜치는 '%s'에\n" +" 병합되었지만, HEAD에는 병합되지 않았습니다." + +#: builtin/branch.c:146 +#, c-format +msgid "" +"not deleting branch '%s' that is not yet merged to\n" +" '%s', even though it is merged to HEAD." +msgstr "" +"'%s' 브랜치를 삭제하지 않습니다. 이 브랜치는 '%s'에\n" +" 병합되지 않았지만, HEAD에는 병합되었습니다." + +#: builtin/branch.c:160 +#, c-format +msgid "Couldn't look up commit object for '%s'" +msgstr "'%s'에 대한 커밋 오브젝트를 찾아볼 수 없습니다" + +#: builtin/branch.c:164 +#, 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 "" +"'%s' 브랜치가 완전히 병합되지 않았습니다.\n" +"정말로 삭제하려면 'git branch -D %s' 명령을 실행하십시오." + +#: builtin/branch.c:177 +msgid "Update of config-file failed" +msgstr "config-file 업데이트가 실패했습니다" + +#: builtin/branch.c:205 +msgid "cannot use -a with -d" +msgstr "-a 옵션을 -d 옵션과 같이 쓸 수 없습니다" + +#: builtin/branch.c:211 +msgid "Couldn't look up commit object for HEAD" +msgstr "HEAD에 대한 커밋 오브젝트를 찾아볼 수 없습니다" + +#: builtin/branch.c:219 +#, c-format +msgid "Cannot delete the branch '%s' which you are currently on." +msgstr "'%s' 브랜치는 현재 위치한 브랜치이기 때문에 삭제할 수 없습니다." + +#: builtin/branch.c:235 +#, c-format +msgid "remote-tracking branch '%s' not found." +msgstr "리모트 추적 '%s' 브랜치가 없습니다." + +#: builtin/branch.c:236 +#, c-format +msgid "branch '%s' not found." +msgstr "'%s' 브랜치가 없습니다." + +#: builtin/branch.c:251 +#, c-format +msgid "Error deleting remote-tracking branch '%s'" +msgstr "리모트 추적 '%s' 브랜치를 삭제하는데 오류" + +#: builtin/branch.c:252 +#, c-format +msgid "Error deleting branch '%s'" +msgstr "'%s' 브랜치를 삭제하는데 오류" + +#: builtin/branch.c:259 +#, c-format +msgid "Deleted remote-tracking branch %s (was %s).\n" +msgstr "리모트 추적 '%s' 브랜치를 삭제합니다. (과거 %s)\n" + +#: builtin/branch.c:260 +#, c-format +msgid "Deleted branch %s (was %s).\n" +msgstr "%s 브랜치 삭제 (과거 %s).\n" + +#: builtin/branch.c:303 +#, c-format +msgid "[%s: gone]" +msgstr "[%s: 사라짐]" + +#: builtin/branch.c:308 +#, c-format +msgid "[%s]" +msgstr "[%s]" + +#: builtin/branch.c:313 +#, c-format +msgid "[%s: behind %d]" +msgstr "[%s: %d개 뒤]" + +#: builtin/branch.c:315 +#, c-format +msgid "[behind %d]" +msgstr "[%d개 뒤]" + +#: builtin/branch.c:319 +#, c-format +msgid "[%s: ahead %d]" +msgstr "[%s: %d개 앞]" + +#: builtin/branch.c:321 +#, c-format +msgid "[ahead %d]" +msgstr "[%d개 앞]" + +#: builtin/branch.c:324 +#, c-format +msgid "[%s: ahead %d, behind %d]" +msgstr "[%s: %d개 앞, %d개 뒤]" + +#: builtin/branch.c:327 +#, c-format +msgid "[ahead %d, behind %d]" +msgstr "[%d개 앞, %d개 뒤]" + +#: builtin/branch.c:340 +msgid " **** invalid ref ****" +msgstr " **** 잘못된 레퍼런스 ****" + +#: builtin/branch.c:366 +#, c-format +msgid "(no branch, rebasing %s)" +msgstr "(브랜치 없음, %s 리베이스)" + +#: builtin/branch.c:369 +#, c-format +msgid "(no branch, bisect started on %s)" +msgstr "(브랜치 없음, 이등분 %s에서 시작)" + +#: builtin/branch.c:375 +#, c-format +msgid "(HEAD detached at %s)" +msgstr "(HEAD %s 위치에서 분리됨)" + +#: builtin/branch.c:378 +#, c-format +msgid "(HEAD detached from %s)" +msgstr "(HEAD %s(으)로부터 분리됨)" + +#: builtin/branch.c:382 +msgid "(no branch)" +msgstr "(브랜치 없음)" + +#: builtin/branch.c:524 +msgid "cannot rename the current branch while not on any." +msgstr "브랜치 위에 없으면서 현재 브랜치 이름을 바꿀 수 없습니다." + +#: builtin/branch.c:534 +#, c-format +msgid "Invalid branch name: '%s'" +msgstr "잘못된 브랜치 이름: '%s'" + +#: builtin/branch.c:549 +msgid "Branch rename failed" +msgstr "브랜치 이름 바꾸기 실패" + +#: builtin/branch.c:553 +#, c-format +msgid "Renamed a misnamed branch '%s' away" +msgstr "이름이 잘못된 '%s' 브랜치의 이름을 다르게 바꿉니다" + +#: builtin/branch.c:557 +#, c-format +msgid "Branch renamed to %s, but HEAD is not updated!" +msgstr "브랜치 이름을 %s(으)로 바꾸지만, HEAD를 업데이트하지 않습니다!" + +#: builtin/branch.c:564 +msgid "Branch is renamed, but update of config-file failed" +msgstr "브랜치의 이름을 바꾸지만, config-file 업데이트가 실패했습니다" + +#: builtin/branch.c:587 +#, c-format +msgid "could not write branch description template: %s" +msgstr "브랜치 설명 서식을 쓸 수 없습니다: %s" + +#: builtin/branch.c:616 +msgid "Generic options" +msgstr "일반 옵션" + +# FIXME: give twice? +#: builtin/branch.c:618 +msgid "show hash and subject, give twice for upstream branch" +msgstr "해시와 제목을 표시하고, 업스트림 브랜치에 대한 위치를 표시합니다" + +#: builtin/branch.c:619 +msgid "suppress informational messages" +msgstr "여러가지 안내 메시지를 표시하지 않습니다" + +#: builtin/branch.c:620 +msgid "set up tracking mode (see git-pull(1))" +msgstr "추적 모드를 설정합니다 (git-pull(1) 참고)" + +#: builtin/branch.c:622 +msgid "change upstream info" +msgstr "업스트림 정보를 바꿉니다" + +#: builtin/branch.c:626 +msgid "use colored output" +msgstr "여러 색으로 출력합니다" + +#: builtin/branch.c:627 +msgid "act on remote-tracking branches" +msgstr "리모트 추적 브랜치에 대해 동작합니다" + +#: builtin/branch.c:629 builtin/branch.c:630 +msgid "print only branches that contain the commit" +msgstr "커밋이 있는 브랜치만 표시합니다" + +#: builtin/branch.c:633 +msgid "Specific git-branch actions:" +msgstr "특정 git-branch 동작:" + +#: builtin/branch.c:634 +msgid "list both remote-tracking and local branches" +msgstr "리모트와 로컬의 브랜치 목록을 모두 표시합니다" + +#: builtin/branch.c:636 +msgid "delete fully merged branch" +msgstr "완전히 병합된 브랜치를 삭제합니다" + +#: builtin/branch.c:637 +msgid "delete branch (even if not merged)" +msgstr "브랜치를 삭제합니다 (병합되지 않았더라도)" + +#: builtin/branch.c:638 +msgid "move/rename a branch and its reflog" +msgstr "브랜치와 그 reflog를 옮기거나 이름을 바꿉니다" + +#: builtin/branch.c:639 +msgid "move/rename a branch, even if target exists" +msgstr "대상이 이미 있더라도 브랜치를 옮기거나 이름을 바꿉니다" + +#: builtin/branch.c:640 +msgid "list branch names" +msgstr "브랜치 이름 목록을 표시합니다" + +#: builtin/branch.c:641 +msgid "create the branch's reflog" +msgstr "브랜치의 reflog를 만듭니다" + +#: builtin/branch.c:643 +msgid "edit the description for the branch" +msgstr "브랜치의 설명을 편집합니다" + +#: builtin/branch.c:644 +msgid "force creation, move/rename, deletion" +msgstr "강제로 만들고, 옮기거나 이름을 바꾸고, 삭제합니다" + +#: builtin/branch.c:645 +msgid "print only branches that are merged" +msgstr "병합되는 브랜치만 표시합니다" + +#: builtin/branch.c:646 +msgid "print only branches that are not merged" +msgstr "병합되지 않는 브랜치만 표시합니다" + +#: builtin/branch.c:647 +msgid "list branches in columns" +msgstr "목록을 여러 열로 표시합니다" + +#: builtin/branch.c:648 builtin/for-each-ref.c:38 builtin/tag.c:366 +msgid "key" +msgstr "키" + +#: builtin/branch.c:649 builtin/for-each-ref.c:39 builtin/tag.c:367 +msgid "field name to sort on" +msgstr "정렬한 기준이 되는 필드 이름" + +#: builtin/branch.c:651 builtin/for-each-ref.c:41 builtin/notes.c:398 +#: builtin/notes.c:401 builtin/notes.c:561 builtin/notes.c:564 +#: builtin/tag.c:369 +msgid "object" +msgstr "오브젝트" + +#: builtin/branch.c:652 +msgid "print only branches of the object" +msgstr "해당 오브젝트의 브랜치만 표시합니다" + +#: builtin/branch.c:670 +msgid "Failed to resolve HEAD as a valid ref." +msgstr "HEAD를 올바른 레퍼런스로 구해내는데 실패했습니다." + +#: builtin/branch.c:674 builtin/clone.c:697 +msgid "HEAD not found below refs/heads!" +msgstr "레퍼런스/헤드 아래에 HEAD가 없습니다!" + +#: builtin/branch.c:694 +msgid "--column and --verbose are incompatible" +msgstr "--column 및 --verbose 옵션은 호환되지 않습니다" + +#: builtin/branch.c:705 builtin/branch.c:747 +msgid "branch name required" +msgstr "브랜치 이름이 필요합니다" + +#: builtin/branch.c:723 +msgid "Cannot give description to detached HEAD" +msgstr "분리된 HEAD에 대한 설명을 부여할 수 없습니다" + +#: builtin/branch.c:728 +msgid "cannot edit description of more than one branch" +msgstr "여러 브랜치에 대한 설명을 편집할 수 없습니다" + +#: builtin/branch.c:735 +#, c-format +msgid "No commit on branch '%s' yet." +msgstr "아직 '%s' 브랜치에 커밋이 없습니다." + +#: builtin/branch.c:738 +#, c-format +msgid "No branch named '%s'." +msgstr "이름이 '%s'인 브랜치가 없습니다." + +#: builtin/branch.c:753 +msgid "too many branches for a rename operation" +msgstr "이름 바꾸기 작업에 대해 브랜치가 너무 많습니다" + +#: builtin/branch.c:758 +msgid "too many branches to set new upstream" +msgstr "새 업스트림을 설정하는데 브랜치가 너무 많습니다" + +#: builtin/branch.c:762 +#, c-format +msgid "" +"could not set upstream of HEAD to %s when it does not point to any branch." +msgstr "HEAD의 업스트림을 %s(으)로 설정할 수 없습니다. 어떤 브랜치도 가리키지 않습니다." + +#: builtin/branch.c:765 builtin/branch.c:787 builtin/branch.c:808 +#, c-format +msgid "no such branch '%s'" +msgstr "그런 브랜치가 ('%s') 없습니다" + +#: builtin/branch.c:769 +#, c-format +msgid "branch '%s' does not exist" +msgstr "'%s' 브랜치가 없습니다" + +#: builtin/branch.c:781 +msgid "too many branches to unset upstream" +msgstr "업스트림 설정을 해제하는데 브랜치가 너무 많습니다" + +#: builtin/branch.c:785 +msgid "could not unset upstream of HEAD when it does not point to any branch." +msgstr "HEAD의 업스트림 설정을 해제할 수 없습니다. 어떤 브랜치도 가리키지 않습니다." + +#: builtin/branch.c:791 +#, c-format +msgid "Branch '%s' has no upstream information" +msgstr "'%s' 브랜치에 업스트림 정보가 없습니다" + +#: builtin/branch.c:805 +msgid "it does not make sense to create 'HEAD' manually" +msgstr "'HEAD'를 수동으로 만드는 건 앞뒤가 맞지 않습니다" + +#: builtin/branch.c:811 +msgid "-a and -r options to 'git branch' do not make sense with a branch name" +msgstr "'git branch'에 대해 -a 및 -r 옵션은 브랜치 이름과 같이 쓰면 앞뒤가 맞지 않습니다" + +#: builtin/branch.c:814 +#, c-format +msgid "" +"The --set-upstream flag is deprecated and will be removed. Consider using --" +"track or --set-upstream-to\n" +msgstr "--set-upstream 옵션은 더 이상 사용되지 않고 제거될 예정입니다. --track 또는 --set-upstream-to 옵션을 사용해 보십시오\n" + +#: builtin/branch.c:831 +#, c-format +msgid "" +"\n" +"If you wanted to make '%s' track '%s', do this:\n" +"\n" +msgstr "\n'%s'을(를) 만들고 '%s'을(를) 추적하게 하려면, 다음을 하십시오:\n" + +#: builtin/branch.c:832 +#, c-format +msgid " git branch -d %s\n" +msgstr " git branch -d %s\n" + +#: builtin/branch.c:833 +#, c-format +msgid " git branch --set-upstream-to %s\n" +msgstr " git branch --set-upstream-to %s\n" + +#: builtin/bundle.c:51 +#, c-format +msgid "%s is okay\n" +msgstr "%s 정상입니다\n" + +#: builtin/bundle.c:64 +msgid "Need a repository to create a bundle." +msgstr "번들을 만드려면 저장소가 필요합니다." + +#: builtin/bundle.c:68 +msgid "Need a repository to unbundle." +msgstr "번들을 해제하려면 저장소가 필요합니다." + +#: builtin/cat-file.c:428 +msgid "" +"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|" +"<type>|--textconv) <object>" +msgstr "" +"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|<종류" +">|--textconv) <오브젝트>" + +#: builtin/cat-file.c:429 +msgid "git cat-file (--batch | --batch-check) [--follow-symlinks]" +msgstr "git cat-file (--batch | --batch-check) [--follow-symlinks]" + +#: builtin/cat-file.c:466 +msgid "<type> can be one of: blob, tree, commit, tag" +msgstr "<종류>는 다음 중 하나가 될 수 있습니다: blob, tree, commit, tag" + +#: builtin/cat-file.c:467 +msgid "show object type" +msgstr "오브젝트 종류를 봅니다" + +#: builtin/cat-file.c:468 +msgid "show object size" +msgstr "오브젝트 크기를 봅니다" + +#: builtin/cat-file.c:470 +msgid "exit with zero when there's no error" +msgstr "오류가 없을 때 0을 리턴하고 끝냅니다" + +#: builtin/cat-file.c:471 +msgid "pretty-print object's content" +msgstr "오브젝트의 내용을 예쁘게 표시합니다" + +#: builtin/cat-file.c:473 +msgid "for blob objects, run textconv on object's content" +msgstr "블롭 오브젝트에 대해서는, 오브젝트의 내용에 대해 textconv를 실행합니다" + +#: builtin/cat-file.c:475 +msgid "allow -s and -t to work with broken/corrupt objects" +msgstr "-s 및 -t 옵션이 손상된 오브젝트에 대해 동작하도록 허용합니다" + +#: builtin/cat-file.c:476 +msgid "buffer --batch output" +msgstr "--batch 출력에 대해 버퍼링합니다" + +#: builtin/cat-file.c:478 +msgid "show info and content of objects fed from the standard input" +msgstr "표준 입력에서 입력된 오브젝트의 정보와 내용을 표시합니다" + +#: builtin/cat-file.c:481 +msgid "show info about objects fed from the standard input" +msgstr "표준 입력에서 입력된 오브젝트의 정보를 표시합니다" + +#: builtin/cat-file.c:484 +msgid "follow in-tree symlinks (used with --batch or --batch-check)" +msgstr "트리 내부의 심볼릭 링크를 따라갑니다 (--batch 또는 --batch-check와 같이 사용)" + +#: builtin/cat-file.c:486 +msgid "show all objects with --batch or --batch-check" +msgstr "--batch 또는 --batch-check에서 모든 오브젝트를 표시합니다" + +#: builtin/check-attr.c:11 +msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..." +msgstr "git check-attr [-a | --all | <속성>...] [--] <경로이름>..." + +#: builtin/check-attr.c:12 +msgid "git check-attr --stdin [-z] [-a | --all | <attr>...]" +msgstr "git check-attr --stdin [-z] [-a | --all | <속성>...]" + +#: builtin/check-attr.c:19 +msgid "report all attributes set on file" +msgstr "파일에 설정된 모든 속성을 표시합니다" + +#: builtin/check-attr.c:20 +msgid "use .gitattributes only from the index" +msgstr "인덱스에서만 .gitattributes를 사용합니다" + +#: builtin/check-attr.c:21 builtin/check-ignore.c:22 builtin/hash-object.c:96 +msgid "read file names from stdin" +msgstr "표준 입력에서 파일 이름을 읽습니다" + +#: builtin/check-attr.c:23 builtin/check-ignore.c:24 +msgid "terminate input and output records by a NUL character" +msgstr "NUL 문자를 기준으로 자료 입력 및 출력을 멈춥니다" + +#: builtin/check-ignore.c:18 builtin/checkout.c:1134 builtin/gc.c:325 +msgid "suppress progress reporting" +msgstr "진행 상황 표시를 하지 않습니다" + +#: builtin/check-ignore.c:26 +msgid "show non-matching input paths" +msgstr "일치하지 않는 입력 경로를 표시합니다" + +#: builtin/check-ignore.c:28 +msgid "ignore index when checking" +msgstr "검사할 때 인덱스를 무시합니다" + +#: builtin/check-ignore.c:154 +msgid "cannot specify pathnames with --stdin" +msgstr "--stdin으로 경로 이름을 지정할 수 없습니다" + +#: builtin/check-ignore.c:157 +msgid "-z only makes sense with --stdin" +msgstr "-z 옵션은 --stdin 옵션과 같이 써야만 의미가 있습니다" + +#: builtin/check-ignore.c:159 +msgid "no path specified" +msgstr "경로를 지정하지 않았습니다" + +#: builtin/check-ignore.c:163 +msgid "--quiet is only valid with a single pathname" +msgstr "--quiet 옵션은 하나의 경로 이름과 같이 써야 합니다" + +#: builtin/check-ignore.c:165 +msgid "cannot have both --quiet and --verbose" +msgstr "--quiet 및 --verbose 옵션을 같이 쓸 수 없습니다" + +#: builtin/check-ignore.c:168 +msgid "--non-matching is only valid with --verbose" +msgstr "--non-matching 옵션은 --verbose 옵션과 같이 써야 합니다" + +#: builtin/check-mailmap.c:8 +msgid "git check-mailmap [<options>] <contact>..." +msgstr "git check-mailmap [<옵션>] <연락처>..." + +#: builtin/check-mailmap.c:13 +msgid "also read contacts from stdin" +msgstr "또 연락처를 표준 입력에서 읽습니다" + +#: builtin/check-mailmap.c:24 +#, c-format +msgid "unable to parse contact: %s" +msgstr "연락처를 파싱할 수 없습니다: %s" + +#: builtin/check-mailmap.c:47 +msgid "no contacts specified" +msgstr "연락처를 지정하지 않았습니다" + +#: builtin/checkout-index.c:126 +msgid "git checkout-index [<options>] [--] [<file>...]" +msgstr "git checkout-index [<옵션>] [--] [<파일>...]" + +#: builtin/checkout-index.c:188 +msgid "check out all files in the index" +msgstr "인덱스의 모든 파일을 가져옵니다" + +#: builtin/checkout-index.c:189 +msgid "force overwrite of existing files" +msgstr "기존 파일을 강제로 덮어 씁니다" + +#: builtin/checkout-index.c:191 +msgid "no warning for existing files and files not in index" +msgstr "기존 파일과 인덱스에 없는 파일에 대해 경고하지 않습니다" + +#: builtin/checkout-index.c:193 +msgid "don't checkout new files" +msgstr "새 파일을 가져오지 않습니다" + +#: builtin/checkout-index.c:195 +msgid "update stat information in the index file" +msgstr "인덱스 파일의 stat 정보를 업데이트합니다" + +#: builtin/checkout-index.c:201 +msgid "read list of paths from the standard input" +msgstr "표준 입력에서 경로의 목록을 읽습니다" + +#: builtin/checkout-index.c:203 +msgid "write the content to temporary files" +msgstr "내용을 임시 파일에 씁니다" + +#: builtin/checkout-index.c:204 builtin/column.c:30 +#: builtin/submodule--helper.c:172 builtin/submodule--helper.c:175 +#: builtin/submodule--helper.c:178 builtin/submodule--helper.c:181 +msgid "string" +msgstr "문자열" + +#: builtin/checkout-index.c:205 +msgid "when creating files, prepend <string>" +msgstr "파일을 만들 때, 앞에 <문자열>을 붙입니다" + +#: builtin/checkout-index.c:208 +msgid "copy out the files from named stage" +msgstr "지정한 스테이지에서 파일을 복사해 옵니다" + +#: builtin/checkout.c:25 +msgid "git checkout [<options>] <branch>" +msgstr "git checkout [<옵션>] <브랜치>" + +#: builtin/checkout.c:26 +msgid "git checkout [<options>] [<branch>] -- <file>..." +msgstr "git checkout [<옵션>] [<브랜치>] -- <파일>..." + +#: builtin/checkout.c:134 builtin/checkout.c:167 +#, c-format +msgid "path '%s' does not have our version" +msgstr "'%s' 경로에 우리쪽 버전이 없습니다" + +#: builtin/checkout.c:136 builtin/checkout.c:169 +#, c-format +msgid "path '%s' does not have their version" +msgstr "'%s' 경로에 상대편 버전이 없습니다" + +#: builtin/checkout.c:152 +#, c-format +msgid "path '%s' does not have all necessary versions" +msgstr "'%s' 경로에 필요한 모든 버전이 없습니다" + +#: builtin/checkout.c:196 +#, c-format +msgid "path '%s' does not have necessary versions" +msgstr "'%s' 경로에 필요한 버전이 없습니다" + +#: builtin/checkout.c:213 +#, c-format +msgid "path '%s': cannot merge" +msgstr "'%s' 경로: 병합할 수 없습니다" + +#: builtin/checkout.c:230 +#, c-format +msgid "Unable to add merge result for '%s'" +msgstr "'%s'에 대한 병합 결과를 추가할 수 없습니다" + +#: builtin/checkout.c:251 builtin/checkout.c:254 builtin/checkout.c:257 +#: builtin/checkout.c:260 +#, c-format +msgid "'%s' cannot be used with updating paths" +msgstr "'%s' 옵션은 업데이트하는 경로에서 쓸 수 없습니다" + +#: builtin/checkout.c:263 builtin/checkout.c:266 +#, c-format +msgid "'%s' cannot be used with %s" +msgstr "'%s' 옵션은 %s 옵션과 같이 쓸 수 없습니다" + +#: builtin/checkout.c:269 +#, c-format +msgid "Cannot update paths and switch to branch '%s' at the same time." +msgstr "경로를 업데이트하고 '%s' 브랜치로 전환하는 일은 동시에 할 수 없습니다." + +#: builtin/checkout.c:280 builtin/checkout.c:474 +msgid "corrupt index file" +msgstr "손상된 인덱스 파일" + +#: builtin/checkout.c:340 builtin/checkout.c:347 +#, c-format +msgid "path '%s' is unmerged" +msgstr "'%s' 경로를 병합하지 않았습니다" + +#: builtin/checkout.c:496 +msgid "you need to resolve your current index first" +msgstr "현재 인덱스를 먼저 해결해야 합니다" + +#: builtin/checkout.c:623 +#, c-format +msgid "Can not do reflog for '%s': %s\n" +msgstr "'%s'에 대해 reflog할 수 없습니다: %s\n" + +#: builtin/checkout.c:661 +msgid "HEAD is now at" +msgstr "HEAD의 현재 위치는" + +#: builtin/checkout.c:668 +#, c-format +msgid "Reset branch '%s'\n" +msgstr "'%s' 브랜치 리셋\n" + +#: builtin/checkout.c:671 +#, c-format +msgid "Already on '%s'\n" +msgstr "이미 '%s'에 있습니다\n" + +#: builtin/checkout.c:675 +#, c-format +msgid "Switched to and reset branch '%s'\n" +msgstr "'%s' 브랜치로 전환하고 리셋합니다\n" + +#: builtin/checkout.c:677 builtin/checkout.c:1066 +#, c-format +msgid "Switched to a new branch '%s'\n" +msgstr "새로 만든 '%s' 브랜치로 전환합니다\n" + +#: builtin/checkout.c:679 +#, c-format +msgid "Switched to branch '%s'\n" +msgstr "'%s' 브랜치로 전환합니다\n" + +#: builtin/checkout.c:731 +#, c-format +msgid " ... and %d more.\n" +msgstr " ... 그리고 %d개 더.\n" + +#: builtin/checkout.c:737 +#, c-format +msgid "" +"Warning: you are leaving %d commit behind, not connected to\n" +"any of your branches:\n" +"\n" +"%s\n" +msgid_plural "" +"Warning: you are leaving %d commits behind, not connected to\n" +"any of your branches:\n" +"\n" +"%s\n" +msgstr[0] "" +"경고: 브랜치 중에 아무것에도 연결되지 않은 커밋이 뒤에\n" +"%d개 있습니다:\n" +"\n" +"%s\n" + +#: builtin/checkout.c:756 +#, c-format +msgid "" +"If you want to keep it by creating a new branch, this may be a good time\n" +"to do so with:\n" +"\n" +" git branch <new-branch-name> %s\n" +"\n" +msgid_plural "" +"If you want to keep them by creating a new branch, this may be a good time\n" +"to do so with:\n" +"\n" +" git branch <new-branch-name> %s\n" +"\n" +msgstr[0] "" +"새 브랜치를 만들어서 이 커밋을 저장하고 싶으면, 지금 다음과\n" +"같이 할 수 있습니다:\n" +"\n" +" git branch <새-브랜치-이름> %s\n" +"\n" + +#: builtin/checkout.c:792 +msgid "internal error in revision walk" +msgstr "리비전 walk에 내부 오류" + +#: builtin/checkout.c:796 +msgid "Previous HEAD position was" +msgstr "이전 HEAD 위치는" + +#: builtin/checkout.c:823 builtin/checkout.c:1061 +msgid "You are on a branch yet to be born" +msgstr "현재 위치가 만들 예정인 브랜치에 있습니다" + +#: builtin/checkout.c:968 +#, c-format +msgid "only one reference expected, %d given." +msgstr "하나의 레퍼런스만 지정해야 하지만 %d개를 지정했습니다." + +#: builtin/checkout.c:1007 builtin/worktree.c:213 +#, c-format +msgid "invalid reference: %s" +msgstr "잘못된 레퍼런스: %s" + +#: builtin/checkout.c:1036 +#, c-format +msgid "reference is not a tree: %s" +msgstr "레퍼런스가 트리가 아닙니다: %s" + +#: builtin/checkout.c:1075 +msgid "paths cannot be used with switching branches" +msgstr "브랜치를 전환하는데 경로를 사용할 수 없습니다" + +#: builtin/checkout.c:1078 builtin/checkout.c:1082 +#, c-format +msgid "'%s' cannot be used with switching branches" +msgstr "'%s' 옵션은 브랜치를 전환할 때 쓸 수 없습니다" + +#: builtin/checkout.c:1086 builtin/checkout.c:1089 builtin/checkout.c:1094 +#: builtin/checkout.c:1097 +#, c-format +msgid "'%s' cannot be used with '%s'" +msgstr "'%s' 옵션은 '%s' 옵션과 같이 쓸 수 없습니다" + +#: builtin/checkout.c:1102 +#, c-format +msgid "Cannot switch branch to a non-commit '%s'" +msgstr "브랜치를 커밋이 아닌 '%s'(으)로 전환할 수 없습니다" + +#: builtin/checkout.c:1135 builtin/checkout.c:1137 builtin/clone.c:83 +#: builtin/remote.c:165 builtin/remote.c:167 builtin/worktree.c:320 +#: builtin/worktree.c:322 +msgid "branch" +msgstr "브랜치" + +#: builtin/checkout.c:1136 +msgid "create and checkout a new branch" +msgstr "새 브랜치를 만들고 가져옵니다" + +#: builtin/checkout.c:1138 +msgid "create/reset and checkout a branch" +msgstr "브랜치를 만들거나 리셋하고 가져옵니다" + +#: builtin/checkout.c:1139 +msgid "create reflog for new branch" +msgstr "새 브랜치에 대한 reflog를 만듭니다" + +#: builtin/checkout.c:1140 +msgid "detach the HEAD at named commit" +msgstr "지정한 커밋에서 HEAD를 분리합니다" + +#: builtin/checkout.c:1141 +msgid "set upstream info for new branch" +msgstr "새 브랜치에 대한 업스트림 정보를 설정합니다" + +#: builtin/checkout.c:1143 +msgid "new-branch" +msgstr "새-브랜치" + +#: builtin/checkout.c:1143 +msgid "new unparented branch" +msgstr "상위 브랜치가 없는 새 브랜치" + +#: builtin/checkout.c:1144 +msgid "checkout our version for unmerged files" +msgstr "병합되지 않은 파일에 대해 우리쪽 버전을 가져옵니다" + +#: builtin/checkout.c:1146 +msgid "checkout their version for unmerged files" +msgstr "병합되지 않은 파일에 대해 상대편 버전을 가져옵니다" + +#: builtin/checkout.c:1148 +msgid "force checkout (throw away local modifications)" +msgstr "강제로 체크아웃합니다 (로컬에서 수정한 사항을 버립니다)" + +#: builtin/checkout.c:1149 +msgid "perform a 3-way merge with the new branch" +msgstr "새 브랜치에 대해 3-방향 병합을 수행합니다" + +#: builtin/checkout.c:1150 builtin/merge.c:227 +msgid "update ignored files (default)" +msgstr "무시하는 파일을 업데이트합니다 (기본값)" + +#: builtin/checkout.c:1151 builtin/log.c:1266 parse-options.h:250 +msgid "style" +msgstr "스타일" + +#: builtin/checkout.c:1152 +msgid "conflict style (merge or diff3)" +msgstr "충돌 스타일 (merge 또는 diff3)" + +# FIXME: 의미 불명 +#: builtin/checkout.c:1155 +msgid "do not limit pathspecs to sparse entries only" +msgstr "경로명세를 드문 항목에만 제한하지 않습니다" + +#: builtin/checkout.c:1157 +msgid "second guess 'git checkout <no-such-branch>'" +msgstr "'git checkout <없는-브랜치>'에 대해 추측합니다" + +#: builtin/checkout.c:1159 +msgid "do not check if another worktree is holding the given ref" +msgstr "다른 작업폴더에 주어진 레퍼런스가 있는지 확인하지 않습니다" + +#: builtin/checkout.c:1160 builtin/clone.c:57 builtin/fetch.c:112 +#: builtin/merge.c:224 builtin/pull.c:109 builtin/push.c:558 +#: builtin/send-pack.c:168 +msgid "force progress reporting" +msgstr "강제로 진행 상황을 표시합니다" + +#: builtin/checkout.c:1191 +msgid "-b, -B and --orphan are mutually exclusive" +msgstr "-b, -B 및 --orphan 옵션은 서로 호환되지 않습니다" + +#: builtin/checkout.c:1208 +msgid "--track needs a branch name" +msgstr "--track 옵션은 브랜치 이름이 필요합니다" + +#: builtin/checkout.c:1213 +msgid "Missing branch name; try -b" +msgstr "브랜치 이름이 없습니다. -b 옵션을 사용해 보십시오" + +#: builtin/checkout.c:1249 +msgid "invalid path specification" +msgstr "경로 명세가 잘못되었습니다" + +#: builtin/checkout.c:1256 +#, 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 "" +"동시에 경로를 업데이트하고 '%s' 브랜치로 전환할 수 없습니다.\n" +"커밋을 확인할 수 없는 '%s'을(를) 가져오려고 하셨습니까?" + +#: builtin/checkout.c:1261 +#, c-format +msgid "git checkout: --detach does not take a path argument '%s'" +msgstr "git checkout: --detach 옵션은 경로 인자를 받지 않습니다 '%s'" + +#: builtin/checkout.c:1265 +msgid "" +"git checkout: --ours/--theirs, --force and --merge are incompatible when\n" +"checking out of the index." +msgstr "" +"git checkout: --ours/--theirs, --force 및 --merge 옵션은 인덱스에서\n" +"가져올 경우에는 서로 호환되지 않습니다." + +#: builtin/clean.c:25 +msgid "" +"git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..." +msgstr "" +"git clean [-d] [-f] [-i] [-n] [-q] [-e <패턴>] [-x | -X] [--] <경로>..." + +#: builtin/clean.c:29 +#, c-format +msgid "Removing %s\n" +msgstr "%s 제거\n" + +#: builtin/clean.c:30 +#, c-format +msgid "Would remove %s\n" +msgstr "%s 제거할 예정\n" + +#: builtin/clean.c:31 +#, c-format +msgid "Skipping repository %s\n" +msgstr "%s 저장소 건너뜀\n" + +#: builtin/clean.c:32 +#, c-format +msgid "Would skip repository %s\n" +msgstr "%s 저장소 건너뛸 예정\n" + +#: builtin/clean.c:33 +#, c-format +msgid "failed to remove %s" +msgstr "%s 제거에 실패했습니다" + +#: builtin/clean.c:315 +msgid "" +"Prompt help:\n" +"1 - select a numbered item\n" +"foo - select item based on unique prefix\n" +" - (empty) select nothing" +msgstr "" +"프롬프트 도움말:\n" +"1 - 해당 번호의 항목을 선택\n" +"foo - 유일한 접두어에 해당하는 항목 선택\n" +" - (빈 입력) 선택하지 않음" + +#: builtin/clean.c:319 +msgid "" +"Prompt help:\n" +"1 - select a single item\n" +"3-5 - select a range of items\n" +"2-3,6-9 - select multiple ranges\n" +"foo - select item based on unique prefix\n" +"-... - unselect specified items\n" +"* - choose all items\n" +" - (empty) finish selecting" +msgstr "" +"프롬프트 도움말:\n" +"1 - 해당 번호의 항목을 선택\n" +"3-5 - 해당 범위의 항목을 선택\n" +"2-3,6-9 - 여러 개 범위를 선택\n" +"foo - 유일한 접두어에 해당하는 항목 선택\n" +"-... - 해당 항목 선택 해제\n" +"* - 모든 항목 선택\n" +" - (빈 입력) 선택 마침" + +#: builtin/clean.c:535 +#, c-format +msgid "Huh (%s)?" +msgstr "어라라 (%s)?" + +#: builtin/clean.c:677 +#, c-format +msgid "Input ignore patterns>> " +msgstr "무시할 패턴을 입력하십시오>> " + +#: builtin/clean.c:714 +#, c-format +msgid "WARNING: Cannot find items matched by: %s" +msgstr "경고: 다음에 해당하는 항목을 찾을 수 없습니다: %s" + +#: builtin/clean.c:735 +msgid "Select items to delete" +msgstr "삭제할 항목을 선택하십시오" + +#. TRANSLATORS: Make sure to keep [y/N] as is +#: builtin/clean.c:776 +#, c-format +msgid "Remove %s [y/N]? " +msgstr "%s 제거합니까 [y/N]? " + +#: builtin/clean.c:801 +msgid "Bye." +msgstr "끝." + +#: builtin/clean.c:809 +msgid "" +"clean - start cleaning\n" +"filter by pattern - exclude items from deletion\n" +"select by numbers - select items to be deleted by numbers\n" +"ask each - confirm each deletion (like \"rm -i\")\n" +"quit - stop cleaning\n" +"help - this screen\n" +"? - help for prompt selection" +msgstr "" +"clean - 지우기 시작\n" +"filter by pattern - exclude items from deletion\n" +"select by numbers - 삭제할 항목을 번호로 선택\n" +"ask each - 삭제 항목을 (\"rm -i\" 처럼) 하나하나 확인\n" +"quit - 지우기 중지\n" +"help - 이 화면 표시\n" +"? - 프롬프트 선택 도움말" + +#: builtin/clean.c:836 +msgid "*** Commands ***" +msgstr "*** 명령 ***" + +#: builtin/clean.c:837 +msgid "What now" +msgstr "무엇을 할까요" + +#: builtin/clean.c:845 +msgid "Would remove the following item:" +msgid_plural "Would remove the following items:" +msgstr[0] "다음 항목을 제거할 예정입니다:" + +#: builtin/clean.c:862 +msgid "No more files to clean, exiting." +msgstr "지울 파일이 이제 없으므로 끝냅니다." + +#: builtin/clean.c:893 +msgid "do not print names of files removed" +msgstr "제거할 파일 이름을 표시하지 않습니다" + +#: builtin/clean.c:895 +msgid "force" +msgstr "강제" + +#: builtin/clean.c:896 +msgid "interactive cleaning" +msgstr "대화형 지우기" + +#: builtin/clean.c:898 +msgid "remove whole directories" +msgstr "전체 디렉터리 제거" + +#: builtin/clean.c:899 builtin/describe.c:407 builtin/grep.c:709 +#: builtin/ls-files.c:443 builtin/name-rev.c:307 builtin/show-ref.c:182 +msgid "pattern" +msgstr "패턴" + +#: builtin/clean.c:900 +msgid "add <pattern> to ignore rules" +msgstr "규칙을 무시하려면 <패턴>을 추가하십시오" + +#: builtin/clean.c:901 +msgid "remove ignored files, too" +msgstr "무시한 파일도 제거" + +#: builtin/clean.c:903 +msgid "remove only ignored files" +msgstr "무시한 파일만 제거" + +#: builtin/clean.c:921 +msgid "-x and -X cannot be used together" +msgstr "-x 및 -X 옵션은 같이 쓸 수 없습니다" + +#: builtin/clean.c:925 +msgid "" +"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to " +"clean" +msgstr "clean.requireForce가 true로 설정되었고 -i, -n, -f 옵션 중 하나도 쓰지 않았습니다. 지우지 않습니다" + +#: builtin/clean.c:928 +msgid "" +"clean.requireForce defaults to true and neither -i, -n, nor -f given; " +"refusing to clean" +msgstr "clean.requireForce 기본값이 true이고 -i, -n, -f 옵션 중 하나도 쓰지 않았습니다. 지우지 않습니다" + +#: builtin/clone.c:37 +msgid "git clone [<options>] [--] <repo> [<dir>]" +msgstr "git clone [<옵션>] [--] <저장소> [<디렉터리>]" + +#: builtin/clone.c:59 +msgid "don't create a checkout" +msgstr "체크아웃을 만들지 않습니다" + +#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:469 +msgid "create a bare repository" +msgstr "간략한 저장소를 만듭니다" + +#: builtin/clone.c:64 +msgid "create a mirror repository (implies bare)" +msgstr "미러 저장소를 만듭니다 (간략한 저장소로 취급)" + +#: builtin/clone.c:66 +msgid "to clone from a local repository" +msgstr "로컬 저장소에서 복제합니다" + +#: builtin/clone.c:68 +msgid "don't use local hardlinks, always copy" +msgstr "로컬 하드링크를 사용하지 않고, 항상 복사합니다" + +#: builtin/clone.c:70 +msgid "setup as shared repository" +msgstr "공유 저장소로 설정합니다" + +#: builtin/clone.c:72 builtin/clone.c:74 +msgid "initialize submodules in the clone" +msgstr "복제한 결과물에서 하위 모듈을 초기화합니다" + +#: builtin/clone.c:75 builtin/init-db.c:466 +msgid "template-directory" +msgstr "서식-디렉터리" + +#: builtin/clone.c:76 builtin/init-db.c:467 +msgid "directory from which templates will be used" +msgstr "서식을 사용할 디렉터리 위치" + +#: builtin/clone.c:78 builtin/submodule--helper.c:179 +msgid "reference repository" +msgstr "레퍼런스 저장소" + +#: builtin/clone.c:80 +msgid "use --reference only while cloning" +msgstr "복제할 경우에만 --reference를 사용합니다" + +#: builtin/clone.c:81 builtin/column.c:26 builtin/merge-file.c:44 +msgid "name" +msgstr "이름" + +#: builtin/clone.c:82 +msgid "use <name> instead of 'origin' to track upstream" +msgstr "업스트림 추적에 'origin' 대신 <이름>을 사용합니다" + +#: builtin/clone.c:84 +msgid "checkout <branch> instead of the remote's HEAD" +msgstr "리모트의 HEAD 대신 <브랜치>를 가져옵니다" + +#: builtin/clone.c:86 +msgid "path to git-upload-pack on the remote" +msgstr "리모트의 git-upload-pack 경로" + +#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:654 builtin/pull.c:186 +msgid "depth" +msgstr "깊이" + +#: builtin/clone.c:88 +msgid "create a shallow clone of that depth" +msgstr "지정한 깊이의 얕은 복제를 만듭니다" + +#: builtin/clone.c:90 +msgid "clone only one branch, HEAD or --branch" +msgstr "하나의 브랜치만 복제합니다 (HEAD 또는 --branch로 지정)" + +#: builtin/clone.c:91 builtin/init-db.c:475 +msgid "gitdir" +msgstr "gitdir" + +#: builtin/clone.c:92 builtin/init-db.c:476 +msgid "separate git dir from working tree" +msgstr "깃 디렉터리를 작업 폴더와 별개의 위치에 놓습니다" + +#: builtin/clone.c:93 +msgid "key=value" +msgstr "키=값" + +#: builtin/clone.c:94 +msgid "set config inside the new repository" +msgstr "새 저장소 안에서 설정합니다" + +#: builtin/clone.c:300 +#, c-format +msgid "reference repository '%s' as a linked checkout is not supported yet." +msgstr "레퍼런스 '%s' 저장소를 연결된 체크아웃으로 쓰기는 아직 지원하지 않습니다." + +#: builtin/clone.c:302 +#, c-format +msgid "reference repository '%s' is not a local repository." +msgstr "레퍼런스 '%s' 저장소가 로컬 저장소가 아닙니다." + +#: builtin/clone.c:307 +#, c-format +msgid "reference repository '%s' is shallow" +msgstr "레퍼런스 '%s' 저장소가 얕은 저장소입니다" + +#: builtin/clone.c:310 +#, c-format +msgid "reference repository '%s' is grafted" +msgstr "레퍼런스 '%s' 저장소가 붙어 있는 저장소입니다" + +#: builtin/clone.c:375 builtin/diff.c:84 +#, c-format +msgid "failed to stat '%s'" +msgstr "'%s'에 대해 stat()이 실패했습니다" + +#: builtin/clone.c:377 +#, c-format +msgid "%s exists and is not a directory" +msgstr "'%s'이(가) 있지만 디렉터리가 아닙니다" + +#: builtin/clone.c:391 +#, c-format +msgid "failed to stat %s\n" +msgstr "'%s'에 대해 stat()이 실패했습니다\n" + +#: builtin/clone.c:413 +#, c-format +msgid "failed to create link '%s'" +msgstr "'%s' 링크를 만드는데 실패했습니다" + +#: builtin/clone.c:417 +#, c-format +msgid "failed to copy file to '%s'" +msgstr "파일을 '%s'(으)로 복사하는데 실패했습니다" + +#: builtin/clone.c:442 builtin/clone.c:626 +#, c-format +msgid "done.\n" +msgstr "완료.\n" + +#: builtin/clone.c:454 +msgid "" +"Clone succeeded, but checkout failed.\n" +"You can inspect what was checked out with 'git status'\n" +"and retry the checkout with 'git checkout -f HEAD'\n" +msgstr "" +"복제가 성공했지만, 체크아웃이 실패했습니다.\n" +"'git status' 명령으로 무엇을 체크아웃했는지 살펴볼 수 있고\n" +"'git checkout -f HEAD'로 체크아웃을 다시 할 수 있습니다\n" + +#: builtin/clone.c:531 +#, c-format +msgid "Could not find remote branch %s to clone." +msgstr "복제할 리모트의 %s 브랜치를 찾을 수 없습니다." + +#: builtin/clone.c:621 +#, c-format +msgid "Checking connectivity... " +msgstr "연결을 확인하는 중입니다..." + +#: builtin/clone.c:624 +msgid "remote did not send all necessary objects" +msgstr "리모트에서 필요한 오브젝트를 모두 보내지 않았습니다" + +#: builtin/clone.c:688 +msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" +msgstr "리모트 HEAD가 없는 레퍼런스를 참고하므로, 체크아웃할 수 없습니다.\n" + +#: builtin/clone.c:719 +msgid "unable to checkout working tree" +msgstr "작업 폴더를 체크아웃할 수 없습니다" + +#: builtin/clone.c:808 +msgid "cannot repack to clean up" +msgstr "정리용으로 repack할 수 없습니다" + +#: builtin/clone.c:810 +msgid "cannot unlink temporary alternates file" +msgstr "보조 임시 파일을 삭제할 수 없습니다" + +#: builtin/clone.c:842 +msgid "Too many arguments." +msgstr "너무 인자가 많습니다." + +#: builtin/clone.c:846 +msgid "You must specify a repository to clone." +msgstr "복제할 저장소를 지정해야 합니다." + +#: builtin/clone.c:857 +#, c-format +msgid "--bare and --origin %s options are incompatible." +msgstr "--bare 및 --origin %s 옵션은 호환되지 않습니다." + +#: builtin/clone.c:860 +msgid "--bare and --separate-git-dir are incompatible." +msgstr "--bare 및 --separate-git-dir 옵션은 호환되지 않습니다." + +#: builtin/clone.c:873 +#, c-format +msgid "repository '%s' does not exist" +msgstr "'%s' 저장소가 없습니다" + +#: builtin/clone.c:879 builtin/fetch.c:1166 +#, c-format +msgid "depth %s is not a positive number" +msgstr "깊이가(%s) 0보다 큰 수가 아닙니다" + +#: builtin/clone.c:889 +#, c-format +msgid "destination path '%s' already exists and is not an empty directory." +msgstr "대상 경로가('%s') 이미 있고 빈 디렉터리가 아닙니다." + +#: builtin/clone.c:899 +#, c-format +msgid "working tree '%s' already exists." +msgstr "작업 폴더가('%s') 이미 있습니다." + +#: builtin/clone.c:914 builtin/clone.c:925 builtin/submodule--helper.c:224 +#: builtin/worktree.c:221 builtin/worktree.c:248 +#, c-format +msgid "could not create leading directories of '%s'" +msgstr "'%s'의 앞 디렉터리를 만들 수 없습니다" + +#: builtin/clone.c:917 +#, c-format +msgid "could not create work tree dir '%s'" +msgstr "작업 디렉터리를('%s') 만들 수 없습니다" + +#: builtin/clone.c:935 +#, c-format +msgid "Cloning into bare repository '%s'...\n" +msgstr "간략한 저장소로('%s') 복제합니다...\n" + +#: builtin/clone.c:937 +#, c-format +msgid "Cloning into '%s'...\n" +msgstr "'%s'에 복제합니다...\n" + +#: builtin/clone.c:975 +msgid "--depth is ignored in local clones; use file:// instead." +msgstr "--depth 옵션은 로컬 복제에서 무시됩니다. 대신에 'file://'을 사용하십시오." + +#: builtin/clone.c:978 +msgid "source repository is shallow, ignoring --local" +msgstr "원본 저장소가 얕은 저장소이므로, --local 옵션을 무시합니다" + +#: builtin/clone.c:983 +msgid "--local is ignored" +msgstr "--local 옵션은 무시됩니다" + +#: builtin/clone.c:987 +#, c-format +msgid "Don't know how to clone %s" +msgstr "%s의 복제 방법을 알지 못합니다" + +#: builtin/clone.c:1036 builtin/clone.c:1044 +#, c-format +msgid "Remote branch %s not found in upstream %s" +msgstr "리모트의 %s 브랜치가 업스트림 %s에 없습니다" + +#: builtin/clone.c:1047 +msgid "You appear to have cloned an empty repository." +msgstr "빈 저장소를 복제한 것처럼 보입니다." + +#: builtin/column.c:9 +msgid "git column [<options>]" +msgstr "git column [<옵션>]" + +#: builtin/column.c:26 +msgid "lookup config vars" +msgstr "설정 변수를 찾아 봅니다" + +#: builtin/column.c:27 builtin/column.c:28 +msgid "layout to use" +msgstr "사용할 배치" + +#: builtin/column.c:29 +msgid "Maximum width" +msgstr "최대 너비" + +#: builtin/column.c:30 +msgid "Padding space on left border" +msgstr "왼쪽 가장자리에 채울 공백" + +#: builtin/column.c:31 +msgid "Padding space on right border" +msgstr "오른쪽 가장자리에 채울 공백" + +#: builtin/column.c:32 +msgid "Padding space between columns" +msgstr "열 사이에 채울 공백" + +#: builtin/column.c:51 +msgid "--command must be the first argument" +msgstr "--command는 첫 번째 인자여야 합니다" + +#: builtin/commit.c:38 +msgid "git commit [<options>] [--] <pathspec>..." +msgstr "git commit [<옵션>] [--] <경로명세>..." + +#: builtin/commit.c:43 +msgid "git status [<options>] [--] <pathspec>..." +msgstr "git status [<옵션>] [--] <경로명세>..." + +#: builtin/commit.c:48 +msgid "" +"Your name and email address were configured automatically based\n" +"on your username and hostname. Please check that they are accurate.\n" +"You can suppress this message by setting them explicitly. Run the\n" +"following command and follow the instructions in your editor to edit\n" +"your configuration file:\n" +"\n" +" git config --global --edit\n" +"\n" +"After doing this, you may fix the identity used for this commit with:\n" +"\n" +" git commit --amend --reset-author\n" +msgstr "" +"이름과 전자메일 주소를 사용자 이름과 호스트 이름을 이용해서 자동으로\n" +"설정했습니다. 이 정보가 맞는지 확인하십시오. 이 메시지를 보지 않으려면 정보" +"를\n" +"명시적으로 설정하십시오. 다음 명령어를 실행하고 편집기의 안내에 따라 설정\n" +"파일을 편집하십시오:\n" +"\n" +" git config --global --edit\n" +"\n" +"이렇게 한 다음, 이 커밋에 사용한 신원 정보를 다음과 같이 해서 바꿀 수 있습니" +"다:\n" +"\n" +" git commit --amend --reset-author\n" + +#: builtin/commit.c:61 +msgid "" +"Your name and email address were configured automatically based\n" +"on your username and hostname. Please check that they are accurate.\n" +"You can suppress this message by setting them explicitly:\n" +"\n" +" git config --global user.name \"Your Name\"\n" +" git config --global user.email you@example.com\n" +"\n" +"After doing this, you may fix the identity used for this commit with:\n" +"\n" +" git commit --amend --reset-author\n" +msgstr "" +"이름과 전자메일 주소를 사용자 이름과 호스트 이름을 이용해서\n" +"자동으로 설정했습니다. 이 정보가 맞는지 확인하십시오. 이 메시지를\n" +"보지 않으려면 정보를 명시적으로 설정하십시오:\n" +"\n" +" git config --global user.name \"내 이름\"\n" +" git config --global user.email you@example.com\n" +"\n" +"이렇게 한 다음, 이 커밋에 사용한 신원 정보를 다음과 같이 해서 바꿀 수 있습니" +"다:\n" +"\n" +" git commit --amend --reset-author\n" + +#: builtin/commit.c:73 +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" +"remove the commit entirely with \"git reset HEAD^\".\n" +msgstr "" +"최초의 커밋을 바꾸려고 하지만, 그렇게 하면 커밋이 비어 있게 됩니다.\n" +"--allow-empty 옵션과 같이 이 명령을 반복할 수도 있고, \"git reset HEAD\"\n" +"명령으로 커밋을 완전히 제거할 수도 있습니다.\n" + +#: builtin/commit.c:78 +msgid "" +"The previous cherry-pick is now empty, possibly due to conflict resolution.\n" +"If you wish to commit it anyway, use:\n" +"\n" +" git commit --allow-empty\n" +"\n" +msgstr "" +"이전 커맷 빼오기가 비어 있습니다. 아마도 충돌 해결 과정에서 그렇게 됐을\n" +"것입니다. 그래도 커밋하려면 다음과 같이 하십시오:\n" +"\n" +" git commit --allow-empty\n" +"\n" + +#: builtin/commit.c:85 +msgid "Otherwise, please use 'git reset'\n" +msgstr "아니면 'git reset'을 사용하십시오\n" + +#: builtin/commit.c:88 +msgid "" +"If you wish to skip this commit, use:\n" +"\n" +" git reset\n" +"\n" +"Then \"git cherry-pick --continue\" will resume cherry-picking\n" +"the remaining commits.\n" +msgstr "" +"이 커밋을 건너뛰려면, 다음을 사용하십시오:\n" +"\n" +" git reset\n" +"\n" +"그 다음에 \"git cherry-pick --continue\"를 하면 나머지 커밋에\n" +"대해 커밋 빼오기를 다시 시작합니다.\n" + +#: builtin/commit.c:305 +msgid "failed to unpack HEAD tree object" +msgstr "HEAD 트리 오브젝트의 묶음을 푸는데 실패했습니다" + +#: builtin/commit.c:346 +msgid "unable to create temporary index" +msgstr "임시 인덱스를 만들 수 없습니다" + +#: builtin/commit.c:352 +msgid "interactive add failed" +msgstr "대화형 추가가 실패했습니다" + +#: builtin/commit.c:365 +msgid "unable to update temporary index" +msgstr "임시 인덱스를 업데이트할 수 없습니다" + +#: builtin/commit.c:367 +msgid "Failed to update main cache tree" +msgstr "주요 캐시 트리를 업데이트하는데 실패했습니다" + +#: builtin/commit.c:391 builtin/commit.c:414 builtin/commit.c:463 +msgid "unable to write new_index file" +msgstr "new_index 파일에 쓸 수 없습니다" + +#: builtin/commit.c:445 +msgid "cannot do a partial commit during a merge." +msgstr "병합하는 중 부분 커밋을 할 수 없습니다." + +#: builtin/commit.c:447 +msgid "cannot do a partial commit during a cherry-pick." +msgstr "커밋 빼오기를 하는 중 부분 커밋을 할 수 없습니다." + +#: builtin/commit.c:456 +msgid "cannot read the index" +msgstr "인덱스를 읽을 수 없습니다" + +#: builtin/commit.c:475 +msgid "unable to write temporary index file" +msgstr "임시 인덱스 파일을 쓸 수 없습니다" + +#: builtin/commit.c:580 +#, c-format +msgid "commit '%s' lacks author header" +msgstr "'%s' 커밋에 작성자 헤더가 없습니다" + +#: builtin/commit.c:582 +#, c-format +msgid "commit '%s' has malformed author line" +msgstr "'%s' 커밋의 작성자 헤더 형식이 잘못되었습니다" + +#: builtin/commit.c:601 +msgid "malformed --author parameter" +msgstr "--author 파라미터 형식이 잘못되었습니다" + +#: builtin/commit.c:609 +#, c-format +msgid "invalid date format: %s" +msgstr "시각 형식이 잘못되었습니다: %s" + +#: builtin/commit.c:653 +msgid "" +"unable to select a comment character that is not used\n" +"in the current commit message" +msgstr "" +"현재 커밋 메시지에서 사용되지 않는 주석 문자를\n" +"선택할 수 없습니다" + +#: builtin/commit.c:690 builtin/commit.c:723 builtin/commit.c:1080 +#, c-format +msgid "could not lookup commit %s" +msgstr "%s 커밋을 찾아볼 수 없습니다" + +#: builtin/commit.c:702 builtin/shortlog.c:273 +#, c-format +msgid "(reading log message from standard input)\n" +msgstr "(표준 입력에서 로그 메시지를 읽음)\n" + +#: builtin/commit.c:704 +msgid "could not read log from standard input" +msgstr "표준 입력에서 로그 메시지를 읽을 수 없습니다" + +#: builtin/commit.c:708 +#, c-format +msgid "could not read log file '%s'" +msgstr "'%s' 로그 파일을 읽을 수 없습니다" + +#: builtin/commit.c:730 +msgid "could not read MERGE_MSG" +msgstr "MERGE_MSG를 읽을 수 없습니다" + +#: builtin/commit.c:734 +msgid "could not read SQUASH_MSG" +msgstr "SQUASH_MSG를 읽을 수 없습니다" + +#: builtin/commit.c:785 +msgid "could not write commit template" +msgstr "커밋 서식을 쓸 수 없습니다" + +#: builtin/commit.c:803 +#, c-format +msgid "" +"\n" +"It looks like you may be committing a merge.\n" +"If this is not correct, please remove the file\n" +"\t%s\n" +"and try again.\n" +msgstr "" +"\n" +"병합을 커밋하려는 것으로 보입니다.\n" +"그렇지 않다면, 다음 파일을 지우고,\n" +"\t%s\n" +"다시 시도하십시오.\n" + +#: builtin/commit.c:808 +#, c-format +msgid "" +"\n" +"It looks like you may be committing a cherry-pick.\n" +"If this is not correct, please remove the file\n" +"\t%s\n" +"and try again.\n" +msgstr "" +"\n" +"커밋 빼오기를 커밋하려는 것으로 보입니다.\n" +"그렇지 않다면, 다음 파일을 지우고,\n" +"\t%s\n" +"다시 시도하십시오.\n" + +#: builtin/commit.c:821 +#, c-format +msgid "" +"Please enter the commit message for your changes. Lines starting\n" +"with '%c' will be ignored, and an empty message aborts the commit.\n" +msgstr "" +"변경 사항에 대한 커밋 메시지를 입력하십시오. '%c' 문자로 시작하는\n" +"줄은 무시되고, 메시지를 입력하지 않으면 커밋이 중지됩니다.\n" + +#: builtin/commit.c:828 +#, c-format +msgid "" +"Please enter the commit message for your changes. Lines starting\n" +"with '%c' will be kept; you may remove them yourself if you want to.\n" +"An empty message aborts the commit.\n" +msgstr "" +"변경 사항에 대한 커밋 메시지를 입력하십시오. '%c' 문자로 시작하는\n" +"줄은 보존되니, 필요하면 직접 제거하십시오. 메시지를 입력하지\n" +"않으면 커밋이 중지됩니다.\n" + +#: builtin/commit.c:848 +#, c-format +msgid "%sAuthor: %.*s <%.*s>" +msgstr "%s작성자: %.*s <%.*s>" + +#: builtin/commit.c:856 +#, c-format +msgid "%sDate: %s" +msgstr "%s시각: %s" + +#: builtin/commit.c:863 +#, c-format +msgid "%sCommitter: %.*s <%.*s>" +msgstr "%s커미터: %.*s <%.*s>" + +#: builtin/commit.c:881 +msgid "Cannot read index" +msgstr "인덱스를 읽을 수 없습니다" + +#: builtin/commit.c:938 +msgid "Error building trees" +msgstr "트리를 만드는데 오류" + +#: builtin/commit.c:953 builtin/tag.c:266 +#, c-format +msgid "Please supply the message using either -m or -F option.\n" +msgstr "메시지를 -m 또는 -F 옵션으로 입력하십시오.\n" + +#: builtin/commit.c:1055 +#, c-format +msgid "--author '%s' is not 'Name <email>' and matches no existing author" +msgstr "" +"--author '%s' 옵션이 '이름 <전자메일>' 형식이 아니고 기존 작성자에도 없습니다" + +#: builtin/commit.c:1070 builtin/commit.c:1310 +#, c-format +msgid "Invalid untracked files mode '%s'" +msgstr "추적되지 않는 파일 모드가 ('%s') 잘못되었습니다" + +#: builtin/commit.c:1107 +msgid "--long and -z are incompatible" +msgstr "--long 및 -z 옵션은 호환되지 않습니다" + +#: builtin/commit.c:1137 +msgid "Using both --reset-author and --author does not make sense" +msgstr "--reset-author 및 --author 옵션을 모두 사용하면 앞뒤가 맞지 않습니다" + +#: builtin/commit.c:1146 +msgid "You have nothing to amend." +msgstr "바꿀 사항이 없습니다." + +#: builtin/commit.c:1149 +msgid "You are in the middle of a merge -- cannot amend." +msgstr "병합 중에 있습니다 -- 커밋을 바꿀 수 없습니다." + +#: builtin/commit.c:1151 +msgid "You are in the middle of a cherry-pick -- cannot amend." +msgstr "커밋 빼오기 중에 있습니다 -- 커밋을 바꿀 수 없습니다." + +#: builtin/commit.c:1154 +msgid "Options --squash and --fixup cannot be used together" +msgstr "--squash 및 --fixup 옵션은 같이 쓸 수 없습니다" + +#: builtin/commit.c:1164 +msgid "Only one of -c/-C/-F/--fixup can be used." +msgstr "-c/-C/-F/--fixup 옵션 중에 하나만 사용할 수 있습니다." + +#: builtin/commit.c:1166 +msgid "Option -m cannot be combined with -c/-C/-F/--fixup." +msgstr "-m 옵션은 -c/-C/-F/--fixup 옵션과 같이 쓸 수 없습니다." + +#: builtin/commit.c:1174 +msgid "--reset-author can be used only with -C, -c or --amend." +msgstr "--reset-author 옵션은 -C, -c 또는 --amend 옵션과 같이 써야 합니다." + +#: builtin/commit.c:1191 +msgid "Only one of --include/--only/--all/--interactive/--patch can be used." +msgstr "" +"--include/--only/--all/--interactive/--patch 옵션 중 하나만 사용할 수 있습니" +"다." + +#: builtin/commit.c:1193 +msgid "No paths with --include/--only does not make sense." +msgstr "경로가 없이 --include/--only 옵션을 쓰면 앞뒤가 맞지 않습니다." + +#: builtin/commit.c:1195 +msgid "Clever... amending the last one with dirty index." +msgstr "기발하네요... 마지막을 변경된 인덱스로 바꿉니다." + +#: builtin/commit.c:1197 +msgid "Explicit paths specified without -i or -o; assuming --only paths..." +msgstr "-i 또는 -o 없이 명시적인 경로를 지정했습니다. --only 경로를 가정합니다..." + +#: builtin/commit.c:1209 builtin/tag.c:475 +#, c-format +msgid "Invalid cleanup mode %s" +msgstr "잘못된 정리 모드 %s" + +#: builtin/commit.c:1214 +msgid "Paths with -a does not make sense." +msgstr "-a 옵션과 경로를 같이 사용하면 앞뒤가 맞지 않습니다." + +#: builtin/commit.c:1324 builtin/commit.c:1605 +msgid "show status concisely" +msgstr "상태를 간략하게 표시합니다" + +#: builtin/commit.c:1326 builtin/commit.c:1607 +msgid "show branch information" +msgstr "브랜치 정보를 표시합니다" + +#: builtin/commit.c:1328 builtin/commit.c:1609 builtin/push.c:544 +#: builtin/worktree.c:423 +msgid "machine-readable output" +msgstr "컴퓨터가 읽을 수 있는 형식" + +#: builtin/commit.c:1331 builtin/commit.c:1611 +msgid "show status in long format (default)" +msgstr "긴 형식으로 상태를 표시합니다 (기본값)" + +#: builtin/commit.c:1334 builtin/commit.c:1614 +msgid "terminate entries with NUL" +msgstr "NUL 문자로 항목을 끝냅니다" + +#: builtin/commit.c:1336 builtin/commit.c:1617 builtin/fast-export.c:981 +#: builtin/fast-export.c:984 builtin/tag.c:353 +msgid "mode" +msgstr "모드" + +#: builtin/commit.c:1337 builtin/commit.c:1617 +msgid "show untracked files, optional modes: all, normal, no. (Default: all)" +msgstr "추적되지 않는 파일을 표시합니다. 추가 옵션: all, normal, no (기본값: all)" + +#: builtin/commit.c:1340 +msgid "show ignored files" +msgstr "무시되는 파일을 표시합니다" + +#: builtin/commit.c:1341 parse-options.h:155 +msgid "when" +msgstr "언제" + +#: builtin/commit.c:1342 +msgid "" +"ignore changes to submodules, optional when: all, dirty, untracked. " +"(Default: all)" +msgstr "하위 모듈의 변경을 무시합니다. 추가 옵션: all, dirty, untracked. (기본값: all)" + +#: builtin/commit.c:1344 +msgid "list untracked files in columns" +msgstr "추적되지 않는 파일의 목록을 여러 열로 표시합니다" + +#: builtin/commit.c:1430 +msgid "couldn't look up newly created commit" +msgstr "새로 만든 커밋을 찾아볼 수 없습니다" + +#: builtin/commit.c:1432 +msgid "could not parse newly created commit" +msgstr "새로 만든 커밋을 파싱할 수 없습니다" + +#: builtin/commit.c:1477 +msgid "detached HEAD" +msgstr "HEAD 분리됨" + +#: builtin/commit.c:1480 +msgid " (root-commit)" +msgstr " (최상위-커밋)" + +#: builtin/commit.c:1575 +msgid "suppress summary after successful commit" +msgstr "성공적인 커밋 후에 요약을 표시하지 않습니다" + +#: builtin/commit.c:1576 +msgid "show diff in commit message template" +msgstr "커밋 메시지 서식에 diff를 표시합니다" + +#: builtin/commit.c:1578 +msgid "Commit message options" +msgstr "커밋 메시지 옵션" + +#: builtin/commit.c:1579 builtin/tag.c:351 +msgid "read message from file" +msgstr "파일에서 메시지를 읽습니다" + +#: builtin/commit.c:1580 +msgid "author" +msgstr "작성자" + +#: builtin/commit.c:1580 +msgid "override author for commit" +msgstr "커밋의 작성자를 지정합니다" + +#: builtin/commit.c:1581 builtin/gc.c:326 +msgid "date" +msgstr "시각" + +#: builtin/commit.c:1581 +msgid "override date for commit" +msgstr "커밋의 시각을 지정합니다" + +#: builtin/commit.c:1582 builtin/merge.c:218 builtin/notes.c:392 +#: builtin/notes.c:555 builtin/tag.c:349 +msgid "message" +msgstr "메시지" + +#: builtin/commit.c:1582 +msgid "commit message" +msgstr "커밋 메시지" + +#: builtin/commit.c:1583 builtin/commit.c:1584 builtin/commit.c:1585 +#: builtin/commit.c:1586 parse-options.h:256 ref-filter.h:79 +msgid "commit" +msgstr "커밋" + +#: builtin/commit.c:1583 +msgid "reuse and edit message from specified commit" +msgstr "지정한 커밋의 메시지를 재사용하고 편집합니다" + +#: builtin/commit.c:1584 +msgid "reuse message from specified commit" +msgstr "지정한 커밋에서 메시지를 재사용합니다" + +#: builtin/commit.c:1585 +msgid "use autosquash formatted message to fixup specified commit" +msgstr "지정한 커밋을 수정하는데 autosquash 형식 메시지를 사용합니다" + +#: builtin/commit.c:1586 +msgid "use autosquash formatted message to squash specified commit" +msgstr "지정한 커밋을 합치는데 autosquash 형식 메시지를 사용합니다" + +#: builtin/commit.c:1587 +msgid "the commit is authored by me now (used with -C/-c/--amend)" +msgstr "커밋을 내가 작성한 것으로 만듭니다 (-C/-c/--amend와 같이 사용)" + +#: builtin/commit.c:1588 builtin/log.c:1216 builtin/revert.c:86 +msgid "add Signed-off-by:" +msgstr "Signed-off-by: 줄을 추가합니다" + +#: builtin/commit.c:1589 +msgid "use specified template file" +msgstr "지정한 서식 파일을 사용합니다" + +#: builtin/commit.c:1590 +msgid "force edit of commit" +msgstr "커밋 편집을 강제합니다" + +#: builtin/commit.c:1591 +msgid "default" +msgstr "기본값" + +#: builtin/commit.c:1591 builtin/tag.c:354 +msgid "how to strip spaces and #comments from message" +msgstr "메시지에서 공백과 #주석을 지웁니다" + +#: builtin/commit.c:1592 +msgid "include status in commit message template" +msgstr "커밋 메시지 서식에 상태를 포함합니다" + +#: builtin/commit.c:1594 builtin/merge.c:226 builtin/pull.c:156 +#: builtin/revert.c:93 +msgid "GPG sign commit" +msgstr "GPG 서명 커밋" + +#: builtin/commit.c:1597 +msgid "Commit contents options" +msgstr "커밋 내용 옵션" + +#: builtin/commit.c:1598 +msgid "commit all changed files" +msgstr "변경된 파일을 모두 커밋합니다" + +#: builtin/commit.c:1599 +msgid "add specified files to index for commit" +msgstr "지정한 파일을 커밋할 인덱스에 추가합니다" + +#: builtin/commit.c:1600 +msgid "interactively add files" +msgstr "대화형으로 파일을 추가합니다" + +#: builtin/commit.c:1601 +msgid "interactively add changes" +msgstr "대화형으로 변경 사항을 추가합니다" + +#: builtin/commit.c:1602 +msgid "commit only specified files" +msgstr "지정한 파일만 커밋합니다" + +#: builtin/commit.c:1603 +msgid "bypass pre-commit hook" +msgstr "커밋 전 후크를 건너뜁니다" + +#: builtin/commit.c:1604 +msgid "show what would be committed" +msgstr "무엇을 커밋할지 표시합니다" + +#: builtin/commit.c:1615 +msgid "amend previous commit" +msgstr "바로 앞 커밋을 바꿉니다" + +#: builtin/commit.c:1616 +msgid "bypass post-rewrite hook" +msgstr "다시쓰기 후 후크를 건너뜁니다" + +#: builtin/commit.c:1621 +msgid "ok to record an empty change" +msgstr "빈 변경 사항을 기록하도록 허용합니다" + +#: builtin/commit.c:1623 +msgid "ok to record a change with an empty message" +msgstr "빈 메시지와 같이 변경 사항을 기록하도록 허용합니다" + +#: builtin/commit.c:1652 +msgid "could not parse HEAD commit" +msgstr "HEAD 커밋을 파싱할 수 없습니다" + +#: builtin/commit.c:1698 +#, c-format +msgid "Corrupt MERGE_HEAD file (%s)" +msgstr "손상된 MERGE_HEAD 파일 (%s)" + +#: builtin/commit.c:1705 +msgid "could not read MERGE_MODE" +msgstr "MERGE_MODE를 읽을 수 없습니다" + +#: builtin/commit.c:1724 +#, c-format +msgid "could not read commit message: %s" +msgstr "커밋 메시지를 읽을 수 없습니다: %s" + +#: builtin/commit.c:1735 +#, c-format +msgid "Aborting commit; you did not edit the message.\n" +msgstr "커밋을 중지합니다. 메시지를 편집하지 않았습니다.\n" + +#: builtin/commit.c:1740 +#, c-format +msgid "Aborting commit due to empty commit message.\n" +msgstr "커밋을 중지합니다. 커밋 메시지가 비어 있습니다.\n" + +#: builtin/commit.c:1788 +msgid "" +"Repository has been updated, but unable to write\n" +"new_index file. Check that disk is not full and quota is\n" +"not exceeded, and then \"git reset HEAD\" to recover." +msgstr "" +"저장소를 업데이트했습니다. 하지만 new_index 파일을 쓸 수\n" +"없습니다. 디스크가 꽉 차지 않았고 제한 용량을 넘어가지\n" +"않았는지 확인하십시오. 그리고 'git reset HEAD'로 복구하십시오." + +#: builtin/config.c:8 +msgid "git config [<options>]" +msgstr "git config [<옵션>]" + +#: builtin/config.c:54 +msgid "Config file location" +msgstr "설정 파일 위치" + +#: builtin/config.c:55 +msgid "use global config file" +msgstr "공통 설정 파일을 사용합니다" + +#: builtin/config.c:56 +msgid "use system config file" +msgstr "시스템 설정 파일을 사용합니다" + +#: builtin/config.c:57 +msgid "use repository config file" +msgstr "저장소 설정 파일을 사용합니다" + +#: builtin/config.c:58 +msgid "use given config file" +msgstr "지정한 설정 파일을 사용합니다" + +#: builtin/config.c:59 +msgid "blob-id" +msgstr "블롭-id" + +#: builtin/config.c:59 +msgid "read config from given blob object" +msgstr "지정한 블롭 오브젝트에서 설정을 읽습니다" + +#: builtin/config.c:60 +msgid "Action" +msgstr "동작" + +#: builtin/config.c:61 +msgid "get value: name [value-regex]" +msgstr "값을 가져옵니다: <이름> [<값-정규식>]" + +#: builtin/config.c:62 +msgid "get all values: key [value-regex]" +msgstr "모든 값을 가져옵니다: <키> [<값-정규식>]" + +#: builtin/config.c:63 +msgid "get values for regexp: name-regex [value-regex]" +msgstr "정규식에 대한 값을 가져옵니다: <이름-정규식> [<값-정규식>]" + +#: builtin/config.c:64 +msgid "get value specific for the URL: section[.var] URL" +msgstr "<URL>에 특정되는 값을 가져옵니다: <섹션>[.<변수>] <URL>" + +#: builtin/config.c:65 +msgid "replace all matching variables: name value [value_regex]" +msgstr "해당하는 변수를 모두 제거합니다: <이름> <값> [<값-정규식>]" + +#: builtin/config.c:66 +msgid "add a new variable: name value" +msgstr "새 변수를 추가합니다: <이름> <값>" + +#: builtin/config.c:67 +msgid "remove a variable: name [value-regex]" +msgstr "변수를 제거합니다: <이름> [<값-정규식>]" + +#: builtin/config.c:68 +msgid "remove all matches: name [value-regex]" +msgstr "해당하는 항목을 모두 제거합니다: <이름> [<값-정규식>]" + +#: builtin/config.c:69 +msgid "rename section: old-name new-name" +msgstr "섹션의 이름을 바꿉니다: <옛-이름> <새-이름>" + +#: builtin/config.c:70 +msgid "remove a section: name" +msgstr "섹션을 제거합니다: <이름>" + +#: builtin/config.c:71 +msgid "list all" +msgstr "전체 목록을 표시합니다" + +#: builtin/config.c:72 +msgid "open an editor" +msgstr "편집기를 엽니다" + +#: builtin/config.c:73 +msgid "find the color configured: slot [default]" +msgstr "설정한 색을 찾습니다: slot [<기본값>]" + +#: builtin/config.c:74 +msgid "find the color setting: slot [stdout-is-tty]" +msgstr "색 설정을 찾습니다: slot [<표준출력이-TTY인지-여부>]" + +#: builtin/config.c:75 +msgid "Type" +msgstr "값 종류" + +#: builtin/config.c:76 +msgid "value is \"true\" or \"false\"" +msgstr "값이 \"true\" 또는 \"false\"입니다" + +#: builtin/config.c:77 +msgid "value is decimal number" +msgstr "값이 십진수입니다" + +#: builtin/config.c:78 +msgid "value is --bool or --int" +msgstr "값이 --bool 또는 --int입니다" + +#: builtin/config.c:79 +msgid "value is a path (file or directory name)" +msgstr "값이 경로(파일 또는 디렉터리 이름)입니다" + +#: builtin/config.c:80 +msgid "Other" +msgstr "기타" + +#: builtin/config.c:81 +msgid "terminate values with NUL byte" +msgstr "값을 NUL 바이트로 끝냅니다" + +#: builtin/config.c:82 +msgid "show variable names only" +msgstr "변수 이름만 표시합니다" + +#: builtin/config.c:83 +msgid "respect include directives on lookup" +msgstr "찾아볼 때 include 지시어를 고려합니다" + +#: builtin/config.c:303 +msgid "unable to parse default color value" +msgstr "기본 색 값을 파싱할 수 없습니다" + +#: builtin/config.c:441 +#, c-format +msgid "" +"# This is Git's per-user configuration file.\n" +"[user]\n" +"# Please adapt and uncomment the following lines:\n" +"#\tname = %s\n" +"#\temail = %s\n" +msgstr "" +"# 깃의 사용자별 설정 파일입니다.\n" +"[user]\n" +"# 다음 줄을 알맞게 고치고 앞의 주석을 제거하십시오:\n" +"#\tname = %s\n" +"#\temail = %s\n" + +#: builtin/config.c:575 +#, c-format +msgid "cannot create configuration file %s" +msgstr "%s 설정 파일을 만들 수 없습니다" + +#: builtin/count-objects.c:77 +msgid "git count-objects [-v] [-H | --human-readable]" +msgstr "git count-objects [-v] [-H | --human-readable]" + +#: builtin/count-objects.c:87 +msgid "print sizes in human readable format" +msgstr "사람이 읽기 좋은 형식으로 크기를 표시합니다" + +#: builtin/describe.c:17 +msgid "git describe [<options>] [<commit-ish>...]" +msgstr "git describe [<옵션>] [<커밋-따위>...]" + +#: builtin/describe.c:18 +msgid "git describe [<options>] --dirty" +msgstr "git describe [<옵션>] --dirty" + +#: builtin/describe.c:217 +#, c-format +msgid "annotated tag %s not available" +msgstr "주석 달린 %s 태그를 사용할 수 없습니다" + +#: builtin/describe.c:221 +#, c-format +msgid "annotated tag %s has no embedded name" +msgstr "주석 달린 %s 태그에 내장된 이름이 없습니다" + +#: builtin/describe.c:223 +#, c-format +msgid "tag '%s' is really '%s' here" +msgstr "'%s' 태그가 실제 여기 '%s'입니다" + +#: builtin/describe.c:250 builtin/log.c:459 +#, c-format +msgid "Not a valid object name %s" +msgstr "올바른 오브젝트 이름이 아닙니다 (%s)" + +#: builtin/describe.c:253 +#, c-format +msgid "%s is not a valid '%s' object" +msgstr "%s은(는) 올바른 '%s' 오브젝트가 아닙니다" + +#: builtin/describe.c:270 +#, c-format +msgid "no tag exactly matches '%s'" +msgstr "어떤 태그도 '%s'와(과) 정확히 일치하지 않습니다" + +#: builtin/describe.c:272 +#, c-format +msgid "searching to describe %s\n" +msgstr "%s 설명을 위해 검색하는 중\n" + +#: builtin/describe.c:319 +#, c-format +msgid "finished search at %s\n" +msgstr "%s에서 검색 마침\n" + +#: builtin/describe.c:346 +#, c-format +msgid "" +"No annotated tags can describe '%s'.\n" +"However, there were unannotated tags: try --tags." +msgstr "" +"어떤 주석 달린 태그도 '%s'을(를) 설명하지 않습니다.\n" +"하지만 주석 달리지 않은 태그가 있습니다: --tags 옵션을 해 보십시오." + +#: builtin/describe.c:350 +#, c-format +msgid "" +"No tags can describe '%s'.\n" +"Try --always, or create some tags." +msgstr "" +"어떤 태그도 '%s'을(를) 설명할 수 없습니다.\n" +"--always 옵션을 써 보거나, 태그를 만들어 보십시오." + +#: builtin/describe.c:371 +#, c-format +msgid "traversed %lu commits\n" +msgstr "커밋 %lu개를 가로질렀습니다\n" + +#: builtin/describe.c:374 +#, c-format +msgid "" +"more than %i tags found; listed %i most recent\n" +"gave up search at %s\n" +msgstr "" +"태그를 %i개 넘게 찾았습니다. 가장 최근의 %i개 목록을\n" +"표시합니다. %s 위치에서 검색을 중지합니다.\n" + +#: builtin/describe.c:396 +msgid "find the tag that comes after the commit" +msgstr "커밋 다음에 오는 태그를 찾습니다" + +#: builtin/describe.c:397 +msgid "debug search strategy on stderr" +msgstr "표준 오류에서 검색 전략을 디버깅합니다" + +#: builtin/describe.c:398 +msgid "use any ref" +msgstr "모든 레퍼런스를 사용합니다" + +#: builtin/describe.c:399 +msgid "use any tag, even unannotated" +msgstr "모든 태그를, 주석 달리지 않은 태그까지 사용합니다" + +#: builtin/describe.c:400 +msgid "always use long format" +msgstr "항상 긴 형식을 사용합니다" + +#: builtin/describe.c:401 +msgid "only follow first parent" +msgstr "첫 번째 이전 커밋만 따라갑니다" + +#: builtin/describe.c:404 +msgid "only output exact matches" +msgstr "정확히 일치하는 항목만 출력합니다" + +#: builtin/describe.c:406 +msgid "consider <n> most recent tags (default: 10)" +msgstr "<n>개의 가장 최근의 태그만 고려합니다 (기본값: 10)" + +#: builtin/describe.c:408 +msgid "only consider tags matching <pattern>" +msgstr "<패턴>과 일치하는 태그만 고려합니다" + +#: builtin/describe.c:410 builtin/name-rev.c:314 +msgid "show abbreviated commit object as fallback" +msgstr "대안으로 요약한 커밋 오브젝트를 표시합니다" + +#: builtin/describe.c:411 +msgid "mark" +msgstr "표시" + +#: builtin/describe.c:412 +msgid "append <mark> on dirty working tree (default: \"-dirty\")" +msgstr "변경된 작업 폴더에 <표시>를 뒤에 붙입니다 (기본값: \"-dirty\")" + +#: builtin/describe.c:430 +msgid "--long is incompatible with --abbrev=0" +msgstr "--long 옵션은 --abbrev=0 옵션과 호환되지 않습니다" + +#: builtin/describe.c:456 +msgid "No names found, cannot describe anything." +msgstr "이름이 없습니다. 아무것도 설명할 수 없습니다." + +#: builtin/describe.c:476 +msgid "--dirty is incompatible with commit-ishes" +msgstr "--dirty 옵션은 커밋같은 항목과 호환되지 않았습니다" + +#: builtin/diff.c:86 +#, c-format +msgid "'%s': not a regular file or symlink" +msgstr "'%s': 일반 파일이나 심볼릭 링크가 아닙니다" + +#: builtin/diff.c:237 +#, c-format +msgid "invalid option: %s" +msgstr "잘못된 옵션: %s" + +#: builtin/diff.c:358 +msgid "Not a git repository" +msgstr "깃 저장소가 아닙니다" + +#: builtin/diff.c:401 +#, c-format +msgid "invalid object '%s' given." +msgstr "잘못된 '%s' 오브젝트가 주어졌습니다." + +#: builtin/diff.c:410 +#, c-format +msgid "more than two blobs given: '%s'" +msgstr "두 개보다 많은 블롭이 주어졌습니다: '%s'" + +#: builtin/diff.c:417 +#, c-format +msgid "unhandled object '%s' given." +msgstr "처리하지 않은 '%s' 오브젝트가 주어졌습니다." + +#: builtin/fast-export.c:25 +msgid "git fast-export [rev-list-opts]" +msgstr "git fast-export [rev-list-옵션]" + +#: builtin/fast-export.c:980 +msgid "show progress after <n> objects" +msgstr "오브젝트 <n>개 뒤에 진행 상황을 표시합니다" + +#: builtin/fast-export.c:982 +msgid "select handling of signed tags" +msgstr "서명한 태그의 처리 방식을 선택합니다" + +#: builtin/fast-export.c:985 +msgid "select handling of tags that tag filtered objects" +msgstr "필터링한 오브젝트에 대한 태그의 처리 방식을 선택합니다" + +#: builtin/fast-export.c:988 +msgid "Dump marks to this file" +msgstr "이 파일로 표시를 내보냅니다" + +#: builtin/fast-export.c:990 +msgid "Import marks from this file" +msgstr "이 파일에서 표시를 가져옵니다" + +#: builtin/fast-export.c:992 +msgid "Fake a tagger when tags lack one" +msgstr "태그에 태그붙인 사람이 없을 때 가짜로 만듭니다" + +#: builtin/fast-export.c:994 +msgid "Output full tree for each commit" +msgstr "커밋 마다 전체 트리를 출력합니다" + +#: builtin/fast-export.c:996 +msgid "Use the done feature to terminate the stream" +msgstr "스트림을 끝내는데 완료 기능을 사용합니다" + +#: builtin/fast-export.c:997 +msgid "Skip output of blob data" +msgstr "블롭 데이터의 출력을 건너뜁니다" + +#: builtin/fast-export.c:998 +msgid "refspec" +msgstr "레퍼런스명세" + +#: builtin/fast-export.c:999 +msgid "Apply refspec to exported refs" +msgstr "레퍼런스명세를 내보낸 레퍼런스에 적용합니다" + +#: builtin/fast-export.c:1000 +msgid "anonymize output" +msgstr "출력을 익명화합니다" + +#: builtin/fetch.c:20 +msgid "git fetch [<options>] [<repository> [<refspec>...]]" +msgstr "git fetch [<옵션>] [<저장소> [<레퍼런스명세>...]]" + +#: builtin/fetch.c:21 +msgid "git fetch [<options>] <group>" +msgstr "git fetch [<옵션>] <그룹>" + +#: builtin/fetch.c:22 +msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]" +msgstr "git fetch --multiple [<옵션>] [(<저장소> | <그룹>)...]" + +#: builtin/fetch.c:23 +msgid "git fetch --all [<options>]" +msgstr "git fetch --all [<옵션>]" + +#: builtin/fetch.c:90 builtin/pull.c:162 +msgid "fetch from all remotes" +msgstr "모든 리모트에서 가져옵니다" + +#: builtin/fetch.c:92 builtin/pull.c:165 +msgid "append to .git/FETCH_HEAD instead of overwriting" +msgstr "덮어쓰지 말고 .git/FETCH_HEAD에 덧붙입니다" + +#: builtin/fetch.c:94 builtin/pull.c:168 +msgid "path to upload pack on remote end" +msgstr "리모트 쪽에 묶음을 업로드할 경로" + +#: builtin/fetch.c:95 builtin/pull.c:170 +msgid "force overwrite of local branch" +msgstr "로컬 브랜치를 강제로 덮어씁니다" + +#: builtin/fetch.c:97 +msgid "fetch from multiple remotes" +msgstr "여러 리모트에서 가져옵니다" + +#: builtin/fetch.c:99 builtin/pull.c:172 +msgid "fetch all tags and associated objects" +msgstr "모든 태그와 관련 오브젝트를 가져옵니다" + +#: builtin/fetch.c:101 +msgid "do not fetch all tags (--no-tags)" +msgstr "모든 태그를 가져오지 않습니다 (--no-tags)" + +#: builtin/fetch.c:103 builtin/pull.c:175 +msgid "prune remote-tracking branches no longer on remote" +msgstr "리모트에 이제 없는 리모트 추적 브랜치를 잘라냅니다" + +#: builtin/fetch.c:104 builtin/pull.c:178 +msgid "on-demand" +msgstr "주문형" + +#: builtin/fetch.c:105 builtin/pull.c:179 +msgid "control recursive fetching of submodules" +msgstr "하위 모듈 재귀적으로 가져오기 방식을 설정합니다" + +#: builtin/fetch.c:109 builtin/pull.c:184 +msgid "keep downloaded pack" +msgstr "다운로드한 묶음을 보존합니다" + +#: builtin/fetch.c:111 +msgid "allow updating of HEAD ref" +msgstr "HEAD 레퍼런스 업데이트를 허용합니다" + +#: builtin/fetch.c:114 builtin/pull.c:187 +msgid "deepen history of shallow clone" +msgstr "얕은 복제의 커밋 내역을 깊게 만듭니다" + +#: builtin/fetch.c:116 builtin/pull.c:190 +msgid "convert to a complete repository" +msgstr "완전한 저장소로 전환합니다" + +#: builtin/fetch.c:118 builtin/log.c:1233 +msgid "dir" +msgstr "디렉터리" + +#: builtin/fetch.c:119 +msgid "prepend this to submodule path output" +msgstr "하위 모듈 경로 출력의 앞에 이 디렉터리를 붙입니다" + +#: builtin/fetch.c:122 +msgid "default mode for recursion" +msgstr "재귀 기본 모드" + +#: builtin/fetch.c:124 builtin/pull.c:193 +msgid "accept refs that update .git/shallow" +msgstr ".git/shallow를 업데이트하는 레퍼런스를 허용합니다" + +#: builtin/fetch.c:125 builtin/pull.c:195 +msgid "refmap" +msgstr "레퍼런스맵" + +#: builtin/fetch.c:126 builtin/pull.c:196 +msgid "specify fetch refmap" +msgstr "레퍼런스맵 가져오기를 지정합니다" + +#: builtin/fetch.c:378 +msgid "Couldn't find remote ref HEAD" +msgstr "리모트 레퍼런스 HEAD를 찾을 수 없습니다" + +#: builtin/fetch.c:458 +#, c-format +msgid "object %s not found" +msgstr "%s 오브젝트가 없습니다" + +#: builtin/fetch.c:463 +msgid "[up to date]" +msgstr "[최신 상태]" + +#: builtin/fetch.c:477 +#, c-format +msgid "! %-*s %-*s -> %s (can't fetch in current branch)" +msgstr "! %-*s %-*s -> %s (현재 브랜치에서 가져올 수 없음)" + +#: builtin/fetch.c:478 builtin/fetch.c:566 +msgid "[rejected]" +msgstr "[거부됨]" + +#: builtin/fetch.c:489 +msgid "[tag update]" +msgstr "[태그 업데이트]" + +#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544 +msgid " (unable to update local ref)" +msgstr " (로컬 레퍼런스를 업데이트할 수 없음)" + +#: builtin/fetch.c:509 +msgid "[new tag]" +msgstr "[새로운 태그]" + +#: builtin/fetch.c:512 +msgid "[new branch]" +msgstr "[새로운 브랜치]" + +#: builtin/fetch.c:515 +msgid "[new ref]" +msgstr "[새로운 레퍼런스]" + +#: builtin/fetch.c:561 +msgid "unable to update local ref" +msgstr "로컬 레퍼런스를 업데이트할 수 없습니다" + +#: builtin/fetch.c:561 +msgid "forced update" +msgstr "강제 업데이트" + +#: builtin/fetch.c:568 +msgid "(non-fast-forward)" +msgstr "(정방향 진행이 아님)" + +#: builtin/fetch.c:602 builtin/fetch.c:843 +#, c-format +msgid "cannot open %s: %s\n" +msgstr "%s을(를) 열 수 없습니다: %s\n" + +#: builtin/fetch.c:611 +#, c-format +msgid "%s did not send all necessary objects\n" +msgstr "%s이(가) 모든 필요한 오브젝트를 보내지 않았습니다\n" + +#: builtin/fetch.c:629 +#, c-format +msgid "reject %s because shallow roots are not allowed to be updated" +msgstr "얕은 최상위의 업데이트가 허용되지 않으므로 %s을(를) 거부합니다" + +#: builtin/fetch.c:716 builtin/fetch.c:808 +#, c-format +msgid "From %.*s\n" +msgstr "%.*s URL에서\n" + +#: builtin/fetch.c:727 +#, c-format +msgid "" +"some local refs could not be updated; try running\n" +" 'git remote prune %s' to remove any old, conflicting branches" +msgstr "" +"업데이트할 수 없는 로컬 레퍼런스가 있습니다. 과거 충돌 브랜치를\n" +" 제거하려면 'git remote prune %s' 명령을 실행해 보십시오" + +#: builtin/fetch.c:779 +#, c-format +msgid " (%s will become dangling)" +msgstr " (%s 레퍼런스가 연결이 끊어지게 됩니다)" + +#: builtin/fetch.c:780 +#, c-format +msgid " (%s has become dangling)" +msgstr " (%s 레퍼런스가 연결이 끊어졌습니다)" + +#: builtin/fetch.c:812 +msgid "[deleted]" +msgstr "[삭제됨]" + +#: builtin/fetch.c:813 builtin/remote.c:1040 +msgid "(none)" +msgstr "(없음)" + +#: builtin/fetch.c:833 +#, c-format +msgid "Refusing to fetch into current branch %s of non-bare repository" +msgstr "간략한 저장소가 아닌 저장소의 현재 %s 브랜치로 가져오기를 거절합니다" + +#: builtin/fetch.c:852 +#, c-format +msgid "Option \"%s\" value \"%s\" is not valid for %s" +msgstr "\"%s\" 옵션의 \"%s\" 값은 %s에 대해 올바르지 않습니다" + +#: builtin/fetch.c:855 +#, c-format +msgid "Option \"%s\" is ignored for %s\n" +msgstr "\"%s\" 옵션은 '%s'에 대해 무시됩니다\n" + +#: builtin/fetch.c:911 +#, c-format +msgid "Don't know how to fetch from %s" +msgstr "'%s'에서 가져오는 방법을 알 수 없습니다" + +#: builtin/fetch.c:1072 +#, c-format +msgid "Fetching %s\n" +msgstr "%s을(를) 가져오는 중\n" + +#: builtin/fetch.c:1074 builtin/remote.c:96 +#, c-format +msgid "Could not fetch %s" +msgstr "%s을(를) 가져올 수 없습니다" + +#: builtin/fetch.c:1092 +msgid "" +"No remote repository specified. Please, specify either a URL or a\n" +"remote name from which new revisions should be fetched." +msgstr "" +"리모트 저장소를 지정하지 않았습니다. 새 리비전을 가져올 수 있는\n" +"URL이나 리모트 이름을 지정하십시오." + +#: builtin/fetch.c:1115 +msgid "You need to specify a tag name." +msgstr "태그 이름을 지정해야 합니다." + +#: builtin/fetch.c:1157 +msgid "--depth and --unshallow cannot be used together" +msgstr "--depth 및 --unshallow 옵션은 같이 쓸 수 없습니다" + +#: builtin/fetch.c:1159 +msgid "--unshallow on a complete repository does not make sense" +msgstr "완전한 저장소에 대해 --unshallow 옵션을 사용하는 건 앞뒤가 맞지 않습니다" + +#: builtin/fetch.c:1179 +msgid "fetch --all does not take a repository argument" +msgstr "fetch --all 명령에 저장소 인자가 없습니다" + +#: builtin/fetch.c:1181 +msgid "fetch --all does not make sense with refspecs" +msgstr "fetch --all 명령은 레퍼런스명세 인자와 같이 쓰면 앞뒤가 맞지 않습니다" + +#: builtin/fetch.c:1192 +#, c-format +msgid "No such remote or remote group: %s" +msgstr "그런 리모트나 리모트 그룹이 없습니다: %s" + +#: builtin/fetch.c:1200 +msgid "Fetching a group and specifying refspecs does not make sense" +msgstr "그룹을 가져오고 레퍼런스명세를 지정하면 앞뒤가 맞지 않습니다" + +#: builtin/fmt-merge-msg.c:14 +msgid "" +"git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]" +msgstr "" +"git fmt-merge-msg [-m <메시지>] [--log[=<n>] | --no-log] [--file <파일>]" + +#: builtin/fmt-merge-msg.c:667 +msgid "populate log with at most <n> entries from shortlog" +msgstr "shortlog에서 최대 <n>개 로그를 표시합니다" + +#: builtin/fmt-merge-msg.c:670 +msgid "alias for --log (deprecated)" +msgstr "--log와 동일 (없어질 예정)" + +#: builtin/fmt-merge-msg.c:673 +msgid "text" +msgstr "텍스트" + +#: builtin/fmt-merge-msg.c:674 +msgid "use <text> as start of message" +msgstr "<텍스트>를 시작 메시지로 사용합니다" + +#: builtin/fmt-merge-msg.c:675 +msgid "file to read from" +msgstr "읽어들일 파일" + +#: builtin/for-each-ref.c:9 +msgid "git for-each-ref [<options>] [<pattern>]" +msgstr "git for-each-ref [<옵션>] [<패턴>]" + +#: builtin/for-each-ref.c:10 +msgid "git for-each-ref [--points-at <object>]" +msgstr "git for-each-ref [--points-at <오브젝트>]" + +#: builtin/for-each-ref.c:11 +msgid "git for-each-ref [(--merged | --no-merged) [<object>]]" +msgstr "git for-each-ref [(--merged | --no-merged) [<오브젝트>]]" + +#: builtin/for-each-ref.c:12 +msgid "git for-each-ref [--contains [<object>]]" +msgstr "git for-each-ref [--contains [<오브젝트>]]" + +#: builtin/for-each-ref.c:27 +msgid "quote placeholders suitably for shells" +msgstr "셸에 적합하게 플레이스홀더를 인용합니다" + +#: builtin/for-each-ref.c:29 +msgid "quote placeholders suitably for perl" +msgstr "펄에 적합하게 플레이스홀더를 인용합니다" + +#: builtin/for-each-ref.c:31 +msgid "quote placeholders suitably for python" +msgstr "파이썬에 적합하게 플레이스홀더를 인용합니다" + +#: builtin/for-each-ref.c:33 +msgid "quote placeholders suitably for Tcl" +msgstr "티클에 적합하게 플레이스홀더를 인용합니다" + +#: builtin/for-each-ref.c:36 +msgid "show only <n> matched refs" +msgstr "<n>개의 해당하는 레퍼런스만 표시합니다" + +#: builtin/for-each-ref.c:37 builtin/tag.c:372 +msgid "format to use for the output" +msgstr "출력에 사용할 형식" + +#: builtin/for-each-ref.c:41 +msgid "print only refs which points at the given object" +msgstr "주어진 오브젝트를 가리키는 레퍼런스만 표시합니다" + +#: builtin/for-each-ref.c:43 +msgid "print only refs that are merged" +msgstr "병합하는 레퍼런스만 표시합니다" + +#: builtin/for-each-ref.c:44 +msgid "print only refs that are not merged" +msgstr "병합하지 않는 레퍼런스만 표시합니다" + +#: builtin/for-each-ref.c:45 +msgid "print only refs which contain the commit" +msgstr "커밋이 포함된 레퍼런스만 표시합니다" + +#: builtin/fsck.c:156 builtin/prune.c:140 +msgid "Checking connectivity" +msgstr "연결을 확인하는 중입니다" + +#: builtin/fsck.c:486 +msgid "Checking object directories" +msgstr "오브젝트 디렉터리를 확인하는 중입니다" + +#: builtin/fsck.c:553 +msgid "git fsck [<options>] [<object>...]" +msgstr "git fsck [<옵션>] [<오브젝트>...]" + +#: builtin/fsck.c:559 +msgid "show unreachable objects" +msgstr "점근할 수 없는 오브젝트를 표시합니다" + +#: builtin/fsck.c:560 +msgid "show dangling objects" +msgstr "연결이 끊어진 오브젝트를 표시합니다" + +#: builtin/fsck.c:561 +msgid "report tags" +msgstr "태그를 알립니다" + +#: builtin/fsck.c:562 +msgid "report root nodes" +msgstr "최상위 노드를 알립니다" + +#: builtin/fsck.c:563 +msgid "make index objects head nodes" +msgstr "인덱스 오브젝트 헤드 노드를 만듭니다" + +#: builtin/fsck.c:564 +msgid "make reflogs head nodes (default)" +msgstr "reflog 헤드 노드를 만듭니다 (기본값)" + +#: builtin/fsck.c:565 +msgid "also consider packs and alternate objects" +msgstr "묶음과 보조 오브젝트도 만듭니다" + +#: builtin/fsck.c:566 +msgid "check only connectivity" +msgstr "연결만 확인합니다" + +#: builtin/fsck.c:567 +msgid "enable more strict checking" +msgstr "더 엄격하게 확인합니다" + +#: builtin/fsck.c:569 +msgid "write dangling objects in .git/lost-found" +msgstr ".git/lost-found 안에 연결이 끊어진 오브젝트를 씁니다" + +#: builtin/fsck.c:570 builtin/prune.c:107 +msgid "show progress" +msgstr "진행 상황을 표시합니다" + +#: builtin/fsck.c:631 +msgid "Checking objects" +msgstr "오브젝트를 확인합니다" + +#: builtin/gc.c:25 +msgid "git gc [<options>]" +msgstr "git gc [<옵션>]" + +#: builtin/gc.c:72 +#, c-format +msgid "Invalid %s: '%s'" +msgstr "잘못된 %s: '%s'" + +#: builtin/gc.c:139 +#, c-format +msgid "insanely long object directory %.*s" +msgstr "비정상적으로 긴 오브젝트 디렉터리 %.*s" + +#: builtin/gc.c:290 +#, c-format +msgid "" +"The last gc run reported the following. Please correct the root cause\n" +"and remove %s.\n" +"Automatic cleanup will not be performed until the file is removed.\n" +"\n" +"%s" +msgstr "" +"마지막 가비지컬렉터에서 다음을 알려왔습니다. 원인을 바로잡은\n" +"다음 %s 파일을 제거하십시오.\n" +"이 파일을 제거하기 전에는 자동 정리 작업을 수행하지 않습니다.\n" +"\n" +"%s" + +#: builtin/gc.c:327 +msgid "prune unreferenced objects" +msgstr "레퍼런스하지 않는 오브젝트를 잘라냅니다" + +#: builtin/gc.c:329 +msgid "be more thorough (increased runtime)" +msgstr "더 자세히 검사합니다 (실행 시간 늘어남)" + +#: builtin/gc.c:330 +msgid "enable auto-gc mode" +msgstr "자동 가비지컬렉터 모드를 사용합니다" + +#: builtin/gc.c:331 +msgid "force running gc even if there may be another gc running" +msgstr "이미 가비지컬렉터가 실행 중이더라도 강제로 가비지컬렉터를 실행합니다" + +#: builtin/gc.c:373 +#, c-format +msgid "Auto packing the repository in background for optimum performance.\n" +msgstr "최적 성능을 위해 백그라운드에서 자동으로 저장소의 묶음을 만듭니다.\n" + +#: builtin/gc.c:375 +#, c-format +msgid "Auto packing the repository for optimum performance.\n" +msgstr "최적 성능을 위해 자동으로 저장소의 묶음을 만듭니다.\n" + +#: builtin/gc.c:376 +#, c-format +msgid "See \"git help gc\" for manual housekeeping.\n" +msgstr "수동 관리 작업은 \"git help gc\" 내용을 참고하십시오.\n" + +#: builtin/gc.c:397 +#, c-format +msgid "" +"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)" +msgstr "가비지컬렉터가 이미 '%s' 컴퓨터에서 %<PRIuMAX> PID로 실행 중입니다 (아니면 --force를 사용하십시오)" + +#: builtin/gc.c:441 +msgid "" +"There are too many unreachable loose objects; run 'git prune' to remove them." +msgstr "느슨한 오브젝트가 너무 많습니다. 제거하려면 'git prune'을 실행하십시오." + +#: builtin/grep.c:23 +msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]" +msgstr "git grep [<옵션>] [-e] <패턴> [<리비전>...] [[--] <경로>...]" + +#: builtin/grep.c:218 +#, c-format +msgid "grep: failed to create thread: %s" +msgstr "grep: 스레드를 만드는데 실패했습니다: %s" + +#: builtin/grep.c:441 builtin/grep.c:476 +#, c-format +msgid "unable to read tree (%s)" +msgstr "트리를 읽을 수 없습니다 (%s)" + +#: builtin/grep.c:491 +#, c-format +msgid "unable to grep from object of type %s" +msgstr "종류가 %s인 오브젝트에서 grep을 할 수 없습니다" + +#: builtin/grep.c:547 +#, c-format +msgid "switch `%c' expects a numerical value" +msgstr "`%c' 옵션에는 숫자 값이 와야 합니다" + +#: builtin/grep.c:564 +#, c-format +msgid "cannot open '%s'" +msgstr "'%s'을(를) 열 수 없습니다" + +#: builtin/grep.c:633 +msgid "search in index instead of in the work tree" +msgstr "작업 폴더 대신에 인덱스에서 검색합니다" + +#: builtin/grep.c:635 +msgid "find in contents not managed by git" +msgstr "깃으로 관리하지 않은 내용에서 찾습니다" + +#: builtin/grep.c:637 +msgid "search in both tracked and untracked files" +msgstr "추적되는 파일과 추적되지 않는 파일 모두에서 검색합니다" + +#: builtin/grep.c:639 +msgid "ignore files specified via '.gitignore'" +msgstr "'.gitignore'로 지정한 파일을 무시합니다" + +#: builtin/grep.c:642 +msgid "show non-matching lines" +msgstr "일치하지 않는 줄을 표시합니다" + +#: builtin/grep.c:644 +msgid "case insensitive matching" +msgstr "대소문자 구별하지 않고 맞춥니다" + +#: builtin/grep.c:646 +msgid "match patterns only at word boundaries" +msgstr "단어 경계 부분에 대해서만 패턴을 맞춥니다" + +#: builtin/grep.c:648 +msgid "process binary files as text" +msgstr "바이너리 파일을 텍스트로 처리합니다" + +#: builtin/grep.c:650 +msgid "don't match patterns in binary files" +msgstr "바이너리 파일에서 패턴을 맞추지 않습니다" + +#: builtin/grep.c:653 +msgid "process binary files with textconv filters" +msgstr "textconv 필터를 사용해 바이너리 파일을 처리합니다" + +#: builtin/grep.c:655 +msgid "descend at most <depth> levels" +msgstr "최대 <깊이> 단계만큼 내려갑니다" + +#: builtin/grep.c:659 +msgid "use extended POSIX regular expressions" +msgstr "POSIX 확장 정규식을 사용합니다" + +#: builtin/grep.c:662 +msgid "use basic POSIX regular expressions (default)" +msgstr "기본 POSIX 정규식을 사용합니다 (기본값)" + +#: builtin/grep.c:665 +msgid "interpret patterns as fixed strings" +msgstr "패턴을 고정 문자열로 해석합니다" + +#: builtin/grep.c:668 +msgid "use Perl-compatible regular expressions" +msgstr "펄과 호환되는 정규식을 사용합니다" + +#: builtin/grep.c:671 +msgid "show line numbers" +msgstr "줄 번호를 표시합니다" + +#: builtin/grep.c:672 +msgid "don't show filenames" +msgstr "파일 이름을 표시하지 않습니다" + +#: builtin/grep.c:673 +msgid "show filenames" +msgstr "파일 이름을 표시합니다" + +#: builtin/grep.c:675 +msgid "show filenames relative to top directory" +msgstr "파일 이름을 최상위 디렉터리 상대 경로로 표시합니다" + +#: builtin/grep.c:677 +msgid "show only filenames instead of matching lines" +msgstr "일치하는 줄을 표시하지 않고 파일 이름만 표시합니다" + +#: builtin/grep.c:679 +msgid "synonym for --files-with-matches" +msgstr "--files-with-matches 옵션과 동일" + +#: builtin/grep.c:682 +msgid "show only the names of files without match" +msgstr "일치하지 않는 파일의 이름만 표시합니다" + +#: builtin/grep.c:684 +msgid "print NUL after filenames" +msgstr "파일 이름 다음에 NUL을 출력합니다" + +#: builtin/grep.c:686 +msgid "show the number of matches instead of matching lines" +msgstr "일치하는 줄을 표시하지 않고 일치하는 수를 표시합니다" + +#: builtin/grep.c:687 +msgid "highlight matches" +msgstr "일치하는 부분을 강조합니다" + +#: builtin/grep.c:689 +msgid "print empty line between matches from different files" +msgstr "다른 파일 사이에 일치하는 부분의 사이에 빈 줄을 출력합니다" + +#: builtin/grep.c:691 +msgid "show filename only once above matches from same file" +msgstr "같은 파일에서 여러 개가 일치하면 파일 이름을 한 번만 표시합니다" + +#: builtin/grep.c:694 +msgid "show <n> context lines before and after matches" +msgstr "일치하는 부분 앞뒤에 컨텍스트를 <n>줄 표시합니다" + +#: builtin/grep.c:697 +msgid "show <n> context lines before matches" +msgstr "일치하는 부분 앞에 컨텍스트를 <n>줄 표시합니다" + +#: builtin/grep.c:699 +msgid "show <n> context lines after matches" +msgstr "일치하는 부분 뒤에 컨텍스트를 <n>줄 표시합니다" + +#: builtin/grep.c:700 +msgid "shortcut for -C NUM" +msgstr "-C NUM 옵션의 줄임" + +#: builtin/grep.c:703 +msgid "show a line with the function name before matches" +msgstr "일치 항목 앞에 함수 이름 줄을 표시합니다" + +#: builtin/grep.c:705 +msgid "show the surrounding function" +msgstr "들어 있는 함수를 표시합니다" + +#: builtin/grep.c:708 +msgid "read patterns from file" +msgstr "파일에서 패턴을 읽습니다" + +#: builtin/grep.c:710 +msgid "match <pattern>" +msgstr "<패턴>과 일치" + +#: builtin/grep.c:712 +msgid "combine patterns specified with -e" +msgstr "-e 옵션으로 지정한 패턴을 결합합니다" + +#: builtin/grep.c:724 +msgid "indicate hit with exit status without output" +msgstr "출력하지 않고 일치하는 항목을 exit() 상태 번호로 리턴합니다" + +#: builtin/grep.c:726 +msgid "show only matches from files that match all patterns" +msgstr "모든 패턴과 일치하는 파일의 일치하는 부분만 표시합니다" + +#: builtin/grep.c:728 +msgid "show parse tree for grep expression" +msgstr "grep 표현식에 대한 파싱 트리를 표시합니다" + +#: builtin/grep.c:732 +msgid "pager" +msgstr "페이저" + +#: builtin/grep.c:732 +msgid "show matching files in the pager" +msgstr "일치하는 파일을 페이저 프로그램에서 표시합니다" + +#: builtin/grep.c:735 +msgid "allow calling of grep(1) (ignored by this build)" +msgstr "grep(1) 실행을 허용합니다 (이 빌드에서는 무시)" + +#: builtin/grep.c:793 +msgid "no pattern given." +msgstr "패턴을 지정하지 않았습니다." + +#: builtin/grep.c:851 +msgid "--open-files-in-pager only works on the worktree" +msgstr "--open-files-in-pager 옵션은 작업 폴더에서만 동작합니다" + +#: builtin/grep.c:877 +msgid "--cached or --untracked cannot be used with --no-index." +msgstr "--cached 또는 --untracked 옵션은 --no-index 옵션과 같이 쓸 수 없습니다." + +#: builtin/grep.c:882 +msgid "--no-index or --untracked cannot be used with revs." +msgstr "--no-index 또는 --untracked 옵션은 리비전과 같이 쓸 수 없습니다." + +#: builtin/grep.c:885 +msgid "--[no-]exclude-standard cannot be used for tracked contents." +msgstr "--[no-]exclude-standard 옵션은 추적되는 내용에 대해 쓸 수 없습니다." + +#: builtin/grep.c:893 +msgid "both --cached and trees are given." +msgstr "--cached 옵션과 트리를 모두 지정했습니다." + +#: builtin/hash-object.c:80 +msgid "" +"git hash-object [-t <type>] [-w] [--path=<file> | --no-filters] [--stdin] " +"[--] <file>..." +msgstr "" +"git hash-object [-t <종류>] [-w] [--path=<파일> | --no-filters] [--stdin] " +"[--] <파일>..." + +#: builtin/hash-object.c:81 +msgid "git hash-object --stdin-paths" +msgstr "git hash-object --stdin-paths" + +#: builtin/hash-object.c:92 +msgid "type" +msgstr "종류" + +#: builtin/hash-object.c:92 +msgid "object type" +msgstr "오브젝트 종류" + +#: builtin/hash-object.c:93 +msgid "write the object into the object database" +msgstr "오브젝트를 오브젝트 데이터베이스로 씁니다" + +#: builtin/hash-object.c:95 +msgid "read the object from stdin" +msgstr "표준 입력에서 오브젝트를 읽습니다" + +#: builtin/hash-object.c:97 +msgid "store file as is without filters" +msgstr "파일을 필터 없이 그대로 저장합니다" + +#: builtin/hash-object.c:98 +msgid "" +"just hash any random garbage to create corrupt objects for debugging Git" +msgstr "임의의 쓰레기 데이터를 해시해 손상된 오브젝트를 만듭니다 (디버깅용)" + +#: builtin/hash-object.c:99 +msgid "process file as it were from this path" +msgstr "파일이 이 경로에서 온 것처럼 처리합니다" + +#: builtin/help.c:41 +msgid "print all available commands" +msgstr "사용 가능한 모든 명령의 목록을 표시합니다" + +#: builtin/help.c:42 +msgid "print list of useful guides" +msgstr "유용한 안내서 목록을 표시합니다" + +#: builtin/help.c:43 +msgid "show man page" +msgstr "맨 페이지를 표시합니다" + +#: builtin/help.c:44 +msgid "show manual in web browser" +msgstr "웹 브라우저에서 설명서를 표시합니다" + +#: builtin/help.c:46 +msgid "show info page" +msgstr "인포 페이지를 표시합니다" + +#: builtin/help.c:52 +msgid "git help [--all] [--guides] [--man | --web | --info] [<command>]" +msgstr "git help [--all] [--guides] [--man | --web | --info] [<명령>]" + +#: builtin/help.c:64 +#, c-format +msgid "unrecognized help format '%s'" +msgstr "'%s' 도움말 포맷을 인식할 수 없습니다" + +#: builtin/help.c:91 +msgid "Failed to start emacsclient." +msgstr "emacsclient 시작에 실패했습니다." + +#: builtin/help.c:104 +msgid "Failed to parse emacsclient version." +msgstr "emacsclient 버전 파싱에 실패했습니다." + +#: builtin/help.c:112 +#, c-format +msgid "emacsclient version '%d' too old (< 22)." +msgstr "emacsclient '%d' 버전은 너무 과거 (< 22) 버전입니다." + +#: builtin/help.c:130 builtin/help.c:151 builtin/help.c:160 builtin/help.c:168 +#, c-format +msgid "failed to exec '%s': %s" +msgstr "실행 실패: '%s': %s" + +#: builtin/help.c:208 +#, c-format +msgid "" +"'%s': path for unsupported man viewer.\n" +"Please consider using 'man.<tool>.cmd' instead." +msgstr "" +"'%s': 지원하지 않는 맨 페이지 보기 프로그램 경로.\n" +"대신에 'man.<도구>.cmd' 옵션을 사용해 보십시오." + +#: builtin/help.c:220 +#, c-format +msgid "" +"'%s': cmd for supported man viewer.\n" +"Please consider using 'man.<tool>.path' instead." +msgstr "" +"'%s': 지원하지 않는 맨 페이지 보기 프로그램 명령.\n" +"대신에 'man.<도구>.path' 옵션을 사용해 보십시오." + +#: builtin/help.c:337 +#, c-format +msgid "'%s': unknown man viewer." +msgstr "'%s': 알 수 없는 맨 페이지 보기 프로그램." + +#: builtin/help.c:354 +msgid "no man viewer handled the request" +msgstr "요청을 처리한 맨 페이지 보기 프로그램이 없습니다" + +#: builtin/help.c:362 +msgid "no info viewer handled the request" +msgstr "요청을 처리한 인포 페이지 보기 프로그램이 없습니다" + +#: builtin/help.c:411 +msgid "Defining attributes per path" +msgstr "경로마다 속성 정의하기" + +#: builtin/help.c:412 +msgid "Everyday Git With 20 Commands Or So" +msgstr "매일매일 사용하는 20개 내외의 깃 명령" + +#: builtin/help.c:413 +msgid "A Git glossary" +msgstr "깃 용어 사전" + +#: builtin/help.c:414 +msgid "Specifies intentionally untracked files to ignore" +msgstr "의도적으로 추적하지 않는 파일을 무시하게 지정하기" + +#: builtin/help.c:415 +msgid "Defining submodule properties" +msgstr "하위 모듈 속성 정의하기" + +#: builtin/help.c:416 +msgid "Specifying revisions and ranges for Git" +msgstr "깃의 리비전 및 범위를 지정하기" + +#: builtin/help.c:417 +msgid "A tutorial introduction to Git (for version 1.5.1 or newer)" +msgstr "깃 따라하기 안내서 (버전 1.5.1 이후)" + +#: builtin/help.c:418 +msgid "An overview of recommended workflows with Git" +msgstr "추천하는 깃 활용 작업 순서의 개요" + +#: builtin/help.c:430 +msgid "The common Git guides are:\n" +msgstr "자주 사용하는 깃 안내서는 다음과 같습니다:\n" + +#: builtin/help.c:451 builtin/help.c:468 +#, c-format +msgid "usage: %s%s" +msgstr "사용법: %s%s" + +#: builtin/help.c:484 +#, c-format +msgid "`git %s' is aliased to `%s'" +msgstr "`git %s' 명령은 `%s' 명령의 단축입니다" + +#: builtin/index-pack.c:152 +#, c-format +msgid "unable to open %s" +msgstr "%s을(를) 열 수 없습니다" + +#: builtin/index-pack.c:202 +#, c-format +msgid "object type mismatch at %s" +msgstr "오브젝트 종류가 맞지 않습니다 (%s)" + +#: builtin/index-pack.c:222 +#, c-format +msgid "did not receive expected object %s" +msgstr "예상한 %s 오브젝트를 받지 않았습니다" + +#: builtin/index-pack.c:225 +#, c-format +msgid "object %s: expected type %s, found %s" +msgstr "%s 오브젝트: 예상한 종류 %s, 실제 %s" + +#: builtin/index-pack.c:267 +#, c-format +msgid "cannot fill %d byte" +msgid_plural "cannot fill %d bytes" +msgstr[0] "%d 바이트를 채울 수 없습니다" + +#: builtin/index-pack.c:277 +msgid "early EOF" +msgstr "너무 빨리 파일이 끝남" + +#: builtin/index-pack.c:278 +msgid "read error on input" +msgstr "입력에 읽기 오류" + +#: builtin/index-pack.c:290 +msgid "used more bytes than were available" +msgstr "있는 바이트보다 더 많이 사용합니다" + +#: builtin/index-pack.c:297 +msgid "pack too large for current definition of off_t" +msgstr "현재 정의된 off_t에 비해 묶음이 너무 큽니다" + +#: builtin/index-pack.c:313 +#, c-format +msgid "unable to create '%s'" +msgstr "'%s'을(를) 만들 수 없습니다" + +#: builtin/index-pack.c:318 +#, c-format +msgid "cannot open packfile '%s'" +msgstr "'%s' 묶음 파일을 열 수 없습니다" + +#: builtin/index-pack.c:332 +msgid "pack signature mismatch" +msgstr "묶음 서명이 맞지 않습니다" + +#: builtin/index-pack.c:334 +#, c-format +msgid "pack version %<PRIu32> unsupported" +msgstr "묶음의 %<PRIu32> 버전을 지원하지 않습니다" + +#: builtin/index-pack.c:352 +#, c-format +msgid "pack has bad object at offset %lu: %s" +msgstr "묶음의 %lu 오프셋에 잘못된 오브젝트가 있습니다: %s" + +#: builtin/index-pack.c:473 +#, c-format +msgid "inflate returned %d" +msgstr "inflate가 %d번을 리턴했습니다" + +#: builtin/index-pack.c:522 +msgid "offset value overflow for delta base object" +msgstr "델타 베이스 오브젝트에 대해 오프셋 값이 오버플로우" + +#: builtin/index-pack.c:530 +msgid "delta base offset is out of bound" +msgstr "델타 베이스 오프셋이 범위를 벗어났습니다" + +#: builtin/index-pack.c:538 +#, c-format +msgid "unknown object type %d" +msgstr "알 수 없는 오브젝트 종류 %d번" + +#: builtin/index-pack.c:569 +msgid "cannot pread pack file" +msgstr "묶음 파일에 대해 pread를 할 수 없습니다" + +#: builtin/index-pack.c:571 +#, c-format +msgid "premature end of pack file, %lu byte missing" +msgid_plural "premature end of pack file, %lu bytes missing" +msgstr[0] "묶음 파일이 너무 일찍 끝남. %lu 바이트 부족" + +#: builtin/index-pack.c:597 +msgid "serious inflate inconsistency" +msgstr "심각한 inflate 부조화" + +#: builtin/index-pack.c:743 builtin/index-pack.c:749 builtin/index-pack.c:772 +#: builtin/index-pack.c:806 builtin/index-pack.c:815 +#, c-format +msgid "SHA1 COLLISION FOUND WITH %s !" +msgstr "SHA1 충돌이 %s에서 발견되었습니다!" + +#: builtin/index-pack.c:746 builtin/pack-objects.c:162 +#: builtin/pack-objects.c:254 +#, c-format +msgid "unable to read %s" +msgstr "%s을(를) 읽을 수 없습니다" + +#: builtin/index-pack.c:812 +#, c-format +msgid "cannot read existing object %s" +msgstr "기존 %s 오브젝트를 읽을 수 없습니다" + +#: builtin/index-pack.c:826 +#, c-format +msgid "invalid blob object %s" +msgstr "잘못된 블롭 오브젝트 %s" + +#: builtin/index-pack.c:840 +#, c-format +msgid "invalid %s" +msgstr "잘못된 %s" + +#: builtin/index-pack.c:843 +msgid "Error in object" +msgstr "오브젝트에 오류" + +#: builtin/index-pack.c:845 +#, c-format +msgid "Not all child objects of %s are reachable" +msgstr "%s의 모든 하위 오브젝트에 접근할 수 없습니다" + +#: builtin/index-pack.c:917 builtin/index-pack.c:948 +msgid "failed to apply delta" +msgstr "델타를 적용하는데 실패했습니다" + +#: builtin/index-pack.c:1118 +msgid "Receiving objects" +msgstr "오브젝트를 받는 중" + +#: builtin/index-pack.c:1118 +msgid "Indexing objects" +msgstr "오브젝트 인덱스를 만드는 중" + +#: builtin/index-pack.c:1150 +msgid "pack is corrupted (SHA1 mismatch)" +msgstr "묶음이 손상되었습니다 (SHA1 일치하지 않음)" + +#: builtin/index-pack.c:1155 +msgid "cannot fstat packfile" +msgstr "묶음 파일에 대해 fstat()할 수 없습니다" + +#: builtin/index-pack.c:1158 +msgid "pack has junk at the end" +msgstr "묶음의 끝에 쓰레기 데이터가 있습니다" + +#: builtin/index-pack.c:1169 +msgid "confusion beyond insanity in parse_pack_objects()" +msgstr "parse_pack_objects()에서 극심한 혼란" + +#: builtin/index-pack.c:1194 +msgid "Resolving deltas" +msgstr "델타를 알아내는 중" + +#: builtin/index-pack.c:1205 +#, c-format +msgid "unable to create thread: %s" +msgstr "스레드를 만들 수 없습니다: %s" + +#: builtin/index-pack.c:1247 +msgid "confusion beyond insanity" +msgstr "극심한 혼란" + +#: builtin/index-pack.c:1253 +#, c-format +msgid "completed with %d local objects" +msgstr "로컬 오브젝트 %d개 마침" + +#: builtin/index-pack.c:1263 +#, c-format +msgid "Unexpected tail checksum for %s (disk corruption?)" +msgstr "%s에 대해 예상치 못한 테일 체크섬 (디스크 손상?)" + +#: builtin/index-pack.c:1267 +#, c-format +msgid "pack has %d unresolved delta" +msgid_plural "pack has %d unresolved deltas" +msgstr[0] "묶음에 알아내지 못한 델타 %d개가 있습니다" + +#: builtin/index-pack.c:1291 +#, c-format +msgid "unable to deflate appended object (%d)" +msgstr "추가한 오브젝트를 deflate할 수 없습니다 (%d)" + +#: builtin/index-pack.c:1367 +#, c-format +msgid "local object %s is corrupt" +msgstr "%s 로컬 오브젝트가 손상되었습니다" + +#: builtin/index-pack.c:1391 +msgid "error while closing pack file" +msgstr "묶음 파일을 닫는데 오류" + +#: builtin/index-pack.c:1404 +#, c-format +msgid "cannot write keep file '%s'" +msgstr "'%s' 보존 파일을 쓸 수 없습니다" + +#: builtin/index-pack.c:1412 +#, c-format +msgid "cannot close written keep file '%s'" +msgstr "쓴 '%s' 보존 파일을 닫지 못했습니다" + +#: builtin/index-pack.c:1425 +msgid "cannot store pack file" +msgstr "묶음 파일을 저장할 수 없습니다" + +#: builtin/index-pack.c:1436 +msgid "cannot store index file" +msgstr "인덱스 파일을 저장할 수 없습니다" + +#: builtin/index-pack.c:1469 +#, c-format +msgid "bad pack.indexversion=%<PRIu32>" +msgstr "잘못된 pack.indexversion=%<PRIu32>" + +#: builtin/index-pack.c:1475 +#, c-format +msgid "invalid number of threads specified (%d)" +msgstr "잘못된 스레드 수를 지정했습니다 (%d)" + +#: builtin/index-pack.c:1479 builtin/index-pack.c:1663 +#, c-format +msgid "no threads support, ignoring %s" +msgstr "스레드 기능이 없습니다. %s 무시" + +#: builtin/index-pack.c:1537 +#, c-format +msgid "Cannot open existing pack file '%s'" +msgstr "기존 '%s' 묶음 파일을 열 수 없습니다" + +#: builtin/index-pack.c:1539 +#, c-format +msgid "Cannot open existing pack idx file for '%s'" +msgstr "'%s'에 대한 기존 묶음 idx 파일을 열 수 없습니다" + +#: builtin/index-pack.c:1586 +#, c-format +msgid "non delta: %d object" +msgid_plural "non delta: %d objects" +msgstr[0] "델타 아님: 오브젝트 %d개" + +#: builtin/index-pack.c:1593 +#, c-format +msgid "chain length = %d: %lu object" +msgid_plural "chain length = %d: %lu objects" +msgstr[0] "체인 길이 = %d: 오브젝트 %lu개" + +#: builtin/index-pack.c:1623 +msgid "Cannot come back to cwd" +msgstr "현재 디렉터리로 돌아올 수 없습니다" + +#: builtin/index-pack.c:1675 builtin/index-pack.c:1678 +#: builtin/index-pack.c:1690 builtin/index-pack.c:1694 +#, c-format +msgid "bad %s" +msgstr "잘못된 %s" + +#: builtin/index-pack.c:1708 +msgid "--fix-thin cannot be used without --stdin" +msgstr "--fix-thin 옵션은 --stdin 옵션과 같이 쓸 수 없습니다" + +#: builtin/index-pack.c:1712 builtin/index-pack.c:1721 +#, c-format +msgid "packfile name '%s' does not end with '.pack'" +msgstr "'%s' 묶음파일 이름이 '.pack'으로 끝나지 않습니다" + +#: builtin/index-pack.c:1729 +msgid "--verify with no packfile name given" +msgstr "--verify 옵션에 묶음파일 이름을 지정하지 않았습니다" + +#: builtin/init-db.c:55 +#, c-format +msgid "cannot stat '%s'" +msgstr "'%s'을(를) stat()할 수 없습니다" + +#: builtin/init-db.c:61 +#, c-format +msgid "cannot stat template '%s'" +msgstr "'%s' 서식을 stat()할 수 없습니다" + +#: builtin/init-db.c:66 +#, c-format +msgid "cannot opendir '%s'" +msgstr "'%s'을(를) opendir()할 수 없습니다" + +#: builtin/init-db.c:77 +#, c-format +msgid "cannot readlink '%s'" +msgstr "'%s'을(를) readlink()할 수 없습니다" + +#: builtin/init-db.c:79 +#, c-format +msgid "cannot symlink '%s' '%s'" +msgstr "'%s'을(를) '%s'에 symlink()할 수 없습니다" + +#: builtin/init-db.c:85 +#, c-format +msgid "cannot copy '%s' to '%s'" +msgstr "'%s'을(를) '%s'에 복사할 수 없습니다" + +#: builtin/init-db.c:89 +#, c-format +msgid "ignoring template %s" +msgstr "%s 서식을 무시합니다" + +#: builtin/init-db.c:118 +#, c-format +msgid "templates not found %s" +msgstr "%s에 서식이 없습니다" + +#: builtin/init-db.c:131 +#, c-format +msgid "not copying templates of a wrong format version %d from '%s'" +msgstr "'%2$s'에서 잘못된 형식 버전 %1$d의 서식을 복사하지 않습니다" + +#: builtin/init-db.c:309 builtin/init-db.c:312 +#, c-format +msgid "%s already exists" +msgstr "%s 파일이 이미 있습니다" + +#: builtin/init-db.c:340 +#, c-format +msgid "unable to handle file type %d" +msgstr "파일 종류 %d번을 처리할 수 없습니다" + +#: builtin/init-db.c:343 +#, c-format +msgid "unable to move %s to %s" +msgstr "%s을(를) %s(으)로 옮길 수 없습니다" + +#. TRANSLATORS: The first '%s' is either "Reinitialized +#. existing" or "Initialized empty", the second " shared" or +#. "", and the last '%s%s' is the verbatim directory name. +#: builtin/init-db.c:399 +#, c-format +msgid "%s%s Git repository in %s%s\n" +msgstr "%s%s 깃 저장소, 위치 %s%s\n" + +#: builtin/init-db.c:400 +msgid "Reinitialized existing" +msgstr "다시 초기화: 기존" + +#: builtin/init-db.c:400 +msgid "Initialized empty" +msgstr "초기화: 빈" + +#: builtin/init-db.c:401 +msgid " shared" +msgstr " 공유" + +#: builtin/init-db.c:448 +msgid "" +"git init [-q | --quiet] [--bare] [--template=<template-directory>] [--" +"shared[=<permissions>]] [<directory>]" +msgstr "" +"git init [-q | --quiet] [--bare] [--template=<서식-디렉터리>] [--shared[=<권" +"한>]] [<디렉터리>]" + +#: builtin/init-db.c:471 +msgid "permissions" +msgstr "권한" + +#: builtin/init-db.c:472 +msgid "specify that the git repository is to be shared amongst several users" +msgstr "깃 저장소를 다른 사용자가 공유할 수 있게 지정" + +#: builtin/init-db.c:506 builtin/init-db.c:511 +#, c-format +msgid "cannot mkdir %s" +msgstr "%s에 대해 mkdir를 할 수 없습니다" + +#: builtin/init-db.c:515 +#, c-format +msgid "cannot chdir to %s" +msgstr "%s에 대해 chdir를 할 수 없습니다" + +#: builtin/init-db.c:536 +#, c-format +msgid "" +"%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-" +"dir=<directory>)" +msgstr "" +"%s (또는 --work-tree=<디렉터리>) 허용되지 않음. %s (또는 --git-" +"dir=<directory>) 지정이 없으면" + +#: builtin/init-db.c:564 +#, c-format +msgid "Cannot access work tree '%s'" +msgstr "작업 폴더 '%s'에 접근할 수 없습니다" + +#: builtin/interpret-trailers.c:15 +msgid "" +"git interpret-trailers [--trim-empty] [(--trailer <token>[(=|:)<value>])...] " +"[<file>...]" +msgstr "" +"git interpret-trailers [--trim-empty] [(--trailer <토큰>[(=|:)<값>])...] [<파" +"일>...]" + +#: builtin/interpret-trailers.c:25 +msgid "trim empty trailers" +msgstr "빈 트레일러를 잘라냅니다" + +#: builtin/interpret-trailers.c:26 +msgid "trailer" +msgstr "트레일러" + +#: builtin/interpret-trailers.c:27 +msgid "trailer(s) to add" +msgstr "추가할 트레일러" + +#: builtin/log.c:43 +msgid "git log [<options>] [<revision-range>] [[--] <path>...]" +msgstr "git log [<옵션>] [<리비전-범위>] [[--] <경로>...]" + +#: builtin/log.c:44 +msgid "git show [<options>] <object>..." +msgstr "git show [<옵션>] <오브젝트>..." + +#: builtin/log.c:83 +#, c-format +msgid "invalid --decorate option: %s" +msgstr "잘못된 --decorate 옵션: %s" + +#: builtin/log.c:131 +msgid "suppress diff output" +msgstr "diff를 출력하지 않습니다" + +#: builtin/log.c:132 +msgid "show source" +msgstr "소스를 표시합니다" + +#: builtin/log.c:133 +msgid "Use mail map file" +msgstr "메일 맵 파일을 사용합니다" + +#: builtin/log.c:134 +msgid "decorate options" +msgstr "꾸미기 옵션" + +#: builtin/log.c:137 +msgid "Process line range n,m in file, counting from 1" +msgstr "파일에서 n,m 범위의 줄을 처리합니다 (1부터 시작)" + +#: builtin/log.c:233 +#, c-format +msgid "Final output: %d %s\n" +msgstr "최종 출력: %d %s\n" + +#: builtin/log.c:465 +#, c-format +msgid "git show %s: bad file" +msgstr "git show %s: 잘못된 파일" + +#: builtin/log.c:479 builtin/log.c:572 +#, c-format +msgid "Could not read object %s" +msgstr "%s 오브젝트를 읽을 수 없습니다" + +#: builtin/log.c:596 +#, c-format +msgid "Unknown type: %d" +msgstr "알 수 없는 종류: %d" + +#: builtin/log.c:714 +msgid "format.headers without value" +msgstr "format.headers 설정에 값이 없음" + +#: builtin/log.c:798 +msgid "name of output directory is too long" +msgstr "출력 디렉터리의 이름이 너무 깁니다" + +#: builtin/log.c:813 +#, c-format +msgid "Cannot open patch file %s" +msgstr "%s 패치 파일을 열 수 없습니다" + +#: builtin/log.c:827 +msgid "Need exactly one range." +msgstr "정확히 하나의 범위가 필요합니다." + +#: builtin/log.c:837 +msgid "Not a range." +msgstr "범위가 아닙니다." + +#: builtin/log.c:943 +msgid "Cover letter needs email format" +msgstr "커버레터는 전자메일 형식이어야 합니다" + +#: builtin/log.c:1022 +#, c-format +msgid "insane in-reply-to: %s" +msgstr "정신나간 in-reply-to 헤더: %s" + +#: builtin/log.c:1050 +msgid "git format-patch [<options>] [<since> | <revision-range>]" +msgstr "git format-patch [<옵션>] [<시작시각> | <리비전-범위>]" + +#: builtin/log.c:1095 +msgid "Two output directories?" +msgstr "출력 디렉터리가 두개?" + +#: builtin/log.c:1211 +msgid "use [PATCH n/m] even with a single patch" +msgstr "하나의 패치에 대해서도 [PATCh n/m]을 붙입니다" + +#: builtin/log.c:1214 +msgid "use [PATCH] even with multiple patches" +msgstr "여러 개 패치에 대해서도 [PATCH]를 붙입니다" + +#: builtin/log.c:1218 +msgid "print patches to standard out" +msgstr "패치를 표준 출력으로 표시합니다" + +#: builtin/log.c:1220 +msgid "generate a cover letter" +msgstr "커버레터를 만듭니다" + +#: builtin/log.c:1222 +msgid "use simple number sequence for output file names" +msgstr "출력 파일 이름에 간단한 일련 번호를 사용합니다" + +#: builtin/log.c:1223 +msgid "sfx" +msgstr "확장자" + +#: builtin/log.c:1224 +msgid "use <sfx> instead of '.patch'" +msgstr "'.patch' 대신 <확장자>를 사용합니다" + +#: builtin/log.c:1226 +msgid "start numbering patches at <n> instead of 1" +msgstr "패치 번호를 1 대신 <n>에서 시작합니다" + +#: builtin/log.c:1228 +msgid "mark the series as Nth re-roll" +msgstr "시리즈를 N번째 re-roll로 표시합니다" + +#: builtin/log.c:1230 +msgid "Use [<prefix>] instead of [PATCH]" +msgstr "[PATCH] 대신 [<접두어>]를 사용합니다" + +#: builtin/log.c:1233 +msgid "store resulting files in <dir>" +msgstr "결과 파일을 <디렉터리>에 저장합니다" + +#: builtin/log.c:1236 +msgid "don't strip/add [PATCH]" +msgstr "[PATCH]를 자르거나 추가하지 않습니다" + +#: builtin/log.c:1239 +msgid "don't output binary diffs" +msgstr "바이너리 diff를 만들지 않습니다" + +#: builtin/log.c:1241 +msgid "output all-zero hash in From header" +msgstr "From 헤더에서 모두 0인 해시를 출력합니다" + +#: builtin/log.c:1243 +msgid "don't include a patch matching a commit upstream" +msgstr "업스트림에 있는 패치를 포함하지 않습니다" + +#: builtin/log.c:1245 +msgid "show patch format instead of default (patch + stat)" +msgstr "기본값 (패치 + 통계) 대신 패치 형식을 표시합니다" + +#: builtin/log.c:1247 +msgid "Messaging" +msgstr "메시징" + +#: builtin/log.c:1248 +msgid "header" +msgstr "헤더" + +#: builtin/log.c:1249 +msgid "add email header" +msgstr "전자메일 헤더" + +#: builtin/log.c:1250 builtin/log.c:1252 +msgid "email" +msgstr "전자메일" + +#: builtin/log.c:1250 +msgid "add To: header" +msgstr "To: 헤더를 추가합니다" + +#: builtin/log.c:1252 +msgid "add Cc: header" +msgstr "Cc: 헤더를 추가합니다" + +#: builtin/log.c:1254 +msgid "ident" +msgstr "신원" + +#: builtin/log.c:1255 +msgid "set From address to <ident> (or committer ident if absent)" +msgstr "<신원>에서 From 주소를 설정합니다 (없으면 커미터 주소 신원 사용)" + +#: builtin/log.c:1257 +msgid "message-id" +msgstr "메시지-ID" + +#: builtin/log.c:1258 +msgid "make first mail a reply to <message-id>" +msgstr "첫 메일을 <메시지-ID>에 대한 답장 메일로 만듭니다" + +#: builtin/log.c:1259 builtin/log.c:1262 +msgid "boundary" +msgstr "경계" + +#: builtin/log.c:1260 +msgid "attach the patch" +msgstr "패치를 첨부합니다" + +#: builtin/log.c:1263 +msgid "inline the patch" +msgstr "패치를 본문에 포함합니다" + +#: builtin/log.c:1267 +msgid "enable message threading, styles: shallow, deep" +msgstr "메시지에 스레드를 사용, 스타일: shallow, deep" + +#: builtin/log.c:1269 +msgid "signature" +msgstr "서명" + +#: builtin/log.c:1270 +msgid "add a signature" +msgstr "서명을 추가합니다" + +#: builtin/log.c:1272 +msgid "add a signature from a file" +msgstr "파일에서 서명을 추가합니다" + +#: builtin/log.c:1273 +msgid "don't print the patch filenames" +msgstr "패치 파일 이름을 표시하지 않습니다" + +#: builtin/log.c:1362 +msgid "-n and -k are mutually exclusive." +msgstr "-n 및 -k 옵션은 하나만 써야 합니다." + +#: builtin/log.c:1364 +msgid "--subject-prefix and -k are mutually exclusive." +msgstr "--subject-prefix 및 -k 옵션은 하나만 써야 합니다." + +#: builtin/log.c:1372 +msgid "--name-only does not make sense" +msgstr "--name-only 옵션은 앞뒤가 맞지 않습니다" + +#: builtin/log.c:1374 +msgid "--name-status does not make sense" +msgstr "--name-status 옵션은 앞뒤가 맞지 않습니다" + +#: builtin/log.c:1376 +msgid "--check does not make sense" +msgstr "--check 옵션은 앞뒤가 맞지 않습니다" + +#: builtin/log.c:1401 +msgid "standard output, or directory, which one?" +msgstr "표준 출력이나 디렉터리 중에 하나만 지정해야 합니다." + +#: builtin/log.c:1403 +#, c-format +msgid "Could not create directory '%s'" +msgstr "'%s' 디렉터리를 만들 수 없습니다" + +#: builtin/log.c:1500 +#, c-format +msgid "unable to read signature file '%s'" +msgstr "'%s' 서명 파일을 읽을 수 없습니다" + +#: builtin/log.c:1563 +msgid "Failed to create output files" +msgstr "출력 파일을 만드는데 실패했습니다" + +#: builtin/log.c:1611 +msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]" +msgstr "git cherry [-v] [<업스트림> [<헤드> [<한계값>]]]" + +#: builtin/log.c:1665 +#, c-format +msgid "" +"Could not find a tracked remote branch, please specify <upstream> manually.\n" +msgstr "추적되는 리모트 브랜치를 찾을 수 없습니다. <업스트림>을 수동으로 지정하십시오.\n" + +#: builtin/log.c:1676 builtin/log.c:1678 builtin/log.c:1690 +#, c-format +msgid "Unknown commit %s" +msgstr "알 수 없는 커밋 %s" + +#: builtin/ls-files.c:358 +msgid "git ls-files [<options>] [<file>...]" +msgstr "git ls-files [<옵션>] [<파일>...]" + +#: builtin/ls-files.c:415 +msgid "identify the file status with tags" +msgstr "파일 상태를 태그와 같이 표시합니다" + +#: builtin/ls-files.c:417 +msgid "use lowercase letters for 'assume unchanged' files" +msgstr "'변경되지 않았다고 가정' 파일에 소문자를 사용합니다" + +#: builtin/ls-files.c:419 +msgid "show cached files in the output (default)" +msgstr "출력에 캐시된 파일을 표시합니다 (기본값)" + +#: builtin/ls-files.c:421 +msgid "show deleted files in the output" +msgstr "출력에 삭제된 파일을 표시합니다" + +#: builtin/ls-files.c:423 +msgid "show modified files in the output" +msgstr "출력에 수정된 파일을 표시합니다" + +#: builtin/ls-files.c:425 +msgid "show other files in the output" +msgstr "출력에 기타 파일을 표시합니다" + +#: builtin/ls-files.c:427 +msgid "show ignored files in the output" +msgstr "출력에 무시된 파일을 표시합니다" + +#: builtin/ls-files.c:430 +msgid "show staged contents' object name in the output" +msgstr "출력에 커밋 표시된 내용의 오브젝트 이름을 표시합니다" + +#: builtin/ls-files.c:432 +msgid "show files on the filesystem that need to be removed" +msgstr "파일 시스템에서 제거해야 하는 파일을 표시합니다" + +#: builtin/ls-files.c:434 +msgid "show 'other' directories' names only" +msgstr "기타 디렉터리의 이름만 표시합니다" + +#: builtin/ls-files.c:437 +msgid "don't show empty directories" +msgstr "빈 디렉터리 표시하지 않기" + +#: builtin/ls-files.c:440 +msgid "show unmerged files in the output" +msgstr "출력에 병합하지 않은 파일을 표시합니다" + +#: builtin/ls-files.c:442 +msgid "show resolve-undo information" +msgstr "resolve-undo 정보를 표시합니다" + +#: builtin/ls-files.c:444 +msgid "skip files matching pattern" +msgstr "패턴에 일치하는 파일을 건너뜁니다" + +#: builtin/ls-files.c:447 +msgid "exclude patterns are read from <file>" +msgstr "제외할 패턴을 <파일>에서 읽습니다" + +#: builtin/ls-files.c:450 +msgid "read additional per-directory exclude patterns in <file>" +msgstr "<파일>에서 추가적인 디렉토리별 제외 패턴을 읽습니다" + +#: builtin/ls-files.c:452 +msgid "add the standard git exclusions" +msgstr "표준 깃 제외 패턴을 추가합니다" + +#: builtin/ls-files.c:455 +msgid "make the output relative to the project top directory" +msgstr "최상위 디렉토리 상대 경로로 출력합니다" + +#: builtin/ls-files.c:458 +msgid "if any <file> is not in the index, treat this as an error" +msgstr "<파일>이 인덱스 안에 없으면 오류로 취급합니다" + +#: builtin/ls-files.c:459 +msgid "tree-ish" +msgstr "트리-따위" + +#: builtin/ls-files.c:460 +msgid "pretend that paths removed since <tree-ish> are still present" +msgstr "<트리-따위> 뒤로 제거한 경로가 있다고 가정합니다" + +#: builtin/ls-files.c:462 +msgid "show debugging data" +msgstr "디버깅 데이터를 표시합니다" + +#: builtin/ls-tree.c:28 +msgid "git ls-tree [<options>] <tree-ish> [<path>...]" +msgstr "git ls-tree [<옵션>] <트리-따위> [<경로>...]" + +#: builtin/ls-tree.c:128 +msgid "only show trees" +msgstr "트리만 표시" + +#: builtin/ls-tree.c:130 +msgid "recurse into subtrees" +msgstr "하위 트리로 재귀적으로 적용" + +#: builtin/ls-tree.c:132 +msgid "show trees when recursing" +msgstr "재귀적으로 적용할 때 트리 표시" + +#: builtin/ls-tree.c:135 +msgid "terminate entries with NUL byte" +msgstr "항목을 NUL 바이트로 끝냅니다" + +#: builtin/ls-tree.c:136 +msgid "include object size" +msgstr "오브젝트 크기 포함" + +#: builtin/ls-tree.c:138 builtin/ls-tree.c:140 +msgid "list only filenames" +msgstr "파일 이름만 목록 표시" + +#: builtin/ls-tree.c:143 +msgid "use full path names" +msgstr "전체 경로 이름 사용" + +#: builtin/ls-tree.c:145 +msgid "list entire tree; not just current directory (implies --full-name)" +msgstr "전체 트리 목록 표시, 현재 디렉터리만 아니라 (--full-name 옵션 포함)" + +#: builtin/merge.c:45 +msgid "git merge [<options>] [<commit>...]" +msgstr "git merge [<옵션>] [<커밋>...]" + +#: builtin/merge.c:46 +msgid "git merge [<options>] <msg> HEAD <commit>" +msgstr "git merge [<옵션>] <메시지> HEAD <커밋>" + +#: builtin/merge.c:47 +msgid "git merge --abort" +msgstr "git merge --abort" + +#: builtin/merge.c:100 +msgid "switch `m' requires a value" +msgstr "`m' 옵션에는 값이 필요합니다" + +#: builtin/merge.c:137 +#, c-format +msgid "Could not find merge strategy '%s'.\n" +msgstr "'%s' 병합 전략을 찾을 수 없습니다.\n" + +#: builtin/merge.c:138 +#, c-format +msgid "Available strategies are:" +msgstr "사용 가능한 전략은:" + +#: builtin/merge.c:143 +#, c-format +msgid "Available custom strategies are:" +msgstr "사용 가능한 사용자 설정 전략은:" + +#: builtin/merge.c:193 builtin/pull.c:119 +msgid "do not show a diffstat at the end of the merge" +msgstr "병합이 끝날 때 diffstat을 표시하지 않습니다" + +#: builtin/merge.c:196 builtin/pull.c:122 +msgid "show a diffstat at the end of the merge" +msgstr "병합이 끝날 때 diffstat을 표시합니다" + +#: builtin/merge.c:197 builtin/pull.c:125 +msgid "(synonym to --stat)" +msgstr "(--stat 옵션과 동일)" + +#: builtin/merge.c:199 builtin/pull.c:128 +msgid "add (at most <n>) entries from shortlog to merge commit message" +msgstr "병합 커밋의 메시지에 shortlog 항목을 (최대 <n>개) 추가합니다" + +#: builtin/merge.c:202 builtin/pull.c:131 +msgid "create a single commit instead of doing a merge" +msgstr "병합하는 대신 하나의 커밋을 만듭니다" + +#: builtin/merge.c:204 builtin/pull.c:134 +msgid "perform a commit if the merge succeeds (default)" +msgstr "병합이 성공하면 커밋을 합니다 (기본값)" + +#: builtin/merge.c:206 builtin/pull.c:137 +msgid "edit message before committing" +msgstr "커밋 전에 메시지를 편집합니다" + +#: builtin/merge.c:207 +msgid "allow fast-forward (default)" +msgstr "정방향 진행을 허용합니다 (기본값)" + +#: builtin/merge.c:209 builtin/pull.c:143 +msgid "abort if fast-forward is not possible" +msgstr "정방향 진행이 불가능하면 중지합니다" + +#: builtin/merge.c:213 +msgid "Verify that the named commit has a valid GPG signature" +msgstr "이름 붙인 커밋에 올바른 GPG 서명이 있는지 검증합니다" + +#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148 +#: builtin/revert.c:89 +msgid "strategy" +msgstr "전략" + +#: builtin/merge.c:215 builtin/pull.c:149 +msgid "merge strategy to use" +msgstr "사용할 병합 전략" + +#: builtin/merge.c:216 builtin/pull.c:152 +msgid "option=value" +msgstr "옵션=값" + +#: builtin/merge.c:217 builtin/pull.c:153 +msgid "option for selected merge strategy" +msgstr "선택한 병합 전략에 대한 옵션" + +#: builtin/merge.c:219 +msgid "merge commit message (for a non-fast-forward merge)" +msgstr "병합 커밋 메시지 (정방향이 아닌 병합에 대해)" + +#: builtin/merge.c:223 +msgid "abort the current in-progress merge" +msgstr "현재 진행 중인 병합을 중지합니다" + +#: builtin/merge.c:251 +msgid "could not run stash." +msgstr "stash를 실행할 수 없습니다." + +#: builtin/merge.c:256 +msgid "stash failed" +msgstr "stash 실패" + +#: builtin/merge.c:261 +#, c-format +msgid "not a valid object: %s" +msgstr "올바른 오브젝트가 아닙니다: %s" + +#: builtin/merge.c:280 builtin/merge.c:297 +msgid "read-tree failed" +msgstr "read-tree 실패" + +#: builtin/merge.c:327 +msgid " (nothing to squash)" +msgstr " (합칠 내용이 없습니다)" + +#: builtin/merge.c:340 +#, c-format +msgid "Squash commit -- not updating HEAD\n" +msgstr "커밋 합치기 -- HEAD를 업데이트하지 않습니다\n" + +#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975 +#: builtin/merge.c:988 +#, c-format +msgid "Could not write to '%s'" +msgstr "'%s'에 쓸 수 없습니다" + +#: builtin/merge.c:372 +msgid "Writing SQUASH_MSG" +msgstr "SQUASH_MSG를 쓰는 중" + +#: builtin/merge.c:374 +msgid "Finishing SQUASH_MSG" +msgstr "SQUASH_MSG를 마치는 중" + +#: builtin/merge.c:397 +#, c-format +msgid "No merge message -- not updating HEAD\n" +msgstr "병합 메시지가 없습니다 -- HEAD를 업데이트하지 않습니다\n" + +#: builtin/merge.c:447 +#, c-format +msgid "'%s' does not point to a commit" +msgstr "'%s'이(가) 커밋을 가리키지 않습니다" + +#: builtin/merge.c:537 +#, c-format +msgid "Bad branch.%s.mergeoptions string: %s" +msgstr "잘못된 branch.%s.mergeoptions 문자열: %s" + +#: builtin/merge.c:656 +msgid "Not handling anything other than two heads merge." +msgstr "두 개의 헤드 병합 외에는 처리하지 않습니다." + +#: builtin/merge.c:670 +#, c-format +msgid "Unknown option for merge-recursive: -X%s" +msgstr "merge-recursive에 대해 알 수 없는 옵션: -X%s" + +#: builtin/merge.c:683 +#, c-format +msgid "unable to write %s" +msgstr "%s에 쓸 수 없습니다" + +#: builtin/merge.c:772 +#, c-format +msgid "Could not read from '%s'" +msgstr "'%s'에서 읽을 수 없습니다" + +#: builtin/merge.c:781 +#, c-format +msgid "Not committing merge; use 'git commit' to complete the merge.\n" +msgstr "병합을 커밋하지 않습니다. 병합을 마치려면 'git commit'을 사용하십시오.\n" + +#: builtin/merge.c:787 +#, c-format +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" +"\n" +"Lines starting with '%c' will be ignored, and an empty message aborts\n" +"the commit.\n" +msgstr "" +"왜 이 병합이 필요한지를 설명하는 커밋 메시지를 입력하십시오. 특히\n" +"업스트림 업데이트를 어떤 목적용 브랜치로 병합할 때는 반드시 그렇게\n" +"하십시오.\n" +"\n" +"'%c' 문자로 시작하는 줄은 무시되고, 메시지가 비어 있으면 커밋을\n" +"중지합니다.\n" + +#: builtin/merge.c:811 +msgid "Empty commit message." +msgstr "빈 커밋 메시지." + +#: builtin/merge.c:823 +#, c-format +msgid "Wonderful.\n" +msgstr "훌륭합니다.\n" + +#: builtin/merge.c:878 +#, c-format +msgid "Automatic merge failed; fix conflicts and then commit the result.\n" +msgstr "자동 병합이 실패했습니다. 충돌을 바로잡고 결과물을 커밋하십시오.\n" + +#: builtin/merge.c:894 +#, c-format +msgid "'%s' is not a commit" +msgstr "'%s'은(는) 커밋이 아닙니다" + +#: builtin/merge.c:935 +msgid "No current branch." +msgstr "현재 브랜치가 없습니다." + +#: builtin/merge.c:937 +msgid "No remote for the current branch." +msgstr "현재 브랜치에 대한 리모트가 없습니다." + +#: builtin/merge.c:939 +msgid "No default upstream defined for the current branch." +msgstr "현재 브랜치에 대해 기본 업스트림을 지정하지 않았습니다." + +#: builtin/merge.c:944 +#, c-format +msgid "No remote-tracking branch for %s from %s" +msgstr "리모트 %2$s에서 %1$s에 대한 리모트 추적 브랜치가 없습니다" + +#: builtin/merge.c:1079 +#, c-format +msgid "could not close '%s'" +msgstr "'%s'을(를) 닫을 수 없습니다" + +#: builtin/merge.c:1206 +msgid "There is no merge to abort (MERGE_HEAD missing)." +msgstr "중지할 병합 작업이 없습니다. (MERGE_HEAD가 없음)" + +#: builtin/merge.c:1222 +msgid "" +"You have not concluded your merge (MERGE_HEAD exists).\n" +"Please, commit your changes before you merge." +msgstr "" +"병합을 마치지 않았습니다. (MERGE_HEAD 있음)\n" +"병합하기 전에 변경 사항을 커밋하십시오." + +#: builtin/merge.c:1229 +msgid "" +"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n" +"Please, commit your changes before you merge." +msgstr "" +"커밋 빼오기를 마치지 않았습니다. (COMMIT_PICK_HEAD 있음)\n" +"병합하기 전에 변경 사항을 커밋하십시오." + +#: builtin/merge.c:1232 +msgid "You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists)." +msgstr "커밋 빼오기를 마치지 않았습니다. (CHERRY_PICK_HEAD 있음)" + +#: builtin/merge.c:1241 +msgid "You cannot combine --squash with --no-ff." +msgstr "--squash 옵션을 --no-ff 옵션과 같이 쓸 수 없습니다." + +#: builtin/merge.c:1249 +msgid "No commit specified and merge.defaultToUpstream not set." +msgstr "커밋을 지정하지 않았고 merge.defaultToUpstream를 설정하지 않았습니다." + +#: builtin/merge.c:1266 +msgid "Squash commit into empty head not supported yet" +msgstr "빈 헤드로 커밋을 합치기는 지원하지 않습니다" + +#: builtin/merge.c:1268 +msgid "Non-fast-forward commit does not make sense into an empty head" +msgstr "정방향이 아닌 커밋은 빈 헤드에서는 앞뒤가 맞지 않습니다" + +#: builtin/merge.c:1274 +#, c-format +msgid "%s - not something we can merge" +msgstr "%s - 병합할 수 있는 항목이 아닙니다" + +#: builtin/merge.c:1276 +msgid "Can merge only exactly one commit into empty head" +msgstr "빈 헤드에는 정확히 하나의 커밋만 병합할 수 있습니다" + +#: builtin/merge.c:1331 +#, c-format +msgid "Commit %s has an untrusted GPG signature, allegedly by %s." +msgstr "%s 커밋에 신뢰하지 않는 (서명자가 %s라고 하는) GPG 서명이 있습니다." + +#: builtin/merge.c:1334 +#, c-format +msgid "Commit %s has a bad GPG signature allegedly by %s." +msgstr "%s 커밋에 잘못된 (서명자가 %s라고 하는) GPG 서명이 있습니다." + +#: builtin/merge.c:1337 +#, c-format +msgid "Commit %s does not have a GPG signature." +msgstr "%s 커밋에 GPG 서명이 없습니다." + +#: builtin/merge.c:1340 +#, c-format +msgid "Commit %s has a good GPG signature by %s\n" +msgstr "%s 커밋에 %s의 올바른 GPG 서명이 없습니다\n" + +#: builtin/merge.c:1423 +#, c-format +msgid "Updating %s..%s\n" +msgstr "업데이트 중 %s..%s\n" + +#: builtin/merge.c:1460 +#, c-format +msgid "Trying really trivial in-index merge...\n" +msgstr "아주 간단한 인덱스 내부 병합을 시도합니다...\n" + +#: builtin/merge.c:1467 +#, c-format +msgid "Nope.\n" +msgstr "아님.\n" + +#: builtin/merge.c:1499 +msgid "Not possible to fast-forward, aborting." +msgstr "정방향이 불가능하므로, 중지합니다." + +#: builtin/merge.c:1522 builtin/merge.c:1601 +#, c-format +msgid "Rewinding the tree to pristine...\n" +msgstr "트리를 본래 위치로 되돌립니다...\n" + +#: builtin/merge.c:1526 +#, c-format +msgid "Trying merge strategy %s...\n" +msgstr "병합 전략 %s 시도...\n" + +#: builtin/merge.c:1592 +#, c-format +msgid "No merge strategy handled the merge.\n" +msgstr "병합을 처리한 전략이 없습니다.\n" + +#: builtin/merge.c:1594 +#, c-format +msgid "Merge with strategy %s failed.\n" +msgstr "전략 %s(으)로 병합이 실패했습니다.\n" + +#: builtin/merge.c:1603 +#, c-format +msgid "Using the %s to prepare resolving by hand.\n" +msgstr "수동 해결의 준비를 위해 %s 전략을 사용합니다.\n" + +#: builtin/merge.c:1615 +#, c-format +msgid "Automatic merge went well; stopped before committing as requested\n" +msgstr "자동 병합이 잘 진행되었습니다. 요청한대로 커밋 전에 중지합니다\n" + +#: builtin/merge-base.c:29 +msgid "git merge-base [-a | --all] <commit> <commit>..." +msgstr "git merge-base [-a | --all] <커밋> <커밋>..." + +#: builtin/merge-base.c:30 +msgid "git merge-base [-a | --all] --octopus <commit>..." +msgstr "git merge-base [-a | --all] --octopus <커밋>..." + +#: builtin/merge-base.c:31 +msgid "git merge-base --independent <commit>..." +msgstr "git merge-base --independent <커밋>..." + +#: builtin/merge-base.c:32 +msgid "git merge-base --is-ancestor <commit> <commit>" +msgstr "git merge-base --is-ancestor <커밋> <커밋>" + +#: builtin/merge-base.c:33 +msgid "git merge-base --fork-point <ref> [<commit>]" +msgstr "git merge-base --fork-point <레퍼런스> [<커밋>]" + +#: builtin/merge-base.c:214 +msgid "output all common ancestors" +msgstr "모든 과거 공통 커밋을 출력합니다" + +#: builtin/merge-base.c:216 +msgid "find ancestors for a single n-way merge" +msgstr "하나의 n-방향 병합에 대한 과거 커밋을 찾습니다" + +#: builtin/merge-base.c:218 +msgid "list revs not reachable from others" +msgstr "다른 곳에서 접근 불가능한 리비전 목록을 출력합니다" + +#: builtin/merge-base.c:220 +msgid "is the first one ancestor of the other?" +msgstr "첫번째가 다른 것의 과거 커밋인지 여부?" + +#: builtin/merge-base.c:222 +msgid "find where <commit> forked from reflog of <ref>" +msgstr "<레퍼런스>의 reflog에서 <커밋>이 분리된 위치를 찾습니다" + +#: builtin/merge-file.c:8 +msgid "" +"git merge-file [<options>] [-L <name1> [-L <orig> [-L <name2>]]] <file1> " +"<orig-file> <file2>" +msgstr "git merge-file [<옵션>] [-L <이름1> [-L <orig> [-L <이름2>]]] <파일1> <본래-파일> <파일2>" + +#: builtin/merge-file.c:33 +msgid "send results to standard output" +msgstr "결과를 표준 출력으로 보냅니다" + +#: builtin/merge-file.c:34 +msgid "use a diff3 based merge" +msgstr "diff3 기반 병합을 사용합니다" + +#: builtin/merge-file.c:35 +msgid "for conflicts, use our version" +msgstr "충돌이 발생하면, 우리쪽 버전을 사용합니다" + +#: builtin/merge-file.c:37 +msgid "for conflicts, use their version" +msgstr "충돌이 발생하면, 상대편 버전을 사용합니다" + +#: builtin/merge-file.c:39 +msgid "for conflicts, use a union version" +msgstr "충돌이 발생하면, 합친 버전을 사용합니다" + +#: builtin/merge-file.c:42 +msgid "for conflicts, use this marker size" +msgstr "충돌이 발생하면, 이 크기로 표시합니다" + +#: builtin/merge-file.c:43 +msgid "do not warn about conflicts" +msgstr "충돌에 대해 경고하지 않습니다" + +#: builtin/merge-file.c:45 +msgid "set labels for file1/orig-file/file2" +msgstr "<파일1>/<본래-파일>/<파일2>에 대한 레이블을 설정합니다" + +#: builtin/mktree.c:64 +msgid "git mktree [-z] [--missing] [--batch]" +msgstr "git mktree [-z] [--missing] [--batch]" + +#: builtin/mktree.c:150 +msgid "input is NUL terminated" +msgstr "입력이 NUL로 끝납니다" + +#: builtin/mktree.c:151 builtin/write-tree.c:24 +msgid "allow missing objects" +msgstr "없는 오브젝트를 허용합니다" + +#: builtin/mktree.c:152 +msgid "allow creation of more than one tree" +msgstr "여러개 트리 만들기를 허용합니다" + +#: builtin/mv.c:15 +msgid "git mv [<options>] <source>... <destination>" +msgstr "git mv [<옵션>] <원본>... <대상>" + +#: builtin/mv.c:69 +#, c-format +msgid "Directory %s is in index and no submodule?" +msgstr "%s 디렉터리가 인덱스에 있고 하위 모듈이 없습니다?" + +#: builtin/mv.c:71 +msgid "Please stage your changes to .gitmodules or stash them to proceed" +msgstr "계속하려면 .gitmodules의 변경 사항을 스테이지에 넣거나 stash 하십시오" + +#: builtin/mv.c:89 +#, c-format +msgid "%.*s is in index" +msgstr "%.*s이(가) 인덱스에 있습니다" + +#: builtin/mv.c:111 +msgid "force move/rename even if target exists" +msgstr "대상이 이미 있어도 강제로 옮기기/이름 바꾸기를 합니다" + +#: builtin/mv.c:112 +msgid "skip move/rename errors" +msgstr "옮기기/이름 바꾸기 오류를 건너 뜁니다" + +#: builtin/mv.c:151 +#, c-format +msgid "destination '%s' is not a directory" +msgstr "대상이 ('%s') 디렉터리가 아닙니다" + +#: builtin/mv.c:162 +#, c-format +msgid "Checking rename of '%s' to '%s'\n" +msgstr "'%s'을(를) '%s'(으)로 이름 바꾸기합니다\n" + +#: builtin/mv.c:166 +msgid "bad source" +msgstr "잘못된 원본" + +#: builtin/mv.c:169 +msgid "can not move directory into itself" +msgstr "디렉터리를 자기 자신으로 옮길 수 없습니다" + +#: builtin/mv.c:172 +msgid "cannot move directory over file" +msgstr "디렉터리를 파일로 옮길 수 없습니다" + +#: builtin/mv.c:181 +msgid "source directory is empty" +msgstr "원본 디렉터리가 비어 있습니다" + +#: builtin/mv.c:206 +msgid "not under version control" +msgstr "버전 컨트롤 중이 아닙니다" + +#: builtin/mv.c:209 +msgid "destination exists" +msgstr "대상이 있습니다" + +#: builtin/mv.c:217 +#, c-format +msgid "overwriting '%s'" +msgstr "'%s' 덮어쓰기" + +#: builtin/mv.c:220 +msgid "Cannot overwrite" +msgstr "덮어쓸 수 없습니다" + +#: builtin/mv.c:223 +msgid "multiple sources for the same target" +msgstr "동일한 대상에 대해 여러 개 원본" + +#: builtin/mv.c:225 +msgid "destination directory does not exist" +msgstr "대상 디렉터리가 없습니다" + +#: builtin/mv.c:232 +#, c-format +msgid "%s, source=%s, destination=%s" +msgstr "%s, 원본=%s, 대상=%s" + +#: builtin/mv.c:253 +#, c-format +msgid "Renaming %s to %s\n" +msgstr "이름 바꾸기, '%s'에서 '%s'(으)로\n" + +#: builtin/mv.c:256 builtin/remote.c:728 builtin/repack.c:365 +#, c-format +msgid "renaming '%s' failed" +msgstr "'%s'의 이름 바꾸기가 실패했습니다" + +#: builtin/name-rev.c:251 +msgid "git name-rev [<options>] <commit>..." +msgstr "git name-rev [<옵션>] <커밋>..." + +#: builtin/name-rev.c:252 +msgid "git name-rev [<options>] --all" +msgstr "git name-rev [<옵션>] --all" + +#: builtin/name-rev.c:253 +msgid "git name-rev [<options>] --stdin" +msgstr "git name-rev [<옵션>] --stdin" + +#: builtin/name-rev.c:305 +msgid "print only names (no SHA-1)" +msgstr "이름만 표시 (SHA-1 없이)" + +#: builtin/name-rev.c:306 +msgid "only use tags to name the commits" +msgstr "커밋을 지정할 때 태그만 사용합니다" + +#: builtin/name-rev.c:308 +msgid "only use refs matching <pattern>" +msgstr "<패턴>과 일치하는 레퍼런스만 사용합니다" + +#: builtin/name-rev.c:310 +msgid "list all commits reachable from all refs" +msgstr "모든 레퍼런스에서 접근 가능한 모든 커밋 목록을 표시합니다" + +#: builtin/name-rev.c:311 +msgid "read from stdin" +msgstr "표준입력에서 읽습니다" + +#: builtin/name-rev.c:312 +msgid "allow to print `undefined` names (default)" +msgstr "`정의되지 않은' 이름 표시를 허용합니다 (기본값)" + +#: builtin/name-rev.c:318 +msgid "dereference tags in the input (internal use)" +msgstr "입력의 태그 레퍼런스를 따라갑니다 (내부 사용)" + +#: builtin/notes.c:25 +msgid "git notes [--ref <notes-ref>] [list [<object>]]" +msgstr "git notes [--ref <노트-레퍼런스>] [list [<오브젝트>]]" + +#: builtin/notes.c:26 +msgid "" +"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <msg> | -F <file> " +"| (-c | -C) <object>] [<object>]" +msgstr "" +"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <메시지> | -F <파" +"일> | (-c | -C) <오브젝트>] [<오브젝트>]" + +#: builtin/notes.c:27 +msgid "git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>" +msgstr "git notes [--ref <노트-레퍼런스>] copy [-f] <원본-오브젝트> <대상-오브젝트>" + +#: builtin/notes.c:28 +msgid "" +"git notes [--ref <notes-ref>] append [--allow-empty] [-m <msg> | -F <file> | " +"(-c | -C) <object>] [<object>]" +msgstr "" +"git notes [--ref <쪽지-레퍼런스>] append [--allow-empty] [-m <메시지> | -F <" +"파일> | (-c | -C) <오브젝트>] [<오브젝트>]" + +#: builtin/notes.c:29 +msgid "git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]" +msgstr "git notes [--ref <쪽지-레퍼런스>] edit [--allow-empty] [<오브젝트>]" + +#: builtin/notes.c:30 +msgid "git notes [--ref <notes-ref>] show [<object>]" +msgstr "git notes [--ref <notes-ref>] show [<오브젝트>]" + +#: builtin/notes.c:31 +msgid "" +"git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>" +msgstr "git notes [--ref <노트-레퍼런스>] merge [-v | -q] [-s <전략>] <노트-레퍼런스>" + +#: builtin/notes.c:32 +msgid "git notes merge --commit [-v | -q]" +msgstr "git notes merge --commit [-v | -q]" + +#: builtin/notes.c:33 +msgid "git notes merge --abort [-v | -q]" +msgstr "git notes merge --abort [-v | -q]" + +#: builtin/notes.c:34 +msgid "git notes [--ref <notes-ref>] remove [<object>...]" +msgstr "git notes [--ref <노트-레퍼런스>] remove [<오브젝트>...]" + +#: builtin/notes.c:35 +msgid "git notes [--ref <notes-ref>] prune [-n | -v]" +msgstr "git notes [--ref <노트-레퍼런스>] prune [-n | -v]" + +#: builtin/notes.c:36 +msgid "git notes [--ref <notes-ref>] get-ref" +msgstr "git notes [--ref <노트-레퍼런스>] get-ref" + +#: builtin/notes.c:41 +msgid "git notes [list [<object>]]" +msgstr "git notes [list [<오브젝트>]]" + +#: builtin/notes.c:46 +msgid "git notes add [<options>] [<object>]" +msgstr "git notes add [<옵션>] [<오브젝트>]" + +#: builtin/notes.c:51 +msgid "git notes copy [<options>] <from-object> <to-object>" +msgstr "git notes copy [<옵션>] <원본-오브젝트> <대상-오브젝트>" + +#: builtin/notes.c:52 +msgid "git notes copy --stdin [<from-object> <to-object>]..." +msgstr "git notes copy --stdin [<원본-오브젝트> <대상-오브젝트>]..." + +#: builtin/notes.c:57 +msgid "git notes append [<options>] [<object>]" +msgstr "git notes append [<옵션>] [<오브젝트>]" + +#: builtin/notes.c:62 +msgid "git notes edit [<object>]" +msgstr "git notes edit [<오브젝트>]" + +#: builtin/notes.c:67 +msgid "git notes show [<object>]" +msgstr "git notes show [<오브젝트>]" + +#: builtin/notes.c:72 +msgid "git notes merge [<options>] <notes-ref>" +msgstr "git notes merge [<옵션>] <쪽지-레퍼런스>" + +#: builtin/notes.c:73 +msgid "git notes merge --commit [<options>]" +msgstr "git notes merge --commit [<옵션>]" + +#: builtin/notes.c:74 +msgid "git notes merge --abort [<options>]" +msgstr "git notes merge --abort [<옵션>]" + +#: builtin/notes.c:79 +msgid "git notes remove [<object>]" +msgstr "git notes remove [<오브젝트>]" + +#: builtin/notes.c:84 +msgid "git notes prune [<options>]" +msgstr "git notes prune [<옵션>]" + +#: builtin/notes.c:89 +msgid "git notes get-ref" +msgstr "git notes get-ref" + +#: builtin/notes.c:147 +#, c-format +msgid "unable to start 'show' for object '%s'" +msgstr "'%s' 오브젝트에 대해 'show'를 시작할 수 없습니다" + +#: builtin/notes.c:151 +msgid "could not read 'show' output" +msgstr "'show' 출력을 읽을 수 없습니다" + +#: builtin/notes.c:159 +#, c-format +msgid "failed to finish 'show' for object '%s'" +msgstr "오브젝트 '%s'에 대해 'show'를 마치는데 실패했습니다" + +#: builtin/notes.c:174 builtin/tag.c:248 +#, c-format +msgid "could not create file '%s'" +msgstr "'%s' 파일을 만들 수 없습니다" + +#: builtin/notes.c:193 +msgid "Please supply the note contents using either -m or -F option" +msgstr "노트 내용을 -m 또는 -F 옵션으로 입력하십시오" + +#: builtin/notes.c:202 +msgid "unable to write note object" +msgstr "노트 오브젝트를 쓸 수 없습니다" + +#: builtin/notes.c:204 +#, c-format +msgid "The note contents have been left in %s" +msgstr "노트 내용은 %s에 남습니다" + +#: builtin/notes.c:232 builtin/tag.c:440 +#, c-format +msgid "cannot read '%s'" +msgstr "'%s'을(를) 읽을 수 없습니다" + +#: builtin/notes.c:234 builtin/tag.c:443 +#, c-format +msgid "could not open or read '%s'" +msgstr "'%s'을(를) 열거나 읽을 수 없습니다" + +#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306 +#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507 +#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653 +#: builtin/notes.c:877 builtin/tag.c:456 +#, c-format +msgid "Failed to resolve '%s' as a valid ref." +msgstr "'%s'을(를) 올바른 레퍼런스로 알아내는데 실패했습니다." + +#: builtin/notes.c:256 +#, c-format +msgid "Failed to read object '%s'." +msgstr "'%s' 오브젝트 읽기에 실패했습니다." + +#: builtin/notes.c:260 +#, c-format +msgid "Cannot read note data from non-blob object '%s'." +msgstr "블롭이 아닌 '%s' 오브젝트에 대해 노트 데이터를 읽을 수 없습니다." + +#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490 +#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646 +#: builtin/notes.c:942 +msgid "too many parameters" +msgstr "파라미터가 너무 많습니다" + +#: builtin/notes.c:372 builtin/notes.c:659 +#, c-format +msgid "No note found for object %s." +msgstr "%s 오브젝트에 대해 노트가 없습니다." + +#: builtin/notes.c:393 builtin/notes.c:556 +msgid "note contents as a string" +msgstr "문자열로 노트 내용" + +#: builtin/notes.c:396 builtin/notes.c:559 +msgid "note contents in a file" +msgstr "파일 안에 노트 내용" + +#: builtin/notes.c:399 builtin/notes.c:562 +msgid "reuse and edit specified note object" +msgstr "지정한 노트 오브젝트를 재사용하고 편집합니다" + +#: builtin/notes.c:402 builtin/notes.c:565 +msgid "reuse specified note object" +msgstr "지정한 노트 오브젝트를 재사용합니다" + +#: builtin/notes.c:405 builtin/notes.c:568 +msgid "allow storing empty note" +msgstr "빈 노트 저장을 허용합니다" + +#: builtin/notes.c:406 builtin/notes.c:477 +msgid "replace existing notes" +msgstr "기존 노트를 바꿉니다" + +#: builtin/notes.c:431 +#, c-format +msgid "" +"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite " +"existing notes" +msgstr "노트를 추가할 수 없습니다. %s 오브젝트에 대한 기존 노트가 있습니다. 기존 노트를 덮어쓰려면 '-f' 옵션을 사용하십시오" + +#: builtin/notes.c:446 builtin/notes.c:525 +#, c-format +msgid "Overwriting existing notes for object %s\n" +msgstr "%s 오브젝트에 대한 기존 노트를 덮어씁니다\n" + +#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882 +#, c-format +msgid "Removing note for object %s\n" +msgstr "%s 오브젝트에 대한 노트를 제거합니다\n" + +#: builtin/notes.c:478 +msgid "read objects from stdin" +msgstr "표준 입력에서 오브젝트를 읽습니다" + +#: builtin/notes.c:480 +msgid "load rewriting config for <command> (implies --stdin)" +msgstr "<명령>에 대한 다시쓰기 설정을 읽어들입니다 (--stdin 옵션 포함)" + +#: builtin/notes.c:498 +msgid "too few parameters" +msgstr "파라미터가 너무 적습니다" + +#: builtin/notes.c:519 +#, c-format +msgid "" +"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite " +"existing notes" +msgstr "노트를 복사할 수 없습니다. %s 오브젝트에 대한 기존 노트가 있습니다. 기존 노트를 덮어쓰려면 '-f' 옵션을 사용하십시오" + +#: builtin/notes.c:531 +#, c-format +msgid "Missing notes on source object %s. Cannot copy." +msgstr "원본 %s 오브젝트에 대한 노트가 없습니다. 복사할 수 없습니다." + +#: builtin/notes.c:583 +#, c-format +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 "" +"-m/-F/-c/-C 옵션은 'edit' 하위 명령에 대해 사용을 권하지 않습니다.\n" +"대신에 'git notes add -f -m/-F/-c/-C' 명령을 사용하십시오.\n" + +#: builtin/notes.c:764 +msgid "General options" +msgstr "일반 옵션" + +#: builtin/notes.c:766 +msgid "Merge options" +msgstr "병합 옵션" + +#: builtin/notes.c:768 +msgid "" +"resolve notes conflicts using the given strategy (manual/ours/theirs/union/" +"cat_sort_uniq)" +msgstr "주어진 전략을 사용해 노트 충돌을 해결합니다 (manual/ours/theirs/union/cat_sort_uniq)" + +#: builtin/notes.c:770 +msgid "Committing unmerged notes" +msgstr "병합하지 않은 노트 커밋" + +#: builtin/notes.c:772 +msgid "finalize notes merge by committing unmerged notes" +msgstr "병합하지 않은 노트를 커밋해 노트 병합을 마칩니다" + +#: builtin/notes.c:774 +msgid "Aborting notes merge resolution" +msgstr "노트 병합 해결 중지" + +#: builtin/notes.c:776 +msgid "abort notes merge" +msgstr "노트 병합을 중지합니다" + +#: builtin/notes.c:853 +#, c-format +msgid "A notes merge into %s is already in-progress at %s" +msgstr "%s 위치로 노트 병합이 이미 %s에서 진행중입니다" + +#: builtin/notes.c:880 +#, c-format +msgid "Object %s has no note\n" +msgstr "%s 오브젝트에 노트가 없습니다\n" + +#: builtin/notes.c:892 +msgid "attempt to remove non-existent note is not an error" +msgstr "없는 노트를 제거하려는 시도를 오류가 아닌 것으로 취급합니다" + +#: builtin/notes.c:895 +msgid "read object names from the standard input" +msgstr "표준 입력에서 오브젝트 이름을 읽습니다" + +#: builtin/notes.c:976 +msgid "notes-ref" +msgstr "노트-레퍼런스" + +#: builtin/notes.c:977 +msgid "use notes from <notes-ref>" +msgstr "<노트-레퍼런스>에서 노트를 사용합니다" + +#: builtin/notes.c:1012 builtin/remote.c:1647 +#, c-format +msgid "Unknown subcommand: %s" +msgstr "알 수 없는 하위 명령: %s" + +#: builtin/pack-objects.c:28 +msgid "" +"git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]" +msgstr "" +"git pack-objects --stdout [<옵션>...] [< <레퍼런스목록> | < <오브젝트목록>]" + +#: builtin/pack-objects.c:29 +msgid "" +"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]" +msgstr "" +"git pack-objects [<옵션>...] <베이스이름> [< <레퍼런스목록> | < <오브젝트목록" +">]" + +#: builtin/pack-objects.c:175 builtin/pack-objects.c:178 +#, c-format +msgid "deflate error (%d)" +msgstr "deflate 오류 (%d)" + +#: builtin/pack-objects.c:771 +msgid "Writing objects" +msgstr "오브젝트 쓰는 중" + +#: builtin/pack-objects.c:1011 +msgid "disabling bitmap writing, as some objects are not being packed" +msgstr "묶음에 들어있지 않은 오브젝트가 있으므로, 비트맵 쓰기를 하지 않습니다" + +#: builtin/pack-objects.c:2171 +msgid "Compressing objects" +msgstr "오브젝트 압축하는 중" + +#: builtin/pack-objects.c:2568 +#, c-format +msgid "unsupported index version %s" +msgstr "지원하지 않는 인덱스 버전 %s" + +#: builtin/pack-objects.c:2572 +#, c-format +msgid "bad index version '%s'" +msgstr "잘못된 인덱스 버전 '%s'" + +#: builtin/pack-objects.c:2602 +msgid "do not show progress meter" +msgstr "진행률을 표시하지 않습니다" + +#: builtin/pack-objects.c:2604 +msgid "show progress meter" +msgstr "진행률을 표시합니다" + +#: builtin/pack-objects.c:2606 +msgid "show progress meter during object writing phase" +msgstr "오브젝트 쓰기 단계에서 진행률을 표시합니다" + +#: builtin/pack-objects.c:2609 +msgid "similar to --all-progress when progress meter is shown" +msgstr "진행률이 표시될 때 --all-progress와 비슷합니다" + +#: builtin/pack-objects.c:2610 +msgid "version[,offset]" +msgstr "버전[,오프셋]" + +#: builtin/pack-objects.c:2611 +msgid "write the pack index file in the specified idx format version" +msgstr "지정한 버전의 인덱스 형식에 따라 묶음 인덱스 파일을 씁니다" + +#: builtin/pack-objects.c:2614 +msgid "maximum size of each output pack file" +msgstr "출력 묶음 파일의 최대 크기" + +#: builtin/pack-objects.c:2616 +msgid "ignore borrowed objects from alternate object store" +msgstr "보조 오브젝트 저장소에서 빌려온 오브젝트를 무시합니다" + +#: builtin/pack-objects.c:2618 +msgid "ignore packed objects" +msgstr "묶음 오브젝트를 무시합니다" + +#: builtin/pack-objects.c:2620 +msgid "limit pack window by objects" +msgstr "묶음 윈도우를 오브젝트 단위로 제한합니다" + +#: builtin/pack-objects.c:2622 +msgid "limit pack window by memory in addition to object limit" +msgstr "묶음 윈도우를 오브젝트 단위에 추가로 메모리 단위로 제한합니다" + +#: builtin/pack-objects.c:2624 +msgid "maximum length of delta chain allowed in the resulting pack" +msgstr "결과물 묶음에서 허용되는 최대 길이의 델타 체인" + +#: builtin/pack-objects.c:2626 +msgid "reuse existing deltas" +msgstr "기존 델타를 재사용합니다" + +#: builtin/pack-objects.c:2628 +msgid "reuse existing objects" +msgstr "기존 오브젝트를 재사용합니다" + +#: builtin/pack-objects.c:2630 +msgid "use OFS_DELTA objects" +msgstr "OFS_DELTA 오브젝트를 사용합니다" + +#: builtin/pack-objects.c:2632 +msgid "use threads when searching for best delta matches" +msgstr "최상의 델타 일치를 검색하는데 스레드를 사용합니다" + +#: builtin/pack-objects.c:2634 +msgid "do not create an empty pack output" +msgstr "빈 묶음 출력을 만들지 않습니다" + +#: builtin/pack-objects.c:2636 +msgid "read revision arguments from standard input" +msgstr "표준 입력에서 리비전 인자를 읽습니다" + +#: builtin/pack-objects.c:2638 +msgid "limit the objects to those that are not yet packed" +msgstr "묶지 않는 오브젝트 수를 제한합니다" + +#: builtin/pack-objects.c:2641 +msgid "include objects reachable from any reference" +msgstr "모든 레퍼런스에서 접근 가능한 오브젝트를 포함합니다" + +#: builtin/pack-objects.c:2644 +msgid "include objects referred by reflog entries" +msgstr "reflog 항목에서 레퍼런스할 수 있는 오브젝트를 포함합니다" + +#: builtin/pack-objects.c:2647 +msgid "include objects referred to by the index" +msgstr "인덱스에서< 레퍼런스하는 오브젝트를 포함합니다" + +#: builtin/pack-objects.c:2650 +msgid "output pack to stdout" +msgstr "묶음을 표준 출력으로 출력합니다" + +#: builtin/pack-objects.c:2652 +msgid "include tag objects that refer to objects to be packed" +msgstr "묶음에 들어갈 오브젝트를 레퍼런스하는 태그 오브젝트를 포함합니다" + +#: builtin/pack-objects.c:2654 +msgid "keep unreachable objects" +msgstr "접근 불가능 오브젝트를 보존합니다" + +#: builtin/pack-objects.c:2655 parse-options.h:142 +msgid "time" +msgstr "시각" + +#: builtin/pack-objects.c:2656 +msgid "unpack unreachable objects newer than <time>" +msgstr "<시각>보다 새로운 접근 불가능 오브젝트의 묶음을 풉니다" + +#: builtin/pack-objects.c:2659 +msgid "create thin packs" +msgstr "얇은 묶음을 만듭니다" + +#: builtin/pack-objects.c:2661 +msgid "create packs suitable for shallow fetches" +msgstr "얕은 가져오기에 적합한 묶음을 만듭니다" + +#: builtin/pack-objects.c:2663 +msgid "ignore packs that have companion .keep file" +msgstr "해당하는 .keep 파일이 있는 묶음을 무시합니다" + +#: builtin/pack-objects.c:2665 +msgid "pack compression level" +msgstr "묶음 압축 단계" + +# FIXME: graft? +#: builtin/pack-objects.c:2667 +msgid "do not hide commits by grafts" +msgstr "붙어 있는 커밋을 숨기지 않습니다" + +#: builtin/pack-objects.c:2669 +msgid "use a bitmap index if available to speed up counting objects" +msgstr "가능하면 비트맵 인덱스를 사용해 오브젝트 세기 속도를 높입니다" + +#: builtin/pack-objects.c:2671 +msgid "write a bitmap index together with the pack index" +msgstr "묶음 인덱스와 같이 비트맵 인덱스를 씁니다" + +#: builtin/pack-objects.c:2762 +msgid "Counting objects" +msgstr "오브젝트 개수 세는 중" + +#: builtin/pack-refs.c:6 +msgid "git pack-refs [<options>]" +msgstr "git pack-refs [<옵션>]" + +#: builtin/pack-refs.c:14 +msgid "pack everything" +msgstr "모두 묶습니다" + +#: builtin/pack-refs.c:15 +msgid "prune loose refs (default)" +msgstr "느슨한 레퍼런스를 잘라냅니다 (기본값)" + +#: 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-packed.c:40 +msgid "Removing duplicate objects" +msgstr "중복된 오브젝트 제거" + +#: builtin/prune.c:11 +msgid "git prune [-n] [-v] [--expire <time>] [--] [<head>...]" +msgstr "git prune [-n] [-v] [--expire <시각>] [--] [<헤드>...]" + +#: builtin/prune.c:105 builtin/worktree.c:124 +msgid "do not remove, show only" +msgstr "제거하지 않고, 보여주기만 합니다" + +#: builtin/prune.c:106 builtin/worktree.c:125 +msgid "report pruned objects" +msgstr "잘라낸 오브젝트를 알립니다" + +#: builtin/prune.c:109 builtin/worktree.c:127 +msgid "expire objects older than <time>" +msgstr "<시각>보다 오래 된 오브젝트가 만료됩니다" + +#: builtin/prune.c:123 +msgid "cannot prune in a precious-objects repo" +msgstr "precious-objects 저장소에서 잘라낼 수 없습니다" + +#: builtin/pull.c:69 +msgid "git pull [<options>] [<repository> [<refspec>...]]" +msgstr "git pull [<옵션>] [<저장소> [<레퍼런스명세>...]]" + +#: builtin/pull.c:113 +msgid "Options related to merging" +msgstr "병합 관련 옵션" + +#: builtin/pull.c:116 +msgid "incorporate changes by rebasing rather than merging" +msgstr "변경 사항을 적용할 때 병합하는 대신 리베이스합니다" + +#: builtin/pull.c:140 builtin/revert.c:105 +msgid "allow fast-forward" +msgstr "정방향 진행을 허용합니다" + +#: builtin/pull.c:146 +msgid "verify that the named commit has a valid GPG signature" +msgstr "지정한 커밋에 올바른 GPG 서명이 있는지 검증합니다" + +#: builtin/pull.c:160 +msgid "Options related to fetching" +msgstr "가져오기 관련 옵션" + +#: builtin/pull.c:268 +#, c-format +msgid "Invalid value for pull.ff: %s" +msgstr "pull.ff에 대해 잘못된 값: %s" + +#: builtin/pull.c:352 +msgid "Cannot pull with rebase: You have unstaged changes." +msgstr "리베이스로 풀을 할 수 없습니다: 스테이징하지 않은 변경 사항이 있습니다." + +#: builtin/pull.c:358 +msgid "Additionally, your index contains uncommitted changes." +msgstr "추가로, 인덱스에 커밋하지 않은 변경 사항이 있습니다." + +#: builtin/pull.c:360 +msgid "Cannot pull with rebase: Your index contains uncommitted changes." +msgstr "리베이스로 풀을 할 수 없습니다: 인덱스에 커밋하지 않은 변경 사항이 있습니다." + +#: builtin/pull.c:436 +msgid "" +"There is no candidate for rebasing against among the refs that you just " +"fetched." +msgstr "가져온 레퍼런스 중에 리베이스할 대상 후보가 없습니다." + +#: builtin/pull.c:438 +msgid "" +"There are no candidates for merging among the refs that you just fetched." +msgstr "가져온 레퍼런스 중에 병합할 대상 후보가 없습니다." + +#: builtin/pull.c:439 +msgid "" +"Generally this means that you provided a wildcard refspec which had no\n" +"matches on the remote end." +msgstr "" +"보통 이런 경우는 리모트 쪽에는 없는 와일드카드 레퍼런스명세가\n" +"주어졌을 때 일어납니다." + +#: builtin/pull.c:442 +#, c-format +msgid "" +"You asked to pull from the remote '%s', but did not specify\n" +"a branch. Because this is not the default configured remote\n" +"for your current branch, you must specify a branch on the command line." +msgstr "" +"리모트 '%s'에서 풀을 요청했지만, 브랜치를 지정하지 않았습니다.\n" +"이 리모트는 현재 브랜치에 대해 기본으로 설정된 리모트가\n" +"아니기 때문에, 명령행에서 브랜치를 지정해야 합니다." + +#: builtin/pull.c:447 +msgid "You are not currently on a branch." +msgstr "현재 어떤 브랜치 위에도 있지 않습니다." + +#: builtin/pull.c:449 builtin/pull.c:464 +msgid "Please specify which branch you want to rebase against." +msgstr "어떤 브랜치를 대상으로 리베이스할지 지정하십시오." + +#: builtin/pull.c:451 builtin/pull.c:466 +msgid "Please specify which branch you want to merge with." +msgstr "어떤 브랜치를 대상으로 병합할지 지정하십시오." + +#: builtin/pull.c:452 builtin/pull.c:467 +msgid "See git-pull(1) for details." +msgstr "자세한 정보는 git-pull(1) 페이지를 참고하십시오." + +#: builtin/pull.c:462 +msgid "There is no tracking information for the current branch." +msgstr "현재 브랜치에 추적 정보가 없습니다." + +#: builtin/pull.c:471 +#, c-format +msgid "" +"If you wish to set tracking information for this branch you can do so with:\n" +"\n" +" git branch --set-upstream-to=%s/<branch> %s\n" +msgstr "" +"이 브랜치에 대한 추적 정보를 설정하려면 다음과 같이 할 수 있습니다:\n" +"\n" +" git branch --set-upstream-to=%s/<브랜치> %s\n" + +#: builtin/pull.c:476 +#, c-format +msgid "" +"Your configuration specifies to merge with the ref '%s'\n" +"from the remote, but no such ref was fetched." +msgstr "" +"설정에서 리모트의 '%s' 레퍼런스와 병합하도록 지정했지만,\n" +"그런 레퍼런스를 가져오지 않았습니다." + +#: builtin/pull.c:830 +msgid "Updating an unborn branch with changes added to the index." +msgstr "만들어지지 않은 브랜치를 인덱스에 추가된 변경 사항으로 업데이트합니다." + +#: builtin/pull.c:859 +#, c-format +msgid "" +"fetch updated the current branch head.\n" +"fast-forwarding your working tree from\n" +"commit %s." +msgstr "" +"현재 브랜치 헤드를 업데이트했습니다.\n" +"작업 폴더를 %s 커밋에서 정방향\n" +"진행합니다." + +#: builtin/pull.c:864 +#, c-format +msgid "" +"Cannot fast-forward your working tree.\n" +"After making sure that you saved anything precious from\n" +"$ git diff %s\n" +"output, run\n" +"$ git reset --hard\n" +"to recover." +msgstr "" +"작업 폴더를 정방향 진행할 수 없습니다.\n" +"다음 명령 출력에서 중요한 사항을 저장한 다음,\n" +"$ git diff %s\n" +"다음을 실행하면\n" +"$ git reset --hard\n" +"복구됩니다." + +#: builtin/pull.c:879 +msgid "Cannot merge multiple branches into empty head." +msgstr "여러 브랜치를 빈 헤드로 병합할 수 없습니다." + +#: builtin/pull.c:883 +msgid "Cannot rebase onto multiple branches." +msgstr "여러 브랜치로 리베이스할 수 없습니다." + +#: builtin/push.c:16 +msgid "git push [<options>] [<repository> [<refspec>...]]" +msgstr "git push [<옵션>] [<저장소> [<레퍼런스명세>...]]" + +#: builtin/push.c:88 +msgid "tag shorthand without <tag>" +msgstr "<태그> 없이 태그 줄임" + +#: builtin/push.c:98 +msgid "--delete only accepts plain target ref names" +msgstr "--delete 옵션은 일반 대상 레퍼런스 이름만 받습니다" + +#: builtin/push.c:142 +msgid "" +"\n" +"To choose either option permanently, see push.default in 'git help config'." +msgstr "\n어느 한 쪽 옵션만 계속 선택하려면, 'git help config'에서 push.default를 참고하십시오." + +#: builtin/push.c:145 +#, c-format +msgid "" +"The upstream branch of your current branch does not match\n" +"the name of your current branch. To push to the upstream branch\n" +"on the remote, use\n" +"\n" +" git push %s HEAD:%s\n" +"\n" +"To push to the branch of the same name on the remote, use\n" +"\n" +" git push %s %s\n" +"%s" +msgstr "" +"현재 브랜치의 업스트림 브랜치가 현재 브랜치의 이름과\n" +"같지 않습니다. 리모트의 업스트림 브랜치로 푸시하려면\n" +"다음과 같이 하십시오.\n" +"\n" +" git push %s HEAD:%s\n" +"\n" +"리모트의 같은 이름으로 푸시하려면 다음과 같이 하십시오.\n" +"\n" +" git push %s %s\n" +"%s" + +#: builtin/push.c:160 +#, c-format +msgid "" +"You are not currently on a branch.\n" +"To push the history leading to the current (detached HEAD)\n" +"state now, use\n" +"\n" +" git push %s HEAD:<name-of-remote-branch>\n" +msgstr "" +"현재 어떤 브랜치 위에도 있지 않습니다.\n" +"지금 현재 (HEAD 분리) 상태까지의 커밋 내역을 푸시하려면\n" +"다음과 같이 하십시오.\n" +"\n" +" git push %s HEAD:<name-of-remote-branch>\n" + +#: builtin/push.c:174 +#, c-format +msgid "" +"The current branch %s has no upstream branch.\n" +"To push the current branch and set the remote as upstream, use\n" +"\n" +" git push --set-upstream %s %s\n" +msgstr "" +"현재 브랜치 %s에 업스트림 브랜치가 없습니다.\n" +"현재 브랜치를 푸시하고 해당 리모트를 업스트림으로 지정하려면\n" +"다음과 같이 하십시오.\n" +"\n" +" git push --set-upstream %s %s\n" + +#: builtin/push.c:182 +#, c-format +msgid "The current branch %s has multiple upstream branches, refusing to push." +msgstr "현재 브랜치 %s에 여러 업스트림 브랜치가 있습니다. 푸시를 거절합니다." + +#: builtin/push.c:185 +#, c-format +msgid "" +"You are pushing to remote '%s', which is not the upstream of\n" +"your current branch '%s', without telling me what to push\n" +"to update which remote branch." +msgstr "" +"'%s' 리모트로 푸시하는 중입니다. 하지만 이 리모트는 현재\n" +"'%s' 브랜치의 업스트림이 아닙니다. 어떤 리모트 브랜치에 무엇을\n" +"푸시할지 설정하지 않았습니다." + +#: builtin/push.c:208 +msgid "" +"push.default is unset; its implicit value has changed in\n" +"Git 2.0 from 'matching' to 'simple'. To squelch this message\n" +"and maintain the traditional behavior, use:\n" +"\n" +" git config --global push.default matching\n" +"\n" +"To squelch this message and adopt the new behavior now, use:\n" +"\n" +" git config --global push.default simple\n" +"\n" +"When push.default is set to 'matching', git will push local branches\n" +"to the remote branches that already exist with the same name.\n" +"\n" +"Since Git 2.0, Git defaults to the more conservative 'simple'\n" +"behavior, which only pushes the current branch to the corresponding\n" +"remote branch that 'git pull' uses to update the current branch.\n" +"\n" +"See 'git help config' and search for 'push.default' for further " +"information.\n" +"(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode\n" +"'current' instead of 'simple' if you sometimes use older versions of Git)" +msgstr "" +"push.default를 설정하지 않았습니다. 묵시적 값은 깃 2.0에서\n" +"'matching'에서 'simple'로 바뀌었습니다. 이 메시지를 표시하지\n" +"않고 과거의 동작을 유지하려면 다음과 같이 하십시오:\n" +"\n" +" git config --global push.default matching\n" +"\n" +"이 메시지를 표시하지 않고 새 동작을 받아들이려면 다음과 같이\n" +"하십시오:\n" +"\n" +" git config --global push.default simple\n" +"\n" +"push.default가 'matching'으로 설정되면, 로컬 브랜치를 이미 같은 이름이\n" +"있는 리모트 브랜치로 푸시합니다.\n" +"\n" +"깃 2.0부터 더 보수적인 'simple' 동작이 기본값입니다. 여기서는 현재\n" +"브랜치를 'git pull'에서 현재 브랜치를 업데이트할 때 사용하는 해당\n" +"리모트 브랜치로 푸시합니다.\n" +"\n" +"더 자세한 정보는 'git help config'에서 'push.default' 설명을 보십시오.\n" +"('simple' 모드는 깃 1.7.11에 추가되었습니다. 과거 버전의 깃을 사용하게\n" +"되면 비슷한 'current' 모드를 사용하십시오.)" + +#: builtin/push.c:275 +msgid "" +"You didn't specify any refspecs to push, and push.default is \"nothing\"." +msgstr "푸시할 레퍼런스명세를 지정하지 않았고, push.default 값이 'nothing'입니다." + +#: builtin/push.c:282 +msgid "" +"Updates were rejected because the tip of your current branch is behind\n" +"its remote counterpart. Integrate the remote changes (e.g.\n" +"'git pull ...') before pushing again.\n" +"See the 'Note about fast-forwards' in 'git push --help' for details." +msgstr "" +"현재 브랜치의 끝이 리모트 브랜치보다 뒤에 있으므로 업데이트가\n" +"거부되었습니다. 푸시하기 전에 ('git pull ...' 등 명령으로) 리모트\n" +"변경 사항을 포함하십시오.\n" +"자세한 정보는 'git push --help'의 \"Note about fast-forwards' 부분을\n" +"참고하십시오." + +#: builtin/push.c:288 +msgid "" +"Updates were rejected because a pushed branch tip is behind its remote\n" +"counterpart. Check out this branch and integrate the remote changes\n" +"(e.g. 'git pull ...') before pushing again.\n" +"See the 'Note about fast-forwards' in 'git push --help' for details." +msgstr "" +"현재 브랜치의 끝이 리모트 브랜치보다 뒤에 있으므로 업데이트가\n" +"거부되었습니다. 이 브랜치를 체크아웃하고 푸시하기 전에\n" +"('git pull ...' 등 명령으로) 리모트 변경 사항을 포함하십시오.\n" +"자세한 정보는 'git push --help'의 \"Note about fast-forwards' 부분을\n" +"참고하십시오." + +#: builtin/push.c:294 +msgid "" +"Updates were rejected because the remote contains work that you do\n" +"not have locally. This is usually caused by another repository pushing\n" +"to the same ref. You may want to first integrate the remote changes\n" +"(e.g., 'git pull ...') before pushing again.\n" +"See the 'Note about fast-forwards' in 'git push --help' for details." +msgstr "" +"리모트에 로컬에 없는 사항이 들어 있으므로 업데이트가\n" +"거부되었습니다. 이 상황은 보통 또 다른 저장소에서 같은\n" +"저장소로 푸시할 때 발생합니다. 푸시하기 전에\n" +"('git pull ...' 등 명령으로) 리모트 변경 사항을 먼저\n" +"포함해야 합니다.\n" +"자세한 정보는 'git push --help'의 \"Note about fast-forwards' 부분을\n" +"참고하십시오." + +#: builtin/push.c:301 +msgid "Updates were rejected because the tag already exists in the remote." +msgstr "리모트에 태그가 이미 있기 때문에 업데이트가 거부되었습니다." + +#: builtin/push.c:304 +msgid "" +"You cannot update a remote ref that points at a non-commit object,\n" +"or update a remote ref to make it point at a non-commit object,\n" +"without using the '--force' option.\n" +msgstr "" +"'--force' 옵션이 없이 커밋이 아닌 오브젝트를 가리키는 리모트\n" +"레퍼런스를 업데이트하거나, 커밋이 아닌 오브젝트를 가리키도록\n" +"업데이트할 수 없습니다.\n" + +#: builtin/push.c:363 +#, c-format +msgid "Pushing to %s\n" +msgstr "다음에 푸시: %s\n" + +#: builtin/push.c:367 +#, c-format +msgid "failed to push some refs to '%s'" +msgstr "레퍼런스를 '%s'에 푸시하는데 실패했습니다" + +#: builtin/push.c:397 +#, c-format +msgid "bad repository '%s'" +msgstr "잘못된 저장소 '%s'" + +#: builtin/push.c:398 +msgid "" +"No configured push destination.\n" +"Either specify the URL from the command-line or configure a remote " +"repository using\n" +"\n" +" git remote add <name> <url>\n" +"\n" +"and then push using the remote name\n" +"\n" +" git push <name>\n" +msgstr "" +"푸시 대상을 설정하지 않았습니다.\n" +"명령해에서 URL을 지정하거나 다음을 사용해 리모트 저장소를 설정하십시오\n" +"\n" +" git remote add <이름> <URL>\n" +"\n" +"그리고 이 리모트 이름을 사용해 푸시하십시오\n" +"\n" +" git push <name>\n" + +#: builtin/push.c:413 +msgid "--all and --tags are incompatible" +msgstr "--all 및 --tags 옵션은 호환되지 않습니다" + +#: builtin/push.c:414 +msgid "--all can't be combined with refspecs" +msgstr "--all 옵션은 레퍼런스명세와 같이 쓸 수 없습니다" + +#: builtin/push.c:419 +msgid "--mirror and --tags are incompatible" +msgstr "--mirror 및 --tags 옵션은 호환되지 않습니다" + +#: builtin/push.c:420 +msgid "--mirror can't be combined with refspecs" +msgstr "--mirror 옵션은 레퍼런스명세와 같이 쓸 수 없습니다" + +#: builtin/push.c:425 +msgid "--all and --mirror are incompatible" +msgstr "--all 및 --mirror 옵션은 호환되지 않습니다" + +#: builtin/push.c:537 +msgid "repository" +msgstr "저장소" + +#: builtin/push.c:538 builtin/send-pack.c:161 +msgid "push all refs" +msgstr "모든 레퍼런스 푸시하기" + +#: builtin/push.c:539 builtin/send-pack.c:163 +msgid "mirror all refs" +msgstr "모든 레퍼런스 미러" + +#: builtin/push.c:541 +msgid "delete refs" +msgstr "레퍼런스 삭제" + +#: builtin/push.c:542 +msgid "push tags (can't be used with --all or --mirror)" +msgstr "태그 푸시하기 (--all 또는 --mirror 옵션과 같이 쓸 수 없음)" + +#: builtin/push.c:545 builtin/send-pack.c:164 +msgid "force updates" +msgstr "강제로 업데이트" + +#: builtin/push.c:547 builtin/send-pack.c:175 +msgid "refname>:<expect" +msgstr "레퍼런스이름>:<예상" + +#: builtin/push.c:548 builtin/send-pack.c:176 +msgid "require old value of ref to be at this value" +msgstr "레퍼런스의 과거 값이 이 값이어야 합니다" + +#: builtin/push.c:550 +msgid "check|on-demand|no" +msgstr "check|on-demand|no" + +#: builtin/push.c:551 +msgid "control recursive pushing of submodules" +msgstr "재귀적 하위 모듈 푸시 방식을 설정합니다" + +#: builtin/push.c:553 builtin/send-pack.c:169 +msgid "use thin pack" +msgstr "얇은 묶음을 사용합니다" + +#: builtin/push.c:554 builtin/push.c:555 builtin/send-pack.c:158 +#: builtin/send-pack.c:159 +msgid "receive pack program" +msgstr "receive pack 프로그램" + +#: builtin/push.c:556 +msgid "set upstream for git pull/status" +msgstr "git pull/status에 대한 업스트림을 설정합니다" + +#: builtin/push.c:559 +msgid "prune locally removed refs" +msgstr "로컬에서 제거한 레퍼런스를 잘라냅니다" + +#: builtin/push.c:561 +msgid "bypass pre-push hook" +msgstr "푸시 전 후크를 건너뜁니다" + +#: builtin/push.c:562 +msgid "push missing but relevant tags" +msgstr "빠졌지만 관련된 태그를 푸시합니다" + +#: builtin/push.c:565 builtin/send-pack.c:166 +msgid "GPG sign the push" +msgstr "푸시에 GPG 서명" + +#: builtin/push.c:567 builtin/send-pack.c:170 +msgid "request atomic transaction on remote side" +msgstr "리모트 쪽에 원자 트랜잭션을 요청합니다" + +#: builtin/push.c:577 +msgid "--delete is incompatible with --all, --mirror and --tags" +msgstr "--delete 옵션은 --all, --mirror, --tags 옵션과 호환되지 않습니다" + +#: builtin/push.c:579 +msgid "--delete doesn't make sense without any refs" +msgstr "--delete 옵션은 레퍼런스 없이 앞뒤가 맞지 않습니다" + +#: builtin/read-tree.c:37 +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=<접두어>) [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--index-output=<파일>] (--empty | <트리-따위> [<트리-따위2> [<트리-따위3>]])" + +#: builtin/read-tree.c:110 +msgid "write resulting index to <file>" +msgstr "결과 인덱스를 <파일>에 씁니다" + +#: builtin/read-tree.c:113 +msgid "only empty the index" +msgstr "인덱스를 비우기만 합니다" + +#: builtin/read-tree.c:115 +msgid "Merging" +msgstr "병합하기" + +#: builtin/read-tree.c:117 +msgid "perform a merge in addition to a read" +msgstr "읽은 다음 병합을 수행합니다" + +#: builtin/read-tree.c:119 +msgid "3-way merge if no file level merging required" +msgstr "파일 단위 병합이 필요하지 않으면 3-방향 병합을 합니다" + +#: builtin/read-tree.c:121 +msgid "3-way merge in presence of adds and removes" +msgstr "추가와 제거가 있을 때 3-방향 병합을 합니다" + +#: builtin/read-tree.c:123 +msgid "same as -m, but discard unmerged entries" +msgstr "-m과 동일하지만, 병합되지 않은 항목을 버립니다" + +#: builtin/read-tree.c:124 +msgid "<subdirectory>/" +msgstr "<하위디렉터리>/" + +#: builtin/read-tree.c:125 +msgid "read the tree into the index under <subdirectory>/" +msgstr "트리를 <하위디렉터리>/ 아래 인덱스로 읽습니다" + +#: builtin/read-tree.c:128 +msgid "update working tree with merge result" +msgstr "작업 폴더를 병합 결과로 업데이트합니다" + +#: builtin/read-tree.c:130 +msgid "gitignore" +msgstr "gitignore" + +#: builtin/read-tree.c:131 +msgid "allow explicitly ignored files to be overwritten" +msgstr "무시하는 파일을 덮어쓰도록 명시적으로 허용합니다" + +#: builtin/read-tree.c:134 +msgid "don't check the working tree after merging" +msgstr "병합 후에 작업 폴더를 확인하지 않습니다" + +#: builtin/read-tree.c:135 +msgid "don't update the index or the work tree" +msgstr "인덱스나 작업 폴더를 업데이트하지 않습니다" + +#: builtin/read-tree.c:137 +msgid "skip applying sparse checkout filter" +msgstr "드문 체크아웃 필터 적용을 건너뜁니다" + +#: builtin/read-tree.c:139 +msgid "debug unpack-trees" +msgstr "unpack-trees 디버깅" + +#: builtin/reflog.c:428 +#, c-format +msgid "'%s' for '%s' is not a valid timestamp" +msgstr "'%s' 값이 '%s'에 대해 올바른 시각 값이 아닙니다" + +#: builtin/reflog.c:545 builtin/reflog.c:550 +#, c-format +msgid "'%s' is not a valid timestamp" +msgstr "'%s'은(는) 올바른 시각 값이 아닙니다" + +#: builtin/remote.c:12 +msgid "git remote [-v | --verbose]" +msgstr "git remote [-v | --verbose]" + +#: builtin/remote.c:13 +msgid "" +"git remote add [-t <branch>] [-m <master>] [-f] [--tags | --no-tags] [--" +"mirror=<fetch|push>] <name> <url>" +msgstr "" +"git remote add [-t <브랜치>] [-m <master>] [-f] [--tags | --no-tags] [--" +"mirror=<fetch|push>] <이름> <url>" + +#: builtin/remote.c:14 builtin/remote.c:34 +msgid "git remote rename <old> <new>" +msgstr "git remote rename <옛이름> <새이름>" + +#: builtin/remote.c:15 builtin/remote.c:39 +msgid "git remote remove <name>" +msgstr "git remote remove <이름>" + +#: builtin/remote.c:16 builtin/remote.c:44 +msgid "git remote set-head <name> (-a | --auto | -d | --delete | <branch>)" +msgstr "git remote set-head <이름> (-a | --auto | -d | --delete | <브랜치>)" + +#: builtin/remote.c:17 +msgid "git remote [-v | --verbose] show [-n] <name>" +msgstr "git remote [-v | --verbose] show [-n] <이름>" + +#: builtin/remote.c:18 +msgid "git remote prune [-n | --dry-run] <name>" +msgstr "git remote prune [-n | --dry-run] <이름>" + +#: builtin/remote.c:19 +msgid "" +"git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)...]" +msgstr "" +"git remote [-v | --verbose] update [-p | --prune] [(<그룹> | <리모트>)...]" + +#: builtin/remote.c:20 +msgid "git remote set-branches [--add] <name> <branch>..." +msgstr "git remote set-branches [--add] <이름> <브랜치>..." + +#: builtin/remote.c:21 builtin/remote.c:70 +msgid "git remote get-url [--push] [--all] <name>" +msgstr "git remote get-url [--push] [--all] <이름>" + +#: builtin/remote.c:22 builtin/remote.c:75 +msgid "git remote set-url [--push] <name> <newurl> [<oldurl>]" +msgstr "git remote set-url [--push] <이름> <새url> [<옛url>]" + +#: builtin/remote.c:23 builtin/remote.c:76 +msgid "git remote set-url --add <name> <newurl>" +msgstr "git remote set-url --add <이름> <새url>" + +#: builtin/remote.c:24 builtin/remote.c:77 +msgid "git remote set-url --delete <name> <url>" +msgstr "git remote set-url --delete <이름> <url>" + +#: builtin/remote.c:29 +msgid "git remote add [<options>] <name> <url>" +msgstr "git remote add [<옵션>] <이름> <url>" + +#: builtin/remote.c:49 +msgid "git remote set-branches <name> <branch>..." +msgstr "git remote set-branches <이름> <브랜치>..." + +#: builtin/remote.c:50 +msgid "git remote set-branches --add <name> <branch>..." +msgstr "git remote set-branches --add <이름> <브랜치>..." + +#: builtin/remote.c:55 +msgid "git remote show [<options>] <name>" +msgstr "git remote show [<옵션>] <이름>" + +#: builtin/remote.c:60 +msgid "git remote prune [<options>] <name>" +msgstr "git remote prune [<옵션>] <이름>" + +#: builtin/remote.c:65 +msgid "git remote update [<options>] [<group> | <remote>]..." +msgstr "git remote update [<옵션>] [<그룹> | <리모트>]..." + +#: builtin/remote.c:94 +#, c-format +msgid "Updating %s" +msgstr "%s 업데이트 중" + +#: builtin/remote.c:126 +msgid "" +"--mirror is dangerous and deprecated; please\n" +"\t use --mirror=fetch or --mirror=push instead" +msgstr "" +"--mirror는 위험하므로 사용을 권하지 않습니다. 대신에\n" +"\t --mirror=fetch 또는 --mirror=push를 사용하십시오" + +#: builtin/remote.c:143 +#, c-format +msgid "unknown mirror argument: %s" +msgstr "알 수 없는 --mirror 옵션 인자: %s" + +#: builtin/remote.c:159 +msgid "fetch the remote branches" +msgstr "리모트 브랜치를 가져옵니다" + +#: builtin/remote.c:161 +msgid "import all tags and associated objects when fetching" +msgstr "가져올 때 모든 태그와 관련 오브젝트를 가져옵니다" + +#: builtin/remote.c:164 +msgid "or do not fetch any tag at all (--no-tags)" +msgstr "아니면 아무 태그도 가져오지 않습니다 (--no-tags)" + +#: builtin/remote.c:166 +msgid "branch(es) to track" +msgstr "추적할 브랜치" + +#: builtin/remote.c:167 +msgid "master branch" +msgstr "마스터 브랜치" + +#: builtin/remote.c:168 +msgid "push|fetch" +msgstr "push|fetch" + +#: builtin/remote.c:169 +msgid "set up remote as a mirror to push to or fetch from" +msgstr "리모트를 푸시 또는 가져올 때 사용할 미러로 설정합니다" + +#: builtin/remote.c:181 +msgid "specifying a master branch makes no sense with --mirror" +msgstr "--mirror 옵션과 같이 마스터 브랜치를 지정하면 앞뒤가 맞지 않습니다" + +#: builtin/remote.c:183 +msgid "specifying branches to track makes sense only with fetch mirrors" +msgstr "마스터 브랜치를 지정은 fetch 미러에서만 앞뒤가 맞습니다" + +#: builtin/remote.c:193 builtin/remote.c:643 +#, c-format +msgid "remote %s already exists." +msgstr "%s 리모트가 이미 있습니다." + +#: builtin/remote.c:197 builtin/remote.c:647 +#, c-format +msgid "'%s' is not a valid remote name" +msgstr "'%s'은(는) 올바른 리모트 이름이 아닙니다" + +#: builtin/remote.c:241 +#, c-format +msgid "Could not setup master '%s'" +msgstr "마스터 '%s'을(를) 설정할 수 없습니다" + +#: builtin/remote.c:341 +#, c-format +msgid "Could not get fetch map for refspec %s" +msgstr "%s 레퍼런스명세에 대한 가져오기 맵을 얻을 수 없습니다" + +#: builtin/remote.c:442 builtin/remote.c:450 +msgid "(matching)" +msgstr "(일치)" + +#: builtin/remote.c:454 +msgid "(delete)" +msgstr "(삭제)" + +#: builtin/remote.c:594 builtin/remote.c:600 builtin/remote.c:606 +#, c-format +msgid "Could not append '%s' to '%s'" +msgstr "'%s'을(를) '%s'에 추가할 수 없습니다" + +#: builtin/remote.c:636 builtin/remote.c:775 builtin/remote.c:875 +#, c-format +msgid "No such remote: %s" +msgstr "그런 리모트가 없습니다: %s" + +#: builtin/remote.c:653 +#, c-format +msgid "Could not rename config section '%s' to '%s'" +msgstr "설정 섹션을 '%s'에서 '%s'(으)로 바꿀 수 없습니다" + +#: builtin/remote.c:659 builtin/remote.c:827 +#, c-format +msgid "Could not remove config section '%s'" +msgstr "설정 섹션 '%s'을(를) 제거할 수 없습니다" + +#: builtin/remote.c:674 +#, c-format +msgid "" +"Not updating non-default fetch refspec\n" +"\t%s\n" +"\tPlease update the configuration manually if necessary." +msgstr "" +"기본값이 아닌 가져오기 레퍼런스명세를 업데이트하지 않습니다\n" +"\t%s\n" +"\t필요하면 설정을 수동으로 업데이트하십시오." + +#: builtin/remote.c:680 +#, c-format +msgid "Could not append '%s'" +msgstr "'%s'에 덧붙일 수 없습니다" + +#: builtin/remote.c:691 +#, c-format +msgid "Could not set '%s'" +msgstr "'%s'을(를) 설정할 수 없습니다" + +#: builtin/remote.c:713 +#, c-format +msgid "deleting '%s' failed" +msgstr "'%s' 삭제가 실패했습니다" + +#: builtin/remote.c:747 +#, c-format +msgid "creating '%s' failed" +msgstr "'%s' 만들기가 실패했습니다" + +#: builtin/remote.c:813 +msgid "" +"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n" +"to delete it, use:" +msgid_plural "" +"Note: Some branches outside the refs/remotes/ hierarchy were not removed;\n" +"to delete them, use:" +msgstr[0] "" +"알림: 레퍼런스/리모트/ 계층 구조 밖에 있는 일부 브랜치가 제거되지 않았습니다.\n" +"삭제하려면 다음을 사용하십시오:" + +#: builtin/remote.c:928 +#, c-format +msgid " new (next fetch will store in remotes/%s)" +msgstr " 새 항목 (다음 가져오기는 remotes/%s 아래 저장됩니다)" + +#: builtin/remote.c:931 +msgid " tracked" +msgstr " 추적됨" + +#: builtin/remote.c:933 +msgid " stale (use 'git remote prune' to remove)" +msgstr " 오래됨 (제거하려면 'git remote prune'을 사용하십시오)" + +#: builtin/remote.c:935 +msgid " ???" +msgstr " ???" + +#: builtin/remote.c:976 +#, c-format +msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch" +msgstr "잘못된 branch.%s.merge 값. 여러 개 브랜치로 리베이스할 수 없습니다" + +#: builtin/remote.c:983 +#, c-format +msgid "rebases onto remote %s" +msgstr "리베이스: 리모트 %s" + +#: builtin/remote.c:986 +#, c-format +msgid " merges with remote %s" +msgstr " 병합: 리모트 %s" + +#: builtin/remote.c:987 +msgid " and with remote" +msgstr " 그리고 리모트" + +#: builtin/remote.c:989 +#, c-format +msgid "merges with remote %s" +msgstr "병합: 리모트 %s" + +#: builtin/remote.c:990 +msgid " and with remote" +msgstr " 그리고 리모트" + +#: builtin/remote.c:1036 +msgid "create" +msgstr "만들기" + +#: builtin/remote.c:1039 +msgid "delete" +msgstr "삭제" + +#: builtin/remote.c:1043 +msgid "up to date" +msgstr "최신 상태" + +#: builtin/remote.c:1046 +msgid "fast-forwardable" +msgstr "정방향 진행 가능" + +#: builtin/remote.c:1049 +msgid "local out of date" +msgstr "로컬이 뒤떨어짐" + +#: builtin/remote.c:1056 +#, c-format +msgid " %-*s forces to %-*s (%s)" +msgstr " %-*s에서 %-*s(으)로 강제 (%s)" + +#: builtin/remote.c:1059 +#, c-format +msgid " %-*s pushes to %-*s (%s)" +msgstr " %-*s에서 %-*s(으)로 푸시 (%s)" + +#: builtin/remote.c:1063 +#, c-format +msgid " %-*s forces to %s" +msgstr " %-*s에서 %s(으)로 강제" + +#: builtin/remote.c:1066 +#, c-format +msgid " %-*s pushes to %s" +msgstr " %-*s에서 %s(으)로 푸시" + +#: builtin/remote.c:1134 +msgid "do not query remotes" +msgstr "리모트에 질의하지 않습니다" + +#: builtin/remote.c:1161 +#, c-format +msgid "* remote %s" +msgstr "* 리모트 %s" + +#: builtin/remote.c:1162 +#, c-format +msgid " Fetch URL: %s" +msgstr " 가져오기 URL: %s" + +#: builtin/remote.c:1163 builtin/remote.c:1314 +msgid "(no URL)" +msgstr "(URL 없음)" + +#: builtin/remote.c:1172 builtin/remote.c:1174 +#, c-format +msgid " Push URL: %s" +msgstr " 푸시 URL: %s" + +#: builtin/remote.c:1176 builtin/remote.c:1178 builtin/remote.c:1180 +#, c-format +msgid " HEAD branch: %s" +msgstr " HEAD 브랜치: %s" + +#: builtin/remote.c:1182 +#, c-format +msgid "" +" HEAD branch (remote HEAD is ambiguous, may be one of the following):\n" +msgstr " HEAD 브랜치 (리모트 HEAD는 애매하고, 다음 중 하나일 수 있습니다):\n" + +#: builtin/remote.c:1194 +#, c-format +msgid " Remote branch:%s" +msgid_plural " Remote branches:%s" +msgstr[0] " 리모트 브랜치:%s" + +#: builtin/remote.c:1197 builtin/remote.c:1224 +msgid " (status not queried)" +msgstr " (상태를 질의하지 않음)" + +#: builtin/remote.c:1206 +msgid " Local branch configured for 'git pull':" +msgid_plural " Local branches configured for 'git pull':" +msgstr[0] " 'git pull'에 사용할 로컬 브랜치를 설정:" + +#: builtin/remote.c:1214 +msgid " Local refs will be mirrored by 'git push'" +msgstr " 로컬 레퍼런스를 'git push'로 미러링할 예정" + +#: builtin/remote.c:1221 +#, c-format +msgid " Local ref configured for 'git push'%s:" +msgid_plural " Local refs configured for 'git push'%s:" +msgstr[0] " 로컬 레퍼런스를 'git push'로 미러링%s:" + +#: builtin/remote.c:1242 +msgid "set refs/remotes/<name>/HEAD according to remote" +msgstr "레퍼런스/리모트/<이름>/HEAD 값을 리모트에 맞게 설정합니다" + +#: builtin/remote.c:1244 +msgid "delete refs/remotes/<name>/HEAD" +msgstr "레퍼런스/리모트/<이름>/HEAD 값을 삭제합니다" + +#: builtin/remote.c:1259 +msgid "Cannot determine remote HEAD" +msgstr "리모트 HEAD를 결정할 수 없습니다" + +#: builtin/remote.c:1261 +msgid "Multiple remote HEAD branches. Please choose one explicitly with:" +msgstr "리모트 HEAD 브랜치가 여러개입니다. 다음 중 하나를 명시적으로 지정하십시오:" + +#: builtin/remote.c:1271 +#, c-format +msgid "Could not delete %s" +msgstr "%s을(를) 삭제할 수 없습니다" + +#: builtin/remote.c:1279 +#, c-format +msgid "Not a valid ref: %s" +msgstr "올바른 레퍼런스가 아닙니다: %s" + +#: builtin/remote.c:1281 +#, c-format +msgid "Could not setup %s" +msgstr "%s을(를) 설정할 수 없습니다" + +#: builtin/remote.c:1299 +#, c-format +msgid " %s will become dangling!" +msgstr " %s의 연결이 끊어집니다!" + +#: builtin/remote.c:1300 +#, c-format +msgid " %s has become dangling!" +msgstr " %s의 연결이 끊어졌습니다!" + +#: builtin/remote.c:1310 +#, c-format +msgid "Pruning %s" +msgstr "잘라냄: %s" + +#: builtin/remote.c:1311 +#, c-format +msgid "URL: %s" +msgstr "URL: %s" + +#: builtin/remote.c:1327 +#, c-format +msgid " * [would prune] %s" +msgstr " * [잘라낼 예정] %s" + +#: builtin/remote.c:1330 +#, c-format +msgid " * [pruned] %s" +msgstr " * [잘라냄] %s" + +#: builtin/remote.c:1375 +msgid "prune remotes after fetching" +msgstr "가져온 후에 리모트를 잘라냅니다" + +#: builtin/remote.c:1441 builtin/remote.c:1498 builtin/remote.c:1566 +#, c-format +msgid "No such remote '%s'" +msgstr "그런 리모트가 없습니다 ('%s')" + +#: builtin/remote.c:1461 +msgid "add branch" +msgstr "브랜치를 추가합니다" + +#: builtin/remote.c:1468 +msgid "no remote specified" +msgstr "리모트를 지정하지 않았습니다" + +#: builtin/remote.c:1485 +msgid "query push URLs rather than fetch URLs" +msgstr "가져오기 URL이 아니라 푸시 URL을 질의합니다" + +#: builtin/remote.c:1487 +msgid "return all URLs" +msgstr "모든 URL을 리턴합니다" + +#: builtin/remote.c:1515 +#, c-format +msgid "no URLs configured for remote '%s'" +msgstr "'%s' 리모트에 대한 URL을 설정하지 않았습니다" + +#: builtin/remote.c:1541 +msgid "manipulate push URLs" +msgstr "푸시 URL을 지정합니다" + +#: builtin/remote.c:1543 +msgid "add URL" +msgstr "URL을 추가합니다" + +#: builtin/remote.c:1545 +msgid "delete URLs" +msgstr "URL을 삭제합니다" + +#: builtin/remote.c:1552 +msgid "--add --delete doesn't make sense" +msgstr "--add --delete 옵션을 둘다 쓰면 안 됩니다" + +#: builtin/remote.c:1592 +#, c-format +msgid "Invalid old URL pattern: %s" +msgstr "잘못된 오래전 URL 패턴: %s" + +#: builtin/remote.c:1600 +#, c-format +msgid "No such URL found: %s" +msgstr "그런 URL이 없습니다: %s" + +#: builtin/remote.c:1602 +msgid "Will not delete all non-push URLs" +msgstr "푸시용이 아닌 모든 URL을 삭제하지 않습니다" + +#: builtin/remote.c:1616 +msgid "be verbose; must be placed before a subcommand" +msgstr "자세히 표시합니다 (하위 명령 앞에 와야 합니다)" + +#: builtin/repack.c:17 +msgid "git repack [<options>]" +msgstr "git repack [<옵션>]" + +#: builtin/repack.c:159 +msgid "pack everything in a single pack" +msgstr "하나의 묶음 안에 모두 묶습니다" + +#: builtin/repack.c:161 +msgid "same as -a, and turn unreachable objects loose" +msgstr "-a와 동일하고, 접근 불가능 오브젝트를 느슨하게 바꿉니다" + +#: builtin/repack.c:164 +msgid "remove redundant packs, and run git-prune-packed" +msgstr "여분의 묶음을 제거하고, git-prune-packed를 실행합니다" + +#: builtin/repack.c:166 +msgid "pass --no-reuse-delta to git-pack-objects" +msgstr "git-pack-objects에 --no-reuse-delta 옵션을 넘깁니다" + +#: builtin/repack.c:168 +msgid "pass --no-reuse-object to git-pack-objects" +msgstr "git-pack-objects에 --no-reuse-object 옵션을 넘깁니다" + +#: builtin/repack.c:170 +msgid "do not run git-update-server-info" +msgstr "git-update-server-info를 실행하지 않습니다" + +#: builtin/repack.c:173 +msgid "pass --local to git-pack-objects" +msgstr "git-pack-objects에 --local 옵션을 넘깁니다" + +#: builtin/repack.c:175 +msgid "write bitmap index" +msgstr "비트맵 인덱스를 씁니다" + +#: builtin/repack.c:176 +msgid "approxidate" +msgstr "대략의시각" + +#: builtin/repack.c:177 +msgid "with -A, do not loosen objects older than this" +msgstr "-A에 추가로, 지정한 시각보다 오래된 오브젝트를 느슨하게 만들지 않습니다" + +#: builtin/repack.c:179 +msgid "size of the window used for delta compression" +msgstr "델타 압축에 사용할 윈도우 크기" + +#: builtin/repack.c:180 builtin/repack.c:184 +msgid "bytes" +msgstr "바이트수" + +#: builtin/repack.c:181 +msgid "same as the above, but limit memory size instead of entries count" +msgstr "위와 동일하지만, 항목 수 대신 메모리 크기를 제한합니다" + +#: builtin/repack.c:183 +msgid "limits the maximum delta depth" +msgstr "최대 델타 깊이를 제한합니다" + +#: builtin/repack.c:185 +msgid "maximum size of each packfile" +msgstr "묶음 파일의 최대 크기" + +#: builtin/repack.c:187 +msgid "repack objects in packs marked with .keep" +msgstr ".keep으로 표시된 묶음의 오브젝트를 다시 묶습니다" + +#: builtin/repack.c:197 +msgid "cannot delete packs in a precious-objects repo" +msgstr "precious-objects 저장소의 묶음을 삭제할 수 없습니다" + +#: builtin/repack.c:381 +#, c-format +msgid "removing '%s' failed" +msgstr "'%s' 제거가 실패했습니다" + +#: builtin/replace.c:19 +msgid "git replace [-f] <object> <replacement>" +msgstr "git replace [-f] <오브젝트> <대체이름>" + +#: builtin/replace.c:20 +msgid "git replace [-f] --edit <object>" +msgstr "git replace [-f] --edit <오브젝트>" + +#: builtin/replace.c:21 +msgid "git replace [-f] --graft <commit> [<parent>...]" +msgstr "git replace [-f] --graft <커밋> [<상위>...]" + +#: builtin/replace.c:22 +msgid "git replace -d <object>..." +msgstr "git replace -d <오브젝트>..." + +#: builtin/replace.c:23 +msgid "git replace [--format=<format>] [-l [<pattern>]]" +msgstr "git replace [--format=<형식>] [-l [<패턴>]]" + +#: builtin/replace.c:325 builtin/replace.c:363 builtin/replace.c:391 +#, c-format +msgid "Not a valid object name: '%s'" +msgstr "올바른 오브젝트 이름이 아닙니다: '%s'" + +#: builtin/replace.c:355 +#, c-format +msgid "bad mergetag in commit '%s'" +msgstr "커밋 '%s'에 잘못된 병합태그" + +#: builtin/replace.c:357 +#, c-format +msgid "malformed mergetag in commit '%s'" +msgstr "커밋 '%s'에 잘못된 형식의 병합태그" + +#: builtin/replace.c:368 +#, c-format +msgid "" +"original commit '%s' contains mergetag '%s' that is discarded; use --edit " +"instead of --graft" +msgstr "본래 커밋 '%s'에 버려진 병합태그 '%s'이(가) 들어 있습니다. --graft 대신 --edit 옵션을 사용하십시오" + +#: builtin/replace.c:401 +#, c-format +msgid "the original commit '%s' has a gpg signature." +msgstr "본래 커밋 '%s'에 GPG 서명이 있습니다." + +#: builtin/replace.c:402 +msgid "the signature will be removed in the replacement commit!" +msgstr "대체 커밋에서 서명을 제거합니다!" + +#: builtin/replace.c:408 +#, c-format +msgid "could not write replacement commit for: '%s'" +msgstr "다음에 대한 대체 커밋을 쓸 수 없습니다: '%s'" + +#: builtin/replace.c:432 +msgid "list replace refs" +msgstr "대체 레퍼런스 목록을 표시합니다" + +#: builtin/replace.c:433 +msgid "delete replace refs" +msgstr "대체 레퍼런스를 삭제합니다" + +#: builtin/replace.c:434 +msgid "edit existing object" +msgstr "현재 오브젝트를 편집합니다" + +#: builtin/replace.c:435 +msgid "change a commit's parents" +msgstr "커밋의 상위 항목을 바꿉니다" + +#: builtin/replace.c:436 +msgid "replace the ref if it exists" +msgstr "레퍼런스가 있으면 대체합니다" + +#: builtin/replace.c:437 +msgid "do not pretty-print contents for --edit" +msgstr "--edit에 대한 내용을 예쁘게 표시하지 않습니다" + +#: builtin/replace.c:438 +msgid "use this format" +msgstr "이 형식을 사용합니다" + +#: builtin/rerere.c:12 +msgid "git rerere [clear | forget <path>... | status | remaining | diff | gc]" +msgstr "git rerere [clear | forget <경로>... | status | remaining | diff | gc]" + +#: builtin/rerere.c:58 +msgid "register clean resolutions in index" +msgstr "인덱스에 깔끔한 해결을 등록합니다" + +#: builtin/reset.c:26 +msgid "" +"git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>]" +msgstr "git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<커밋>]" + +#: builtin/reset.c:27 +msgid "git reset [-q] <tree-ish> [--] <paths>..." +msgstr "git reset [-q] <트리-따위> [--] <경로>..." + +#: builtin/reset.c:28 +msgid "git reset --patch [<tree-ish>] [--] [<paths>...]" +msgstr "git reset --patch [<트리-따위>] [--] [<경로>...]" + +#: builtin/reset.c:34 +msgid "mixed" +msgstr "혼합" + +#: builtin/reset.c:34 +msgid "soft" +msgstr "소프트" + +#: builtin/reset.c:34 +msgid "hard" +msgstr "하드" + +#: builtin/reset.c:34 +msgid "merge" +msgstr "병합" + +#: builtin/reset.c:34 +msgid "keep" +msgstr "유지" + +#: builtin/reset.c:74 +msgid "You do not have a valid HEAD." +msgstr "올바른 HEAD가 없습니다." + +#: builtin/reset.c:76 +msgid "Failed to find tree of HEAD." +msgstr "HEAD의 트리를 찾는데 실패했습니다." + +#: builtin/reset.c:82 +#, c-format +msgid "Failed to find tree of %s." +msgstr "%s의 트리를 찾는데 실패했습니다." + +#: builtin/reset.c:100 +#, c-format +msgid "HEAD is now at %s" +msgstr "HEAD의 현재 위치는 %s입니다" + +#: builtin/reset.c:183 +#, c-format +msgid "Cannot do a %s reset in the middle of a merge." +msgstr "병합 중에 %s 리셋을 할 수 없습니다." + +#: builtin/reset.c:276 +msgid "be quiet, only report errors" +msgstr "간략히 표시, 오류만 표시합니다" + +#: builtin/reset.c:278 +msgid "reset HEAD and index" +msgstr "HEAD와 인덱스를 리셋합니다" + +#: builtin/reset.c:279 +msgid "reset only HEAD" +msgstr "HEAD만 리셋합니다" + +#: builtin/reset.c:281 builtin/reset.c:283 +msgid "reset HEAD, index and working tree" +msgstr "HEAD, 인덱스, 작업폴더를 리셋합니다" + +#: builtin/reset.c:285 +msgid "reset HEAD but keep local changes" +msgstr "HEAD를 리셋하지만 로컬 변경 사항을 남겨둡니다" + +#: builtin/reset.c:288 +msgid "record only the fact that removed paths will be added later" +msgstr "제거한 경로를 나중에 추가한다는 사실만 기록합니다" + +#: builtin/reset.c:305 +#, c-format +msgid "Failed to resolve '%s' as a valid revision." +msgstr "'%s'을(를) 올바른 리비전으로 찾는데 실패했습니다." + +#: builtin/reset.c:313 +#, c-format +msgid "Failed to resolve '%s' as a valid tree." +msgstr "'%s'을(를) 올바른 트리로 찾는데 실패했습니다." + +#: builtin/reset.c:322 +msgid "--patch is incompatible with --{hard,mixed,soft}" +msgstr "--patch 옵션은 --{hard,mixed,soft} 옵션과 호환되지 않습니다" + +#: builtin/reset.c:331 +msgid "--mixed with paths is deprecated; use 'git reset -- <paths>' instead." +msgstr "--mixed 옵션을 경로와 같이 쓰기는 제거될 예정입니다. 대신에 'git reset -- <경로>'를 사용하십시오." + +#: builtin/reset.c:333 +#, c-format +msgid "Cannot do %s reset with paths." +msgstr "경로와 같이 %s 리셋을 할 수 없습니다." + +#: builtin/reset.c:343 +#, c-format +msgid "%s reset is not allowed in a bare repository" +msgstr "%s 리셋은 간략한 저장소에서만 쓸 수 있습니다" + +#: builtin/reset.c:347 +msgid "-N can only be used with --mixed" +msgstr "-N 옵션은 --mixed 옵션과 같이 써야만 합니다" + +#: builtin/reset.c:364 +msgid "Unstaged changes after reset:" +msgstr "리셋 뒤에 스테이징하지 않은 변경 사항:" + +#: builtin/reset.c:370 +#, c-format +msgid "Could not reset index file to revision '%s'." +msgstr "인덱스 파일을 '%s' 리비전으로 리셋할 수 없습니다." + +#: builtin/reset.c:374 +msgid "Could not write new index file." +msgstr "새 인덱스 파일을 쓸 수 없습니다." + +#: builtin/rev-list.c:354 +msgid "rev-list does not support display of notes" +msgstr "rev-list는 노트 표시를 지원하지 않습니다" + +#: builtin/rev-parse.c:358 +msgid "git rev-parse --parseopt [<options>] -- [<args>...]" +msgstr "git rev-parse --parseopt [<옵션>] -- [<인자>...]" + +#: builtin/rev-parse.c:363 +msgid "keep the `--` passed as an arg" +msgstr "인자로 넘긴 `--`를 유지합니다" + +#: builtin/rev-parse.c:365 +msgid "stop parsing after the first non-option argument" +msgstr "첫번째 옵션이 아닌 인자 뒤에 파싱을 중지합니다" + +#: builtin/rev-parse.c:368 +msgid "output in stuck long form" +msgstr "stuck long 형식으로 출력합니다" + +#: builtin/rev-parse.c:499 +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 [<옵션>] -- [<인자>...]\n" +" or: git rev-parse --sq-quote [<인자>...]\n" +" or: git rev-parse [<옵션>] [<인자>...]\n" +"\n" +"첫번째 사용방법에 대해 자세히 알고 싶으면, \"git rev-parse --parseopt -h\"를\n" +"실행해 보십시오." + +#: builtin/revert.c:22 +msgid "git revert [<options>] <commit-ish>..." +msgstr "git revert [<옵션>] <커밋-따위>..." + +#: builtin/revert.c:23 +msgid "git revert <subcommand>" +msgstr "git revert <하위명령>" + +#: builtin/revert.c:28 +msgid "git cherry-pick [<options>] <commit-ish>..." +msgstr "git cherry-pick [<옵션>] <커밋-따위>..." + +#: builtin/revert.c:29 +msgid "git cherry-pick <subcommand>" +msgstr "git cherry-pick <하위명령>" + +#: builtin/revert.c:71 +#, c-format +msgid "%s: %s cannot be used with %s" +msgstr "%s: %s은(는) %s와(과) 같이 쓸 수 없습니다" + +#: builtin/revert.c:80 +msgid "end revert or cherry-pick sequence" +msgstr "되돌리기 또는 커밋 빼오기 연속을 끝냅니다" + +#: builtin/revert.c:81 +msgid "resume revert or cherry-pick sequence" +msgstr "되돌리기 또는 커밋 빼오기 연속을 계속합니다" + +#: builtin/revert.c:82 +msgid "cancel revert or cherry-pick sequence" +msgstr "되돌리기 또는 커밋 빼오기 연속을 취소합니다" + +#: builtin/revert.c:83 +msgid "don't automatically commit" +msgstr "자동으로 커밋하지 않습니다" + +#: builtin/revert.c:84 +msgid "edit the commit message" +msgstr "커밋 메시지를 편집합니다" + +#: builtin/revert.c:87 +msgid "parent number" +msgstr "이전 커밋 번호" + +#: builtin/revert.c:89 +msgid "merge strategy" +msgstr "병합 전략" + +#: builtin/revert.c:90 +msgid "option" +msgstr "옵션" + +#: builtin/revert.c:91 +msgid "option for merge strategy" +msgstr "병합 전략 옵션" + +#: builtin/revert.c:104 +msgid "append commit name" +msgstr "커밋 이름을 뒤에 붙입니다" + +#: builtin/revert.c:106 +msgid "preserve initially empty commits" +msgstr "최초 빈 커밋을 유지합니다" + +#: builtin/revert.c:107 +msgid "allow commits with empty messages" +msgstr "빈 메시지로 커밋을 허용합니다" + +#: builtin/revert.c:108 +msgid "keep redundant, empty commits" +msgstr "여분의 빈 커밋을 유지합니다" + +#: builtin/revert.c:112 +msgid "program error" +msgstr "프로그램 오류" + +#: builtin/revert.c:197 +msgid "revert failed" +msgstr "되돌리기 실패" + +#: builtin/revert.c:212 +msgid "cherry-pick failed" +msgstr "cherry-pick 실패" + +#: builtin/rm.c:17 +msgid "git rm [<options>] [--] <file>..." +msgstr "git rm [<옵션>] [--] <파일>..." + +#: builtin/rm.c:65 +msgid "" +"the following submodule (or one of its nested submodules)\n" +"uses a .git directory:" +msgid_plural "" +"the following submodules (or one of their nested submodules)\n" +"use a .git directory:" +msgstr[0] "" +"다음 하위 모듈이 (또는 그 내부 하위 모듈이) .git\n" +"디렉터리를 사용합니다:" + +#: builtin/rm.c:71 +msgid "" +"\n" +"(use 'rm -rf' if you really want to remove it including all of its history)" +msgstr "\n(정말로 그 커밋 내역까지 포함해 제거하려면 'rm -rf'를 사용하십시오)" + +#: builtin/rm.c:230 +msgid "" +"the following file has staged content different from both the\n" +"file and the HEAD:" +msgid_plural "" +"the following files have staged content different from both the\n" +"file and the HEAD:" +msgstr[0] "" +"다음 파일에 파일과 HEAD 모두 다른 스테이징한 내용이\n" +"있습니다:" + +#: builtin/rm.c:235 +msgid "" +"\n" +"(use -f to force removal)" +msgstr "" +"\n" +"(강제로 제거하려면 -f 옵션을 사용하십시오)" + +#: builtin/rm.c:239 +msgid "the following file has changes staged in the index:" +msgid_plural "the following files have changes staged in the index:" +msgstr[0] "다음 파일이 인덱스에 스테이징한 변경 사항이 있습니다:" + +#: builtin/rm.c:243 builtin/rm.c:254 +msgid "" +"\n" +"(use --cached to keep the file, or -f to force removal)" +msgstr "\n(파일을 유지하려면 --cached 옵션, 강제로 제거하려면 -f 옵션을 사용하십시오)" + +#: builtin/rm.c:251 +msgid "the following file has local modifications:" +msgid_plural "the following files have local modifications:" +msgstr[0] "다음 파일에 로컬 수정 사항이 있습니다:" + +#: builtin/rm.c:269 +msgid "do not list removed files" +msgstr "제거한 파일 목록을 표시하지 않습니다" + +#: builtin/rm.c:270 +msgid "only remove from the index" +msgstr "인덱스에서만 제거합니다" + +#: builtin/rm.c:271 +msgid "override the up-to-date check" +msgstr "최신 버전 확인을 하지 않습니다" + +#: builtin/rm.c:272 +msgid "allow recursive removal" +msgstr "재귀적 제거를 허용합니다" + +#: builtin/rm.c:274 +msgid "exit with a zero status even if nothing matched" +msgstr "아무 것도 일치하지 않으면 상태 0번으로 끝납니다" + +#: builtin/rm.c:317 +msgid "Please, stage your changes to .gitmodules or stash them to proceed" +msgstr "계속하려면 .gitmodules의 변경 사항을 스테이징하거나 stash하십시오" + +#: builtin/rm.c:335 +#, c-format +msgid "not removing '%s' recursively without -r" +msgstr "-r 옵션이 없으면 재귀적으로 '%s'을(를) 제거하지 않습니다" + +#: builtin/rm.c:374 +#, c-format +msgid "git rm: unable to remove %s" +msgstr "git rm: %s을(를) 제거할 수 없습니다" + +#: builtin/send-pack.c:18 +msgid "" +"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-" +"receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> " +"[<ref>...]\n" +" --all and explicit <ref> specification are mutually exclusive." +msgstr "" +"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<호스트>:]<디렉터리> [<레퍼런스>...]\n" +" --all 옵션과 명시적인 <레퍼런스> 명세 중 하나만 사용할 수 있습니다." + +#: builtin/send-pack.c:160 +msgid "remote name" +msgstr "리모트 이름" + +#: builtin/send-pack.c:171 +msgid "use stateless RPC protocol" +msgstr "상태 없는 RPC 프로토콜을 사용합니다" + +#: builtin/send-pack.c:172 +msgid "read refs from stdin" +msgstr "표준 입력에서 레퍼런스를 읽습니다" + +#: builtin/send-pack.c:173 +msgid "print status from remote helper" +msgstr "리모트 도움 프로그램의 상태를 표시합니다" + +#: builtin/shortlog.c:13 +msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]" +msgstr "git shortlog [<옵션>] [<리비전-범위>] [[--] [<경로>...]]" + +#: builtin/shortlog.c:131 +#, c-format +msgid "Missing author: %s" +msgstr "작성자 정보가 없습니다: %s" + +#: builtin/shortlog.c:230 +msgid "sort output according to the number of commits per author" +msgstr "작성자별 커밋 수에 따라 정렬합니다" + +#: builtin/shortlog.c:232 +msgid "Suppress commit descriptions, only provides commit count" +msgstr "커밋 설명을 생략하고, 커밋 수만 표시합니다" + +#: builtin/shortlog.c:234 +msgid "Show the email address of each author" +msgstr "작성자의 전자메일 주소를 표시합니다" + +#: builtin/shortlog.c:235 +msgid "w[,i1[,i2]]" +msgstr "w[,i1[,i2]]" + +#: builtin/shortlog.c:236 +msgid "Linewrap output" +msgstr "줄바꿈 출력" + +#: builtin/show-branch.c:10 +msgid "" +"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n" +"\t\t[--current] [--color[=<when>] | --no-color] [--sparse]\n" +"\t\t[--more=<n> | --list | --independent | --merge-base]\n" +"\t\t[--no-name | --sha1-name] [--topics] [(<rev> | <glob>)...]" +msgstr "" +"git show-branch [-a | --all] [-r | --remotes] [--topo-order | --date-order]\n" +"\t\t[--current] [--color[=<시각>] | --no-color] [--sparse]\n" +"\t\t[--more=<n> | --list | --independent | --merge-base]\n" +"\t\t[--no-name | --sha1-name] [--topics] [(<리비전> | <glob>)...]" + +#: builtin/show-branch.c:14 +msgid "git show-branch (-g | --reflog)[=<n>[,<base>]] [--list] [<ref>]" +msgstr "git show-branch (-g | --reflog)[=<n>[,<베이스>]] [--list] [<레퍼런스>]" + +#: builtin/show-branch.c:640 +msgid "show remote-tracking and local branches" +msgstr "리모트 추적 및 로컬 브랜치를 표시합니다" + +#: builtin/show-branch.c:642 +msgid "show remote-tracking branches" +msgstr "리모트 추적 브랜치를 표시합니다" + +#: builtin/show-branch.c:644 +msgid "color '*!+-' corresponding to the branch" +msgstr "브랜치에 따른 '*!+-' 표시에 색을 입힙니다" + +#: builtin/show-branch.c:646 +msgid "show <n> more commits after the common ancestor" +msgstr "공통 이전 커밋 뒤의 <n>개의 커밋을 표시합니다" + +#: builtin/show-branch.c:648 +msgid "synonym to more=-1" +msgstr "--more=-1 옵션과 동일" + +#: builtin/show-branch.c:649 +msgid "suppress naming strings" +msgstr "이름 문자열을 표시하지 않습니다" + +#: builtin/show-branch.c:651 +msgid "include the current branch" +msgstr "현재 브랜치를 포함" + +#: builtin/show-branch.c:653 +msgid "name commits with their object names" +msgstr "커밋의 이름을 그 오브젝트 이름으로 붙입니다" + +#: builtin/show-branch.c:655 +msgid "show possible merge bases" +msgstr "가능한 병합 기준점을 표시합니다" + +#: builtin/show-branch.c:657 +msgid "show refs unreachable from any other ref" +msgstr "다른 어떤 레퍼런스에서도 접근 불가능한 레퍼런스를 표시합니다" + +#: builtin/show-branch.c:659 +msgid "show commits in topological order" +msgstr "위상 순서에 따라 커밋을 표시합니다" + +#: builtin/show-branch.c:662 +msgid "show only commits not on the first branch" +msgstr "첫 브랜치에 없는 커밋만 표시합니다" + +#: builtin/show-branch.c:664 +msgid "show merges reachable from only one tip" +msgstr "하나의 끝에서만 접근 가능한 병합을 표시합니다" + +#: builtin/show-branch.c:666 +msgid "topologically sort, maintaining date order where possible" +msgstr "가능하면 시간 순서를 유지하면서 위상 순서로 정렬" + +#: builtin/show-branch.c:669 +msgid "<n>[,<base>]" +msgstr "<n>[,<베이스>]" + +#: builtin/show-branch.c:670 +msgid "show <n> most recent ref-log entries starting at base" +msgstr "기준부터 시작해 최대 <n>개의 최근 ref-log 항목을 표시합니다" + +#: 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] [--] [<패턴>...]" + +#: builtin/show-ref.c:11 +msgid "git show-ref --exclude-existing[=<pattern>]" +msgstr "git show-ref --exclude-existing[=<패턴>]" + +#: builtin/show-ref.c:165 +msgid "only show tags (can be combined with heads)" +msgstr "태그만 표시 (헤드와 결합 가능)" + +#: builtin/show-ref.c:166 +msgid "only show heads (can be combined with tags)" +msgstr "헤드만 표시 (태그와 결합 가능)" + +#: builtin/show-ref.c:167 +msgid "stricter reference checking, requires exact ref path" +msgstr "더 엄격한 레퍼런스 검사, 정확히 하나의 레퍼런스 경로 필요" + +#: builtin/show-ref.c:170 builtin/show-ref.c:172 +msgid "show the HEAD reference, even if it would be filtered out" +msgstr "HEAD 레퍼런스를 표시합니다 (필터링되서 제외되더라도)" + +#: builtin/show-ref.c:174 +msgid "dereference tags into object IDs" +msgstr "태그를 오브젝트 ID로 따라갑니다" + +#: builtin/show-ref.c:176 +msgid "only show SHA1 hash using <n> digits" +msgstr "SHA-1 표시에 <n>개의 숫자만 사용합니다" + +#: builtin/show-ref.c:180 +msgid "do not print results to stdout (useful with --verify)" +msgstr "표준 출력에 결과를 표시하지 않습니다 (--verify 옵션과 사용하면 좋음)" + +#: builtin/show-ref.c:182 +msgid "show refs from stdin that aren't in local repository" +msgstr "로컬 저장소에 없는 레퍼런스를 표준 입력에서 읽어 표시합니다" + +#: builtin/stripspace.c:17 +msgid "git stripspace [-s | --strip-comments]" +msgstr "git stripspace [-s | --strip-comments]" + +#: builtin/stripspace.c:18 +msgid "git stripspace [-c | --comment-lines]" +msgstr "git stripspace [-c | --comment-lines]" + +#: builtin/stripspace.c:35 +msgid "skip and remove all lines starting with comment character" +msgstr "주석 문자로 시작하는 모든 줄을 건너뛰고 제거합니다" + +#: builtin/stripspace.c:38 +msgid "prepend comment character and blank to each line" +msgstr "각 줄의 앞에 주석 문자를 붙이고 빈 줄로 만듭니다" + +#: builtin/submodule--helper.c:79 builtin/submodule--helper.c:167 +msgid "alternative anchor for relative paths" +msgstr "상대 경로에 사용할 또다른 기준" + +#: builtin/submodule--helper.c:84 +msgid "git submodule--helper list [--prefix=<path>] [<path>...]" +msgstr "git submodule--helper list [--prefix=<경로>] [<경로>...]" + +#: builtin/submodule--helper.c:114 +msgid "git submodule--helper name <path>" +msgstr "git submodule--helper name <경로>" + +#: builtin/submodule--helper.c:120 +#, c-format +msgid "no submodule mapping found in .gitmodules for path '%s'" +msgstr "경로 '%s'에 대해 .gitmodules에 있는 하위모듈 매핑이 없습니다" + +#: builtin/submodule--helper.c:170 +msgid "where the new submodule will be cloned to" +msgstr "새 하위 모듈을 복제할 대상 위치" + +#: builtin/submodule--helper.c:173 +msgid "name of the new submodule" +msgstr "새 하위 모듈 이름" + +#: builtin/submodule--helper.c:176 +msgid "url where to clone the submodule from" +msgstr "하위 모듈을 복제해 올 URL" + +#: builtin/submodule--helper.c:182 +msgid "depth for shallow clones" +msgstr "얕은 복제에 사용할 깊이" + +#: builtin/submodule--helper.c:188 +msgid "" +"git submodule--helper clone [--prefix=<path>] [--quiet] [--reference " +"<repository>] [--name <name>] [--url <url>][--depth <depth>] [--] [<path>...]" +msgstr "" +"git submodule--helper clone [--prefix=<경로>] [--quiet] [--reference <저장소" +">] [--name <이름>] [--url <URL>][--depth <깊이>] [--] [<경로>...]" + +#: builtin/submodule--helper.c:202 builtin/submodule--helper.c:208 +#: builtin/submodule--helper.c:216 +#, c-format +msgid "could not create directory '%s'" +msgstr "'%s' 디렉터리를 만들 수 없습니다" + +#: builtin/submodule--helper.c:204 +#, c-format +msgid "clone of '%s' into submodule path '%s' failed" +msgstr "'%s'에서 하위 모듈 경로 '%s'에 복제하는데 실패했습니다" + +#: builtin/submodule--helper.c:227 +#, c-format +msgid "cannot open file '%s'" +msgstr "'%s' 파일을 열 수 없습니다" + +#: builtin/submodule--helper.c:232 +#, c-format +msgid "could not close file %s" +msgstr "%s 파일을 닫을 수 없습니다" + +#: builtin/submodule--helper.c:247 +#, c-format +msgid "could not get submodule directory for '%s'" +msgstr "'%s'에 대한 하위 모듈 디렉터리를 가져올 수 없습니다" + +#: builtin/submodule--helper.c:273 +msgid "fatal: submodule--helper subcommand must be called with a subcommand" +msgstr "" +"치명적 이상: submodule--helper 하위 명령은 하위 명령으로 호출해야 합니다" + +#: builtin/submodule--helper.c:280 +#, c-format +msgid "fatal: '%s' is not a valid submodule--helper subcommand" +msgstr "치명적 이상: '%s'은(는) 올바른 submodule--helper 하위 명령이 아닙니다" + +#: builtin/symbolic-ref.c:7 +msgid "git symbolic-ref [<options>] <name> [<ref>]" +msgstr "git symbolic-ref [<옵션>] <이름> [<레퍼런스>]" + +#: builtin/symbolic-ref.c:8 +msgid "git symbolic-ref -d [-q] <name>" +msgstr "git symbolic-ref -d [-q] <이름>" + +#: builtin/symbolic-ref.c:40 +msgid "suppress error message for non-symbolic (detached) refs" +msgstr "심볼이 아닌 (분리된) 레퍼런스에 대해 에러 메시지를 표시하지 않습니다" + +#: builtin/symbolic-ref.c:41 +msgid "delete symbolic ref" +msgstr "심볼릭 레퍼런스를 삭제합니다" + +#: builtin/symbolic-ref.c:42 +msgid "shorten ref output" +msgstr "레퍼런스 출력을 줄입니다" + +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:362 +msgid "reason" +msgstr "이유" + +#: builtin/symbolic-ref.c:43 builtin/update-ref.c:362 +msgid "reason of the update" +msgstr "업데이트의 이유" + +#: builtin/tag.c:23 +msgid "" +"git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] <tagname> " +"[<head>]" +msgstr "" +"git tag [-a | -s | -u <키-ID>] [-f] [-m <메시지> | -F <파일>] <태그이름>\n" +"\t\t[<헤드>]" + +#: builtin/tag.c:24 +msgid "git tag -d <tagname>..." +msgstr "git tag -d <태그이름>..." + +#: builtin/tag.c:25 +msgid "" +"git tag -l [-n[<num>]] [--contains <commit>] [--points-at <object>]\n" +"\t\t[--format=<format>] [--[no-]merged [<commit>]] [<pattern>...]" +msgstr "" +"git tag -l [-n[<개수>]] [--contains <커밋>] [--points-at <오브젝트>]\n" +"\t\t[--format=<형식>] [--[no-]merged [<커밋>]] [<패턴>...]" + +#: builtin/tag.c:27 +msgid "git tag -v <tagname>..." +msgstr "git tag -v <태그이름>..." + +#: builtin/tag.c:80 +#, c-format +msgid "tag name too long: %.*s..." +msgstr "태그 이름이 너무 깁니다: %.*s..." + +#: builtin/tag.c:85 +#, c-format +msgid "tag '%s' not found." +msgstr "'%s' 태그가 없습니다." + +#: builtin/tag.c:100 +#, c-format +msgid "Deleted tag '%s' (was %s)\n" +msgstr "'%s' 태그 삭제함 (과거 %s)\n" + +#: builtin/tag.c:112 +#, c-format +msgid "could not verify the tag '%s'" +msgstr "'%s' 태그를 검증할 수 없습니다" + +#: builtin/tag.c:122 +#, c-format +msgid "" +"\n" +"Write a message for tag:\n" +" %s\n" +"Lines starting with '%c' will be ignored.\n" +msgstr "" +"\n" +"다음 태그에 대한 메시지를 쓰십시오:\n" +" %s\n" +"'%c' 문자로 시작하는 줄은 무시됩니다.\n" + +#: builtin/tag.c:126 +#, c-format +msgid "" +"\n" +"Write a message for tag:\n" +" %s\n" +"Lines starting with '%c' will be kept; you may remove them yourself if you " +"want to.\n" +msgstr "" +"\n" +"다음 태그에 대한 메시지를 쓰십시오:\n" +" %s\n" +"'%c' 문자로 시작하는 줄은 유지됩니다. 제거하려면 직접 지워야 합니다.\n" + +#: builtin/tag.c:199 +msgid "unable to sign the tag" +msgstr "태그에 서명할 수 없습니다" + +#: builtin/tag.c:201 +msgid "unable to write tag file" +msgstr "태그 파일을 쓸 수 없습니다" + +#: builtin/tag.c:226 +msgid "bad object type." +msgstr "잘못된 오브젝트 종류." + +#: builtin/tag.c:239 +msgid "tag header too big." +msgstr "태그 헤더가 너무 큽니다." + +#: builtin/tag.c:275 +msgid "no tag message?" +msgstr "태그 메시지 없음?" + +#: builtin/tag.c:281 +#, c-format +msgid "The tag message has been left in %s\n" +msgstr "태그 메시지가 %s 파일에 남아 있습니다\n" + +#: builtin/tag.c:339 +msgid "list tag names" +msgstr "태그 이름 목록을 표시합니다" + +#: builtin/tag.c:341 +msgid "print <n> lines of each tag message" +msgstr "각 태그 메시지의 <n>줄을 표시합니다" + +#: builtin/tag.c:343 +msgid "delete tags" +msgstr "태그를 삭제합니다" + +#: builtin/tag.c:344 +msgid "verify tags" +msgstr "태그를 검증합니다" + +#: builtin/tag.c:346 +msgid "Tag creation options" +msgstr "태그 만들기 옵션" + +#: builtin/tag.c:348 +msgid "annotated tag, needs a message" +msgstr "주석 달린 태그, 메시지가 필요합니다" + +#: builtin/tag.c:350 +msgid "tag message" +msgstr "태그 메시지" + +#: builtin/tag.c:352 +msgid "annotated and GPG-signed tag" +msgstr "주석 달리고 GPG 서명한 태그" + +#: builtin/tag.c:356 +msgid "use another key to sign the tag" +msgstr "태그를 서명하는데 지정한 키를 사용합니다" + +#: builtin/tag.c:357 +msgid "replace the tag if exists" +msgstr "태그가 있으면 바꿉니다" + +#: builtin/tag.c:358 builtin/update-ref.c:368 +msgid "create a reflog" +msgstr "reflog를 만듭니다" + +#: builtin/tag.c:360 +msgid "Tag listing options" +msgstr "태그 목록 보기 옵션" + +#: builtin/tag.c:361 +msgid "show tag list in columns" +msgstr "태그 목록을 여러 열로 표시합니다" + +#: builtin/tag.c:362 builtin/tag.c:363 +msgid "print only tags that contain the commit" +msgstr "해당 커밋이 들어 있는 태그만 표시합니다" + +#: builtin/tag.c:364 +msgid "print only tags that are merged" +msgstr "병합된 태그만 표시합니다" + +#: builtin/tag.c:365 +msgid "print only tags that are not merged" +msgstr "병합되지 않은 태그만 표시합니다" + +#: builtin/tag.c:370 +msgid "print only tags of the object" +msgstr "해당 오브젝트의 태그만 표시합니다" + +#: builtin/tag.c:399 +msgid "--column and -n are incompatible" +msgstr "--column 및 -n 옵션은 호환되지 않습니다" + +#: builtin/tag.c:419 +msgid "-n option is only allowed with -l." +msgstr "-n 옵션은 -l 옵션과 같이 써야 합니다." + +#: builtin/tag.c:421 +msgid "--contains option is only allowed with -l." +msgstr "--contains 옵션은 -l 옵션과 같이 써야 합니다." + +#: builtin/tag.c:423 +msgid "--points-at option is only allowed with -l." +msgstr "--points-at 옵션은 -l 옵션과 같이 써야 합니다." + +#: builtin/tag.c:425 +msgid "--merged and --no-merged option are only allowed with -l" +msgstr "--merged 및 --no-merged 옵션은 -l 옵션과 같이 써야 합니다." + +#: builtin/tag.c:433 +msgid "only one -F or -m option is allowed." +msgstr "하나의 -F 또는 -m 옵션만 쓸 수 있습니다." + +#: builtin/tag.c:453 +msgid "too many params" +msgstr "파라미터가 너무 많습니다" + +#: builtin/tag.c:459 +#, c-format +msgid "'%s' is not a valid tag name." +msgstr "'%s'은9는) 올바른 태그 이름이 아닙니다." + +#: builtin/tag.c:464 +#, c-format +msgid "tag '%s' already exists" +msgstr "태그 '%s'이(가) 이미 있습니다" + +#: builtin/tag.c:489 +#, c-format +msgid "Updated tag '%s' (was %s)\n" +msgstr "태그 '%s' 업데이트 (과거 %s)\n" + +#: builtin/unpack-objects.c:490 +msgid "Unpacking objects" +msgstr "오브젝트 묶음 푸는 중" + +#: builtin/update-index.c:70 +#, c-format +msgid "failed to create directory %s" +msgstr "%s 디렉터리 만들기 실패했습니다" + +#: builtin/update-index.c:76 +#, c-format +msgid "failed to stat %s" +msgstr "%s에 stat()하는데 실패했습니다" + +#: builtin/update-index.c:86 +#, c-format +msgid "failed to create file %s" +msgstr "%s 파일을 만드는데 실패했습니다" + +#: builtin/update-index.c:94 +#, c-format +msgid "failed to delete file %s" +msgstr "%s 파일을 삭제하는데 실패했습니다" + +#: builtin/update-index.c:101 builtin/update-index.c:203 +#, c-format +msgid "failed to delete directory %s" +msgstr "%s 디렉터리를 삭제하는데 실패했습니다" + +#: builtin/update-index.c:124 +#, c-format +msgid "Testing " +msgstr "테스트중 " + +#: builtin/update-index.c:136 +msgid "directory stat info does not change after adding a new file" +msgstr "새 파일을 추가한 후에 디렉터리 정보가 바뀌지 않았습니다" + +#: builtin/update-index.c:149 +msgid "directory stat info does not change after adding a new directory" +msgstr "새 디렉터리를 추가한 후에 디렉터리 정보가 바뀌지 않았습니다" + +#: builtin/update-index.c:162 +msgid "directory stat info changes after updating a file" +msgstr "파일을 업데이트한 후에 디렉터리 정보가 바뀌지 않았습니다" + +#: builtin/update-index.c:173 +msgid "directory stat info changes after adding a file inside subdirectory" +msgstr "하위 디렉터리에 파일을 추가한 후에 디렉터리 정보가 바뀌지 않았습니다" + +#: builtin/update-index.c:184 +msgid "directory stat info does not change after deleting a file" +msgstr "파일을 삭제한 후에 디렉터리 정보가 바뀌지 않았습니다" + +#: builtin/update-index.c:197 +msgid "directory stat info does not change after deleting a directory" +msgstr "디렉터리를 삭제한 후에 디렉터리 정보가 바뀌지 않았습니다" + +#: builtin/update-index.c:204 +msgid " OK" +msgstr " 오케이" + +#: builtin/update-index.c:564 +msgid "git update-index [<options>] [--] [<file>...]" +msgstr "git update-index [<옵션>] [--] [<파일>...]" + +#: builtin/update-index.c:918 +msgid "continue refresh even when index needs update" +msgstr "인덱스에 업데이트가 필요하더라도 새로 고침을 계속합니다" + +#: builtin/update-index.c:921 +msgid "refresh: ignore submodules" +msgstr "새로 고침: 하위 모듈 무시" + +#: builtin/update-index.c:924 +msgid "do not ignore new files" +msgstr "새 파일을 무시할 수 않습니다" + +#: builtin/update-index.c:926 +msgid "let files replace directories and vice-versa" +msgstr "디렉터리를 파일로, 또는 그 반대로 바꿀 수 있게 허용합니다" + +#: builtin/update-index.c:928 +msgid "notice files missing from worktree" +msgstr "작업폴더에서 알림 파일이 없습니다" + +#: builtin/update-index.c:930 +msgid "refresh even if index contains unmerged entries" +msgstr "인덱스에 병합하지 않은 항목이 있어도 새로 고칩니다" + +#: builtin/update-index.c:933 +msgid "refresh stat information" +msgstr "파일 정보를 새로 고칩니다" + +#: builtin/update-index.c:937 +msgid "like --refresh, but ignore assume-unchanged setting" +msgstr "--refresh와 동일하지만, assume-unchanged 설정을 무시합니다" + +#: builtin/update-index.c:941 +msgid "<mode>,<object>,<path>" +msgstr "<모드>,<오브젝트>,<경로>" + +#: builtin/update-index.c:942 +msgid "add the specified entry to the index" +msgstr "지정한 항목을 인덱스에 추가합니다" + +#: builtin/update-index.c:946 +msgid "(+/-)x" +msgstr "(+/-)x" + +#: builtin/update-index.c:947 +msgid "override the executable bit of the listed files" +msgstr "목록의 파일에서 실행 가능 비트를 바꿉니다" + +#: builtin/update-index.c:951 +msgid "mark files as \"not changing\"" +msgstr "파일을 \"바꾸지 않음\"으로 표시합니다" + +#: builtin/update-index.c:954 +msgid "clear assumed-unchanged bit" +msgstr "바꾸지 않음으로 가정 (assumed-unchanged) 비트를 지웁니다" + +#: builtin/update-index.c:957 +msgid "mark files as \"index-only\"" +msgstr "파일을 인덱스 전용으로 (\"index-only\") 표시합니다" + +#: builtin/update-index.c:960 +msgid "clear skip-worktree bit" +msgstr "작업폴더 건너뛰기 (skip-worktree) 비트를 지웁니다" + +#: builtin/update-index.c:963 +msgid "add to index only; do not add content to object database" +msgstr "인덱스에만 추가합니다. 내용을 오브젝트 데이터베이스에 추가하지 않습니다" + +#: builtin/update-index.c:965 +msgid "remove named paths even if present in worktree" +msgstr "작업 폴더에 있어도 해당 경로를 제거합니다" + +#: builtin/update-index.c:967 +msgid "with --stdin: input lines are terminated by null bytes" +msgstr "--stdin과 같이 사용: 입력 줄은 NUL 바이트로 끝납니다" + +#: builtin/update-index.c:969 +msgid "read list of paths to be updated from standard input" +msgstr "표준 입력에서 업데이트할 경로의 목록을 읽습니다" + +#: builtin/update-index.c:973 +msgid "add entries from standard input to the index" +msgstr "표준 입력에서 읽은 항목을 인덱스에 추가합니다" + +#: builtin/update-index.c:977 +msgid "repopulate stages #2 and #3 for the listed paths" +msgstr "경로 목록에 대해 #2 및 #3 스테이징을 다시 합니다" + +#: builtin/update-index.c:981 +msgid "only update entries that differ from HEAD" +msgstr "HEAD와 다른 항목만 업데이트합니다" + +#: builtin/update-index.c:985 +msgid "ignore files missing from worktree" +msgstr "작업 폴더에 없는 파일을 무시합니다" + +#: builtin/update-index.c:988 +msgid "report actions to standard output" +msgstr "표준 출력에 동작을 알립니다" + +#: builtin/update-index.c:990 +msgid "(for porcelains) forget saved unresolved conflicts" +msgstr "저장한 해결되지 않은 충돌을 무시합니다 (사용자용 명령 용도)" + +#: builtin/update-index.c:994 +msgid "write index in this format" +msgstr "인덱스를 이 형식으로 씁니다" + +#: builtin/update-index.c:996 +msgid "enable or disable split index" +msgstr "스플릿 인덱스를 켜거나 끕니다" + +#: builtin/update-index.c:998 +msgid "enable/disable untracked cache" +msgstr "추적하지 않는 캐시 사용을 켜거나 끕니다" + +#: builtin/update-index.c:1000 +msgid "enable untracked cache without testing the filesystem" +msgstr "파일 시스템 테스트 없이 추적하지 않는 캐시를 사용합니다" + +#: builtin/update-ref.c:9 +msgid "git update-ref [<options>] -d <refname> [<old-val>]" +msgstr "git update-ref [<옵션>] -d <레퍼런스이름> [<과거-값>]" + +#: builtin/update-ref.c:10 +msgid "git update-ref [<options>] <refname> <new-val> [<old-val>]" +msgstr "git update-ref [<옵션>] <레퍼런스이름> <새-값> [<과거-값>]" + +#: builtin/update-ref.c:11 +msgid "git update-ref [<options>] --stdin [-z]" +msgstr "git update-ref [<옵션>] --stdin [-z]" + +#: builtin/update-ref.c:363 +msgid "delete the reference" +msgstr "레퍼런스를 삭제합니다" + +#: builtin/update-ref.c:365 +msgid "update <refname> not the one it points to" +msgstr "<레퍼런스이름>을 가리키지 않는 항목으로 업데이트합니다" + +#: builtin/update-ref.c:366 +msgid "stdin has NUL-terminated arguments" +msgstr "표준 입력에 NUL로 끝나는 인자가 있습니다" + +#: builtin/update-ref.c:367 +msgid "read updates from stdin" +msgstr "표준 입력에서 업데이트를 읽습니다" + +#: 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 "바닥부터 정보 파일을 업데이트합니다" + +#: builtin/verify-commit.c:17 +msgid "git verify-commit [-v | --verbose] <commit>..." +msgstr "git verify-commit [-v | --verbose] <커밋>..." + +#: builtin/verify-commit.c:72 +msgid "print commit contents" +msgstr "커밋 내용을 표시합니다" + +#: builtin/verify-commit.c:73 builtin/verify-tag.c:84 +msgid "print raw gpg status output" +msgstr "원본 GPG 상태를 출력합니다" + +#: builtin/verify-pack.c:54 +msgid "git verify-pack [-v | --verbose] [-s | --stat-only] <pack>..." +msgstr "git verify-pack [-v | --verbose] [-s | --stat-only] <묶음>..." + +#: builtin/verify-pack.c:64 +msgid "verbose" +msgstr "자세히 표시" + +#: builtin/verify-pack.c:66 +msgid "show statistics only" +msgstr "통계만 표시" + +#: builtin/verify-tag.c:17 +msgid "git verify-tag [-v | --verbose] <tag>..." +msgstr "git verify-tag [-v | --verbose] <태그>..." + +#: builtin/verify-tag.c:83 +msgid "print tag contents" +msgstr "태그 내용 표시" + +#: builtin/worktree.c:15 +msgid "git worktree add [<options>] <path> [<branch>]" +msgstr "git worktree add [<옵션>] <경로> [<브랜치>]" + +#: builtin/worktree.c:16 +msgid "git worktree prune [<options>]" +msgstr "git worktree prune [<옵션>]" + +#: builtin/worktree.c:17 +msgid "git worktree list [<options>]" +msgstr "git worktree list [<옵션>]" + +#: builtin/worktree.c:39 +#, c-format +msgid "Removing worktrees/%s: not a valid directory" +msgstr "worktrees/%s 제거: 올바른 디렉터리가 아닙나다" + +#: builtin/worktree.c:45 +#, c-format +msgid "Removing worktrees/%s: gitdir file does not exist" +msgstr "worktrees/%s 제거: gitdir 파일이 없습니다" + +#: builtin/worktree.c:50 +#, c-format +msgid "Removing worktrees/%s: unable to read gitdir file (%s)" +msgstr "worktrees/%s 제거: gitdir 파일을 읽을 수 없습니다 (%s)" + +#: builtin/worktree.c:61 +#, c-format +msgid "Removing worktrees/%s: invalid gitdir file" +msgstr "worktrees/%s 제거: gitdir 파일이 올바르지 않습니다" + +#: builtin/worktree.c:77 +#, c-format +msgid "Removing worktrees/%s: gitdir file points to non-existent location" +msgstr "worktrees/%s 제거: gitdir 파일이 없는 위치를 가리킵니다" + +#: builtin/worktree.c:112 +#, c-format +msgid "failed to remove: %s" +msgstr "제거에 실패했습니다: %s" + +#: builtin/worktree.c:201 +#, c-format +msgid "'%s' already exists" +msgstr "'%s'이(가) 이미 있습니다" + +#: builtin/worktree.c:235 +#, c-format +msgid "could not create directory of '%s'" +msgstr "'%s'의 디렉터리를 만들 수 없습니다" + +#: builtin/worktree.c:271 +#, c-format +msgid "Preparing %s (identifier %s)" +msgstr "%s 준비 중 (ID %s)" + +#: builtin/worktree.c:319 +msgid "checkout <branch> even if already checked out in other worktree" +msgstr "다른 작업 폴더에서 체크아웃했더라도 <브랜치>를 체크아웃합니다" + +#: builtin/worktree.c:321 +msgid "create a new branch" +msgstr "새 브랜치를 만듭니다" + +#: builtin/worktree.c:323 +msgid "create or reset a branch" +msgstr "브랜치를 만들거나 리셋합니다" + +#: builtin/worktree.c:324 +msgid "detach HEAD at named commit" +msgstr "HEAD를 해당 커밋에서 분리합니다" + +#: builtin/worktree.c:331 +msgid "-b, -B, and --detach are mutually exclusive" +msgstr "-b, -B, --detach 옵션 중 하나만 쓸 수 있습니다" + +#: builtin/write-tree.c:13 +msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]" +msgstr "git write-tree [--missing-ok] [--prefix=<접두어>/]" + +#: builtin/write-tree.c:26 +msgid "<prefix>/" +msgstr "<접두어>/" + +#: builtin/write-tree.c:27 +msgid "write tree object for a subdirectory <prefix>" +msgstr "하위 디렉터리 <접두어>에 대해 트리 오브젝트를 씁니다" + +#: builtin/write-tree.c:30 +msgid "only useful for debugging" +msgstr "디버깅 용도로만 사용" + +#: credential-cache--daemon.c:255 +msgid "print debugging messages to stderr" +msgstr "디버깅 메시지를 표준오류로 출력합니다" + +#: git.c:14 +msgid "" +"'git help -a' and 'git help -g' list available subcommands and some\n" +"concept guides. See 'git help <command>' or 'git help <concept>'\n" +"to read about a specific subcommand or concept." +msgstr "" +"'git help -a' 및 'git help -g' 명령을 실행하면 하위 명령어와 개념 설명서의\n" +"목록을 볼 수 있습니다. 특정 하위 명령어나 개념에 대해 읽어 보려면 'git help\n" +"<명령>' 또는 'git help <개념>' 명령을 실행하십시오." + +#: common-cmds.h:9 +msgid "start a working area (see also: git help tutorial)" +msgstr "작업 공간 시작 (참고: git help tutorial)" + +#: common-cmds.h:10 +msgid "work on the current change (see also: git help everyday)" +msgstr "변경 사항에 대한 작업 (참고: git help everyday)" + +#: common-cmds.h:11 +msgid "examine the history and state (see also: git help revisions)" +msgstr "커밋 내역과 상태 보기 (참고: git help revisions)" + +#: common-cmds.h:12 +msgid "grow, mark and tweak your common history" +msgstr "커밋 내역을 키우고, 표시하고, 조작하기" + +#: common-cmds.h:13 +msgid "collaborate (see also: git help workflows)" +msgstr "협동 작업 (참고: git help workflows)" + +#: common-cmds.h:17 +msgid "Add file contents to the index" +msgstr "파일 내용을 인덱스에 추가합니다" + +#: common-cmds.h:18 +msgid "Use binary search to find the commit that introduced a bug" +msgstr "이진 탐색으로 버그를 만들어낸 커밋을 찾습니다" + +#: common-cmds.h:19 +msgid "List, create, or delete branches" +msgstr "브랜치를 만들거나, 삭제하거나, 목록을 출력합니다" + +#: common-cmds.h:20 +msgid "Switch branches or restore working tree files" +msgstr "브랜치를 전환하거나 작업 파일을 복구합니다" + +#: common-cmds.h:21 +msgid "Clone a repository into a new directory" +msgstr "저장소를 복제해 새 디렉터리로 가져 옵니다" + +#: common-cmds.h:22 +msgid "Record changes to the repository" +msgstr "바뀐 사항을 저장소에 기록합니다." + +#: common-cmds.h:23 +msgid "Show changes between commits, commit and working tree, etc" +msgstr "커밋과 커밋 사이, 커밋과 작업 내용 사이 등의 바뀐 점을 봅니다" + +#: common-cmds.h:24 +msgid "Download objects and refs from another repository" +msgstr "다른 저장소에서 오브젝트와 레퍼런스를 다운로드합니다" + +#: common-cmds.h:25 +msgid "Print lines matching a pattern" +msgstr "패턴과 일치하는 줄을 표시합니다" + +#: common-cmds.h:26 +msgid "Create an empty Git repository or reinitialize an existing one" +msgstr "빈 깃 저장소를 만들거나 기존 저장소를 다시 초기화합니다" + +#: common-cmds.h:27 +msgid "Show commit logs" +msgstr "커밋 기록을 표시합니다" + +#: common-cmds.h:28 +msgid "Join two or more development histories together" +msgstr "여러 개의 개발 내역을 하나로 합칩니다" + +#: common-cmds.h:29 +msgid "Move or rename a file, a directory, or a symlink" +msgstr "파일, 디렉터리, 심볼릭 링크를 옮기거나 이름을 바꿉니다" + +#: common-cmds.h:30 +msgid "Fetch from and integrate with another repository or a local branch" +msgstr "다른 저장소 또는 다른 로컬 브랜치에서 가져오거나 통합합니다" + +#: common-cmds.h:31 +msgid "Update remote refs along with associated objects" +msgstr "원격 레퍼런스 및 그와 관련된 오브젝트를 업데이트합니다" + +#: common-cmds.h:32 +msgid "Forward-port local commits to the updated upstream head" +msgstr "로컬 커밋을 업데이트된 업스트림 head 다음에 맞춰 넣습니다" + +#: common-cmds.h:33 +msgid "Reset current HEAD to the specified state" +msgstr "현재 HEAD를 지정한 상태로 재설정화합니다" + +#: common-cmds.h:34 +msgid "Remove files from the working tree and from the index" +msgstr "파일을 작업 폴더에서 제거하고 인덱스에서도 제거합니다" + +#: common-cmds.h:35 +msgid "Show various types of objects" +msgstr "여러가지 종류의 오브젝트를 표시합니다" + +#: common-cmds.h:36 +msgid "Show the working tree status" +msgstr "작업 폴더 상태를 표시합니다" + +#: common-cmds.h:37 +msgid "Create, list, delete or verify a tag object signed with GPG" +msgstr "태그를 만들거나, 표시하거나, 삭제하거나, GPG 서명을 검증합니다" + +#: parse-options.h:145 +msgid "expiry-date" +msgstr "만료-시각" + +#: parse-options.h:160 +msgid "no-op (backward compatibility)" +msgstr "아무 동작도 하지 않음 (호환용)" + +#: parse-options.h:237 +msgid "be more verbose" +msgstr "더 자세히 표시합니다" + +#: parse-options.h:239 +msgid "be more quiet" +msgstr "더 간략히 표시합니다" + +#: parse-options.h:245 +msgid "use <n> digits to display SHA-1s" +msgstr "SHA-1 표시에 <n>개의 숫자를 사용합니다" + +#: rerere.h:38 +msgid "update the index with reused conflict resolution if possible" +msgstr "가능하면 인덱스를 재사용한 충돌 해결로 업데이트합니다" + +#: git-bisect.sh:55 +msgid "You need to start by \"git bisect start\"" +msgstr "\"git bisect start\" 명령으로 시작해야 합니다" + +#. TRANSLATORS: Make sure to include [Y] and [n] in your +#. translation. The program will only accept English input +#. at this point. +#: git-bisect.sh:61 +msgid "Do you want me to do it for you [Y/n]? " +msgstr "지금 하시겠습니까 [Y/n]? " + +#: git-bisect.sh:122 +#, sh-format +msgid "unrecognised option: '$arg'" +msgstr "알 수 없는 옵션: '$arg'" + +#: git-bisect.sh:126 +#, sh-format +msgid "'$arg' does not appear to be a valid revision" +msgstr "'$arg'은(는) 올바른 리비전처럼 보이지 않습니다" + +#: git-bisect.sh:155 +msgid "Bad HEAD - I need a HEAD" +msgstr "잘못된 HEAD - HEAD가 필요합니다" + +#: git-bisect.sh:168 +#, sh-format +msgid "" +"Checking out '$start_head' failed. Try 'git bisect reset <valid-branch>'." +msgstr "" +"'$start_head' 받아오기가 실패했습니다. 'git bisect reset <valid-branch>'를 " +"해 보십시오." + +#: git-bisect.sh:178 +msgid "won't bisect on cg-seek'ed tree" +msgstr "cg-seek한 트리에서 bisect를 할 수 없습니다" + +#: git-bisect.sh:182 +msgid "Bad HEAD - strange symbolic ref" +msgstr "잘못된 HEAD - 심볼릭 레퍼런스가 잘못되었습니다" + +#: git-bisect.sh:234 +#, sh-format +msgid "Bad bisect_write argument: $state" +msgstr "잘못된 bisect_write 인자: $state" + +#: git-bisect.sh:263 +#, sh-format +msgid "Bad rev input: $arg" +msgstr "잘못된 리비전 입력: $arg" + +#: git-bisect.sh:278 +msgid "Please call 'bisect_state' with at least one argument." +msgstr "'bisect_state' 호출은 최소한 하나의 인자를 써야 합니다." + +#: git-bisect.sh:290 +#, sh-format +msgid "Bad rev input: $rev" +msgstr "잘못된 리비전 입력: $rev" + +#: git-bisect.sh:299 +#, sh-format +msgid "'git bisect $TERM_BAD' can take only one argument." +msgstr "'git bisect $TERM_BAD' 명령은 하나의 인자만 쓸 수 있습니다." + +#: git-bisect.sh:322 +#, sh-format +msgid "Warning: bisecting only with a $TERM_BAD commit." +msgstr "경고: 하나의 $TERM_BAD 커밋에 대해서만 이등분." + +#. TRANSLATORS: Make sure to include [Y] and [n] in your +#. translation. The program will only accept English input +#. at this point. +#: git-bisect.sh:328 +msgid "Are you sure [Y/n]? " +msgstr "확실합니까 [Y/n]? " + +#: git-bisect.sh:340 +#, sh-format +msgid "" +"You need to give me at least one $bad_syn and one $good_syn revision.\n" +"(You can use \"git bisect $bad_syn\" and \"git bisect $good_syn\" for that.)" +msgstr "" +"최소한 하나의 $bad_syn 및 하나의 $good_syn 리비전을 넘겨야 합니다.\n" +"(\"git bisect $bad_syn\" 및 \"git bisect $good_syn\" 명령을 실행하면 됩니다.)" + +#: git-bisect.sh:343 +#, sh-format +msgid "" +"You need to start by \"git bisect start\".\n" +"You then need to give me at least one $good_syn and one $bad_syn revision.\n" +"(You can use \"git bisect $bad_syn\" and \"git bisect $good_syn\" for that.)" +msgstr "" +"\"git bisect start\"를 실행해야 합니다.\n" +"그 다음 최소한 하나의 $good_syn 및 하나의 $bad_syn 리비전을 넘겨야 합니다\n" +"(\"git bisect $bad_syn\" 및 \"git bisect $good_syn\" 명령을 실행하면 됩니다.)" + +#: git-bisect.sh:414 git-bisect.sh:546 +msgid "We are not bisecting." +msgstr "이등분하는 중입니다." + +#: git-bisect.sh:421 +#, sh-format +msgid "'$invalid' is not a valid commit" +msgstr "'$invalid'은(는) 올바른 커밋이 아닙니다" + +#: git-bisect.sh:430 +#, sh-format +msgid "" +"Could not check out original HEAD '$branch'.\n" +"Try 'git bisect reset <commit>'." +msgstr "" +"본래의 HEAD '$branch'을(를) 체크아웃할 수 없습니다.\n" +"'git bisect reset <커밋>'을 해 보십시오" + +#: git-bisect.sh:458 +msgid "No logfile given" +msgstr "로그 파일이 주어지지 않았습니다" + +#: git-bisect.sh:459 +#, sh-format +msgid "cannot read $file for replaying" +msgstr "다시 재생할 $file 파일을 읽을 수 없습니다" + +#: git-bisect.sh:480 +msgid "?? what are you talking about?" +msgstr "?? 무슨 소리인지 모르겠습니다?" + +#: git-bisect.sh:492 +#, sh-format +msgid "running $command" +msgstr "실행: $command" + +#: git-bisect.sh:499 +#, sh-format +msgid "" +"bisect run failed:\n" +"exit code $res from '$command' is < 0 or >= 128" +msgstr "" +"이등분 실행이 실패했습니다:\n" +"'$command' 명령에서 상태 코드 '$res'이(가) 0보다 작거나 128보다 큽니다" + +#: git-bisect.sh:525 +msgid "bisect run cannot continue any more" +msgstr "이등분 실행을 계속 할 수 없습니다" + +#: git-bisect.sh:531 +#, sh-format +msgid "" +"bisect run failed:\n" +"'bisect_state $state' exited with error code $res" +msgstr "" +"이등분 실행이 실패했습니다:\n" +"'bisect_state $state' 명령에서 상태 코드가 '$res'입니다" + +#: git-bisect.sh:538 +msgid "bisect run success" +msgstr "이등분 실행 성공" + +#: git-bisect.sh:565 +msgid "please use two different terms" +msgstr "두 다른 용어를 사용하십시오" + +#: git-bisect.sh:575 +#, sh-format +msgid "'$term' is not a valid term" +msgstr "'$term'이(가) 올바른 용어가 아닙니다" + +#: git-bisect.sh:578 +#, sh-format +msgid "can't use the builtin command '$term' as a term" +msgstr "내부 명령어 '$term'을(를) 용어로 사용할 수 없습니다" + +#: git-bisect.sh:587 git-bisect.sh:593 +#, sh-format +msgid "can't change the meaning of term '$term'" +msgstr "용어 '$term'의 의미를 바꿀 수 없습니다" + +#: git-bisect.sh:606 +#, sh-format +msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect." +msgstr "잘못된 명령어: 현재 $TERM_BAD/$TERM_GOOD 이등분 중입니다." + +#: git-bisect.sh:636 +msgid "no terms defined" +msgstr "용어를 정의하지 않았습니다" + +#: git-bisect.sh:653 +#, sh-format +msgid "" +"invalid argument $arg for 'git bisect terms'.\n" +"Supported options are: --term-good|--term-old and --term-bad|--term-new." +msgstr "" +"'git bisect terms'에 대해 잘못된 인자 '$arg'.\n" +"지원하는 옵션은: --term-good|--term-old 및 --term-bad|--term-new." + +#: git-rebase.sh:57 +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" +"To check out the original branch and stop rebasing, run \"git rebase --abort" +"\"." +msgstr "" +"이 문제를 해결하면, \"\"git rebase --continue\"를 실행하십시오.\n" +"이 패치를 건너뛰려면, 대신에 \"git rebase --skip\"을 실행하십시오.\n" +"원래 브랜치를 체크아웃하고 리베이스를 중지하려면, \"git rebase --abort\"를 실행하십시오." + +#: git-rebase.sh:165 +msgid "Applied autostash." +msgstr "자동스태시 적용." + +#: git-rebase.sh:168 +#, sh-format +msgid "Cannot store $stash_sha1" +msgstr "\"$stash_sha1\"을(를) 저장할 수 없습니다" + +#: git-rebase.sh:169 +msgid "" +"Applying autostash resulted in conflicts.\n" +"Your changes are safe in the stash.\n" +"You can run \"git stash pop\" or \"git stash drop\" at any time.\n" +msgstr "" +"자동스태시 적용에 충돌이 발생했습니다.\n" +"변경 사항은 스태시 안에 안전하게 들어 있습니다.\n" +"언제든지 \"git stash pop\" 또는 \"git stash drop\"을 실행할 수 있습니다.\n" + +#: git-rebase.sh:208 +msgid "The pre-rebase hook refused to rebase." +msgstr "리베이스 전 후크에서 리베이스를 거부했습니다." + +#: git-rebase.sh:213 +msgid "It looks like git-am is in progress. Cannot rebase." +msgstr "git-am이 진행 중인 것처럼 보입니다. 리베이스할 수 없습니다." + +#: git-rebase.sh:354 +msgid "The --exec option must be used with the --interactive option" +msgstr "--exec 옵션은 --interactive 옵션과 같이 사용해야 합니다" + +#: git-rebase.sh:359 +msgid "No rebase in progress?" +msgstr "리베이스가 진행 중이지 않습니다" + +#: git-rebase.sh:370 +msgid "The --edit-todo action can only be used during interactive rebase." +msgstr "--edit-todo 동작은 대화형 리베이스에서만 사용할 수 있습니다." + +#: git-rebase.sh:377 +msgid "Cannot read HEAD" +msgstr "HEAD를 읽을 수 없습니다" + +#: git-rebase.sh:380 +msgid "" +"You must edit all merge conflicts and then\n" +"mark them as resolved using git add" +msgstr "" +"모든 병합 충돌을 편집하고 git add\n" +"명령으로 해결되었다고 표시해야 합니다" + +#: git-rebase.sh:398 +#, sh-format +msgid "Could not move back to $head_name" +msgstr "'$head_name' 위치로 돌아갈 수 없습니다" + +#: git-rebase.sh:417 +#, sh-format +msgid "" +"It seems that there is already a $state_dir_base directory, and\n" +"I wonder if you are in the middle of another rebase. If that is the\n" +"case, please try\n" +"\t$cmd_live_rebase\n" +"If that is not the case, please\n" +"\t$cmd_clear_stale_rebase\n" +"and run me again. I am stopping in case you still have something\n" +"valuable there." +msgstr "" +"이미 '$state_dir_base' 디렉터리가 있는 것으로 보아, 이미\n" +"또 다른 리베이스 중에 있는 것 같습니다. 그러한 경우에는\n" +"다음을 시도해 보십시오:\n" +"\t$cmd_live_rebase\n" +"리베이스 중이 아니라면 다음을 시도하고,\n" +"\t$cmd_clear_stale_rebase\n" +"이 명령을 다시 실행하십시오. 중요한 사항이 남아 있을 경우를\n" +"대비해 여기서 멈춥니다." + +#: git-rebase.sh:468 +#, sh-format +msgid "invalid upstream $upstream_name" +msgstr "잘못된 업스트림 $upstream_name" + +#: git-rebase.sh:492 +#, sh-format +msgid "$onto_name: there are more than one merge bases" +msgstr "$onto_name: 여러 개의 병합 베이스가 있습니다" + +#: git-rebase.sh:495 git-rebase.sh:499 +#, sh-format +msgid "$onto_name: there is no merge base" +msgstr "$onto_name: 병합 베이스가 없습니다" + +#: git-rebase.sh:504 +#, sh-format +msgid "Does not point to a valid commit: $onto_name" +msgstr "올바른 커밋을 가리키지 않습니다: $onto_name" + +#: git-rebase.sh:527 +#, sh-format +msgid "fatal: no such branch: $branch_name" +msgstr "치명적 이상: 그런 브랜치가 없습니다: $branch_name" + +#: git-rebase.sh:560 +msgid "Cannot autostash" +msgstr "자동 스태시를 할 수 없습니다" + +#: git-rebase.sh:565 +#, sh-format +msgid "Created autostash: $stash_abbrev" +msgstr "자동 스태시를 만들었습니다: $stash_abbrev" + +#: git-rebase.sh:569 +msgid "Please commit or stash them." +msgstr "커밋하거나 스태시에 넣으십시오." + +#: git-rebase.sh:589 +#, sh-format +msgid "Current branch $branch_name is up to date." +msgstr "현재 브랜치가 ($branch_name) 최신 상태입니다." + +#: git-rebase.sh:593 +#, sh-format +msgid "Current branch $branch_name is up to date, rebase forced." +msgstr "현재 브랜치가 ($branch_name) 최신 상태입니다. 강제 리베이스합니다." + +#: git-rebase.sh:604 +#, sh-format +msgid "Changes from $mb to $onto:" +msgstr "변경 사항 '$mb'에서 '$onto'(으)로:" + +#: git-rebase.sh:613 +msgid "First, rewinding head to replay your work on top of it..." +msgstr "작업 사항을 다시 넣기 위해 먼저 헤드를 뒤로 돌립니다..." + +#: git-rebase.sh:623 +#, sh-format +msgid "Fast-forwarded $branch_name to $onto_name." +msgstr "$branch_name 브랜치를 $onto_name 위치로 정방향 진행합니다." + +#: git-stash.sh:51 +msgid "git stash clear with parameters is unimplemented" +msgstr "git stash clear 명령을 파라미터와 같이 쓰기는 구현되지 않았습니다" + +#: git-stash.sh:74 +msgid "You do not have the initial commit yet" +msgstr "아직 최초 커밋이 없습니다" + +#: git-stash.sh:89 +msgid "Cannot save the current index state" +msgstr "현재 인덱스 상태를 저장할 수 없습니다" + +#: git-stash.sh:124 git-stash.sh:137 +msgid "Cannot save the current worktree state" +msgstr "현재 작업 폴더 상태를 저장할 수 없습니다" + +#: git-stash.sh:141 +msgid "No changes selected" +msgstr "변경 사항을 선택하지 않았습니다" + +#: git-stash.sh:144 +msgid "Cannot remove temporary index (can't happen)" +msgstr "임시 인덱스를 제거할 수 없습니다 (일어날 수 없는 상황)" + +#: git-stash.sh:157 +msgid "Cannot record working tree state" +msgstr "작업 폴더 상태를 기록할 수 없습니다" + +#: git-stash.sh:189 +#, sh-format +msgid "Cannot update $ref_stash with $w_commit" +msgstr "$ref_stash을(를) $w_commit(으)로 업데이트할 수 없습니다" + +#. TRANSLATORS: $option is an invalid option, like +#. `--blah-blah'. The 7 spaces at the beginning of the +#. second line correspond to "error: ". So you should line +#. up the second line with however many characters the +#. translation of "error: " takes in your language. E.g. in +#. English this is: +#. +#. $ git stash save --blah-blah 2>&1 | head -n 2 +#. error: unknown option for 'stash save': --blah-blah +#. To provide a message, use git stash save -- '--blah-blah' +#: git-stash.sh:239 +#, sh-format +msgid "" +"error: unknown option for 'stash save': $option\n" +" To provide a message, use git stash save -- '$option'" +msgstr "" +"오류: 'stash save'에 대해 알 수 없는 옵션: $option\n" +" 메시지를 넘기려면, 다음과 같이 쓰십시오: git stash save -- '$option'" + +#: git-stash.sh:260 +msgid "No local changes to save" +msgstr "저장할 로컬 변경 사항이 없습니다" + +#: git-stash.sh:264 +msgid "Cannot initialize stash" +msgstr "스태시를 초기화할 수 없습니다" + +#: git-stash.sh:268 +msgid "Cannot save the current status" +msgstr "현재 상태를 저장할 수 없습니다" + +#: git-stash.sh:286 +msgid "Cannot remove worktree changes" +msgstr "작업폴더 변경 사항을 제거할 수 없습니다" + +#: git-stash.sh:405 +#, sh-format +msgid "unknown option: $opt" +msgstr "알 수 없는 옵션: $opt" + +#: git-stash.sh:415 +msgid "No stash found." +msgstr "스태시가 없습니다." + +#: git-stash.sh:422 +#, sh-format +msgid "Too many revisions specified: $REV" +msgstr "너무 많은 리비전을 지정했습니다: $REV" + +#: git-stash.sh:428 +#, sh-format +msgid "$reference is not a valid reference" +msgstr "$reference은(는) 올바른 레퍼런스가 아닙니다" + +#: git-stash.sh:456 +#, sh-format +msgid "'$args' is not a stash-like commit" +msgstr "'$args'은(는) 스태시 커밋이 아닙니다" + +#: git-stash.sh:467 +#, sh-format +msgid "'$args' is not a stash reference" +msgstr "'$args'은(는) 스태시 레퍼런스가 아닙니다" + +#: git-stash.sh:475 +msgid "unable to refresh index" +msgstr "인덱스를 새로 고칠 수 없습니다" + +#: git-stash.sh:479 +msgid "Cannot apply a stash in the middle of a merge" +msgstr "병합 도중에 스태시를 적용할 수 없습니다" + +#: git-stash.sh:487 +msgid "Conflicts in index. Try without --index." +msgstr "인덱스에 충돌. --index 없이 시도해 보십시오." + +#: git-stash.sh:489 +msgid "Could not save index tree" +msgstr "인덱스 트리를 저장할 수 없습니다" + +#: git-stash.sh:523 +msgid "Cannot unstage modified files" +msgstr "수정한 파일을 스테이지에서 뺄 수 없습니다" + +#: git-stash.sh:538 +msgid "Index was not unstashed." +msgstr "인덱스가 스태시에서 빠졌습니다." + +#: git-stash.sh:561 +#, sh-format +msgid "Dropped ${REV} ($s)" +msgstr "${REV} 지움 ($s)" + +#: git-stash.sh:562 +#, sh-format +msgid "${REV}: Could not drop stash entry" +msgstr "${REV}: 스태시 항목을 지울 수 없습니다" + +#: git-stash.sh:570 +msgid "No branch name specified" +msgstr "브랜치 이름을 지정하지 않았습니다" + +#: git-stash.sh:642 +msgid "(To restore them type \"git stash apply\")" +msgstr "(복구하려면 \"git stash apply\"를 실행하십시오)" + +#: git-submodule.sh:104 +#, sh-format +msgid "cannot strip one component off url '$remoteurl'" +msgstr "'$remoteurl' URL에서 하나의 항목을 잘라낼 수 없습니다" + +#: git-submodule.sh:281 +msgid "Relative path can only be used from the toplevel of the working tree" +msgstr "상대 경로는 작업 폴더의 최상위에서만 쓸 수 있습니다" + +#: git-submodule.sh:291 +#, sh-format +msgid "repo URL: '$repo' must be absolute or begin with ./|../" +msgstr "저장소 URL: '$repo' 값은 절대 경로거나 ./ 또는 ../로 시작해야 합니다." + +#: git-submodule.sh:308 +#, sh-format +msgid "'$sm_path' already exists in the index" +msgstr "'$sm_path'은(는) 이미 인덱스에 있습니다" + +#: git-submodule.sh:312 +#, sh-format +msgid "" +"The following path is ignored by one of your .gitignore files:\n" +"$sm_path\n" +"Use -f if you really want to add it." +msgstr "" +"다음 경로는 .gitignore 파일에서 무시합니다:\n" +"$sm_path\n" +"정말로 추가하려면 -f 옵션을 사용하십시오." + +#: git-submodule.sh:330 +#, sh-format +msgid "Adding existing repo at '$sm_path' to the index" +msgstr "'$sm_path'의 기존 저장소를 인덱스에 추가합니다" + +#: git-submodule.sh:332 +#, sh-format +msgid "'$sm_path' already exists and is not a valid git repo" +msgstr "'$sm_path'이(가) 이미 있고 올바른 git 저장소가 아닙니다" + +#: git-submodule.sh:340 +#, sh-format +msgid "A git directory for '$sm_name' is found locally with remote(s):" +msgstr "'$sm_name'에 대한 깃 디렉터리가 로컬에서 리모트가 있는 채로 있습니다:" + +#: git-submodule.sh:342 +#, sh-format +msgid "" +"If you want to reuse this local git directory instead of cloning again from" +msgstr "다시 복제하지 않고 이 로컬 깃 디렉터리를 재활용하려면" + +#: git-submodule.sh:344 +#, sh-format +msgid "" +"use the '--force' option. If the local git directory is not the correct repo" +msgstr "" +"'--force' 옵션을 사용하십시오. 로컬 깃 디렉터리가 올바른 저장소가 아니거나" + +#: git-submodule.sh:345 +#, sh-format +msgid "" +"or you are unsure what this means choose another name with the '--name' " +"option." +msgstr "무슨 의미인지 잘 모르겠다면 '--name' 옵션으로 다른 이름을 쓰십시오." + +#: git-submodule.sh:347 +#, sh-format +msgid "Reactivating local git directory for submodule '$sm_name'." +msgstr "로컬 깃 디렉터리를 '$sm_name' 하위모듈로 다시 활성화합니다." + +#: git-submodule.sh:359 +#, sh-format +msgid "Unable to checkout submodule '$sm_path'" +msgstr "'$sm_path' 하위 모듈을 체크아웃할 수 없습니다" + +#: git-submodule.sh:364 +#, sh-format +msgid "Failed to add submodule '$sm_path'" +msgstr "'$sm_path' 하위 모듈을 추가하는데 실패했습니다" + +#: git-submodule.sh:373 +#, sh-format +msgid "Failed to register submodule '$sm_path'" +msgstr "'$sm_path' 하위 모듈을 등록하는데 실패했습니다" + +#: git-submodule.sh:417 +#, sh-format +msgid "Entering '$prefix$displaypath'" +msgstr "'$prefix$displaypath' 입력" + +#: git-submodule.sh:437 +#, sh-format +msgid "Stopping at '$prefix$displaypath'; script returned non-zero status." +msgstr "'$prefix$displaypath' 위치에서 멈춤. 스크립트에서 0이 아닌 상태를 리턴했습니다." + +#: git-submodule.sh:483 +#, sh-format +msgid "No url found for submodule path '$displaypath' in .gitmodules" +msgstr ".gitmodules에서 하위 모듈 경로 '$displaypath'에 대한 URL이 없습니다" + +#: git-submodule.sh:492 +#, sh-format +msgid "Failed to register url for submodule path '$displaypath'" +msgstr "하위 모듈 경로 '$displaypath'에 대한 URL을 등록하는데 실패했습니다" + +#: git-submodule.sh:494 +#, sh-format +msgid "Submodule '$name' ($url) registered for path '$displaypath'" +msgstr "'$displaypath' 경로에 ($url) 대해 등록된 '$name' 하위 모듈" + +#: git-submodule.sh:511 +#, sh-format +msgid "Failed to register update mode for submodule path '$displaypath'" +msgstr "하위 모듈 경로 '$displaypath'에 대해 업데이트 모드를 등록하는데 실패했습니다" + +#: git-submodule.sh:549 +#, sh-format +msgid "Use '.' if you really want to deinitialize all submodules" +msgstr "정말로 모든 하위 모듈 초기화를 해제하려면 '.'을 사용하십시오" + +#: git-submodule.sh:566 +#, sh-format +msgid "Submodule work tree '$displaypath' contains a .git directory" +msgstr "하위 모듈 작업 폴더에 ('$displaypath') .git 디렉터리가 들어 있습니다" + +#: git-submodule.sh:567 +#, sh-format +msgid "" +"(use 'rm -rf' if you really want to remove it including all of its history)" +msgstr "(정말로 그 커밋 내역까지 포함해 제거하려면 'rm -rf'를 사용하십시오)" + +#: git-submodule.sh:573 +#, sh-format +msgid "" +"Submodule work tree '$displaypath' contains local modifications; use '-f' to " +"discard them" +msgstr "하위 모듈 작업 폴더에 ('$displaypath') 로컬 수정 사항이 있습니다. 버리려면 '-f'를 사용하십시오" + +#: git-submodule.sh:576 +#, sh-format +msgid "Cleared directory '$displaypath'" +msgstr "'$displaypath' 디렉터리를 지웁니다" + +#: git-submodule.sh:577 +#, sh-format +msgid "Could not remove submodule work tree '$displaypath'" +msgstr "하위 모듈 디렉터리를 ('$displaypath') 제거할 수 없습니다" + +#: git-submodule.sh:580 +#, sh-format +msgid "Could not create empty submodule directory '$displaypath'" +msgstr "빈 하위 모듈 디렉터리를 ('$displaypath') 만들 수 없습니다" + +#: git-submodule.sh:589 +#, sh-format +msgid "Submodule '$name' ($url) unregistered for path '$displaypath'" +msgstr "'$name' 하위 모듈이 ($url) '$displaypath' 경로에 대해 등록되지 않았습니다" + +#: git-submodule.sh:705 +#, sh-format +msgid "" +"Submodule path '$displaypath' not initialized\n" +"Maybe you want to use 'update --init'?" +msgstr "" +"하위 모듈 경로가 ('$displaypath') 초기화되지 않았습니다\n" +"아마도 'update --init'이 필요합니다?" + +#: git-submodule.sh:718 +#, sh-format +msgid "Unable to find current revision in submodule path '$displaypath'" +msgstr "하위 모듈 경로에서 ('$displaypath') 현재 리비전을 찾을 수 없습니다" + +#: git-submodule.sh:727 +#, sh-format +msgid "Unable to fetch in submodule path '$sm_path'" +msgstr "하위 모듈 경로 '$sm_path'에서 가져올 수 없습니다" + +#: git-submodule.sh:751 +#, sh-format +msgid "Unable to fetch in submodule path '$displaypath'" +msgstr "하위 모듈 경로 '$displaypath'에서 가져올 수 없습니다" + +#: git-submodule.sh:765 +#, sh-format +msgid "Unable to checkout '$sha1' in submodule path '$displaypath'" +msgstr "하위 모듈 경로 '$displaypath'에서 '$sha1'을(를) 체크아웃할 수 없습니다" + +#: git-submodule.sh:766 +#, sh-format +msgid "Submodule path '$displaypath': checked out '$sha1'" +msgstr "하위 모듈 경로 '$displaypath': '$sha1' 체크아웃" + +#: git-submodule.sh:770 +#, sh-format +msgid "Unable to rebase '$sha1' in submodule path '$displaypath'" +msgstr "하위 모듈 경로 '$displaypath'에서 '$sha1'을(를) 리베이스할 수 없습니다" + +#: git-submodule.sh:771 +#, sh-format +msgid "Submodule path '$displaypath': rebased into '$sha1'" +msgstr "하위 모듈 경로 '$displaypath': '$sha1'(으)로 리베이스" + +#: git-submodule.sh:776 +#, sh-format +msgid "Unable to merge '$sha1' in submodule path '$displaypath'" +msgstr "하위 모듈 경로 '$displaypath'에서 '$sha1' 병합할 수 없습니다" + +#: git-submodule.sh:777 +#, sh-format +msgid "Submodule path '$displaypath': merged in '$sha1'" +msgstr "하위 모듈 경로 '$displaypath': '$sha1'에서 병합" + +#: git-submodule.sh:782 +#, sh-format +msgid "" +"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'" +msgstr "하위 모듈 경로 '$prefix$sm_path'에서 '$command $sha1' 실행이 실패했습니다" + +#: git-submodule.sh:783 +#, sh-format +msgid "Submodule path '$prefix$sm_path': '$command $sha1'" +msgstr "하위 모듈 경로 '$prefix$sm_path': '$command $sha1'" + +#: git-submodule.sh:813 +#, sh-format +msgid "Failed to recurse into submodule path '$displaypath'" +msgstr "재귀적으로 하위 모듈 경로 '$displaypath'에 들어가는데 실패했습니다" + +#: git-submodule.sh:921 +msgid "The --cached option cannot be used with the --files option" +msgstr "--cached 옵션은 --files 옵션과 같이 쓸 수 없습니다" + +#: git-submodule.sh:973 +#, sh-format +msgid "unexpected mode $mod_dst" +msgstr "예상치 못한 모드 $mod_dst" + +#: git-submodule.sh:993 +#, sh-format +msgid " Warn: $display_name doesn't contain commit $sha1_src" +msgstr " 경고: '$display_name'에 '$sha1_src' 커밋이 들어있지 않습니다" + +#: git-submodule.sh:996 +#, sh-format +msgid " Warn: $display_name doesn't contain commit $sha1_dst" +msgstr " 경고: '$display_name'에 '$sha1_dst' 커밋이 들어있지 않습니다" + +#: git-submodule.sh:999 +#, sh-format +msgid " Warn: $display_name doesn't contain commits $sha1_src and $sha1_dst" +msgstr " 경고: '$display_name'에 '$sha1_src' 및 '$sha1_dst' 커밋이 들어있지 않습니다" + +#: git-submodule.sh:1024 +msgid "blob" +msgstr "블롭" + +#: git-submodule.sh:1142 +#, sh-format +msgid "Failed to recurse into submodule path '$sm_path'" +msgstr "재귀적으로 하위 모듈 경로 '$sm_path'에 들어가는데 실패했습니다" + +#: git-submodule.sh:1206 +#, sh-format +msgid "Synchronizing submodule url for '$displaypath'" +msgstr "하위 모듈 URL을 '$displaypath'에 대해 동기화" diff --git a/read-cache.c b/read-cache.c index 84616c8e2..5be7cd1db 100644 --- a/read-cache.c +++ b/read-cache.c @@ -327,7 +327,7 @@ int ie_match_stat(const struct index_state *istate, * by definition never matches what is in the work tree until it * actually gets added. */ - if (ce->ce_flags & CE_INTENT_TO_ADD) + if (ce_intent_to_add(ce)) return DATA_CHANGED | TYPE_CHANGED | MODE_CHANGED; changed = ce_match_stat_basic(ce, st); @@ -1237,7 +1237,7 @@ int refresh_index(struct index_state *istate, unsigned int flags, if (cache_errno == ENOENT) fmt = deleted_fmt; - else if (ce->ce_flags & CE_INTENT_TO_ADD) + else if (ce_intent_to_add(ce)) fmt = added_fmt; /* must be before other checks */ else if (changed & TYPE_CHANGED) fmt = typechange_fmt; diff --git a/reflog-walk.c b/reflog-walk.c index 85b8a5424..0ebd1da5c 100644 --- a/reflog-walk.c +++ b/reflog-walk.c @@ -221,6 +221,7 @@ void fake_reflog_parent(struct reflog_walk_info *info, struct commit *commit) struct commit_info *commit_info = get_commit_info(commit, &info->reflogs, 0); struct commit_reflog *commit_reflog; + struct object *logobj; struct reflog_info *reflog; info->last_commit_reflog = NULL; @@ -232,15 +233,20 @@ void fake_reflog_parent(struct reflog_walk_info *info, struct commit *commit) commit->parents = NULL; return; } - - reflog = &commit_reflog->reflogs->items[commit_reflog->recno]; info->last_commit_reflog = commit_reflog; - commit_reflog->recno--; - commit_info->commit = (struct commit *)parse_object(reflog->osha1); - if (!commit_info->commit) { + + do { + reflog = &commit_reflog->reflogs->items[commit_reflog->recno]; + commit_reflog->recno--; + logobj = parse_object(reflog->osha1); + } while (commit_reflog->recno && (logobj && logobj->type != OBJ_COMMIT)); + + if (!logobj || logobj->type != OBJ_COMMIT) { + commit_info->commit = NULL; commit->parents = NULL; return; } + commit_info->commit = (struct commit *)logobj; commit->parents = xcalloc(1, sizeof(struct commit_list)); commit->parents->item = commit_info->commit; diff --git a/revision.c b/revision.c index 9404a05ee..0a282f533 100644 --- a/revision.c +++ b/revision.c @@ -294,9 +294,8 @@ static struct commit *handle_commit(struct rev_info *revs, /* * We'll handle the tagged object by looping or dropping * through to the non-tag handlers below. Do not - * propagate data from the tag's pending entry. + * propagate path data from the tag's pending entry. */ - name = ""; path = NULL; mode = 0; } diff --git a/run-command.c b/run-command.c index 13fa452e8..cdf018457 100644 --- a/run-command.c +++ b/run-command.c @@ -3,6 +3,8 @@ #include "exec_cmd.h" #include "sigchain.h" #include "argv-array.h" +#include "thread-utils.h" +#include "strbuf.h" void child_process_init(struct child_process *child) { @@ -245,7 +247,7 @@ static int wait_or_whine(pid_t pid, const char *argv0, int in_signal) error("waitpid is confused (%s)", argv0); } else if (WIFSIGNALED(status)) { code = WTERMSIG(status); - if (code != SIGINT && code != SIGQUIT) + if (code != SIGINT && code != SIGQUIT && code != SIGPIPE) error("%s died of signal %d", argv0, code); /* * This return value is chosen so that code & 0xff @@ -865,3 +867,336 @@ int capture_command(struct child_process *cmd, struct strbuf *buf, size_t hint) close(cmd->out); return finish_command(cmd); } + +enum child_state { + GIT_CP_FREE, + GIT_CP_WORKING, + GIT_CP_WAIT_CLEANUP, +}; + +struct parallel_processes { + void *data; + + int max_processes; + int nr_processes; + + get_next_task_fn get_next_task; + start_failure_fn start_failure; + task_finished_fn task_finished; + + struct { + enum child_state state; + struct child_process process; + struct strbuf err; + void *data; + } *children; + /* + * The struct pollfd is logically part of *children, + * but the system call expects it as its own array. + */ + struct pollfd *pfd; + + unsigned shutdown : 1; + + int output_owner; + struct strbuf buffered_output; /* of finished children */ +}; + +static int default_start_failure(struct child_process *cp, + struct strbuf *err, + void *pp_cb, + void *pp_task_cb) +{ + int i; + + strbuf_addstr(err, "Starting a child failed:"); + for (i = 0; cp->argv[i]; i++) + strbuf_addf(err, " %s", cp->argv[i]); + + return 0; +} + +static int default_task_finished(int result, + struct child_process *cp, + struct strbuf *err, + void *pp_cb, + void *pp_task_cb) +{ + int i; + + if (!result) + return 0; + + strbuf_addf(err, "A child failed with return code %d:", result); + for (i = 0; cp->argv[i]; i++) + strbuf_addf(err, " %s", cp->argv[i]); + + return 0; +} + +static void kill_children(struct parallel_processes *pp, int signo) +{ + int i, n = pp->max_processes; + + for (i = 0; i < n; i++) + if (pp->children[i].state == GIT_CP_WORKING) + kill(pp->children[i].process.pid, signo); +} + +static struct parallel_processes *pp_for_signal; + +static void handle_children_on_signal(int signo) +{ + kill_children(pp_for_signal, signo); + sigchain_pop(signo); + raise(signo); +} + +static void pp_init(struct parallel_processes *pp, + int n, + get_next_task_fn get_next_task, + start_failure_fn start_failure, + task_finished_fn task_finished, + void *data) +{ + int i; + + if (n < 1) + n = online_cpus(); + + pp->max_processes = n; + + trace_printf("run_processes_parallel: preparing to run up to %d tasks", n); + + pp->data = data; + if (!get_next_task) + die("BUG: you need to specify a get_next_task function"); + pp->get_next_task = get_next_task; + + pp->start_failure = start_failure ? start_failure : default_start_failure; + pp->task_finished = task_finished ? task_finished : default_task_finished; + + pp->nr_processes = 0; + pp->output_owner = 0; + pp->shutdown = 0; + pp->children = xcalloc(n, sizeof(*pp->children)); + pp->pfd = xcalloc(n, sizeof(*pp->pfd)); + strbuf_init(&pp->buffered_output, 0); + + for (i = 0; i < n; i++) { + strbuf_init(&pp->children[i].err, 0); + child_process_init(&pp->children[i].process); + pp->pfd[i].events = POLLIN | POLLHUP; + pp->pfd[i].fd = -1; + } + + pp_for_signal = pp; + sigchain_push_common(handle_children_on_signal); +} + +static void pp_cleanup(struct parallel_processes *pp) +{ + int i; + + trace_printf("run_processes_parallel: done"); + for (i = 0; i < pp->max_processes; i++) { + strbuf_release(&pp->children[i].err); + child_process_clear(&pp->children[i].process); + } + + free(pp->children); + free(pp->pfd); + + /* + * When get_next_task added messages to the buffer in its last + * iteration, the buffered output is non empty. + */ + fputs(pp->buffered_output.buf, stderr); + strbuf_release(&pp->buffered_output); + + sigchain_pop_common(); +} + +/* returns + * 0 if a new task was started. + * 1 if no new jobs was started (get_next_task ran out of work, non critical + * problem with starting a new command) + * <0 no new job was started, user wishes to shutdown early. Use negative code + * to signal the children. + */ +static int pp_start_one(struct parallel_processes *pp) +{ + int i, code; + + for (i = 0; i < pp->max_processes; i++) + if (pp->children[i].state == GIT_CP_FREE) + break; + if (i == pp->max_processes) + die("BUG: bookkeeping is hard"); + + code = pp->get_next_task(&pp->children[i].process, + &pp->children[i].err, + pp->data, + &pp->children[i].data); + if (!code) { + strbuf_addbuf(&pp->buffered_output, &pp->children[i].err); + strbuf_reset(&pp->children[i].err); + return 1; + } + pp->children[i].process.err = -1; + pp->children[i].process.stdout_to_stderr = 1; + pp->children[i].process.no_stdin = 1; + + if (start_command(&pp->children[i].process)) { + code = pp->start_failure(&pp->children[i].process, + &pp->children[i].err, + pp->data, + &pp->children[i].data); + strbuf_addbuf(&pp->buffered_output, &pp->children[i].err); + strbuf_reset(&pp->children[i].err); + if (code) + pp->shutdown = 1; + return code; + } + + pp->nr_processes++; + pp->children[i].state = GIT_CP_WORKING; + pp->pfd[i].fd = pp->children[i].process.err; + return 0; +} + +static void pp_buffer_stderr(struct parallel_processes *pp, int output_timeout) +{ + int i; + + while ((i = poll(pp->pfd, pp->max_processes, output_timeout)) < 0) { + if (errno == EINTR) + continue; + pp_cleanup(pp); + die_errno("poll"); + } + + /* Buffer output from all pipes. */ + for (i = 0; i < pp->max_processes; i++) { + if (pp->children[i].state == GIT_CP_WORKING && + pp->pfd[i].revents & (POLLIN | POLLHUP)) { + int n = strbuf_read_once(&pp->children[i].err, + pp->children[i].process.err, 0); + if (n == 0) { + close(pp->children[i].process.err); + pp->children[i].state = GIT_CP_WAIT_CLEANUP; + } else if (n < 0) + if (errno != EAGAIN) + die_errno("read"); + } + } +} + +static void pp_output(struct parallel_processes *pp) +{ + int i = pp->output_owner; + if (pp->children[i].state == GIT_CP_WORKING && + pp->children[i].err.len) { + fputs(pp->children[i].err.buf, stderr); + strbuf_reset(&pp->children[i].err); + } +} + +static int pp_collect_finished(struct parallel_processes *pp) +{ + int i, code; + int n = pp->max_processes; + int result = 0; + + while (pp->nr_processes > 0) { + for (i = 0; i < pp->max_processes; i++) + if (pp->children[i].state == GIT_CP_WAIT_CLEANUP) + break; + if (i == pp->max_processes) + break; + + code = finish_command(&pp->children[i].process); + + code = pp->task_finished(code, &pp->children[i].process, + &pp->children[i].err, pp->data, + &pp->children[i].data); + + if (code) + result = code; + if (code < 0) + break; + + pp->nr_processes--; + pp->children[i].state = GIT_CP_FREE; + pp->pfd[i].fd = -1; + child_process_init(&pp->children[i].process); + + if (i != pp->output_owner) { + strbuf_addbuf(&pp->buffered_output, &pp->children[i].err); + strbuf_reset(&pp->children[i].err); + } else { + fputs(pp->children[i].err.buf, stderr); + strbuf_reset(&pp->children[i].err); + + /* Output all other finished child processes */ + fputs(pp->buffered_output.buf, stderr); + strbuf_reset(&pp->buffered_output); + + /* + * Pick next process to output live. + * NEEDSWORK: + * For now we pick it randomly by doing a round + * robin. Later we may want to pick the one with + * the most output or the longest or shortest + * running process time. + */ + for (i = 0; i < n; i++) + if (pp->children[(pp->output_owner + i) % n].state == GIT_CP_WORKING) + break; + pp->output_owner = (pp->output_owner + i) % n; + } + } + return result; +} + +int run_processes_parallel(int n, + get_next_task_fn get_next_task, + start_failure_fn start_failure, + task_finished_fn task_finished, + void *pp_cb) +{ + int i, code; + int output_timeout = 100; + int spawn_cap = 4; + struct parallel_processes pp; + + pp_init(&pp, n, get_next_task, start_failure, task_finished, pp_cb); + while (1) { + for (i = 0; + i < spawn_cap && !pp.shutdown && + pp.nr_processes < pp.max_processes; + i++) { + code = pp_start_one(&pp); + if (!code) + continue; + if (code < 0) { + pp.shutdown = 1; + kill_children(&pp, -code); + } + break; + } + if (!pp.nr_processes) + break; + pp_buffer_stderr(&pp, output_timeout); + pp_output(&pp); + code = pp_collect_finished(&pp); + if (code) { + pp.shutdown = 1; + if (code < 0) + kill_children(&pp, -code); + } + } + + pp_cleanup(&pp); + return 0; +} diff --git a/run-command.h b/run-command.h index 12bb26c2a..d5a57f922 100644 --- a/run-command.h +++ b/run-command.h @@ -122,4 +122,84 @@ int start_async(struct async *async); int finish_async(struct async *async); int in_async(void); +/** + * This callback should initialize the child process and preload the + * error channel if desired. The preloading of is useful if you want to + * have a message printed directly before the output of the child process. + * pp_cb is the callback cookie as passed to run_processes_parallel. + * You can store a child process specific callback cookie in pp_task_cb. + * + * Even after returning 0 to indicate that there are no more processes, + * this function will be called again until there are no more running + * child processes. + * + * Return 1 if the next child is ready to run. + * Return 0 if there are currently no more tasks to be processed. + * To send a signal to other child processes for abortion, + * return the negative signal number. + */ +typedef int (*get_next_task_fn)(struct child_process *cp, + struct strbuf *err, + void *pp_cb, + void **pp_task_cb); + +/** + * This callback is called whenever there are problems starting + * a new process. + * + * You must not write to stdout or stderr in this function. Add your + * message to the strbuf err instead, which will be printed without + * messing up the output of the other parallel processes. + * + * pp_cb is the callback cookie as passed into run_processes_parallel, + * pp_task_cb is the callback cookie as passed into get_next_task_fn. + * + * Return 0 to continue the parallel processing. To abort return non zero. + * To send a signal to other child processes for abortion, return + * the negative signal number. + */ +typedef int (*start_failure_fn)(struct child_process *cp, + struct strbuf *err, + void *pp_cb, + void *pp_task_cb); + +/** + * This callback is called on every child process that finished processing. + * + * You must not write to stdout or stderr in this function. Add your + * message to the strbuf err instead, which will be printed without + * messing up the output of the other parallel processes. + * + * pp_cb is the callback cookie as passed into run_processes_parallel, + * pp_task_cb is the callback cookie as passed into get_next_task_fn. + * + * Return 0 to continue the parallel processing. To abort return non zero. + * To send a signal to other child processes for abortion, return + * the negative signal number. + */ +typedef int (*task_finished_fn)(int result, + struct child_process *cp, + struct strbuf *err, + void *pp_cb, + void *pp_task_cb); + +/** + * Runs up to n processes at the same time. Whenever a process can be + * started, the callback get_next_task_fn is called to obtain the data + * required to start another child process. + * + * The children started via this function run in parallel. Their output + * (both stdout and stderr) is routed to stderr in a manner that output + * from different tasks does not interleave. + * + * If start_failure_fn or task_finished_fn are NULL, default handlers + * will be used. The default handlers will print an error message on + * error without issuing an emergency stop. + */ +int run_processes_parallel(int n, + get_next_task_fn, + start_failure_fn, + task_finished_fn, + void *pp_cb); + #endif diff --git a/sigchain.c b/sigchain.c index faa375d5d..2ac43bbd2 100644 --- a/sigchain.c +++ b/sigchain.c @@ -50,3 +50,12 @@ void sigchain_push_common(sigchain_fun f) sigchain_push(SIGQUIT, f); sigchain_push(SIGPIPE, f); } + +void sigchain_pop_common(void) +{ + sigchain_pop(SIGPIPE); + sigchain_pop(SIGQUIT); + sigchain_pop(SIGTERM); + sigchain_pop(SIGHUP); + sigchain_pop(SIGINT); +} diff --git a/sigchain.h b/sigchain.h index 618083bce..138b20f54 100644 --- a/sigchain.h +++ b/sigchain.h @@ -7,5 +7,6 @@ int sigchain_push(int sig, sigchain_fun f); int sigchain_pop(int sig); void sigchain_push_common(sigchain_fun f); +void sigchain_pop_common(void); #endif /* SIGCHAIN_H */ @@ -384,6 +384,17 @@ ssize_t strbuf_read(struct strbuf *sb, int fd, size_t hint) return sb->len - oldlen; } +ssize_t strbuf_read_once(struct strbuf *sb, int fd, size_t hint) +{ + ssize_t cnt; + + strbuf_grow(sb, hint ? hint : 8192); + cnt = xread(fd, sb->buf + sb->len, sb->alloc - sb->len - 1); + if (cnt > 0) + strbuf_setlen(sb, sb->len + cnt); + return cnt; +} + #define STRBUF_MAXLINK (2*PATH_MAX) int strbuf_readlink(struct strbuf *sb, const char *path, size_t hint) @@ -367,6 +367,14 @@ extern size_t strbuf_fread(struct strbuf *, size_t, FILE *); extern ssize_t strbuf_read(struct strbuf *, int fd, size_t hint); /** + * Read the contents of a given file descriptor partially by using only one + * attempt of xread. The third argument can be used to give a hint about the + * file size, to avoid reallocs. Returns the number of new bytes appended to + * the sb. + */ +extern ssize_t strbuf_read_once(struct strbuf *, int fd, size_t hint); + +/** * Read the contents of a file, specified by its path. The third argument * can be used to give a hint about the file size, to avoid reallocs. */ diff --git a/submodule.c b/submodule.c index 14e76247b..b83939c29 100644 --- a/submodule.c +++ b/submodule.c @@ -12,6 +12,7 @@ #include "sha1-array.h" #include "argv-array.h" #include "blob.h" +#include "thread-utils.h" static int config_fetch_recurse_submodules = RECURSE_SUBMODULES_ON_DEMAND; static struct string_list changed_submodule_paths; @@ -610,37 +611,28 @@ static void calculate_changed_submodule_paths(void) initialized_fetch_ref_tips = 0; } -int fetch_populated_submodules(const struct argv_array *options, - const char *prefix, int command_line_option, - int quiet) +struct submodule_parallel_fetch { + int count; + struct argv_array args; + const char *work_tree; + const char *prefix; + int command_line_option; + int quiet; + int result; +}; +#define SPF_INIT {0, ARGV_ARRAY_INIT, NULL, NULL, 0, 0, 0} + +static int get_next_submodule(struct child_process *cp, + struct strbuf *err, void *data, void **task_cb) { - int i, result = 0; - struct child_process cp = CHILD_PROCESS_INIT; - struct argv_array argv = ARGV_ARRAY_INIT; - const char *work_tree = get_git_work_tree(); - if (!work_tree) - goto out; - - if (read_cache() < 0) - die("index file corrupt"); - - argv_array_push(&argv, "fetch"); - for (i = 0; i < options->argc; i++) - argv_array_push(&argv, options->argv[i]); - argv_array_push(&argv, "--recurse-submodules-default"); - /* default value, "--submodule-prefix" and its value are added later */ - - cp.env = local_repo_env; - cp.git_cmd = 1; - cp.no_stdin = 1; - - calculate_changed_submodule_paths(); + int ret = 0; + struct submodule_parallel_fetch *spf = data; - for (i = 0; i < active_nr; i++) { + for (; spf->count < active_nr; spf->count++) { struct strbuf submodule_path = STRBUF_INIT; struct strbuf submodule_git_dir = STRBUF_INIT; struct strbuf submodule_prefix = STRBUF_INIT; - const struct cache_entry *ce = active_cache[i]; + const struct cache_entry *ce = active_cache[spf->count]; const char *git_dir, *default_argv; const struct submodule *submodule; @@ -652,7 +644,7 @@ int fetch_populated_submodules(const struct argv_array *options, submodule = submodule_from_name(null_sha1, ce->name); default_argv = "yes"; - if (command_line_option == RECURSE_SUBMODULES_DEFAULT) { + if (spf->command_line_option == RECURSE_SUBMODULES_DEFAULT) { if (submodule && submodule->fetch_recurse != RECURSE_SUBMODULES_NONE) { @@ -675,40 +667,101 @@ int fetch_populated_submodules(const struct argv_array *options, default_argv = "on-demand"; } } - } else if (command_line_option == RECURSE_SUBMODULES_ON_DEMAND) { + } else if (spf->command_line_option == RECURSE_SUBMODULES_ON_DEMAND) { if (!unsorted_string_list_lookup(&changed_submodule_paths, ce->name)) continue; default_argv = "on-demand"; } - strbuf_addf(&submodule_path, "%s/%s", work_tree, ce->name); + strbuf_addf(&submodule_path, "%s/%s", spf->work_tree, ce->name); strbuf_addf(&submodule_git_dir, "%s/.git", submodule_path.buf); - strbuf_addf(&submodule_prefix, "%s%s/", prefix, ce->name); + strbuf_addf(&submodule_prefix, "%s%s/", spf->prefix, ce->name); git_dir = read_gitfile(submodule_git_dir.buf); if (!git_dir) git_dir = submodule_git_dir.buf; if (is_directory(git_dir)) { - if (!quiet) - printf("Fetching submodule %s%s\n", prefix, ce->name); - cp.dir = submodule_path.buf; - argv_array_push(&argv, default_argv); - argv_array_push(&argv, "--submodule-prefix"); - argv_array_push(&argv, submodule_prefix.buf); - cp.argv = argv.argv; - if (run_command(&cp)) - result = 1; - argv_array_pop(&argv); - argv_array_pop(&argv); - argv_array_pop(&argv); + child_process_init(cp); + cp->dir = strbuf_detach(&submodule_path, NULL); + cp->env = local_repo_env; + cp->git_cmd = 1; + if (!spf->quiet) + strbuf_addf(err, "Fetching submodule %s%s\n", + spf->prefix, ce->name); + argv_array_init(&cp->args); + argv_array_pushv(&cp->args, spf->args.argv); + argv_array_push(&cp->args, default_argv); + argv_array_push(&cp->args, "--submodule-prefix"); + argv_array_push(&cp->args, submodule_prefix.buf); + ret = 1; } strbuf_release(&submodule_path); strbuf_release(&submodule_git_dir); strbuf_release(&submodule_prefix); + if (ret) { + spf->count++; + return 1; + } } - argv_array_clear(&argv); + return 0; +} + +static int fetch_start_failure(struct child_process *cp, + struct strbuf *err, + void *cb, void *task_cb) +{ + struct submodule_parallel_fetch *spf = cb; + + spf->result = 1; + + return 0; +} + +static int fetch_finish(int retvalue, struct child_process *cp, + struct strbuf *err, void *cb, void *task_cb) +{ + struct submodule_parallel_fetch *spf = cb; + + if (retvalue) + spf->result = 1; + + return 0; +} + +int fetch_populated_submodules(const struct argv_array *options, + const char *prefix, int command_line_option, + int quiet, int max_parallel_jobs) +{ + int i; + struct submodule_parallel_fetch spf = SPF_INIT; + + spf.work_tree = get_git_work_tree(); + spf.command_line_option = command_line_option; + spf.quiet = quiet; + spf.prefix = prefix; + + if (!spf.work_tree) + goto out; + + if (read_cache() < 0) + die("index file corrupt"); + + argv_array_push(&spf.args, "fetch"); + for (i = 0; i < options->argc; i++) + argv_array_push(&spf.args, options->argv[i]); + argv_array_push(&spf.args, "--recurse-submodules-default"); + /* default value, "--submodule-prefix" and its value are added later */ + + calculate_changed_submodule_paths(); + run_processes_parallel(max_parallel_jobs, + get_next_submodule, + fetch_start_failure, + fetch_finish, + &spf); + + argv_array_clear(&spf.args); out: string_list_clear(&changed_submodule_paths, 1); - return result; + return spf.result; } unsigned is_submodule_modified(const char *path, int ignore_untracked) diff --git a/submodule.h b/submodule.h index ddff51210..e06eaa5eb 100644 --- a/submodule.h +++ b/submodule.h @@ -32,7 +32,7 @@ void set_config_fetch_recurse_submodules(int value); void check_for_new_submodule_commits(unsigned char new_sha1[20]); int fetch_populated_submodules(const struct argv_array *options, const char *prefix, int command_line_option, - int quiet); + int quiet, int max_parallel_jobs); unsigned is_submodule_modified(const char *path, int ignore_untracked); int submodule_uses_gitfile(const char *path); int ok_to_remove_submodule(const char *path); diff --git a/t/lib-httpd.sh b/t/lib-httpd.sh index e9714467d..f9f3e5fd8 100644 --- a/t/lib-httpd.sh +++ b/t/lib-httpd.sh @@ -98,8 +98,8 @@ then test_skip_or_die $GIT_TEST_HTTPD "no web server found at '$LIB_HTTPD_PATH'" fi -HTTPD_VERSION=`$LIB_HTTPD_PATH -v | \ - sed -n 's/^Server version: Apache\/\([0-9]*\)\..*$/\1/p; q'` +HTTPD_VERSION=$($LIB_HTTPD_PATH -v | \ + sed -n 's/^Server version: Apache\/\([0-9]*\)\..*$/\1/p; q') if test -n "$HTTPD_VERSION" then diff --git a/t/t0001-init.sh b/t/t0001-init.sh index f91bbcfc8..295aa5949 100755 --- a/t/t0001-init.sh +++ b/t/t0001-init.sh @@ -87,6 +87,23 @@ test_expect_success 'plain nested in bare through aliased command' ' check_config bare-ancestor-aliased.git/plain-nested/.git false unset ' +test_expect_success 'No extra GIT_* on alias scripts' ' + ( + env | sed -ne "/^GIT_/s/=.*//p" && + echo GIT_PREFIX && # setup.c + echo GIT_TEXTDOMAINDIR # wrapper-for-bin.sh + ) | sort | uniq >expected && + cat <<-\EOF >script && + #!/bin/sh + env | sed -ne "/^GIT_/s/=.*//p" | sort >actual + exit 0 + EOF + chmod 755 script && + git config alias.script \!./script && + ( mkdir sub && cd sub && git script ) && + test_cmp expected actual +' + test_expect_success 'plain with GIT_WORK_TREE' ' mkdir plain-wt && test_must_fail env GIT_WORK_TREE="$(pwd)/plain-wt" git init plain-wt diff --git a/t/t0061-run-command.sh b/t/t0061-run-command.sh index 9acf62872..12228b4aa 100755 --- a/t/t0061-run-command.sh +++ b/t/t0061-run-command.sh @@ -47,4 +47,57 @@ test_expect_success POSIXPERM,SANITY 'unreadable directory in PATH' ' test_cmp expect actual ' +cat >expect <<-EOF +preloaded output of a child +Hello +World +preloaded output of a child +Hello +World +preloaded output of a child +Hello +World +preloaded output of a child +Hello +World +EOF + +test_expect_success 'run_command runs in parallel with more jobs available than tasks' ' + test-run-command run-command-parallel 5 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual && + test_cmp expect actual +' + +test_expect_success 'run_command runs in parallel with as many jobs as tasks' ' + test-run-command run-command-parallel 4 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual && + test_cmp expect actual +' + +test_expect_success 'run_command runs in parallel with more tasks than jobs available' ' + test-run-command run-command-parallel 3 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual && + test_cmp expect actual +' + +cat >expect <<-EOF +preloaded output of a child +asking for a quick stop +preloaded output of a child +asking for a quick stop +preloaded output of a child +asking for a quick stop +EOF + +test_expect_success 'run_command is asked to abort gracefully' ' + test-run-command run-command-abort 3 false 2>actual && + test_cmp expect actual +' + +cat >expect <<-EOF +no further jobs available +EOF + +test_expect_success 'run_command outputs ' ' + test-run-command run-command-no-jobs 3 sh -c "printf \"%s\n%s\n\" Hello World" 2>actual && + test_cmp expect actual +' + test_done diff --git a/t/t1100-commit-tree-options.sh b/t/t1100-commit-tree-options.sh index f8457f9d1..b7e9b4fc5 100755 --- a/t/t1100-commit-tree-options.sh +++ b/t/t1100-commit-tree-options.sh @@ -35,11 +35,11 @@ test_expect_success \ GIT_COMMITTER_NAME="Committer Name" \ GIT_COMMITTER_EMAIL="committer@email" \ GIT_COMMITTER_DATE="2005-05-26 23:30" \ - TZ=GMT git commit-tree `cat treeid` >commitid 2>/dev/null' + TZ=GMT git commit-tree $(cat treeid) >commitid 2>/dev/null' test_expect_success \ 'read commit' \ - 'git cat-file commit `cat commitid` >commit' + 'git cat-file commit $(cat commitid) >commit' test_expect_success \ 'compare commit' \ diff --git a/t/t1401-symbolic-ref.sh b/t/t1401-symbolic-ref.sh index a713766cc..417eecc3a 100755 --- a/t/t1401-symbolic-ref.sh +++ b/t/t1401-symbolic-ref.sh @@ -29,7 +29,7 @@ reset_to_sane test_expect_success 'symbolic-ref refuses bare sha1' ' echo content >file && git add file && git commit -m one && - test_must_fail git symbolic-ref HEAD `git rev-parse HEAD` + test_must_fail git symbolic-ref HEAD $(git rev-parse HEAD) ' reset_to_sane diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh index b79049f6f..c623824b4 100755 --- a/t/t1410-reflog.sh +++ b/t/t1410-reflog.sh @@ -62,18 +62,18 @@ test_expect_success setup ' git add . && test_tick && git commit -m rabbit && - H=`git rev-parse --verify HEAD` && - A=`git rev-parse --verify HEAD:A` && - B=`git rev-parse --verify HEAD:A/B` && - C=`git rev-parse --verify HEAD:C` && - D=`git rev-parse --verify HEAD:A/D` && - E=`git rev-parse --verify HEAD:A/B/E` && + H=$(git rev-parse --verify HEAD) && + A=$(git rev-parse --verify HEAD:A) && + B=$(git rev-parse --verify HEAD:A/B) && + C=$(git rev-parse --verify HEAD:C) && + D=$(git rev-parse --verify HEAD:A/D) && + E=$(git rev-parse --verify HEAD:A/B/E) && check_fsck && test_chmod +x C && git add C && test_tick && git commit -m dragon && - L=`git rev-parse --verify HEAD` && + L=$(git rev-parse --verify HEAD) && check_fsck && rm -f C A/B/E && @@ -81,15 +81,15 @@ test_expect_success setup ' echo horse >A/G && git add F A/G && test_tick && git commit -a -m sheep && - F=`git rev-parse --verify HEAD:F` && - G=`git rev-parse --verify HEAD:A/G` && - I=`git rev-parse --verify HEAD:A` && - J=`git rev-parse --verify HEAD` && + F=$(git rev-parse --verify HEAD:F) && + G=$(git rev-parse --verify HEAD:A/G) && + I=$(git rev-parse --verify HEAD:A) && + J=$(git rev-parse --verify HEAD) && check_fsck && rm -f A/G && test_tick && git commit -a -m monkey && - K=`git rev-parse --verify HEAD` && + K=$(git rev-parse --verify HEAD) && check_fsck && check_have A B C D E F G H I J K L && @@ -325,4 +325,17 @@ test_expect_success 'parsing reverse reflogs at BUFSIZ boundaries' ' test_cmp expect actual ' +test_expect_success 'no segfaults for reflog containing non-commit sha1s' ' + git update-ref --create-reflog -m "Creating ref" \ + refs/tests/tree-in-reflog HEAD && + git update-ref -m "Forcing tree" refs/tests/tree-in-reflog HEAD^{tree} && + git update-ref -m "Restoring to commit" refs/tests/tree-in-reflog HEAD && + git reflog refs/tests/tree-in-reflog +' + +test_expect_failure 'reflog with non-commit entries displays all entries' ' + git reflog refs/tests/tree-in-reflog >actual && + test_line_count = 3 actual +' + test_done diff --git a/t/t1511-rev-parse-caret.sh b/t/t1511-rev-parse-caret.sh index 15973f209..7043ba794 100755 --- a/t/t1511-rev-parse-caret.sh +++ b/t/t1511-rev-parse-caret.sh @@ -6,11 +6,11 @@ test_description='tests for ref^{stuff}' test_expect_success 'setup' ' echo blob >a-blob && - git tag -a -m blob blob-tag `git hash-object -w a-blob` && + git tag -a -m blob blob-tag $(git hash-object -w a-blob) && mkdir a-tree && echo moreblobs >a-tree/another-blob && git add . && - TREE_SHA1=`git write-tree` && + TREE_SHA1=$(git write-tree) && git tag -a -m tree tree-tag "$TREE_SHA1" && git commit -m Initial && git tag -a -m commit commit-tag && diff --git a/t/t1512-rev-parse-disambiguation.sh b/t/t1512-rev-parse-disambiguation.sh index 4a155c8d0..e221167cf 100755 --- a/t/t1512-rev-parse-disambiguation.sh +++ b/t/t1512-rev-parse-disambiguation.sh @@ -275,19 +275,19 @@ test_expect_success 'rev-parse --disambiguate' ' test_expect_success 'ambiguous 40-hex ref' ' TREE=$(git mktree </dev/null) && - REF=`git rev-parse HEAD` && + REF=$(git rev-parse HEAD) && VAL=$(git commit-tree $TREE </dev/null) && git update-ref refs/heads/$REF $VAL && - test `git rev-parse $REF 2>err` = $REF && + test $(git rev-parse $REF 2>err) = $REF && grep "refname.*${REF}.*ambiguous" err ' test_expect_success 'ambiguous short sha1 ref' ' TREE=$(git mktree </dev/null) && - REF=`git rev-parse --short HEAD` && + REF=$(git rev-parse --short HEAD) && VAL=$(git commit-tree $TREE </dev/null) && git update-ref refs/heads/$REF $VAL && - test `git rev-parse $REF 2>err` = $VAL && + test $(git rev-parse $REF 2>err) = $VAL && grep "refname.*${REF}.*ambiguous" err ' diff --git a/t/t1700-split-index.sh b/t/t1700-split-index.sh index 193d55c3f..8aef49f23 100755 --- a/t/t1700-split-index.sh +++ b/t/t1700-split-index.sh @@ -55,7 +55,7 @@ test_expect_success 'disable split index' ' EOF test_cmp ls-files.expect ls-files.actual && - BASE=`test-dump-split-index .git/index | grep "^own" | sed "s/own/base/"` && + BASE=$(test-dump-split-index .git/index | grep "^own" | sed "s/own/base/") && test-dump-split-index .git/index | sed "/^own/d" >actual && cat >expect <<EOF && not a split index diff --git a/t/t2025-worktree-add.sh b/t/t2025-worktree-add.sh index 369417498..0a804dab6 100755 --- a/t/t2025-worktree-add.sh +++ b/t/t2025-worktree-add.sh @@ -123,10 +123,10 @@ test_expect_success 'checkout from a bare repo without "add"' ' test_expect_success 'checkout with grafts' ' test_when_finished rm .git/info/grafts && test_commit abc && - SHA1=`git rev-parse HEAD` && + SHA1=$(git rev-parse HEAD) && test_commit def && test_commit xyz && - echo "`git rev-parse HEAD` $SHA1" >.git/info/grafts && + echo "$(git rev-parse HEAD) $SHA1" >.git/info/grafts && cat >expected <<-\EOF && xyz abc diff --git a/t/t2102-update-index-symlinks.sh b/t/t2102-update-index-symlinks.sh index 4d0d0a351..22f2c730a 100755 --- a/t/t2102-update-index-symlinks.sh +++ b/t/t2102-update-index-symlinks.sh @@ -23,7 +23,7 @@ git update-index symlink' test_expect_success \ 'the index entry must still be a symbolic link' ' -case "`git ls-files --stage --cached symlink`" in +case "$(git ls-files --stage --cached symlink)" in 120000" "*symlink) echo pass;; *) echo fail; git ls-files --stage --cached symlink; (exit 1);; esac' diff --git a/t/t3001-ls-files-others-exclude.sh b/t/t3001-ls-files-others-exclude.sh index da257c020..3fc484e8c 100755 --- a/t/t3001-ls-files-others-exclude.sh +++ b/t/t3001-ls-files-others-exclude.sh @@ -305,29 +305,4 @@ test_expect_success 'ls-files with "**" patterns and no slashes' ' test_cmp expect actual ' -test_expect_success 'negative patterns' ' - git init reinclude && - ( - cd reinclude && - cat >.gitignore <<-\EOF && - /fooo - /foo - !foo/bar/bar - EOF - mkdir fooo && - cat >fooo/.gitignore <<-\EOF && - !/* - EOF - mkdir -p foo/bar && - touch abc foo/def foo/bar/ghi foo/bar/bar && - git ls-files -o --exclude-standard >../actual && - cat >../expected <<-\EOF && - .gitignore - abc - foo/bar/bar - EOF - test_cmp ../expected ../actual - ) -' - test_done diff --git a/t/t3030-merge-recursive.sh b/t/t3030-merge-recursive.sh index 622418763..f7b0e599f 100755 --- a/t/t3030-merge-recursive.sh +++ b/t/t3030-merge-recursive.sh @@ -263,7 +263,7 @@ test_expect_success 'setup 8' ' test_ln_s_add e a && test_tick && git commit -m "rename a->e, symlink a->e" && - oln=`printf e | git hash-object --stdin` + oln=$(printf e | git hash-object --stdin) ' test_expect_success 'setup 9' ' diff --git a/t/t3100-ls-tree-restrict.sh b/t/t3100-ls-tree-restrict.sh index eb73c06a4..325114f8f 100755 --- a/t/t3100-ls-tree-restrict.sh +++ b/t/t3100-ls-tree-restrict.sh @@ -28,7 +28,7 @@ test_expect_success \ echo Mi >path2/baz/b && find path? \( -type f -o -type l \) -print | xargs git update-index --add && - tree=`git write-tree` && + tree=$(git write-tree) && echo $tree' test_output () { diff --git a/t/t3101-ls-tree-dirname.sh b/t/t3101-ls-tree-dirname.sh index 026f9f89d..425d85893 100755 --- a/t/t3101-ls-tree-dirname.sh +++ b/t/t3101-ls-tree-dirname.sh @@ -35,7 +35,7 @@ test_expect_success 'setup' ' echo 222 >path3/2.txt && find *.txt path* \( -type f -o -type l \) -print | xargs git update-index --add && - tree=`git write-tree` && + tree=$(git write-tree) && echo $tree ' diff --git a/t/t3210-pack-refs.sh b/t/t3210-pack-refs.sh index db244d2f8..9b182a0c3 100755 --- a/t/t3210-pack-refs.sh +++ b/t/t3210-pack-refs.sh @@ -27,7 +27,7 @@ SHA1= test_expect_success \ 'see if git show-ref works as expected' \ 'git branch a && - SHA1=`cat .git/refs/heads/a` && + SHA1=$(cat .git/refs/heads/a) && echo "$SHA1 refs/heads/a" >expect && git show-ref a >result && test_cmp expect result' diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh index cd70274ea..2d200fdf3 100755 --- a/t/t3301-notes.sh +++ b/t/t3301-notes.sh @@ -83,6 +83,16 @@ test_expect_success 'edit existing notes' ' test_must_fail git notes show HEAD^ ' +test_expect_success 'show notes from treeish' ' + test "b3" = "$(git notes --ref commits^{tree} show)" && + test "b4" = "$(git notes --ref commits@{1} show)" +' + +test_expect_success 'cannot edit notes from non-ref' ' + test_must_fail git notes --ref commits^{tree} edit && + test_must_fail git notes --ref commits@{1} edit +' + test_expect_success 'cannot "git notes add -m" where notes already exists' ' test_must_fail git notes add -m "b2" && test_path_is_missing .git/NOTES_EDITMSG && diff --git a/t/t3403-rebase-skip.sh b/t/t3403-rebase-skip.sh index 3968020e6..1f5122b63 100755 --- a/t/t3403-rebase-skip.sh +++ b/t/t3403-rebase-skip.sh @@ -67,7 +67,7 @@ test_expect_success 'rebase --skip with --merge' ' ' test_expect_success 'merge and reference trees equal' ' - test -z "`git diff-tree skip-merge skip-reference`" + test -z "$(git diff-tree skip-merge skip-reference)" ' test_expect_success 'moved back to branch correctly' ' diff --git a/t/t3511-cherry-pick-x.sh b/t/t3511-cherry-pick-x.sh index b7dff09d0..9cce5ae88 100755 --- a/t/t3511-cherry-pick-x.sh +++ b/t/t3511-cherry-pick-x.sh @@ -77,7 +77,7 @@ test_expect_success setup ' test_expect_success 'cherry-pick -x inserts blank line after one line subject' ' pristine_detach initial && - sha1=`git rev-parse mesg-one-line^0` && + sha1=$(git rev-parse mesg-one-line^0) && git cherry-pick -x mesg-one-line && cat <<-EOF >expect && $mesg_one_line @@ -114,7 +114,7 @@ test_expect_success 'cherry-pick -s inserts blank line after non-conforming foot test_expect_success 'cherry-pick -x inserts blank line when conforming footer not found' ' pristine_detach initial && - sha1=`git rev-parse mesg-no-footer^0` && + sha1=$(git rev-parse mesg-no-footer^0) && git cherry-pick -x mesg-no-footer && cat <<-EOF >expect && $mesg_no_footer @@ -139,7 +139,7 @@ test_expect_success 'cherry-pick -s inserts blank line when conforming footer no test_expect_success 'cherry-pick -x -s inserts blank line when conforming footer not found' ' pristine_detach initial && - sha1=`git rev-parse mesg-no-footer^0` && + sha1=$(git rev-parse mesg-no-footer^0) && git cherry-pick -x -s mesg-no-footer && cat <<-EOF >expect && $mesg_no_footer @@ -164,7 +164,7 @@ test_expect_success 'cherry-pick -s adds sob when last sob doesnt match committe test_expect_success 'cherry-pick -x -s adds sob when last sob doesnt match committer' ' pristine_detach initial && - sha1=`git rev-parse mesg-with-footer^0` && + sha1=$(git rev-parse mesg-with-footer^0) && git cherry-pick -x -s mesg-with-footer && cat <<-EOF >expect && $mesg_with_footer @@ -187,7 +187,7 @@ test_expect_success 'cherry-pick -s refrains from adding duplicate trailing sob' test_expect_success 'cherry-pick -x -s adds sob even when trailing sob exists for committer' ' pristine_detach initial && - sha1=`git rev-parse mesg-with-footer-sob^0` && + sha1=$(git rev-parse mesg-with-footer-sob^0) && git cherry-pick -x -s mesg-with-footer-sob && cat <<-EOF >expect && $mesg_with_footer_sob @@ -200,7 +200,7 @@ test_expect_success 'cherry-pick -x -s adds sob even when trailing sob exists fo test_expect_success 'cherry-pick -x treats "(cherry picked from..." line as part of footer' ' pristine_detach initial && - sha1=`git rev-parse mesg-with-cherry-footer^0` && + sha1=$(git rev-parse mesg-with-cherry-footer^0) && git cherry-pick -x mesg-with-cherry-footer && cat <<-EOF >expect && $mesg_with_cherry_footer @@ -223,7 +223,7 @@ test_expect_success 'cherry-pick -s treats "(cherry picked from..." line as part test_expect_success 'cherry-pick -x -s treats "(cherry picked from..." line as part of footer' ' pristine_detach initial && - sha1=`git rev-parse mesg-with-cherry-footer^0` && + sha1=$(git rev-parse mesg-with-cherry-footer^0) && git cherry-pick -x -s mesg-with-cherry-footer && cat <<-EOF >expect && $mesg_with_cherry_footer diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh index 9d90d2c93..2e47a2bfd 100755 --- a/t/t3600-rm.sh +++ b/t/t3600-rm.sh @@ -115,7 +115,7 @@ test_expect_success '"rm" command printed' ' git add test-file && git commit -m "add file for rm test" && git rm test-file > rm-output && - test `grep "^rm " rm-output | wc -l` = 1 && + test $(grep "^rm " rm-output | wc -l) = 1 && rm -f test-file rm-output && git commit -m "remove file from rm test" ' @@ -125,7 +125,7 @@ test_expect_success '"rm" command suppressed with --quiet' ' git add test-file && git commit -m "add file for rm --quiet test" && git rm --quiet test-file > rm-output && - test `wc -l < rm-output` = 0 && + test $(wc -l < rm-output) = 0 && rm -f test-file rm-output && git commit -m "remove file from rm --quiet test" ' diff --git a/t/t3700-add.sh b/t/t3700-add.sh index f7ff1f555..f14a66535 100755 --- a/t/t3700-add.sh +++ b/t/t3700-add.sh @@ -25,7 +25,7 @@ test_expect_success \ echo foo >xfoo1 && chmod 755 xfoo1 && git add xfoo1 && - case "`git ls-files --stage xfoo1`" in + case "$(git ls-files --stage xfoo1)" in 100644" "*xfoo1) echo pass;; *) echo fail; git ls-files --stage xfoo1; (exit 1);; esac' @@ -33,7 +33,7 @@ test_expect_success \ test_expect_success 'git add: filemode=0 should not get confused by symlink' ' rm -f xfoo1 && test_ln_s_add foo xfoo1 && - case "`git ls-files --stage xfoo1`" in + case "$(git ls-files --stage xfoo1)" in 120000" "*xfoo1) echo pass;; *) echo fail; git ls-files --stage xfoo1; (exit 1);; esac @@ -45,7 +45,7 @@ test_expect_success \ echo foo >xfoo2 && chmod 755 xfoo2 && git update-index --add xfoo2 && - case "`git ls-files --stage xfoo2`" in + case "$(git ls-files --stage xfoo2)" in 100644" "*xfoo2) echo pass;; *) echo fail; git ls-files --stage xfoo2; (exit 1);; esac' @@ -53,7 +53,7 @@ test_expect_success \ test_expect_success 'git add: filemode=0 should not get confused by symlink' ' rm -f xfoo2 && test_ln_s_add foo xfoo2 && - case "`git ls-files --stage xfoo2`" in + case "$(git ls-files --stage xfoo2)" in 120000" "*xfoo2) echo pass;; *) echo fail; git ls-files --stage xfoo2; (exit 1);; esac @@ -63,7 +63,7 @@ test_expect_success \ 'git update-index --add: Test that executable bit is not used...' \ 'git config core.filemode 0 && test_ln_s_add xfoo2 xfoo3 && # runs git update-index --add - case "`git ls-files --stage xfoo3`" in + case "$(git ls-files --stage xfoo3)" in 120000" "*xfoo3) echo pass;; *) echo fail; git ls-files --stage xfoo3; (exit 1);; esac' @@ -173,14 +173,14 @@ test_expect_success 'git add with filemode=0, symlinks=0 prefers stage 2 over st test_expect_success 'git add --refresh' ' >foo && git add foo && git commit -a -m "commit all" && - test -z "`git diff-index HEAD -- foo`" && + test -z "$(git diff-index HEAD -- foo)" && git read-tree HEAD && - case "`git diff-index HEAD -- foo`" in + case "$(git diff-index HEAD -- foo)" in :100644" "*"M foo") echo pass;; *) echo fail; (exit 1);; esac && git add --refresh -- foo && - test -z "`git diff-index HEAD -- foo`" + test -z "$(git diff-index HEAD -- foo)" ' test_expect_success 'git add --refresh with pathspec' ' diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh index 646c4750e..3b99434e3 100755 --- a/t/t4014-format-patch.sh +++ b/t/t4014-format-patch.sh @@ -1445,4 +1445,19 @@ test_expect_success 'From line has expected format' ' test_cmp from filtered ' +test_expect_success 'format-patch format.outputDirectory option' ' + test_config format.outputDirectory patches && + rm -fr patches && + git format-patch master..side && + test $(git rev-list master..side | wc -l) -eq $(ls patches | wc -l) +' + +test_expect_success 'format-patch -o overrides format.outputDirectory' ' + test_config format.outputDirectory patches && + rm -fr patches patchset && + git format-patch master..side -o patchset && + test_path_is_missing patches && + test_path_is_dir patchset +' + test_done diff --git a/t/t4202-log.sh b/t/t4202-log.sh index 6ede0692f..cb82eb7e6 100755 --- a/t/t4202-log.sh +++ b/t/t4202-log.sh @@ -908,4 +908,33 @@ test_expect_success 'log diagnoses bogus HEAD' ' test_i18ngrep broken stderr ' +test_expect_success 'set up --source tests' ' + git checkout --orphan source-a && + test_commit one && + test_commit two && + git checkout -b source-b HEAD^ && + test_commit three +' + +test_expect_success 'log --source paints branch names' ' + cat >expect <<-\EOF && + 09e12a9 source-b three + 8e393e1 source-a two + 1ac6c77 source-b one + EOF + git log --oneline --source source-a source-b >actual && + test_cmp expect actual +' + +test_expect_success 'log --source paints tag names' ' + git tag -m tagged source-tag && + cat >expect <<-\EOF && + 09e12a9 source-tag three + 8e393e1 source-a two + 1ac6c77 source-tag one + EOF + git log --oneline --source source-tag source-a >actual && + test_cmp expect actual +' + test_done diff --git a/t/t5100-mailinfo.sh b/t/t5100-mailinfo.sh index e97cfb2ab..85b3df5e3 100755 --- a/t/t5100-mailinfo.sh +++ b/t/t5100-mailinfo.sh @@ -9,9 +9,9 @@ test_description='git mailinfo and git mailsplit test' test_expect_success 'split sample box' \ 'git mailsplit -o. "$TEST_DIRECTORY"/t5100/sample.mbox >last && - last=`cat last` && + last=$(cat last) && echo total is $last && - test `cat last` = 17' + test $(cat last) = 17' check_mailinfo () { mail=$1 opt=$2 @@ -23,7 +23,7 @@ check_mailinfo () { } -for mail in `echo 00*` +for mail in 00* do test_expect_success "mailinfo $mail" ' check_mailinfo $mail "" && @@ -47,11 +47,11 @@ test_expect_success 'split box with rfc2047 samples' \ 'mkdir rfc2047 && git mailsplit -orfc2047 "$TEST_DIRECTORY"/t5100/rfc2047-samples.mbox \ >rfc2047/last && - last=`cat rfc2047/last` && + last=$(cat rfc2047/last) && echo total is $last && - test `cat rfc2047/last` = 11' + test $(cat rfc2047/last) = 11' -for mail in `echo rfc2047/00*` +for mail in rfc2047/00* do test_expect_success "mailinfo $mail" ' git mailinfo -u $mail-msg $mail-patch <$mail >$mail-info && diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh index 20c196151..fc2be63e0 100755 --- a/t/t5300-pack-object.sh +++ b/t/t5300-pack-object.sh @@ -8,7 +8,7 @@ test_description='git pack-object ' . ./test-lib.sh -TRASH=`pwd` +TRASH=$(pwd) test_expect_success \ 'setup' \ @@ -20,8 +20,8 @@ test_expect_success \ test-genrandom "seed b" 2097152 > b_big && git update-index --add a a_big b b_big c && cat c >d && echo foo >>d && git update-index --add d && - tree=`git write-tree` && - commit=`git commit-tree $tree </dev/null` && { + tree=$(git write-tree) && + commit=$(git commit-tree $tree </dev/null) && { echo $tree && echo $commit && git ls-tree $tree | sed -e "s/.* \\([0-9a-f]*\\) .*/\\1/" @@ -29,7 +29,7 @@ test_expect_success \ git diff-tree --root -p $commit && while read object do - t=`git cat-file -t $object` && + t=$(git cat-file -t $object) && git cat-file $t $object || return 1 done <obj-list } >expect' @@ -147,7 +147,7 @@ test_expect_success \ git diff-tree --root -p $commit && while read object do - t=`git cat-file -t $object` && + t=$(git cat-file -t $object) && git cat-file $t $object || return 1 done <obj-list } >current && @@ -162,7 +162,7 @@ test_expect_success \ git diff-tree --root -p $commit && while read object do - t=`git cat-file -t $object` && + t=$(git cat-file -t $object) && git cat-file $t $object || return 1 done <obj-list } >current && @@ -177,7 +177,7 @@ test_expect_success \ git diff-tree --root -p $commit && while read object do - t=`git cat-file -t $object` && + t=$(git cat-file -t $object) && git cat-file $t $object || return 1 done <obj-list } >current && @@ -252,8 +252,8 @@ test_expect_success \ test_expect_success \ 'verify-pack catches a corrupted sum of the index file itself' \ - 'l=`wc -c <test-3.idx` && - l=`expr $l - 20` && + 'l=$(wc -c <test-3.idx) && + l=$(expr $l - 20) && cat test-1-${packname_1}.pack >test-3.pack && printf "%20s" "" | dd of=test-3.idx count=20 bs=1 conv=notrunc seek=$l && if git verify-pack test-3.pack diff --git a/t/t5301-sliding-window.sh b/t/t5301-sliding-window.sh index 2fc5af600..cae8c2e88 100755 --- a/t/t5301-sliding-window.sh +++ b/t/t5301-sliding-window.sh @@ -16,12 +16,12 @@ test_expect_success \ git update-index --add $i || return 1 done && echo d >d && cat c >>d && git update-index --add d && - tree=`git write-tree` && - commit1=`git commit-tree $tree </dev/null` && + tree=$(git write-tree) && + commit1=$(git commit-tree $tree </dev/null) && git update-ref HEAD $commit1 && git repack -a -d && - test "`git count-objects`" = "0 objects, 0 kilobytes" && - pack1=`ls .git/objects/pack/*.pack` && + test "$(git count-objects)" = "0 objects, 0 kilobytes" && + pack1=$(ls .git/objects/pack/*.pack) && test -f "$pack1"' test_expect_success \ @@ -43,11 +43,11 @@ test_expect_success \ 'repack -a -d, packedGit{WindowSize,Limit} == 1 page' \ 'git config core.packedGitWindowSize 512 && git config core.packedGitLimit 512 && - commit2=`git commit-tree $tree -p $commit1 </dev/null` && + commit2=$(git commit-tree $tree -p $commit1 </dev/null) && git update-ref HEAD $commit2 && git repack -a -d && - test "`git count-objects`" = "0 objects, 0 kilobytes" && - pack2=`ls .git/objects/pack/*.pack` && + test "$(git count-objects)" = "0 objects, 0 kilobytes" && + pack2=$(ls .git/objects/pack/*.pack) && test -f "$pack2" && test "$pack1" \!= "$pack2"' diff --git a/t/t5302-pack-index.sh b/t/t5302-pack-index.sh index 3dc5ec4dd..c2fc584da 100755 --- a/t/t5302-pack-index.sh +++ b/t/t5302-pack-index.sh @@ -14,21 +14,21 @@ test_expect_success \ i=1 && while test $i -le 100 do - iii=`printf '%03i' $i` + iii=$(printf '%03i' $i) test-genrandom "bar" 200 > wide_delta_$iii && test-genrandom "baz $iii" 50 >> wide_delta_$iii && test-genrandom "foo"$i 100 > deep_delta_$iii && - test-genrandom "foo"`expr $i + 1` 100 >> deep_delta_$iii && - test-genrandom "foo"`expr $i + 2` 100 >> deep_delta_$iii && + test-genrandom "foo"$(expr $i + 1) 100 >> deep_delta_$iii && + test-genrandom "foo"$(expr $i + 2) 100 >> deep_delta_$iii && echo $iii >file_$iii && test-genrandom "$iii" 8192 >>file_$iii && git update-index --add file_$iii deep_delta_$iii wide_delta_$iii && - i=`expr $i + 1` || return 1 + i=$(expr $i + 1) || return 1 done && { echo 101 && test-genrandom 100 8192; } >file_101 && git update-index --add file_101 && - tree=`git write-tree` && - commit=`git commit-tree $tree </dev/null` && { + tree=$(git write-tree) && + commit=$(git commit-tree $tree </dev/null) && { echo $tree && git ls-tree $tree | sed -e "s/.* \\([0-9a-f]*\\) .*/\\1/" } >obj-list && @@ -152,10 +152,10 @@ test_expect_success \ '[index v1] 2) create a stealth corruption in a delta base reference' \ '# This test assumes file_101 is a delta smaller than 16 bytes. # It should be against file_100 but we substitute its base for file_099 - sha1_101=`git hash-object file_101` && - sha1_099=`git hash-object file_099` && - offs_101=`index_obj_offset 1.idx $sha1_101` && - nr_099=`index_obj_nr 1.idx $sha1_099` && + sha1_101=$(git hash-object file_101) && + sha1_099=$(git hash-object file_099) && + offs_101=$(index_obj_offset 1.idx $sha1_101) && + nr_099=$(index_obj_nr 1.idx $sha1_099) && chmod +w ".git/objects/pack/pack-${pack1}.pack" && dd of=".git/objects/pack/pack-${pack1}.pack" seek=$(($offs_101 + 1)) \ if=".git/objects/pack/pack-${pack1}.idx" \ @@ -193,10 +193,10 @@ test_expect_success \ '[index v2] 2) create a stealth corruption in a delta base reference' \ '# This test assumes file_101 is a delta smaller than 16 bytes. # It should be against file_100 but we substitute its base for file_099 - sha1_101=`git hash-object file_101` && - sha1_099=`git hash-object file_099` && - offs_101=`index_obj_offset 1.idx $sha1_101` && - nr_099=`index_obj_nr 1.idx $sha1_099` && + sha1_101=$(git hash-object file_101) && + sha1_099=$(git hash-object file_099) && + offs_101=$(index_obj_offset 1.idx $sha1_101) && + nr_099=$(index_obj_nr 1.idx $sha1_099) && chmod +w ".git/objects/pack/pack-${pack1}.pack" && dd of=".git/objects/pack/pack-${pack1}.pack" seek=$(($offs_101 + 1)) \ if=".git/objects/pack/pack-${pack1}.idx" \ @@ -222,11 +222,11 @@ test_expect_success \ 'rm -f .git/objects/pack/* && git index-pack --index-version=2 --stdin < "test-1-${pack1}.pack" && git verify-pack ".git/objects/pack/pack-${pack1}.pack" && - obj=`git hash-object file_001` && - nr=`index_obj_nr ".git/objects/pack/pack-${pack1}.idx" $obj` && + obj=$(git hash-object file_001) && + nr=$(index_obj_nr ".git/objects/pack/pack-${pack1}.idx" $obj) && chmod +w ".git/objects/pack/pack-${pack1}.idx" && printf xxxx | dd of=".git/objects/pack/pack-${pack1}.idx" conv=notrunc \ - bs=1 count=4 seek=$((8 + 256 * 4 + `wc -l <obj-list` * 20 + $nr * 4)) && + bs=1 count=4 seek=$((8 + 256 * 4 + $(wc -l <obj-list) * 20 + $nr * 4)) && ( while read obj do git cat-file -p $obj >/dev/null || exit 1 done <obj-list ) && diff --git a/t/t5303-pack-corruption-resilience.sh b/t/t5303-pack-corruption-resilience.sh index 663b02bbb..5940ce208 100755 --- a/t/t5303-pack-corruption-resilience.sh +++ b/t/t5303-pack-corruption-resilience.sh @@ -32,23 +32,23 @@ create_test_files() { create_new_pack() { rm -rf .git && git init && - blob_1=`git hash-object -t blob -w file_1` && - blob_2=`git hash-object -t blob -w file_2` && - blob_3=`git hash-object -t blob -w file_3` && - pack=`printf "$blob_1\n$blob_2\n$blob_3\n" | - git pack-objects $@ .git/objects/pack/pack` && + blob_1=$(git hash-object -t blob -w file_1) && + blob_2=$(git hash-object -t blob -w file_2) && + blob_3=$(git hash-object -t blob -w file_3) && + pack=$(printf "$blob_1\n$blob_2\n$blob_3\n" | + git pack-objects $@ .git/objects/pack/pack) && pack=".git/objects/pack/pack-${pack}" && git verify-pack -v ${pack}.pack } do_repack() { - pack=`printf "$blob_1\n$blob_2\n$blob_3\n" | - git pack-objects $@ .git/objects/pack/pack` && + pack=$(printf "$blob_1\n$blob_2\n$blob_3\n" | + git pack-objects $@ .git/objects/pack/pack) && pack=".git/objects/pack/pack-${pack}" } do_corrupt_object() { - ofs=`git show-index < ${pack}.idx | grep $1 | cut -f1 -d" "` && + ofs=$(git show-index < ${pack}.idx | grep $1 | cut -f1 -d" ") && ofs=$(($ofs + $2)) && chmod +w ${pack}.pack && dd of=${pack}.pack bs=1 conv=notrunc seek=$ofs && diff --git a/t/t5304-prune.sh b/t/t5304-prune.sh index def203c72..133b5842b 100755 --- a/t/t5304-prune.sh +++ b/t/t5304-prune.sh @@ -266,7 +266,7 @@ EOF ' test_expect_success 'prune .git/shallow' ' - SHA1=`echo hi|git commit-tree HEAD^{tree}` && + SHA1=$(echo hi|git commit-tree HEAD^{tree}) && echo $SHA1 >.git/shallow && git prune --dry-run >out && grep $SHA1 .git/shallow && diff --git a/t/t5305-include-tag.sh b/t/t5305-include-tag.sh index 21517c70c..f314ad507 100755 --- a/t/t5305-include-tag.sh +++ b/t/t5305-include-tag.sh @@ -3,20 +3,20 @@ test_description='git pack-object --include-tag' . ./test-lib.sh -TRASH=`pwd` +TRASH=$(pwd) test_expect_success setup ' echo c >d && git update-index --add d && - tree=`git write-tree` && - commit=`git commit-tree $tree </dev/null` && + tree=$(git write-tree) && + commit=$(git commit-tree $tree </dev/null) && echo "object $commit" >sig && echo "type commit" >>sig && echo "tag mytag" >>sig && echo "tagger $(git var GIT_COMMITTER_IDENT)" >>sig && echo >>sig && echo "our test tag" >>sig && - tag=`git mktag <sig` && + tag=$(git mktag <sig) && rm d sig && git update-ref refs/tags/mytag $tag && { echo $tree && diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh index 3a9b77576..e5f83bf5e 100755 --- a/t/t5500-fetch-pack.sh +++ b/t/t5500-fetch-pack.sh @@ -14,7 +14,7 @@ test_description='Testing multi_ack pack fetching' add () { name=$1 && text="$@" && - branch=`echo $name | sed -e 's/^\(.\).*$/\1/'` && + branch=$(echo $name | sed -e 's/^\(.\).*$/\1/') && parents="" && shift && @@ -50,18 +50,18 @@ pull_to_client () { case "$heads" in *B*) echo $BTIP > .git/refs/heads/B;; esac && - git symbolic-ref HEAD refs/heads/`echo $heads \ - | sed -e "s/^\(.\).*$/\1/"` && + git symbolic-ref HEAD refs/heads/$(echo $heads \ + | sed -e "s/^\(.\).*$/\1/") && git fsck --full && mv .git/objects/pack/pack-* . && - p=`ls -1 pack-*.pack` && + p=$(ls -1 pack-*.pack) && git unpack-objects <$p && git fsck --full && - idx=`echo pack-*.idx` && - pack_count=`git show-index <$idx | wc -l` && + idx=$(echo pack-*.idx) && + pack_count=$(git show-index <$idx | wc -l) && test $pack_count = $count && rm -f pack-* ) @@ -132,13 +132,13 @@ test_expect_success 'single given branch clone' ' test_expect_success 'clone shallow depth 1' ' git clone --no-single-branch --depth 1 "file://$(pwd)/." shallow0 && - test "`git --git-dir=shallow0/.git rev-list --count HEAD`" = 1 + test "$(git --git-dir=shallow0/.git rev-list --count HEAD)" = 1 ' test_expect_success 'clone shallow depth 1 with fsck' ' git config --global fetch.fsckobjects true && git clone --no-single-branch --depth 1 "file://$(pwd)/." shallow0fsck && - test "`git --git-dir=shallow0fsck/.git rev-list --count HEAD`" = 1 && + test "$(git --git-dir=shallow0fsck/.git rev-list --count HEAD)" = 1 && git config --global --unset fetch.fsckobjects ' @@ -147,7 +147,7 @@ test_expect_success 'clone shallow' ' ' test_expect_success 'clone shallow depth count' ' - test "`git --git-dir=shallow/.git rev-list --count HEAD`" = 2 + test "$(git --git-dir=shallow/.git rev-list --count HEAD)" = 2 ' test_expect_success 'clone shallow object count' ' @@ -273,7 +273,7 @@ test_expect_success 'additional simple shallow deepenings' ' ' test_expect_success 'clone shallow depth count' ' - test "`git --git-dir=shallow/.git rev-list --count HEAD`" = 11 + test "$(git --git-dir=shallow/.git rev-list --count HEAD)" = 11 ' test_expect_success 'clone shallow object count' ' diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh index dfaf9d9f6..1a8e3b81c 100755 --- a/t/t5505-remote.sh +++ b/t/t5505-remote.sh @@ -85,7 +85,7 @@ test_expect_success C_LOCALE_OUTPUT 'check remote-tracking' ' test_expect_success 'remote forces tracking branches' ' ( cd test && - case `git config remote.second.fetch` in + case $(git config remote.second.fetch) in +*) true ;; *) false ;; esac diff --git a/t/t5506-remote-groups.sh b/t/t5506-remote-groups.sh index 530b01678..83d5558c0 100755 --- a/t/t5506-remote-groups.sh +++ b/t/t5506-remote-groups.sh @@ -20,7 +20,7 @@ update_repos() { } repo_fetched() { - if test "`git log -1 --pretty=format:%s $1 --`" = "`cat mark`"; then + if test "$(git log -1 --pretty=format:%s $1 --)" = "$(cat mark)"; then echo >&2 "repo was fetched: $1" return 0 fi diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh index 0ba9db088..9203a6507 100755 --- a/t/t5510-fetch.sh +++ b/t/t5510-fetch.sh @@ -7,7 +7,7 @@ test_description='Per branch config variables affects "git fetch". . ./test-lib.sh -D=`pwd` +D=$(pwd) test_bundle_object_count () { git verify-pack -v "$1" >verify.out && @@ -64,8 +64,8 @@ test_expect_success "fetch test" ' cd two && git fetch && test -f .git/refs/heads/one && - mine=`git rev-parse refs/heads/one` && - his=`cd ../one && git rev-parse refs/heads/master` && + mine=$(git rev-parse refs/heads/one) && + his=$(cd ../one && git rev-parse refs/heads/master) && test "z$mine" = "z$his" ' @@ -75,8 +75,8 @@ test_expect_success "fetch test for-merge" ' git fetch && test -f .git/refs/heads/two && test -f .git/refs/heads/one && - master_in_two=`cd ../two && git rev-parse master` && - one_in_two=`cd ../two && git rev-parse one` && + master_in_two=$(cd ../two && git rev-parse master) && + one_in_two=$(cd ../two && git rev-parse one) && { echo "$one_in_two " echo "$master_in_two not-for-merge" @@ -708,4 +708,17 @@ test_expect_success 'fetching a one-level ref works' ' ) ' +test_expect_success 'fetching with auto-gc does not lock up' ' + write_script askyesno <<-\EOF && + echo "$*" && + false + EOF + git clone "file://$D" auto-gc && + test_commit test2 && + cd auto-gc && + git config gc.autoPackLimit 1 && + GIT_ASK_YESNO="$D/askyesno" git fetch >fetch.out 2>&1 && + ! grep "Should I try again" fetch.out +' + test_done diff --git a/t/t5515-fetch-merge-logic.sh b/t/t5515-fetch-merge-logic.sh index dbb927dec..36b0dbc01 100755 --- a/t/t5515-fetch-merge-logic.sh +++ b/t/t5515-fetch-merge-logic.sh @@ -128,8 +128,8 @@ do case "$cmd" in '' | '#'*) continue ;; esac - test=`echo "$cmd" | sed -e 's|[/ ][/ ]*|_|g'` - pfx=`printf "%04d" $test_count` + test=$(echo "$cmd" | sed -e 's|[/ ][/ ]*|_|g') + pfx=$(printf "%04d" $test_count) expect_f="$TEST_DIRECTORY/t5515/fetch.$test" actual_f="$pfx-fetch.$test" expect_r="$TEST_DIRECTORY/t5515/refs.$test" diff --git a/t/t5516-fetch-push.sh b/t/t5516-fetch-push.sh index 0a87e195e..26b2cafc4 100755 --- a/t/t5516-fetch-push.sh +++ b/t/t5516-fetch-push.sh @@ -16,7 +16,7 @@ This test checks the following functionality: . ./test-lib.sh -D=`pwd` +D=$(pwd) mk_empty () { repo_name="$1" @@ -422,7 +422,7 @@ test_expect_success 'push tag with non-existent, incomplete dest' ' test_expect_success 'push sha1 with non-existent, incomplete dest' ' mk_test testrepo && - test_must_fail git push testrepo `git rev-parse master`:foo + test_must_fail git push testrepo $(git rev-parse master):foo ' diff --git a/t/t5517-push-mirror.sh b/t/t5517-push-mirror.sh index 12a5dfb17..02f160aae 100755 --- a/t/t5517-push-mirror.sh +++ b/t/t5517-push-mirror.sh @@ -4,7 +4,7 @@ test_description='pushing to a mirror repository' . ./test-lib.sh -D=`pwd` +D=$(pwd) invert () { if "$@"; then diff --git a/t/t5520-pull.sh b/t/t5520-pull.sh index a0013ee32..c952d5ef5 100755 --- a/t/t5520-pull.sh +++ b/t/t5520-pull.sh @@ -326,6 +326,16 @@ test_expect_success 'pull.rebase=preserve rebases and merges keep-merge' ' test "$(git rev-parse HEAD^2)" = "$(git rev-parse keep-merge)" ' +test_expect_success 'pull.rebase=interactive' ' + write_script "$TRASH_DIRECTORY/fake-editor" <<-\EOF && + echo I was here >fake.out && + false + EOF + test_set_editor "$TRASH_DIRECTORY/fake-editor" && + test_must_fail git pull --rebase=interactive . copy && + test "I was here" = "$(cat fake.out)" +' + test_expect_success 'pull.rebase=invalid fails' ' git reset --hard before-preserve-rebase && test_config pull.rebase invalid && diff --git a/t/t5522-pull-symlink.sh b/t/t5522-pull-symlink.sh index 8e9b204e0..bcff460d0 100755 --- a/t/t5522-pull-symlink.sh +++ b/t/t5522-pull-symlink.sh @@ -54,7 +54,7 @@ test_expect_success SYMLINKS 'pulling from real subdir' ' # git rev-parse --show-cdup printed a path relative to # clone-repo/subdir/, not subdir-link/. Git rev-parse --show-cdup # used the correct .git, but when the git pull shell script did -# "cd `git rev-parse --show-cdup`", it ended up in the wrong +# "cd $(git rev-parse --show-cdup)", it ended up in the wrong # directory. A POSIX shell's "cd" works a little differently # than chdir() in C; "cd -P" is much closer to chdir(). # diff --git a/t/t5526-fetch-submodules.sh b/t/t5526-fetch-submodules.sh index a4532b00d..124114622 100755 --- a/t/t5526-fetch-submodules.sh +++ b/t/t5526-fetch-submodules.sh @@ -16,7 +16,8 @@ add_upstream_commit() { git add subfile && git commit -m new subfile && head2=$(git rev-parse --short HEAD) && - echo "From $pwd/submodule" > ../expect.err && + echo "Fetching submodule submodule" > ../expect.err && + echo "From $pwd/submodule" >> ../expect.err && echo " $head1..$head2 master -> origin/master" >> ../expect.err ) && ( @@ -27,6 +28,7 @@ add_upstream_commit() { git add deepsubfile && git commit -m new deepsubfile && head2=$(git rev-parse --short HEAD) && + echo "Fetching submodule submodule/subdir/deepsubmodule" >> ../expect.err echo "From $pwd/deepsubmodule" >> ../expect.err && echo " $head1..$head2 master -> origin/master" >> ../expect.err ) @@ -56,9 +58,7 @@ test_expect_success setup ' ( cd downstream && git submodule update --init --recursive - ) && - echo "Fetching submodule submodule" > expect.out && - echo "Fetching submodule submodule/subdir/deepsubmodule" >> expect.out + ) ' test_expect_success "fetch --recurse-submodules recurses into submodules" ' @@ -67,10 +67,21 @@ test_expect_success "fetch --recurse-submodules recurses into submodules" ' cd downstream && git fetch --recurse-submodules >../actual.out 2>../actual.err ) && - test_i18ncmp expect.out actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err actual.err ' +test_expect_success "fetch --recurse-submodules -j2 has the same output behaviour" ' + add_upstream_commit && + ( + cd downstream && + GIT_TRACE=$(pwd)/../trace.out git fetch --recurse-submodules -j2 2>../actual.err + ) && + test_must_be_empty actual.out && + test_i18ncmp expect.err actual.err && + grep "2 tasks" trace.out +' + test_expect_success "fetch alone only fetches superproject" ' add_upstream_commit && ( @@ -96,7 +107,7 @@ test_expect_success "using fetchRecurseSubmodules=true in .gitmodules recurses i git config -f .gitmodules submodule.submodule.fetchRecurseSubmodules true && git fetch >../actual.out 2>../actual.err ) && - test_i18ncmp expect.out actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err actual.err ' @@ -127,7 +138,7 @@ test_expect_success "--recurse-submodules overrides fetchRecurseSubmodules setti git config --unset -f .gitmodules submodule.submodule.fetchRecurseSubmodules && git config --unset submodule.submodule.fetchRecurseSubmodules ) && - test_i18ncmp expect.out actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err actual.err ' @@ -140,13 +151,22 @@ test_expect_success "--quiet propagates to submodules" ' ! test -s actual.err ' +test_expect_success "--quiet propagates to parallel submodules" ' + ( + cd downstream && + git fetch --recurse-submodules -j 2 --quiet >../actual.out 2>../actual.err + ) && + ! test -s actual.out && + ! test -s actual.err +' + test_expect_success "--dry-run propagates to submodules" ' add_upstream_commit && ( cd downstream && git fetch --recurse-submodules --dry-run >../actual.out 2>../actual.err ) && - test_i18ncmp expect.out actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err actual.err ' @@ -155,7 +175,7 @@ test_expect_success "Without --dry-run propagates to submodules" ' cd downstream && git fetch --recurse-submodules >../actual.out 2>../actual.err ) && - test_i18ncmp expect.out actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err actual.err ' @@ -166,7 +186,7 @@ test_expect_success "recurseSubmodules=true propagates into submodules" ' git config fetch.recurseSubmodules true git fetch >../actual.out 2>../actual.err ) && - test_i18ncmp expect.out actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err actual.err ' @@ -180,7 +200,7 @@ test_expect_success "--recurse-submodules overrides config in submodule" ' ) && git fetch --recurse-submodules >../actual.out 2>../actual.err ) && - test_i18ncmp expect.out actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err actual.err ' @@ -214,16 +234,15 @@ test_expect_success "Recursion stops when no new submodule commits are fetched" git add submodule && git commit -m "new submodule" && head2=$(git rev-parse --short HEAD) && - echo "Fetching submodule submodule" > expect.out.sub && echo "From $pwd/." > expect.err.sub && echo " $head1..$head2 master -> origin/master" >>expect.err.sub && - head -2 expect.err >> expect.err.sub && + head -3 expect.err >> expect.err.sub && ( cd downstream && git fetch >../actual.out 2>../actual.err ) && test_i18ncmp expect.err.sub actual.err && - test_i18ncmp expect.out.sub actual.out + test_must_be_empty actual.out ' test_expect_success "Recursion doesn't happen when new superproject commits don't change any submodules" ' @@ -269,7 +288,7 @@ test_expect_success "Recursion picks up config in submodule" ' ) ) && test_i18ncmp expect.err.sub actual.err && - test_i18ncmp expect.out actual.out + test_must_be_empty actual.out ' test_expect_success "Recursion picks up all submodules when necessary" ' @@ -285,7 +304,8 @@ test_expect_success "Recursion picks up all submodules when necessary" ' git add subdir/deepsubmodule && git commit -m "new deepsubmodule" head2=$(git rev-parse --short HEAD) && - echo "From $pwd/submodule" > ../expect.err.sub && + echo "Fetching submodule submodule" > ../expect.err.sub && + echo "From $pwd/submodule" >> ../expect.err.sub && echo " $head1..$head2 master -> origin/master" >> ../expect.err.sub ) && head1=$(git rev-parse --short HEAD) && @@ -295,13 +315,13 @@ test_expect_success "Recursion picks up all submodules when necessary" ' echo "From $pwd/." > expect.err.2 && echo " $head1..$head2 master -> origin/master" >> expect.err.2 && cat expect.err.sub >> expect.err.2 && - tail -2 expect.err >> expect.err.2 && + tail -3 expect.err >> expect.err.2 && ( cd downstream && git fetch >../actual.out 2>../actual.err ) && test_i18ncmp expect.err.2 actual.err && - test_i18ncmp expect.out actual.out + test_must_be_empty actual.out ' test_expect_success "'--recurse-submodules=on-demand' doesn't recurse when no new commits are fetched in the superproject (and ignores config)" ' @@ -317,7 +337,8 @@ test_expect_success "'--recurse-submodules=on-demand' doesn't recurse when no ne git add subdir/deepsubmodule && git commit -m "new deepsubmodule" && head2=$(git rev-parse --short HEAD) && - echo "From $pwd/submodule" > ../expect.err.sub && + echo Fetching submodule submodule > ../expect.err.sub && + echo "From $pwd/submodule" >> ../expect.err.sub && echo " $head1..$head2 master -> origin/master" >> ../expect.err.sub ) && ( @@ -335,7 +356,7 @@ test_expect_success "'--recurse-submodules=on-demand' recurses as deep as necess git add submodule && git commit -m "new submodule" && head2=$(git rev-parse --short HEAD) && - tail -2 expect.err > expect.err.deepsub && + tail -3 expect.err > expect.err.deepsub && echo "From $pwd/." > expect.err && echo " $head1..$head2 master -> origin/master" >>expect.err && cat expect.err.sub >> expect.err && @@ -354,7 +375,7 @@ test_expect_success "'--recurse-submodules=on-demand' recurses as deep as necess git config --unset -f .gitmodules submodule.subdir/deepsubmodule.fetchRecursive ) ) && - test_i18ncmp expect.out actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err actual.err ' @@ -388,7 +409,7 @@ test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config head2=$(git rev-parse --short HEAD) && echo "From $pwd/." > expect.err.2 && echo " $head1..$head2 master -> origin/master" >>expect.err.2 && - head -2 expect.err >> expect.err.2 && + head -3 expect.err >> expect.err.2 && ( cd downstream && git config fetch.recurseSubmodules on-demand && @@ -399,7 +420,7 @@ test_expect_success "'fetch.recurseSubmodules=on-demand' overrides global config cd downstream && git config --unset fetch.recurseSubmodules ) && - test_i18ncmp expect.out.sub actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err.2 actual.err ' @@ -416,7 +437,7 @@ test_expect_success "'submodule.<sub>.fetchRecurseSubmodules=on-demand' override head2=$(git rev-parse --short HEAD) && echo "From $pwd/." > expect.err.2 && echo " $head1..$head2 master -> origin/master" >>expect.err.2 && - head -2 expect.err >> expect.err.2 && + head -3 expect.err >> expect.err.2 && ( cd downstream && git config submodule.submodule.fetchRecurseSubmodules on-demand && @@ -427,7 +448,7 @@ test_expect_success "'submodule.<sub>.fetchRecurseSubmodules=on-demand' override cd downstream && git config --unset submodule.submodule.fetchRecurseSubmodules ) && - test_i18ncmp expect.out.sub actual.out && + test_must_be_empty actual.out && test_i18ncmp expect.err.2 actual.err ' diff --git a/t/t5530-upload-pack-error.sh b/t/t5530-upload-pack-error.sh index 3932e797f..4f6e32b04 100755 --- a/t/t5530-upload-pack-error.sh +++ b/t/t5530-upload-pack-error.sh @@ -4,7 +4,7 @@ test_description='errors in upload-pack' . ./test-lib.sh -D=`pwd` +D=$(pwd) corrupt_repo () { object_sha1=$(git rev-parse "$1") && diff --git a/t/t5532-fetch-proxy.sh b/t/t5532-fetch-proxy.sh index 5531bd1af..d75ef0ea2 100755 --- a/t/t5532-fetch-proxy.sh +++ b/t/t5532-fetch-proxy.sh @@ -15,7 +15,7 @@ test_expect_success 'setup remote repo' ' cat >proxy <<'EOF' #!/bin/sh echo >&2 "proxying for $*" -cmd=`"$PERL_PATH" -e ' +cmd=$("$PERL_PATH" -e ' read(STDIN, $buf, 4); my $n = hex($buf) - 4; read(STDIN, $buf, $n); @@ -23,7 +23,7 @@ cmd=`"$PERL_PATH" -e ' # drop absolute-path on repo name $cmd =~ s{ /}{ }; print $cmd; -'` +') echo >&2 "Running '$cmd'" exec $cmd EOF diff --git a/t/t5537-fetch-shallow.sh b/t/t5537-fetch-shallow.sh index a98057468..df8d2f095 100755 --- a/t/t5537-fetch-shallow.sh +++ b/t/t5537-fetch-shallow.sh @@ -98,7 +98,7 @@ EOF test_expect_success 'fetch something upstream has but hidden by clients shallow boundaries' ' # the blob "1" is available in .git but hidden by the # shallow2/.git/shallow and it should be resent - ! git --git-dir=shallow2/.git cat-file blob `echo 1|git hash-object --stdin` >/dev/null && + ! git --git-dir=shallow2/.git cat-file blob $(echo 1|git hash-object --stdin) >/dev/null && echo 1 >1.t && git add 1.t && git commit -m add-1-back && @@ -114,7 +114,7 @@ add-1-back EOF test_cmp expect actual ) && - git --git-dir=shallow2/.git cat-file blob `echo 1|git hash-object --stdin` >/dev/null + git --git-dir=shallow2/.git cat-file blob $(echo 1|git hash-object --stdin) >/dev/null ' diff --git a/t/t5538-push-shallow.sh b/t/t5538-push-shallow.sh index ceee95b8a..ecbf84d21 100755 --- a/t/t5538-push-shallow.sh +++ b/t/t5538-push-shallow.sh @@ -104,7 +104,7 @@ EOF ' test_expect_success 'push from full to shallow' ' - ! git --git-dir=shallow2/.git cat-file blob `echo 1|git hash-object --stdin` && + ! git --git-dir=shallow2/.git cat-file blob $(echo 1|git hash-object --stdin) && commit 1 && git push shallow2/.git +master:refs/remotes/top/master && ( @@ -117,7 +117,7 @@ test_expect_success 'push from full to shallow' ' 3 EOF test_cmp expect actual && - git cat-file blob `echo 1|git hash-object --stdin` >/dev/null + git cat-file blob $(echo 1|git hash-object --stdin) >/dev/null ) ' test_done diff --git a/t/t5550-http-fetch-dumb.sh b/t/t5550-http-fetch-dumb.sh index 87a7aa04a..64146352a 100755 --- a/t/t5550-http-fetch-dumb.sh +++ b/t/t5550-http-fetch-dumb.sh @@ -132,7 +132,7 @@ test_expect_success 'fetch packed objects' ' test_expect_success 'fetch notices corrupt pack' ' cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git && (cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad1.git && - p=`ls objects/pack/pack-*.pack` && + p=$(ls objects/pack/pack-*.pack) && chmod u+w $p && printf %0256d 0 | dd of=$p bs=256 count=1 seek=1 conv=notrunc ) && @@ -140,14 +140,14 @@ test_expect_success 'fetch notices corrupt pack' ' (cd repo_bad1.git && git --bare init && test_must_fail git --bare fetch $HTTPD_URL/dumb/repo_bad1.git && - test 0 = `ls objects/pack/pack-*.pack | wc -l` + test 0 = $(ls objects/pack/pack-*.pack | wc -l) ) ' test_expect_success 'fetch notices corrupt idx' ' cp -R "$HTTPD_DOCUMENT_ROOT_PATH"/repo_pack.git "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad2.git && (cd "$HTTPD_DOCUMENT_ROOT_PATH"/repo_bad2.git && - p=`ls objects/pack/pack-*.idx` && + p=$(ls objects/pack/pack-*.idx) && chmod u+w $p && printf %0256d 0 | dd of=$p bs=256 count=1 seek=1 conv=notrunc ) && @@ -155,7 +155,7 @@ test_expect_success 'fetch notices corrupt idx' ' (cd repo_bad2.git && git --bare init && test_must_fail git --bare fetch $HTTPD_URL/dumb/repo_bad2.git && - test 0 = `ls objects/pack | wc -l` + test 0 = $(ls objects/pack | wc -l) ) ' diff --git a/t/t5570-git-daemon.sh b/t/t5570-git-daemon.sh index b7e283252..d76269a8f 100755 --- a/t/t5570-git-daemon.sh +++ b/t/t5570-git-daemon.sh @@ -57,7 +57,7 @@ test_expect_success 'prepare pack objects' ' test_expect_success 'fetch notices corrupt pack' ' cp -R "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_pack.git "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_bad1.git && (cd "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_bad1.git && - p=`ls objects/pack/pack-*.pack` && + p=$(ls objects/pack/pack-*.pack) && chmod u+w $p && printf %0256d 0 | dd of=$p bs=256 count=1 seek=1 conv=notrunc ) && @@ -65,14 +65,14 @@ test_expect_success 'fetch notices corrupt pack' ' (cd repo_bad1.git && git --bare init && test_must_fail git --bare fetch "$GIT_DAEMON_URL/repo_bad1.git" && - test 0 = `ls objects/pack/pack-*.pack | wc -l` + test 0 = $(ls objects/pack/pack-*.pack | wc -l) ) ' test_expect_success 'fetch notices corrupt idx' ' cp -R "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_pack.git "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_bad2.git && (cd "$GIT_DAEMON_DOCUMENT_ROOT_PATH"/repo_bad2.git && - p=`ls objects/pack/pack-*.idx` && + p=$(ls objects/pack/pack-*.idx) && chmod u+w $p && printf %0256d 0 | dd of=$p bs=256 count=1 seek=1 conv=notrunc ) && @@ -80,7 +80,7 @@ test_expect_success 'fetch notices corrupt idx' ' (cd repo_bad2.git && git --bare init && test_must_fail git --bare fetch "$GIT_DAEMON_URL/repo_bad2.git" && - test 0 = `ls objects/pack | wc -l` + test 0 = $(ls objects/pack | wc -l) ) ' diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh index 9b34f3c61..669ec9ba8 100755 --- a/t/t5601-clone.sh +++ b/t/t5601-clone.sh @@ -65,6 +65,29 @@ test_expect_success 'clone respects GIT_WORK_TREE' ' ' +test_expect_success 'clone from hooks' ' + + test_create_repo r0 && + cd r0 && + test_commit initial && + cd .. && + git init r1 && + cd r1 && + cat >.git/hooks/pre-commit <<-\EOF && + #!/bin/sh + git clone ../r0 ../r2 + exit 1 + EOF + chmod u+x .git/hooks/pre-commit && + : >file && + git add file && + test_must_fail git commit -m invoke-hook && + cd .. && + test_cmp r0/.git/HEAD r2/.git/HEAD && + test_cmp r0/initial.t r2/initial.t + +' + test_expect_success 'clone creates intermediate directories' ' git clone src long/path/to/dst && @@ -221,7 +244,7 @@ test_expect_success 'clone separate gitdir' ' ' test_expect_success 'clone separate gitdir: output' ' - echo "gitdir: `pwd`/realgitdir" >expected && + echo "gitdir: $(pwd)/realgitdir" >expected && test_cmp expected dst/.git ' diff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh index dfa1bf79c..4320082b1 100755 --- a/t/t5700-clone-reference.sh +++ b/t/t5700-clone-reference.sh @@ -6,7 +6,7 @@ test_description='test clone --reference' . ./test-lib.sh -base_dir=`pwd` +base_dir=$(pwd) U=$base_dir/UPLOAD_LOG diff --git a/t/t5710-info-alternate.sh b/t/t5710-info-alternate.sh index 5a6e49d18..9cd2626db 100755 --- a/t/t5710-info-alternate.sh +++ b/t/t5710-info-alternate.sh @@ -21,7 +21,7 @@ test_valid_repo() { test_line_count = 0 fsck.log } -base_dir=`pwd` +base_dir=$(pwd) test_expect_success 'preparing first repository' \ 'test_create_repo A && cd A && diff --git a/t/t5900-repo-selection.sh b/t/t5900-repo-selection.sh index 3d5b418bb..14e59c5b3 100755 --- a/t/t5900-repo-selection.sh +++ b/t/t5900-repo-selection.sh @@ -15,7 +15,7 @@ make_tree() { make_bare() { git init --bare "$1" && (cd "$1" && - tree=`git hash-object -w -t tree /dev/null` && + tree=$(git hash-object -w -t tree /dev/null) && commit=$(echo "$1" | git commit-tree $tree) && git update-ref HEAD $commit ) diff --git a/t/t6001-rev-list-graft.sh b/t/t6001-rev-list-graft.sh index 8efcd1307..05ddc69cf 100755 --- a/t/t6001-rev-list-graft.sh +++ b/t/t6001-rev-list-graft.sh @@ -10,15 +10,15 @@ test_expect_success setup ' echo >subdir/fileB fileB && git add fileA subdir/fileB && git commit -a -m "Initial in one history." && - A0=`git rev-parse --verify HEAD` && + A0=$(git rev-parse --verify HEAD) && echo >fileA fileA modified && git commit -a -m "Second in one history." && - A1=`git rev-parse --verify HEAD` && + A1=$(git rev-parse --verify HEAD) && echo >subdir/fileB fileB modified && git commit -a -m "Third in one history." && - A2=`git rev-parse --verify HEAD` && + A2=$(git rev-parse --verify HEAD) && rm -f .git/refs/heads/master .git/index && @@ -26,15 +26,15 @@ test_expect_success setup ' echo >subdir/fileB fileB again && git add fileA subdir/fileB && git commit -a -m "Initial in alternate history." && - B0=`git rev-parse --verify HEAD` && + B0=$(git rev-parse --verify HEAD) && echo >fileA fileA modified in alternate history && git commit -a -m "Second in alternate history." && - B1=`git rev-parse --verify HEAD` && + B1=$(git rev-parse --verify HEAD) && echo >subdir/fileB fileB modified in alternate history && git commit -a -m "Third in alternate history." && - B2=`git rev-parse --verify HEAD` && + B2=$(git rev-parse --verify HEAD) && : done ' diff --git a/t/t6002-rev-list-bisect.sh b/t/t6002-rev-list-bisect.sh index 43ad77248..3bf2759ea 100755 --- a/t/t6002-rev-list-bisect.sh +++ b/t/t6002-rev-list-bisect.sh @@ -27,9 +27,9 @@ test_bisection_diff() # Test if bisection size is close to half of list size within # tolerance. # - _bisect_err=`expr $_list_size - $_bisection_size \* 2` - test "$_bisect_err" -lt 0 && _bisect_err=`expr 0 - $_bisect_err` - _bisect_err=`expr $_bisect_err / 2` ; # floor + _bisect_err=$(expr $_list_size - $_bisection_size \* 2) + test "$_bisect_err" -lt 0 && _bisect_err=$(expr 0 - $_bisect_err) + _bisect_err=$(expr $_bisect_err / 2) ; # floor test_expect_success \ "bisection diff $_bisect_option $_head $* <= $_max_diff" \ diff --git a/t/t6015-rev-list-show-all-parents.sh b/t/t6015-rev-list-show-all-parents.sh index 8b146fb43..3c73c93ba 100755 --- a/t/t6015-rev-list-show-all-parents.sh +++ b/t/t6015-rev-list-show-all-parents.sh @@ -6,11 +6,11 @@ test_description='--show-all --parents does not rewrite TREESAME commits' test_expect_success 'set up --show-all --parents test' ' test_commit one foo.txt && - commit1=`git rev-list -1 HEAD` && + commit1=$(git rev-list -1 HEAD) && test_commit two bar.txt && - commit2=`git rev-list -1 HEAD` && + commit2=$(git rev-list -1 HEAD) && test_commit three foo.txt && - commit3=`git rev-list -1 HEAD` + commit3=$(git rev-list -1 HEAD) ' test_expect_success '--parents rewrites TREESAME parents correctly' ' diff --git a/t/t6032-merge-large-rename.sh b/t/t6032-merge-large-rename.sh index 0f7926891..80777386d 100755 --- a/t/t6032-merge-large-rename.sh +++ b/t/t6032-merge-large-rename.sh @@ -20,7 +20,7 @@ test_expect_success 'setup (initial)' ' make_text() { echo $1: $2 - for i in `count 20`; do + for i in $(count 20); do echo $1: $i done echo $1: $3 diff --git a/t/t6050-replace.sh b/t/t6050-replace.sh index 4d5a25eed..c630aba65 100755 --- a/t/t6050-replace.sh +++ b/t/t6050-replace.sh @@ -351,11 +351,15 @@ test_expect_success 'test --format long' ' test_cmp expected actual ' -test_expect_success 'setup a fake editor' ' - write_script fakeeditor <<-\EOF +test_expect_success 'setup fake editors' ' + write_script fakeeditor <<-\EOF && sed -e "s/A U Thor/A fake Thor/" "$1" >"$1.new" mv "$1.new" "$1" EOF + write_script failingfakeeditor <<-\EOF + ./fakeeditor "$@" + false + EOF ' test_expect_success '--edit with and without already replaced object' ' @@ -372,7 +376,7 @@ test_expect_success '--edit with and without already replaced object' ' test_expect_success '--edit and change nothing or command failed' ' git replace -d "$PARA3" && test_must_fail env GIT_EDITOR=true git replace --edit "$PARA3" && - test_must_fail env GIT_EDITOR="./fakeeditor;false" git replace --edit "$PARA3" && + test_must_fail env GIT_EDITOR="./failingfakeeditor" git replace --edit "$PARA3" && GIT_EDITOR=./fakeeditor git replace --edit "$PARA3" && git replace -l | grep "$PARA3" && git cat-file commit "$PARA3" | grep "A fake Thor" diff --git a/t/t6132-pathspec-exclude.sh b/t/t6132-pathspec-exclude.sh index e1e1b1fa3..d51595cf6 100755 --- a/t/t6132-pathspec-exclude.sh +++ b/t/t6132-pathspec-exclude.sh @@ -7,7 +7,7 @@ test_description='test case exclude pathspec' test_expect_success 'setup' ' for p in file sub/file sub/sub/file sub/file2 sub/sub/sub/file sub2/file; do if echo $p | grep /; then - mkdir -p `dirname $p` + mkdir -p $(dirname $p) fi && : >$p && git add $p && diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh index 7b5608113..51dd2b4e0 100755 --- a/t/t7001-mv.sh +++ b/t/t7001-mv.sh @@ -156,11 +156,11 @@ test_expect_success "Michael Cassar's test case" ' echo b > partA/outline.txt && echo c > papers/unsorted/_another && git add papers partA && - T1=`git write-tree` && + T1=$(git write-tree) && git mv papers/unsorted/Thesis.pdf papers/all-papers/moo-blah.pdf && - T=`git write-tree` && + T=$(git write-tree) && git ls-tree -r $T | verbose grep partA/outline.txt ' diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh index 869e0bf07..8868e6e09 100755 --- a/t/t7003-filter-branch.sh +++ b/t/t7003-filter-branch.sh @@ -387,7 +387,7 @@ test_expect_success 'setup submodule' ' git branch original HEAD ' -orig_head=`git show-ref --hash --head HEAD` +orig_head=$(git show-ref --hash --head HEAD) test_expect_success 'rewrite submodule with another content' ' git filter-branch --tree-filter "test -d submod && { @@ -396,7 +396,7 @@ test_expect_success 'rewrite submodule with another content' ' mkdir submod && : > submod/file } || :" HEAD && - test $orig_head != `git show-ref --hash --head HEAD` + test $orig_head != $(git show-ref --hash --head HEAD) ' test_expect_success 'replace submodule revision' ' @@ -405,7 +405,7 @@ test_expect_success 'replace submodule revision' ' "if git ls-files --error-unmatch -- submod > /dev/null 2>&1 then git update-index --cacheinfo 160000 0123456789012345678901234567890123456789 submod fi" HEAD && - test $orig_head != `git show-ref --hash --head HEAD` + test $orig_head != $(git show-ref --hash --head HEAD) ' test_expect_success 'filter commit message without trailing newline' ' diff --git a/t/t7004-tag.sh b/t/t7004-tag.sh index 3dd2f51e4..2797f2253 100755 --- a/t/t7004-tag.sh +++ b/t/t7004-tag.sh @@ -23,8 +23,8 @@ test_expect_success 'listing all tags in an empty tree should succeed' ' ' test_expect_success 'listing all tags in an empty tree should output nothing' ' - test `git tag -l | wc -l` -eq 0 && - test `git tag | wc -l` -eq 0 + test $(git tag -l | wc -l) -eq 0 && + test $(git tag | wc -l) -eq 0 ' test_expect_success 'looking for a tag in an empty tree should fail' \ @@ -72,8 +72,8 @@ test_expect_success 'listing all tags if one exists should succeed' ' ' test_expect_success 'listing all tags if one exists should output that tag' ' - test `git tag -l` = mytag && - test `git tag` = mytag + test $(git tag -l) = mytag && + test $(git tag) = mytag ' # pattern matching: @@ -83,7 +83,7 @@ test_expect_success 'listing a tag using a matching pattern should succeed' \ test_expect_success \ 'listing a tag using a matching pattern should output that tag' \ - 'test `git tag -l mytag` = mytag' + 'test $(git tag -l mytag) = mytag' # todo: git tag -l now returns always zero, when fixed, change this test test_expect_success \ @@ -92,7 +92,7 @@ test_expect_success \ test_expect_success \ 'listing tags using a non-matching pattern should output nothing' \ - 'test `git tag -l xxx | wc -l` -eq 0' + 'test $(git tag -l xxx | wc -l) -eq 0' # special cases for creating tags: @@ -102,13 +102,13 @@ test_expect_success \ test_expect_success \ 'trying to create a tag with a non-valid name should fail' ' - test `git tag -l | wc -l` -eq 1 && + test $(git tag -l | wc -l) -eq 1 && test_must_fail git tag "" && test_must_fail git tag .othertag && test_must_fail git tag "other tag" && test_must_fail git tag "othertag^" && test_must_fail git tag "other~tag" && - test `git tag -l | wc -l` -eq 1 + test $(git tag -l | wc -l) -eq 1 ' test_expect_success 'creating a tag using HEAD directly should succeed' ' diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh index 6ea7ac4c4..e4fc5c826 100755 --- a/t/t7006-pager.sh +++ b/t/t7006-pager.sh @@ -424,7 +424,7 @@ test_expect_success TTY 'command-specific pager works for external commands' ' echo "foo:initial" >expect && >actual && test_config pager.external "sed s/^/foo:/ >actual" && - test_terminal git --exec-path="`pwd`" external log --format=%s -1 && + test_terminal git --exec-path="$(pwd)" external log --format=%s -1 && test_cmp expect actual ' diff --git a/t/t7103-reset-bare.sh b/t/t7103-reset-bare.sh index 1eef93c2b..afe36a533 100755 --- a/t/t7103-reset-bare.sh +++ b/t/t7103-reset-bare.sh @@ -63,7 +63,7 @@ test_expect_success '"mixed" reset is not allowed in bare' ' test_expect_success '"soft" reset is allowed in bare' ' git reset --soft HEAD^ && - test "`git show --pretty=format:%s | head -n 1`" = "one" + test "$(git show --pretty=format:%s | head -n 1)" = "one" ' test_done diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh index dda3929d9..68ea31d69 100755 --- a/t/t7406-submodule-update.sh +++ b/t/t7406-submodule-update.sh @@ -14,8 +14,8 @@ submodule and "git submodule update --rebase/--merge" does not detach the HEAD. compare_head() { - sha_master=`git rev-list --max-count=1 master` - sha_head=`git rev-list --max-count=1 HEAD` + sha_master=$(git rev-list --max-count=1 master) + sha_head=$(git rev-list --max-count=1 HEAD) test "$sha_master" = "$sha_head" } diff --git a/t/t7408-submodule-reference.sh b/t/t7408-submodule-reference.sh index b770b2f04..eaea19b8f 100755 --- a/t/t7408-submodule-reference.sh +++ b/t/t7408-submodule-reference.sh @@ -6,7 +6,7 @@ test_description='test clone --reference' . ./test-lib.sh -base_dir=`pwd` +base_dir=$(pwd) U=$base_dir/UPLOAD_LOG diff --git a/t/t7504-commit-msg-hook.sh b/t/t7504-commit-msg-hook.sh index 1f53ea809..8728db61d 100755 --- a/t/t7504-commit-msg-hook.sh +++ b/t/t7504-commit-msg-hook.sh @@ -179,7 +179,7 @@ EOF chmod +x "$HOOK" commit_msg_is () { - test "`git log --pretty=format:%s%b -1`" = "$1" + test "$(git log --pretty=format:%s%b -1)" = "$1" } test_expect_success 'hook edits commit message' ' diff --git a/t/t7505-prepare-commit-msg-hook.sh b/t/t7505-prepare-commit-msg-hook.sh index 03dce09cf..b13f72975 100755 --- a/t/t7505-prepare-commit-msg-hook.sh +++ b/t/t7505-prepare-commit-msg-hook.sh @@ -53,7 +53,7 @@ test_expect_success 'with hook (-m)' ' echo "more" >> file && git add file && git commit -m "more" && - test "`git log -1 --pretty=format:%s`" = "message (no editor)" + test "$(git log -1 --pretty=format:%s)" = "message (no editor)" ' @@ -62,7 +62,7 @@ test_expect_success 'with hook (-m editor)' ' echo "more" >> file && git add file && GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -e -m "more more" && - test "`git log -1 --pretty=format:%s`" = message + test "$(git log -1 --pretty=format:%s)" = message ' @@ -71,7 +71,7 @@ test_expect_success 'with hook (-t)' ' echo "more" >> file && git add file && git commit -t "$(git rev-parse --git-dir)/template" && - test "`git log -1 --pretty=format:%s`" = template + test "$(git log -1 --pretty=format:%s)" = template ' @@ -80,7 +80,7 @@ test_expect_success 'with hook (-F)' ' echo "more" >> file && git add file && (echo more | git commit -F -) && - test "`git log -1 --pretty=format:%s`" = "message (no editor)" + test "$(git log -1 --pretty=format:%s)" = "message (no editor)" ' @@ -89,17 +89,17 @@ test_expect_success 'with hook (-F editor)' ' echo "more" >> file && git add file && (echo more more | GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -e -F -) && - test "`git log -1 --pretty=format:%s`" = message + test "$(git log -1 --pretty=format:%s)" = message ' test_expect_success 'with hook (-C)' ' - head=`git rev-parse HEAD` && + head=$(git rev-parse HEAD) && echo "more" >> file && git add file && git commit -C $head && - test "`git log -1 --pretty=format:%s`" = "$head (no editor)" + test "$(git log -1 --pretty=format:%s)" = "$head (no editor)" ' @@ -108,27 +108,27 @@ test_expect_success 'with hook (editor)' ' echo "more more" >> file && git add file && GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit && - test "`git log -1 --pretty=format:%s`" = default + test "$(git log -1 --pretty=format:%s)" = default ' test_expect_success 'with hook (--amend)' ' - head=`git rev-parse HEAD` && + head=$(git rev-parse HEAD) && echo "more" >> file && git add file && GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --amend && - test "`git log -1 --pretty=format:%s`" = "$head" + test "$(git log -1 --pretty=format:%s)" = "$head" ' test_expect_success 'with hook (-c)' ' - head=`git rev-parse HEAD` && + head=$(git rev-parse HEAD) && echo "more" >> file && git add file && GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -c $head && - test "`git log -1 --pretty=format:%s`" = "$head" + test "$(git log -1 --pretty=format:%s)" = "$head" ' @@ -141,7 +141,7 @@ test_expect_success 'with hook (merge)' ' git commit -m other && git checkout - && git merge --no-ff other && - test "`git log -1 --pretty=format:%s`" = "merge (no editor)" + test "$(git log -1 --pretty=format:%s)" = "merge (no editor)" ' test_expect_success 'with hook and editor (merge)' ' @@ -153,7 +153,7 @@ test_expect_success 'with hook and editor (merge)' ' git commit -m other && git checkout - && env GIT_EDITOR="\"\$FAKE_EDITOR\"" git merge --no-ff -e other && - test "`git log -1 --pretty=format:%s`" = "merge" + test "$(git log -1 --pretty=format:%s)" = "merge" ' cat > "$HOOK" <<'EOF' @@ -164,7 +164,7 @@ EOF test_expect_success 'with failing hook' ' test_when_finished "git checkout -f master" && - head=`git rev-parse HEAD` && + head=$(git rev-parse HEAD) && echo "more" >> file && git add file && test_must_fail env GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit -c $head @@ -174,7 +174,7 @@ test_expect_success 'with failing hook' ' test_expect_success 'with failing hook (--no-verify)' ' test_when_finished "git checkout -f master" && - head=`git rev-parse HEAD` && + head=$(git rev-parse HEAD) && echo "more" >> file && git add file && test_must_fail env GIT_EDITOR="\"\$FAKE_EDITOR\"" git commit --no-verify -c $head diff --git a/t/t7602-merge-octopus-many.sh b/t/t7602-merge-octopus-many.sh index 955f09f8e..6abe441ae 100755 --- a/t/t7602-merge-octopus-many.sh +++ b/t/t7602-merge-octopus-many.sh @@ -19,7 +19,7 @@ test_expect_success 'setup' ' git add c$i.c && git commit -m c$i && git tag c$i && - i=`expr $i + 1` || return 1 + i=$(expr $i + 1) || return 1 done ' @@ -30,7 +30,7 @@ test_expect_success 'merge c1 with c2, c3, c4, ... c29' ' while test $i -le 30 do refs="$refs c$i" - i=`expr $i + 1` + i=$(expr $i + 1) done && git merge $refs && test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" && @@ -38,14 +38,14 @@ test_expect_success 'merge c1 with c2, c3, c4, ... c29' ' while test $i -le 30 do test "$(git rev-parse c$i)" = "$(git rev-parse HEAD^$i)" && - i=`expr $i + 1` || return 1 + i=$(expr $i + 1) || return 1 done && git diff --exit-code && i=1 && while test $i -le 30 do test -f c$i.c && - i=`expr $i + 1` || return 1 + i=$(expr $i + 1) || return 1 done ' diff --git a/t/t7700-repack.sh b/t/t7700-repack.sh index 021c5479b..6061a0414 100755 --- a/t/t7700-repack.sh +++ b/t/t7700-repack.sh @@ -69,7 +69,7 @@ test_expect_success 'writing bitmaps via config can duplicate .keep objects' ' test_expect_success 'loose objects in alternate ODB are not repacked' ' mkdir alt_objects && - echo `pwd`/alt_objects > .git/objects/info/alternates && + echo $(pwd)/alt_objects > .git/objects/info/alternates && echo content3 > file3 && objsha1=$(GIT_OBJECT_DIRECTORY=alt_objects git hash-object -w file3) && git add file3 && @@ -168,7 +168,7 @@ test_expect_success 'packed unreachable obs in alternate ODB are not loosened' ' ' test_expect_success 'local packed unreachable obs that exist in alternate ODB are not loosened' ' - echo `pwd`/alt_objects > .git/objects/info/alternates && + echo $(pwd)/alt_objects > .git/objects/info/alternates && echo "$csha1" | git pack-objects --non-empty --all --reflog pack && rm -f .git/objects/pack/* && mv pack-* .git/objects/pack/ && diff --git a/t/t7810-grep.sh b/t/t7810-grep.sh index 028ffe4a0..b54094440 100755 --- a/t/t7810-grep.sh +++ b/t/t7810-grep.sh @@ -791,12 +791,12 @@ test_expect_success 'outside of git repository' ' } >non/expect.full && echo file2:world >non/expect.sub && ( - GIT_CEILING_DIRECTORIES="$(pwd)/non/git" && + GIT_CEILING_DIRECTORIES="$(pwd)/non" && export GIT_CEILING_DIRECTORIES && cd non/git && test_must_fail git grep o && git grep --no-index o >../actual.full && - test_cmp ../expect.full ../actual.full + test_cmp ../expect.full ../actual.full && cd sub && test_must_fail git grep o && git grep --no-index o >../../actual.sub && @@ -805,7 +805,7 @@ test_expect_success 'outside of git repository' ' echo ".*o*" >non/git/.gitignore && ( - GIT_CEILING_DIRECTORIES="$(pwd)/non/git" && + GIT_CEILING_DIRECTORIES="$(pwd)/non" && export GIT_CEILING_DIRECTORIES && cd non/git && test_must_fail git grep o && @@ -813,7 +813,7 @@ test_expect_success 'outside of git repository' ' test_cmp ../expect.full ../actual.full && { - echo ".gitignore:.*o*" + echo ".gitignore:.*o*" && cat ../expect.full } >../expect.with.ignored && git grep --no-index --no-exclude o >../actual.full && @@ -821,6 +821,47 @@ test_expect_success 'outside of git repository' ' ) ' +test_expect_success 'outside of git repository with fallbackToNoIndex' ' + rm -fr non && + mkdir -p non/git/sub && + echo hello >non/git/file1 && + echo world >non/git/sub/file2 && + cat <<-\EOF >non/expect.full && + file1:hello + sub/file2:world + EOF + echo file2:world >non/expect.sub && + ( + GIT_CEILING_DIRECTORIES="$(pwd)/non" && + export GIT_CEILING_DIRECTORIES && + cd non/git && + test_must_fail git -c grep.fallbackToNoIndex=false grep o && + git -c grep.fallbackToNoIndex=true grep o >../actual.full && + test_cmp ../expect.full ../actual.full && + cd sub && + test_must_fail git -c grep.fallbackToNoIndex=false grep o && + git -c grep.fallbackToNoIndex=true grep o >../../actual.sub && + test_cmp ../../expect.sub ../../actual.sub + ) && + + echo ".*o*" >non/git/.gitignore && + ( + GIT_CEILING_DIRECTORIES="$(pwd)/non" && + export GIT_CEILING_DIRECTORIES && + cd non/git && + test_must_fail git -c grep.fallbackToNoIndex=false grep o && + git -c grep.fallbackToNoIndex=true grep --exclude-standard o >../actual.full && + test_cmp ../expect.full ../actual.full && + + { + echo ".gitignore:.*o*" && + cat ../expect.full + } >../expect.with.ignored && + git -c grep.fallbackToNoIndex grep --no-exclude o >../actual.full && + test_cmp ../expect.with.ignored ../actual.full + ) +' + test_expect_success 'inside git repository but with --no-index' ' rm -fr is && mkdir -p is/git/sub && diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh index 16f1442c1..656842975 100755 --- a/t/t8003-blame-corner-cases.sh +++ b/t/t8003-blame-corner-cases.sh @@ -153,7 +153,7 @@ test_expect_success 'blame path that used to be a directory' ' ' test_expect_success 'blame to a commit with no author name' ' - TREE=`git rev-parse HEAD:` && + TREE=$(git rev-parse HEAD:) && cat >badcommit <<EOF && tree $TREE author <noname> 1234567890 +0000 @@ -161,7 +161,7 @@ committer David Reiss <dreiss@facebook.com> 1234567890 +0000 some message EOF - COMMIT=`git hash-object -t commit -w badcommit` && + COMMIT=$(git hash-object -t commit -w badcommit) && git --no-pager blame $COMMIT -- uno >/dev/null ' diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh index 3c49536e0..b3355d2c7 100755 --- a/t/t9001-send-email.sh +++ b/t/t9001-send-email.sh @@ -36,7 +36,7 @@ clean_fake_sendmail () { } test_expect_success $PREREQ 'Extract patches' ' - patches=`git format-patch -s --cc="One <one@example.com>" --cc=two@example.com -n HEAD^1` + patches=$(git format-patch -s --cc="One <one@example.com>" --cc=two@example.com -n HEAD^1) ' # Test no confirm early to ensure remaining tests will not hang @@ -1151,7 +1151,7 @@ test_expect_success $PREREQ '--no-bcc overrides sendemail.bcc' ' ' test_expect_success $PREREQ 'patches To headers are used by default' ' - patch=`git format-patch -1 --to="bodies@example.com"` && + patch=$(git format-patch -1 --to="bodies@example.com") && test_when_finished "rm $patch" && git send-email \ --dry-run \ @@ -1162,7 +1162,7 @@ test_expect_success $PREREQ 'patches To headers are used by default' ' ' test_expect_success $PREREQ 'patches To headers are appended to' ' - patch=`git format-patch -1 --to="bodies@example.com"` && + patch=$(git format-patch -1 --to="bodies@example.com") && test_when_finished "rm $patch" && git send-email \ --dry-run \ @@ -1175,8 +1175,8 @@ test_expect_success $PREREQ 'patches To headers are appended to' ' ' test_expect_success $PREREQ 'To headers from files reset each patch' ' - patch1=`git format-patch -1 --to="bodies@example.com"` && - patch2=`git format-patch -1 --to="other@example.com" HEAD~` && + patch1=$(git format-patch -1 --to="bodies@example.com") && + patch2=$(git format-patch -1 --to="other@example.com" HEAD~) && test_when_finished "rm $patch1 && rm $patch2" && git send-email \ --dry-run \ @@ -1488,7 +1488,7 @@ test_cover_addresses () { clean_fake_sendmail && rm -fr outdir && git format-patch --cover-letter -2 -o outdir && - cover=`echo outdir/0000-*.patch` && + cover=$(echo outdir/0000-*.patch) && mv $cover cover-to-edit.patch && perl -pe "s/^From:/$header: extra\@address.com\nFrom:/" cover-to-edit.patch >"$cover" && git send-email \ @@ -1527,6 +1527,21 @@ test_expect_success $PREREQ 'cccover adds Cc to all mail' ' test_cover_addresses "Cc" ' +test_expect_success $PREREQ 'escaped quotes in sendemail.aliasfiletype=mutt' ' + clean_fake_sendmail && + echo "alias sbd \\\"Dot U. Sir\\\" <somebody@example.org>" >.mutt && + git config --replace-all sendemail.aliasesfile "$(pwd)/.mutt" && + git config sendemail.aliasfiletype mutt && + git send-email \ + --from="Example <nobody@example.com>" \ + --to=sbd \ + --smtp-server="$(pwd)/fake.sendmail" \ + outdir/0001-*.patch \ + 2>errors >out && + grep "^!somebody@example\.org!$" commandline1 && + grep -F "To: \"Dot U. Sir\" <somebody@example.org>" out +' + test_expect_success $PREREQ 'sendemail.aliasfiletype=mailrc' ' clean_fake_sendmail && echo "alias sbd somebody@example.org" >.mailrc && diff --git a/t/t9100-git-svn-basic.sh b/t/t9100-git-svn-basic.sh index 4fea8d901..258d9b8ce 100755 --- a/t/t9100-git-svn-basic.sh +++ b/t/t9100-git-svn-basic.sh @@ -265,18 +265,18 @@ test_expect_success 'able to dcommit to a subdirectory' " git update-index --add d && git commit -m '/bar/d should be in the log' && git svn dcommit -i bar && - test -z \"\`git diff refs/heads/my-bar refs/remotes/bar\`\" && + test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" && mkdir newdir && echo new > newdir/dir && git update-index --add newdir/dir && git commit -m 'add a new directory' && git svn dcommit -i bar && - test -z \"\`git diff refs/heads/my-bar refs/remotes/bar\`\" && + test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" && echo foo >> newdir/dir && git update-index newdir/dir && git commit -m 'modify a file in new directory' && git svn dcommit -i bar && - test -z \"\`git diff refs/heads/my-bar refs/remotes/bar\`\" + test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" " test_expect_success 'dcommit should not fail with a touched file' ' @@ -295,7 +295,7 @@ test_expect_success 'able to set-tree to a subdirectory' " git update-index d && git commit -m 'update /bar/d' && git svn set-tree -i bar HEAD && - test -z \"\`git diff refs/heads/my-bar refs/remotes/bar\`\" + test -z \"\$(git diff refs/heads/my-bar refs/remotes/bar)\" " test_expect_success 'git-svn works in a bare repository' ' diff --git a/t/t9101-git-svn-props.sh b/t/t9101-git-svn-props.sh index 8869f5018..e8173d5fe 100755 --- a/t/t9101-git-svn-props.sh +++ b/t/t9101-git-svn-props.sh @@ -26,27 +26,27 @@ cd import EOF printf "Hello\r\nWorld\r\n" > crlf - a_crlf=`git hash-object -w crlf` + a_crlf=$(git hash-object -w crlf) printf "Hello\rWorld\r" > cr - a_cr=`git hash-object -w cr` + a_cr=$(git hash-object -w cr) printf "Hello\nWorld\n" > lf - a_lf=`git hash-object -w lf` + a_lf=$(git hash-object -w lf) printf "Hello\r\nWorld" > ne_crlf - a_ne_crlf=`git hash-object -w ne_crlf` + a_ne_crlf=$(git hash-object -w ne_crlf) printf "Hello\nWorld" > ne_lf - a_ne_lf=`git hash-object -w ne_lf` + a_ne_lf=$(git hash-object -w ne_lf) printf "Hello\rWorld" > ne_cr - a_ne_cr=`git hash-object -w ne_cr` + a_ne_cr=$(git hash-object -w ne_cr) touch empty - a_empty=`git hash-object -w empty` + a_empty=$(git hash-object -w empty) printf "\n" > empty_lf - a_empty_lf=`git hash-object -w empty_lf` + a_empty_lf=$(git hash-object -w empty_lf) printf "\r" > empty_cr - a_empty_cr=`git hash-object -w empty_cr` + a_empty_cr=$(git hash-object -w empty_cr) printf "\r\n" > empty_crlf - a_empty_crlf=`git hash-object -w empty_crlf` + a_empty_crlf=$(git hash-object -w empty_crlf) svn_cmd import --no-auto-props -m 'import for git svn' . "$svnrepo" >/dev/null cd .. @@ -80,7 +80,7 @@ test_expect_success "$name" \ git pull . ${remotes_git_svn}' expect='/* $Id$ */' -got="`sed -ne 2p kw.c`" +got="$(sed -ne 2p kw.c)" test_expect_success 'raw $Id$ found in kw.c' "test '$expect' = '$got'" test_expect_success "propset CR on crlf files" ' @@ -107,8 +107,8 @@ done cd test_wc printf '$Id$\rHello\rWorld\r' > cr printf '$Id$\rHello\rWorld' > ne_cr - a_cr=`printf '$Id$\r\nHello\r\nWorld\r\n' | git hash-object --stdin` - a_ne_cr=`printf '$Id$\r\nHello\r\nWorld' | git hash-object --stdin` + a_cr=$(printf '$Id$\r\nHello\r\nWorld\r\n' | git hash-object --stdin) + a_ne_cr=$(printf '$Id$\r\nHello\r\nWorld' | git hash-object --stdin) test_expect_success 'Set CRLF on cr files' \ 'svn_cmd propset svn:eol-style CRLF cr && svn_cmd propset svn:eol-style CRLF ne_cr && @@ -119,8 +119,8 @@ cd .. test_expect_success 'fetch and pull latest from svn' \ 'git svn fetch && git pull . ${remotes_git_svn}' -b_cr="`git hash-object cr`" -b_ne_cr="`git hash-object ne_cr`" +b_cr="$(git hash-object cr)" +b_ne_cr="$(git hash-object ne_cr)" test_expect_success 'CRLF + $Id$' "test '$a_cr' = '$b_cr'" test_expect_success 'CRLF + $Id$ (no newline)' "test '$a_ne_cr' = '$b_ne_cr'" diff --git a/t/t9104-git-svn-follow-parent.sh b/t/t9104-git-svn-follow-parent.sh index 83f17e13e..cd480edf1 100755 --- a/t/t9104-git-svn-follow-parent.sh +++ b/t/t9104-git-svn-follow-parent.sh @@ -31,12 +31,12 @@ test_expect_success 'initialize repo' ' test_expect_success 'init and fetch a moved directory' ' git svn init --minimize-url -i thunk "$svnrepo"/thunk && git svn fetch -i thunk && - test "`git rev-parse --verify refs/remotes/thunk@2`" \ - = "`git rev-parse --verify refs/remotes/thunk~1`" && - test "`git cat-file blob refs/remotes/thunk:readme |\ - sed -n -e "3p"`" = goodbye && - test -z "`git config --get svn-remote.svn.fetch \ - "^trunk:refs/remotes/thunk@2$"`" + test "$(git rev-parse --verify refs/remotes/thunk@2)" \ + = "$(git rev-parse --verify refs/remotes/thunk~1)" && + test "$(git cat-file blob refs/remotes/thunk:readme |\ + sed -n -e "3p")" = goodbye && + test -z "$(git config --get svn-remote.svn.fetch \ + "^trunk:refs/remotes/thunk@2$")" ' test_expect_success 'init and fetch from one svn-remote' ' @@ -46,10 +46,10 @@ test_expect_success 'init and fetch from one svn-remote' ' git config --add svn-remote.svn.fetch \ thunk:refs/remotes/svn/thunk && git svn fetch -i svn/thunk && - test "`git rev-parse --verify refs/remotes/svn/trunk`" \ - = "`git rev-parse --verify refs/remotes/svn/thunk~1`" && - test "`git cat-file blob refs/remotes/svn/thunk:readme |\ - sed -n -e "3p"`" = goodbye + test "$(git rev-parse --verify refs/remotes/svn/trunk)" \ + = "$(git rev-parse --verify refs/remotes/svn/thunk~1)" && + test "$(git cat-file blob refs/remotes/svn/thunk:readme |\ + sed -n -e "3p")" = goodbye ' test_expect_success 'follow deleted parent' ' @@ -61,9 +61,9 @@ test_expect_success 'follow deleted parent' ' junk:refs/remotes/svn/junk && git svn fetch -i svn/thunk && git svn fetch -i svn/junk && - test -z "`git diff svn/junk svn/trunk`" && - test "`git merge-base svn/junk svn/trunk`" \ - = "`git rev-parse svn/trunk`" + test -z "$(git diff svn/junk svn/trunk)" && + test "$(git merge-base svn/junk svn/trunk)" \ + = "$(git rev-parse svn/trunk)" ' test_expect_success 'follow larger parent' ' @@ -80,10 +80,10 @@ test_expect_success 'follow larger parent' ' git rev-parse --verify refs/remotes/larger && git rev-parse --verify \ refs/remotes/larger-parent && - test "`git merge-base \ + test "$(git merge-base \ refs/remotes/larger-parent \ - refs/remotes/larger`" = \ - "`git rev-parse refs/remotes/larger`" + refs/remotes/larger)" = \ + "$(git rev-parse refs/remotes/larger)" ' test_expect_success 'follow higher-level parent' ' @@ -106,8 +106,8 @@ test_expect_success 'follow deleted directory' ' svn_cmd rm -m "remove glob" "$svnrepo"/glob && git svn init --minimize-url -i glob "$svnrepo"/glob && git svn fetch -i glob && - test "`git cat-file blob refs/remotes/glob:blob/bye`" = hi && - test "`git ls-tree refs/remotes/glob | wc -l `" -eq 1 + test "$(git cat-file blob refs/remotes/glob:blob/bye)" = hi && + test "$(git ls-tree refs/remotes/glob | wc -l )" -eq 1 ' # ref: r9270 of the Subversion repository: (http://svn.collab.net/repos/svn) @@ -142,9 +142,9 @@ test_expect_success 'follow-parent avoids deleting relevant info' ' git svn init --minimize-url -i r9270-t \ "$svnrepo"/r9270/trunk/subversion/bindings/swig/perl/native/t && git svn fetch -i r9270-t && - test `git rev-list r9270-t | wc -l` -eq 2 && - test "`git ls-tree --name-only r9270-t~1`" = \ - "`git ls-tree --name-only r9270-t`" + test $(git rev-list r9270-t | wc -l) -eq 2 && + test "$(git ls-tree --name-only r9270-t~1)" = \ + "$(git ls-tree --name-only r9270-t)" ' test_expect_success "track initial change if it was only made to parent" ' @@ -152,11 +152,11 @@ test_expect_success "track initial change if it was only made to parent" ' git svn init --minimize-url -i r9270-d \ "$svnrepo"/r9270/drunk/subversion/bindings/swig/perl/native/t && git svn fetch -i r9270-d && - test `git rev-list r9270-d | wc -l` -eq 3 && - test "`git ls-tree --name-only r9270-t`" = \ - "`git ls-tree --name-only r9270-d`" && - test "`git rev-parse r9270-t`" = \ - "`git rev-parse r9270-d~1`" + test $(git rev-list r9270-d | wc -l) -eq 3 && + test "$(git ls-tree --name-only r9270-t)" = \ + "$(git ls-tree --name-only r9270-d)" && + test "$(git rev-parse r9270-t)" = \ + "$(git rev-parse r9270-d~1)" ' test_expect_success "follow-parent is atomic" ' @@ -193,19 +193,19 @@ test_expect_success "follow-parent is atomic" ' git svn fetch -i stunk && git svn init --minimize-url -i flunked "$svnrepo"/flunked && git svn fetch -i flunked && - test "`git rev-parse --verify refs/remotes/flunk@18`" \ - = "`git rev-parse --verify refs/remotes/stunk`" && - test "`git rev-parse --verify refs/remotes/flunk~1`" \ - = "`git rev-parse --verify refs/remotes/stunk`" && - test "`git rev-parse --verify refs/remotes/flunked~1`" \ - = "`git rev-parse --verify refs/remotes/stunk~1`" + test "$(git rev-parse --verify refs/remotes/flunk@18)" \ + = "$(git rev-parse --verify refs/remotes/stunk)" && + test "$(git rev-parse --verify refs/remotes/flunk~1)" \ + = "$(git rev-parse --verify refs/remotes/stunk)" && + test "$(git rev-parse --verify refs/remotes/flunked~1)" \ + = "$(git rev-parse --verify refs/remotes/stunk~1)" ' test_expect_success "track multi-parent paths" ' svn_cmd cp -m "resurrect /glob" "$svnrepo"/r9270 "$svnrepo"/glob && git svn multi-fetch && - test `git cat-file commit refs/remotes/glob | \ - grep "^parent " | wc -l` -eq 2 + test $(git cat-file commit refs/remotes/glob | \ + grep "^parent " | wc -l) -eq 2 ' test_expect_success "multi-fetch continues to work" " diff --git a/t/t9105-git-svn-commit-diff.sh b/t/t9105-git-svn-commit-diff.sh index 5d0afeae6..6ed5f74e2 100755 --- a/t/t9105-git-svn-commit-diff.sh +++ b/t/t9105-git-svn-commit-diff.sh @@ -18,8 +18,8 @@ test_expect_success 'initialize repo' ' git commit -a -m "another" ' -head=`git rev-parse --verify HEAD^0` -prev=`git rev-parse --verify HEAD^1` +head=$(git rev-parse --verify HEAD^0) +prev=$(git rev-parse --verify HEAD^1) # the internals of the commit-diff command are the same as the regular # commit, so only a basic test of functionality is needed since we've diff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh index 6e69fc4c6..906019803 100755 --- a/t/t9107-git-svn-migrate.sh +++ b/t/t9107-git-svn-migrate.sh @@ -24,10 +24,10 @@ test_expect_success 'setup old-looking metadata' ' git update-ref -d refs/${remotes_git_svn} refs/${remotes_git_svn} ' -head=`git rev-parse --verify refs/heads/git-svn-HEAD^0` +head=$(git rev-parse --verify refs/heads/git-svn-HEAD^0) test_expect_success 'git-svn-HEAD is a real HEAD' "test -n '$head'" -svnrepo_escaped=`echo $svnrepo | sed 's/ /%20/'` +svnrepo_escaped=$(echo $svnrepo | sed 's/ /%20/') test_expect_success 'initialize old-style (v0) git svn layout' ' mkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info && @@ -38,7 +38,7 @@ test_expect_success 'initialize old-style (v0) git svn layout' ' git rev-parse --verify refs/${remotes_git_svn}^0 && git rev-parse --verify refs/remotes/svn^0 && test "$(git config --get svn-remote.svn.url)" = "$svnrepo_escaped" && - test `git config --get svn-remote.svn.fetch` = \ + test $(git config --get svn-remote.svn.fetch) = \ ":refs/${remotes_git_svn}" ' @@ -46,10 +46,10 @@ test_expect_success 'initialize a multi-repository repo' ' git svn init "$svnrepo" -T trunk -t tags -b branches && git config --get-all svn-remote.svn.fetch > fetch.out && grep "^trunk:refs/remotes/origin/trunk$" fetch.out && - test -n "`git config --get svn-remote.svn.branches \ - "^branches/\*:refs/remotes/origin/\*$"`" && - test -n "`git config --get svn-remote.svn.tags \ - "^tags/\*:refs/remotes/origin/tags/\*$"`" && + test -n "$(git config --get svn-remote.svn.branches \ + "^branches/\*:refs/remotes/origin/\*$")" && + test -n "$(git config --get svn-remote.svn.tags \ + "^tags/\*:refs/remotes/origin/tags/\*$")" && git config --unset svn-remote.svn.branches \ "^branches/\*:refs/remotes/origin/\*$" && git config --unset svn-remote.svn.tags \ @@ -75,28 +75,28 @@ test_expect_success 'multi-fetch works on partial urls + paths' " for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do git rev-parse --verify refs/remotes/origin/\$i^0 >> refs.out || exit 1; done && - test -z \"\`sort < refs.out | uniq -d\`\" && + test -z \"\$(sort < refs.out | uniq -d)\" && for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do for j in trunk a b tags/0.1 tags/0.2 tags/0.3; do if test \$j != \$i; then continue; fi - test -z \"\`git diff refs/remotes/origin/\$i \ - refs/remotes/origin/\$j\`\" ||exit 1; done; done + test -z \"\$(git diff refs/remotes/origin/\$i \ + refs/remotes/origin/\$j)\" ||exit 1; done; done " test_expect_success 'migrate --minimize on old inited layout' ' git config --unset-all svn-remote.svn.fetch && git config --unset-all svn-remote.svn.url && rm -rf "$GIT_DIR"/svn && - for i in `cat fetch.out`; do - path=`expr $i : "\([^:]*\):.*$"` - ref=`expr $i : "[^:]*:\(refs/remotes/.*\)$"` + for i in $(cat fetch.out); do + path=$(expr $i : "\([^:]*\):.*$") + ref=$(expr $i : "[^:]*:\(refs/remotes/.*\)$") if test -z "$ref"; then continue; fi if test -n "$path"; then path="/$path"; fi ( mkdir -p "$GIT_DIR"/svn/$ref/info/ && echo "$svnrepo"$path > "$GIT_DIR"/svn/$ref/info/url ) || exit 1; done && git svn migrate --minimize && - test -z "`git config -l | grep "^svn-remote\.git-svn\."`" && + test -z "$(git config -l | grep "^svn-remote\.git-svn\.")" && git config --get-all svn-remote.svn.fetch > fetch.out && grep "^trunk:refs/remotes/origin/trunk$" fetch.out && grep "^branches/a:refs/remotes/origin/a$" fetch.out && diff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh index d732d3130..a526d6037 100755 --- a/t/t9108-git-svn-glob.sh +++ b/t/t9108-git-svn-glob.sh @@ -50,10 +50,10 @@ test_expect_success 'test refspec globbing' ' git log --pretty=oneline refs/remotes/tags/end | \ sed -e "s/^.\{41\}//" > output.end && test_cmp expect.end output.end && - test "`git rev-parse refs/remotes/tags/end~1`" = \ - "`git rev-parse refs/remotes/branches/start`" && - test "`git rev-parse refs/remotes/branches/start~2`" = \ - "`git rev-parse refs/remotes/trunk`" && + test "$(git rev-parse refs/remotes/tags/end~1)" = \ + "$(git rev-parse refs/remotes/branches/start)" && + test "$(git rev-parse refs/remotes/branches/start~2)" = \ + "$(git rev-parse refs/remotes/trunk)" && test_must_fail git rev-parse refs/remotes/tags/end@3 ' @@ -75,12 +75,12 @@ test_expect_success 'test left-hand-side only globbing' ' svn_cmd commit -m "try to try" ) && git svn fetch two && - test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 && - test `git rev-list refs/remotes/two/branches/start | wc -l` -eq 3 && - test `git rev-parse refs/remotes/two/branches/start~2` = \ - `git rev-parse refs/remotes/two/trunk` && - test `git rev-parse refs/remotes/two/tags/end~3` = \ - `git rev-parse refs/remotes/two/branches/start` && + test $(git rev-list refs/remotes/two/tags/end | wc -l) -eq 6 && + test $(git rev-list refs/remotes/two/branches/start | wc -l) -eq 3 && + test $(git rev-parse refs/remotes/two/branches/start~2) = \ + $(git rev-parse refs/remotes/two/trunk) && + test $(git rev-parse refs/remotes/two/tags/end~3) = \ + $(git rev-parse refs/remotes/two/branches/start) && git log --pretty=oneline refs/remotes/two/tags/end | \ sed -e "s/^.\{41\}//" > output.two && test_cmp expect.two output.two diff --git a/t/t9109-git-svn-multi-glob.sh b/t/t9109-git-svn-multi-glob.sh index c318f9f94..f36b74924 100755 --- a/t/t9109-git-svn-multi-glob.sh +++ b/t/t9109-git-svn-multi-glob.sh @@ -50,10 +50,10 @@ test_expect_success 'test refspec globbing' ' git log --pretty=oneline refs/remotes/tags/end | \ sed -e "s/^.\{41\}//" > output.end && test_cmp expect.end output.end && - test "`git rev-parse refs/remotes/tags/end~1`" = \ - "`git rev-parse refs/remotes/branches/v1/start`" && - test "`git rev-parse refs/remotes/branches/v1/start~2`" = \ - "`git rev-parse refs/remotes/trunk`" && + test "$(git rev-parse refs/remotes/tags/end~1)" = \ + "$(git rev-parse refs/remotes/branches/v1/start)" && + test "$(git rev-parse refs/remotes/branches/v1/start~2)" = \ + "$(git rev-parse refs/remotes/trunk)" && test_must_fail git rev-parse refs/remotes/tags/end@3 ' @@ -75,12 +75,12 @@ test_expect_success 'test left-hand-side only globbing' ' svn_cmd commit -m "try to try" ) && git svn fetch two && - test `git rev-list refs/remotes/two/tags/end | wc -l` -eq 6 && - test `git rev-list refs/remotes/two/branches/v1/start | wc -l` -eq 3 && - test `git rev-parse refs/remotes/two/branches/v1/start~2` = \ - `git rev-parse refs/remotes/two/trunk` && - test `git rev-parse refs/remotes/two/tags/end~3` = \ - `git rev-parse refs/remotes/two/branches/v1/start` && + test $(git rev-list refs/remotes/two/tags/end | wc -l) -eq 6 && + test $(git rev-list refs/remotes/two/branches/v1/start | wc -l) -eq 3 && + test $(git rev-parse refs/remotes/two/branches/v1/start~2) = \ + $(git rev-parse refs/remotes/two/trunk) && + test $(git rev-parse refs/remotes/two/tags/end~3) = \ + $(git rev-parse refs/remotes/two/branches/v1/start) && git log --pretty=oneline refs/remotes/two/tags/end | \ sed -e "s/^.\{41\}//" > output.two && test_cmp expect.two output.two @@ -124,12 +124,12 @@ test_expect_success 'test another branch' ' git config --add svn-remote.four.tags \ "tags/*:refs/remotes/four/tags/*" && git svn fetch four && - test `git rev-list refs/remotes/four/tags/next | wc -l` -eq 5 && - test `git rev-list refs/remotes/four/branches/v2/start | wc -l` -eq 3 && - test `git rev-parse refs/remotes/four/branches/v2/start~2` = \ - `git rev-parse refs/remotes/four/trunk` && - test `git rev-parse refs/remotes/four/tags/next~2` = \ - `git rev-parse refs/remotes/four/branches/v2/start` && + test $(git rev-list refs/remotes/four/tags/next | wc -l) -eq 5 && + test $(git rev-list refs/remotes/four/branches/v2/start | wc -l) -eq 3 && + test $(git rev-parse refs/remotes/four/branches/v2/start~2) = \ + $(git rev-parse refs/remotes/four/trunk) && + test $(git rev-parse refs/remotes/four/tags/next~2) = \ + $(git rev-parse refs/remotes/four/branches/v2/start) && git log --pretty=oneline refs/remotes/four/tags/next | \ sed -e "s/^.\{41\}//" > output.four && test_cmp expect.four output.four diff --git a/t/t9110-git-svn-use-svm-props.sh b/t/t9110-git-svn-use-svm-props.sh index a06e4c5b8..29fbdfdd3 100755 --- a/t/t9110-git-svn-use-svm-props.sh +++ b/t/t9110-git-svn-use-svm-props.sh @@ -51,7 +51,7 @@ test_expect_success 'verify metadata for /dir' " test_expect_success 'find commit based on SVN revision number' " git svn find-rev r12 | - grep `git rev-parse HEAD` + grep $(git rev-parse HEAD) " test_expect_success 'empty rebase' " diff --git a/t/t9114-git-svn-dcommit-merge.sh b/t/t9114-git-svn-dcommit-merge.sh index fb4187667..a3d388228 100755 --- a/t/t9114-git-svn-dcommit-merge.sh +++ b/t/t9114-git-svn-dcommit-merge.sh @@ -68,8 +68,8 @@ test_expect_success 'setup git mirror and merge' ' test_debug 'gitk --all & sleep 1' test_expect_success 'verify pre-merge ancestry' " - test x\`git rev-parse --verify refs/heads/svn^2\` = \ - x\`git rev-parse --verify refs/heads/merge\` && + test x\$(git rev-parse --verify refs/heads/svn^2) = \ + x\$(git rev-parse --verify refs/heads/merge) && git cat-file commit refs/heads/svn^ | grep '^friend$' " @@ -80,10 +80,10 @@ test_expect_success 'git svn dcommit merges' " test_debug 'gitk --all & sleep 1' test_expect_success 'verify post-merge ancestry' " - test x\`git rev-parse --verify refs/heads/svn\` = \ - x\`git rev-parse --verify refs/remotes/origin/trunk \` && - test x\`git rev-parse --verify refs/heads/svn^2\` = \ - x\`git rev-parse --verify refs/heads/merge\` && + test x\$(git rev-parse --verify refs/heads/svn) = \ + x\$(git rev-parse --verify refs/remotes/origin/trunk) && + test x\$(git rev-parse --verify refs/heads/svn^2) = \ + x\$(git rev-parse --verify refs/heads/merge) && git cat-file commit refs/heads/svn^ | grep '^friend$' " diff --git a/t/t9118-git-svn-funky-branch-names.sh b/t/t9118-git-svn-funky-branch-names.sh index ed4d1369c..a2219154b 100755 --- a/t/t9118-git-svn-funky-branch-names.sh +++ b/t/t9118-git-svn-funky-branch-names.sh @@ -35,7 +35,7 @@ test_expect_success 'setup svnrepo' ' # SVN 1.7 will truncate "not-a%40{0]" to just "not-a". # Look at what SVN wound up naming the branch and use that. # Be sure to escape the @ if it shows up. -non_reflog=`svn_cmd ls "$svnrepo/pr ject/branches" | grep not-a | sed 's/\///' | sed 's/@/%40/'` +non_reflog=$(svn_cmd ls "$svnrepo/pr ject/branches" | grep not-a | sed 's/\///' | sed 's/@/%40/') test_expect_success 'test clone with funky branch names' ' git svn clone -s "$svnrepo/pr ject" project && diff --git a/t/t9119-git-svn-info.sh b/t/t9119-git-svn-info.sh index f16f3234a..88241baee 100755 --- a/t/t9119-git-svn-info.sh +++ b/t/t9119-git-svn-info.sh @@ -8,7 +8,7 @@ test_description='git svn info' # Tested with: svn, version 1.4.4 (r25188) # Tested with: svn, version 1.6.[12345689] -v=`svn_cmd --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p'` +v=$(svn_cmd --version | sed -n -e 's/^svn, version \(1\.[0-9]*\.[0-9]*\).*$/\1/p') case $v in 1.[456].*) ;; diff --git a/t/t9129-git-svn-i18n-commitencoding.sh b/t/t9129-git-svn-i18n-commitencoding.sh index 8cfdfe790..39b6bcb39 100755 --- a/t/t9129-git-svn-i18n-commitencoding.sh +++ b/t/t9129-git-svn-i18n-commitencoding.sh @@ -7,7 +7,7 @@ test_description='git svn honors i18n.commitEncoding in config' . ./lib-git-svn.sh compare_git_head_with () { - nr=`wc -l < "$1"` + nr=$(wc -l < "$1") a=7 b=$(($a + $nr - 1)) git cat-file commit HEAD | sed -ne "$a,${b}p" >current && @@ -29,7 +29,7 @@ fi compare_svn_head_with () { # extract just the log message and strip out committer info. # don't use --limit here since svn 1.1.x doesn't have it, - LC_ALL="$a_utf8_locale" svn log `git svn info --url` | perl -w -e ' + LC_ALL="$a_utf8_locale" svn log $(git svn info --url) | perl -w -e ' use bytes; $/ = ("-"x72) . "\n"; my @x = <STDIN>; diff --git a/t/t9130-git-svn-authors-file.sh b/t/t9130-git-svn-authors-file.sh index c44de267a..d306b77c3 100755 --- a/t/t9130-git-svn-authors-file.sh +++ b/t/t9130-git-svn-authors-file.sh @@ -26,7 +26,7 @@ test_expect_success 'start import with incomplete authors file' ' test_expect_success 'imported 2 revisions successfully' ' ( cd x - test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 2 && + test "$(git rev-list refs/remotes/git-svn | wc -l)" -eq 2 && git rev-list -1 --pretty=raw refs/remotes/git-svn | \ grep "^author BBBBBBB BBBBBBB <bb@example\.com> " && git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \ @@ -43,7 +43,7 @@ test_expect_success 'continues to import once authors have been added' ' ( cd x git svn fetch --authors-file=../svn-authors && - test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 4 && + test "$(git rev-list refs/remotes/git-svn | wc -l)" -eq 4 && git rev-list -1 --pretty=raw refs/remotes/git-svn | \ grep "^author DDDDDDD DDDDDDD <dd@example\.com> " && git rev-list -1 --pretty=raw refs/remotes/git-svn~1 | \ @@ -73,8 +73,8 @@ tmp_config_get () { test_expect_success 'failure happened without negative side effects' ' ( cd aa-work && - test 6 -eq "`tmp_config_get svn-remote.svn.branches-maxRev`" && - test 6 -eq "`tmp_config_get svn-remote.svn.tags-maxRev`" + test 6 -eq "$(tmp_config_get svn-remote.svn.branches-maxRev)" && + test 6 -eq "$(tmp_config_get svn-remote.svn.tags-maxRev)" ) ' @@ -86,8 +86,8 @@ test_expect_success 'fetch continues after authors-file is fixed' ' ( cd aa-work && git svn fetch --authors-file=../svn-authors && - test 8 -eq "`tmp_config_get svn-remote.svn.branches-maxRev`" && - test 8 -eq "`tmp_config_get svn-remote.svn.tags-maxRev`" + test 8 -eq "$(tmp_config_get svn-remote.svn.branches-maxRev)" && + test 8 -eq "$(tmp_config_get svn-remote.svn.tags-maxRev)" ) ' diff --git a/t/t9132-git-svn-broken-symlink.sh b/t/t9132-git-svn-broken-symlink.sh index 6c4c90b03..aeceffaf7 100755 --- a/t/t9132-git-svn-broken-symlink.sh +++ b/t/t9132-git-svn-broken-symlink.sh @@ -87,7 +87,7 @@ test_expect_success 'clone using git svn' 'git svn clone -r1 "$svnrepo" x' test_expect_success SYMLINKS '"bar" is a symlink that points to "asdf"' ' test -L x/bar && - (cd x && test xasdf = x"`git cat-file blob HEAD:bar`") + (cd x && test xasdf = x"$(git cat-file blob HEAD:bar)") ' test_expect_success 'get "bar" => symlink fix from svn' ' @@ -96,7 +96,7 @@ test_expect_success 'get "bar" => symlink fix from svn' ' test_expect_success SYMLINKS '"bar" remains a proper symlink' ' test -L x/bar && - (cd x && test xdoink = x"`git cat-file blob HEAD:bar`") + (cd x && test xdoink = x"$(git cat-file blob HEAD:bar)") ' test_done diff --git a/t/t9137-git-svn-dcommit-clobber-series.sh b/t/t9137-git-svn-dcommit-clobber-series.sh index d60da63f7..5fa07a369 100755 --- a/t/t9137-git-svn-dcommit-clobber-series.sh +++ b/t/t9137-git-svn-dcommit-clobber-series.sh @@ -16,15 +16,15 @@ test_expect_success 'initialize repo' ' ' test_expect_success '(supposedly) non-conflicting change from SVN' ' - test x"`sed -n -e 58p < file`" = x58 && - test x"`sed -n -e 61p < file`" = x61 && + test x"$(sed -n -e 58p < file)" = x58 && + test x"$(sed -n -e 61p < file)" = x61 && svn_cmd co "$svnrepo" tmp && (cd tmp && perl -i.bak -p -e "s/^58$/5588/" file && perl -i.bak -p -e "s/^61$/6611/" file && poke file && - test x"`sed -n -e 58p < file`" = x5588 && - test x"`sed -n -e 61p < file`" = x6611 && + test x"$(sed -n -e 58p < file)" = x5588 && + test x"$(sed -n -e 61p < file)" = x6611 && svn_cmd commit -m "58 => 5588, 61 => 6611" ) ' @@ -38,20 +38,20 @@ test_expect_success 'some unrelated changes to git' " " test_expect_success 'change file but in unrelated area' " - test x\"\`sed -n -e 4p < file\`\" = x4 && - test x\"\`sed -n -e 7p < file\`\" = x7 && + test x\"\$(sed -n -e 4p < file)\" = x4 && + test x\"\$(sed -n -e 7p < file)\" = x7 && perl -i.bak -p -e 's/^4\$/4444/' file && perl -i.bak -p -e 's/^7\$/7777/' file && - test x\"\`sed -n -e 4p < file\`\" = x4444 && - test x\"\`sed -n -e 7p < file\`\" = x7777 && + test x\"\$(sed -n -e 4p < file)\" = x4444 && + test x\"\$(sed -n -e 7p < file)\" = x7777 && git commit -m '4 => 4444, 7 => 7777' file && git svn dcommit && svn_cmd up tmp && cd tmp && - test x\"\`sed -n -e 4p < file\`\" = x4444 && - test x\"\`sed -n -e 7p < file\`\" = x7777 && - test x\"\`sed -n -e 58p < file\`\" = x5588 && - test x\"\`sed -n -e 61p < file\`\" = x6611 + test x\"\$(sed -n -e 4p < file)\" = x4444 && + test x\"\$(sed -n -e 7p < file)\" = x7777 && + test x\"\$(sed -n -e 58p < file)\" = x5588 && + test x\"\$(sed -n -e 61p < file)\" = x6611 " test_expect_success 'attempt to dcommit with a dirty index' ' diff --git a/t/t9138-git-svn-authors-prog.sh b/t/t9138-git-svn-authors-prog.sh index 2937f4c26..7d7e9d46b 100755 --- a/t/t9138-git-svn-authors-prog.sh +++ b/t/t9138-git-svn-authors-prog.sh @@ -37,7 +37,7 @@ test_expect_success 'import authors with prog and file' ' test_expect_success 'imported 6 revisions successfully' ' ( cd x - test "`git rev-list refs/remotes/git-svn | wc -l`" -eq 6 + test "$(git rev-list refs/remotes/git-svn | wc -l)" -eq 6 ) ' diff --git a/t/t9145-git-svn-master-branch.sh b/t/t9145-git-svn-master-branch.sh index 655913749..3bbf341f6 100755 --- a/t/t9145-git-svn-master-branch.sh +++ b/t/t9145-git-svn-master-branch.sh @@ -17,8 +17,8 @@ test_expect_success 'git svn clone --stdlayout sets up trunk as master' ' git svn clone -s "$svnrepo" g && ( cd g && - test x`git rev-parse --verify refs/remotes/origin/trunk^0` = \ - x`git rev-parse --verify refs/heads/master^0` + test x$(git rev-parse --verify refs/remotes/origin/trunk^0) = \ + x$(git rev-parse --verify refs/heads/master^0) ) ' diff --git a/t/t9150-svk-mergetickets.sh b/t/t9150-svk-mergetickets.sh index 24c2421bf..1bb676bed 100755 --- a/t/t9150-svk-mergetickets.sh +++ b/t/t9150-svk-mergetickets.sh @@ -19,7 +19,7 @@ test_expect_success 'load svk depot' " uuid=b48289b2-9c08-4d72-af37-0358a40b9c15 test_expect_success 'svk merges were represented coming in' " - [ `git cat-file commit HEAD | grep parent | wc -l` -eq 2 ] + [ $(git cat-file commit HEAD | grep parent | wc -l) -eq 2 ] " test_done diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh index 14a938402..4c5f3c9d4 100755 --- a/t/t9300-fast-import.sh +++ b/t/t9300-fast-import.sh @@ -171,10 +171,10 @@ test_expect_success 'A: verify tag/series-A-blob' ' test_expect_success 'A: verify marks output' ' cat >expect <<-EOF && - :2 `git rev-parse --verify master:file2` - :3 `git rev-parse --verify master:file3` - :4 `git rev-parse --verify master:file4` - :5 `git rev-parse --verify master^0` + :2 $(git rev-parse --verify master:file2) + :3 $(git rev-parse --verify master:file3) + :4 $(git rev-parse --verify master:file4) + :5 $(git rev-parse --verify master^0) EOF test_cmp expect marks.out ' @@ -264,8 +264,8 @@ test_expect_success 'A: verify diff' ' EOF git diff-tree -M -r master verify--import-marks >actual && compare_diff_raw expect actual && - test `git rev-parse --verify master:file2` \ - = `git rev-parse --verify verify--import-marks:copy-of-file2` + test $(git rev-parse --verify master:file2) \ + = $(git rev-parse --verify verify--import-marks:copy-of-file2) ' test_expect_success 'A: export marks with large values' ' @@ -364,7 +364,7 @@ test_expect_success 'B: accept branch name "TEMP_TAG"' ' git prune" && git fast-import <input && test -f .git/TEMP_TAG && - test `git rev-parse master` = `git rev-parse TEMP_TAG^` + test $(git rev-parse master) = $(git rev-parse TEMP_TAG^) ' test_expect_success 'B: accept empty committer' ' @@ -473,8 +473,8 @@ test_expect_success 'B: fail on invalid committer (5)' ' ### test_expect_success 'C: incremental import create pack from stdin' ' - newf=`echo hi newf | git hash-object -w --stdin` && - oldf=`git rev-parse --verify master:file2` && + newf=$(echo hi newf | git hash-object -w --stdin) && + oldf=$(git rev-parse --verify master:file2) && test_tick && cat >input <<-INPUT_END && commit refs/heads/branch @@ -499,13 +499,13 @@ test_expect_success 'C: verify pack' ' ' test_expect_success 'C: validate reuse existing blob' ' - test $newf = `git rev-parse --verify branch:file2/newf` && - test $oldf = `git rev-parse --verify branch:file2/oldf` + test $newf = $(git rev-parse --verify branch:file2/newf) && + test $oldf = $(git rev-parse --verify branch:file2/oldf) ' test_expect_success 'C: verify commit' ' cat >expect <<-EOF && - parent `git rev-parse --verify master^0` + parent $(git rev-parse --verify master^0) author $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE @@ -624,7 +624,7 @@ test_expect_success 'E: verify commit' ' ### test_expect_success 'F: non-fast-forward update skips' ' - old_branch=`git rev-parse --verify branch^0` && + old_branch=$(git rev-parse --verify branch^0) && test_tick && cat >input <<-INPUT_END && commit refs/heads/branch @@ -642,7 +642,7 @@ test_expect_success 'F: non-fast-forward update skips' ' test_must_fail git fast-import <input && # branch must remain unaffected - test $old_branch = `git rev-parse --verify branch^0` + test $old_branch = $(git rev-parse --verify branch^0) ' test_expect_success 'F: verify pack' ' @@ -651,8 +651,8 @@ test_expect_success 'F: verify pack' ' test_expect_success 'F: verify other commit' ' cat >expect <<-EOF && - tree `git rev-parse branch~1^{tree}` - parent `git rev-parse branch~1` + tree $(git rev-parse branch~1^{tree}) + parent $(git rev-parse branch~1) author $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE @@ -667,7 +667,7 @@ test_expect_success 'F: verify other commit' ' ### test_expect_success 'G: non-fast-forward update forced' ' - old_branch=`git rev-parse --verify branch^0` && + old_branch=$(git rev-parse --verify branch^0) && test_tick && cat >input <<-INPUT_END && commit refs/heads/branch @@ -687,8 +687,8 @@ test_expect_success 'G: verify pack' ' ' test_expect_success 'G: branch changed, but logged' ' - test $old_branch != `git rev-parse --verify branch^0` && - test $old_branch = `git rev-parse --verify branch@{1}` + test $old_branch != $(git rev-parse --verify branch^0) && + test $old_branch = $(git rev-parse --verify branch@{1}) ' ### @@ -763,7 +763,7 @@ test_expect_success 'I: export-pack-edges' ' test_expect_success 'I: verify edge list' ' cat >expect <<-EOF && - .git/objects/pack/pack-.pack: `git rev-parse --verify export-boundary` + .git/objects/pack/pack-.pack: $(git rev-parse --verify export-boundary) EOF sed -e s/pack-.*pack/pack-.pack/ edges.list >actual && test_cmp expect actual @@ -795,8 +795,8 @@ test_expect_success 'J: reset existing branch creates empty commit' ' git fast-import <input ' test_expect_success 'J: branch has 1 commit, empty tree' ' - test 1 = `git rev-list J | wc -l` && - test 0 = `git ls-tree J | wc -l` + test 1 = $(git rev-list J | wc -l) && + test 0 = $(git ls-tree J | wc -l) ' test_expect_success 'J: tag must fail on empty branch' ' @@ -838,8 +838,8 @@ test_expect_success 'K: reinit branch with from' ' git fast-import <input ' test_expect_success 'K: verify K^1 = branch^1' ' - test `git rev-parse --verify branch^1` \ - = `git rev-parse --verify K^1` + test $(git rev-parse --verify branch^1) \ + = $(git rev-parse --verify K^1) ' ### @@ -929,7 +929,7 @@ test_expect_success 'L: nested tree copy does not corrupt deltas' ' git ls-tree L2 g/b/ >tmp && cat tmp | cut -f 2 >actual && test_cmp expect actual && - git fsck `git rev-parse L2` + git fsck $(git rev-parse L2) ' ### @@ -1106,7 +1106,7 @@ test_expect_success 'N: copy dirty subdirectory' ' INPUT_END git fast-import <input && - test `git rev-parse N2^{tree}` = `git rev-parse N3^{tree}` + test $(git rev-parse N2^{tree}) = $(git rev-parse N3^{tree}) ' test_expect_success 'N: copy directory by id' ' @@ -1503,7 +1503,7 @@ test_expect_success 'O: comments are all skipped' ' INPUT_END git fast-import <input && - test `git rev-parse N3` = `git rev-parse O1` + test $(git rev-parse N3) = $(git rev-parse O1) ' test_expect_success 'O: blank lines not necessary after data commands' ' @@ -1524,7 +1524,7 @@ test_expect_success 'O: blank lines not necessary after data commands' ' INPUT_END git fast-import <input && - test `git rev-parse N3` = `git rev-parse O2` + test $(git rev-parse N3) = $(git rev-parse O2) ' test_expect_success 'O: repack before next test' ' @@ -1570,8 +1570,8 @@ test_expect_success 'O: blank lines not necessary after other commands' ' INPUT_END git fast-import <input && - test 8 = `find .git/objects/pack -type f | wc -l` && - test `git rev-parse refs/tags/O3-2nd` = `git rev-parse O3^` && + test 8 = $(find .git/objects/pack -type f | wc -l) && + test $(git rev-parse refs/tags/O3-2nd) = $(git rev-parse O3^) && git log --reverse --pretty=oneline O3 | sed s/^.*z// >actual && test_cmp expect actual ' @@ -1631,7 +1631,7 @@ test_expect_success 'P: superproject & submodule mix' ' data <<DATAEND [submodule "sub"] path = sub - url = "`pwd`/sub" + url = "$(pwd)/sub" DATAEND commit refs/heads/subuse1 @@ -1691,7 +1691,7 @@ test_expect_success 'P: verbatim SHA gitlinks' ' data <<DATAEND [submodule "sub"] path = sub - url = "`pwd`/sub" + url = "$(pwd)/sub" DATAEND commit refs/heads/subuse2 @@ -1978,7 +1978,7 @@ test_expect_success 'Q: verify first note for third commit' ' test_expect_success 'Q: verify second notes commit' ' cat >expect <<-EOF && - parent `git rev-parse --verify refs/notes/foobar~2` + parent $(git rev-parse --verify refs/notes/foobar~2) author $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE @@ -2045,7 +2045,7 @@ test_expect_success 'Q: verify third note for first commit' ' test_expect_success 'Q: verify fourth notes commit' ' cat >expect <<-EOF && - parent `git rev-parse --verify refs/notes/foobar^` + parent $(git rev-parse --verify refs/notes/foobar^) author $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE committer $GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE diff --git a/t/t9350-fast-export.sh b/t/t9350-fast-export.sh index 66c8b0a37..b5149fde6 100755 --- a/t/t9350-fast-export.sh +++ b/t/t9350-fast-export.sh @@ -163,7 +163,7 @@ test_expect_success 'setup submodule' ' git add file && git commit -m sub_initial ) && - git submodule add "`pwd`/sub" sub && + git submodule add "$(pwd)/sub" sub && git commit -m initial && test_tick && ( @@ -377,7 +377,7 @@ test_expect_success 'full-tree re-shows unmodified files' ' test_expect_success 'set-up a few more tags for tag export tests' ' git checkout -f master && - HEAD_TREE=`git show -s --pretty=raw HEAD | grep tree | sed "s/tree //"` && + HEAD_TREE=$(git show -s --pretty=raw HEAD | grep tree | sed "s/tree //") && git tag tree_tag -m "tagging a tree" $HEAD_TREE && git tag -a tree_tag-obj -m "tagging a tree" $HEAD_TREE && git tag tag-obj_tag -m "tagging a tag" tree_tag-obj && @@ -422,7 +422,7 @@ test_expect_success 'directory becomes symlink' ' test_expect_success 'fast-export quotes pathnames' ' git init crazy-paths && (cd crazy-paths && - blob=`echo foo | git hash-object -w --stdin` && + blob=$(echo foo | git hash-object -w --stdin) && git update-index --add \ --cacheinfo 100644 $blob "$(printf "path with\\nnewline")" \ --cacheinfo 100644 $blob "path with \"quote\"" \ diff --git a/t/t9501-gitweb-standalone-http-status.sh b/t/t9501-gitweb-standalone-http-status.sh index d3a5bac75..2a0ffed87 100755 --- a/t/t9501-gitweb-standalone-http-status.sh +++ b/t/t9501-gitweb-standalone-http-status.sh @@ -100,14 +100,14 @@ test_expect_success 'snapshots: bad tree-ish id (tagged object)' ' echo object > tag-object && git add tag-object && test_tick && git commit -m "Object to be tagged" && - git tag tagged-object `git hash-object tag-object` && + git tag tagged-object $(git hash-object tag-object) && gitweb_run "p=.git;a=snapshot;h=tagged-object;sf=tgz" && grep "400 - Object is not a tree-ish" gitweb.output ' test_debug 'cat gitweb.output' test_expect_success 'snapshots: good object id' ' - ID=`git rev-parse --verify HEAD` && + ID=$(git rev-parse --verify HEAD) && gitweb_run "p=.git;a=snapshot;h=$ID;sf=tgz" && grep "Status: 200 OK" gitweb.output ' @@ -173,7 +173,7 @@ test_expect_success DATE_PARSER 'modification: snapshot if-modified-since (unmod test_debug 'cat gitweb.headers' test_expect_success DATE_PARSER 'modification: tree snapshot' ' - ID=`git rev-parse --verify HEAD^{tree}` && + ID=$(git rev-parse --verify HEAD^{tree}) && HTTP_IF_MODIFIED_SINCE="Wed, 6 Apr 2005 22:14:13 +0000" && export HTTP_IF_MODIFIED_SINCE && test_when_finished "unset HTTP_IF_MODIFIED_SINCE" && diff --git a/t/t9818-git-p4-block.sh b/t/t9818-git-p4-block.sh index 3b3ae1f59..8840a183a 100755 --- a/t/t9818-git-p4-block.sh +++ b/t/t9818-git-p4-block.sh @@ -84,7 +84,7 @@ p4_add_file() { (cd "$cli" && >$1 && p4 add $1 && - p4 submit -d "Added a file" $1 + p4 submit -d "Added file $1" $1 ) } @@ -112,6 +112,32 @@ test_expect_success 'Syncing files' ' ) ' +# Handling of multiple depot paths: +# git p4 clone //depot/pathA //depot/pathB +# +test_expect_success 'Create a repo with multiple depot paths' ' + client_view "//depot/pathA/... //client/pathA/..." \ + "//depot/pathB/... //client/pathB/..." && + mkdir -p "$cli/pathA" "$cli/pathB" && + for p in pathA pathB + do + for i in $(test_seq 1 10) + do + p4_add_file "$p/file$p$i" + done + done +' + +test_expect_success 'Clone repo with multiple depot paths' ' + ( + cd "$git" && + git p4 clone --changes-block-size=4 //depot/pathA@all //depot/pathB@all \ + --destination=dest && + ls -1 dest >log && + test_line_count = 20 log + ) +' + test_expect_success 'kill p4d' ' kill_p4d ' diff --git a/t/t9827-git-p4-change-filetype.sh b/t/t9827-git-p4-change-filetype.sh new file mode 100755 index 000000000..7433998f4 --- /dev/null +++ b/t/t9827-git-p4-change-filetype.sh @@ -0,0 +1,66 @@ +#!/bin/sh + +test_description='git p4 support for file type change' + +. ./lib-git-p4.sh + +test_expect_success 'start p4d' ' + start_p4d +' + +test_expect_success 'create files' ' + ( + cd "$cli" && + p4 client -o | sed "/LineEnd/s/:.*/:unix/" | p4 client -i && + cat >file1 <<-EOF && + text without any funny substitution business + EOF + cat >file2 <<-EOF && + second file whose type will change + EOF + p4 add file1 file2 && + p4 submit -d "add files" + ) +' + +test_expect_success SYMLINKS 'change file to symbolic link' ' + git p4 clone --dest="$git" //depot@all && + test_when_finished cleanup_git && + ( + cd "$git" && + git config git-p4.skipSubmitEdit true && + + rm file2 && + ln -s file1 file2 && + git add file2 && + git commit -m "symlink file1 to file2" && + git p4 submit && + p4 filelog -m 1 //depot/file2 >filelog && + grep "(symlink)" filelog + ) +' + +test_expect_success SYMLINKS 'change symbolic link to file' ' + git p4 clone --dest="$git" //depot@all && + test_when_finished cleanup_git && + ( + cd "$git" && + git config git-p4.skipSubmitEdit true && + + rm file2 && + cat >file2 <<-EOF && + This is another content for the second file. + EOF + git add file2 && + git commit -m "re-write file2" && + git p4 submit && + p4 filelog -m 1 //depot/file2 >filelog && + grep "(text)" filelog + ) +' + +test_expect_success 'kill p4d' ' + kill_p4d +' + +test_done diff --git a/t/t9901-git-web--browse.sh b/t/t9901-git-web--browse.sh index b0a6bad8d..de7152f82 100755 --- a/t/t9901-git-web--browse.sh +++ b/t/t9901-git-web--browse.sh @@ -43,7 +43,7 @@ test_expect_success \ echo fake: "$@" EOF chmod +x "fake browser" && - git config browser.w3m.path "`pwd`/fake browser" && + git config browser.w3m.path "$(pwd)/fake browser" && test_web_browse w3m http://example.com/foo ' diff --git a/test-run-command.c b/test-run-command.c index 89c7de2c6..fbe0a27ef 100644 --- a/test-run-command.c +++ b/test-run-command.c @@ -10,16 +10,54 @@ #include "git-compat-util.h" #include "run-command.h" +#include "argv-array.h" +#include "strbuf.h" #include <string.h> #include <errno.h> +static int number_callbacks; +static int parallel_next(struct child_process *cp, + struct strbuf *err, + void *cb, + void **task_cb) +{ + struct child_process *d = cb; + if (number_callbacks >= 4) + return 0; + + argv_array_pushv(&cp->args, d->argv); + strbuf_addf(err, "preloaded output of a child\n"); + number_callbacks++; + return 1; +} + +static int no_job(struct child_process *cp, + struct strbuf *err, + void *cb, + void **task_cb) +{ + strbuf_addf(err, "no further jobs available\n"); + return 0; +} + +static int task_finished(int result, + struct child_process *cp, + struct strbuf *err, + void *pp_cb, + void *pp_task_cb) +{ + strbuf_addf(err, "asking for a quick stop\n"); + return 1; +} + int main(int argc, char **argv) { struct child_process proc = CHILD_PROCESS_INIT; + int jobs; if (argc < 3) return 1; - proc.argv = (const char **)argv+2; + proc.argv = (const char **)argv + 2; if (!strcmp(argv[1], "start-command-ENOENT")) { if (start_command(&proc) < 0 && errno == ENOENT) @@ -30,6 +68,21 @@ int main(int argc, char **argv) if (!strcmp(argv[1], "run-command")) exit(run_command(&proc)); + jobs = atoi(argv[2]); + proc.argv = (const char **)argv + 3; + + if (!strcmp(argv[1], "run-command-parallel")) + exit(run_processes_parallel(jobs, parallel_next, + NULL, NULL, &proc)); + + if (!strcmp(argv[1], "run-command-abort")) + exit(run_processes_parallel(jobs, parallel_next, + NULL, task_finished, &proc)); + + if (!strcmp(argv[1], "run-command-no-jobs")) + exit(run_processes_parallel(jobs, no_job, + NULL, task_finished, &proc)); + fprintf(stderr, "check usage\n"); return 1; } diff --git a/test-sha1.sh b/test-sha1.sh index 0f0bc5d02..cef4bcc86 100755 --- a/test-sha1.sh +++ b/test-sha1.sh @@ -6,13 +6,13 @@ dd if=/dev/zero bs=1048576 count=100 2>/dev/null | while read expect cnt pfx do case "$expect" in '#'*) continue ;; esac - actual=` + actual=$( { test -z "$pfx" || echo "$pfx" dd if=/dev/zero bs=1048576 count=$cnt 2>/dev/null | perl -pe 'y/\000/g/' } | ./test-sha1 $cnt - ` + ) if test "$expect" = "$actual" then echo "OK: $expect $cnt $pfx" @@ -51,14 +51,14 @@ exit while read cnt pfx do - actual=` + actual=$( { test -z "$pfx" || echo "$pfx" dd if=/dev/zero bs=1048576 count=$cnt 2>/dev/null | perl -pe 'y/\000/g/' } | sha1sum | sed -e 's/ .*//' - ` + ) echo "$actual $cnt $pfx" done <<EOF 0 diff --git a/unimplemented.sh b/unimplemented.sh index 5252de4b2..fee21d24e 100644 --- a/unimplemented.sh +++ b/unimplemented.sh @@ -1,4 +1,4 @@ #!/bin/sh -echo >&2 "fatal: git was built without support for `basename $0` (@@REASON@@)." +echo >&2 "fatal: git was built without support for $(basename $0) (@@REASON@@)." exit 128 @@ -236,8 +236,24 @@ ssize_t xread(int fd, void *buf, size_t len) len = MAX_IO_SIZE; while (1) { nr = read(fd, buf, len); - if ((nr < 0) && (errno == EAGAIN || errno == EINTR)) - continue; + if (nr < 0) { + if (errno == EINTR) + continue; + if (errno == EAGAIN || errno == EWOULDBLOCK) { + struct pollfd pfd; + pfd.events = POLLIN; + pfd.fd = fd; + /* + * it is OK if this poll() failed; we + * want to leave this infinite loop + * only when read() returns with + * success, or an expected failure, + * which would be checked by the next + * call to read(2). + */ + poll(&pfd, 1, -1); + } + } return nr; } } @@ -375,6 +391,19 @@ FILE *xfdopen(int fd, const char *mode) return stream; } +FILE *fopen_for_writing(const char *path) +{ + FILE *ret = fopen(path, "w"); + + if (!ret && errno == EPERM) { + if (!unlink(path)) + ret = fopen(path, "w"); + else + errno = EPERM; + } + return ret; +} + int xmkstemp(char *template) { int fd; |