diff options
33 files changed, 1157 insertions, 442 deletions
diff --git a/.gitignore b/.gitignore index 3d1b880101..b3dcafcb33 100644 --- a/.gitignore +++ b/.gitignore @@ -181,6 +181,7 @@ /git-verify-commit /git-verify-pack /git-verify-tag +/git-version /git-web--browse /git-whatchanged /git-worktree diff --git a/Documentation/Makefile b/Documentation/Makefile index 12c533c1a3..d47acb2e25 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -103,6 +103,7 @@ SP_ARTICLES += howto/coordinate-embargoed-releases API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technical/api-index.txt, $(wildcard technical/api-*.txt))) SP_ARTICLES += $(API_DOCS) +TECH_DOCS += ReviewingGuidelines TECH_DOCS += MyFirstContribution TECH_DOCS += MyFirstObjectWalk TECH_DOCS += SubmittingPatches diff --git a/Documentation/MyFirstContribution.txt b/Documentation/MyFirstContribution.txt index 1da15d9ad4..1a4be8ee0a 100644 --- a/Documentation/MyFirstContribution.txt +++ b/Documentation/MyFirstContribution.txt @@ -1160,7 +1160,7 @@ all named like `v2-000n-my-commit-subject.patch`. `-v2` will also format your patches by prefixing them with "[PATCH v2]" instead of "[PATCH]", and your range-diff will be prefaced with "Range-diff against v1". -Afer you run this command, `format-patch` will output the patches to the `psuh/` +After you run this command, `format-patch` will output the patches to the `psuh/` directory, alongside the v1 patches. Using a single directory makes it easy to refer to the old v1 patches while proofreading the v2 patches, but you will need to be careful to send out only the v2 patches. We will use a pattern like diff --git a/Documentation/MyFirstObjectWalk.txt b/Documentation/MyFirstObjectWalk.txt index 8d9e85566e..eee513e86f 100644 --- a/Documentation/MyFirstObjectWalk.txt +++ b/Documentation/MyFirstObjectWalk.txt @@ -534,7 +534,7 @@ the arguments to `traverse_commit_list()`. - `void *show_data`: A context buffer which is passed in turn to `show_commit` and `show_object`. -In addition, `traverse_commit_list_filtered()` has an additional paramter: +In addition, `traverse_commit_list_filtered()` has an additional parameter: - `struct oidset *omitted`: A linked-list of object IDs which the provided filter caused to be omitted. diff --git a/Documentation/RelNotes/2.38.0.txt b/Documentation/RelNotes/2.38.0.txt index 5d9bd8c295..870581fc57 100644 --- a/Documentation/RelNotes/2.38.0.txt +++ b/Documentation/RelNotes/2.38.0.txt @@ -390,6 +390,14 @@ Fixes since v2.37 been corrected. (merge 49ca2fba39 jk/proto-v2-ref-prefix-fix later to maint). + * A result from opendir() was leaking in the commit-graph expiration + codepath, which has been plugged. + (merge 12f1ae5324 ml/commit-graph-expire-dir-leak-fix later to maint). + + * Just like we have coding guidelines, we now have guidelines for + reviewers. + (merge e01b851923 vd/doc-reviewing-guidelines later to maint). + * Other code cleanup, docfix, build fix, etc. (merge 77b9e85c0f vd/fix-perf-tests later to maint). (merge 0682bc43f5 jk/test-crontab-fixes later to maint). diff --git a/Documentation/ReviewingGuidelines.txt b/Documentation/ReviewingGuidelines.txt new file mode 100644 index 0000000000..0e323d5477 --- /dev/null +++ b/Documentation/ReviewingGuidelines.txt @@ -0,0 +1,162 @@ +Reviewing Patches in the Git Project +==================================== + +Introduction +------------ +The Git development community is a widely distributed, diverse, ever-changing +group of individuals. Asynchronous communication via the Git mailing list poses +unique challenges when reviewing or discussing patches. This document contains +some guiding principles and helpful tools you can use to make your reviews both +more efficient for yourself and more effective for other contributors. + +Note that none of the recommendations here are binding or in any way a +requirement of participation in the Git community. They are provided as a +resource to supplement your skills as a contributor. + +Principles +---------- + +Selecting patch(es) to review +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +If you are looking for a patch series in need of review, start by checking +latest "What's cooking in git.git" email +(https://lore.kernel.org/git/xmqqilm1yp3m.fsf@gitster.g/[example]). The "What's +cooking" emails & replies can be found using the query `s:"What's cooking"` on +the https://lore.kernel.org/git/[`lore.kernel.org` mailing list archive]; +alternatively, you can find the contents of the "What's cooking" email tracked +in `whats-cooking.txt` on the `todo` branch of Git. Topics tagged with "Needs +review" and those in the "[New Topics]" section are typically those that would +benefit the most from additional review. + +Patches can also be searched manually in the mailing list archive using a query +like `s:"PATCH" -s:"Re:"`. You can browse these results for topics relevant to +your expertise or interest. + +If you've already contributed to Git, you may also be CC'd in another +contributor's patch series. These are topics where the author feels that your +attention is warranted. This may be because their patch changes something you +wrote previously (making you a good judge of whether the new approach does or +doesn't work), or because you have the expertise to provide an exceptionally +helpful review. There is no requirement to review these patches but, in the +spirit of open source collaboration, you should strongly consider doing so. + +Reviewing patches +~~~~~~~~~~~~~~~~~ +While every contributor takes their own approach to reviewing patches, here are +some general pieces of advice to make your reviews as clear and helpful as +possible. The advice is broken into two rough categories: high-level reviewing +guidance, and concrete tips for interacting with patches on the mailing list. + +==== High-level guidance +- Remember to review the content of commit messages for correctness and clarity, + in addition to the code change in the patch's diff. The commit message of a + patch should accurately and fully explain the code change being made in the + diff. + +- Reviewing test coverage is an important - but easy to overlook - component of + reviews. A patch's changes may be covered by existing tests, or new tests may + be introduced to exercise new behavior. Checking out a patch or series locally + allows you to manually mutate lines of new & existing tests to verify expected + pass/fail behavior. You can use this information to verify proper coverage or + to suggest additional tests the author could add. + +- When providing a recommendation, be as clear as possible about whether you + consider it "blocking" (the code would be broken or otherwise made worse if an + issue isn't fixed) or "non-blocking" (the patch could be made better by taking + the recommendation, but acceptance of the series does not require it). + Non-blocking recommendations can be particularly ambiguous when they are + related to - but outside the scope of - a series ("nice-to-have"s), or when + they represent only stylistic differences between the author and reviewer. + +- When commenting on an issue, try to include suggestions for how the author + could fix it. This not only helps the author to understand and fix the issue, + it also deepens and improves your understanding of the topic. + +- Reviews do not need to exclusively point out problems. Feel free to "think out + loud" in your review: describe how you read & understood a complex section of + a patch, ask a question about something that confused you, point out something + you found exceptionally well-written, etc. In particular, uplifting feedback + goes a long way towards encouraging contributors to participate more actively + in the Git community. + +==== Performing your review +- Provide your review comments per-patch in a plaintext "Reply-All" email to the + relevant patch. Comments should be made inline, immediately below the relevant + section(s). + +- You may find that the limited context provided in the patch diff is sometimes + insufficient for a thorough review. In such cases, you can review patches in + your local tree by either applying patches with linkgit:git-am[1] or checking + out the associated branch from https://github.com/gitster/git once the series + is tracked there. + +- Large, complicated patch diffs are sometimes unavoidable, such as when they + refactor existing code. If you find such a patch difficult to parse, try + reviewing the diff produced with the `--color-moved` and/or + `--ignore-space-change` options. + +- If a patch is long, you are encouraged to delete parts of it that are + unrelated to your review from the email reply. Make sure to leave enough + context for readers to understand your comments! + +- If you cannot complete a full review of a series all at once, consider letting + the author know (on- or off-list) if/when you plan to review the rest of the + series. + +Completing a review +~~~~~~~~~~~~~~~~~~~ +Once each patch of a series is reviewed, the author (and/or other contributors) +may discuss the review(s). This may result in no changes being applied, or the +author will send a new version of their patch(es). + +After a series is rerolled in response to your or others' review, make sure to +re-review the updates. If you are happy with the state of the patch series, +explicitly indicate your approval (typically with a reply to the latest +version's cover letter). Optionally, you can let the author know that they can +add a "Reviewed-by: <you>" trailer if they resubmit the reviewed patch verbatim +in a later iteration of the series. + +Finally, subsequent "What's cooking" emails may explicitly ask whether a +reviewed topic is ready for merging to the `next` branch (typically phrased +"Will merge to \'next\'?"). You can help the maintainer and author by responding +with a short description of the state of your (and others', if applicable) +review, including the links to the relevant thread(s). + +Terminology +----------- +nit: :: + Denotes a small issue that should be fixed, such as a typographical error + or mis-alignment of conditions in an `if()` statement. + +aside: :: +optional: :: +non-blocking: :: + Indicates to the reader that the following comment should not block the + acceptance of the patch or series. These are typically recommendations + related to code organization & style, or musings about topics related to + the patch in question, but beyond its scope. + +s/<before>/<after>/:: + Shorthand for "you wrote <before>, but I think you meant <after>," usually + for misspellings or other typographical errors. The syntax is a reference + to "substitute" command commonly found in Unix tools such as `ed`, `sed`, + `vim`, and `perl`. + +cover letter:: + The "Patch 0" of a multi-patch series. This email describes the + high-level intent and structure of the patch series to readers on the + Git mailing list. It is also where the changelog notes and range-diff of + subsequent versions are provided by the author. ++ +On single-patch submissions, cover letter content is typically not sent as a +separate email. Instead, it is inserted between the end of the patch's commit +message (after the `---`) and the beginning of the diff. + +#leftoverbits:: + Used by either an author or a reviewer to describe features or suggested + changes that are out-of-scope of a given patch or series, but are relevant + to the topic for the sake of discussion. + +See Also +-------- +link:MyFirstContribution.html[MyFirstContribution] diff --git a/Documentation/git.txt b/Documentation/git.txt index 0ef7f5e4ec..0c15ef3a8e 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -344,7 +344,7 @@ Repository, command and file interfaces This documentation discusses repository and command interfaces which users are expected to interact with directly. See `--user-formats` in -linkgit:git-help[1] for more details on the critera. +linkgit:git-help[1] for more details on the criteria. include::cmds-userinterfaces.txt[] diff --git a/Documentation/gitprotocol-capabilities.txt b/Documentation/gitprotocol-capabilities.txt index c6dcc7d565..0fb5ea0c1c 100644 --- a/Documentation/gitprotocol-capabilities.txt +++ b/Documentation/gitprotocol-capabilities.txt @@ -388,8 +388,8 @@ the server as well. Session IDs should be unique to a given process. They must fit within a packet-line, and must not contain non-printable or whitespace characters. The current implementation uses trace2 session IDs (see -link:api-trace2.html[api-trace2] for details), but this may change and users of -the session ID should not rely on this fact. +link:technical/api-trace2.html[api-trace2] for details), but this may change +and users of the session ID should not rely on this fact. GIT --- diff --git a/Documentation/gitprotocol-v2.txt b/Documentation/gitprotocol-v2.txt index c9c0f9160b..59bf41cefb 100644 --- a/Documentation/gitprotocol-v2.txt +++ b/Documentation/gitprotocol-v2.txt @@ -544,8 +544,8 @@ the server as well. Session IDs should be unique to a given process. They must fit within a packet-line, and must not contain non-printable or whitespace characters. The current implementation uses trace2 session IDs (see -link:api-trace2.html[api-trace2] for details), but this may change and users of -the session ID should not rely on this fact. +link:technical/api-trace2.html[api-trace2] for details), but this may change +and users of the session ID should not rely on this fact. object-info ~~~~~~~~~~~ diff --git a/Documentation/technical/api-error-handling.txt b/Documentation/technical/api-error-handling.txt index 70bf1d3e52..665c4960b4 100644 --- a/Documentation/technical/api-error-handling.txt +++ b/Documentation/technical/api-error-handling.txt @@ -46,7 +46,7 @@ parse-options.c. returns -1 after reporting the situation to the caller. These reports will be logged via the trace2 facility. See the "error" -event in link:api-trace2.txt[trace2 API]. +event in link:api-trace2.html[trace2 API]. Customizable error handlers --------------------------- diff --git a/Documentation/technical/api-parse-options.txt b/Documentation/technical/api-parse-options.txt index c2a5e42914..61fa6ee167 100644 --- a/Documentation/technical/api-parse-options.txt +++ b/Documentation/technical/api-parse-options.txt @@ -60,7 +60,7 @@ Subcommands are special in a couple of ways: * All arguments following the subcommand are considered to be arguments of the subcommand, and, conversely, arguments meant for the subcommand may - not preceed the subcommand. + not precede the subcommand. Therefore, if the options array contains at least one subcommand and `parse_options()` encounters the first dashless argument, it will either: diff --git a/Documentation/technical/bundle-uri.txt b/Documentation/technical/bundle-uri.txt index c25c42378a..18f2dedd40 100644 --- a/Documentation/technical/bundle-uri.txt +++ b/Documentation/technical/bundle-uri.txt @@ -3,8 +3,7 @@ Bundle URIs Git bundles are files that store a pack-file along with some extra metadata, including a set of refs and a (possibly empty) set of necessary commits. See -linkgit:git-bundle[1] and link:bundle-format.txt[the bundle format] for more -information. +linkgit:git-bundle[1] and linkgit:gitformat-bundle[5] for more information. Bundle URIs are locations where Git can download one or more bundles in order to bootstrap the object database in advance of fetching the remaining @@ -290,7 +289,7 @@ expect that the process will end when all prerequisite commit OIDs in a thin bundle are already in the object database. When using the `creationToken` heuristic, the client can avoid downloading -any bundles if their creation tokenss are not larger than the stored +any bundles if their creation tokens are not larger than the stored creation token. After fetching new bundles, Git updates this local creation token. @@ -319,7 +318,7 @@ Here are a few example error conditions: Git's other HTTP protocols in terms of handling specific 400-level errors. -* The server reports any other failure reponse. +* The server reports any other failure response. * The client receives data that is not parsable as a bundle or bundle list. @@ -447,7 +446,7 @@ created every hour, and then once a day those "hourly" bundles could be merged into a "daily" bundle. The daily bundles are merged into the oldest bundle after 30 days. -It is recommened that this bundle strategy is repeated with the `blob:none` +It is recommended that this bundle strategy is repeated with the `blob:none` filter if clients of this repository are expecting to use blobless partial clones. This list of blobless bundles stays in the same list as the full bundles, but uses the `bundle.<id>.filter` key to separate the two groups. diff --git a/Documentation/technical/commit-graph.txt b/Documentation/technical/commit-graph.txt index f05e7bda1a..90c9760c23 100644 --- a/Documentation/technical/commit-graph.txt +++ b/Documentation/technical/commit-graph.txt @@ -40,7 +40,7 @@ Values 1-4 satisfy the requirements of parse_commit_gently(). There are two definitions of generation number: 1. Corrected committer dates (generation number v2) -2. Topological levels (generation nummber v1) +2. Topological levels (generation number v1) Define "corrected committer date" of a commit recursively as follows: @@ -48,7 +48,7 @@ Define "corrected committer date" of a commit recursively as follows: equal to its committer date. * A commit with at least one parent has corrected committer date equal to - the maximum of its commiter date and one more than the largest corrected + the maximum of its committer date and one more than the largest corrected committer date among its parents. * As a special case, a root commit with timestamp zero has corrected commit diff --git a/Documentation/technical/remembering-renames.txt b/Documentation/technical/remembering-renames.txt index af091a7556..1e34d91390 100644 --- a/Documentation/technical/remembering-renames.txt +++ b/Documentation/technical/remembering-renames.txt @@ -407,7 +407,7 @@ considered to be "irrelevant". See for example the following commits: no longer relevant", 2021-03-13) Relevance is always determined by what the _other_ side of history has -done, in terms of modifing a file that our side renamed, or adding a +done, in terms of modifying a file that our side renamed, or adding a file to a directory which our side renamed. This means that a path that is "irrelevant" when picking the first commit of a series in a rebase or cherry-pick, may suddenly become "relevant" when picking the diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt index ca9decdd95..dc9c6a663a 100644 --- a/Documentation/user-manual.txt +++ b/Documentation/user-manual.txt @@ -3133,7 +3133,7 @@ those "loose" objects. You can save space and make Git faster by moving these loose objects in to a "pack file", which stores a group of objects in an efficient compressed format; the details of how pack files are formatted can be -found in link:gitformat-pack[5]. +found in linkgit:gitformat-pack[5]. To put the loose objects into a pack, just run git repack: diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index ecd94fd3f2..a6d1044e8d 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v2.38.0-rc0 +DEF_VER=v2.38.0-rc1 LF=' ' @@ -818,6 +818,7 @@ BUILT_INS += git-show$X BUILT_INS += git-stage$X BUILT_INS += git-status$X BUILT_INS += git-switch$X +BUILT_INS += git-version$X BUILT_INS += git-whatchanged$X # what 'all' will build but not install in gitexecdir diff --git a/builtin/diagnose.c b/builtin/diagnose.c index cd260c2015..576e0e8e38 100644 --- a/builtin/diagnose.c +++ b/builtin/diagnose.c @@ -22,7 +22,7 @@ int cmd_diagnose(int argc, const char **argv, const char *prefix) N_("specify a destination for the diagnostics archive")), OPT_STRING('s', "suffix", &option_suffix, N_("format"), N_("specify a strftime format suffix for the filename")), - OPT_CALLBACK_F(0, "mode", &mode, N_("(stats|all)"), + OPT_CALLBACK_F(0, "mode", &mode, "(stats|all)", N_("specify the content of the diagnostic archive"), PARSE_OPT_NONEG, option_parse_diagnose), OPT_END() diff --git a/builtin/gc.c b/builtin/gc.c index 0accc02406..2753bd15a5 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -1461,7 +1461,7 @@ static char *get_maintpath(void) } static char const * const builtin_maintenance_register_usage[] = { - N_("git maintenance register"), + "git maintenance register", NULL }; @@ -1519,7 +1519,7 @@ done: } static char const * const builtin_maintenance_unregister_usage[] = { - N_("git maintenance unregister"), + "git maintenance unregister", NULL }; @@ -2542,7 +2542,7 @@ static int maintenance_start(int argc, const char **argv, const char *prefix) } static const char *const builtin_maintenance_stop_usage[] = { - N_("git maintenance stop"), + "git maintenance stop", NULL }; diff --git a/command-list.txt b/command-list.txt index 93f94e42ab..54b2a50f5f 100644 --- a/command-list.txt +++ b/command-list.txt @@ -91,6 +91,7 @@ git-cvsimport foreignscminterface git-cvsserver foreignscminterface git-daemon synchingrepositories git-describe mainporcelain +git-diagnose ancillaryinterrogators git-diff mainporcelain info git-diff-files plumbinginterrogators git-diff-index plumbinginterrogators @@ -198,6 +199,7 @@ git-var plumbinginterrogators git-verify-commit ancillaryinterrogators git-verify-pack plumbinginterrogators git-verify-tag ancillaryinterrogators +git-version ancillaryinterrogators git-whatchanged ancillaryinterrogators complete git-worktree mainporcelain git-write-tree plumbingmanipulators diff --git a/commit-graph.c b/commit-graph.c index 06f7d9e0b6..a7d8755932 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -2265,6 +2265,8 @@ static void expire_commit_graphs(struct write_commit_graph_context *ctx) } out: + if(dir) + closedir(dir); strbuf_release(&path); } diff --git a/contrib/subtree/t/Makefile b/contrib/subtree/t/Makefile index 3d278bb0ed..4655e0987b 100644 --- a/contrib/subtree/t/Makefile +++ b/contrib/subtree/t/Makefile @@ -51,6 +51,7 @@ clean-except-prove-cache: $(RM) -r valgrind/bin clean: clean-except-prove-cache + $(RM) -r '$(TEST_RESULTS_DIRECTORY_SQ)' $(RM) .prove test-lint: test-lint-duplicates test-lint-executable test-lint-shell-syntax diff --git a/diagnose.c b/diagnose.c index beb0a8741b..8f26569896 100644 --- a/diagnose.c +++ b/diagnose.c @@ -66,17 +66,53 @@ static int dir_file_stats(struct object_directory *object_dir, void *data) return 0; } -static int count_files(char *path) +/* + * Get the d_type of a dirent. If the d_type is unknown, derive it from + * stat.st_mode. + * + * Note that 'path' is assumed to have a trailing slash. It is also modified + * in-place during the execution of the function, but is then reverted to its + * original value before returning. + */ +static unsigned char get_dtype(struct dirent *e, struct strbuf *path) { - DIR *dir = opendir(path); + struct stat st; + unsigned char dtype = DTYPE(e); + size_t base_path_len; + + if (dtype != DT_UNKNOWN) + return dtype; + + /* d_type unknown in dirent, try to fall back on lstat results */ + base_path_len = path->len; + strbuf_addstr(path, e->d_name); + if (lstat(path->buf, &st)) + goto cleanup; + + /* determine d_type from st_mode */ + if (S_ISREG(st.st_mode)) + dtype = DT_REG; + else if (S_ISDIR(st.st_mode)) + dtype = DT_DIR; + else if (S_ISLNK(st.st_mode)) + dtype = DT_LNK; + +cleanup: + strbuf_setlen(path, base_path_len); + return dtype; +} + +static int count_files(struct strbuf *path) +{ + DIR *dir = opendir(path->buf); struct dirent *e; int count = 0; if (!dir) return 0; - while ((e = readdir(dir)) != NULL) - if (!is_dot_or_dotdot(e->d_name) && e->d_type == DT_REG) + while ((e = readdir_skip_dot_and_dotdot(dir)) != NULL) + if (get_dtype(e, path) == DT_REG) count++; closedir(dir); @@ -104,13 +140,13 @@ static void loose_objs_stats(struct strbuf *buf, const char *path) strbuf_addch(&count_path, '/'); base_path_len = count_path.len; - while ((e = readdir(dir)) != NULL) - if (!is_dot_or_dotdot(e->d_name) && - e->d_type == DT_DIR && strlen(e->d_name) == 2 && + while ((e = readdir_skip_dot_and_dotdot(dir)) != NULL) + if (get_dtype(e, &count_path) == DT_DIR && + strlen(e->d_name) == 2 && !hex_to_bytes(&c, e->d_name, 1)) { strbuf_setlen(&count_path, base_path_len); - strbuf_addstr(&count_path, e->d_name); - total += (count = count_files(count_path.buf)); + strbuf_addf(&count_path, "%s/", e->d_name); + total += (count = count_files(&count_path)); strbuf_addf(buf, "%s : %7d files\n", e->d_name, count); } @@ -144,22 +180,28 @@ static int add_directory_to_archiver(struct strvec *archiver_args, len = buf.len; strvec_pushf(archiver_args, "--prefix=%s", buf.buf); - while (!res && (e = readdir(dir))) { - if (!strcmp(".", e->d_name) || !strcmp("..", e->d_name)) - continue; + while (!res && (e = readdir_skip_dot_and_dotdot(dir))) { + struct strbuf abspath = STRBUF_INIT; + unsigned char dtype; + + strbuf_add_absolute_path(&abspath, at_root ? "." : path); + strbuf_addch(&abspath, '/'); + dtype = get_dtype(e, &abspath); strbuf_setlen(&buf, len); strbuf_addstr(&buf, e->d_name); - if (e->d_type == DT_REG) + if (dtype == DT_REG) strvec_pushf(archiver_args, "--add-file=%s", buf.buf); - else if (e->d_type != DT_DIR) + else if (dtype != DT_DIR) warning(_("skipping '%s', which is neither file nor " "directory"), buf.buf); else if (recurse && add_directory_to_archiver(archiver_args, buf.buf, recurse) < 0) res = -1; + + strbuf_release(&abspath); } closedir(dir); @@ -39,7 +39,7 @@ static struct category_description main_categories[] = { { CAT_synchingrepositories, N_("Low-level Commands / Syncing Repositories") }, { CAT_purehelpers, N_("Low-level Commands / Internal Helpers") }, { CAT_userinterfaces, N_("User-facing repository, command and file interfaces") }, - { CAT_developerinterfaces, N_("Developer-facing file file formats, protocols and interfaces") }, + { CAT_developerinterfaces, N_("Developer-facing file formats, protocols and other interfaces") }, { 0, NULL } }; diff --git a/list-objects-filter-options.c b/list-objects-filter-options.c index d46ce4acc4..5339660238 100644 --- a/list-objects-filter-options.c +++ b/list-objects-filter-options.c @@ -143,6 +143,7 @@ static int parse_combine_subfilter( ALLOC_GROW_BY(filter_options->sub, filter_options->sub_nr, 1, filter_options->sub_alloc); + list_objects_filter_init(&filter_options->sub[new_index]); decoded = url_percent_decode(subspec->buf); @@ -263,6 +264,8 @@ void parse_list_objects_filter( parse_error = gently_parse_list_objects_filter( filter_options, arg, &errbuf); } else { + struct list_objects_filter_options *sub; + /* * Make filter_options an LOFC_COMBINE spec so we can trivially * add subspecs to it. @@ -273,10 +276,11 @@ void parse_list_objects_filter( filter_spec_append_urlencode(filter_options, arg); ALLOC_GROW_BY(filter_options->sub, filter_options->sub_nr, 1, filter_options->sub_alloc); + sub = &filter_options->sub[filter_options->sub_nr - 1]; - parse_error = gently_parse_list_objects_filter( - &filter_options->sub[filter_options->sub_nr - 1], arg, - &errbuf); + list_objects_filter_init(sub); + parse_error = gently_parse_list_objects_filter(sub, arg, + &errbuf); } if (parse_error) die("%s", errbuf.buf); @@ -8,16 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: Git\n" "Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n" -"POT-Creation-Date: 2022-06-21 19:57+0000\n" -"PO-Revision-Date: 2022-06-20 21:17+0200\n" -"Last-Translator: Matthias Rüster <matthias.ruester@gmail.com>\n" -"Language-Team: Matthias Rüster <matthias.ruester@gmail.com>\n" +"POT-Creation-Date: 2022-09-22 16:49+0200\n" +"PO-Revision-Date: 2022-09-22 17:00+0200\n" +"Last-Translator: Ralf Thielow <ralf.thielow@gmail.com>\n" +"Language-Team: German\n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -"X-Generator: Poedit 3.1\n" +"X-Generator: Poedit 3.1.1\n" #, c-format msgid "Huh (%s)?" @@ -379,8 +379,8 @@ msgstr "Ergänzung im Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d%s,?]? " #, c-format, perl-format msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? " msgstr "" -"Diesen Patch-Block vom Index und Arbeitsverzeichnis verwerfen [y,n,q,a," -"d%s,?]? " +"Diesen Patch-Block vom Index und Arbeitsverzeichnis verwerfen [y,n,q,a,d" +"%s,?]? " msgid "" "y - discard this hunk from index and worktree\n" @@ -411,8 +411,8 @@ msgstr "Ergänzung auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " #, c-format, perl-format msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? " msgstr "" -"Diesen Patch-Block auf Index und Arbeitsverzeichnis anwenden [y,n,q,a," -"d%s,?]? " +"Diesen Patch-Block auf Index und Arbeitsverzeichnis anwenden [y,n,q,a,d" +"%s,?]? " msgid "" "y - apply this hunk to index and worktree\n" @@ -428,6 +428,23 @@ msgstr "" "a - diesen und alle weiteren Patch-Blöcke in der Datei anwenden\n" "d - diesen oder alle weiteren Patch-Blöcke in der Datei nicht anwenden\n" +#, c-format, perl-format +msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " +msgstr "Modusänderung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " + +#, c-format, perl-format +msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " +msgstr "Löschung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " + +#, c-format, perl-format +msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " +msgstr "Ergänzung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " + +#, c-format, perl-format +msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " +msgstr "" +"Diesen Patch-Block auf das Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " + msgid "" "y - apply this hunk to worktree\n" "n - do not apply this hunk to worktree\n" @@ -445,10 +462,6 @@ msgstr "" msgid "could not parse hunk header '%.*s'" msgstr "Konnte Block-Header '%.*s' nicht parsen." -#, c-format -msgid "could not parse colored hunk header '%.*s'" -msgstr "Konnte farbigen Block-Header '%.*s' nicht parsen." - msgid "could not parse diff" msgstr "konnte Diff nicht parsen" @@ -506,7 +519,6 @@ msgstr "" "Um '%c' Zeilen zu entfernen, löschen Sie diese.\n" "Zeilen, die mit %c beginnen, werden entfernt.\n" -#. #-#-#-#-# git-add--interactive.perl.po #-#-#-#-# #. TRANSLATORS: 'it' refers to the patch mentioned in the previous messages. msgid "" "If it does not apply cleanly, you will be given an opportunity to\n" @@ -524,14 +536,12 @@ msgstr "konnte Block-Header nicht parsen" msgid "'git apply --cached' failed" msgstr "'git apply --cached' schlug fehl" -#. #-#-#-#-# add-patch.c.po #-#-#-#-# #. TRANSLATORS: do not translate [y/n] #. The program will only accept that input at this point. #. Consider translating (saying "no" discards!) as #. (saying "n" for "no" discards!) if the translation #. of the word "no" does not start with n. #. -#. #-#-#-#-# git-add--interactive.perl.po #-#-#-#-# #. TRANSLATORS: do not translate [y/n] #. The program will only accept that input #. at this point. @@ -750,6 +760,26 @@ msgstr "" "'advice.detachedHead' auf 'false' setzen.\n" "\n" +#, c-format +msgid "" +"The following paths have been moved outside the\n" +"sparse-checkout definition but are not sparse due to local\n" +"modifications.\n" +msgstr "" +"Die folgenden Pfade wurden aus der partiellen Checkout-Definition\n" +"verschoben, sind aber aufgrund lokaler Änderungen nicht partiell.\n" + +msgid "" +"To correct the sparsity of these paths, do the following:\n" +"* Use \"git add --sparse <paths>\" to update the index\n" +"* Use \"git sparse-checkout reapply\" to apply the sparsity rules" +msgstr "" +"Um den partiellen Checkout dieser Pfade zu korrigieren, gehen Sie wie folgt " +"vor:\n" +"* Verwenden Sie \"git add --sparse <Pfade>\", um den Index zu aktualisieren\n" +"* Verwenden Sie \"git sparse-checkout reapply\", um die Regeln für partielle " +"Checkouts anzuwenden" + msgid "cmdline ends with \\" msgstr "Befehlszeile endet mit \\" @@ -1272,6 +1302,10 @@ msgid "unsupported file mode: 0%o (SHA1: %s)" msgstr "Nicht unterstützter Dateimodus: 0%o (SHA1: %s)" #, c-format +msgid "deflate error (%d)" +msgstr "Fehler beim Komprimieren (%d)" + +#, c-format msgid "unable to start '%s' filter" msgstr "konnte '%s' Filter nicht starten" @@ -1291,10 +1325,6 @@ msgid "path too long (%d chars, SHA1: %s): %s" msgstr "Pfad zu lang (%d Zeichen, SHA1: %s): %s" #, c-format -msgid "deflate error (%d)" -msgstr "Fehler beim Komprimieren (%d)" - -#, c-format msgid "timestamp too large for this system: %<PRIuMAX>" msgstr "Timestamp zu groß für dieses System: %<PRIuMAX>" @@ -1618,12 +1648,10 @@ msgstr "" msgid "not tracking: ambiguous information for ref '%s'" msgstr "kein Tracking: mehrdeutige Informationen für Referenz '%s'" -#. #-#-#-#-# branch.c.po #-#-#-#-# #. TRANSLATORS: This is a line listing a remote with duplicate #. refspecs in the advice message below. For RTL languages you'll #. probably want to swap the "%s" and leading " " space around. #. -#. #-#-#-#-# object-name.c.po #-#-#-#-# #. TRANSLATORS: This is line item of ambiguous object output #. from describe_ambiguous_object() above. For RTL languages #. you'll probably want to swap the "%s" and leading " " space @@ -1990,8 +2018,8 @@ msgstr "" #, 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." +"Falls Sie diesen Patch auslassen möchten, führen Sie stattdessen \"%s --skip" +"\" aus." #, c-format msgid "To record the empty patch as an empty commit, run \"%s --allow-empty\"." @@ -3108,8 +3136,12 @@ msgstr "libc Info: " msgid "not run from a git repository - no hooks to show\n" msgstr "nicht in einem Git-Repository ausgeführt - keine Hooks zum Anzeigen\n" -msgid "git bugreport [-o|--output-directory <file>] [-s|--suffix <format>]" -msgstr "git bugreport [-o|--output-directory <Datei>] [-s|--suffix <Format>]" +msgid "" +"git bugreport [-o|--output-directory <file>] [-s|--suffix <format>] [--" +"diagnose[=<mode>]" +msgstr "" +"git bugreport [-o|--output-directory <Datei>] [-s|--suffix <Format>] [--" +"diagnose[=<Modus>]" msgid "" "Thank you for filling out a Git bug report!\n" @@ -3147,16 +3179,29 @@ msgstr "" "Bitte überprüfen Sie den restlichen Teil des Fehlerberichts unten.\n" "Sie können jede Zeile löschen, die Sie nicht mitteilen möchten.\n" -msgid "specify a destination for the bugreport file" -msgstr "Speicherort für die Datei des Fehlerberichts angeben" +msgid "mode" +msgstr "Modus" -msgid "specify a strftime format suffix for the filename" -msgstr "Dateiendung im strftime-Format für den Dateinamen angeben" +msgid "" +"create an additional zip archive of detailed diagnostics (default 'stats')" +msgstr "" +"ein zusätzliches Zip-Archiv mit detaillierten Diagnosen erstellen (Standard " +"'stats')" + +msgid "specify a destination for the bugreport file(s)" +msgstr "einen Zielort für die Fehlerberichtsdatei(en) angeben" + +msgid "specify a strftime format suffix for the filename(s)" +msgstr "ein Suffix im strftime-Format für den/die Dateinamen angeben" #, c-format msgid "could not create leading directories for '%s'" msgstr "konnte vorangehende Verzeichnisse für '%s' nicht erstellen" +#, c-format +msgid "unable to create diagnostics archive %s" +msgstr "Diagnosearchiv %s kann nicht erstellt werden" + msgid "System Info" msgstr "System Info" @@ -3215,10 +3260,6 @@ msgid "Unbundling objects" msgstr "Entpacken von Objekten" #, c-format -msgid "Unknown subcommand: %s" -msgstr "Unbekannter Unterbefehl: %s" - -#, c-format msgid "cannot read object %s '%s'" msgstr "kann Objekt %s '%s' nicht lesen" @@ -3296,6 +3337,9 @@ msgstr "Objektgröße anzeigen" msgid "allow -s and -t to work with broken/corrupt objects" msgstr "-s und -t mit beschädigten Objekten erlauben" +msgid "use mail map file" +msgstr "\"mailmap\"-Datei verwenden" + msgid "Batch objects requested on stdin (or --batch-all-objects)" msgstr "" "Batch-Objekte von Standard-Eingabe (oder --batch-all-objects) angefordert" @@ -3306,6 +3350,9 @@ msgstr "vollständige Inhalte von <Objekt> oder <Commit> anzeigen" msgid "like --batch, but don't emit <contents>" msgstr "wie --batch, aber keine Ausgabe von <Inhalten>" +msgid "stdin is NUL-terminated" +msgstr "stdin endet mit NUL" + msgid "read commands from stdin" msgstr "Befehle von der Standard-Eingabe lesen" @@ -4198,6 +4245,14 @@ msgstr "" "Initialisiere Datei für partiellen Checkout, um nur Dateien im\n" "Root-Verzeichnis einzubeziehen" +msgid "uri" +msgstr "uri" + +msgid "a URI for downloading bundles before fetching from origin remote" +msgstr "" +"eine URI für das Herunterladen von Bundles vor dem Abruf\n" +"aus dem ursprünglichen Remote-Repository" + #, c-format msgid "info: Could not add alternate for '%s': %s\n" msgstr "info: Konnte Alternative für '%s' nicht hinzufügen: %s\n" @@ -4257,10 +4312,10 @@ msgstr "kann %s nicht aktualisieren" msgid "failed to initialize sparse-checkout" msgstr "Fehler beim Initialisieren vom partiellen Checkout." -msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n" +msgid "remote HEAD refers to nonexistent ref, unable to checkout" msgstr "" -"Externer HEAD bezieht sich auf eine nicht existierende Referenz und kann " -"nicht ausgecheckt werden.\n" +"HEAD des Remote-Repositories verweist auf nicht existierende Referenz, kann " +"nicht ausgecheckt werden" msgid "unable to checkout working tree" msgstr "Arbeitsverzeichnis konnte nicht ausgecheckt werden" @@ -4284,6 +4339,13 @@ msgstr "Sie müssen ein Repository zum Klonen angeben." msgid "options '%s' and '%s %s' cannot be used together" msgstr "die Optionen '%s' und '%s %s' können nicht gemeinsam verwendet werden" +msgid "" +"--bundle-uri is incompatible with --depth, --shallow-since, and --shallow-" +"exclude" +msgstr "" +"--bundle-uri ist inkompatibel mit --depth, --shallow-since und --shallow-" +"exclude" + #, c-format msgid "repository '%s' does not exist" msgstr "Repository '%s' existiert nicht" @@ -4368,6 +4430,13 @@ msgstr "--local wird ignoriert" msgid "cannot clone from filtered bundle" msgstr "kann nicht von gefiltertem Bundle klonen" +msgid "failed to initialize the repo, skipping bundle URI" +msgstr "konnte das Repository nicht initialisieren, überspringe Bundle-URI" + +#, c-format +msgid "failed to fetch objects from bundle URI '%s'" +msgstr "Objekte aus Bundle-URI '%s' konnten nicht abgerufen werden" + msgid "remote transport reported error" msgstr "Remoteübertragung meldete Fehler" @@ -4489,10 +4558,6 @@ msgstr "" msgid "Collecting commits from input" msgstr "Sammle Commits von der Standard-Eingabe" -#, c-format -msgid "unrecognized subcommand: %s" -msgstr "Nicht erkannter Unterbefehl: %s" - msgid "" "git commit-tree [(-p <parent>)...] [-S[<keyid>]] [(-m <message>)...] [(-F " "<file>)...] <tree>" @@ -4856,9 +4921,6 @@ msgstr "Status im Langformat anzeigen (Standard)" msgid "terminate entries with NUL" msgstr "Einträge mit NUL-Zeichen abschließen" -msgid "mode" -msgstr "Modus" - msgid "show untracked files, optional modes: all, normal, no. (Default: all)" msgstr "" "unversionierte Dateien anzeigen, optionale Modi: all, normal, no. (Standard: " @@ -5449,8 +5511,8 @@ msgstr "Markierung" msgid "append <mark> on dirty working tree (default: \"-dirty\")" msgstr "" -"<Markierung> bei geändertem Arbeitsverzeichnis anhängen (Standard: \"-" -"dirty\")" +"<Markierung> bei geändertem Arbeitsverzeichnis anhängen (Standard: \"-dirty" +"\")" msgid "append <mark> on broken working tree (default: \"-broken\")" msgstr "" @@ -5463,6 +5525,22 @@ msgstr "Keine Namen gefunden, kann nichts beschreiben." msgid "option '%s' and commit-ishes cannot be used together" msgstr "Option '%s' und Commit-Angaben können nicht gemeinsam verwendet werden" +msgid "" +"git diagnose [-o|--output-directory <path>] [-s|--suffix <format>] [--" +"mode=<mode>]" +msgstr "" +"git diagnose [-o|--output-directory <Pfad>] [-s|--suffix <Format>] [--" +"mode=<Modus>]" + +msgid "specify a destination for the diagnostics archive" +msgstr "einen Zielort für das Diagnosearchiv angeben" + +msgid "specify a strftime format suffix for the filename" +msgstr "Dateiendung im strftime-Format für den Dateinamen angeben" + +msgid "specify the content of the diagnostic archive" +msgstr "den Inhalt des Diagnosearchivs angeben" + msgid "--merge-base only works with two commits" msgstr "--merge-base funktioniert nur mit zwei Commits" @@ -5597,13 +5675,13 @@ msgstr "Ausgaben unterdrücken; nur git_env_*() Werte als Exit-Code verwenden" #, c-format msgid "option `--default' expects a boolean value with `--type=bool`, not `%s`" msgstr "" -"Option `--default' erwartet einen booleschen Wert bei `--type=bool`, nicht " -"`%s`" +"Option `--default' erwartet einen booleschen Wert bei `--type=bool`, nicht `" +"%s`" #, c-format msgid "" -"option `--default' expects an unsigned long value with `--type=ulong`, not " -"`%s`" +"option `--default' expects an unsigned long value with `--type=ulong`, not `" +"%s`" msgstr "" "Option `--default' erwartet einen vorzeichenlosen Long-Wert bei `--" "type=ulong`, nicht `%s`" @@ -5851,11 +5929,8 @@ msgstr "[aktuell]" msgid "[rejected]" msgstr "[zurückgewiesen]" -msgid "can't fetch in current branch" -msgstr "kann \"fetch\" im aktuellen Branch nicht ausführen" - -msgid "checked out in another worktree" -msgstr "in einem anderen Arbeitsverzeichnis ausgecheckt" +msgid "can't fetch into checked-out branch" +msgstr "fetch kann in den ausgecheckten Branch nicht durchgeführt werden" msgid "[tag update]" msgstr "[Tag Aktualisierung]" @@ -6299,6 +6374,10 @@ msgstr "%s: Ungültiger SHA1-Zeiger in Cache-Verzeichnis" msgid "non-tree in cache-tree" msgstr "non-tree in Cache-Verzeichnis" +#, c-format +msgid "%s: invalid sha1 pointer in resolve-undo" +msgstr "%s: Ungültiger sha1-Zeiger in resolve-undo" + msgid "git fsck [<options>] [<object>...]" msgstr "git fsck [<Optionen>] [<Objekt>...]" @@ -6639,14 +6718,17 @@ msgstr "" "Fehler beim Ausführen von 'crontab -l'; Ihr System unterstützt eventuell " "'cron' nicht" +msgid "failed to create crontab temporary file" +msgstr "temporäre crontab Datei konnte nicht erstellt werden" + +msgid "failed to open temporary file" +msgstr "temporäre Datei kann nicht geöffnet werden" + msgid "failed to run 'crontab'; your system might not support 'cron'" msgstr "" "Fehler beim Ausführen von 'crontab'; Ihr System unterstützt eventuell 'cron' " "nicht" -msgid "failed to open stdin of 'crontab'" -msgstr "Fehler beim Öffnen der Standard-Eingabe von 'crontab'" - msgid "'crontab' died" msgstr "'crontab' abgebrochen" @@ -6693,10 +6775,6 @@ msgstr "Repository konnte nicht zur globalen Konfiguration hinzugefügt werden" msgid "git maintenance <subcommand> [<options>]" msgstr "git maintenance <Unterbefehl> [<Optionen>]" -#, c-format -msgid "invalid subcommand: %s" -msgstr "ungültiger Unterbefehl: %s" - msgid "git grep [<options>] [-e] <pattern> [<rev>...] [[--] <path>...]" msgstr "git grep [<Optionen>] [-e] <Muster> [<Commit>...] [[--] <Pfad>...]" @@ -6708,7 +6786,6 @@ msgstr "grep: Fehler beim Erzeugen eines Thread: %s" msgid "invalid number of threads specified (%d) for %s" msgstr "ungültige Anzahl von Threads (%d) für %s angegeben" -#. #-#-#-#-# grep.c.po #-#-#-#-# #. TRANSLATORS: %s is the configuration #. variable for tweaking threads, currently #. grep.threads @@ -6871,6 +6948,9 @@ msgstr "Dateien mit Übereinstimmungen im Anzeigeprogramm anzeigen" msgid "allow calling of grep(1) (ignored by this build)" msgstr "den Aufruf von grep(1) erlauben (von dieser Programmversion ignoriert)" +msgid "maximum number of results per file" +msgstr "maximale Anzahl von Ergebnissen pro Datei" + msgid "no pattern given" msgstr "Kein Muster angegeben." @@ -6962,11 +7042,21 @@ msgstr "Beschreibung des Befehls ausgeben" msgid "print list of useful guides" msgstr "Liste von allgemein verwendeten Anleitungen anzeigen" +msgid "print list of user-facing repository, command and file interfaces" +msgstr "" +"Liste der benutzerseitigen Repository-, Befehls- und Dateischnittstellen " +"ausgeben" + +msgid "print list of file formats, protocols and other developer interfaces" +msgstr "" +"Liste von Dateiformaten, Protokollen und anderen Entwicklerschnittstellen " +"ausgeben" + msgid "print all configuration variable names" msgstr "alle Namen der Konfigurationsvariablen ausgeben" -msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>]" -msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<Befehl>]" +msgid "git help [[-i|--info] [-m|--man] [-w|--web]] [<command>|<doc>]" +msgstr "git help [[-i|--info] [-m|--man] [-w|--web]] [<Befehl>|<Dokument>]" #, c-format msgid "unrecognized help format '%s'" @@ -7438,8 +7528,8 @@ msgstr "Ausgabe der Unterschiede unterdrücken" msgid "show source" msgstr "Quelle anzeigen" -msgid "use mail map file" -msgstr "\"mailmap\"-Datei verwenden" +msgid "clear all previously-defined decoration filters" +msgstr "alle zuvor definierten Dekorationsfilter löschen" msgid "only decorate refs that match <pattern>" msgstr "\"decorate\" nur bei Referenzen anwenden, die <Muster> entsprechen" @@ -7698,6 +7788,11 @@ msgstr "" msgid "percentage by which creation is weighted" msgstr "Prozentsatz mit welchem Erzeugung gewichtet wird" +msgid "show in-body From: even if identical to the e-mail header" +msgstr "" +"From: aus E-Mail Text anzeigen, auch wenn es mit der Kopfzeile der E-Mail " +"identisch ist" + #, c-format msgid "invalid ident line: %s" msgstr "Ungültige Identifikationszeile: %s" @@ -7758,6 +7853,18 @@ msgstr "" "Konnte gefolgten Remote-Branch nicht finden, bitte geben Sie <Upstream> " "manuell an.\n" +#, c-format +msgid "bad ls-files format: element '%s' does not start with '('" +msgstr "ungültiges ls-files-Format: Element '%s' fängt nicht mit '(' an" + +#, c-format +msgid "bad ls-files format: element '%s' does not end in ')'" +msgstr "ungültiges ls-files-Format: Element '%s' endet nicht auf ')'" + +#, c-format +msgid "bad ls-files format: %%%.*s" +msgstr "ungültiges ls-files-Format: %%%.*s" + msgid "git ls-files [<options>] [<file>...]" msgstr "git ls-files [<Optionen>] [<Datei>...]" @@ -7848,6 +7955,13 @@ msgid "show sparse directories in the presence of a sparse index" msgstr "zeige partielle Verzeichnisse, wenn ein partieller Index vorhanden ist" msgid "" +"--format cannot be used with -s, -o, -k, -t, --resolve-undo, --deduplicate, " +"--eol" +msgstr "" +"--format kann nicht mit -s, -o, -k, -t, --resolve-undo, --deduplicate, --eol " +"verwendet werden" + +msgid "" "git ls-remote [--heads] [--tags] [--refs] [--upload-pack=<exec>]\n" " [-q | --quiet] [--exit-code] [--get-url]\n" " [--symref] [<repository> [<refs>...]]" @@ -8070,6 +8184,40 @@ msgstr "Konnte Referenz '%s' nicht auflösen" msgid "Merging %s with %s\n" msgstr "Führe %s mit %s zusammen\n" +msgid "not something we can merge" +msgstr "nichts was wir zusammenführen können" + +msgid "refusing to merge unrelated histories" +msgstr "verweigere den Merge von nicht zusammenhängenden Historien" + +msgid "failure to merge" +msgstr "Fehler beim Merge" + +msgid "git merge-tree [--write-tree] [<options>] <branch1> <branch2>" +msgstr "git merge-tree [--write-tree] [<Optionen>] <Branch1> <Branch2>" + +msgid "git merge-tree [--trivial-merge] <base-tree> <branch1> <branch2>" +msgstr "" +"git merge-tree [--trivial-merge] <Basis-Tree-Objekt> <Branch1> <Branch2>" + +msgid "do a real merge instead of a trivial merge" +msgstr "einen echten Merge anstelle eines trivialen Merge durchführen" + +msgid "do a trivial merge only" +msgstr "nur einen trivialen Merge durchführen" + +msgid "also show informational/conflict messages" +msgstr "auch Informations-/Konfliktmeldungen anzeigen" + +msgid "list filenames without modes/oids/stages" +msgstr "Dateinamen ohne Modi/Oids/Stufen auflisten" + +msgid "allow merging unrelated histories" +msgstr "erlaube das Zusammenführen von nicht zusammenhängenden Historien" + +msgid "--trivial-merge is incompatible with all other options" +msgstr "--trivial-merge ist mit allen anderen Optionen inkompatibel" + msgid "git merge [<options>] [<commit>...]" msgstr "git merge [<Optionen>] [<Commit>...]" @@ -8152,9 +8300,6 @@ msgstr "--abort, aber Index und Arbeitsverzeichnis unverändert lassen" msgid "continue the current in-progress merge" msgstr "den sich im Gange befindlichen Merge fortsetzen" -msgid "allow merging unrelated histories" -msgstr "erlaube das Zusammenführen von nicht zusammenhängenden Historien" - msgid "bypass pre-merge-commit and commit-msg hooks" msgstr "Hooks pre-merge-commit und commit-msg umgehen" @@ -8277,9 +8422,6 @@ msgstr "Konnte '%s' nicht schließen." msgid "not something we can merge in %s: %s" msgstr "nichts was wir in %s zusammenführen können: %s" -msgid "not something we can merge" -msgstr "nichts was wir zusammenführen können" - msgid "--abort expects no arguments" msgstr "--abort akzeptiert keine Argumente" @@ -8331,14 +8473,20 @@ msgstr "%s - nichts was wir zusammenführen können" msgid "Can merge only exactly one commit into empty head" msgstr "Kann nur exakt einen Commit in einem leeren Branch zusammenführen" -msgid "refusing to merge unrelated histories" -msgstr "verweigere den Merge von nicht zusammenhängenden Historien" - #, c-format msgid "Updating %s..%s\n" msgstr "Aktualisiere %s..%s\n" #, c-format +msgid "" +"Your local changes to the following files would be overwritten by merge:\n" +" %s" +msgstr "" +"Ihre lokalen Änderungen in den folgenden Dateien würden durch den Merge\n" +"überschrieben werden:\n" +" %s" + +#, c-format msgid "Trying really trivial in-index merge...\n" msgstr "Probiere wirklich trivialen \"in-index\"-Merge...\n" @@ -8372,6 +8520,12 @@ msgstr "" "Automatischer Merge abgeschlossen; halte, wie gewünscht, vor dem Commit an\n" #, c-format +msgid "When finished, apply stashed changes with `git stash pop`\n" +msgstr "" +"Wenn Sie fertig sind, wenden Sie die Änderungen aus dem Stash mit `git stash " +"pop` an\n" + +#, c-format msgid "warning: tag input does not pass fsck: %s" msgstr "Warnung: Tag-Eingabe ungültig für fsck: %s" @@ -8493,6 +8647,9 @@ msgstr "Prüfe Umbenennung von '%s' nach '%s'\n" msgid "bad source" msgstr "ungültige Quelle" +msgid "destination exists" +msgstr "Ziel existiert bereits" + msgid "can not move directory into itself" msgstr "kann Verzeichnis nicht in sich selbst verschieben" @@ -8508,9 +8665,6 @@ msgstr "nicht unter Versionskontrolle" msgid "conflicted" msgstr "in Konflikt" -msgid "destination exists" -msgstr "Ziel existiert bereits" - #, c-format msgid "overwriting '%s'" msgstr "überschreibe '%s'" @@ -8524,6 +8678,9 @@ msgstr "mehrere Quellen für dasselbe Ziel" msgid "destination directory does not exist" msgstr "Zielverzeichnis existiert nicht" +msgid "destination exists in the index" +msgstr "Ziel existiert im Index" + #, c-format msgid "%s, source=%s, destination=%s" msgstr "%s, Quelle=%s, Ziel=%s" @@ -8889,8 +9046,8 @@ msgid "use notes from <notes-ref>" msgstr "Notizen von <Notiz-Referenz> verwenden" #, c-format -msgid "unknown subcommand: %s" -msgstr "Unbekannter Unterbefehl: %s" +msgid "unknown subcommand: `%s'" +msgstr "unbekannter Unterbefehl: `%s'" msgid "" "git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]" @@ -9826,11 +9983,16 @@ msgid "only emit output related to the second range" msgstr "nur Ausgaben anzeigen, die sich auf den zweiten Bereich beziehen" #, c-format +msgid "not a revision: '%s'" +msgstr "kein Commit: '%s'" + +#, c-format msgid "not a commit range: '%s'" msgstr "kein Commit-Bereich: '%s'" -msgid "single arg format must be symmetric range" -msgstr "Format mit einfachem Argument muss symmetrischer Bereich sein." +#, c-format +msgid "not a symmetric range: '%s'" +msgstr "kein symmetrischer Bereich: '%s'" msgid "need two commit ranges" msgstr "Benötige zwei Commit-Bereiche." @@ -9988,8 +10150,8 @@ msgstr "Konnte nicht zu %s wechseln." #, c-format msgid "" -"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and " -"\"ask\"." +"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"ask" +"\"." msgstr "" "nicht erkannter leerer Typ '%s'; gültige Werte sind \"drop\", \"keep\", und " "\"ask\"." @@ -10112,6 +10274,10 @@ msgstr "behalte Commits, die leer beginnen" msgid "move commits that begin with squash!/fixup! under -i" msgstr "bei -i Commits verschieben, die mit squash!/fixup! beginnen" +msgid "update branches that point to commits that are being rebased" +msgstr "" +"Branches aktualisieren, die auf Commits verweisen, die gerade rebased werden" + msgid "add exec lines after each commit of the editable list" msgstr "exec-Zeilen nach jedem Commit der editierbaren Liste hinzufügen" @@ -10654,6 +10820,9 @@ msgstr " neu (wird bei nächstem \"fetch\" in remotes/%s gespeichert)" msgid " tracked" msgstr " gefolgt" +msgid " skipped" +msgstr " übersprungen" + msgid " stale (use 'git remote prune' to remove)" msgstr " veraltet (benutzen Sie 'git remote prune' zum Löschen)" @@ -11335,6 +11504,10 @@ msgstr "Konnte neue Index-Datei nicht schreiben." msgid "unable to get disk usage of %s" msgstr "konnte Festplattennutzung von %s nicht bekommen" +#, c-format +msgid "invalid value for '%s': '%s', the only allowed format is '%s'" +msgstr "ungültiger Wert für '%s': '%s', das einzig zulässige Format ist '%s'" + msgid "rev-list does not support display of notes" msgstr "rev-list unterstützt keine Anzeige von Notizen" @@ -11361,6 +11534,9 @@ msgstr "frühzeitiges Ende der Eingabe" msgid "no usage string given before the `--' separator" msgstr "kein Verwendungstext vor dem `--' Separator angegeben" +msgid "missing opt-spec before option flags" +msgstr "fehlende opt-spec vor Optionsflags" + msgid "Needed a single revision" msgstr "Benötigte einen einzelnen Commit" @@ -12148,6 +12324,10 @@ msgid "Expecting a full ref name, got %s" msgstr "Vollständiger Referenzname erwartet, %s erhalten" #, c-format +msgid "could not get a repository handle for submodule '%s'" +msgstr "Konnte kein Repository-Handle für Submodul '%s' erhalten." + +#, c-format msgid "" "could not look up configuration '%s'. Assuming this repository is its own " "authoritative upstream." @@ -12155,12 +12335,6 @@ msgstr "" "Konnte Konfiguration '%s' nicht nachschlagen. Nehme an, dass dieses\n" "Repository sein eigenes verbindliches Upstream-Repository ist." -msgid "alternative anchor for relative paths" -msgstr "Alternativer Anker für relative Pfade" - -msgid "git submodule--helper list [--prefix=<path>] [<path>...]" -msgstr "git submodule--helper list [--prefix=<Pfad>] [<Pfad>...]" - #, c-format msgid "No url found for submodule path '%s' in .gitmodules" msgstr "Keine URL für Submodul-Pfad '%s' in .gitmodules gefunden" @@ -12194,8 +12368,8 @@ msgstr "Ausgaben beim Betreten eines Submodul-Befehls unterdrücken" msgid "recurse into nested submodules" msgstr "Rekursion in verschachtelte Submodule durchführen" -msgid "git submodule--helper foreach [--quiet] [--recursive] [--] <command>" -msgstr "git submodule--helper foreach [--quiet] [--recursive] [--] <Befehl>" +msgid "git submodule foreach [--quiet] [--recursive] [--] <command>" +msgstr "git submodule foreach [--quiet] [--recursive] [--] <Befehl>" #, c-format msgid "Failed to register url for submodule path '%s'" @@ -12219,8 +12393,8 @@ msgstr "" msgid "suppress output for initializing a submodule" msgstr "Ausgaben bei Initialisierung eines Submoduls unterdrücken" -msgid "git submodule--helper init [<options>] [<path>]" -msgstr "git submodule--helper init [<Optionen>] [<Pfad>]" +msgid "git submodule init [<options>] [<path>]" +msgstr "git submodule init [<Optionen>] [<Pfad>]" #, c-format msgid "no submodule mapping found in .gitmodules for path '%s'" @@ -12246,9 +12420,6 @@ msgstr "" msgid "git submodule status [--quiet] [--cached] [--recursive] [<path>...]" msgstr "git submodule status [--quiet] [--cached] [--recursive] [<Pfad>...]" -msgid "git submodule--helper name <path>" -msgstr "git submodule--helper name <Pfad>" - #, c-format msgid "* %s %s(blob)->%s(submodule)" msgstr "* %s %s(blob)->%s(submodule)" @@ -12283,8 +12454,8 @@ msgstr "" msgid "limit the summary size" msgstr "Größe der Zusammenfassung begrenzen" -msgid "git submodule--helper summary [<options>] [<commit>] [--] [<path>]" -msgstr "git submodule--helper summary [<Optionen>] [<Commit>] [--] [<Pfad>]" +msgid "git submodule summary [<options>] [<commit>] [--] [<path>]" +msgstr "git submodule summary [<Optionen>] [<Commit>] [--] [<Pfad>]" msgid "could not fetch a revision for HEAD" msgstr "konnte keinen Commit für HEAD holen" @@ -12298,18 +12469,14 @@ msgid "failed to register url for submodule path '%s'" msgstr "Fehler beim Registrieren der URL für Submodul-Pfad '%s'" #, c-format -msgid "failed to get the default remote for submodule '%s'" -msgstr "Fehler beim Lesen des Standard-Remote-Repositories für Submodul '%s'" - -#, c-format msgid "failed to update remote for submodule '%s'" msgstr "Fehler beim Aktualisieren des Remote-Repositories für Submodul '%s'" msgid "suppress output of synchronizing submodule url" msgstr "Ausgaben bei der Synchronisierung der Submodul-URLs unterdrücken" -msgid "git submodule--helper sync [--quiet] [--recursive] [<path>]" -msgstr "git submodule--helper sync [--quiet] [--recursive] [<Pfad>]" +msgid "git submodule sync [--quiet] [--recursive] [<path>]" +msgstr "git submodule sync [--quiet] [--recursive] [<Pfad>]" #, c-format msgid "" @@ -12374,6 +12541,10 @@ msgstr "" "'--reference-if-able' statt '--reference'." #, c-format +msgid "could not get a repository handle for gitdir '%s'" +msgstr "konnte kein Repository-Handle für gitdir '%s' erhalten" + +#, c-format msgid "submodule '%s' cannot add alternate: %s" msgstr "Submodul '%s' kann Alternative nicht hinzufügen: %s" @@ -12403,6 +12574,9 @@ msgstr "Verzeichnis ist nicht leer: '%s'" msgid "could not get submodule directory for '%s'" msgstr "Konnte Submodul-Verzeichnis '%s' nicht finden." +msgid "alternative anchor for relative paths" +msgstr "Alternativer Anker für relative Pfade" + msgid "where the new submodule will be cloned to" msgstr "Pfad für neues Submodul" @@ -12431,10 +12605,6 @@ msgstr "" "<filter-spec>] --url <URL> --path <Pfad>" #, c-format -msgid "Invalid update mode '%s' for submodule path '%s'" -msgstr "Ungültiger Aktualisierungsmodus '%s' für Submodul-Pfad '%s'." - -#, c-format msgid "Invalid update mode '%s' configured for submodule path '%s'" msgstr "" "Ungültiger Aktualisierungsmodus '%s' für Submodul-Pfad '%s' konfiguriert." @@ -12509,6 +12679,10 @@ msgstr "" "Anfordern dieses Commits ist fehlgeschlagen." #, c-format +msgid "could not initialize submodule at path '%s'" +msgstr "konnte das Submodul unter dem Pfad '%s' nicht initialisieren" + +#, c-format msgid "" "Submodule (%s) branch configured to inherit branch from superproject, but " "the superproject is not on any branch" @@ -12517,10 +12691,6 @@ msgstr "" "zu erben, aber das Hauptprojekt befindet sich auf keinem Branch." #, c-format -msgid "could not get a repository handle for submodule '%s'" -msgstr "Konnte kein Repository-Handle für Submodul '%s' erhalten." - -#, c-format msgid "Unable to find current revision in submodule path '%s'" msgstr "Konnte aktuellen Commit nicht in Submodul-Pfad '%s' finden" @@ -12554,12 +12724,14 @@ msgstr "keine neuen Objekte von Remote abrufen" msgid "path into the working tree" msgstr "Pfad zum Arbeitsverzeichnis" -msgid "path into the working tree, across nested submodule boundaries" -msgstr "" -"Pfad zum Arbeitsverzeichnis, über verschachtelte Submodul-Grenzen hinweg" +msgid "use the 'checkout' update strategy (default)" +msgstr "die Aktualisierungsstrategie \"checkout\" verwenden (Standard)" + +msgid "use the 'merge' update strategy" +msgstr "die Aktualisierungsstrategie 'merge' verwenden" -msgid "rebase, merge, checkout or none" -msgstr "rebase, merge, checkout oder none" +msgid "use the 'rebase' update strategy" +msgstr "die Aktualisierungsstrategie 'rebase' verwenden" msgid "create a shallow clone truncated to the specified number of revisions" msgstr "" @@ -12577,6 +12749,10 @@ msgstr "" msgid "don't print cloning progress" msgstr "keine Fortschrittsanzeige beim Klonen" +msgid "disallow cloning into non-empty directory, implies --init" +msgstr "" +"klonen in ein nicht leeres Verzeichnis nicht zulassen, impliziert --init" + msgid "" "git submodule [--quiet] update [--init [--filter=<filter-spec>]] [--remote] " "[-N|--no-fetch] [-f|--force] [--checkout|--merge|--rebase] [--[no-]recommend-" @@ -12588,14 +12764,11 @@ msgstr "" "shallow] [--reference <Repository>] [--recursive] [--[no-]single-branch] " "[--] [<Pfad>...]" -msgid "bad value for update parameter" -msgstr "Fehlerhafter Wert für update Parameter" - msgid "recurse into submodules" msgstr "Rekursion in Submodule durchführen" -msgid "git submodule--helper absorb-git-dirs [<options>] [<path>...]" -msgstr "git submodule--helper absorb-git-dirs [<Optionen>] [<Pfad>...]" +msgid "git submodule absorbgitdirs [<options>] [<path>...]" +msgstr "git submodule absorbgitdirs [<Optionen>] [<Pfad>...]" msgid "check if it is safe to write to the .gitmodules file" msgstr "prüfen, ob es sicher ist, in die Datei .gitmodules zu schreiben" @@ -12617,8 +12790,8 @@ msgstr "" msgid "suppress output for setting url of a submodule" msgstr "Ausgaben beim Setzen der URL eines Submoduls unterdrücken" -msgid "git submodule--helper set-url [--quiet] <path> <newurl>" -msgstr "git submodule--helper set-url [--quiet] <Pfad> <neue URL>" +msgid "git submodule set-url [--quiet] <path> <newurl>" +msgstr "git submodule set-url [--quiet] <Pfad> <neue URL>" msgid "set the default tracking branch to master" msgstr "Standard-Tracking-Branch auf master setzen" @@ -12626,13 +12799,11 @@ msgstr "Standard-Tracking-Branch auf master setzen" msgid "set the default tracking branch" msgstr "Standard-Tracking-Branch setzen" -msgid "git submodule--helper set-branch [-q|--quiet] (-d|--default) <path>" -msgstr "git submodule--helper set-branch [-q|--quiet] (-d|--default) [<Pfad>]" +msgid "git submodule set-branch [-q|--quiet] (-d|--default) <path>" +msgstr "git submodule set-branch [-q|--quiet] (-d|--default) <Pfad>" -msgid "" -"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <branch> <path>" -msgstr "" -"git submodule--helper set-branch [-q|--quiet] (-b|--branch) <Branch> <Pfad>" +msgid "git submodule set-branch [-q|--quiet] (-b|--branch) <branch> <path>" +msgstr "git submodule set-branch [-q|--quiet] (-b|--branch) <Branch> <Pfad>" msgid "--branch or --default required" msgstr "Option --branch oder --default erforderlich" @@ -12732,8 +12903,8 @@ msgstr "" "setzt den Namen des Submoduls auf die angegebene Zeichenkette fest, statt " "standardmäßig dessen Pfad zu nehmen" -msgid "git submodule--helper add [<options>] [--] <repository> [<path>]" -msgstr "git submodule--helper add [<Optionen>] [--] <Repository> [<Pfad>]" +msgid "git submodule add [<options>] [--] <repository> [<path>]" +msgstr "git submodule add [<Optionen>] [--] <Repository> [<Pfad>]" msgid "Relative path can only be used from the toplevel of the working tree" msgstr "" @@ -12942,6 +13113,16 @@ msgstr "Tag '%s' aktualisiert (war %s)\n" msgid "pack exceeds maximum allowed size" msgstr "Paket überschreitet die maximal erlaubte Größe" +msgid "failed to write object in stream" +msgstr "Objekt kann nicht in Stream geschrieben werden" + +#, c-format +msgid "inflate returned (%d)" +msgstr "Dekomprimierung gab (%d) zurück" + +msgid "invalid blob object from stream" +msgstr "ungültiges Blob-Objekt aus Stream" + msgid "Unpacking objects" msgstr "Entpacke Objekte" @@ -13497,6 +13678,27 @@ msgstr "das Tree-Objekt für ein Unterverzeichnis <Präfix> schreiben" msgid "only useful for debugging" msgstr "nur nützlich für Fehlersuche" +msgid "core.fsyncMethod = batch is unsupported on this platform" +msgstr "core.fsyncMethod = batch wird auf dieser Plattform nicht unterstützt" + +msgid "failed to create temporary file" +msgstr "temporäre Datei kann nicht erstellt werden" + +msgid "insufficient capabilities" +msgstr "unzureichende Fähigkeiten" + +#, c-format +msgid "failed to download bundle from URI '%s'" +msgstr "Download des Bundles von URI '%s' fehlgeschlagen" + +#, c-format +msgid "file at URI '%s' is not a bundle" +msgstr "Datei unter URI '%s' ist kein Bundle" + +#, c-format +msgid "failed to unbundle bundle from URI '%s'" +msgstr "Bundle von URI '%s' konnte nicht entpackt werden" + #, c-format msgid "unrecognized bundle hash algorithm: %s" msgstr "unbekannter Paket-Hash-Algorithmus: %s" @@ -13709,6 +13911,9 @@ msgstr "" "einem Objekt einen für Menschen lesbaren Namen basierend auf\n" "einer verfügbaren Referenz geben" +msgid "Generate a zip archive of diagnostic information" +msgstr "Erzeugen eines Zip-Archivs mit Diagnoseinformationen" + msgid "Show changes between commits, commit and working tree, etc" msgstr "" "Änderungen zwischen Commits, Commit und Arbeitsverzeichnis, etc. anzeigen" @@ -13846,8 +14051,8 @@ msgstr "einen Merge für zusammenzuführende Dateien ausführen" msgid "The standard helper program to use with git-merge-index" msgstr "das Standard-Hilfsprogramm für die Verwendung mit git-merge-index" -msgid "Show three-way merge without touching index" -msgstr "3-Wege-Merge anzeigen ohne den Index zu verändern" +msgid "Perform merge without touching index or working tree" +msgstr "Merge ohne Berührung von Index oder Arbeitsverzeichnis durchführen" msgid "Run merge conflict resolution tools to resolve merge conflicts" msgstr "" @@ -14053,6 +14258,9 @@ msgstr "gepackte Git-Archivdateien validieren" msgid "Check the GPG signature of tags" msgstr "die GPG-Signatur von Tags prüfen" +msgid "Display version information about Git" +msgstr "Versionsinformationen über Git anzeigen" + msgid "Show logs with difference each commit introduces" msgstr "Logs mit dem Unterschied, den jeder Commit einführt, anzeigen" @@ -14087,6 +14295,24 @@ msgstr "" msgid "Frequently asked questions about using Git" msgstr "Häufig gestellte Fragen über die Nutzung von Git" +msgid "The bundle file format" +msgstr "Das Bundle-Dateiformat" + +msgid "Chunk-based file formats" +msgstr "Chunk-basierte Dateiformate" + +msgid "Git commit graph format" +msgstr "Git Commit Graph Format" + +msgid "Git index format" +msgstr "Git-Index-Format" + +msgid "Git pack format" +msgstr "Git-Pack-Format" + +msgid "Git cryptographic signature formats" +msgstr "Git kryptographische Signaturformate" + msgid "A Git Glossary" msgstr "ein Git-Glossar" @@ -14108,6 +14334,21 @@ msgstr "Definition von Submodul-Eigenschaften" msgid "Git namespaces" msgstr "Git Namensbereiche" +msgid "Protocol v0 and v1 capabilities" +msgstr "Fähigkeiten des Protokolls v0 und v1" + +msgid "Things common to various protocols" +msgstr "Gemeinsamkeiten zwischen verschiedenen Protokollen" + +msgid "Git HTTP-based protocols" +msgstr "Git HTTP-basierte Protokolle" + +msgid "How packs are transferred over-the-wire" +msgstr "Wie Pakete über die Leitung übertragen werden" + +msgid "Git Wire Protocol, Version 2" +msgstr "Git Wire Protokoll, Version 2" + msgid "Helper programs to interact with remote repositories" msgstr "Hilfsprogramme zur Interaktion mit Remote-Repositories" @@ -14132,6 +14373,9 @@ msgstr "Git Web Interface (Web-Frontend für Git-Repositories)" msgid "An overview of recommended workflows with Git" msgstr "Eine Übersicht über empfohlene Arbeitsabläufe mit Git" +msgid "A tool for managing large Git repositories" +msgstr "Ein Werkzeug zur Verwaltung großer Git-Repositories" + msgid "commit-graph file is too small" msgstr "Commit-Graph-Datei ist zu klein" @@ -14378,6 +14622,14 @@ msgid "no libc information available\n" msgstr "keine libc Informationen verfügbar\n" #, c-format +msgid "could not determine free disk size for '%s'" +msgstr "konnte freien Speicherplatz für '%s' nicht bestimmen" + +#, c-format +msgid "could not get info for '%s'" +msgstr "konnte keine Info für '%s' bekommen" + +#, c-format msgid "[GLE %ld] health thread could not open '%ls'" msgstr "[GLE %ld] health Thread konnte '%ls' nicht öffnen" @@ -14432,6 +14684,14 @@ msgid "could not read directory changes [GLE %ld]" msgstr "konnte Verzeichnisveränderungen nicht lesen [GLE %ld]" #, c-format +msgid "[GLE %ld] unable to open for read '%ls'" +msgstr "[GLE %ld] '%ls' kann nicht zum Lesen geöffnet werden" + +#, c-format +msgid "[GLE %ld] unable to get protocol information for '%ls'" +msgstr "[GLE %ld] kann keine Protokollinformationen für '%ls' erhalten" + +#, c-format msgid "failed to copy SID (%ld)" msgstr "Fehler beim Kopieren von SID (%ld)" @@ -14990,182 +15250,6 @@ msgid "failed to close rev-list's stdin" msgstr "Fehler beim Schließen von rev-lists Standard-Eingabe" #, c-format -msgid "'%s' does not exist" -msgstr "'%s' existiert nicht." - -msgid "need a working directory" -msgstr "Arbeitsverzeichnis benötigt" - -msgid "could not find enlistment root" -msgstr "konnte Root-Verzeichnis für Eintragungen nicht finden" - -#, c-format -msgid "could not switch to '%s'" -msgstr "konnte nicht zu '%s' wechseln" - -#, c-format -msgid "could not configure %s=%s" -msgstr "konnte %s=%s nicht konfigurieren" - -msgid "could not configure log.excludeDecoration" -msgstr "konnte log.excludeDecoration nicht konfigurieren" - -msgid "Scalar enlistments require a worktree" -msgstr "Skalare Eintragungen erfordern ein Arbeitsverzeichnis" - -#, c-format -msgid "could not open directory '%s'" -msgstr "konnte Verzeichnis '%s' nicht öffnen" - -#, c-format -msgid "skipping '%s', which is neither file nor directory" -msgstr "überspringe '%s', das weder Datei noch Verzeichnis ist" - -#, c-format -msgid "could not determine free disk size for '%s'" -msgstr "konnte freien Speicherplatz für '%s' nicht bestimmen" - -#, c-format -msgid "could not get info for '%s'" -msgstr "konnte keine Info für '%s' bekommen" - -#, c-format -msgid "remote HEAD is not a branch: '%.*s'" -msgstr "externer HEAD ist kein Branch: '%.*s'" - -msgid "failed to get default branch name from remote; using local default" -msgstr "" -"Fehler beim Abfragen des Standard-Branchnamens vom Remote-Repository; nutze " -"lokalen Standardwert" - -msgid "failed to get default branch name" -msgstr "Fehler beim Abfragen des Standard-Branchnamens" - -msgid "failed to unregister repository" -msgstr "Fehler beim Austragen des Repositories" - -msgid "failed to delete enlistment directory" -msgstr "Fehler beim Löschen des Eintragungs-Verzeichnisses" - -msgid "branch to checkout after clone" -msgstr "Branch, der nach dem Klonen ausgecheckt werden soll" - -msgid "when cloning, create full working directory" -msgstr "vollständiges Arbeitsverzeichnis beim Klonen erstellen" - -msgid "only download metadata for the branch that will be checked out" -msgstr "lade nur Metadaten des Branches herunter, der ausgecheckt wird" - -msgid "scalar clone [<options>] [--] <repo> [<dir>]" -msgstr "scalar clone [<Optionen>] [--] <Repository> [<Verzeichnis>]" - -#, c-format -msgid "cannot deduce worktree name from '%s'" -msgstr "konnte Name für Arbeitsverzeichnis nicht von '%s' ableiten" - -#, c-format -msgid "directory '%s' exists already" -msgstr "Verzeichnis '%s' existiert bereits" - -#, c-format -msgid "failed to get default branch for '%s'" -msgstr "Fehler beim Abfragen des Default-Branches für '%s'" - -#, c-format -msgid "could not configure remote in '%s'" -msgstr "konnte Remote-Repository in '%s' nicht konfigurieren" - -#, c-format -msgid "could not configure '%s'" -msgstr "konnte '%s' nicht konfigurieren" - -msgid "partial clone failed; attempting full clone" -msgstr "partielles Klonen fehlgeschlagen; versuche vollständiges Klonen" - -msgid "could not configure for full clone" -msgstr "konnte nicht für vollständiges Klonen konfigurieren" - -msgid "scalar diagnose [<enlistment>]" -msgstr "scalar diagnose [<Eintragung>]" - -#, c-format -msgid "could not create directory for '%s'" -msgstr "konnte Verzeichnis für '%s' nicht erstellen" - -msgid "could not duplicate stdout" -msgstr "konnte Standard-Ausgabe nicht duplizieren" - -msgid "failed to write archive" -msgstr "Schreiben des Archivs fehlgeschlagen" - -msgid "`scalar list` does not take arguments" -msgstr "`scalar list` akzeptiert keine Argumente" - -msgid "scalar register [<enlistment>]" -msgstr "scalar register [<Eintragung>]" - -msgid "reconfigure all registered enlistments" -msgstr "alle registrierten Eintragungen neu konfigurieren" - -msgid "scalar reconfigure [--all | <enlistment>]" -msgstr "scalar reconfigure [--all | <Eintragung>]" - -msgid "--all or <enlistment>, but not both" -msgstr "--all oder <Eintragung>, aber nicht beides" - -#, c-format -msgid "git repository gone in '%s'" -msgstr "Git-Repository entfernt in '%s'" - -msgid "" -"scalar run <task> [<enlistment>]\n" -"Tasks:\n" -msgstr "" -"scalar run <Aufgabe> [<Eintragung>]\n" -"Aufgaben:\n" - -#, c-format -msgid "no such task: '%s'" -msgstr "Aufgabe nicht gefunden: '%s'" - -msgid "scalar unregister [<enlistment>]" -msgstr "scalar unregister [<Eintragung>]" - -msgid "scalar delete <enlistment>" -msgstr "scalar delete <Eintragung>" - -msgid "refusing to delete current working directory" -msgstr "Löschen des aktuellen Arbeitsverzeichnisses wurde verweigert" - -msgid "include Git version" -msgstr "Git-Version einbeziehen" - -msgid "include Git's build options" -msgstr "Build-Optionen von Git einbeziehen" - -msgid "scalar verbose [-v | --verbose] [--build-options]" -msgstr "scalar verbose [-v | --verbose] [--build-options]" - -msgid "-C requires a <directory>" -msgstr "-C erfordert ein <Verzeichnis>" - -#, c-format -msgid "could not change to '%s'" -msgstr "konnte nicht zu '%s' wechseln" - -msgid "-c requires a <key>=<value> argument" -msgstr "-c benötigt ein <Schlüssel>=<Wert> Argument" - -msgid "" -"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n" -"\n" -"Commands:\n" -msgstr "" -"scalar [-C <Verzeichnis>] [-c <Schlüssel>=<Wert>] <Befehl> [<Optionen>]\n" -"\n" -"Befehle:\n" - -#, c-format msgid "illegal crlf_action %d" msgstr "Unerlaubte crlf_action %d" @@ -15373,6 +15457,32 @@ msgstr "" msgid "Marked %d islands, done.\n" msgstr "%d Delta-Islands markiert, fertig.\n" +#, c-format +msgid "invalid --%s value '%s'" +msgstr "ungültiger --%s Wert '%s'" + +#, c-format +msgid "could not archive missing directory '%s'" +msgstr "fehlendes Verzeichnis '%s' konnte nicht archiviert werden" + +#, c-format +msgid "could not open directory '%s'" +msgstr "konnte Verzeichnis '%s' nicht öffnen" + +#, c-format +msgid "skipping '%s', which is neither file nor directory" +msgstr "überspringe '%s', das weder Datei noch Verzeichnis ist" + +msgid "could not duplicate stdout" +msgstr "konnte Standard-Ausgabe nicht duplizieren" + +#, c-format +msgid "could not add directory '%s' to archiver" +msgstr "konnte das Verzeichnis '%s' nicht zum Archivierungssystem hinzufügen" + +msgid "failed to write archive" +msgstr "Schreiben des Archivs fehlgeschlagen" + msgid "--merge-base does not work with ranges" msgstr "--merge-base funktioniert nicht mit Bereichen" @@ -16004,6 +16114,9 @@ msgstr "git fetch-pack: ACK/NAK erwartet, '%s' bekommen" msgid "unable to write to remote" msgstr "konnte nicht zum Remote schreiben" +msgid "Server supports filter" +msgstr "Server unterstützt Filter" + #, c-format msgid "invalid shallow line: %s" msgstr "ungültige shallow-Zeile: %s" @@ -16114,9 +16227,6 @@ msgstr "der Server unterstützt Algorithmus '%s' nicht" msgid "Server does not support shallow requests" msgstr "Server unterstützt keine shallow-Anfragen" -msgid "Server supports filter" -msgstr "Server unterstützt Filter" - msgid "unable to write request to remote" msgstr "konnte Anfrage nicht zum Remote schreiben" @@ -16462,6 +16572,12 @@ msgstr "Systembefehle / Repositories synchronisieren" msgid "Low-level Commands / Internal Helpers" msgstr "Systembefehle / Interne Hilfsbefehle" +msgid "User-facing repository, command and file interfaces" +msgstr "Benutzerseitige Repository-, Befehls- und Dateischnittstellen" + +msgid "Developer-facing file formats, protocols and other interfaces" +msgstr "Dateiformate, Protokolle und andere Schnittstellen für Entwickler" + #, c-format msgid "available git commands in '%s'" msgstr "Vorhandene Git-Befehle in '%s'" @@ -16475,6 +16591,12 @@ msgstr "Allgemeine Git-Befehle, verwendet in verschiedenen Situationen:" msgid "The Git concept guides are:" msgstr "Die Git-Konzeptanleitungen sind:" +msgid "User-facing repository, command and file interfaces:" +msgstr "Benutzerseitige Repository-, Befehls- und Dateischnittstellen:" + +msgid "File formats, protocols and other developer interfaces:" +msgstr "Dateiformate, Protokolle und andere Entwicklerschnittstellen:" + msgid "External commands" msgstr "Externe Befehle" @@ -16561,10 +16683,6 @@ msgstr "" "deaktivieren." #, c-format -msgid "Couldn't start hook '%s'\n" -msgstr "Konnte Hook '%s' nicht starten\n" - -#, c-format msgid "argument to --packfile must be a valid hash (got '%s')" msgstr "Argument für --packfile muss ein gültiger Hash sein ('%s' erhalten)" @@ -16752,19 +16870,14 @@ msgid "quoted CRLF detected" msgstr "angeführtes CRLF entdeckt" #, c-format -msgid "" -"Your local changes to the following files would be overwritten by merge:\n" -" %s" -msgstr "" -"Ihre lokalen Änderungen in den folgenden Dateien würden durch den Merge\n" -"überschrieben werden:\n" -" %s" - -#, c-format msgid "Failed to merge submodule %s (not checked out)" msgstr "Fehler beim Merge von Submodul %s (nicht ausgecheckt)." #, c-format +msgid "Failed to merge submodule %s (no merge base)" +msgstr "Merge von Submodul %s fehlgeschlagen (keine Merge-Basis)" + +#, c-format msgid "Failed to merge submodule %s (commits not present)" msgstr "Fehler beim Merge von Submodul %s (Commits nicht vorhanden)." @@ -16782,28 +16895,10 @@ msgstr "Fehler beim Zusammenführen von Submodul %s" #, c-format msgid "" -"Failed to merge submodule %s, but a possible merge resolution exists:\n" -"%s\n" +"Failed to merge submodule %s, but a possible merge resolution exists: %s" msgstr "" -"Fehler beim Zusammenführen von Submodul %s, aber es ist eine mögliche " -"Auflösung des Merges vorhanden:\n" -"%s\n" - -#, c-format -msgid "" -"If this is correct simply add it to the index for example\n" -"by using:\n" -"\n" -" git update-index --cacheinfo 160000 %s \"%s\"\n" -"\n" -"which will accept this suggestion.\n" -msgstr "" -"Falls das korrekt ist, fügen Sie es einfach der Staging-Area, zum Beispiel " -"mit:\n" -"\n" -" git update-index --cacheinfo 160000 %s \"%s\"\n" -"\n" -"hinzu, um diesen Vorschlag zu akzeptieren.\n" +"Der Merge von Submodul %s ist fehlgeschlagen, aber es gibt eine mögliche " +"Auflösung des Merges: %s" #, c-format msgid "" @@ -16971,13 +17066,46 @@ msgstr "" "KONFLIKT (ändern/löschen): %s gelöscht in %s und geändert in %s. Stand %s " "von %s wurde im Arbeitsbereich gelassen." +#. TRANSLATORS: This is a line of advice to resolve a merge +#. conflict in a submodule. The first argument is the submodule +#. name, and the second argument is the abbreviated id of the +#. commit that needs to be merged. For example: +#. - go to submodule (mysubmodule), and either merge commit abc1234" +#. #, c-format msgid "" -"Note: %s not up to date and in way of checking out conflicted version; old " -"copy renamed to %s" +" - go to submodule (%s), and either merge commit %s\n" +" or update to an existing commit which has merged those changes\n" msgstr "" -"Hinweis: %s nicht aktuell und konfliktbehaftete Version während des " -"Auscheckens; alte Kopie zu %s umbenannt" +" - gehen Sie zu Submodul (%s) und mergen Sie entweder Commit %s\n" +" oder aktualisieren Sie zu einem bestehenden Commit, der diese Änderungen " +"zusammengeführt hat\n" + +#, c-format +msgid "" +"Recursive merging with submodules currently only supports trivial cases.\n" +"Please manually handle the merging of each conflicted submodule.\n" +"This can be accomplished with the following steps:\n" +"%s - come back to superproject and run:\n" +"\n" +" git add %s\n" +"\n" +" to record the above merge or update\n" +" - resolve any other conflicts in the superproject\n" +" - commit the resulting index in the superproject\n" +msgstr "" +"Das rekursive Zusammenführen mit Submodulen unterstützt derzeit nur triviale " +"Fälle.\n" +"Bitte führen Sie die Zusammenführung der einzelnen konfliktbehafteten " +"Submodule manuell durch.\n" +"Dies kann mit den folgenden Schritten erreicht werden:\n" +"%s - zurück zum Hauptprojekt und dann ausführen:\n" +"\n" +" git add %s\n" +"\n" +" um die obige Zusammenführung oder Aktualisierung aufzuzeichnen\n" +" - lösen Sie alle anderen Konflikte im Hauptprojekt\n" +" - committen Sie den resultierenden Index in das Hauptprojekt\n" #. TRANSLATORS: The %s arguments are: 1) tree hash of a merge #. base, and 2-3) the trees for the two trees we're merging. @@ -17053,6 +17181,22 @@ msgid "Found a possible merge resolution for the submodule:\n" msgstr "Mögliche Auflösung des Merges für Submodul gefunden:\n" #, c-format +msgid "" +"If this is correct simply add it to the index for example\n" +"by using:\n" +"\n" +" git update-index --cacheinfo 160000 %s \"%s\"\n" +"\n" +"which will accept this suggestion.\n" +msgstr "" +"Falls das korrekt ist, fügen Sie es einfach der Staging-Area, zum Beispiel " +"mit:\n" +"\n" +" git update-index --cacheinfo 160000 %s \"%s\"\n" +"\n" +"hinzu, um diesen Vorschlag zu akzeptieren.\n" + +#, c-format msgid "Failed to merge submodule %s (multiple merges found)" msgstr "Fehler beim Merge von Submodul %s (mehrere Merges gefunden)" @@ -17128,8 +17272,8 @@ msgstr "" #, c-format msgid "" -"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename " -"\"%s\"->\"%s\" in \"%s\"%s" +"CONFLICT (rename/rename): Rename \"%s\"->\"%s\" in branch \"%s\" rename \"%s" +"\"->\"%s\" in \"%s\"%s" msgstr "" "KONFLIKT (umbenennen/umbenennen): Benenne um \"%s\"->\"%s\" in Branch \"%s\" " "und \"%s\"->\"%s\" in Branch \"%s\"%s" @@ -17593,6 +17737,22 @@ msgid "confused by unstable object source data for %s" msgstr "Fehler wegen instabilen Objektquelldaten für %s" #, c-format +msgid "write stream object %ld != %<PRIuMAX>" +msgstr "stream-Objekt schreiben %ld!= %<PRIuMAX>" + +#, c-format +msgid "unable to stream deflate new object (%d)" +msgstr "neues Objekt kann nicht aus Stream entpackt werden (%d)" + +#, c-format +msgid "deflateEnd on stream object failed (%d)" +msgstr "deflateEnd auf Stream-Objekt fehlgeschlagen (%d)" + +#, c-format +msgid "unable to create directory %s" +msgstr "Verzeichnis %s kann nicht erstellt werden" + +#, c-format msgid "cannot read object for %s" msgstr "Kann Objekt für %s nicht lesen." @@ -17657,7 +17817,7 @@ msgstr "%s [ungültiges Objekt]" #. TRANSLATORS: This is a line of ambiguous commit #. object output. E.g.: #. * -#. "deadbeef commit 2021-01-01 - Some Commit Message" +#. "deadbeef commit 2021-01-01 - Some Commit Message" #. #, c-format msgid "%s commit %s - %s" @@ -17666,7 +17826,7 @@ msgstr "%s Commit %s - %s" #. TRANSLATORS: This is a line of ambiguous #. tag object output. E.g.: #. * -#. "deadbeef tag 2022-01-01 - Some Tag Message" +#. "deadbeef tag 2022-01-01 - Some Tag Message" #. * #. The second argument is the YYYY-MM-DD found #. in the tag. @@ -17682,7 +17842,7 @@ msgstr "%s Tag %s - %s" #. tag object output where we couldn't parse #. the tag itself. E.g.: #. * -#. "deadbeef [bad tag, could not parse it]" +#. "deadbeef [bad tag, could not parse it]" #. #, c-format msgid "%s [bad tag, could not parse it]" @@ -17823,6 +17983,58 @@ msgstr "Konnte Objekt '%s' nicht parsen." msgid "hash mismatch %s" msgstr "Hash stimmt nicht mit %s überein." +msgid "trying to write commit not in index" +msgstr "Versuch, einen Commit zu schreiben, der nicht im Index steht" + +msgid "failed to load bitmap index (corrupted?)" +msgstr "bitmap-Index kann nicht geladen werden (beschädigt?)" + +msgid "corrupted bitmap index (too small)" +msgstr "beschädigter Bitmap-Index (zu klein)" + +msgid "corrupted bitmap index file (wrong header)" +msgstr "beschädigte Bitmap-Indexdatei (falscher Header)" + +#, c-format +msgid "unsupported version '%d' for bitmap index file" +msgstr "nicht unterstützte Version '%d' für Bitmap-Indexdatei" + +msgid "corrupted bitmap index file (too short to fit hash cache)" +msgstr "" +"beschädigte Bitmap-Indexdatei (zu kurz, um in den Hash-Cache zu passen)" + +msgid "corrupted bitmap index file (too short to fit lookup table)" +msgstr "" +"beschädigte Bitmap-Indexdatei (zu kurz, um in die Lookup-Tabelle zu passen)" + +#, c-format +msgid "duplicate entry in bitmap index: '%s'" +msgstr "duplizierter Eintrag im Bitmap-Index: '%s'" + +#, c-format +msgid "corrupt ewah bitmap: truncated header for entry %d" +msgstr "fehlerhafte ewah-Bitmap: abgeschnittener Header für Eintrag %d" + +#, c-format +msgid "corrupt ewah bitmap: commit index %u out of range" +msgstr "fehlerhafte ewah-Bitmap: Commit-Index %u außerhalb des Bereichs" + +msgid "corrupted bitmap pack index" +msgstr "beschädigter Bitmap-Pack-Index" + +msgid "invalid XOR offset in bitmap pack index" +msgstr "ungültiger XOR-Offset im Bitmap-Pack-Index" + +msgid "cannot fstat bitmap file" +msgstr "kann Bitmap-Datei nicht lesen" + +#, c-format +msgid "ignoring extra bitmap file: '%s'" +msgstr "ignoriere zusätzliche Bitmap-Datei: '%s'" + +msgid "checksum doesn't match in MIDX and bitmap" +msgstr "Prüfsumme stimmt in MIDX und Bitmap nicht überein" + msgid "multi-pack bitmap is missing required reverse index" msgstr "Multi-Pack-Bitmap fehlt erforderlicher Reverse-Index" @@ -17834,9 +18046,60 @@ msgstr "konnte Paket '%s' nicht öffnen" msgid "preferred pack (%s) is invalid" msgstr "bevorzugtes Paket (%s) ist ungültig" +msgid "corrupt bitmap lookup table: triplet position out of index" +msgstr "Bitmap-Lookup-Tabelle beschädigt: Triplet-Position außerhalb des Index" + +msgid "corrupt bitmap lookup table: xor chain exceed entry count" +msgstr "" +"fehlerhafte Bitmap-Lookup-Tabelle: Xor-Kette überschreitet die Anzahl der " +"Einträge" + +#, c-format +msgid "corrupt bitmap lookup table: commit index %u out of range" +msgstr "" +"Bitmap-Lookup-Tabelle beschädigt: Commit-Index %u außerhalb des Bereichs" + +#, c-format +msgid "corrupt ewah bitmap: truncated header for bitmap of commit \"%s\"" +msgstr "" +"fehlerhafte ewah-Bitmap: abgeschnittener Header für Bitmap des Commits \"%s\"" + +#, c-format +msgid "object '%s' not found in type bitmaps" +msgstr "Objekt '%s' nicht im Typ Bitmaps gefunden" + +#, c-format +msgid "object '%s' does not have a unique type" +msgstr "das Objekt '%s' hat keinen eindeutigen Typ" + +#, c-format +msgid "object '%s': real type '%s', expected: '%s'" +msgstr "Objekt '%s': reeller Typ '%s', erwartet: '%s'" + +#, c-format +msgid "object not in bitmap: '%s'" +msgstr "Objekt nicht in Bitmap: '%s'" + +msgid "failed to load bitmap indexes" +msgstr "Bitmap-Indizes konnten nicht geladen werden" + +msgid "you must specify exactly one commit to test" +msgstr "Sie müssen genau einen Commit zum Testen angeben" + +#, c-format +msgid "commit '%s' doesn't have an indexed bitmap" +msgstr "Commit '%s' hat keine indizierte Bitmap" + +msgid "mismatch in bitmap results" +msgstr "Unstimmigkeiten bei Bitmap-Ergebnissen" + #, c-format -msgid "could not find %s in pack %s at offset %<PRIuMAX>" -msgstr "konnte %s nicht in Paket %s bei Offset %<PRIuMAX> finden" +msgid "could not find '%s' in pack '%s' at offset %<PRIuMAX>" +msgstr "konnte '%s' in Paket '%s' bei Offset %<PRIuMAX> nicht finden" + +#, c-format +msgid "unable to get disk usage of '%s'" +msgstr "Festplattennutzung von '%s' kann nicht abgerufen werden" #, c-format msgid "mtimes file %s is too small" @@ -17963,6 +18226,9 @@ msgstr "Meinten Sie `--%s` (mit zwei Strichen)?" msgid "alias of --%s" msgstr "Alias für --%s" +msgid "need a subcommand" +msgstr "benötige einen Unterbefehl" + #, c-format msgid "unknown option `%s'" msgstr "Unbekannte Option: `%s'" @@ -18405,9 +18671,12 @@ msgid "" "l, label <label> = label current HEAD with a name\n" "t, reset <label> = reset HEAD to a label\n" "m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]\n" -". create a merge commit using the original merge commit's\n" -". message (or the oneline, if no original merge commit was\n" -". specified); use -c <commit> to reword the commit message\n" +" create a merge commit using the original merge commit's\n" +" message (or the oneline, if no original merge commit was\n" +" specified); use -c <commit> to reword the commit message\n" +"u, update-ref <ref> = track a placeholder for the <ref> to be updated\n" +" to this position in the new commits. The <ref> is\n" +" updated at the end of the rebase\n" "\n" "These lines can be re-ordered; they are executed from top to bottom.\n" msgstr "" @@ -18429,11 +18698,16 @@ msgstr "" "l, label <Label> = aktuellen HEAD mit Label versehen\n" "t, reset <Label> = HEAD zu einem Label umsetzen\n" "m, merge [-C <Commit> | -c <Commit>] <Label> [# <eineZeile>]\n" -". Merge-Commit mit der originalen Merge-Commit-Beschreibung erstellen\n" -". (oder die eine Zeile, wenn keine originale Merge-Commit-" +" Merge-Commit mit der originalen Merge-Commit-Beschreibung erstellen\n" +" (oder die eine Zeile, wenn keine originale Merge-Commit-" "Beschreibung\n" -". spezifiziert ist). Benutzen Sie -c <Commit> zum Bearbeiten der\n" -". Commit-Beschreibung.\n" +" spezifiziert ist). Benutzen Sie -c <Commit> zum Bearbeiten der\n" +" Commit-Beschreibung.\n" +"u, update-ref <Referenz>= einen Platzhalter für die zu aktualisierende " +"<Referenz>\n" +" zu dieser Position in den neuen Commits erstellen. Die " +"<Referenz>wird\n" +" am Ende des Rebase aktualisiert\n" "\n" "Diese Zeilen können umsortiert werden; sie werden von oben nach unten\n" "ausgeführt.\n" @@ -18908,6 +19182,13 @@ msgstr "Protokollfehler: SHA-1/Referenz erwartet, '%s' bekommen" msgid "http transport does not support %s" msgstr "HTTP-Transport unterstützt nicht %s" +msgid "protocol error: expected '<url> <path>', missing space" +msgstr "Protokollfehler: erwartet '<url> <path>', fehlendes Leerzeichen" + +#, c-format +msgid "failed to download file at URL '%s'" +msgstr "Datei unter URL '%s' konnte nicht heruntergeladen werden" + msgid "git-http-push failed" msgstr "\"git-http-push\" fehlgeschlagen" @@ -19258,6 +19539,14 @@ msgstr "Konnte HEAD-Commit nicht bestimmen." msgid "failed to find tree of %s" msgstr "Fehler beim Finden des \"Tree\"-Objektes von %s." +#, c-format +msgid "resolve-undo records `%s` which is missing" +msgstr "resolve-undo zeichnet `%s` auf, das fehlt" + +#, c-format +msgid "could not get commit for ancestry-path argument %s" +msgstr "konnte kein Commit für das Argument ancestry-path %s erhalten" + msgid "--unpacked=<packfile> no longer supported" msgstr "--unpacked=<Pack-Datei> wird nicht länger unterstützt" @@ -19278,6 +19567,174 @@ msgstr "-L unterstützt noch keine anderen Diff-Formate außer -p und -s" msgid "cannot create async thread: %s" msgstr "Konnte Thread für async nicht erzeugen: %s" +#, c-format +msgid "'%s' does not exist" +msgstr "'%s' existiert nicht." + +#, c-format +msgid "could not switch to '%s'" +msgstr "konnte nicht zu '%s' wechseln" + +msgid "need a working directory" +msgstr "Arbeitsverzeichnis benötigt" + +msgid "Scalar enlistments require a worktree" +msgstr "Skalare Eintragungen erfordern ein Arbeitsverzeichnis" + +#, c-format +msgid "could not configure %s=%s" +msgstr "konnte %s=%s nicht konfigurieren" + +msgid "could not configure log.excludeDecoration" +msgstr "konnte log.excludeDecoration nicht konfigurieren" + +msgid "could not add enlistment" +msgstr "konnte keine Eintragung hinzufügen" + +msgid "could not set recommended config" +msgstr "konnte die empfohlene Konfiguration nicht setzen" + +msgid "could not turn on maintenance" +msgstr "konnte die Wartung nicht einschalten" + +msgid "could not start the FSMonitor daemon" +msgstr "konnte den FSMonitor-Daemon nicht starten" + +msgid "could not turn off maintenance" +msgstr "konnte die Wartung nicht abschalten" + +msgid "could not remove enlistment" +msgstr "konnte die Eintragung nicht aufheben" + +#, c-format +msgid "remote HEAD is not a branch: '%.*s'" +msgstr "externer HEAD ist kein Branch: '%.*s'" + +msgid "failed to get default branch name from remote; using local default" +msgstr "" +"Fehler beim Abfragen des Standard-Branchnamens vom Remote-Repository; nutze " +"lokalen Standardwert" + +msgid "failed to get default branch name" +msgstr "Fehler beim Abfragen des Standard-Branchnamens" + +msgid "failed to unregister repository" +msgstr "Fehler beim Austragen des Repositories" + +msgid "failed to stop the FSMonitor daemon" +msgstr "der FSMonitor-Daemon konnte nicht gestoppt werden" + +msgid "failed to delete enlistment directory" +msgstr "Fehler beim Löschen des Eintragungs-Verzeichnisses" + +msgid "branch to checkout after clone" +msgstr "Branch, der nach dem Klonen ausgecheckt werden soll" + +msgid "when cloning, create full working directory" +msgstr "vollständiges Arbeitsverzeichnis beim Klonen erstellen" + +msgid "only download metadata for the branch that will be checked out" +msgstr "lade nur Metadaten des Branches herunter, der ausgecheckt wird" + +msgid "scalar clone [<options>] [--] <repo> [<dir>]" +msgstr "scalar clone [<Optionen>] [--] <Repository> [<Verzeichnis>]" + +#, c-format +msgid "cannot deduce worktree name from '%s'" +msgstr "konnte Name für Arbeitsverzeichnis nicht von '%s' ableiten" + +#, c-format +msgid "directory '%s' exists already" +msgstr "Verzeichnis '%s' existiert bereits" + +#, c-format +msgid "failed to get default branch for '%s'" +msgstr "Fehler beim Abfragen des Default-Branches für '%s'" + +#, c-format +msgid "could not configure remote in '%s'" +msgstr "konnte Remote-Repository in '%s' nicht konfigurieren" + +#, c-format +msgid "could not configure '%s'" +msgstr "konnte '%s' nicht konfigurieren" + +msgid "partial clone failed; attempting full clone" +msgstr "partielles Klonen fehlgeschlagen; versuche vollständiges Klonen" + +msgid "could not configure for full clone" +msgstr "konnte nicht für vollständiges Klonen konfigurieren" + +msgid "scalar diagnose [<enlistment>]" +msgstr "scalar diagnose [<Eintragung>]" + +msgid "`scalar list` does not take arguments" +msgstr "`scalar list` akzeptiert keine Argumente" + +msgid "scalar register [<enlistment>]" +msgstr "scalar register [<Eintragung>]" + +msgid "reconfigure all registered enlistments" +msgstr "alle registrierten Eintragungen neu konfigurieren" + +msgid "scalar reconfigure [--all | <enlistment>]" +msgstr "scalar reconfigure [--all | <Eintragung>]" + +msgid "--all or <enlistment>, but not both" +msgstr "--all oder <Eintragung>, aber nicht beides" + +#, c-format +msgid "git repository gone in '%s'" +msgstr "Git-Repository entfernt in '%s'" + +msgid "" +"scalar run <task> [<enlistment>]\n" +"Tasks:\n" +msgstr "" +"scalar run <Aufgabe> [<Eintragung>]\n" +"Aufgaben:\n" + +#, c-format +msgid "no such task: '%s'" +msgstr "Aufgabe nicht gefunden: '%s'" + +msgid "scalar unregister [<enlistment>]" +msgstr "scalar unregister [<Eintragung>]" + +msgid "scalar delete <enlistment>" +msgstr "scalar delete <Eintragung>" + +msgid "refusing to delete current working directory" +msgstr "Löschen des aktuellen Arbeitsverzeichnisses wurde verweigert" + +msgid "include Git version" +msgstr "Git-Version einbeziehen" + +msgid "include Git's build options" +msgstr "Build-Optionen von Git einbeziehen" + +msgid "scalar verbose [-v | --verbose] [--build-options]" +msgstr "scalar verbose [-v | --verbose] [--build-options]" + +msgid "-C requires a <directory>" +msgstr "-C erfordert ein <Verzeichnis>" + +#, c-format +msgid "could not change to '%s'" +msgstr "konnte nicht zu '%s' wechseln" + +msgid "-c requires a <key>=<value> argument" +msgstr "-c benötigt ein <Schlüssel>=<Wert> Argument" + +msgid "" +"scalar [-C <directory>] [-c <key>=<value>] <command> [<options>]\n" +"\n" +"Commands:\n" +msgstr "" +"scalar [-C <Verzeichnis>] [-c <Schlüssel>=<Wert>] <Befehl> [<Optionen>]\n" +"\n" +"Befehle:\n" + msgid "unexpected flush packet while reading remote unpack status" msgstr "Unerwartetes Flush-Paket beim Lesen des Remote-Unpack-Status." @@ -19403,10 +19860,6 @@ msgid "commit your changes or stash them to proceed." msgstr "" "Committen Sie Ihre Änderungen oder benutzen Sie \"stash\", um fortzufahren." -#, c-format -msgid "%s: fast-forward" -msgstr "%s: Vorspulen" - #. TRANSLATORS: %s will be "revert", "cherry-pick" or #. "rebase". #. @@ -19900,6 +20353,28 @@ msgstr "konnte nicht einmal versuchen '%.*s' zu mergen" msgid "merge: Unable to write new index file" msgstr "merge: Konnte neue Index-Datei nicht schreiben." +#, c-format +msgid "" +"another 'rebase' process appears to be running; '%s.lock' already exists" +msgstr "" +"ein weiterer 'rebase'-Prozess scheint zu laufen; '%s.lock' existiert bereits" + +#, c-format +msgid "" +"Updated the following refs with %s:\n" +"%s" +msgstr "" +"Die folgenden Referenzen wurden mit %s aktualisiert:\n" +"%s" + +#, c-format +msgid "" +"Failed to update the following refs with %s:\n" +"%s" +msgstr "" +"Die Aktualisierung der folgenden Referenzen mit %s ist fehlgeschlagen:\n" +"%s" + msgid "Cannot autostash" msgstr "Kann automatischen Stash nicht erzeugen" @@ -20071,6 +20546,10 @@ msgid "the script was already rearranged." msgstr "Das Script wurde bereits umgeordnet." #, c-format +msgid "update-refs file at '%s' is invalid" +msgstr "update-refs-Datei bei '%s' ist ungültig" + +#, c-format msgid "'%s' is outside repository at '%s'" msgstr "'%s' liegt außerhalb des Repositories von '%s'" @@ -20192,17 +20671,22 @@ msgstr "" #, c-format msgid "" -"unsafe repository ('%s' is owned by someone else)\n" -"To add an exception for this directory, call:\n" +"detected dubious ownership in repository at '%s'\n" +"%sTo add an exception for this directory, call:\n" "\n" "\tgit config --global --add safe.directory %s" msgstr "" -"unsicheres Repository ('%s' gehört jemand anderem)\n" -"Um eine Ausnahme für dieses Repository hinzuzufügen, führen Sie aus:\n" +"dubiose Besitzverhältnisse im Repository bei '%s' entdeckt\n" +"%sUm eine Ausnahme für dieses Verzeichnis hinzuzufügen, rufen Sie auf:\n" "\n" "\tgit config --global --add safe.directory %s" #, c-format +msgid "cannot use bare repository '%s' (safe.bareRepository is '%s')" +msgstr "" +"kann Bare-Repository '%s' nicht verwenden (safe.bareRepository ist '%s')" + +#, c-format msgid "" "problem with core.sharedRepository filemode value (0%.3o).\n" "The owner of files must always have read and write permissions." @@ -21091,6 +21575,18 @@ msgstr "ungültige Portnummer" msgid "invalid '..' path segment" msgstr "ungültiges '..' Pfadsegment" +msgid "usage: " +msgstr "Verwendung: " + +msgid "fatal: " +msgstr "Schwerwiegend: " + +msgid "error: " +msgstr "Fehler: " + +msgid "warning: " +msgstr "Warnung: " + msgid "Fetching objects" msgstr "Anfordern der Objekte" @@ -21474,8 +21970,8 @@ msgstr "Sie führen gerade \"cherry-pick\" von Commit %s aus." msgid " (fix conflicts and run \"git cherry-pick --continue\")" msgstr "" -" (beheben Sie die Konflikte und führen Sie dann \"git cherry-pick --" -"continue\" aus)" +" (beheben Sie die Konflikte und führen Sie dann \"git cherry-pick --continue" +"\" aus)" msgid " (run \"git cherry-pick --continue\" to continue)" msgstr " (Führen Sie \"git cherry-pick --continue\" aus, um weiterzumachen)" @@ -21948,23 +22444,6 @@ msgstr "" msgid "ignoring unmerged: %s\n" msgstr "ignoriere nicht zusammengeführte Datei: %s\n" -#, perl-format -msgid "Apply mode change to worktree [y,n,q,a,d%s,?]? " -msgstr "Modusänderung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " - -#, perl-format -msgid "Apply deletion to worktree [y,n,q,a,d%s,?]? " -msgstr "Löschung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " - -#, perl-format -msgid "Apply addition to worktree [y,n,q,a,d%s,?]? " -msgstr "Ergänzung auf Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " - -#, perl-format -msgid "Apply this hunk to worktree [y,n,q,a,d%s,?]? " -msgstr "" -"Diesen Patch-Block auf das Arbeitsverzeichnis anwenden [y,n,q,a,d%s,?]? " - msgid "No other hunks to goto\n" msgstr "Keine anderen Patch-Blöcke verbleibend\n" diff --git a/reftable/merged.c b/reftable/merged.c index 2a6efa110d..5ded470c08 100644 --- a/reftable/merged.c +++ b/reftable/merged.c @@ -36,7 +36,7 @@ static int merged_iter_init(struct merged_iter *mi) .rec = rec, .index = i, }; - merged_iter_pqueue_add(&mi->pq, e); + merged_iter_pqueue_add(&mi->pq, &e); } } @@ -71,7 +71,7 @@ static int merged_iter_advance_nonnull_subiter(struct merged_iter *mi, return 0; } - merged_iter_pqueue_add(&mi->pq, e); + merged_iter_pqueue_add(&mi->pq, &e); return 0; } diff --git a/reftable/pq.c b/reftable/pq.c index 96ca6dd37b..dcefeb793a 100644 --- a/reftable/pq.c +++ b/reftable/pq.c @@ -71,7 +71,7 @@ struct pq_entry merged_iter_pqueue_remove(struct merged_iter_pqueue *pq) return e; } -void merged_iter_pqueue_add(struct merged_iter_pqueue *pq, struct pq_entry e) +void merged_iter_pqueue_add(struct merged_iter_pqueue *pq, const struct pq_entry *e) { int i = 0; @@ -81,7 +81,7 @@ void merged_iter_pqueue_add(struct merged_iter_pqueue *pq, struct pq_entry e) pq->cap * sizeof(struct pq_entry)); } - pq->heap[pq->len++] = e; + pq->heap[pq->len++] = *e; i = pq->len - 1; while (i > 0) { int j = (i - 1) / 2; diff --git a/reftable/pq.h b/reftable/pq.h index 56fc1b6d87..e85bac9b52 100644 --- a/reftable/pq.h +++ b/reftable/pq.h @@ -26,7 +26,7 @@ struct pq_entry merged_iter_pqueue_top(struct merged_iter_pqueue pq); int merged_iter_pqueue_is_empty(struct merged_iter_pqueue pq); void merged_iter_pqueue_check(struct merged_iter_pqueue pq); struct pq_entry merged_iter_pqueue_remove(struct merged_iter_pqueue *pq); -void merged_iter_pqueue_add(struct merged_iter_pqueue *pq, struct pq_entry e); +void merged_iter_pqueue_add(struct merged_iter_pqueue *pq, const struct pq_entry *e); void merged_iter_pqueue_release(struct merged_iter_pqueue *pq); int pq_less(struct pq_entry *a, struct pq_entry *b); diff --git a/reftable/pq_test.c b/reftable/pq_test.c index 7de5e886f3..011b5c7502 100644 --- a/reftable/pq_test.c +++ b/reftable/pq_test.c @@ -46,7 +46,7 @@ static void test_pq(void) .u.ref = { .refname = names[i], } } }; - merged_iter_pqueue_add(&pq, e); + merged_iter_pqueue_add(&pq, &e); merged_iter_pqueue_check(pq); i = (i * 7) % N; } while (i != 1); diff --git a/t/Makefile b/t/Makefile index 3db48c0cb6..882782a519 100644 --- a/t/Makefile +++ b/t/Makefile @@ -73,6 +73,7 @@ clean-except-prove-cache: clean-chainlint $(RM) -r valgrind/bin clean: clean-except-prove-cache + $(RM) -r '$(TEST_RESULTS_DIRECTORY_SQ)' $(RM) .prove clean-chainlint: diff --git a/t/t0012-help.sh b/t/t0012-help.sh index 4ed2f242eb..dbfc5c8267 100755 --- a/t/t0012-help.sh +++ b/t/t0012-help.sh @@ -231,7 +231,7 @@ test_expect_success "'git help -a' section spacing" ' User-facing repository, command and file interfaces - Developer-facing file file formats, protocols and interfaces + Developer-facing file formats, protocols and other interfaces EOF test_cmp expect actual ' diff --git a/t/t0092-diagnose.sh b/t/t0092-diagnose.sh index fca9b58489..133e5747d6 100755 --- a/t/t0092-diagnose.sh +++ b/t/t0092-diagnose.sh @@ -28,12 +28,23 @@ test_expect_success UNZIP 'creates diagnostics zip archive' ' ! "$GIT_UNZIP" -l "$zip_path" | grep ".git/" ' +test_expect_success UNZIP 'counts loose objects' ' + test_commit A && + + # After committing, should have non-zero loose objects + git diagnose -o test-count -s 1 >out && + zip_path=test-count/git-diagnostics-1.zip && + "$GIT_UNZIP" -p "$zip_path" objects-local.txt >out && + grep "^Total: [1-9][0-9]* loose objects" out +' + test_expect_success UNZIP '--mode=stats excludes .git dir contents' ' test_when_finished rm -rf report && git diagnose -o report -s test --mode=stats >out && # Includes pack quantity/size info + zip_path=report/git-diagnostics-test.zip && "$GIT_UNZIP" -p "$zip_path" packs-local.txt >out && grep ".git/objects" out && @@ -47,6 +58,7 @@ test_expect_success UNZIP '--mode=all includes .git dir contents' ' git diagnose -o report -s test --mode=all >out && # Includes pack quantity/size info + zip_path=report/git-diagnostics-test.zip && "$GIT_UNZIP" -p "$zip_path" packs-local.txt >out && grep ".git/objects" out && |
