summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/git-gc.txt7
-rw-r--r--Documentation/technical/repository-version.txt88
-rw-r--r--builtin/am.c6
-rw-r--r--builtin/branch.c2
-rw-r--r--builtin/clone.c4
-rw-r--r--builtin/commit.c6
-rw-r--r--builtin/gc.c74
-rw-r--r--builtin/merge.c2
-rw-r--r--builtin/notes.c6
-rw-r--r--builtin/prune.c3
-rw-r--r--builtin/repack.c3
-rw-r--r--builtin/stripspace.c124
-rw-r--r--builtin/tag.c2
-rw-r--r--cache.h9
-rw-r--r--credential-cache.c2
-rw-r--r--environment.c1
-rwxr-xr-xgit-filter-branch.sh2
-rwxr-xr-xgit-p4.py52
-rw-r--r--git-rebase--interactive.sh12
-rw-r--r--path.c27
-rw-r--r--po/ru.po3550
-rw-r--r--reachable.c8
-rw-r--r--setup.c56
-rw-r--r--sha1_file.c59
-rw-r--r--strbuf.c66
-rw-r--r--strbuf.h11
-rw-r--r--submodule.c9
-rwxr-xr-xt/t1302-repo-version.sh60
-rwxr-xr-xt/t3404-rebase-interactive.sh12
-rwxr-xr-xt/t5700-clone-reference.sh21
-rwxr-xr-xt/t6500-gc.sh13
-rwxr-xr-xt/t7003-filter-branch.sh14
-rwxr-xr-xt/t7063-status-untracked-cache.sh4
-rwxr-xr-xt/t7410-submodule-checkout-to.sh10
-rwxr-xr-xt/t9811-git-p4-label-import.sh45
-rwxr-xr-xt/t9825-git-p4-handle-utf16-without-bom.sh50
-rw-r--r--test-path-utils.c2
37 files changed, 2655 insertions, 1767 deletions
diff --git a/Documentation/git-gc.txt b/Documentation/git-gc.txt
index 5223498..fa15104 100644
--- a/Documentation/git-gc.txt
+++ b/Documentation/git-gc.txt
@@ -63,8 +63,11 @@ automatic consolidation of packs.
--prune=<date>::
Prune loose objects older than date (default is 2 weeks ago,
overridable by the config variable `gc.pruneExpire`).
- --prune=all prunes loose objects regardless of their age.
- --prune is on by default.
+ --prune=all prunes loose objects regardless of their age (do
+ not use --prune=all unless you know exactly what you are doing.
+ Unless the repository is quiescent, you will lose newly created
+ objects that haven't been anchored with the refs and end up
+ corrupting your repository). --prune is on by default.
--no-prune::
Do not prune any loose objects.
diff --git a/Documentation/technical/repository-version.txt b/Documentation/technical/repository-version.txt
new file mode 100644
index 0000000..00ad379
--- /dev/null
+++ b/Documentation/technical/repository-version.txt
@@ -0,0 +1,88 @@
+Git Repository Format Versions
+==============================
+
+Every git repository is marked with a numeric version in the
+`core.repositoryformatversion` key of its `config` file. This version
+specifies the rules for operating on the on-disk repository data. An
+implementation of git which does not understand a particular version
+advertised by an on-disk repository MUST NOT operate on that repository;
+doing so risks not only producing wrong results, but actually losing
+data.
+
+Because of this rule, version bumps should be kept to an absolute
+minimum. Instead, we generally prefer these strategies:
+
+ - bumping format version numbers of individual data files (e.g.,
+ index, packfiles, etc). This restricts the incompatibilities only to
+ those files.
+
+ - introducing new data that gracefully degrades when used by older
+ clients (e.g., pack bitmap files are ignored by older clients, which
+ simply do not take advantage of the optimization they provide).
+
+A whole-repository format version bump should only be part of a change
+that cannot be independently versioned. For instance, if one were to
+change the reachability rules for objects, or the rules for locking
+refs, that would require a bump of the repository format version.
+
+Note that this applies only to accessing the repository's disk contents
+directly. An older client which understands only format `0` may still
+connect via `git://` to a repository using format `1`, as long as the
+server process understands format `1`.
+
+The preferred strategy for rolling out a version bump (whether whole
+repository or for a single file) is to teach git to read the new format,
+and allow writing the new format with a config switch or command line
+option (for experimentation or for those who do not care about backwards
+compatibility with older gits). Then after a long period to allow the
+reading capability to become common, we may switch to writing the new
+format by default.
+
+The currently defined format versions are:
+
+Version `0`
+-----------
+
+This is the format defined by the initial version of git, including but
+not limited to the format of the repository directory, the repository
+configuration file, and the object and ref storage. Specifying the
+complete behavior of git is beyond the scope of this document.
+
+Version `1`
+-----------
+
+This format is identical to version `0`, with the following exceptions:
+
+ 1. When reading the `core.repositoryformatversion` variable, a git
+ implementation which supports version 1 MUST also read any
+ configuration keys found in the `extensions` section of the
+ configuration file.
+
+ 2. If a version-1 repository specifies any `extensions.*` keys that
+ the running git has not implemented, the operation MUST NOT
+ proceed. Similarly, if the value of any known key is not understood
+ by the implementation, the operation MUST NOT proceed.
+
+Note that if no extensions are specified in the config file, then
+`core.repositoryformatversion` SHOULD be set to `0` (setting it to `1`
+provides no benefit, and makes the repository incompatible with older
+implementations of git).
+
+This document will serve as the master list for extensions. Any
+implementation wishing to define a new extension should make a note of
+it here, in order to claim the name.
+
+The defined extensions are:
+
+`noop`
+~~~~~~
+
+This extension does not change git's behavior at all. It is useful only
+for testing format-1 compatibility.
+
+`preciousObjects`
+~~~~~~~~~~~~~~~~~
+
+When the config key `extensions.preciousObjects` is set to `true`,
+objects in the repository MUST NOT be deleted (e.g., by `git-prune` or
+`git repack -d`).
diff --git a/builtin/am.c b/builtin/am.c
index 3bd4fd7..98e29e0 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1343,7 +1343,7 @@ static int parse_mail(struct am_state *state, const char *mail)
strbuf_addstr(&msg, "\n\n");
if (strbuf_read_file(&msg, am_path(state, "msg"), 0) < 0)
die_errno(_("could not read '%s'"), am_path(state, "msg"));
- stripspace(&msg, 0);
+ strbuf_stripspace(&msg, 0);
if (state->signoff)
am_signoff(&msg);
@@ -2229,8 +2229,8 @@ int cmd_am(int argc, const char **argv, const char *prefix)
int in_progress;
const char * const usage[] = {
- N_("git am [options] [(<mbox>|<Maildir>)...]"),
- N_("git am [options] (--continue | --skip | --abort)"),
+ N_("git am [<options>] [(<mbox>|<Maildir>)...]"),
+ N_("git am [<options>] (--continue | --skip | --abort)"),
NULL
};
diff --git a/builtin/branch.c b/builtin/branch.c
index ff05869..baaa44c 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -786,7 +786,7 @@ static int edit_branch_description(const char *branch_name)
strbuf_release(&buf);
return -1;
}
- stripspace(&buf, 1);
+ strbuf_stripspace(&buf, 1);
strbuf_addf(&name, "branch.%s.description", branch_name);
status = git_config_set(name.buf, buf.len ? buf.buf : NULL);
diff --git a/builtin/clone.c b/builtin/clone.c
index 578da85..cc896e2 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -1064,8 +1064,10 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
transport_unlock_pack(transport);
transport_disconnect(transport);
- if (option_dissociate)
+ if (option_dissociate) {
+ close_all_packs();
dissociate_from_references();
+ }
junk_mode = JUNK_LEAVE_REPO;
err = checkout();
diff --git a/builtin/commit.c b/builtin/commit.c
index 63772d0..dca09e2 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -775,7 +775,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
s->hints = 0;
if (clean_message_contents)
- stripspace(&sb, 0);
+ strbuf_stripspace(&sb, 0);
if (signoff)
append_signoff(&sb, ignore_non_trailer(&sb), 0);
@@ -1014,7 +1014,7 @@ static int template_untouched(struct strbuf *sb)
if (!template_file || strbuf_read_file(&tmpl, template_file, 0) <= 0)
return 0;
- stripspace(&tmpl, cleanup_mode == CLEANUP_ALL);
+ strbuf_stripspace(&tmpl, cleanup_mode == CLEANUP_ALL);
if (!skip_prefix(sb->buf, tmpl.buf, &start))
start = sb->buf;
strbuf_release(&tmpl);
@@ -1726,7 +1726,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
wt_status_truncate_message_at_cut_line(&sb);
if (cleanup_mode != CLEANUP_NONE)
- stripspace(&sb, cleanup_mode == CLEANUP_ALL);
+ strbuf_stripspace(&sb, cleanup_mode == CLEANUP_ALL);
if (template_untouched(&sb) && !allow_empty_message) {
rollback_index_files();
fprintf(stderr, _("Aborting commit; you did not edit the message.\n"));
diff --git a/builtin/gc.c b/builtin/gc.c
index 0ad8d30..9216f7b 100644
--- a/builtin/gc.c
+++ b/builtin/gc.c
@@ -44,6 +44,7 @@ static struct argv_array prune_worktrees = ARGV_ARRAY_INIT;
static struct argv_array rerere = ARGV_ARRAY_INIT;
static struct tempfile pidfile;
+static struct lock_file log_lock;
static void git_config_date_string(const char *key, const char **output)
{
@@ -56,6 +57,28 @@ static void git_config_date_string(const char *key, const char **output)
}
}
+static void process_log_file(void)
+{
+ struct stat st;
+ if (!fstat(get_lock_file_fd(&log_lock), &st) && st.st_size)
+ commit_lock_file(&log_lock);
+ else
+ rollback_lock_file(&log_lock);
+}
+
+static void process_log_file_at_exit(void)
+{
+ fflush(stderr);
+ process_log_file();
+}
+
+static void process_log_file_on_signal(int signo)
+{
+ process_log_file();
+ sigchain_pop(signo);
+ raise(signo);
+}
+
static void gc_config(void)
{
const char *value;
@@ -241,6 +264,24 @@ static const char *lock_repo_for_gc(int force, pid_t* ret_pid)
return NULL;
}
+static int report_last_gc_error(void)
+{
+ struct strbuf sb = STRBUF_INIT;
+ int ret;
+
+ ret = strbuf_read_file(&sb, git_path("gc.log"), 0);
+ if (ret > 0)
+ return error(_("The last gc run reported the following. "
+ "Please correct the root cause\n"
+ "and remove %s.\n"
+ "Automatic cleanup will not be performed "
+ "until the file is removed.\n\n"
+ "%s"),
+ git_path("gc.log"), sb.buf);
+ strbuf_release(&sb);
+ return 0;
+}
+
static int gc_before_repack(void)
{
if (pack_refs && run_command_v_opt(pack_refs_cmd.argv, RUN_GIT_CMD))
@@ -262,6 +303,7 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
int force = 0;
const char *name;
pid_t pid;
+ int daemonized = 0;
struct option builtin_gc_options[] = {
OPT__QUIET(&quiet, N_("suppress progress reporting")),
@@ -318,13 +360,16 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
fprintf(stderr, _("See \"git help gc\" for manual housekeeping.\n"));
}
if (detach_auto) {
+ if (report_last_gc_error())
+ return -1;
+
if (gc_before_repack())
return -1;
/*
* failure to daemonize is ok, we'll continue
* in foreground
*/
- daemonize();
+ daemonized = !daemonize();
}
} else
add_repack_all_option();
@@ -337,18 +382,29 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
name, (uintmax_t)pid);
}
+ if (daemonized) {
+ hold_lock_file_for_update(&log_lock,
+ git_path("gc.log"),
+ LOCK_DIE_ON_ERROR);
+ dup2(get_lock_file_fd(&log_lock), 2);
+ sigchain_push_common(process_log_file_on_signal);
+ atexit(process_log_file_at_exit);
+ }
+
if (gc_before_repack())
return -1;
- if (run_command_v_opt(repack.argv, RUN_GIT_CMD))
- return error(FAILED_RUN, repack.argv[0]);
+ if (!repository_format_precious_objects) {
+ if (run_command_v_opt(repack.argv, RUN_GIT_CMD))
+ return error(FAILED_RUN, repack.argv[0]);
- if (prune_expire) {
- argv_array_push(&prune, prune_expire);
- if (quiet)
- argv_array_push(&prune, "--no-progress");
- if (run_command_v_opt(prune.argv, RUN_GIT_CMD))
- return error(FAILED_RUN, prune.argv[0]);
+ if (prune_expire) {
+ argv_array_push(&prune, prune_expire);
+ if (quiet)
+ argv_array_push(&prune, "--no-progress");
+ if (run_command_v_opt(prune.argv, RUN_GIT_CMD))
+ return error(FAILED_RUN, prune.argv[0]);
+ }
}
if (prune_worktrees_expire) {
diff --git a/builtin/merge.c b/builtin/merge.c
index a0edaca..e6741f3 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -806,7 +806,7 @@ static void prepare_to_commit(struct commit_list *remoteheads)
abort_commit(remoteheads, NULL);
}
read_merge_msg(&msg);
- stripspace(&msg, 0 < option_edit);
+ strbuf_stripspace(&msg, 0 < option_edit);
if (!msg.len)
abort_commit(remoteheads, _("Empty commit message."));
strbuf_release(&merge_msg);
diff --git a/builtin/notes.c b/builtin/notes.c
index 3608c64..bb23d55 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -192,7 +192,7 @@ static void prepare_note_data(const unsigned char *object, struct note_data *d,
if (launch_editor(d->edit_path, &d->buf, NULL)) {
die(_("Please supply the note contents using either -m or -F option"));
}
- stripspace(&d->buf, 1);
+ strbuf_stripspace(&d->buf, 1);
}
}
@@ -215,7 +215,7 @@ static int parse_msg_arg(const struct option *opt, const char *arg, int unset)
if (d->buf.len)
strbuf_addch(&d->buf, '\n');
strbuf_addstr(&d->buf, arg);
- stripspace(&d->buf, 0);
+ strbuf_stripspace(&d->buf, 0);
d->given = 1;
return 0;
@@ -232,7 +232,7 @@ static int parse_file_arg(const struct option *opt, const char *arg, int unset)
die_errno(_("cannot read '%s'"), arg);
} else if (strbuf_read_file(&d->buf, arg, 1024) < 0)
die_errno(_("could not open or read '%s'"), arg);
- stripspace(&d->buf, 0);
+ strbuf_stripspace(&d->buf, 0);
d->given = 1;
return 0;
diff --git a/builtin/prune.c b/builtin/prune.c
index 10b03d3..8f4f052 100644
--- a/builtin/prune.c
+++ b/builtin/prune.c
@@ -119,6 +119,9 @@ int cmd_prune(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, options, prune_usage, 0);
+ if (repository_format_precious_objects)
+ die(_("cannot prune in a precious-objects repo"));
+
while (argc--) {
unsigned char sha1[20];
const char *name = *argv++;
diff --git a/builtin/repack.c b/builtin/repack.c
index 70b9b1e..9456110 100644
--- a/builtin/repack.c
+++ b/builtin/repack.c
@@ -193,6 +193,9 @@ int cmd_repack(int argc, const char **argv, const char *prefix)
argc = parse_options(argc, argv, prefix, builtin_repack_options,
git_repack_usage, 0);
+ if (delete_redundant && repository_format_precious_objects)
+ die(_("cannot delete packs in a precious-objects repo"));
+
if (pack_kept_objects < 0)
pack_kept_objects = write_bitmaps;
diff --git a/builtin/stripspace.c b/builtin/stripspace.c
index 958567a..7ff8434 100644
--- a/builtin/stripspace.c
+++ b/builtin/stripspace.c
@@ -1,71 +1,7 @@
#include "builtin.h"
#include "cache.h"
-
-/*
- * Returns the length of a line, without trailing spaces.
- *
- * If the line ends with newline, it will be removed too.
- */
-static size_t cleanup(char *line, size_t len)
-{
- while (len) {
- unsigned char c = line[len - 1];
- if (!isspace(c))
- break;
- len--;
- }
-
- return len;
-}
-
-/*
- * Remove empty lines from the beginning and end
- * and also trailing spaces from every line.
- *
- * Turn multiple consecutive empty lines between paragraphs
- * into just one empty line.
- *
- * If the input has only empty lines and spaces,
- * no output will be produced.
- *
- * If last line does not have a newline at the end, one is added.
- *
- * Enable skip_comments to skip every line starting with comment
- * character.
- */
-void stripspace(struct strbuf *sb, int skip_comments)
-{
- int empties = 0;
- size_t i, j, len, newlen;
- char *eol;
-
- /* We may have to add a newline. */
- strbuf_grow(sb, 1);
-
- for (i = j = 0; i < sb->len; i += len, j += newlen) {
- eol = memchr(sb->buf + i, '\n', sb->len - i);
- len = eol ? eol - (sb->buf + i) + 1 : sb->len - i;
-
- if (skip_comments && len && sb->buf[i] == comment_line_char) {
- newlen = 0;
- continue;
- }
- newlen = cleanup(sb->buf + i, len);
-
- /* Not just an empty line? */
- if (newlen) {
- if (empties > 0 && j > 0)
- sb->buf[j++] = '\n';
- empties = 0;
- memmove(sb->buf + j, sb->buf + i, newlen);
- sb->buf[newlen + j++] = '\n';
- } else {
- empties++;
- }
- }
-
- strbuf_setlen(sb, j);
-}
+#include "parse-options.h"
+#include "strbuf.h"
static void comment_lines(struct strbuf *buf)
{
@@ -77,41 +13,45 @@ static void comment_lines(struct strbuf *buf)
free(msg);
}
-static const char *usage_msg = "\n"
-" git stripspace [-s | --strip-comments]\n"
-" git stripspace [-c | --comment-lines]";
+static const char * const stripspace_usage[] = {
+ N_("git stripspace [-s | --strip-comments]"),
+ N_("git stripspace [-c | --comment-lines]"),
+ NULL
+};
+
+enum stripspace_mode {
+ STRIP_DEFAULT = 0,
+ STRIP_COMMENTS,
+ COMMENT_LINES
+};
int cmd_stripspace(int argc, const char **argv, const char *prefix)
{
struct strbuf buf = STRBUF_INIT;
- int strip_comments = 0;
- enum { INVAL = 0, STRIP_SPACE = 1, COMMENT_LINES = 2 } mode = STRIP_SPACE;
-
- if (argc == 2) {
- if (!strcmp(argv[1], "-s") ||
- !strcmp(argv[1], "--strip-comments")) {
- strip_comments = 1;
- } else if (!strcmp(argv[1], "-c") ||
- !strcmp(argv[1], "--comment-lines")) {
- mode = COMMENT_LINES;
- } else {
- mode = INVAL;
- }
- } else if (argc > 1) {
- mode = INVAL;
- }
-
- if (mode == INVAL)
- usage(usage_msg);
-
- if (strip_comments || mode == COMMENT_LINES)
+ enum stripspace_mode mode = STRIP_DEFAULT;
+
+ const struct option options[] = {
+ OPT_CMDMODE('s', "strip-comments", &mode,
+ N_("skip and remove all lines starting with comment character"),
+ STRIP_COMMENTS),
+ OPT_CMDMODE('c', "comment-lines", &mode,
+ N_("prepend comment character and blank to each line"),
+ COMMENT_LINES),
+ OPT_END()
+ };
+
+ argc = parse_options(argc, argv, prefix, options, stripspace_usage, 0);
+ if (argc)
+ usage_with_options(stripspace_usage, options);
+
+ if (mode == STRIP_COMMENTS || mode == COMMENT_LINES)
git_config(git_default_config, NULL);
if (strbuf_read(&buf, 0, 1024) < 0)
die_errno("could not read the input");
- if (mode == STRIP_SPACE)
- stripspace(&buf, strip_comments);
+ if (mode == STRIP_DEFAULT || mode == STRIP_COMMENTS)
+ strbuf_stripspace(&buf, mode == STRIP_COMMENTS);
else
comment_lines(&buf);
diff --git a/builtin/tag.c b/builtin/tag.c
index cba0e22..f048cae 100644
--- a/builtin/tag.c
+++ b/builtin/tag.c
@@ -498,7 +498,7 @@ static void create_tag(const unsigned char *object, const char *tag,
}
if (opt->cleanup_mode != CLEANUP_NONE)
- stripspace(buf, opt->cleanup_mode == CLEANUP_ALL);
+ strbuf_stripspace(buf, opt->cleanup_mode == CLEANUP_ALL);
if (!opt->message_given && !buf->len)
die(_("no tag message?"));
diff --git a/cache.h b/cache.h
index 79066e5..d941224 100644
--- a/cache.h
+++ b/cache.h
@@ -443,6 +443,7 @@ extern char *get_object_directory(void);
extern char *get_index_file(void);
extern char *get_graft_file(void);
extern int set_git_dir(const char *path);
+extern int get_common_dir_noenv(struct strbuf *sb, const char *gitdir);
extern int get_common_dir(struct strbuf *sb, const char *gitdir);
extern const char *get_git_namespace(void);
extern const char *strip_namespace(const char *namespaced_ref);
@@ -696,8 +697,15 @@ extern char *notes_ref_name;
extern int grafts_replace_parents;
+/*
+ * GIT_REPO_VERSION is the version we write by default. The
+ * _READ variant is the highest number we know how to
+ * handle.
+ */
#define GIT_REPO_VERSION 0
+#define GIT_REPO_VERSION_READ 1
extern int repository_format_version;
+extern int repository_format_precious_objects;
extern int check_repository_format(void);
#define MTIME_CHANGED 0x0001
@@ -1275,6 +1283,7 @@ extern void close_pack_index(struct packed_git *);
extern unsigned char *use_pack(struct packed_git *, struct pack_window **, off_t, unsigned long *);
extern void close_pack_windows(struct packed_git *);
+extern void close_all_packs(void);
extern void unuse_pack(struct pack_window **);
extern void free_pack_by_name(const char *);
extern void clear_delta_base_cache(void);
diff --git a/credential-cache.c b/credential-cache.c
index 8689a15..f4afdc6 100644
--- a/credential-cache.c
+++ b/credential-cache.c
@@ -88,7 +88,7 @@ int main(int argc, const char **argv)
int timeout = 900;
const char *op;
const char * const usage[] = {
- "git credential-cache [options] <action>",
+ "git credential-cache [<options>] <action>",
NULL
};
struct option options[] = {
diff --git a/environment.c b/environment.c
index a533aed..23a38e4 100644
--- a/environment.c
+++ b/environment.c
@@ -26,6 +26,7 @@ int warn_ambiguous_refs = 1;
int warn_on_object_refname_ambiguity = 1;
int ref_paranoia = -1;
int repository_format_version;
+int repository_format_precious_objects;
const char *git_commit_encoding;
const char *git_log_output_encoding;
int shared_repository = PERM_UMASK;
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 5b3f63d..fff8093 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -347,7 +347,7 @@ while read commit parents; do
fi
{
- while read -r header_line && test -n "$header_line"
+ while IFS='' read -r header_line && test -n "$header_line"
do
# skip header lines...
:;
diff --git a/git-p4.py b/git-p4.py
index 0093fa3..36c5c55 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -134,13 +134,11 @@ def read_pipe(c, ignore_error=False):
sys.stderr.write('Reading pipe: %s\n' % str(c))
expand = isinstance(c,basestring)
- p = subprocess.Popen(c, stdout=subprocess.PIPE, shell=expand)
- pipe = p.stdout
- val = pipe.read()
- if p.wait() and not ignore_error:
- die('Command failed: %s' % str(c))
-
- return val
+ p = subprocess.Popen(c, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=expand)
+ (out, err) = p.communicate()
+ if p.returncode != 0 and not ignore_error:
+ die('Command failed: %s\nError: %s' % (str(c), err))
+ return out
def p4_read_pipe(c, ignore_error=False):
real_cmd = p4_build_cmd(c)
@@ -2193,10 +2191,17 @@ class P4Sync(Command, P4UserMap):
# them back too. This is not needed to the cygwin windows version,
# just the native "NT" type.
#
- text = p4_read_pipe(['print', '-q', '-o', '-', "%s@%s" % (file['depotFile'], file['change']) ])
- if p4_version_string().find("/NT") >= 0:
- text = text.replace("\r\n", "\n")
- contents = [ text ]
+ try:
+ text = p4_read_pipe(['print', '-q', '-o', '-', '%s@%s' % (file['depotFile'], file['change'])])
+ except Exception as e:
+ if 'Translation of file content failed' in str(e):
+ type_base = 'binary'
+ else:
+ raise e
+ else:
+ if p4_version_string().find('/NT') >= 0:
+ text = text.replace('\r\n', '\n')
+ contents = [ text ]
if type_base == "apple":
# Apple filetype files will be streamed as a concatenation of
@@ -2329,8 +2334,11 @@ class P4Sync(Command, P4UserMap):
else:
return "%s <a@b>" % userid
- # Stream a p4 tag
def streamTag(self, gitStream, labelName, labelDetails, commit, epoch):
+ """ Stream a p4 tag.
+ commit is either a git commit, or a fast-import mark, ":<p4commit>"
+ """
+
if verbose:
print "writing tag %s for commit %s" % (labelName, commit)
gitStream.write("tag %s\n" % labelName)
@@ -2381,7 +2389,7 @@ class P4Sync(Command, P4UserMap):
self.clientSpecDirs.update_client_spec_path_cache(files)
self.gitStream.write("commit %s\n" % branch)
-# gitStream.write("mark :%s\n" % details["change"])
+ self.gitStream.write("mark :%s\n" % details["change"])
self.committedChanges.add(int(details["change"]))
committer = ""
if author not in self.users:
@@ -2500,13 +2508,19 @@ class P4Sync(Command, P4UserMap):
if change.has_key('change'):
# find the corresponding git commit; take the oldest commit
changelist = int(change['change'])
- gitCommit = read_pipe(["git", "rev-list", "--max-count=1",
- "--reverse", ":/\[git-p4:.*change = %d\]" % changelist])
- if len(gitCommit) == 0:
- print "could not find git commit for changelist %d" % changelist
- else:
- gitCommit = gitCommit.strip()
+ if changelist in self.committedChanges:
+ gitCommit = ":%d" % changelist # use a fast-import mark
commitFound = True
+ else:
+ gitCommit = read_pipe(["git", "rev-list", "--max-count=1",
+ "--reverse", ":/\[git-p4:.*change = %d\]" % changelist], ignore_error=True)
+ if len(gitCommit) == 0:
+ print "importing label %s: could not find git commit for changelist %d" % (name, changelist)
+ else:
+ commitFound = True
+ gitCommit = gitCommit.strip()
+
+ if commitFound:
# Convert from p4 time format
try:
tmwhen = time.strptime(labelDetails['Update'], "%Y/%m/%d %H:%M:%S")
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index d65c06e..30edb17 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -77,6 +77,10 @@ amend="$state_dir"/amend
rewritten_list="$state_dir"/rewritten-list
rewritten_pending="$state_dir"/rewritten-pending
+# Work around Git for Windows' Bash whose "read" does not strip CRLF
+# and leaves CR at the end instead.
+cr=$(printf "\015")
+
strategy_args=
if test -n "$do_merge"
then
@@ -518,6 +522,10 @@ do_next () {
"$comment_char"*|''|noop|drop|d)
mark_action_done
;;
+ "$cr")
+ # Work around CR left by "read" (e.g. with Git for Windows' Bash).
+ mark_action_done
+ ;;
pick|p)
comment_for_reflog pick
@@ -896,6 +904,10 @@ check_bad_cmd_and_sha () {
"$comment_char"*|''|noop|x|exec)
# Doesn't expect a SHA-1
;;
+ "$cr")
+ # Work around CR left by "read" (e.g. with Git for
+ # Windows' Bash).
+ ;;
pick|p|drop|d|reword|r|edit|e|squash|s|fixup|f)
if ! check_commit_sha "${rest%%[ ]*}" "$lineno" "$1"
then
diff --git a/path.c b/path.c
index 95acbaf..69265f4 100644
--- a/path.c
+++ b/path.c
@@ -98,7 +98,7 @@ static const char *common_list[] = {
NULL
};
-static void update_common_dir(struct strbuf *buf, int git_dir_len)
+static void update_common_dir(struct strbuf *buf, int git_dir_len, const char *common_dir)
{
char *base = buf->buf + git_dir_len;
const char **p;
@@ -115,12 +115,16 @@ static void update_common_dir(struct strbuf *buf, int git_dir_len)
path++;
is_dir = 1;
}
+
+ if (!common_dir)
+ common_dir = get_git_common_dir();
+
if (is_dir && dir_prefix(base, path)) {
- replace_dir(buf, git_dir_len, get_git_common_dir());
+ replace_dir(buf, git_dir_len, common_dir);
return;
}
if (!is_dir && !strcmp(base, path)) {
- replace_dir(buf, git_dir_len, get_git_common_dir());
+ replace_dir(buf, git_dir_len, common_dir);
return;
}
}
@@ -160,7 +164,7 @@ static void adjust_git_path(struct strbuf *buf, int git_dir_len)
else if (git_db_env && dir_prefix(base, "objects"))
replace_dir(buf, git_dir_len + 7, get_object_directory());
else if (git_common_dir_env)
- update_common_dir(buf, git_dir_len);
+ update_common_dir(buf, git_dir_len, NULL);
}
static void do_git_path(struct strbuf *buf, const char *fmt, va_list args)
@@ -228,6 +232,8 @@ static void do_submodule_path(struct strbuf *buf, const char *path,
const char *fmt, va_list args)
{
const char *git_dir;
+ struct strbuf git_submodule_common_dir = STRBUF_INIT;
+ struct strbuf git_submodule_dir = STRBUF_INIT;
strbuf_addstr(buf, path);
if (buf->len && buf->buf[buf->len - 1] != '/')
@@ -240,9 +246,17 @@ static void do_submodule_path(struct strbuf *buf, const char *path,
strbuf_addstr(buf, git_dir);
}
strbuf_addch(buf, '/');
+ strbuf_addstr(&git_submodule_dir, buf->buf);
strbuf_vaddf(buf, fmt, args);
+
+ if (get_common_dir_noenv(&git_submodule_common_dir, git_submodule_dir.buf))
+ update_common_dir(buf, git_submodule_dir.len, git_submodule_common_dir.buf);
+
strbuf_cleanup_path(buf);
+
+ strbuf_release(&git_submodule_dir);
+ strbuf_release(&git_submodule_common_dir);
}
char *git_pathdup_submodule(const char *path, const char *fmt, ...)
@@ -676,6 +690,11 @@ const char *remove_leading_path(const char *in, const char *prefix)
* normalized, any time "../" eats up to the prefix_len part,
* prefix_len is reduced. In the end prefix_len is the remaining
* prefix that has not been overridden by user pathspec.
+ *
+ * NEEDSWORK: This function doesn't perform normalization w.r.t. trailing '/'.
+ * For everything but the root folder itself, the normalized path should not
+ * end with a '/', then the callers need to be fixed up accordingly.
+ *
*/
int normalize_path_copy_len(char *dst, const char *src, int *prefix_len)
{
diff --git a/po/ru.po b/po/ru.po
index 4f66cee..c9e1fb8 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -10,10 +10,10 @@ msgid ""
msgstr ""
"Project-Id-Version: Перевод Git на русский язык\n"
"Report-Msgid-Bugs-To: Git Mailing List <git@vger.kernel.org>\n"
-"POT-Creation-Date: 2015-07-14 07:19+0800\n"
-"PO-Revision-Date: 2015-07-14 13:06+0000\n"
+"POT-Creation-Date: 2015-09-15 06:45+0800\n"
+"PO-Revision-Date: 2015-09-30 14:53+0000\n"
"Last-Translator: Dimitriy Ryazantcev <DJm00n@mail.ru>\n"
-"Language-Team: Russian (http://www.transifex.com/p/git-po-ru/language/ru/)\n"
+"Language-Team: Russian (http://www.transifex.com/djm00n/git-po-ru/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -31,94 +31,106 @@ msgid ""
"as appropriate to mark resolution and make a commit."
msgstr "Исправьте их в рабочем каталоге, затем запустите «git add/rm <файл>»,\nчтобы пометить исправление и сделайте коммит."
-#: archive.c:11
+#: advice.c:101 builtin/merge.c:1227
+msgid "You have not concluded your merge (MERGE_HEAD exists)."
+msgstr "Вы не завершили слияние (присутствует файл MERGE_HEAD)."
+
+#: advice.c:103
+msgid "Please, commit your changes before you can merge."
+msgstr "Выполните коммит ваших изменений, перед слиянием."
+
+#: advice.c:104
+msgid "Exiting because of unfinished merge."
+msgstr "Выход из-за незавершенного слияния."
+
+#: archive.c:12
msgid "git archive [<options>] <tree-ish> [<path>...]"
msgstr "git archive [<опции>] <указатель-дерева> [<путь>…]"
-#: archive.c:12
+#: archive.c:13
msgid "git archive --list"
msgstr "git archive --list"
-#: archive.c:13
+#: archive.c:14
msgid ""
"git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> "
"[<path>...]"
msgstr "git archive --remote <репозиторий> [--exec <команда>] [<опции>] <указатель-дерева> [<путь>…]"
-#: archive.c:14
+#: archive.c:15
msgid "git archive --remote <repo> [--exec <cmd>] --list"
msgstr "git archive --remote <репозиторий> [--exec <команда>] --list"
-#: archive.c:342 builtin/add.c:137 builtin/add.c:428 builtin/rm.c:327
+#: archive.c:343 builtin/add.c:137 builtin/add.c:426 builtin/rm.c:327
#, c-format
msgid "pathspec '%s' did not match any files"
msgstr "спецификация пути «%s» не соответствует ни одному файлу"
-#: archive.c:427
+#: archive.c:428
msgid "fmt"
msgstr "формат"
-#: archive.c:427
+#: archive.c:428
msgid "archive format"
msgstr "формат архива"
-#: archive.c:428 builtin/log.c:1204
+#: archive.c:429 builtin/log.c:1229
msgid "prefix"
msgstr "префикс"
-#: archive.c:429
+#: archive.c:430
msgid "prepend prefix to each pathname in the archive"
msgstr "добавлять префикс перед каждым путем файла в архиве"
-#: archive.c:430 builtin/archive.c:88 builtin/blame.c:2516
-#: builtin/blame.c:2517 builtin/config.c:57 builtin/fast-export.c:986
-#: builtin/fast-export.c:988 builtin/grep.c:712 builtin/hash-object.c:99
-#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:394
-#: builtin/notes.c:557 builtin/read-tree.c:109 parse-options.h:150
+#: archive.c:431 builtin/archive.c:88 builtin/blame.c:2516
+#: builtin/blame.c:2517 builtin/config.c:58 builtin/fast-export.c:987
+#: builtin/fast-export.c:989 builtin/grep.c:712 builtin/hash-object.c:99
+#: builtin/ls-files.c:446 builtin/ls-files.c:449 builtin/notes.c:395
+#: builtin/notes.c:558 builtin/read-tree.c:109 parse-options.h:153
msgid "file"
msgstr "файл"
-#: archive.c:431 builtin/archive.c:89
+#: archive.c:432 builtin/archive.c:89
msgid "write the archive to this file"
msgstr "запись архива в этот файл"
-#: archive.c:433
+#: archive.c:434
msgid "read .gitattributes in working directory"
msgstr "читать .gitattributes в рабочем каталоге"
-#: archive.c:434
+#: archive.c:435
msgid "report archived files on stderr"
msgstr "отчет об архивированных файлах в stderr"
-#: archive.c:435
+#: archive.c:436
msgid "store only"
msgstr "только хранение"
-#: archive.c:436
+#: archive.c:437
msgid "compress faster"
msgstr "сжимать быстрее"
-#: archive.c:444
+#: archive.c:445
msgid "compress better"
msgstr "сжимать лучше"
-#: archive.c:447
+#: archive.c:448
msgid "list supported archive formats"
msgstr "перечислить поддерживаемые форматы архивов"
-#: archive.c:449 builtin/archive.c:90 builtin/clone.c:77
+#: archive.c:450 builtin/archive.c:90 builtin/clone.c:77
msgid "repo"
msgstr "репозиторий"
-#: archive.c:450 builtin/archive.c:91
+#: archive.c:451 builtin/archive.c:91
msgid "retrieve the archive from remote repository <repo>"
msgstr "получить архив из внешнего <репозитория>"
-#: archive.c:451 builtin/archive.c:92 builtin/notes.c:478
+#: archive.c:452 builtin/archive.c:92 builtin/notes.c:479
msgid "command"
msgstr "комманда"
-#: archive.c:452 builtin/archive.c:93
+#: archive.c:453 builtin/archive.c:93
msgid "path to the remote git-upload-archive command"
msgstr "путь к команде git-upload-archive на машине с внешним репозиторием"
@@ -230,6 +242,11 @@ msgstr "Неоднозначное имя объекта: «%s»."
msgid "Not a valid branch point: '%s'."
msgstr "Недопустимая точка ветки: «%s»."
+#: branch.c:399
+#, c-format
+msgid "'%s' is already checked out at '%s'"
+msgstr "«%s» уже находится на «%s»"
+
#: bundle.c:34
#, c-format
msgid "'%s' does not look like a v2 bundle file"
@@ -240,7 +257,7 @@ msgstr "«%s» не похож на файл пакета версии 2"
msgid "unrecognized header: %s%s (%d)"
msgstr "неопознанный заголовок: %s%s (%d)"
-#: bundle.c:87 builtin/commit.c:766
+#: bundle.c:87 builtin/commit.c:765
#, c-format
msgid "could not open '%s'"
msgstr "не удалось открыть «%s»"
@@ -249,9 +266,9 @@ msgstr "не удалось открыть «%s»"
msgid "Repository lacks these prerequisite commits:"
msgstr "В репозитории отсутствуют необходимые коммиты:"
-#: bundle.c:163 sequencer.c:650 sequencer.c:1105 builtin/blame.c:2705
-#: builtin/branch.c:651 builtin/commit.c:1045 builtin/log.c:330
-#: builtin/log.c:825 builtin/log.c:1432 builtin/log.c:1666 builtin/merge.c:358
+#: bundle.c:163 sequencer.c:636 sequencer.c:1083 builtin/blame.c:2708
+#: builtin/branch.c:652 builtin/commit.c:1044 builtin/log.c:334
+#: builtin/log.c:850 builtin/log.c:1457 builtin/log.c:1690 builtin/merge.c:358
#: builtin/shortlog.c:158
msgid "revision walk setup failed"
msgstr "сбой инициализации прохода по редакциям"
@@ -278,38 +295,38 @@ msgstr[1] "Пакет требует эти %d ссылки:"
msgstr[2] "Пакет требует эти %d ссылок:"
msgstr[3] "Пакет требует эти %d ссылок:"
-#: bundle.c:251
+#: bundle.c:253
msgid "Could not spawn pack-objects"
msgstr "Не удалось создать объекты пакета"
-#: bundle.c:269
+#: bundle.c:264
msgid "pack-objects died"
msgstr "критическая ошибка pack-objects"
-#: bundle.c:309
+#: bundle.c:304
msgid "rev-list died"
msgstr "критическая ошибка rev-list"
-#: bundle.c:358
+#: bundle.c:353
#, c-format
msgid "ref '%s' is excluded by the rev-list options"
msgstr "ссылка «%s» исключена в соответствии с опциями rev-list"
-#: bundle.c:437 builtin/log.c:153 builtin/log.c:1342 builtin/shortlog.c:261
+#: bundle.c:443 builtin/log.c:157 builtin/log.c:1367 builtin/shortlog.c:261
#, c-format
msgid "unrecognized argument: %s"
msgstr "неопознанный аргумент: %s"
-#: bundle.c:443
+#: bundle.c:449
msgid "Refusing to create empty bundle."
msgstr "Отклонение создания пустого пакета."
-#: bundle.c:453
+#: bundle.c:459
#, c-format
msgid "cannot create '%s'"
msgstr "не удалось создать «%s»"
-#: bundle.c:474
+#: bundle.c:480
msgid "index-pack died"
msgstr "критическая ошибка index-pack"
@@ -318,7 +335,8 @@ msgstr "критическая ошибка index-pack"
msgid "invalid color value: %.*s"
msgstr "недопустимое значение цвета: %.*s"
-#: commit.c:40
+#: commit.c:40 builtin/am.c:451 builtin/am.c:487 builtin/am.c:1516
+#: builtin/am.c:2128
#, c-format
msgid "could not parse %s"
msgstr "не удалось разобрать %s"
@@ -494,75 +512,75 @@ msgstr "сбой чтения orderfile «%s»"
msgid "Performing inexact rename detection"
msgstr "Выполняется неточное определение переименования"
-#: diff.c:114
+#: diff.c:116
#, c-format
msgid " Failed to parse dirstat cut-off percentage '%s'\n"
msgstr " Сбой разбора величины среза (cut-off) у dirstat «%s»\n"
-#: diff.c:119
+#: diff.c:121
#, c-format
msgid " Unknown dirstat parameter '%s'\n"
msgstr "Неизвестный параметр dirstat: «%s»\n"
-#: diff.c:214
+#: diff.c:216
#, c-format
msgid "Unknown value for 'diff.submodule' config variable: '%s'"
msgstr "Неизвестное значения для переменной «diff.submodule»: «%s»"
-#: diff.c:266
+#: diff.c:268
#, c-format
msgid ""
"Found errors in 'diff.dirstat' config variable:\n"
"%s"
msgstr "Найдены ошибки в переменной «diff.dirstat»:\n%s"
-#: diff.c:2997
+#: diff.c:2998
#, c-format
msgid "external diff died, stopping at %s"
msgstr "критическая ошибка при внешнем сравнении, останов на %s"
-#: diff.c:3393
+#: diff.c:3394
msgid "--follow requires exactly one pathspec"
msgstr "--follow требует ровно одной спецификации пути"
-#: diff.c:3556
+#: diff.c:3557
#, c-format
msgid ""
"Failed to parse --dirstat/-X option parameter:\n"
"%s"
msgstr "Сбой разбора параметра опции --dirstat/-X :\n%s"
-#: diff.c:3570
+#: diff.c:3571
#, c-format
msgid "Failed to parse --submodule option parameter: '%s'"
msgstr "Сбой разбора параметра опции --submodule: «%s»"
-#: dir.c:1852
+#: dir.c:1853
msgid "failed to get kernel name and information"
msgstr "не удалось получить имя ядра и информацию"
-#: dir.c:1945
+#: dir.c:1936
msgid "Untracked cache is disabled on this system."
msgstr "Кэш неотслеживаемых файлов отключен на этой системе."
-#: gpg-interface.c:129 gpg-interface.c:200
+#: gpg-interface.c:166 gpg-interface.c:237
msgid "could not run gpg."
msgstr "не удалось запустить gpg."
-#: gpg-interface.c:141
+#: gpg-interface.c:178
msgid "gpg did not accept the data"
msgstr "gpg не принял данные"
-#: gpg-interface.c:152
+#: gpg-interface.c:189
msgid "gpg failed to sign the data"
msgstr "gpg не удалось подписать данные"
-#: gpg-interface.c:185
+#: gpg-interface.c:222
#, c-format
msgid "could not create temporary file '%s': %s"
msgstr "не удалось создать временный файл «%s»: %s"
-#: gpg-interface.c:188
+#: gpg-interface.c:225
#, c-format
msgid "failed writing detached signature to '%s': %s"
msgstr "сбой записи отсоединенной подписи в «%s»: %s"
@@ -640,20 +658,12 @@ msgstr[3] "\nВозможно, вы имели в виду что-то из эт
msgid "%s: %s - %s"
msgstr "%s: %s — %s"
-#: lockfile.c:345
-msgid "BUG: reopen a lockfile that is still open"
-msgstr "БАГ: повторное открытие файла блокировки, который уже открыт"
-
-#: lockfile.c:347
-msgid "BUG: reopen a lockfile that has been committed"
-msgstr "БАГ: повторное открытие файла блокировки, который уже был закоммичен"
-
#: merge.c:41
msgid "failed to read the cache"
msgstr "сбой чтения кэша"
-#: merge.c:94 builtin/checkout.c:376 builtin/checkout.c:587
-#: builtin/clone.c:647
+#: merge.c:94 builtin/am.c:2001 builtin/am.c:2036 builtin/checkout.c:375
+#: builtin/checkout.c:586 builtin/clone.c:715
msgid "unable to write new index file"
msgstr "не удалось записать новый файл индекса"
@@ -700,7 +710,7 @@ msgstr "невозможно прочитать объект %s «%s»"
msgid "blob expected for %s '%s'"
msgstr "ожидается двоичный объект для %s «%s»"
-#: merge-recursive.c:788 builtin/clone.c:306
+#: merge-recursive.c:788 builtin/clone.c:364
#, c-format
msgid "failed to open '%s'"
msgstr "не удалось открыть «%s»"
@@ -908,19 +918,19 @@ msgstr "Не удается записать индекс."
msgid "Cannot commit uninitialized/unreferenced notes tree"
msgstr "Нельзя закоммитить неинициализированное или не имеющее ссылок дерево заметок"
-#: notes-utils.c:82
+#: notes-utils.c:100
#, c-format
msgid "Bad notes.rewriteMode value: '%s'"
msgstr "Неправильное значение notes.rewriteMode: «%s»"
-#: notes-utils.c:92
+#: notes-utils.c:110
#, c-format
msgid "Refusing to rewrite notes in %s (outside of refs/notes/)"
msgstr "Отказ в перезаписи заметок в %s (за пределами refs/notes/)"
#. TRANSLATORS: The first %s is the name of the
#. environment variable, the second %s is its value
-#: notes-utils.c:119
+#: notes-utils.c:137
#, c-format
msgid "Bad %s value: '%s'"
msgstr "Неправильное значение переменной %s: «%s»"
@@ -930,28 +940,28 @@ msgstr "Неправильное значение переменной %s: «%s
msgid "unable to parse object: %s"
msgstr "не удалось разобрать объект: %s"
-#: parse-options.c:546
+#: parse-options.c:563
msgid "..."
msgstr "…"
-#: parse-options.c:564
+#: parse-options.c:581
#, c-format
msgid "usage: %s"
msgstr "использование: %s"
#. TRANSLATORS: the colon here should align with the
#. one in "usage: %s" translation
-#: parse-options.c:568
+#: parse-options.c:585
#, c-format
msgid " or: %s"
msgstr " или: %s"
-#: parse-options.c:571
+#: parse-options.c:588
#, c-format
msgid " %s"
msgstr " %s"
-#: parse-options.c:605
+#: parse-options.c:622
msgid "-NUM"
msgstr "-КОЛИЧЕСТВО"
@@ -1015,7 +1025,7 @@ msgid ""
"Perhaps you forgot to add either ':/' or '.' ?"
msgstr "Не указан шаблон для исключения с помощью :(exclude).\nВозможно, вы забыли «:/» или «.» ?"
-#: pretty.c:968
+#: pretty.c:969
msgid "unable to parse --pretty format"
msgstr "не удалось разобрать формат для --pretty"
@@ -1023,20 +1033,45 @@ msgstr "не удалось разобрать формат для --pretty"
msgid "done"
msgstr "готово"
-#: read-cache.c:1295
+#: read-cache.c:1296
#, c-format
msgid ""
"index.version set, but the value is invalid.\n"
"Using version %i"
msgstr "index.version указан, но значение недействительное.\nИспользую версию %i"
-#: read-cache.c:1305
+#: read-cache.c:1306
#, c-format
msgid ""
"GIT_INDEX_VERSION set, but the value is invalid.\n"
"Using version %i"
msgstr "GIT_INDEX_VERSION указан, но значение недействительное.\nИспользую версию %i"
+#: refs.c:2941 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
+#: builtin/merge.c:983
+#, c-format
+msgid "Could not open '%s' for writing"
+msgstr "Не удалось открыть «%s» для записи"
+
+#: refs.c:3001
+#, c-format
+msgid "could not delete reference %s: %s"
+msgstr "не удалось удалить ссылку %s: %s"
+
+#: refs.c:3004
+#, c-format
+msgid "could not delete references: %s"
+msgstr "не удалось удалить ссылки: %s"
+
+#: refs.c:3013
+#, c-format
+msgid "could not remove reference %s"
+msgstr "не удалось удалить ссылки %s"
+
+#: ref-filter.c:660
+msgid "unable to parse format"
+msgstr "не удалось разобрать формат"
+
#: remote.c:792
#, c-format
msgid "Cannot fetch both %s and %s to %s"
@@ -1156,7 +1191,16 @@ msgstr[3] "Ваша ветка и «%s» разошлись\nи теперь и
msgid " (use \"git pull\" to merge the remote branch into yours)\n"
msgstr " (используйте «git pull», чтобы слить внешнюю ветку в вашу)\n"
-#: revision.c:2366
+#: revision.c:2198
+msgid "your current branch appears to be broken"
+msgstr "похоже, ваша текущая ветка повреждена"
+
+#: revision.c:2201
+#, c-format
+msgid "your current branch '%s' does not have any commits yet"
+msgstr "ваша текущая ветка «%s» еще не содержит ни одного коммита"
+
+#: revision.c:2395
msgid "--first-parent is incompatible with --bisect"
msgstr "опцию --first-parent нельзя использовать одновременно с --bisect"
@@ -1169,257 +1213,251 @@ msgstr "сбой открытия /dev/null"
msgid "dup2(%d,%d) failed"
msgstr "dup2(%d,%d) сбой"
-#: send-pack.c:272
+#: send-pack.c:295
msgid "failed to sign the push certificate"
msgstr "сбой подписания сертификата отправки"
-#: send-pack.c:378
+#: send-pack.c:404
msgid "the receiving end does not support --signed push"
msgstr "принимающая сторона не поддерживает отправку с опцией --signed"
-#: send-pack.c:389
+#: send-pack.c:406
+msgid ""
+"not sending a push certificate since the receiving end does not support "
+"--signed push"
+msgstr "не отправляем сертификат для отправки, так как принимающая сторона не поддерживает отправку с опцией --signed"
+
+#: send-pack.c:418
msgid "the receiving end does not support --atomic push"
msgstr "принимающая сторона не поддерживает отправку с опцией --atomic"
-#: sequencer.c:172 builtin/merge.c:760 builtin/merge.c:871 builtin/merge.c:973
-#: builtin/merge.c:983
-#, c-format
-msgid "Could not open '%s' for writing"
-msgstr "Не удалось открыть «%s» для записи"
-
-#: sequencer.c:174 builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
-#: builtin/merge.c:988
-#, c-format
-msgid "Could not write to '%s'"
-msgstr "Не удалось записать в «%s»"
-
-#: sequencer.c:195
+#: sequencer.c:183
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'"
msgstr "после разрешения конфликтов, пометьте исправленные пути\nс помощью «git add <пути>» или «git rm <пути>»"
-#: sequencer.c:198
+#: sequencer.c:186
msgid ""
"after resolving the conflicts, mark the corrected paths\n"
"with 'git add <paths>' or 'git rm <paths>'\n"
"and commit the result with 'git commit'"
msgstr "после разрешения конфликтов, пометьте исправленные пути\nс помощью «git add <пути>» или «git rm <пути>»\nи сделайте коммит с помощью «git commit»"
-#: sequencer.c:211 sequencer.c:861 sequencer.c:944
+#: sequencer.c:199 sequencer.c:842 sequencer.c:922
#, c-format
msgid "Could not write to %s"
msgstr "Не удалось записать в %s"
-#: sequencer.c:214
+#: sequencer.c:202
#, c-format
msgid "Error wrapping up %s"
msgstr "Ошибка оборачивания %s"
-#: sequencer.c:229
+#: sequencer.c:217
msgid "Your local changes would be overwritten by cherry-pick."
msgstr "Ваши локальные изменение будут перезаписаны отбором лучшего."
-#: sequencer.c:231
+#: sequencer.c:219
msgid "Your local changes would be overwritten by revert."
msgstr "Ваши локальные изменение будут перезаписаны возвратом коммита."
-#: sequencer.c:234
+#: sequencer.c:222
msgid "Commit your changes or stash them to proceed."
msgstr "Сделайте коммит или спрячьте ваши изменения для продолжения."
#. TRANSLATORS: %s will be "revert" or "cherry-pick"
-#: sequencer.c:321
+#: sequencer.c:309
#, c-format
msgid "%s: Unable to write new index file"
msgstr "%s: Не удалось записать файл индекса"
-#: sequencer.c:339
+#: sequencer.c:327
msgid "Could not resolve HEAD commit\n"
msgstr "Не удалось определить HEAD коммит\n"
-#: sequencer.c:359
+#: sequencer.c:347
msgid "Unable to update cache tree\n"
msgstr "Не удалось обновить дерево кэша\n"
-#: sequencer.c:411
+#: sequencer.c:399
#, c-format
msgid "Could not parse commit %s\n"
msgstr "Не удалось разобрать коммит %s\n"
-#: sequencer.c:416
+#: sequencer.c:404
#, c-format
msgid "Could not parse parent commit %s\n"
msgstr "Не удалось разобрать родительскую коммит %s\n"
-#: sequencer.c:482
+#: sequencer.c:469
msgid "Your index file is unmerged."
msgstr "Ваш файл индекса не слит."
-#: sequencer.c:501
+#: sequencer.c:488
#, c-format
msgid "Commit %s is a merge but no -m option was given."
msgstr "Коммит %s — это коммит-слияние, но опция -m не указана."
-#: sequencer.c:509
+#: sequencer.c:496
#, c-format
msgid "Commit %s does not have parent %d"
msgstr "У коммита %s нет предка %d"
-#: sequencer.c:513
+#: sequencer.c:500
#, c-format
msgid "Mainline was specified but commit %s is not a merge."
msgstr "Основная ветка указана, но коммит %s не является слиянием."
#. TRANSLATORS: The first %s will be "revert" or
#. "cherry-pick", the second %s a SHA1
-#: sequencer.c:526
+#: sequencer.c:513
#, c-format
msgid "%s: cannot parse parent commit %s"
msgstr "%s: не удалось разобрать родительский коммит для %s"
-#: sequencer.c:530
+#: sequencer.c:517
#, c-format
msgid "Cannot get commit message for %s"
msgstr "Не удалось получить сообщение коммита для %s"
-#: sequencer.c:616
+#: sequencer.c:603
#, c-format
msgid "could not revert %s... %s"
msgstr "не удалось возвратить коммит %s… %s"
-#: sequencer.c:617
+#: sequencer.c:604
#, c-format
msgid "could not apply %s... %s"
msgstr "не удалось применить коммит %s… %s"
-#: sequencer.c:653
+#: sequencer.c:639
msgid "empty commit set passed"
msgstr "передан пустой набор коммитов"
-#: sequencer.c:661
+#: sequencer.c:647
#, c-format
msgid "git %s: failed to read the index"
msgstr "git %s: сбой чтения индекса"
-#: sequencer.c:665
+#: sequencer.c:651
#, c-format
msgid "git %s: failed to refresh the index"
msgstr "git %s: сбой обновления индекса"
-#: sequencer.c:725
+#: sequencer.c:711
#, c-format
msgid "Cannot %s during a %s"
msgstr "Не удалось %s во время %s"
-#: sequencer.c:747
+#: sequencer.c:733
#, c-format
msgid "Could not parse line %d."
msgstr "Не удалось разобрать строку %d."
-#: sequencer.c:752
+#: sequencer.c:738
msgid "No commits parsed."
msgstr "Коммиты не разобраны."
-#: sequencer.c:765
+#: sequencer.c:750
#, c-format
msgid "Could not open %s"
msgstr "Не удалось открыть %s"
-#: sequencer.c:769
+#: sequencer.c:754
#, c-format
msgid "Could not read %s."
msgstr "Не удалось прочитать %s."
-#: sequencer.c:776
+#: sequencer.c:761
#, c-format
msgid "Unusable instruction sheet: %s"
msgstr "Непригодная для использования карта с инструкциями: %s"
-#: sequencer.c:806
+#: sequencer.c:791
#, c-format
msgid "Invalid key: %s"
msgstr "Недействительный ключ: %s"
-#: sequencer.c:809
+#: sequencer.c:794 builtin/pull.c:47 builtin/pull.c:49
#, c-format
msgid "Invalid value for %s: %s"
msgstr "Неправильное значение %s: %s"
-#: sequencer.c:821
+#: sequencer.c:804
#, c-format
msgid "Malformed options sheet: %s"
msgstr "Испорченная карта с опциями: %s"
-#: sequencer.c:842
+#: sequencer.c:823
msgid "a cherry-pick or revert is already in progress"
msgstr "отбор лучшего или возврат коммита уже выполняется"
-#: sequencer.c:843
+#: sequencer.c:824
msgid "try \"git cherry-pick (--continue | --quit | --abort)\""
msgstr "попробуйте «git cherry-pick (--continue | --quit | --abort)»"
-#: sequencer.c:847
+#: sequencer.c:828
#, c-format
msgid "Could not create sequencer directory %s"
msgstr "Не удалось создать каталог для указателя следования коммитов %s"
-#: sequencer.c:863 sequencer.c:948
+#: sequencer.c:844 sequencer.c:926
#, c-format
msgid "Error wrapping up %s."
msgstr "Ошибка оборачивания %s."
-#: sequencer.c:882 sequencer.c:1018
+#: sequencer.c:863 sequencer.c:996
msgid "no cherry-pick or revert in progress"
msgstr "отбор лучшего или возврат коммита не выполняется"
-#: sequencer.c:884
+#: sequencer.c:865
msgid "cannot resolve HEAD"
msgstr "не удалось определить HEAD"
-#: sequencer.c:886
+#: sequencer.c:867
msgid "cannot abort from a branch yet to be born"
msgstr "нельзя отменить изменения с ветки, которая еще не создана"
-#: sequencer.c:908 builtin/apply.c:4291
+#: sequencer.c:887 builtin/apply.c:4291
#, c-format
msgid "cannot open %s: %s"
msgstr "не удалось открыть %s: %s"
-#: sequencer.c:911
+#: sequencer.c:890
#, c-format
msgid "cannot read %s: %s"
msgstr "не удалось прочитать %s: %s"
-#: sequencer.c:912
+#: sequencer.c:891
msgid "unexpected end of file"
msgstr "неожиданный конец файла"
-#: sequencer.c:918
+#: sequencer.c:897
#, c-format
msgid "stored pre-cherry-pick HEAD file '%s' is corrupt"
msgstr "сохраненный файл с HEAD перед отбором лучшего «%s» поврежден"
-#: sequencer.c:941
+#: sequencer.c:919
#, c-format
msgid "Could not format %s."
msgstr "Не удалось отформатировать %s."
-#: sequencer.c:1086
+#: sequencer.c:1064
#, c-format
msgid "%s: can't cherry-pick a %s"
msgstr "%s: не удалось отобрать %s"
-#: sequencer.c:1089
+#: sequencer.c:1067
#, c-format
msgid "%s: bad revision"
msgstr "%s: плохая редакция"
-#: sequencer.c:1123
+#: sequencer.c:1101
msgid "Can't revert as initial commit"
msgstr "Нельзя возвратить изначальный коммит"
-#: sequencer.c:1124
+#: sequencer.c:1102
msgid "Can't cherry-pick into empty head"
msgstr "Нельзя отобрать лучшее в пустой HEAD"
@@ -1441,30 +1479,30 @@ msgid ""
"running \"git config advice.objectNameWarning false\""
msgstr "Обычно Git не создает ссылки, оканчивающиеся на 40 шестнадцатеричных\nсимволов, потому, что они будут игнорироваться, когда вы просто\nукажете это 40-символьное шестнадцатеричное число. Такие ссылки\nмогли быть созданы по ошибке. Например, с помощью:\n\n git checkout -b $br $(git rev-parse …)\n\n, если «$br» оказался пустым, то ссылка с 40-символьным\nшестнадцатеричным числом будет создана. Пожалуйста, просмотрите эти\nссылки и, возможно, удалите их. Вы можете отключить это сообщение\nзапустив «git config advice.objectNameWarning false»"
-#: submodule.c:64 submodule.c:98
+#: submodule.c:61 submodule.c:95
msgid "Cannot change unmerged .gitmodules, resolve merge conflicts first"
msgstr "Не удалось изменить не слитый .gitmodules, сначала разрешите конфликты"
-#: submodule.c:68 submodule.c:102
+#: submodule.c:65 submodule.c:99
#, c-format
msgid "Could not find section in .gitmodules where path=%s"
msgstr "Не удалось найти раздел в .gitmodules, где путь равен %s"
-#: submodule.c:76
+#: submodule.c:73
#, c-format
msgid "Could not update .gitmodules entry %s"
msgstr " Не удалось обновить .gitmodules запись %s"
-#: submodule.c:109
+#: submodule.c:106
#, c-format
msgid "Could not remove .gitmodules entry for %s"
msgstr "Не удалось удалить запись в .gitmodules для %s"
-#: submodule.c:120
+#: submodule.c:117
msgid "staging updated .gitmodules failed"
msgstr "сбой индексирования обновленного .gitmodules"
-#: submodule.c:1115
+#: submodule.c:1045
#, c-format
msgid "Could not set core.worktree in %s"
msgstr "Не удалось установить core.worktree в %s"
@@ -1494,6 +1532,11 @@ msgstr "не удалось прочитать входной файл «%s»"
msgid "could not read from stdin"
msgstr "не удалось прочитать из стандартного ввода"
+#: transport-helper.c:1025
+#, c-format
+msgid "Could not read ref %s"
+msgstr "Не удалось прочитать ссылку %s"
+
#: unpack-trees.c:203
msgid "Checking out files"
msgstr "Распаковка файлов"
@@ -1527,368 +1570,423 @@ msgstr "неправильный номер порта"
msgid "invalid '..' path segment"
msgstr "неправильная часть пути «..»"
-#: wrapper.c:523
+#: wrapper.c:219 wrapper.c:362
+#, c-format
+msgid "could not open '%s' for reading and writing"
+msgstr "не удалось открыть «%s» для чтения и записи"
+
+#: wrapper.c:221 wrapper.c:364
+#, c-format
+msgid "could not open '%s' for writing"
+msgstr "не удалось открыть «%s» для записи"
+
+#: wrapper.c:223 wrapper.c:366 builtin/am.c:337 builtin/commit.c:1688
+#: builtin/merge.c:1076 builtin/pull.c:380
+#, c-format
+msgid "could not open '%s' for reading"
+msgstr "не удалось открыть «%s» для чтения"
+
+#: wrapper.c:579
#, c-format
msgid "unable to access '%s': %s"
msgstr "«%s» недоступно: %s"
-#: wrapper.c:544
+#: wrapper.c:600
#, c-format
msgid "unable to access '%s'"
msgstr "«%s» недоступно"
-#: wrapper.c:555
+#: wrapper.c:611
#, c-format
msgid "unable to look up current user in the passwd file: %s"
msgstr "не удалось запросить текущего пользователя в файле passwd: %s"
-#: wrapper.c:556
+#: wrapper.c:612
msgid "no such user"
msgstr "нет такого пользователя"
-#: wrapper.c:564
+#: wrapper.c:620
msgid "unable to get current working directory"
msgstr "не удалось получить текущий рабочий каталог"
-#: wrapper.c:575
+#: wrapper.c:631
#, c-format
msgid "could not open %s for writing"
msgstr "не удалось открыть «%s» для записи"
-#: wrapper.c:587
+#: wrapper.c:642 builtin/am.c:424
#, c-format
msgid "could not write to %s"
msgstr "не удалось записать в %s"
-#: wrapper.c:593
+#: wrapper.c:648
#, c-format
msgid "could not close %s"
msgstr "не удалось закрыть %s"
-#: wt-status.c:150
+#: wt-status.c:149
msgid "Unmerged paths:"
msgstr "Не слитые пути:"
-#: wt-status.c:177 wt-status.c:204
+#: wt-status.c:176 wt-status.c:203
#, c-format
msgid " (use \"git reset %s <file>...\" to unstage)"
msgstr " (используйте «git reset %s <файл>…», чтобы убрать из индекса)"
-#: wt-status.c:179 wt-status.c:206
+#: wt-status.c:178 wt-status.c:205
msgid " (use \"git rm --cached <file>...\" to unstage)"
msgstr " (используйте «git rm --cached <файл>…», чтобы убрать из индекса)"
-#: wt-status.c:183
+#: wt-status.c:182
msgid " (use \"git add <file>...\" to mark resolution)"
msgstr " (используйте «git add <файл>…», чтобы пометить разрешение конфликта)"
-#: wt-status.c:185 wt-status.c:189
+#: wt-status.c:184 wt-status.c:188
msgid " (use \"git add/rm <file>...\" as appropriate to mark resolution)"
msgstr " (используйте «git add/rm <файл>…», чтобы пометить выбранное разрешение конфликта)"
-#: wt-status.c:187
+#: wt-status.c:186
msgid " (use \"git rm <file>...\" to mark resolution)"
msgstr " (используйте «git rm <файл>…», чтобы пометить разрешение конфликта)"
-#: wt-status.c:198 wt-status.c:881
+#: wt-status.c:197 wt-status.c:880
msgid "Changes to be committed:"
msgstr "Изменения, которые будут включены в коммит:"
-#: wt-status.c:216 wt-status.c:890
+#: wt-status.c:215 wt-status.c:889
msgid "Changes not staged for commit:"
msgstr "Изменения, которые не в индексе для коммита:"
-#: wt-status.c:220
+#: wt-status.c:219
msgid " (use \"git add <file>...\" to update what will be committed)"
msgstr " (используйте «git add <файл>…», чтобы добавить файл в индекс)"
-#: wt-status.c:222
+#: wt-status.c:221
msgid " (use \"git add/rm <file>...\" to update what will be committed)"
msgstr " (используйте «git add/rm <файл>…», чтобы добавить или удалить файл из индекса)"
-#: wt-status.c:223
+#: wt-status.c:222
msgid ""
" (use \"git checkout -- <file>...\" to discard changes in working "
"directory)"
msgstr " (используйте «git checkout -- <файл>…», чтобы отменить изменения\n в рабочем каталоге)"
-#: wt-status.c:225
+#: wt-status.c:224
msgid " (commit or discard the untracked or modified content in submodules)"
msgstr " (сделайте коммит или отмените изменения в неотслеживаемом или измененном содержимом в подмодулях)"
-#: wt-status.c:237
+#: wt-status.c:236
#, c-format
msgid " (use \"git %s <file>...\" to include in what will be committed)"
msgstr " (используйте «git %s <файл>…», чтобы добавить в то, что будет включено в коммит)"
-#: wt-status.c:252
+#: wt-status.c:251
msgid "both deleted:"
msgstr "оба удалены:"
-#: wt-status.c:254
+#: wt-status.c:253
msgid "added by us:"
msgstr "добавлено нами:"
-#: wt-status.c:256
+#: wt-status.c:255
msgid "deleted by them:"
msgstr "удалено ими:"
-#: wt-status.c:258
+#: wt-status.c:257
msgid "added by them:"
msgstr "добавлено ими:"
-#: wt-status.c:260
+#: wt-status.c:259
msgid "deleted by us:"
msgstr "удалено нами:"
-#: wt-status.c:262
+#: wt-status.c:261
msgid "both added:"
msgstr "оба добавлены:"
-#: wt-status.c:264
+#: wt-status.c:263
msgid "both modified:"
msgstr "оба измены:"
-#: wt-status.c:266
+#: wt-status.c:265
#, c-format
msgid "bug: unhandled unmerged status %x"
msgstr "ошибка: необработанный статус не слитых изменений %x"
-#: wt-status.c:274
+#: wt-status.c:273
msgid "new file:"
msgstr "новый файл:"
-#: wt-status.c:276
+#: wt-status.c:275
msgid "copied:"
msgstr "скопировано:"
-#: wt-status.c:278
+#: wt-status.c:277
msgid "deleted:"
msgstr "удалено:"
-#: wt-status.c:280
+#: wt-status.c:279
msgid "modified:"
msgstr "изменено:"
-#: wt-status.c:282
+#: wt-status.c:281
msgid "renamed:"
msgstr "переименовано:"
-#: wt-status.c:284
+#: wt-status.c:283
msgid "typechange:"
msgstr "изменен тип:"
-#: wt-status.c:286
+#: wt-status.c:285
msgid "unknown:"
msgstr "неизвестно:"
-#: wt-status.c:288
+#: wt-status.c:287
msgid "unmerged:"
msgstr "не слитые:"
-#: wt-status.c:370
+#: wt-status.c:369
msgid "new commits, "
msgstr "новые коммиты, "
-#: wt-status.c:372
+#: wt-status.c:371
msgid "modified content, "
msgstr "изменено содержимое, "
-#: wt-status.c:374
+#: wt-status.c:373
msgid "untracked content, "
msgstr "неотслеживаемое содержимое, "
-#: wt-status.c:391
+#: wt-status.c:390
#, c-format
msgid "bug: unhandled diff status %c"
msgstr "ошибка: необработанный статус изменений %c"
-#: wt-status.c:755
+#: wt-status.c:754
msgid "Submodules changed but not updated:"
msgstr "Измененные, но не обновленные подмодули:"
-#: wt-status.c:757
+#: wt-status.c:756
msgid "Submodule changes to be committed:"
msgstr "Изменения в подмодулях, которые будут закоммичены:"
-#: wt-status.c:838
+#: wt-status.c:837
msgid ""
"Do not touch the line above.\n"
"Everything below will be removed."
msgstr "Не трогайте строку выше этой.\nВсё, что ниже — будет удалено."
-#: wt-status.c:949
+#: wt-status.c:948
msgid "You have unmerged paths."
msgstr "У вас есть не слитые пути."
-#: wt-status.c:952
+#: wt-status.c:951
msgid " (fix conflicts and run \"git commit\")"
msgstr " (разрешите конфликты, затем запустите «git commit»)"
-#: wt-status.c:955
+#: wt-status.c:954
msgid "All conflicts fixed but you are still merging."
msgstr "Все конфликты исправлены, но вы все еще в процессе слияния."
-#: wt-status.c:958
+#: wt-status.c:957
msgid " (use \"git commit\" to conclude merge)"
msgstr " (используйте «git commit», чтобы завершить слияние)"
-#: wt-status.c:968
+#: wt-status.c:967
msgid "You are in the middle of an am session."
msgstr "Вы в процессе сессии am."
-#: wt-status.c:971
+#: wt-status.c:970
msgid "The current patch is empty."
msgstr "Текущий патч пустой."
-#: wt-status.c:975
+#: wt-status.c:974
msgid " (fix conflicts and then run \"git am --continue\")"
msgstr " (разрешите конфликты, затем запустите «git am --continue»)"
-#: wt-status.c:977
+#: wt-status.c:976
msgid " (use \"git am --skip\" to skip this patch)"
msgstr " (используйте «git am --skip», чтобы пропустить этот патч)"
-#: wt-status.c:979
+#: wt-status.c:978
msgid " (use \"git am --abort\" to restore the original branch)"
msgstr " (используйте «git am --abort», чтобы восстановить оригинальную ветку)"
-#: wt-status.c:1039 wt-status.c:1056
+#: wt-status.c:1105
+msgid "No commands done."
+msgstr "Команды не выполнены."
+
+#: wt-status.c:1108
+#, c-format
+msgid "Last command done (%d command done):"
+msgid_plural "Last commands done (%d commands done):"
+msgstr[0] "Последняя команда выполнена (%d команд выполнено):"
+msgstr[1] "Последняя команда выполнена (%d команд выполнено):"
+msgstr[2] "Последняя команда выполнена (%d команд выполнено):"
+msgstr[3] "Последняя команда выполнена (%d команд выполнено):"
+
+#: wt-status.c:1119
+#, c-format
+msgid " (see more in file %s)"
+msgstr " (смотрите дополнительно в файле %s)"
+
+#: wt-status.c:1124
+msgid "No commands remaining."
+msgstr "Команд больше не осталось."
+
+#: wt-status.c:1127
+#, c-format
+msgid "Next command to do (%d remaining command):"
+msgid_plural "Next commands to do (%d remaining commands):"
+msgstr[0] "Следующая команда для выполнения (%d команда осталась):"
+msgstr[1] "Следующая команда для выполнения (%d команды осталось):"
+msgstr[2] "Следующая команда для выполнения (%d команд осталось):"
+msgstr[3] "Следующая команда для выполнения (%d команд осталось):"
+
+#: wt-status.c:1135
+msgid " (use \"git rebase --edit-todo\" to view and edit)"
+msgstr " (используйте «git rebase --edit-todo», чтобы просмотреть и изменить)"
+
+#: wt-status.c:1148
#, c-format
msgid "You are currently rebasing branch '%s' on '%s'."
msgstr "Вы сейчас перемещаете ветку «%s» над «%s»."
-#: wt-status.c:1044 wt-status.c:1061
+#: wt-status.c:1153
msgid "You are currently rebasing."
msgstr "Вы сейчас перемещаете ветку."
-#: wt-status.c:1047
+#: wt-status.c:1167
msgid " (fix conflicts and then run \"git rebase --continue\")"
msgstr " (разрешите конфликты, затем запустите «git rebase --continue»)"
-#: wt-status.c:1049
+#: wt-status.c:1169
msgid " (use \"git rebase --skip\" to skip this patch)"
msgstr " (используйте «git rebase --skip», чтобы пропустить этот патч)"
-#: wt-status.c:1051
+#: wt-status.c:1171
msgid " (use \"git rebase --abort\" to check out the original branch)"
msgstr " (используйте «git rebase --abort», чтобы перейти на оригинальную ветку)"
-#: wt-status.c:1064
+#: wt-status.c:1177
msgid " (all conflicts fixed: run \"git rebase --continue\")"
msgstr " (все конфликты разрешены: запустите «git rebase --continue»)"
-#: wt-status.c:1068
+#: wt-status.c:1181
#, c-format
msgid ""
"You are currently splitting a commit while rebasing branch '%s' on '%s'."
msgstr "Вы сейчас разделяете коммит при перемещении ветки «%s» над «%s»."
-#: wt-status.c:1073
+#: wt-status.c:1186
msgid "You are currently splitting a commit during a rebase."
msgstr "Вы сейчас разделяете коммит при перемещении ветки."
-#: wt-status.c:1076
+#: wt-status.c:1189
msgid " (Once your working directory is clean, run \"git rebase --continue\")"
msgstr "(Как только ваш рабочий каталог будет чистый, запустите «git rebase --continue»)"
-#: wt-status.c:1080
+#: wt-status.c:1193
#, c-format
msgid "You are currently editing a commit while rebasing branch '%s' on '%s'."
msgstr "Вы сейчас редактируете коммит при перемещении ветки «%s» над «%s»."
-#: wt-status.c:1085
+#: wt-status.c:1198
msgid "You are currently editing a commit during a rebase."
msgstr "Вы сейчас редактируете коммит при перемещении ветки."
-#: wt-status.c:1088
+#: wt-status.c:1201
msgid " (use \"git commit --amend\" to amend the current commit)"
msgstr " (используйте «git commit --amend», чтобы исправить текущий коммит)"
-#: wt-status.c:1090
+#: wt-status.c:1203
msgid " (use \"git rebase --continue\" once you are satisfied with your changes)"
msgstr " (используйте «git rebase --continue», когда будете довольны изменениями)"
-#: wt-status.c:1100
+#: wt-status.c:1213
#, c-format
msgid "You are currently cherry-picking commit %s."
msgstr "Вы сейчас отбираете лучший коммит %s."
-#: wt-status.c:1105
+#: wt-status.c:1218
msgid " (fix conflicts and run \"git cherry-pick --continue\")"
msgstr " (разрешите конфликты, затем запустите «git cherry-pick --continue»)"
-#: wt-status.c:1108
+#: wt-status.c:1221
msgid " (all conflicts fixed: run \"git cherry-pick --continue\")"
msgstr " (все конфликты разрешены: запустите «git cherry-pick --continue»)"
-#: wt-status.c:1110
+#: wt-status.c:1223
msgid " (use \"git cherry-pick --abort\" to cancel the cherry-pick operation)"
msgstr " (используйте «git cherry-pick --abort», чтобы отменить операцию отбора лучшего)"
-#: wt-status.c:1119
+#: wt-status.c:1232
#, c-format
msgid "You are currently reverting commit %s."
msgstr "Вы сейчас возвращаете коммит %s."
-#: wt-status.c:1124
+#: wt-status.c:1237
msgid " (fix conflicts and run \"git revert --continue\")"
msgstr " (разрешите конфликты, затем запустите «git revert --continue»)"
-#: wt-status.c:1127
+#: wt-status.c:1240
msgid " (all conflicts fixed: run \"git revert --continue\")"
msgstr " (все конфликты разрешены: запустите «git revert --continue»)"
-#: wt-status.c:1129
+#: wt-status.c:1242
msgid " (use \"git revert --abort\" to cancel the revert operation)"
msgstr " (используйте «git revert --abort», чтобы отменить операцию возврата)"
-#: wt-status.c:1140
+#: wt-status.c:1253
#, c-format
msgid "You are currently bisecting, started from branch '%s'."
msgstr "Вы сейчас в процессе двоичного поиска, начатого с ветки «%s»."
-#: wt-status.c:1144
+#: wt-status.c:1257
msgid "You are currently bisecting."
msgstr "Вы сейчас в процессе двоичного поиска."
-#: wt-status.c:1147
+#: wt-status.c:1260
msgid " (use \"git bisect reset\" to get back to the original branch)"
msgstr " (используйте «git bisect reset», чтобы вернуться на исходную ветку)"
-#: wt-status.c:1324
+#: wt-status.c:1437
msgid "On branch "
msgstr "На ветке "
-#: wt-status.c:1331
+#: wt-status.c:1445
+msgid "interactive rebase in progress; onto "
+msgstr "интерактивное перемещение в процессе; над "
+
+#: wt-status.c:1447
msgid "rebase in progress; onto "
msgstr "перемещение в процессе; над "
-#: wt-status.c:1336
+#: wt-status.c:1452
msgid "HEAD detached at "
msgstr "HEAD отделен на "
-#: wt-status.c:1338
+#: wt-status.c:1454
msgid "HEAD detached from "
msgstr "HEAD отделен начиная с "
-#: wt-status.c:1341
+#: wt-status.c:1457
msgid "Not currently on any branch."
msgstr "Сейчас ни на одной из веток"
-#: wt-status.c:1358
+#: wt-status.c:1474
msgid "Initial commit"
msgstr "Начальный коммит"
-#: wt-status.c:1372
+#: wt-status.c:1488
msgid "Untracked files"
msgstr "Неотслеживаемые файлы"
-#: wt-status.c:1374
+#: wt-status.c:1490
msgid "Ignored files"
msgstr "Игнорируемые файлы"
-#: wt-status.c:1378
+#: wt-status.c:1494
#, c-format
msgid ""
"It took %.2f seconds to enumerate untracked files. 'status -uno'\n"
@@ -1896,78 +1994,78 @@ msgid ""
"new files yourself (see 'git help status')."
msgstr "%.2f секунды занял вывод списка неотслеживаемых файлов. «status -uno» возможно может ускорить это, но будьте внимательны, и не забудьте добавить новые файлы вручную (смотрите «git help status» для подробностей)."
-#: wt-status.c:1384
+#: wt-status.c:1500
#, c-format
msgid "Untracked files not listed%s"
msgstr "Неотслеживаемые файлы не показаны%s"
-#: wt-status.c:1386
+#: wt-status.c:1502
msgid " (use -u option to show untracked files)"
msgstr "(используйте опцию «-u», чтобы показать неотслеживаемые файлы)"
-#: wt-status.c:1392
+#: wt-status.c:1508
msgid "No changes"
msgstr "Нет изменений"
-#: wt-status.c:1397
+#: wt-status.c:1513
#, c-format
msgid "no changes added to commit (use \"git add\" and/or \"git commit -a\")\n"
msgstr "нет изменений добавленных для коммита\n(используйте «git add» и/или «git commit -a»)\n"
-#: wt-status.c:1400
+#: wt-status.c:1516
#, c-format
msgid "no changes added to commit\n"
msgstr "нет изменений добавленных для коммита\n"
-#: wt-status.c:1403
+#: wt-status.c:1519
#, c-format
msgid ""
"nothing added to commit but untracked files present (use \"git add\" to "
"track)\n"
msgstr "ничего не добавлено в коммит, но есть неотслеживаемые файлы (используйте \"git add\", чтобы отслеживать их)\n"
-#: wt-status.c:1406
+#: wt-status.c:1522
#, c-format
msgid "nothing added to commit but untracked files present\n"
msgstr "ничего не добавлено в коммит, но есть неотслеживаемые файлы\n"
-#: wt-status.c:1409
+#: wt-status.c:1525
#, c-format
msgid "nothing to commit (create/copy files and use \"git add\" to track)\n"
msgstr "нечего коммитить (создайте/скопируйте файлы, затем запустите «git add», чтобы отслеживать их)\n"
-#: wt-status.c:1412 wt-status.c:1417
+#: wt-status.c:1528 wt-status.c:1533
#, c-format
msgid "nothing to commit\n"
msgstr "нечего коммитить\n"
-#: wt-status.c:1415
+#: wt-status.c:1531
#, c-format
msgid "nothing to commit (use -u to show untracked files)\n"
msgstr "нечего коммитить (используйте опцию «-u», чтобы показать неотслеживаемые файлы)\n"
-#: wt-status.c:1419
+#: wt-status.c:1535
#, c-format
msgid "nothing to commit, working directory clean\n"
msgstr "нечего коммитить, нет изменений в рабочем каталоге\n"
-#: wt-status.c:1528
+#: wt-status.c:1644
msgid "HEAD (no branch)"
msgstr "HEAD (нет ветки)"
-#: wt-status.c:1534
+#: wt-status.c:1650
msgid "Initial commit on "
msgstr "Начальный коммит на "
-#: wt-status.c:1561
+#: wt-status.c:1677
msgid "gone"
msgstr "исчез"
-#: wt-status.c:1563 wt-status.c:1571
+#: wt-status.c:1679 wt-status.c:1687
msgid "behind "
msgstr "позади"
-#: compat/precompose_utf8.c:55 builtin/clone.c:345
+#: compat/precompose_utf8.c:55 builtin/clone.c:403
#, c-format
msgid "failed to unlink '%s'"
msgstr "сбой отсоединения «%s»"
@@ -1994,7 +2092,7 @@ msgstr "удалить «%s»\n"
msgid "Unstaged changes after refreshing the index:"
msgstr "Непроиндексированные изменения после обновления индекса:"
-#: builtin/add.c:194 builtin/rev-parse.c:796
+#: builtin/add.c:194 builtin/rev-parse.c:799
msgid "Could not read the index"
msgstr "Не удалось прочитать индекс"
@@ -2029,15 +2127,15 @@ msgstr "Не удалось применить «%s»"
msgid "The following paths are ignored by one of your .gitignore files:\n"
msgstr "Следующие пути игнорируются одним из ваших файлов .gitignore:\n"
-#: builtin/add.c:249 builtin/clean.c:874 builtin/fetch.c:107 builtin/mv.c:110
-#: builtin/prune-packed.c:55 builtin/push.c:508 builtin/remote.c:1369
-#: builtin/rm.c:268
+#: builtin/add.c:249 builtin/clean.c:896 builtin/fetch.c:108 builtin/mv.c:110
+#: builtin/prune-packed.c:55 builtin/pull.c:182 builtin/push.c:545
+#: builtin/remote.c:1339 builtin/rm.c:268 builtin/send-pack.c:162
msgid "dry run"
msgstr "пробный запуск"
#: builtin/add.c:250 builtin/apply.c:4580 builtin/check-ignore.c:19
-#: builtin/commit.c:1322 builtin/count-objects.c:63 builtin/fsck.c:616
-#: builtin/log.c:1617 builtin/mv.c:109 builtin/read-tree.c:114
+#: builtin/commit.c:1321 builtin/count-objects.c:63 builtin/fsck.c:636
+#: builtin/log.c:1641 builtin/mv.c:109 builtin/read-tree.c:114
msgid "be verbose"
msgstr "быть многословнее"
@@ -2045,7 +2143,7 @@ msgstr "быть многословнее"
msgid "interactive picking"
msgstr "интерактивный выбор"
-#: builtin/add.c:253 builtin/checkout.c:1221 builtin/reset.c:286
+#: builtin/add.c:253 builtin/checkout.c:1152 builtin/reset.c:286
msgid "select hunks interactively"
msgstr "интерактивный выбор блоков"
@@ -2112,15 +2210,403 @@ msgstr "Ничего не указано, ничего не добавлено.\
msgid "Maybe you wanted to say 'git add .'?\n"
msgstr "Возможно, вы имели в виду «git add .»?\n"
-#: builtin/add.c:364 builtin/check-ignore.c:172 builtin/clean.c:918
-#: builtin/commit.c:335 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
+#: builtin/add.c:364 builtin/check-ignore.c:172 builtin/clean.c:940
+#: builtin/commit.c:336 builtin/mv.c:130 builtin/reset.c:235 builtin/rm.c:298
msgid "index file corrupt"
msgstr "файл индекса поврежден"
-#: builtin/add.c:447 builtin/apply.c:4678 builtin/mv.c:279 builtin/rm.c:430
+#: builtin/add.c:445 builtin/apply.c:4678 builtin/mv.c:279 builtin/rm.c:430
msgid "Unable to write new index file"
msgstr "Не удалось записать новый файл индекса"
+#: builtin/am.c:41
+#, c-format
+msgid "could not stat %s"
+msgstr "не удалось выполнить stat для %s"
+
+#: builtin/am.c:270 builtin/am.c:1345 builtin/commit.c:737
+#: builtin/merge.c:1079
+#, c-format
+msgid "could not read '%s'"
+msgstr "не удалось прочитать «%s»"
+
+#: builtin/am.c:444
+msgid "could not parse author script"
+msgstr "не удалось разобрать сценарий авторства"
+
+#: builtin/am.c:521
+#, c-format
+msgid "'%s' was deleted by the applypatch-msg hook"
+msgstr "«%s» был удален перехватчиком applypatch-msg"
+
+#: builtin/am.c:562 builtin/notes.c:300
+#, c-format
+msgid "Malformed input line: '%s'."
+msgstr "Плохая строка ввода: «%s»."
+
+#: builtin/am.c:599 builtin/notes.c:315
+#, c-format
+msgid "Failed to copy notes from '%s' to '%s'"
+msgstr "Не удалось скопировать заметку из «%s» в «%s»"
+
+#: builtin/am.c:625
+msgid "fseek failed"
+msgstr "сбой при выполнении fseek"
+
+#: builtin/am.c:786 builtin/am.c:874
+#, c-format
+msgid "could not open '%s' for reading: %s"
+msgstr "не удалось открыть «%s» для чтения: %s"
+
+#: builtin/am.c:793
+#, c-format
+msgid "could not open '%s' for writing: %s"
+msgstr "не удалось открыть «%s» для записи: %s"
+
+#: builtin/am.c:802
+#, c-format
+msgid "could not parse patch '%s'"
+msgstr "не удалось разобрать патч «%s»"
+
+#: builtin/am.c:867
+msgid "Only one StGIT patch series can be applied at once"
+msgstr "Только серия патчей StGIT может быть применена за раз"
+
+#: builtin/am.c:915
+msgid "invalid timestamp"
+msgstr "недопустимая метка даты/времени"
+
+#: builtin/am.c:918 builtin/am.c:926
+msgid "invalid Date line"
+msgstr "недопустимая строка даты"
+
+#: builtin/am.c:923
+msgid "invalid timezone offset"
+msgstr "недопустимое смещение часового пояса"
+
+#: builtin/am.c:1010
+msgid "Patch format detection failed."
+msgstr "Сбой определения формата патча."
+
+#: builtin/am.c:1015 builtin/clone.c:368
+#, c-format
+msgid "failed to create directory '%s'"
+msgstr "не удалось создать каталог «%s»"
+
+#: builtin/am.c:1019
+msgid "Failed to split patches."
+msgstr "Не удалось разделить патчи на части."
+
+#: builtin/am.c:1151 builtin/commit.c:362
+msgid "unable to write index file"
+msgstr "не удалось записать индекс"
+
+#: builtin/am.c:1202
+#, c-format
+msgid "When you have resolved this problem, run \"%s --continue\"."
+msgstr "Когда вы устраните эту проблему, запустите «%s --continue»."
+
+#: builtin/am.c:1203
+#, c-format
+msgid "If you prefer to skip this patch, run \"%s --skip\" instead."
+msgstr "Если вы хотите пропустить этот патч, то запустите «%s --skip»."
+
+#: builtin/am.c:1204
+#, c-format
+msgid "To restore the original branch and stop patching, run \"%s --abort\"."
+msgstr "Чтобы вернуться на предыдущую ветку и остановить применение изменений, запустите «%s --abort»."
+
+#: builtin/am.c:1339
+msgid "Patch is empty. Was it split wrong?"
+msgstr "Патч пуст. Возможно, он был неправильно разделён?"
+
+#: builtin/am.c:1413 builtin/log.c:1345
+#, c-format
+msgid "invalid ident line: %s"
+msgstr "неправильная строка идентификации: %s"
+
+#: builtin/am.c:1440
+#, c-format
+msgid "unable to parse commit %s"
+msgstr "не удалось разобрать коммит %s"
+
+#: builtin/am.c:1614
+msgid "Repository lacks necessary blobs to fall back on 3-way merge."
+msgstr "В репозитории отсутствуют двоичные объекты, необходимые для отката к трехходовому слиянию."
+
+#: builtin/am.c:1616
+msgid "Using index info to reconstruct a base tree..."
+msgstr "Использую индекс для реконструкции базового дерева…"
+
+#: builtin/am.c:1635
+msgid ""
+"Did you hand edit your patch?\n"
+"It does not apply to blobs recorded in its index."
+msgstr "Вы вручную изменяли патч?\nОн не накладывается без ошибок на двоичные объекты, записанные в его заголовке."
+
+#: builtin/am.c:1641
+msgid "Falling back to patching base and 3-way merge..."
+msgstr "Откат к применению изменений к базовому коммиту с помощью трехходового слияния…"
+
+#: builtin/am.c:1666
+msgid "Failed to merge in the changes."
+msgstr "Не удалось слить изменения."
+
+#: builtin/am.c:1691 builtin/merge.c:632
+msgid "git write-tree failed to write a tree"
+msgstr "git write-tree не удалось записать дерево"
+
+#: builtin/am.c:1698
+msgid "applying to an empty history"
+msgstr "применение к пустой истории"
+
+#: builtin/am.c:1711 builtin/commit.c:1752 builtin/merge.c:829
+#: builtin/merge.c:854
+msgid "failed to write commit object"
+msgstr "сбой записи объекта коммита"
+
+#: builtin/am.c:1743 builtin/am.c:1747
+#, c-format
+msgid "cannot resume: %s does not exist."
+msgstr "нельзя продолжнить: %s не существует "
+
+#: builtin/am.c:1763
+msgid "cannot be interactive without stdin connected to a terminal."
+msgstr "не удалось использовать интерактивное поведение, без stdin подключенного к терминалу."
+
+#: builtin/am.c:1768
+msgid "Commit Body is:"
+msgstr "Тело коммита:"
+
+#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
+#. in your translation. The program will only accept English
+#. input at this point.
+#: builtin/am.c:1778
+msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all: "
+msgstr "Применить? [y] - да/[n] - нет/[e] - редактировать/[v] - просмотреть патч/[a] - применить всё: "
+
+#: builtin/am.c:1828
+#, c-format
+msgid "Dirty index: cannot apply patches (dirty: %s)"
+msgstr "Индекс не пустой: нельзя применять патчи (в индексе: %s)"
+
+#: builtin/am.c:1863 builtin/am.c:1934
+#, c-format
+msgid "Applying: %.*s"
+msgstr "Применение: %.*s"
+
+#: builtin/am.c:1879
+msgid "No changes -- Patch already applied."
+msgstr "Нет изменений — Патч уже применен."
+
+#: builtin/am.c:1887
+#, c-format
+msgid "Patch failed at %s %.*s"
+msgstr "Ошибка применения изменений на %s %.*s"
+
+#: builtin/am.c:1893
+#, c-format
+msgid "The copy of the patch that failed is found in: %s"
+msgstr "Копию изменений, которые не удалось применить, вы можете найти в: %s"
+
+#: builtin/am.c:1937
+msgid ""
+"No changes - did you forget to use 'git add'?\n"
+"If there is nothing left to stage, chances are that something else\n"
+"already introduced the same changes; you might want to skip this patch."
+msgstr "Нет изменений — возможно, вы забыли вызвать «git add»?\nЕсли ничего не осталось для индексации, то, скорее всего, что-то другое уже сделало те же изменения; возможно, вам следует пропустить этот патч."
+
+#: builtin/am.c:1944
+msgid ""
+"You still have unmerged paths in your index.\n"
+"Did you forget to use 'git add'?"
+msgstr "У вас все еще имеются не слитые пути в индексе.\nВозможно, вы забыли вызвать «git add»?"
+
+#: builtin/am.c:2052 builtin/am.c:2056 builtin/am.c:2068 builtin/reset.c:308
+#: builtin/reset.c:316
+#, c-format
+msgid "Could not parse object '%s'."
+msgstr "Не удалось разобрать объект «%s»."
+
+#: builtin/am.c:2104
+msgid "failed to clean index"
+msgstr "не удалось очистить индекс"
+
+#: builtin/am.c:2138
+msgid ""
+"You seem to have moved HEAD since the last 'am' failure.\n"
+"Not rewinding to ORIG_HEAD"
+msgstr "Похоже, что вы переместили HEAD с момента последней ошибки выполнения «am».\nПеремотка на ORIG_HEAD не выполняется"
+
+#: builtin/am.c:2199
+#, c-format
+msgid "Invalid value for --patch-format: %s"
+msgstr "Неправильное значение для --patch-format: %s"
+
+#: builtin/am.c:2221
+msgid "git am [options] [(<mbox>|<Maildir>)...]"
+msgstr "git am [опции] [(<mbox>|<Maildir>)…]"
+
+#: builtin/am.c:2222
+msgid "git am [options] (--continue | --skip | --abort)"
+msgstr "git am [опции] (--continue | --skip | --abort)"
+
+#: builtin/am.c:2228
+msgid "run interactively"
+msgstr "запустить в интерактивном режиме"
+
+#: builtin/am.c:2230
+msgid "historical option -- no-op"
+msgstr "историческая опция — ничего не делает"
+
+#: builtin/am.c:2232
+msgid "allow fall back on 3way merging if needed"
+msgstr "разрешить откатиться к трехходовому слиянию, если нужно"
+
+#: builtin/am.c:2233 builtin/init-db.c:509 builtin/prune-packed.c:57
+#: builtin/repack.c:171
+msgid "be quiet"
+msgstr "тихий режим"
+
+#: builtin/am.c:2235
+msgid "add a Signed-off-by line to the commit message"
+msgstr "добавить строку Signed-off-by к сообщению коммита"
+
+#: builtin/am.c:2238
+msgid "recode into utf8 (default)"
+msgstr "перекодировать в utf8 (по умолчанию)"
+
+#: builtin/am.c:2240
+msgid "pass -k flag to git-mailinfo"
+msgstr "передать флаг -k в git-mailinfo"
+
+#: builtin/am.c:2242
+msgid "pass -b flag to git-mailinfo"
+msgstr "передать флаг -b в git-mailinfo"
+
+#: builtin/am.c:2244
+msgid "pass -m flag to git-mailinfo"
+msgstr "передать флаг -m в git-mailinfo"
+
+#: builtin/am.c:2246
+msgid "pass --keep-cr flag to git-mailsplit for mbox format"
+msgstr "передать флаг --keep-cr в git-mailsplit для формата mbox"
+
+#: builtin/am.c:2249
+msgid "do not pass --keep-cr flag to git-mailsplit independent of am.keepcr"
+msgstr "не передавать --keep-cr флаг в git-mailsplit вне зависимости от am.keepcr"
+
+#: builtin/am.c:2252
+msgid "strip everything before a scissors line"
+msgstr "обрезать все до строки обрезки"
+
+#: builtin/am.c:2253 builtin/apply.c:4563
+msgid "action"
+msgstr "действие"
+
+#: builtin/am.c:2254 builtin/am.c:2257 builtin/am.c:2260 builtin/am.c:2263
+#: builtin/am.c:2266 builtin/am.c:2269 builtin/am.c:2272 builtin/am.c:2275
+#: builtin/am.c:2281
+msgid "pass it through git-apply"
+msgstr "передать его в git-apply"
+
+#: builtin/am.c:2262 builtin/apply.c:4587
+msgid "root"
+msgstr "корень"
+
+#: builtin/am.c:2265 builtin/am.c:2268 builtin/apply.c:4525
+#: builtin/apply.c:4528 builtin/clone.c:85 builtin/fetch.c:93
+#: builtin/pull.c:167
+msgid "path"
+msgstr "путь"
+
+#: builtin/am.c:2271 builtin/fmt-merge-msg.c:669 builtin/fmt-merge-msg.c:672
+#: builtin/grep.c:698 builtin/merge.c:198 builtin/pull.c:127
+#: builtin/repack.c:178 builtin/repack.c:182 builtin/show-branch.c:664
+#: builtin/show-ref.c:180 builtin/tag.c:591 parse-options.h:132
+#: parse-options.h:134 parse-options.h:243
+msgid "n"
+msgstr "n"
+
+#: builtin/am.c:2274 builtin/apply.c:4531
+msgid "num"
+msgstr "количество"
+
+#: builtin/am.c:2277 builtin/for-each-ref.c:34 builtin/replace.c:438
+msgid "format"
+msgstr "формат"
+
+#: builtin/am.c:2278
+msgid "format the patch(es) are in"
+msgstr "формат, в котором находятся патчи"
+
+#: builtin/am.c:2284
+msgid "override error message when patch failure occurs"
+msgstr "переопределить сообщение об ошибке, если не удалось наложить изменения"
+
+#: builtin/am.c:2286
+msgid "continue applying patches after resolving a conflict"
+msgstr "продолжить применение изменений после разрешения конфиликта"
+
+#: builtin/am.c:2289
+msgid "synonyms for --continue"
+msgstr "синонимы для --continue"
+
+#: builtin/am.c:2292
+msgid "skip the current patch"
+msgstr "пропустить текущий патч"
+
+#: builtin/am.c:2295
+msgid "restore the original branch and abort the patching operation."
+msgstr "восстановить оригинальную ветку и отменить операцию применения изменений."
+
+#: builtin/am.c:2299
+msgid "lie about committer date"
+msgstr "соврать о дате коммитера"
+
+#: builtin/am.c:2301
+msgid "use current timestamp for author date"
+msgstr "использовать текущее время как время авторства"
+
+#: builtin/am.c:2303 builtin/commit.c:1590 builtin/merge.c:225
+#: builtin/pull.c:155 builtin/revert.c:92 builtin/tag.c:606
+msgid "key-id"
+msgstr "key-id"
+
+#: builtin/am.c:2304
+msgid "GPG-sign commits"
+msgstr "подписать коммиты с помощью GPG"
+
+#: builtin/am.c:2307
+msgid "(internal use for git-rebase)"
+msgstr "(внутреннее использование для git-rebase)"
+
+#: builtin/am.c:2322
+msgid ""
+"The -b/--binary option has been a no-op for long time, and\n"
+"it will be removed. Please do not use it anymore."
+msgstr "Опция -b/--binary уже долгое время ничего не делает и будет удалена с следующих версиях Git. Пожалуйста, не используйте ее."
+
+#: builtin/am.c:2329
+msgid "failed to read the index"
+msgstr "сбой чтения индекса"
+
+#: builtin/am.c:2344
+#, c-format
+msgid "previous rebase directory %s still exists but mbox given."
+msgstr "предыдущий каталог перемещения %s еще существует, но передан mbox."
+
+#: builtin/am.c:2368
+#, c-format
+msgid ""
+"Stray %s directory found.\n"
+"Use \"git am --abort\" to remove it."
+msgstr "Найден забытый каталог %s.\nИспользуйте «git am --abort», чтобы удалить его."
+
+#: builtin/am.c:2374
+msgid "Resolve operation not in progress, we are not resuming."
+msgstr "Операция разрешения конфликтов не в процессе выполнения, не продолжаем."
+
#: builtin/apply.c:59
msgid "git apply [<options>] [<patch>...]"
msgstr "git apply [<опции>] [<патч>…]"
@@ -2381,7 +2867,7 @@ msgstr "%s: не удалось применить патч"
msgid "Checking patch %s..."
msgstr "Проверка патча %s…"
-#: builtin/apply.c:3909 builtin/checkout.c:233 builtin/reset.c:135
+#: builtin/apply.c:3909 builtin/checkout.c:232 builtin/reset.c:135
#, c-format
msgid "make_cache_entry failed for path '%s'"
msgstr "сбой make_cache_entry для пути «%s»"
@@ -2462,11 +2948,6 @@ msgstr "не распознанный ввод"
msgid "unable to read index file"
msgstr "не удалось прочитать файл индекса"
-#: builtin/apply.c:4525 builtin/apply.c:4528 builtin/clone.c:85
-#: builtin/fetch.c:92
-msgid "path"
-msgstr "путь"
-
#: builtin/apply.c:4526
msgid "don't apply changes matching the given path"
msgstr "не применять изменения по указанному пути"
@@ -2475,10 +2956,6 @@ msgstr "не применять изменения по указанному п
msgid "apply changes matching the given path"
msgstr "применять изменения по указанному пути"
-#: builtin/apply.c:4531
-msgid "num"
-msgstr "количество"
-
#: builtin/apply.c:4532
msgid "remove <num> leading slashes from traditional diff paths"
msgstr "удалить <количество> ведущих косых черт из традиционных путей списка изменений"
@@ -2535,10 +3012,6 @@ msgstr "пути, отделенные НУЛЕВЫМ символом"
msgid "ensure at least <n> lines of context match"
msgstr "удостовериться, что по крайней мере <n> строк контекста совпадают"
-#: builtin/apply.c:4563
-msgid "action"
-msgstr "действие"
-
#: builtin/apply.c:4564
msgid "detect new or modified lines that have whitespace errors"
msgstr "определять новые или модифицированные строки, у которых есть ошибки в пробельных символах"
@@ -2571,10 +3044,6 @@ msgstr "разрешить некорректно определенные пр
msgid "do not trust the line counts in the hunk headers"
msgstr "не доверять количеству строк из заголовка блока изменений"
-#: builtin/apply.c:4587
-msgid "root"
-msgstr "корень"
-
#: builtin/apply.c:4588
msgid "prepend <root> to all filenames"
msgstr "добавить <корень> спереди ко всем именам файлов"
@@ -2661,11 +3130,11 @@ msgstr "выполнить «git bisect next»"
msgid "update BISECT_HEAD instead of checking out the current commit"
msgstr "обновить BISECT_HEAD вместо перехода на текущий коммит"
-#: builtin/blame.c:31
+#: builtin/blame.c:32
msgid "git blame [<options>] [<rev-opts>] [<rev>] [--] <file>"
msgstr "git blame [<опции>] [<опции-редакции>] [<редакция>] [--] <файл>"
-#: builtin/blame.c:36
+#: builtin/blame.c:37
msgid "<rev-opts> are documented in git-rev-list(1)"
msgstr "<опции-rev-list> документированы в git-rev-list(1)"
@@ -2840,323 +3309,323 @@ msgstr "внешняя отслеживаемая ветка «%s» не най
msgid "branch '%s' not found."
msgstr "ветка «%s» не найдена."
-#: builtin/branch.c:258
+#: builtin/branch.c:259
#, c-format
msgid "Error deleting remote-tracking branch '%s'"
msgstr "Ошибка удаления внешней отслеживаемой ветки «%s»"
-#: builtin/branch.c:259
+#: builtin/branch.c:260
#, c-format
msgid "Error deleting branch '%s'"
msgstr "Ошибка удаления ветки «%s»"
-#: builtin/branch.c:266
+#: builtin/branch.c:267
#, c-format
msgid "Deleted remote-tracking branch %s (was %s).\n"
msgstr "Внешняя отслеживаемая ветка %s удалена (была %s).\n"
-#: builtin/branch.c:267
+#: builtin/branch.c:268
#, c-format
msgid "Deleted branch %s (was %s).\n"
msgstr "Ветка %s удалена (была %s).\n"
-#: builtin/branch.c:368
+#: builtin/branch.c:369
#, c-format
msgid "branch '%s' does not point at a commit"
msgstr "ветка «%s» не указывает на коммит"
-#: builtin/branch.c:451
+#: builtin/branch.c:452
#, c-format
msgid "[%s: gone]"
msgstr "[%s: пропал]"
-#: builtin/branch.c:456
+#: builtin/branch.c:457
#, c-format
msgid "[%s]"
msgstr "[%s]"
-#: builtin/branch.c:461
+#: builtin/branch.c:462
#, c-format
msgid "[%s: behind %d]"
msgstr "[%s: позади %d]"
-#: builtin/branch.c:463
+#: builtin/branch.c:464
#, c-format
msgid "[behind %d]"
msgstr "[позади %d]"
-#: builtin/branch.c:467
+#: builtin/branch.c:468
#, c-format
msgid "[%s: ahead %d]"
msgstr "[%s: впереди %d]"
-#: builtin/branch.c:469
+#: builtin/branch.c:470
#, c-format
msgid "[ahead %d]"
msgstr "[впереди %d]"
-#: builtin/branch.c:472
+#: builtin/branch.c:473
#, c-format
msgid "[%s: ahead %d, behind %d]"
msgstr "[%s: впереди %d, позади %d]"
-#: builtin/branch.c:475
+#: builtin/branch.c:476
#, c-format
msgid "[ahead %d, behind %d]"
msgstr "[впереди %d, позади %d]"
-#: builtin/branch.c:488
+#: builtin/branch.c:489
msgid " **** invalid ref ****"
msgstr " **** недействительная ссылка ****"
-#: builtin/branch.c:579
+#: builtin/branch.c:580
#, c-format
msgid "(no branch, rebasing %s)"
msgstr "(нет ветки, перемещение %s)"
-#: builtin/branch.c:582
+#: builtin/branch.c:583
#, c-format
msgid "(no branch, bisect started on %s)"
msgstr "(нет ветки, двоичный поиск начат на %s)"
-#: builtin/branch.c:588
+#: builtin/branch.c:589
#, c-format
msgid "(HEAD detached at %s)"
msgstr "(HEAD отделён на %s)"
-#: builtin/branch.c:591
+#: builtin/branch.c:592
#, c-format
msgid "(HEAD detached from %s)"
msgstr "(HEAD отделён начиная с %s)"
-#: builtin/branch.c:595
+#: builtin/branch.c:596
msgid "(no branch)"
msgstr "(нет ветки)"
-#: builtin/branch.c:642
+#: builtin/branch.c:643
#, c-format
msgid "object '%s' does not point to a commit"
msgstr "объект «%s» не указывает на коммит"
-#: builtin/branch.c:690
+#: builtin/branch.c:691
msgid "some refs could not be read"
msgstr "не удается прочитать некоторые ссылки"
-#: builtin/branch.c:703
+#: builtin/branch.c:704
msgid "cannot rename the current branch while not on any."
msgstr "невозможно переименовать текущую ветку, если вы не находитесь ни на одной из них."
-#: builtin/branch.c:713
+#: builtin/branch.c:714
#, c-format
msgid "Invalid branch name: '%s'"
msgstr "Недействительное имя ветки: «%s»"
-#: builtin/branch.c:728
+#: builtin/branch.c:729
msgid "Branch rename failed"
msgstr "Сбой переименования ветки"
-#: builtin/branch.c:732
+#: builtin/branch.c:733
#, c-format
msgid "Renamed a misnamed branch '%s' away"
msgstr "Переименована неправильно названная ветка «%s»"
-#: builtin/branch.c:736
+#: builtin/branch.c:737
#, c-format
msgid "Branch renamed to %s, but HEAD is not updated!"
msgstr "Ветка переименована в %s, но HEAD не обновлен!"
-#: builtin/branch.c:743
+#: builtin/branch.c:744
msgid "Branch is renamed, but update of config-file failed"
msgstr "Ветка переименована, но произошел сбой обновления файла конфигурации"
-#: builtin/branch.c:758
+#: builtin/branch.c:759
#, c-format
msgid "malformed object name %s"
msgstr "плохое имя объекта %s"
-#: builtin/branch.c:780
+#: builtin/branch.c:781
#, c-format
msgid "could not write branch description template: %s"
msgstr "не удалось записать шаблон описания ветки: %s"
-#: builtin/branch.c:810
+#: builtin/branch.c:811
msgid "Generic options"
msgstr "Общие параметры"
-#: builtin/branch.c:812
+#: builtin/branch.c:813
msgid "show hash and subject, give twice for upstream branch"
msgstr "показывать хеш-сумму и тему, укажите дважды для вышестоящей ветки"
-#: builtin/branch.c:813
+#: builtin/branch.c:814
msgid "suppress informational messages"
msgstr "не выводить информационные сообщения"
-#: builtin/branch.c:814
+#: builtin/branch.c:815
msgid "set up tracking mode (see git-pull(1))"
msgstr "установить режим отслеживания вышестоящей ветки (см. git-pull(1))"
-#: builtin/branch.c:816
+#: builtin/branch.c:817
msgid "change upstream info"
msgstr "изменить информацию о вышестоящей ветке"
-#: builtin/branch.c:820
+#: builtin/branch.c:821
msgid "use colored output"
msgstr "использовать цветной вывод"
-#: builtin/branch.c:821
+#: builtin/branch.c:822
msgid "act on remote-tracking branches"
msgstr "выполнить действия на отслеживаемых внешних ветках"
-#: builtin/branch.c:824 builtin/branch.c:830 builtin/branch.c:851
-#: builtin/branch.c:857 builtin/commit.c:1581 builtin/commit.c:1582
-#: builtin/commit.c:1583 builtin/commit.c:1584 builtin/tag.c:616
-#: builtin/tag.c:622
+#: builtin/branch.c:825 builtin/branch.c:831 builtin/branch.c:852
+#: builtin/branch.c:858 builtin/commit.c:1580 builtin/commit.c:1581
+#: builtin/commit.c:1582 builtin/commit.c:1583 builtin/tag.c:618
+#: builtin/tag.c:624
msgid "commit"
msgstr "коммит"
-#: builtin/branch.c:825 builtin/branch.c:831
+#: builtin/branch.c:826 builtin/branch.c:832
msgid "print only branches that contain the commit"
msgstr "вывод только веток, которые содержат коммит"
-#: builtin/branch.c:837
+#: builtin/branch.c:838
msgid "Specific git-branch actions:"
msgstr "Специфичные для git-branch действия:"
-#: builtin/branch.c:838
+#: builtin/branch.c:839
msgid "list both remote-tracking and local branches"
msgstr "показать список и отслеживаемых и локальных веток"
-#: builtin/branch.c:840
+#: builtin/branch.c:841
msgid "delete fully merged branch"
msgstr "удалить полностью слитую ветку"
-#: builtin/branch.c:841
+#: builtin/branch.c:842
msgid "delete branch (even if not merged)"
msgstr "удалить ветку (даже никуда не слитую)"
-#: builtin/branch.c:842
+#: builtin/branch.c:843
msgid "move/rename a branch and its reflog"
msgstr "переместить/переименовать ветки и ее журнал ссылок"
-#: builtin/branch.c:843
+#: builtin/branch.c:844
msgid "move/rename a branch, even if target exists"
msgstr "переместить/переименовать ветку, даже если целевое имя уже существует"
-#: builtin/branch.c:844
+#: builtin/branch.c:845
msgid "list branch names"
msgstr "показать список имен веток"
-#: builtin/branch.c:845
+#: builtin/branch.c:846
msgid "create the branch's reflog"
msgstr "создать журнал ссылок ветки"
-#: builtin/branch.c:847
+#: builtin/branch.c:848
msgid "edit the description for the branch"
msgstr "изменить описание ветки"
-#: builtin/branch.c:848
+#: builtin/branch.c:849
msgid "force creation, move/rename, deletion"
msgstr "принудительное создание, перемещение или удаление ветки"
-#: builtin/branch.c:851
+#: builtin/branch.c:852
msgid "print only not merged branches"
msgstr "вывод только не слитых веток"
-#: builtin/branch.c:857
+#: builtin/branch.c:858
msgid "print only merged branches"
msgstr "вывод только слитых веток"
-#: builtin/branch.c:861
+#: builtin/branch.c:862
msgid "list branches in columns"
msgstr "показать список веток по столбцам"
-#: builtin/branch.c:874
+#: builtin/branch.c:875
msgid "Failed to resolve HEAD as a valid ref."
msgstr "Не удалось определить HEAD как действительную ссылку."
-#: builtin/branch.c:878 builtin/clone.c:622
+#: builtin/branch.c:879 builtin/clone.c:690
msgid "HEAD not found below refs/heads!"
msgstr "HEAD не найден в refs/heads!"
-#: builtin/branch.c:900
+#: builtin/branch.c:901
msgid "--column and --verbose are incompatible"
msgstr "--column и --verbose нельзя использовать одновременно"
-#: builtin/branch.c:911 builtin/branch.c:950
+#: builtin/branch.c:912 builtin/branch.c:951
msgid "branch name required"
msgstr "требуется имя ветки"
-#: builtin/branch.c:926
+#: builtin/branch.c:927
msgid "Cannot give description to detached HEAD"
msgstr "Нельзя дать описание отделенному HEAD"
-#: builtin/branch.c:931
+#: builtin/branch.c:932
msgid "cannot edit description of more than one branch"
msgstr "нельзя изменить описание более одной ветки за раз"
-#: builtin/branch.c:938
+#: builtin/branch.c:939
#, c-format
msgid "No commit on branch '%s' yet."
msgstr "Еще нет коммита на ветке «%s»."
-#: builtin/branch.c:941
+#: builtin/branch.c:942
#, c-format
msgid "No branch named '%s'."
msgstr "Нет ветки с именем «%s»."
-#: builtin/branch.c:956
+#: builtin/branch.c:957
msgid "too many branches for a rename operation"
msgstr "слишком много веток для операции переименования"
-#: builtin/branch.c:961
+#: builtin/branch.c:962
msgid "too many branches to set new upstream"
msgstr "слишком много веток для указания новых вышестоящих"
-#: builtin/branch.c:965
+#: builtin/branch.c:966
#, c-format
msgid ""
"could not set upstream of HEAD to %s when it does not point to any branch."
msgstr "невозможно установить вышестоящий репозиторий для HEAD на %s, когда он не указывает ни на одну ветку."
-#: builtin/branch.c:968 builtin/branch.c:990 builtin/branch.c:1011
+#: builtin/branch.c:969 builtin/branch.c:991 builtin/branch.c:1012
#, c-format
msgid "no such branch '%s'"
msgstr "нет такой ветки «%s»"
-#: builtin/branch.c:972
+#: builtin/branch.c:973
#, c-format
msgid "branch '%s' does not exist"
msgstr "ветка «%s» не существует"
-#: builtin/branch.c:984
+#: builtin/branch.c:985
msgid "too many branches to unset upstream"
msgstr "слишком много веток для убирания вышестоящих"
-#: builtin/branch.c:988
+#: builtin/branch.c:989
msgid "could not unset upstream of HEAD when it does not point to any branch."
msgstr "невозможно убрать вышестоящий репозиторий для HEAD, когда он не указывает ни на одну ветку."
-#: builtin/branch.c:994
+#: builtin/branch.c:995
#, c-format
msgid "Branch '%s' has no upstream information"
msgstr "Ветка «%s» не имеет информации о вышестоящей ветке"
-#: builtin/branch.c:1008
+#: builtin/branch.c:1009
msgid "it does not make sense to create 'HEAD' manually"
msgstr "не имеет смысла создавать «HEAD» вручную"
-#: builtin/branch.c:1014
+#: builtin/branch.c:1015
msgid "-a and -r options to 'git branch' do not make sense with a branch name"
msgstr "параметры -a и -r для «git branch» не имеют смысла с указанием имени ветки"
-#: builtin/branch.c:1017
+#: builtin/branch.c:1018
#, c-format
msgid ""
"The --set-upstream flag is deprecated and will be removed. Consider using "
"--track or --set-upstream-to\n"
msgstr "Флаг --set-upstream устарел и будет удален в будущем. Вместо него используйте --track или --set-upstream-to\n"
-#: builtin/branch.c:1034
+#: builtin/branch.c:1035
#, c-format
msgid ""
"\n"
@@ -3164,12 +3633,12 @@ msgid ""
"\n"
msgstr "\nЕсли вы хотите, чтобы «%s» отслеживала «%s», сделайте следующее:\n\n"
-#: builtin/branch.c:1035
+#: builtin/branch.c:1036
#, c-format
msgid " git branch -d %s\n"
msgstr "git branch -d %s\n"
-#: builtin/branch.c:1036
+#: builtin/branch.c:1037
#, c-format
msgid " git branch --set-upstream-to %s\n"
msgstr " git branch --set-upstream-to %s\n"
@@ -3187,58 +3656,66 @@ msgstr "Требуется репозиторий для создания пак
msgid "Need a repository to unbundle."
msgstr "Требуется репозиторий для распаковки."
-#: builtin/cat-file.c:369
+#: builtin/cat-file.c:428
msgid ""
"git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-"
"type]|-e|-p|<type>|--textconv) <object>"
msgstr "git cat-file (-t [--allow-unknown-type]|-s [--allow-unknown-type]|-e|-p|<тип>|--textconv) <объект>"
-#: builtin/cat-file.c:370
+#: builtin/cat-file.c:429
msgid ""
"git cat-file (--batch | --batch-check) [--follow-symlinks] < <list-of-"
"objects>"
msgstr "git cat-file (--batch | --batch-check) [--follow-symlinks] < <список-объектов>"
-#: builtin/cat-file.c:407
+#: builtin/cat-file.c:466
msgid "<type> can be one of: blob, tree, commit, tag"
msgstr "<тип> может быть одним из: blob, tree, commit, tag"
-#: builtin/cat-file.c:408
+#: builtin/cat-file.c:467
msgid "show object type"
msgstr "показать тип объекта"
-#: builtin/cat-file.c:409
+#: builtin/cat-file.c:468
msgid "show object size"
msgstr "показать размер объекта"
-#: builtin/cat-file.c:411
+#: builtin/cat-file.c:470
msgid "exit with zero when there's no error"
msgstr "выйти с нулевым кодом возврата, если нет ошибки"
-#: builtin/cat-file.c:412
+#: builtin/cat-file.c:471
msgid "pretty-print object's content"
msgstr "структурированный вывод содержимого объекта"
-#: builtin/cat-file.c:414
+#: builtin/cat-file.c:473
msgid "for blob objects, run textconv on object's content"
msgstr "запустить texconv на содержимом двоичных объектов "
-#: builtin/cat-file.c:416
+#: builtin/cat-file.c:475
msgid "allow -s and -t to work with broken/corrupt objects"
msgstr "разрешить -s и -t работать с повреждёнными объектами"
-#: builtin/cat-file.c:418
+#: builtin/cat-file.c:476
+msgid "buffer --batch output"
+msgstr "буфферировать вывод --batch"
+
+#: builtin/cat-file.c:478
msgid "show info and content of objects fed from the standard input"
msgstr "показать информацию и содержимое объектов, переданных из стандартного ввода"
-#: builtin/cat-file.c:421
+#: builtin/cat-file.c:481
msgid "show info about objects fed from the standard input"
msgstr "показать информацию об объектах, переданных из стандартного ввода"
-#: builtin/cat-file.c:424
+#: builtin/cat-file.c:484
msgid "follow in-tree symlinks (used with --batch or --batch-check)"
msgstr "переходить по символьным ссылкам внутри дерева (используется с опциями --batch и --batch-check)"
+#: builtin/cat-file.c:486
+msgid "show all objects with --batch or --batch-check"
+msgstr "показать все объекты с опциями --batch или --batch-check"
+
#: builtin/check-attr.c:11
msgid "git check-attr [-a | --all | <attr>...] [--] <pathname>..."
msgstr "git check-attr [-a | --all | <атрибут>…] [--] <путь>…"
@@ -3263,7 +3740,7 @@ msgstr "прочитать имена файлов из стандартного
msgid "terminate input and output records by a NUL character"
msgstr "окончание ввода и вывода записей по НУЛЕВОМУ символу"
-#: builtin/check-ignore.c:18 builtin/checkout.c:1202 builtin/gc.c:279
+#: builtin/check-ignore.c:18 builtin/checkout.c:1133 builtin/gc.c:267
msgid "suppress progress reporting"
msgstr "не выводить прогресс выполнения"
@@ -3360,113 +3837,113 @@ msgstr "добавить спереди <строку> при создании
msgid "copy out the files from named stage"
msgstr "копировать файлы из указанного индекса"
-#: builtin/checkout.c:24
+#: builtin/checkout.c:25
msgid "git checkout [<options>] <branch>"
msgstr "git checkout [<опции>] <ветка>"
-#: builtin/checkout.c:25
+#: builtin/checkout.c:26
msgid "git checkout [<options>] [<branch>] -- <file>..."
msgstr "git checkout [<опции>] [<ветка>] -- <файл>…"
-#: builtin/checkout.c:134 builtin/checkout.c:167
+#: builtin/checkout.c:133 builtin/checkout.c:166
#, c-format
msgid "path '%s' does not have our version"
msgstr "путь «%s» не имеет нашей версии"
-#: builtin/checkout.c:136 builtin/checkout.c:169
+#: builtin/checkout.c:135 builtin/checkout.c:168
#, c-format
msgid "path '%s' does not have their version"
msgstr "путь «%s» не имеет их версии"
-#: builtin/checkout.c:152
+#: builtin/checkout.c:151
#, c-format
msgid "path '%s' does not have all necessary versions"
msgstr "путь «%s» не имеет всех необходимых версий"
-#: builtin/checkout.c:196
+#: builtin/checkout.c:195
#, c-format
msgid "path '%s' does not have necessary versions"
msgstr "путь «%s» не имеет необходимых версий"
-#: builtin/checkout.c:213
+#: builtin/checkout.c:212
#, c-format
msgid "path '%s': cannot merge"
msgstr "путь «%s»: не удалось слить"
-#: builtin/checkout.c:230
+#: builtin/checkout.c:229
#, c-format
msgid "Unable to add merge result for '%s'"
msgstr "Не удалось добавить результат слияния «%s»"
-#: builtin/checkout.c:251 builtin/checkout.c:254 builtin/checkout.c:257
-#: builtin/checkout.c:260
+#: builtin/checkout.c:250 builtin/checkout.c:253 builtin/checkout.c:256
+#: builtin/checkout.c:259
#, c-format
msgid "'%s' cannot be used with updating paths"
msgstr "«%s» нельзя использовать при обновлении путей"
-#: builtin/checkout.c:263 builtin/checkout.c:266
+#: builtin/checkout.c:262 builtin/checkout.c:265
#, c-format
msgid "'%s' cannot be used with %s"
msgstr "«%s» нельзя использовать одновременно с %s"
-#: builtin/checkout.c:269
+#: builtin/checkout.c:268
#, c-format
msgid "Cannot update paths and switch to branch '%s' at the same time."
msgstr "Нельзя обновлять пути и переключаться на ветку «%s» одновременно."
-#: builtin/checkout.c:280 builtin/checkout.c:474
+#: builtin/checkout.c:279 builtin/checkout.c:473
msgid "corrupt index file"
msgstr "файл индекса поврежден"
-#: builtin/checkout.c:340 builtin/checkout.c:347
+#: builtin/checkout.c:339 builtin/checkout.c:346
#, c-format
msgid "path '%s' is unmerged"
msgstr "путь «%s» не слит"
-#: builtin/checkout.c:496
+#: builtin/checkout.c:495
msgid "you need to resolve your current index first"
msgstr "сначала нужно разрешить конфликты в вашем текущем индексе"
-#: builtin/checkout.c:627
+#: builtin/checkout.c:622
#, c-format
-msgid "Can not do reflog for '%s'\n"
-msgstr "Не удалось создать журнал ссылок для «%s»\n"
+msgid "Can not do reflog for '%s': %s\n"
+msgstr "Не удалось создать журнал ссылок для «%s»': %s\n"
-#: builtin/checkout.c:663
+#: builtin/checkout.c:660
msgid "HEAD is now at"
msgstr "HEAD сейчас на"
-#: builtin/checkout.c:670
+#: builtin/checkout.c:667
#, c-format
msgid "Reset branch '%s'\n"
msgstr "Сброс ветки «%s»\n"
-#: builtin/checkout.c:673
+#: builtin/checkout.c:670
#, c-format
msgid "Already on '%s'\n"
msgstr "Уже на «%s»\n"
-#: builtin/checkout.c:677
+#: builtin/checkout.c:674
#, c-format
msgid "Switched to and reset branch '%s'\n"
msgstr "Переключение и сброс ветки «%s»\n"
-#: builtin/checkout.c:679 builtin/checkout.c:1134
+#: builtin/checkout.c:676 builtin/checkout.c:1065
#, c-format
msgid "Switched to a new branch '%s'\n"
msgstr "Переключено на новую ветку «%s»\n"
-#: builtin/checkout.c:681
+#: builtin/checkout.c:678
#, c-format
msgid "Switched to branch '%s'\n"
msgstr "Переключено на ветку «%s»\n"
-#: builtin/checkout.c:733
+#: builtin/checkout.c:730
#, c-format
msgid " ... and %d more.\n"
msgstr " … и еще %d.\n"
-#: builtin/checkout.c:739
+#: builtin/checkout.c:736
#, c-format
msgid ""
"Warning: you are leaving %d commit behind, not connected to\n"
@@ -3483,7 +3960,7 @@ msgstr[1] "Предупреждение: вы оставляете позади
msgstr[2] "Предупреждение: вы оставляете позади %d коммитов не соединенные ни с одной из ваших веток:\n\n%s\n"
msgstr[3] "Предупреждение: вы оставляете позади %d коммитов не соединенные ни с одной из ваших веток:\n\n%s\n"
-#: builtin/checkout.c:758
+#: builtin/checkout.c:755
#, c-format
msgid ""
"If you want to keep it by creating a new branch, this may be a good time\n"
@@ -3502,197 +3979,192 @@ msgstr[1] "Если вы хотите сохранить их с помощью
msgstr[2] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n\n"
msgstr[3] "Если вы хотите сохранить их с помощью создания новой ветки, то сейчас самое время\nсделать это с помощью:\n\n git branch <имя-новой-ветки> %s\n\n"
-#: builtin/checkout.c:794
+#: builtin/checkout.c:791
msgid "internal error in revision walk"
msgstr "внутренняя ошибка при хождении по редакциям"
-#: builtin/checkout.c:798
+#: builtin/checkout.c:795
msgid "Previous HEAD position was"
msgstr "Предыдущая позиция HEAD была"
-#: builtin/checkout.c:825 builtin/checkout.c:1129
+#: builtin/checkout.c:822 builtin/checkout.c:1060
msgid "You are on a branch yet to be born"
msgstr "Вы находитесь на еще не созданной ветке"
-#: builtin/checkout.c:931
-#, c-format
-msgid "'%s' is already checked out at '%s'"
-msgstr "«%s» уже находится на «%s»"
-
-#: builtin/checkout.c:1036
+#: builtin/checkout.c:967
#, c-format
msgid "only one reference expected, %d given."
msgstr "ожидается только одна ссылка, а передано %d."
-#: builtin/checkout.c:1075
+#: builtin/checkout.c:1006 builtin/worktree.c:210
#, c-format
msgid "invalid reference: %s"
msgstr "неправильная ссылка: %s"
-#: builtin/checkout.c:1104
+#: builtin/checkout.c:1035
#, c-format
msgid "reference is not a tree: %s"
msgstr "в дереве нет такой ссылки: %s"
-#: builtin/checkout.c:1143
+#: builtin/checkout.c:1074
msgid "paths cannot be used with switching branches"
msgstr "нельзя использовать пути при переключении веток"
-#: builtin/checkout.c:1146 builtin/checkout.c:1150
+#: builtin/checkout.c:1077 builtin/checkout.c:1081
#, c-format
msgid "'%s' cannot be used with switching branches"
msgstr "нельзя использовать «%s» при переключении веток"
-#: builtin/checkout.c:1154 builtin/checkout.c:1157 builtin/checkout.c:1162
-#: builtin/checkout.c:1165
+#: builtin/checkout.c:1085 builtin/checkout.c:1088 builtin/checkout.c:1093
+#: builtin/checkout.c:1096
#, c-format
msgid "'%s' cannot be used with '%s'"
msgstr "«%s» нельзя использовать одновременно с «%s»"
-#: builtin/checkout.c:1170
+#: builtin/checkout.c:1101
#, c-format
msgid "Cannot switch branch to a non-commit '%s'"
msgstr "Нельзя переключить ветку на не коммит «%s»"
-#: builtin/checkout.c:1203 builtin/checkout.c:1205 builtin/clone.c:83
-#: builtin/remote.c:159 builtin/remote.c:161 builtin/worktree.c:282
-#: builtin/worktree.c:284
+#: builtin/checkout.c:1134 builtin/checkout.c:1136 builtin/clone.c:83
+#: builtin/remote.c:159 builtin/remote.c:161 builtin/worktree.c:317
+#: builtin/worktree.c:319
msgid "branch"
msgstr "ветка"
-#: builtin/checkout.c:1204
+#: builtin/checkout.c:1135
msgid "create and checkout a new branch"
msgstr "создать и перейти на новую ветку"
-#: builtin/checkout.c:1206
+#: builtin/checkout.c:1137
msgid "create/reset and checkout a branch"
msgstr "создать/сбросить и перейти на новую ветку"
-#: builtin/checkout.c:1207
+#: builtin/checkout.c:1138
msgid "create reflog for new branch"
msgstr "создать журнал ссылок для новой ветки"
-#: builtin/checkout.c:1208
+#: builtin/checkout.c:1139
msgid "detach the HEAD at named commit"
msgstr "отсоединить HEAD на указанном коммите"
-#: builtin/checkout.c:1209
+#: builtin/checkout.c:1140
msgid "set upstream info for new branch"
msgstr "установить информацию о вышестоящей ветке для новой ветки"
-#: builtin/checkout.c:1211
+#: builtin/checkout.c:1142
msgid "new-branch"
msgstr "новая-ветка"
-#: builtin/checkout.c:1211
+#: builtin/checkout.c:1142
msgid "new unparented branch"
msgstr "новая ветка без родителей"
-#: builtin/checkout.c:1212
+#: builtin/checkout.c:1143
msgid "checkout our version for unmerged files"
msgstr "перейти на нашу версию для не слитых файлов"
-#: builtin/checkout.c:1214
+#: builtin/checkout.c:1145
msgid "checkout their version for unmerged files"
msgstr "перейти на их версию для не слитых файлов"
-#: builtin/checkout.c:1216
+#: builtin/checkout.c:1147
msgid "force checkout (throw away local modifications)"
msgstr "принудительный переход (отбрасывает все локальные изменения)"
-#: builtin/checkout.c:1217
+#: builtin/checkout.c:1148
msgid "perform a 3-way merge with the new branch"
msgstr "выполнить трехходовое слияние с новой веткой"
-#: builtin/checkout.c:1218 builtin/merge.c:227
+#: builtin/checkout.c:1149 builtin/merge.c:227
msgid "update ignored files (default)"
msgstr "обновить игнорируемые файлы (по умолчанию)"
-#: builtin/checkout.c:1219 builtin/log.c:1239 parse-options.h:244
+#: builtin/checkout.c:1150 builtin/log.c:1264 parse-options.h:249
msgid "style"
msgstr "стиль"
-#: builtin/checkout.c:1220
+#: builtin/checkout.c:1151
msgid "conflict style (merge or diff3)"
msgstr "стиль конфликтов слияния (merge или diff3)"
-#: builtin/checkout.c:1223
+#: builtin/checkout.c:1154
msgid "do not limit pathspecs to sparse entries only"
msgstr "не ограничивать спецификаторы пути только частичными записями"
-#: builtin/checkout.c:1225
+#: builtin/checkout.c:1156
msgid "second guess 'git checkout <no-such-branch>'"
msgstr "пересмотр «git checkout <no-such-branch>»"
-#: builtin/checkout.c:1227
+#: builtin/checkout.c:1158
msgid "do not check if another worktree is holding the given ref"
msgstr "не проверять, что другое дерево уже содержит указанную ссылку"
-#: builtin/checkout.c:1252
+#: builtin/checkout.c:1181
msgid "-b, -B and --orphan are mutually exclusive"
msgstr "-b, -B и --orphan нельзя использовать одновременно"
-#: builtin/checkout.c:1269
+#: builtin/checkout.c:1198
msgid "--track needs a branch name"
msgstr "--track требует имя ветки"
-#: builtin/checkout.c:1274
+#: builtin/checkout.c:1203
msgid "Missing branch name; try -b"
msgstr "Пропущено имя ветки; попробуйте -b"
-#: builtin/checkout.c:1310
+#: builtin/checkout.c:1239
msgid "invalid path specification"
msgstr "неправильная спецификация пути"
-#: builtin/checkout.c:1317
+#: builtin/checkout.c:1246
#, c-format
msgid ""
"Cannot update paths and switch to branch '%s' at the same time.\n"
"Did you intend to checkout '%s' which can not be resolved as commit?"
msgstr "Нельзя обновить пути и одновременно переключить на ветку «%s».\nВы хотели переключиться на «%s», что не может быть определено как коммит?"
-#: builtin/checkout.c:1322
+#: builtin/checkout.c:1251
#, c-format
msgid "git checkout: --detach does not take a path argument '%s'"
msgstr "git checkout: --detach не принимает путь «%s» как аргумент"
-#: builtin/checkout.c:1326
+#: builtin/checkout.c:1255
msgid ""
"git checkout: --ours/--theirs, --force and --merge are incompatible when\n"
"checking out of the index."
msgstr "git checkout: --ours/--theirs, --force and --merge нельзя использовать одновременно при применении состояния индекса."
-#: builtin/clean.c:26
+#: builtin/clean.c:25
msgid ""
"git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>..."
msgstr "git clean [-d] [-f] [-i] [-n] [-q] [-e <шаблон>] [-x | -X] [--] <пути>…"
-#: builtin/clean.c:30
+#: builtin/clean.c:29
#, c-format
msgid "Removing %s\n"
msgstr "Удаление %s\n"
-#: builtin/clean.c:31
+#: builtin/clean.c:30
#, c-format
msgid "Would remove %s\n"
msgstr "Будет удалено %s\n"
-#: builtin/clean.c:32
+#: builtin/clean.c:31
#, c-format
msgid "Skipping repository %s\n"
msgstr "Пропуск репозитория %s\n"
-#: builtin/clean.c:33
+#: builtin/clean.c:32
#, c-format
msgid "Would skip repository %s\n"
msgstr "Будет пропущен репозиторий %s\n"
-#: builtin/clean.c:34
+#: builtin/clean.c:33
#, c-format
msgid "failed to remove %s"
msgstr "сбой удаления %s"
-#: builtin/clean.c:295
+#: builtin/clean.c:317
msgid ""
"Prompt help:\n"
"1 - select a numbered item\n"
@@ -3700,7 +4172,7 @@ msgid ""
" - (empty) select nothing"
msgstr "Справка по выделению:\n1 - выбрать указанный элемент\nfoo - выбрать элемент с указанным префиксом\n - (пусто) не выбирать ничего"
-#: builtin/clean.c:299
+#: builtin/clean.c:321
msgid ""
"Prompt help:\n"
"1 - select a single item\n"
@@ -3712,36 +4184,36 @@ msgid ""
" - (empty) finish selecting"
msgstr "Справка по выделению:\n1 - выбрать один элемент\n3-5 - выбрать диапазон элементов\n2-3,6-9 - выбрать несколько диапазонов\nfoo - выбрать элемент с указанным префиксом\n-… - убрать выделение с указанных элементов\n* - выбрать все элементы\n - (пусто) завершить выделение"
-#: builtin/clean.c:515
+#: builtin/clean.c:537
#, c-format
msgid "Huh (%s)?"
msgstr "Хм (%s)?"
-#: builtin/clean.c:657
+#: builtin/clean.c:679
#, c-format
msgid "Input ignore patterns>> "
msgstr "Шаблоны игнорирования ввода>> "
-#: builtin/clean.c:694
+#: builtin/clean.c:716
#, c-format
msgid "WARNING: Cannot find items matched by: %s"
msgstr "ПРЕДУПРЕЖДЕНИЕ: Не удалось найти элементы соответствующие: %s"
-#: builtin/clean.c:715
+#: builtin/clean.c:737
msgid "Select items to delete"
msgstr "Укажите элементы для удаления"
#. TRANSLATORS: Make sure to keep [y/N] as is
-#: builtin/clean.c:756
+#: builtin/clean.c:778
#, c-format
msgid "Remove %s [y/N]? "
msgstr "Удалить %s [y - да/N - нет]? "
-#: builtin/clean.c:781
+#: builtin/clean.c:803
msgid "Bye."
msgstr "До свидания."
-#: builtin/clean.c:789
+#: builtin/clean.c:811
msgid ""
"clean - start cleaning\n"
"filter by pattern - exclude items from deletion\n"
@@ -3752,15 +4224,15 @@ msgid ""
"? - help for prompt selection"
msgstr "clean - начать очистку\nfilter by pattern - исключить удаление элементов\nselect by numbers - исключить удаление элементов по номерам\nask each - запрашивать подтверждение на удаление каждого элемента (как «rm -i»)\nquit - прекратить очистку\nhelp - этот экран\n? - справка по выделению"
-#: builtin/clean.c:816
+#: builtin/clean.c:838
msgid "*** Commands ***"
msgstr "*** Команды ***"
-#: builtin/clean.c:817
+#: builtin/clean.c:839
msgid "What now"
msgstr "Что теперь"
-#: builtin/clean.c:825
+#: builtin/clean.c:847
msgid "Would remove the following item:"
msgid_plural "Would remove the following items:"
msgstr[0] "Удалить следующие элементы:"
@@ -3768,54 +4240,54 @@ msgstr[1] "Удалить следующие элементы:"
msgstr[2] "Удалить следующие элементы:"
msgstr[3] "Удалить следующие элементы:"
-#: builtin/clean.c:842
+#: builtin/clean.c:864
msgid "No more files to clean, exiting."
msgstr "Больше нет файлов для очистки, выходим."
-#: builtin/clean.c:873
+#: builtin/clean.c:895
msgid "do not print names of files removed"
msgstr "не выводить имена удаляемых файлов"
-#: builtin/clean.c:875
+#: builtin/clean.c:897
msgid "force"
msgstr "принудительно"
-#: builtin/clean.c:876
+#: builtin/clean.c:898
msgid "interactive cleaning"
msgstr "интерактивная очистка"
-#: builtin/clean.c:878
+#: builtin/clean.c:900
msgid "remove whole directories"
msgstr "удалить каталоги полностью"
-#: builtin/clean.c:879 builtin/describe.c:407 builtin/grep.c:714
+#: builtin/clean.c:901 builtin/describe.c:407 builtin/grep.c:714
#: builtin/ls-files.c:443 builtin/name-rev.c:311 builtin/show-ref.c:187
msgid "pattern"
msgstr "шаблон"
-#: builtin/clean.c:880
+#: builtin/clean.c:902
msgid "add <pattern> to ignore rules"
msgstr "добавить <шаблон> в правила игнорирования"
-#: builtin/clean.c:881
+#: builtin/clean.c:903
msgid "remove ignored files, too"
msgstr "также удалить игнорируемые файлы"
-#: builtin/clean.c:883
+#: builtin/clean.c:905
msgid "remove only ignored files"
msgstr "удалить только игнорируемые файлы"
-#: builtin/clean.c:901
+#: builtin/clean.c:923
msgid "-x and -X cannot be used together"
msgstr "нельзя использовать одновременно -x и -X"
-#: builtin/clean.c:905
+#: builtin/clean.c:927
msgid ""
"clean.requireForce set to true and neither -i, -n, nor -f given; refusing to"
" clean"
msgstr "clean.requireForce установлен как true и ни одна из опций -i, -n или -f не указана; отказ очистки"
-#: builtin/clean.c:908
+#: builtin/clean.c:930
msgid ""
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
@@ -3825,8 +4297,8 @@ msgstr "clean.requireForce установлен по умолчанию как t
msgid "git clone [<options>] [--] <repo> [<dir>]"
msgstr "git clone [<опции>] [--] <репозиторий> [<каталог>]"
-#: builtin/clone.c:57 builtin/fetch.c:111 builtin/merge.c:224
-#: builtin/push.c:523
+#: builtin/clone.c:57 builtin/fetch.c:112 builtin/merge.c:224
+#: builtin/pull.c:109 builtin/push.c:560 builtin/send-pack.c:168
msgid "force progress reporting"
msgstr "принудительно выводить прогресс"
@@ -3834,7 +4306,7 @@ msgstr "принудительно выводить прогресс"
msgid "don't create a checkout"
msgstr "не переключать рабочую копию на HEAD"
-#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:503
+#: builtin/clone.c:60 builtin/clone.c:62 builtin/init-db.c:504
msgid "create a bare repository"
msgstr "создать голый репозиторий"
@@ -3858,11 +4330,11 @@ msgstr "настроить как общедоступный репозитор
msgid "initialize submodules in the clone"
msgstr "инициализировать подмодули в клоне"
-#: builtin/clone.c:75 builtin/init-db.c:500
+#: builtin/clone.c:75 builtin/init-db.c:501
msgid "template-directory"
msgstr "каталог-шаблонов"
-#: builtin/clone.c:76 builtin/init-db.c:501
+#: builtin/clone.c:76 builtin/init-db.c:502
msgid "directory from which templates will be used"
msgstr "каталог, шаблоны из которого будут использованы"
@@ -3890,7 +4362,8 @@ msgstr "перейти на <ветку>, вместо HEAD внешнего р
msgid "path to git-upload-pack on the remote"
msgstr "путь к git-upload-pack на внешнем репозитории"
-#: builtin/clone.c:87 builtin/fetch.c:112 builtin/grep.c:659
+#: builtin/clone.c:87 builtin/fetch.c:113 builtin/grep.c:659
+#: builtin/pull.c:186
msgid "depth"
msgstr "глубина"
@@ -3902,11 +4375,11 @@ msgstr "сделать частичный клон указанной глуби
msgid "clone only one branch, HEAD or --branch"
msgstr "клонировать только одну ветку, HEAD или --branch"
-#: builtin/clone.c:91 builtin/init-db.c:509
+#: builtin/clone.c:91 builtin/init-db.c:510
msgid "gitdir"
msgstr "каталог-git"
-#: builtin/clone.c:92 builtin/init-db.c:510
+#: builtin/clone.c:92 builtin/init-db.c:511
msgid "separate git dir from working tree"
msgstr "разместить каталог git отдельно от рабочей копии"
@@ -3918,178 +4391,173 @@ msgstr "ключ=значение"
msgid "set config inside the new repository"
msgstr "установить параметры внутри нового репозитория"
-#: builtin/clone.c:240
+#: builtin/clone.c:298
#, c-format
msgid "reference repository '%s' is not a local repository."
msgstr "ссылаемый репозиторий «%s» не является локальным."
-#: builtin/clone.c:244
+#: builtin/clone.c:302
#, c-format
msgid "reference repository '%s' is shallow"
msgstr "ссылаемый репозиторий «%s» является частичным"
-#: builtin/clone.c:247
+#: builtin/clone.c:305
#, c-format
msgid "reference repository '%s' is grafted"
msgstr "ссылаемый репозиторий «%s» является сращенным"
-#: builtin/clone.c:310
-#, c-format
-msgid "failed to create directory '%s'"
-msgstr "не удалось создать каталог «%s»"
-
-#: builtin/clone.c:312 builtin/diff.c:84
+#: builtin/clone.c:370 builtin/diff.c:84
#, c-format
msgid "failed to stat '%s'"
msgstr "не удалось выполнить stat «%s»"
-#: builtin/clone.c:314
+#: builtin/clone.c:372
#, c-format
msgid "%s exists and is not a directory"
msgstr "%s уже существует и не является каталогом"
-#: builtin/clone.c:328
+#: builtin/clone.c:386
#, c-format
msgid "failed to stat %s\n"
msgstr "не удалось выполнить stat %s\n"
-#: builtin/clone.c:350
+#: builtin/clone.c:408
#, c-format
msgid "failed to create link '%s'"
msgstr "не удалось создать ссылку «%s»"
-#: builtin/clone.c:354
+#: builtin/clone.c:412
#, c-format
msgid "failed to copy file to '%s'"
msgstr "не удалось копировать файл в «%s»"
-#: builtin/clone.c:377 builtin/clone.c:551
+#: builtin/clone.c:435 builtin/clone.c:619
#, c-format
msgid "done.\n"
msgstr "готово.\n"
-#: builtin/clone.c:389
+#: builtin/clone.c:447
msgid ""
"Clone succeeded, but checkout failed.\n"
"You can inspect what was checked out with 'git status'\n"
"and retry the checkout with 'git checkout -f HEAD'\n"
msgstr "Клонирование прошло успешно, но во время перехода на версию произошла ошибка.\nС помощь команды «git status» вы можете просмотреть, какие файлы были обновлены, а повторить попытку перехода на версию с помощью «git checkout -f HEAD»\n"
-#: builtin/clone.c:466
+#: builtin/clone.c:524
#, c-format
msgid "Could not find remote branch %s to clone."
msgstr "Не удалось найти внешнюю ветку %s для клонирования."
-#: builtin/clone.c:546
+#: builtin/clone.c:614
#, c-format
msgid "Checking connectivity... "
msgstr "Проверка соединения… "
-#: builtin/clone.c:549
+#: builtin/clone.c:617
msgid "remote did not send all necessary objects"
msgstr "внешний репозиторий прислал не все необходимые объекты"
-#: builtin/clone.c:613
+#: builtin/clone.c:681
msgid "remote HEAD refers to nonexistent ref, unable to checkout.\n"
msgstr "внешний HEAD ссылается на несуществующую ссылку, нельзя перейти на такую версию.\n"
-#: builtin/clone.c:644
+#: builtin/clone.c:712
msgid "unable to checkout working tree"
msgstr "не удалось перейти на версию в рабочем каталоге"
-#: builtin/clone.c:731
+#: builtin/clone.c:799
msgid "cannot repack to clean up"
msgstr "не удалось выполнить перепаковку для очистки"
-#: builtin/clone.c:733
+#: builtin/clone.c:801
msgid "cannot unlink temporary alternates file"
msgstr "не удалось отсоединить временные альтернативные файлы"
-#: builtin/clone.c:763
+#: builtin/clone.c:831
msgid "Too many arguments."
msgstr "Слишком много аргументов."
-#: builtin/clone.c:767
+#: builtin/clone.c:835
msgid "You must specify a repository to clone."
msgstr "Вы должны указать репозиторий для клонирования."
-#: builtin/clone.c:778
+#: builtin/clone.c:846
#, c-format
msgid "--bare and --origin %s options are incompatible."
msgstr "--bare и --origin %s нельзя использовать одновременно."
-#: builtin/clone.c:781
+#: builtin/clone.c:849
msgid "--bare and --separate-git-dir are incompatible."
msgstr "--bare и --separate-git-dir нельзя использовать одновременно."
-#: builtin/clone.c:794
+#: builtin/clone.c:862
#, c-format
msgid "repository '%s' does not exist"
msgstr "репозиторий «%s» не существует"
-#: builtin/clone.c:800 builtin/fetch.c:1160
+#: builtin/clone.c:868 builtin/fetch.c:1168
#, c-format
msgid "depth %s is not a positive number"
msgstr "глубина %s не является положительным числом"
-#: builtin/clone.c:810
+#: builtin/clone.c:878
#, c-format
msgid "destination path '%s' already exists and is not an empty directory."
msgstr "целевой путь «%s» уже существует и не является пустым каталогом."
-#: builtin/clone.c:820
+#: builtin/clone.c:888
#, c-format
msgid "working tree '%s' already exists."
msgstr "рабочий каталог «%s» уже существует."
-#: builtin/clone.c:835 builtin/clone.c:846 builtin/worktree.c:193
-#: builtin/worktree.c:220
+#: builtin/clone.c:903 builtin/clone.c:914 builtin/worktree.c:218
+#: builtin/worktree.c:245
#, c-format
msgid "could not create leading directories of '%s'"
msgstr "не удалось создать родительские каталоги для «%s»"
-#: builtin/clone.c:838
+#: builtin/clone.c:906
#, c-format
msgid "could not create work tree dir '%s'"
msgstr "не удалось создать рабочий каталог «%s»"
-#: builtin/clone.c:856
+#: builtin/clone.c:924
#, c-format
msgid "Cloning into bare repository '%s'...\n"
msgstr "Клонирование в голый репозиторий «%s»…\n"
-#: builtin/clone.c:858
+#: builtin/clone.c:926
#, c-format
msgid "Cloning into '%s'...\n"
msgstr "Клонирование в «%s»…\n"
-#: builtin/clone.c:883
+#: builtin/clone.c:951
msgid "--dissociate given, but there is no --reference"
msgstr "передана опция --dissociate, но не передана --reference"
-#: builtin/clone.c:900
+#: builtin/clone.c:968
msgid "--depth is ignored in local clones; use file:// instead."
msgstr "--depth игнорируется на локальных клонах; вместо этого используйте file://."
-#: builtin/clone.c:903
+#: builtin/clone.c:971
msgid "source repository is shallow, ignoring --local"
msgstr "исходный репозиторий является частичным, --local игнорируется"
-#: builtin/clone.c:908
+#: builtin/clone.c:976
msgid "--local is ignored"
msgstr "--local игнорируется"
-#: builtin/clone.c:912
+#: builtin/clone.c:980
#, c-format
msgid "Don't know how to clone %s"
msgstr "Не знаю как клонировать %s"
-#: builtin/clone.c:961 builtin/clone.c:969
+#: builtin/clone.c:1029 builtin/clone.c:1037
#, c-format
msgid "Remote branch %s not found in upstream %s"
msgstr "Внешняя ветка %s не найдена в вышестоящем репозитории %s"
-#: builtin/clone.c:972
+#: builtin/clone.c:1040
msgid "You appear to have cloned an empty repository."
msgstr "Похоже, что вы клонировали пустой репозиторий."
@@ -4196,108 +4664,99 @@ msgstr "Если вы хотите пропустит этот коммит, и
msgid "failed to unpack HEAD tree object"
msgstr "сбой распаковки объекта дерева HEAD"
-#: builtin/commit.c:344
+#: builtin/commit.c:345
msgid "unable to create temporary index"
msgstr "не удалось создать временный индекс"
-#: builtin/commit.c:350
+#: builtin/commit.c:351
msgid "interactive add failed"
msgstr "сбой интерактивного добавления"
-#: builtin/commit.c:361
-msgid "unable to write index file"
-msgstr "не удалось записать индекс"
-
-#: builtin/commit.c:363
+#: builtin/commit.c:364
msgid "unable to update temporary index"
msgstr "не удалось обновить временный индекс"
-#: builtin/commit.c:365
+#: builtin/commit.c:366
msgid "Failed to update main cache tree"
msgstr "Сбой при обновлении основного кэша дерева"
-#: builtin/commit.c:389 builtin/commit.c:414 builtin/commit.c:463
+#: builtin/commit.c:390 builtin/commit.c:413 builtin/commit.c:462
msgid "unable to write new_index file"
msgstr "не удалось записать файл new_index"
-#: builtin/commit.c:445
+#: builtin/commit.c:444
msgid "cannot do a partial commit during a merge."
msgstr "нельзя создать частичный коммит во время слияния."
-#: builtin/commit.c:447
+#: builtin/commit.c:446
msgid "cannot do a partial commit during a cherry-pick."
msgstr "нельзя создать частичный коммит во время отбора лучшего коммита."
-#: builtin/commit.c:456
+#: builtin/commit.c:455
msgid "cannot read the index"
msgstr "не удалось прочитать индекс"
-#: builtin/commit.c:475
+#: builtin/commit.c:474
msgid "unable to write temporary index file"
msgstr "не удалось записать временный файл индекса"
-#: builtin/commit.c:580
+#: builtin/commit.c:579
#, c-format
msgid "commit '%s' lacks author header"
msgstr "у коммита «%s» отсутствует автор в заголовке"
-#: builtin/commit.c:582
+#: builtin/commit.c:581
#, c-format
msgid "commit '%s' has malformed author line"
msgstr "у коммита «%s» автор в неверном формате"
-#: builtin/commit.c:601
+#: builtin/commit.c:600
msgid "malformed --author parameter"
msgstr "параметр --author в неверном формате"
-#: builtin/commit.c:609
+#: builtin/commit.c:608
#, c-format
msgid "invalid date format: %s"
msgstr "неправильный формат даты: %s"
-#: builtin/commit.c:653
+#: builtin/commit.c:652
msgid ""
"unable to select a comment character that is not used\n"
"in the current commit message"
msgstr "нельзя выбрать символ комментария, который\nне используется в текущем сообщении коммита"
-#: builtin/commit.c:690 builtin/commit.c:723 builtin/commit.c:1080
+#: builtin/commit.c:689 builtin/commit.c:722 builtin/commit.c:1079
#, c-format
msgid "could not lookup commit %s"
msgstr "не удалось запросить коммит %s"
-#: builtin/commit.c:702 builtin/shortlog.c:273
+#: builtin/commit.c:701 builtin/shortlog.c:273
#, c-format
msgid "(reading log message from standard input)\n"
msgstr "(чтение файла журнала из стандартного ввода)\n"
-#: builtin/commit.c:704
+#: builtin/commit.c:703
msgid "could not read log from standard input"
msgstr "не удалось прочитать файл журнала из стандартного ввода"
-#: builtin/commit.c:708
+#: builtin/commit.c:707
#, c-format
msgid "could not read log file '%s'"
msgstr "не удалось прочитать файл журнала «%s»"
-#: builtin/commit.c:730
+#: builtin/commit.c:729
msgid "could not read MERGE_MSG"
msgstr "не удалось прочитать MERGE_MSG"
-#: builtin/commit.c:734
+#: builtin/commit.c:733
msgid "could not read SQUASH_MSG"
msgstr "не удалось прочитать SQUASH_MSG"
-#: builtin/commit.c:738 builtin/merge.c:1079
-#, c-format
-msgid "could not read '%s'"
-msgstr "не удалось прочитать «%s»"
-
-#: builtin/commit.c:785
+#: builtin/commit.c:784
msgid "could not write commit template"
msgstr "не удалось записать шаблон описания коммита"
-#: builtin/commit.c:803
+#: builtin/commit.c:802
#, c-format
msgid ""
"\n"
@@ -4307,7 +4766,7 @@ msgid ""
"and try again.\n"
msgstr "\nПохоже, что вы пытаетесь закоммитить слияние.\nЕсли это ошибка, пожалуйста удалите файл\n\t%s\nи попробуйте снова.\n"
-#: builtin/commit.c:808
+#: builtin/commit.c:807
#, c-format
msgid ""
"\n"
@@ -4317,14 +4776,14 @@ msgid ""
"and try again.\n"
msgstr "\nПохоже, что вы пытаетесь закоммитить отбор лучшего.\nЕсли это ошибка, пожалуйста удалите файл\n\t%s\nи попробуйте снова.\n"
-#: builtin/commit.c:821
+#: builtin/commit.c:820
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
"with '%c' will be ignored, and an empty message aborts the commit.\n"
msgstr "Пожалуйста, введите сообщение коммита для ваших изменений. Строки,\nначинающиеся с «%c» будут проигнорированы, а пустое сообщение\nотменяет процесс коммита.\n"
-#: builtin/commit.c:828
+#: builtin/commit.c:827
#, c-format
msgid ""
"Please enter the commit message for your changes. Lines starting\n"
@@ -4332,348 +4791,335 @@ msgid ""
"An empty message aborts the commit.\n"
msgstr "Пожалуйста, введите сообщение коммита для ваших изменений. Строки,\nначинающиеся с «%c» будут оставлены; вы можете удалить их вручную,\nесли хотите. Пустое сообщение отменяет процесс коммита.\n"
-#: builtin/commit.c:848
+#: builtin/commit.c:847
#, c-format
msgid "%sAuthor: %.*s <%.*s>"
msgstr "%sАвтор: %.*s <%.*s>"
-#: builtin/commit.c:856
+#: builtin/commit.c:855
#, c-format
msgid "%sDate: %s"
msgstr "%sДата: %s"
-#: builtin/commit.c:863
+#: builtin/commit.c:862
#, c-format
msgid "%sCommitter: %.*s <%.*s>"
msgstr "%sКоммитер: %.*s <%.*s>"
-#: builtin/commit.c:881
+#: builtin/commit.c:880
msgid "Cannot read index"
msgstr "Не удалось прочитать индекс"
-#: builtin/commit.c:938
+#: builtin/commit.c:937
msgid "Error building trees"
msgstr "Ошибка при построении деревьев"
-#: builtin/commit.c:953 builtin/tag.c:495
+#: builtin/commit.c:952 builtin/tag.c:495
#, c-format
msgid "Please supply the message using either -m or -F option.\n"
msgstr "Пожалуйста, укажите сообщение, при указании опций -m или -F.\n"
-#: builtin/commit.c:1055
+#: builtin/commit.c:1054
#, c-format
msgid "--author '%s' is not 'Name <email>' and matches no existing author"
msgstr "--author «%s» не в формате «Имя <почта>» и не совпадает с существующим автором"
-#: builtin/commit.c:1070 builtin/commit.c:1310
+#: builtin/commit.c:1069 builtin/commit.c:1309
#, c-format
msgid "Invalid untracked files mode '%s'"
msgstr "Неправильный режим неотслеживаемых файлов «%s»"
-#: builtin/commit.c:1107
+#: builtin/commit.c:1106
msgid "--long and -z are incompatible"
msgstr "--long и -z нельзя использовать одновременно"
-#: builtin/commit.c:1137
+#: builtin/commit.c:1136
msgid "Using both --reset-author and --author does not make sense"
msgstr "Указание одновременно опций --reset-author и --author не имеет смысла"
-#: builtin/commit.c:1146
+#: builtin/commit.c:1145
msgid "You have nothing to amend."
msgstr "Нечего исправлять."
-#: builtin/commit.c:1149
+#: builtin/commit.c:1148
msgid "You are in the middle of a merge -- cannot amend."
msgstr "Вы в процессе слияния — сейчас нельзя исправлять."
-#: builtin/commit.c:1151
+#: builtin/commit.c:1150
msgid "You are in the middle of a cherry-pick -- cannot amend."
msgstr "Вы в процессе отбора лучшего — сейчас нельзя исправлять."
-#: builtin/commit.c:1154
+#: builtin/commit.c:1153
msgid "Options --squash and --fixup cannot be used together"
msgstr "Опции --squash и --fixup не могут использоваться одновременно"
-#: builtin/commit.c:1164
+#: builtin/commit.c:1163
msgid "Only one of -c/-C/-F/--fixup can be used."
msgstr "Может использоваться только одна из опций -c/-C/-F/--fixup."
-#: builtin/commit.c:1166
+#: builtin/commit.c:1165
msgid "Option -m cannot be combined with -c/-C/-F/--fixup."
msgstr "Опция -m не может использоваться с -c/-C/-F/--fixup."
-#: builtin/commit.c:1174
+#: builtin/commit.c:1173
msgid "--reset-author can be used only with -C, -c or --amend."
msgstr "--reset-author может использоваться только одновременно с опциями -C, -c или --amend."
-#: builtin/commit.c:1191
+#: builtin/commit.c:1190
msgid "Only one of --include/--only/--all/--interactive/--patch can be used."
msgstr "Может использоваться только одна из опций --include/--only/--all/--interactive/--patch."
-#: builtin/commit.c:1193
+#: builtin/commit.c:1192
msgid "No paths with --include/--only does not make sense."
msgstr "Указание путей каталогов с опциями --include/--only не имеет смысла."
-#: builtin/commit.c:1195
+#: builtin/commit.c:1194
msgid "Clever... amending the last one with dirty index."
msgstr "Умно… отмена последнего с измененным индексом."
-#: builtin/commit.c:1197
+#: builtin/commit.c:1196
msgid "Explicit paths specified without -i or -o; assuming --only paths..."
msgstr "Пути явно указаны пути без опций -i или -o; предполагаю опцию --only…"
-#: builtin/commit.c:1209 builtin/tag.c:728
+#: builtin/commit.c:1208 builtin/tag.c:730
#, c-format
msgid "Invalid cleanup mode %s"
msgstr "Неправильное значение режима очистки %s"
-#: builtin/commit.c:1214
+#: builtin/commit.c:1213
msgid "Paths with -a does not make sense."
msgstr "С опцией -a указание пути не имеет смысла."
-#: builtin/commit.c:1324 builtin/commit.c:1603
+#: builtin/commit.c:1323 builtin/commit.c:1602
msgid "show status concisely"
msgstr "кратко показать статус"
-#: builtin/commit.c:1326 builtin/commit.c:1605
+#: builtin/commit.c:1325 builtin/commit.c:1604
msgid "show branch information"
msgstr "показать информацию о версии"
-#: builtin/commit.c:1328 builtin/commit.c:1607 builtin/push.c:509
+#: builtin/commit.c:1327 builtin/commit.c:1606 builtin/push.c:546
msgid "machine-readable output"
msgstr "машиночитаемый вывод"
-#: builtin/commit.c:1331 builtin/commit.c:1609
+#: builtin/commit.c:1330 builtin/commit.c:1608
msgid "show status in long format (default)"
msgstr "показать статус в длинном формате (по умолчанию)"
-#: builtin/commit.c:1334 builtin/commit.c:1612
+#: builtin/commit.c:1333 builtin/commit.c:1611
msgid "terminate entries with NUL"
msgstr "завершать записи НУЛЕВЫМ байтом"
-#: builtin/commit.c:1336 builtin/commit.c:1615 builtin/fast-export.c:980
-#: builtin/fast-export.c:983 builtin/tag.c:603
+#: builtin/commit.c:1335 builtin/commit.c:1614 builtin/fast-export.c:981
+#: builtin/fast-export.c:984 builtin/tag.c:604
msgid "mode"
msgstr "режим"
-#: builtin/commit.c:1337 builtin/commit.c:1615
+#: builtin/commit.c:1336 builtin/commit.c:1614
msgid "show untracked files, optional modes: all, normal, no. (Default: all)"
msgstr "показать неотслеживаемые файлы, опциональные режимы: all (все), normal (как обычно), no (нет). (По умолчанию: all)"
-#: builtin/commit.c:1340
+#: builtin/commit.c:1339
msgid "show ignored files"
msgstr "показать игнорируемые файлы"
-#: builtin/commit.c:1341 parse-options.h:152
+#: builtin/commit.c:1340 parse-options.h:155
msgid "when"
msgstr "когда"
-#: builtin/commit.c:1342
+#: builtin/commit.c:1341
msgid ""
"ignore changes to submodules, optional when: all, dirty, untracked. "
"(Default: all)"
msgstr "игнорировать изменения в подмодулях, опционально когда: all (всегда), dirty (измененные), untracked (неотслеживаемые). (По умолчанию: all)"
-#: builtin/commit.c:1344
+#: builtin/commit.c:1343
msgid "list untracked files in columns"
msgstr "показать неотслеживаемые файлы по столбцам"
-#: builtin/commit.c:1430
+#: builtin/commit.c:1429
msgid "couldn't look up newly created commit"
msgstr "нельзя запросить новосозданный коммит"
-#: builtin/commit.c:1432
+#: builtin/commit.c:1431
msgid "could not parse newly created commit"
msgstr "нельзя разобрать новосозданный коммит"
-#: builtin/commit.c:1477
+#: builtin/commit.c:1476
msgid "detached HEAD"
msgstr "отделенный HEAD"
-#: builtin/commit.c:1480
+#: builtin/commit.c:1479
msgid " (root-commit)"
msgstr " (корневой коммит)"
-#: builtin/commit.c:1573
+#: builtin/commit.c:1572
msgid "suppress summary after successful commit"
msgstr "не выводить сводку после успешного коммита"
-#: builtin/commit.c:1574
+#: builtin/commit.c:1573
msgid "show diff in commit message template"
msgstr "добавить список изменений в шаблон сообщения коммита"
-#: builtin/commit.c:1576
+#: builtin/commit.c:1575
msgid "Commit message options"
msgstr "Опции сообщения коммита"
-#: builtin/commit.c:1577 builtin/tag.c:601
+#: builtin/commit.c:1576 builtin/tag.c:602
msgid "read message from file"
msgstr "прочитать сообщение из файла"
-#: builtin/commit.c:1578
+#: builtin/commit.c:1577
msgid "author"
msgstr "автор"
-#: builtin/commit.c:1578
+#: builtin/commit.c:1577
msgid "override author for commit"
msgstr "подменить автора коммита"
-#: builtin/commit.c:1579 builtin/gc.c:280
+#: builtin/commit.c:1578 builtin/gc.c:268
msgid "date"
msgstr "дата"
-#: builtin/commit.c:1579
+#: builtin/commit.c:1578
msgid "override date for commit"
msgstr "подменить дату коммита"
-#: builtin/commit.c:1580 builtin/merge.c:218 builtin/notes.c:391
-#: builtin/notes.c:554 builtin/tag.c:599
+#: builtin/commit.c:1579 builtin/merge.c:218 builtin/notes.c:392
+#: builtin/notes.c:555 builtin/tag.c:600
msgid "message"
msgstr "сообщение"
-#: builtin/commit.c:1580
+#: builtin/commit.c:1579
msgid "commit message"
msgstr "сообщение коммита"
-#: builtin/commit.c:1581
+#: builtin/commit.c:1580
msgid "reuse and edit message from specified commit"
msgstr "использовать и отредактировать сообщение от указанного коммита"
-#: builtin/commit.c:1582
+#: builtin/commit.c:1581
msgid "reuse message from specified commit"
msgstr "использовать сообщение указанного коммита"
-#: builtin/commit.c:1583
+#: builtin/commit.c:1582
msgid "use autosquash formatted message to fixup specified commit"
msgstr "использовать форматированное сообщение автоуплотнения для исправления указанного коммита"
-#: builtin/commit.c:1584
+#: builtin/commit.c:1583
msgid "use autosquash formatted message to squash specified commit"
msgstr "использовать форматированное сообщение автоуплотнения для уплотнения указанного коммита"
-#: builtin/commit.c:1585
+#: builtin/commit.c:1584
msgid "the commit is authored by me now (used with -C/-c/--amend)"
msgstr "коммит теперь за моим авторством (с использованием -C/-c/--amend)"
-#: builtin/commit.c:1586 builtin/log.c:1191 builtin/revert.c:86
+#: builtin/commit.c:1585 builtin/log.c:1216 builtin/revert.c:86
msgid "add Signed-off-by:"
msgstr "добавить Signed-off-by:"
-#: builtin/commit.c:1587
+#: builtin/commit.c:1586
msgid "use specified template file"
msgstr "использовать указанный файл шаблона"
-#: builtin/commit.c:1588
+#: builtin/commit.c:1587
msgid "force edit of commit"
msgstr "принудительно редактировать коммит"
-#: builtin/commit.c:1589
+#: builtin/commit.c:1588
msgid "default"
msgstr "по-умолчанию"
-#: builtin/commit.c:1589 builtin/tag.c:604
+#: builtin/commit.c:1588 builtin/tag.c:605
msgid "how to strip spaces and #comments from message"
msgstr "как удалять пробелы и #комментарии из сообщения коммита"
-#: builtin/commit.c:1590
+#: builtin/commit.c:1589
msgid "include status in commit message template"
msgstr "включить статус файлов в шаблон сообщения коммита"
-#: builtin/commit.c:1591 builtin/merge.c:225 builtin/revert.c:92
-#: builtin/tag.c:605
-msgid "key-id"
-msgstr "key-id"
-
-#: builtin/commit.c:1592 builtin/merge.c:226 builtin/revert.c:93
+#: builtin/commit.c:1591 builtin/merge.c:226 builtin/pull.c:156
+#: builtin/revert.c:93
msgid "GPG sign commit"
msgstr "подписать коммит с помощью GPG"
-#: builtin/commit.c:1595
+#: builtin/commit.c:1594
msgid "Commit contents options"
msgstr "Опции содержимого коммита"
-#: builtin/commit.c:1596
+#: builtin/commit.c:1595
msgid "commit all changed files"
msgstr "закоммитить все измененные файлы"
-#: builtin/commit.c:1597
+#: builtin/commit.c:1596
msgid "add specified files to index for commit"
msgstr "добавить указанные файлы в индекс для коммита"
-#: builtin/commit.c:1598
+#: builtin/commit.c:1597
msgid "interactively add files"
msgstr "интерактивное добавление файлов"
-#: builtin/commit.c:1599
+#: builtin/commit.c:1598
msgid "interactively add changes"
msgstr "интерактивное добавление изменений"
-#: builtin/commit.c:1600
+#: builtin/commit.c:1599
msgid "commit only specified files"
msgstr "закоммитить только указанные файлы"
-#: builtin/commit.c:1601
+#: builtin/commit.c:1600
msgid "bypass pre-commit hook"
msgstr "пропустить перехватчик перед-коммитом"
-#: builtin/commit.c:1602
+#: builtin/commit.c:1601
msgid "show what would be committed"
msgstr "показать, что будет закоммичено"
-#: builtin/commit.c:1613
+#: builtin/commit.c:1612
msgid "amend previous commit"
msgstr "исправить предыдущий коммит"
-#: builtin/commit.c:1614
+#: builtin/commit.c:1613
msgid "bypass post-rewrite hook"
msgstr "пропустить перехватчик после-перезаписи"
-#: builtin/commit.c:1619
+#: builtin/commit.c:1618
msgid "ok to record an empty change"
msgstr "разрешить запись пустого коммита"
-#: builtin/commit.c:1621
+#: builtin/commit.c:1620
msgid "ok to record a change with an empty message"
msgstr "разрешить запись изменений с пустым сообщением"
-#: builtin/commit.c:1650
+#: builtin/commit.c:1649
msgid "could not parse HEAD commit"
msgstr "не удалось разобрать HEAD коммит"
-#: builtin/commit.c:1689 builtin/merge.c:1076
-#, c-format
-msgid "could not open '%s' for reading"
-msgstr "не удалось открыть «%s» для чтения"
-
-#: builtin/commit.c:1696
+#: builtin/commit.c:1695
#, c-format
msgid "Corrupt MERGE_HEAD file (%s)"
msgstr "Файл MERGE_HEAD поврежден (%s)"
-#: builtin/commit.c:1703
+#: builtin/commit.c:1702
msgid "could not read MERGE_MODE"
msgstr "не удалось прочитать MERGE_MODE"
-#: builtin/commit.c:1722
+#: builtin/commit.c:1721
#, c-format
msgid "could not read commit message: %s"
msgstr "не удалось открыть сообщение коммита: %s"
-#: builtin/commit.c:1733
+#: builtin/commit.c:1732
#, c-format
msgid "Aborting commit; you did not edit the message.\n"
msgstr "Отмена коммита; вы не изменили сообщение.\n"
-#: builtin/commit.c:1738
+#: builtin/commit.c:1737
#, c-format
msgid "Aborting commit due to empty commit message.\n"
msgstr "Отмена коммита из-за пустого сообщения коммита.\n"
-#: builtin/commit.c:1753 builtin/merge.c:829 builtin/merge.c:854
-msgid "failed to write commit object"
-msgstr "сбой записи объекта коммита"
-
-#: builtin/commit.c:1786
+#: builtin/commit.c:1785
msgid ""
"Repository has been updated, but unable to write\n"
"new_index file. Check that disk is not full and quota is\n"
@@ -4684,131 +5130,135 @@ msgstr "Репозиторий был обновлен, но не удалось
msgid "git config [<options>]"
msgstr "git config [<опции>]"
-#: builtin/config.c:53
+#: builtin/config.c:54
msgid "Config file location"
msgstr "Размещение файла конфигурации"
-#: builtin/config.c:54
+#: builtin/config.c:55
msgid "use global config file"
msgstr "использовать глобальный файл конфигурации"
-#: builtin/config.c:55
+#: builtin/config.c:56
msgid "use system config file"
msgstr "использовать системный файл конфигурации"
-#: builtin/config.c:56
+#: builtin/config.c:57
msgid "use repository config file"
msgstr "использовать файл конфигурации репозитория"
-#: builtin/config.c:57
+#: builtin/config.c:58
msgid "use given config file"
msgstr "использовать указанный файл конфигурации"
-#: builtin/config.c:58
+#: builtin/config.c:59
msgid "blob-id"
msgstr "идент-двоичн-объекта"
-#: builtin/config.c:58
+#: builtin/config.c:59
msgid "read config from given blob object"
msgstr "прочитать настройки из указанного двоичного объекта"
-#: builtin/config.c:59
+#: builtin/config.c:60
msgid "Action"
msgstr "Действие"
-#: builtin/config.c:60
+#: builtin/config.c:61
msgid "get value: name [value-regex]"
msgstr "получить значение: имя [шаблон-значений]"
-#: builtin/config.c:61
+#: builtin/config.c:62
msgid "get all values: key [value-regex]"
msgstr "получить все значения: ключ [шаблон-значений]"
-#: builtin/config.c:62
+#: builtin/config.c:63
msgid "get values for regexp: name-regex [value-regex]"
msgstr "получить значения по шаблону: шаблон-имен [шаблон-значений]"
-#: builtin/config.c:63
+#: builtin/config.c:64
msgid "get value specific for the URL: section[.var] URL"
msgstr "получить значение, специфичное для URL: раздел[.переменная] URL"
-#: builtin/config.c:64
+#: builtin/config.c:65
msgid "replace all matching variables: name value [value_regex]"
msgstr "заменить все соответствующие переменные: имя значение [шаблон-значений]"
-#: builtin/config.c:65
+#: builtin/config.c:66
msgid "add a new variable: name value"
msgstr "добавить новую переменную: имя значение"
-#: builtin/config.c:66
+#: builtin/config.c:67
msgid "remove a variable: name [value-regex]"
msgstr "удалить переменную: имя [шаблон-значений]"
-#: builtin/config.c:67
+#: builtin/config.c:68
msgid "remove all matches: name [value-regex]"
msgstr "удалить все совпадающие: имя [шаблон-значений]"
-#: builtin/config.c:68
+#: builtin/config.c:69
msgid "rename section: old-name new-name"
msgstr "переименовать раздел: старое-имя новое-имя"
-#: builtin/config.c:69
+#: builtin/config.c:70
msgid "remove a section: name"
msgstr "удалить раздел: имя"
-#: builtin/config.c:70
+#: builtin/config.c:71
msgid "list all"
msgstr "показать весь список"
-#: builtin/config.c:71
+#: builtin/config.c:72
msgid "open an editor"
msgstr "открыть в редакторе"
-#: builtin/config.c:72
+#: builtin/config.c:73
msgid "find the color configured: slot [default]"
msgstr "найти настроенный цвет: раздел [по-умолчанию]"
-#: builtin/config.c:73
+#: builtin/config.c:74
msgid "find the color setting: slot [stdout-is-tty]"
msgstr "проверить, существует ли настроенный цвет: раздел [stdout-есть-tty]"
-#: builtin/config.c:74
+#: builtin/config.c:75
msgid "Type"
msgstr "Тип"
-#: builtin/config.c:75
+#: builtin/config.c:76
msgid "value is \"true\" or \"false\""
msgstr "значение — это «true» (правда) или «false» (ложь)"
-#: builtin/config.c:76
+#: builtin/config.c:77
msgid "value is decimal number"
msgstr "значение — это десятичное число"
-#: builtin/config.c:77
+#: builtin/config.c:78
msgid "value is --bool or --int"
msgstr "значение — это --bool или --int"
-#: builtin/config.c:78
+#: builtin/config.c:79
msgid "value is a path (file or directory name)"
msgstr "значение — это путь (к файлу или каталогу)"
-#: builtin/config.c:79
+#: builtin/config.c:80
msgid "Other"
msgstr "Другое"
-#: builtin/config.c:80
+#: builtin/config.c:81
msgid "terminate values with NUL byte"
msgstr "завершать значения НУЛЕВЫМ байтом"
-#: builtin/config.c:81
+#: builtin/config.c:82
+msgid "show variable names only"
+msgstr "показывать только имена переменных"
+
+#: builtin/config.c:83
msgid "respect include directives on lookup"
msgstr "учитывать директивы include (включения файлов) при запросе"
-#: builtin/config.c:316
+#: builtin/config.c:311
msgid "unable to parse default color value"
msgstr "не удалось разобрать значение цвета по умолчанию"
-#: builtin/config.c:457
+#: builtin/config.c:449
#, c-format
msgid ""
"# This is Git's per-user configuration file.\n"
@@ -4818,7 +5268,7 @@ msgid ""
"#\temail = %s\n"
msgstr "# Это файл конфигурации пользователя Git.\n[user]\n# Пожалуйста, адаптируйте и раскомментируйте следующие строки:\n#\tuser = %s\n#\temail = %s\n"
-#: builtin/config.c:587
+#: builtin/config.c:583
#, c-format
msgid "cannot create configuration file %s"
msgstr "не удалось создать файл конфигурации %s"
@@ -4854,7 +5304,7 @@ msgstr "аннотированная метка %s не содержит вст
msgid "tag '%s' is really '%s' here"
msgstr "метка «%s» уже здесь «%s»"
-#: builtin/describe.c:250 builtin/log.c:452
+#: builtin/describe.c:250 builtin/log.c:459
#, c-format
msgid "Not a valid object name %s"
msgstr "Недействительное имя объекта %s"
@@ -4994,502 +5444,491 @@ msgstr "передано больше двух двоичных объектов
msgid "unhandled object '%s' given."
msgstr "передан необработанный объект «%s»."
-#: builtin/fast-export.c:24
+#: builtin/fast-export.c:25
msgid "git fast-export [rev-list-opts]"
msgstr "git fast-export [опции-rev-list]"
-#: builtin/fast-export.c:979
+#: builtin/fast-export.c:980
msgid "show progress after <n> objects"
msgstr "показать прогресс после <n> объектов"
-#: builtin/fast-export.c:981
+#: builtin/fast-export.c:982
msgid "select handling of signed tags"
msgstr "выбор обработки подписанных меток"
-#: builtin/fast-export.c:984
+#: builtin/fast-export.c:985
msgid "select handling of tags that tag filtered objects"
msgstr "выбор обработки меток, которыми помечены отфильтрованные объекты"
-#: builtin/fast-export.c:987
+#: builtin/fast-export.c:988
msgid "Dump marks to this file"
msgstr "Записать пометки в этот файл"
-#: builtin/fast-export.c:989
+#: builtin/fast-export.c:990
msgid "Import marks from this file"
msgstr "Импортировать пометки из этого файла"
-#: builtin/fast-export.c:991
+#: builtin/fast-export.c:992
msgid "Fake a tagger when tags lack one"
msgstr "Подделать автора метки, если у метки он отсутствует"
-#: builtin/fast-export.c:993
+#: builtin/fast-export.c:994
msgid "Output full tree for each commit"
msgstr "Вывести полное дерево для каждого коммита"
-#: builtin/fast-export.c:995
+#: builtin/fast-export.c:996
msgid "Use the done feature to terminate the stream"
msgstr "Использовать пометку завершения в конце потока"
-#: builtin/fast-export.c:996
+#: builtin/fast-export.c:997
msgid "Skip output of blob data"
msgstr "Пропустить вывод данных двоичных объектов"
-#: builtin/fast-export.c:997
+#: builtin/fast-export.c:998
msgid "refspec"
msgstr "спецификация ссылки"
-#: builtin/fast-export.c:998
+#: builtin/fast-export.c:999
msgid "Apply refspec to exported refs"
msgstr "Применить спецификацию ссылки к экспортируемым ссылкам"
-#: builtin/fast-export.c:999
+#: builtin/fast-export.c:1000
msgid "anonymize output"
msgstr "сделать вывод анонимным"
-#: builtin/fetch.c:19
+#: builtin/fetch.c:20
msgid "git fetch [<options>] [<repository> [<refspec>...]]"
msgstr "git fetch [<опции>] [<репозиторий> [<спецификация-ссылки>…]]"
-#: builtin/fetch.c:20
+#: builtin/fetch.c:21
msgid "git fetch [<options>] <group>"
msgstr "git fetch [<опции>] <группа>"
-#: builtin/fetch.c:21
+#: builtin/fetch.c:22
msgid "git fetch --multiple [<options>] [(<repository> | <group>)...]"
msgstr "git fetch --multiple [<опции>] [(<репозиторий> | <группа>)…]"
-#: builtin/fetch.c:22
+#: builtin/fetch.c:23
msgid "git fetch --all [<options>]"
msgstr "git fetch --all [<опции>]"
-#: builtin/fetch.c:89
+#: builtin/fetch.c:90 builtin/pull.c:162
msgid "fetch from all remotes"
msgstr "извлечь со всех внешних репозиториев"
-#: builtin/fetch.c:91
+#: builtin/fetch.c:92 builtin/pull.c:165
msgid "append to .git/FETCH_HEAD instead of overwriting"
msgstr "дописать к .git/FETCH_HEAD вместо перезаписи"
-#: builtin/fetch.c:93
+#: builtin/fetch.c:94 builtin/pull.c:168
msgid "path to upload pack on remote end"
msgstr "путь к программе упаковки пакета на машине с внешним репозиторием"
-#: builtin/fetch.c:94
+#: builtin/fetch.c:95 builtin/pull.c:170
msgid "force overwrite of local branch"
msgstr "принудительная перезапись локальной ветки"
-#: builtin/fetch.c:96
+#: builtin/fetch.c:97
msgid "fetch from multiple remotes"
msgstr "извлечь с нескольких внешних репозиториев"
-#: builtin/fetch.c:98
+#: builtin/fetch.c:99 builtin/pull.c:172
msgid "fetch all tags and associated objects"
msgstr "извлечь все метки и связанные объекты"
-#: builtin/fetch.c:100
+#: builtin/fetch.c:101
msgid "do not fetch all tags (--no-tags)"
msgstr "не извлекать все метки (--no-tags)"
-#: builtin/fetch.c:102
+#: builtin/fetch.c:103 builtin/pull.c:175
msgid "prune remote-tracking branches no longer on remote"
msgstr "почистить отслеживаемые внешние ветки, которых уже нет на внешнем репозитории"
-#: builtin/fetch.c:103
+#: builtin/fetch.c:104 builtin/pull.c:178
msgid "on-demand"
msgstr "по требованию"
-#: builtin/fetch.c:104
+#: builtin/fetch.c:105 builtin/pull.c:179
msgid "control recursive fetching of submodules"
msgstr "управление рекурсивным извлечением подмодулей"
-#: builtin/fetch.c:108
+#: builtin/fetch.c:109 builtin/pull.c:184
msgid "keep downloaded pack"
msgstr "оставить загруженный пакет данных"
-#: builtin/fetch.c:110
+#: builtin/fetch.c:111
msgid "allow updating of HEAD ref"
msgstr "разрешить обновление ссылки HEAD"
-#: builtin/fetch.c:113
+#: builtin/fetch.c:114 builtin/pull.c:187
msgid "deepen history of shallow clone"
msgstr "глубокая история частичного клона"
-#: builtin/fetch.c:115
+#: builtin/fetch.c:116 builtin/pull.c:190
msgid "convert to a complete repository"
msgstr "преобразовать в полный репозиторий"
-#: builtin/fetch.c:117 builtin/log.c:1208
+#: builtin/fetch.c:118 builtin/log.c:1233
msgid "dir"
msgstr "каталог"
-#: builtin/fetch.c:118
+#: builtin/fetch.c:119
msgid "prepend this to submodule path output"
msgstr "присоединять это спереди к выводу путей подмодуля"
-#: builtin/fetch.c:121
+#: builtin/fetch.c:122
msgid "default mode for recursion"
msgstr "режим по умолчанию для рекурсии"
-#: builtin/fetch.c:123
+#: builtin/fetch.c:124 builtin/pull.c:193
msgid "accept refs that update .git/shallow"
msgstr "принимать ссылки, которые обновляют .git/shallow"
-#: builtin/fetch.c:124
+#: builtin/fetch.c:125 builtin/pull.c:195
msgid "refmap"
msgstr "соответствие-ссылок"
-#: builtin/fetch.c:125
+#: builtin/fetch.c:126 builtin/pull.c:196
msgid "specify fetch refmap"
msgstr "указать соответствие ссылок при извлечении"
-#: builtin/fetch.c:377
+#: builtin/fetch.c:378
msgid "Couldn't find remote ref HEAD"
msgstr "Не удалось найти ссылку HEAD на внешнем репозитории"
-#: builtin/fetch.c:457
+#: builtin/fetch.c:458
#, c-format
msgid "object %s not found"
msgstr "объект %s не найден"
-#: builtin/fetch.c:462
+#: builtin/fetch.c:463
msgid "[up to date]"
msgstr "[актуально]"
-#: builtin/fetch.c:476
+#: builtin/fetch.c:477
#, c-format
msgid "! %-*s %-*s -> %s (can't fetch in current branch)"
msgstr "! %-*s %-*s → %s (не удалось извлечь в текущую ветку)"
-#: builtin/fetch.c:477 builtin/fetch.c:563
+#: builtin/fetch.c:478 builtin/fetch.c:564
msgid "[rejected]"
msgstr "[отклонено]"
-#: builtin/fetch.c:488
+#: builtin/fetch.c:489
msgid "[tag update]"
msgstr "[обновление метки]"
-#: builtin/fetch.c:490 builtin/fetch.c:525 builtin/fetch.c:543
+#: builtin/fetch.c:491 builtin/fetch.c:526 builtin/fetch.c:544
msgid " (unable to update local ref)"
msgstr " (не удалось обновить локальную ссылку)"
-#: builtin/fetch.c:508
+#: builtin/fetch.c:509
msgid "[new tag]"
msgstr "[новая метка]"
-#: builtin/fetch.c:511
+#: builtin/fetch.c:512
msgid "[new branch]"
msgstr "[новая ветка]"
-#: builtin/fetch.c:514
+#: builtin/fetch.c:515
msgid "[new ref]"
msgstr "[новая ссылка]"
-#: builtin/fetch.c:559
+#: builtin/fetch.c:560
msgid "unable to update local ref"
msgstr "не удалось обновить локальную ссылку"
-#: builtin/fetch.c:559
+#: builtin/fetch.c:560
msgid "forced update"
msgstr "принудительное обновление"
-#: builtin/fetch.c:565
+#: builtin/fetch.c:566
msgid "(non-fast-forward)"
msgstr "(без перемотки вперед)"
-#: builtin/fetch.c:599 builtin/fetch.c:832
+#: builtin/fetch.c:600 builtin/fetch.c:842
#, c-format
msgid "cannot open %s: %s\n"
msgstr "не удалось открыть %s: %s\n"
-#: builtin/fetch.c:608
+#: builtin/fetch.c:609
#, c-format
msgid "%s did not send all necessary objects\n"
msgstr "%s не отправил все необходимые объекты\n"
-#: builtin/fetch.c:626
+#: builtin/fetch.c:627
#, c-format
msgid "reject %s because shallow roots are not allowed to be updated"
msgstr "%s отклонено из-за того, что частичные корни не разрешено обновлять"
-#: builtin/fetch.c:714 builtin/fetch.c:797
+#: builtin/fetch.c:715 builtin/fetch.c:807
#, c-format
msgid "From %.*s\n"
msgstr "Из %.*s\n"
-#: builtin/fetch.c:725
+#: builtin/fetch.c:726
#, c-format
msgid ""
"some local refs could not be updated; try running\n"
" 'git remote prune %s' to remove any old, conflicting branches"
msgstr "не удалось обновить некоторые локальные ссылки; попробуйте запустить «git remote prune %s», чтобы почистить старые, конфликтующие ветки"
-#: builtin/fetch.c:777
+#: builtin/fetch.c:778
#, c-format
msgid " (%s will become dangling)"
msgstr " (%s будет висящей веткой)"
-#: builtin/fetch.c:778
+#: builtin/fetch.c:779
#, c-format
msgid " (%s has become dangling)"
msgstr " (%s стала висящей веткой)"
-#: builtin/fetch.c:802
+#: builtin/fetch.c:811
msgid "[deleted]"
msgstr "[удалено]"
-#: builtin/fetch.c:803 builtin/remote.c:1057
+#: builtin/fetch.c:812 builtin/remote.c:1034
msgid "(none)"
msgstr "(нет)"
-#: builtin/fetch.c:822
+#: builtin/fetch.c:832
#, c-format
msgid "Refusing to fetch into current branch %s of non-bare repository"
msgstr "Отказ получения в текущую ветку %s не голого репозитория"
-#: builtin/fetch.c:841
+#: builtin/fetch.c:851
#, c-format
msgid "Option \"%s\" value \"%s\" is not valid for %s"
msgstr "Неправильное значение «%2$s» для параметра «%1$s» для %3$s"
-#: builtin/fetch.c:844
+#: builtin/fetch.c:854
#, c-format
msgid "Option \"%s\" is ignored for %s\n"
msgstr "Параметр «%s» игнорируется для %s\n"
-#: builtin/fetch.c:900
+#: builtin/fetch.c:910
#, c-format
msgid "Don't know how to fetch from %s"
msgstr "Не знаю как извлечь с %s"
-#: builtin/fetch.c:1063
+#: builtin/fetch.c:1071
#, c-format
msgid "Fetching %s\n"
msgstr "Извлечение из %s\n"
-#: builtin/fetch.c:1065 builtin/remote.c:90
+#: builtin/fetch.c:1073 builtin/remote.c:90
#, c-format
msgid "Could not fetch %s"
msgstr "Не удалось извлечь %s"
-#: builtin/fetch.c:1083
+#: builtin/fetch.c:1091
msgid ""
"No remote repository specified. Please, specify either a URL or a\n"
"remote name from which new revisions should be fetched."
msgstr "Не указан внешний репозиторий. Укажите URL или имя внешнего репозитория из которого должны извлекаться новые редакции."
-#: builtin/fetch.c:1106
+#: builtin/fetch.c:1114
msgid "You need to specify a tag name."
msgstr "Вам нужно указать имя метки."
-#: builtin/fetch.c:1148
+#: builtin/fetch.c:1156
msgid "--depth and --unshallow cannot be used together"
msgstr "нельзя использовать одновременно --depth и --unshallow"
-#: builtin/fetch.c:1150
+#: builtin/fetch.c:1158
msgid "--unshallow on a complete repository does not make sense"
msgstr "--unshallow не имеет смысла на полном репозитории"
-#: builtin/fetch.c:1173
+#: builtin/fetch.c:1181
msgid "fetch --all does not take a repository argument"
msgstr "fetch --all не принимает имя репозитория как аргумент"
-#: builtin/fetch.c:1175
+#: builtin/fetch.c:1183
msgid "fetch --all does not make sense with refspecs"
msgstr "fetch --all не имеет смысла при указании спецификаций ссылок"
-#: builtin/fetch.c:1186
+#: builtin/fetch.c:1194
#, c-format
msgid "No such remote or remote group: %s"
msgstr "Нет такого внешнего репозитория или группы: %s"
-#: builtin/fetch.c:1194
+#: builtin/fetch.c:1202
msgid "Fetching a group and specifying refspecs does not make sense"
msgstr "Получение группы и указание спецификаций ссылок не имеет смысла"
-#: builtin/fmt-merge-msg.c:13
+#: builtin/fmt-merge-msg.c:14
msgid ""
"git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] [--file <file>]"
msgstr "git fmt-merge-msg [-m <сообщение>] [--log[=<n>] | --no-log] [--file <файл>]"
-#: builtin/fmt-merge-msg.c:668 builtin/fmt-merge-msg.c:671 builtin/grep.c:698
-#: builtin/merge.c:198 builtin/repack.c:178 builtin/repack.c:182
-#: builtin/show-branch.c:664 builtin/show-ref.c:180 builtin/tag.c:590
-#: parse-options.h:131 parse-options.h:238
-msgid "n"
-msgstr "n"
-
-#: builtin/fmt-merge-msg.c:669
+#: builtin/fmt-merge-msg.c:670
msgid "populate log with at most <n> entries from shortlog"
msgstr "отправить в журнал <n> записей из короткого журнала"
-#: builtin/fmt-merge-msg.c:672
+#: builtin/fmt-merge-msg.c:673
msgid "alias for --log (deprecated)"
msgstr "сокращение для --log (устаревшее)"
-#: builtin/fmt-merge-msg.c:675
+#: builtin/fmt-merge-msg.c:676
msgid "text"
msgstr "текст"
-#: builtin/fmt-merge-msg.c:676
+#: builtin/fmt-merge-msg.c:677
msgid "use <text> as start of message"
msgstr "использовать <текст> как начальное сообщение"
-#: builtin/fmt-merge-msg.c:677
+#: builtin/fmt-merge-msg.c:678
msgid "file to read from"
msgstr "файл для чтения"
-#: builtin/for-each-ref.c:687
-msgid "unable to parse format"
-msgstr "не удалось разобрать формат"
-
-#: builtin/for-each-ref.c:1083
+#: builtin/for-each-ref.c:9
msgid "git for-each-ref [<options>] [<pattern>]"
msgstr "git for-each-ref [<опции>] [<шаблон>]"
-#: builtin/for-each-ref.c:1098
+#: builtin/for-each-ref.c:24
msgid "quote placeholders suitably for shells"
msgstr "выводить указатели места заполнения в подходящем формате для командного процессора"
-#: builtin/for-each-ref.c:1100
+#: builtin/for-each-ref.c:26
msgid "quote placeholders suitably for perl"
msgstr "выводить указатели места заполнения в подходящем формате для perl"
-#: builtin/for-each-ref.c:1102
+#: builtin/for-each-ref.c:28
msgid "quote placeholders suitably for python"
msgstr "выводить указатели места заполнения в подходящем формате для python"
-#: builtin/for-each-ref.c:1104
+#: builtin/for-each-ref.c:30
msgid "quote placeholders suitably for Tcl"
msgstr "выводить указатели места заполнения в подходящем формате для Tcl"
-#: builtin/for-each-ref.c:1107
+#: builtin/for-each-ref.c:33
msgid "show only <n> matched refs"
msgstr "показать только <n> совпадающих ссылок"
-#: builtin/for-each-ref.c:1108 builtin/replace.c:438
-msgid "format"
-msgstr "формат"
-
-#: builtin/for-each-ref.c:1108
+#: builtin/for-each-ref.c:34
msgid "format to use for the output"
msgstr "использовать формат для вывода"
-#: builtin/for-each-ref.c:1109
+#: builtin/for-each-ref.c:35
msgid "key"
msgstr "ключ"
-#: builtin/for-each-ref.c:1110
+#: builtin/for-each-ref.c:36
msgid "field name to sort on"
msgstr "имя поля, по которому выполнить сортировку"
-#: builtin/fsck.c:147 builtin/prune.c:137
+#: builtin/fsck.c:163 builtin/prune.c:137
msgid "Checking connectivity"
msgstr "Проверка соединения"
-#: builtin/fsck.c:548
+#: builtin/fsck.c:568
msgid "Checking object directories"
msgstr "Проверка каталогов объектов"
-#: builtin/fsck.c:611
+#: builtin/fsck.c:631
msgid "git fsck [<options>] [<object>...]"
msgstr "git fsck [<опции>] [<объект>…]"
-#: builtin/fsck.c:617
+#: builtin/fsck.c:637
msgid "show unreachable objects"
msgstr "показать недоступные объекты"
-#: builtin/fsck.c:618
+#: builtin/fsck.c:638
msgid "show dangling objects"
msgstr "показать объекты, на которые нет ссылок"
-#: builtin/fsck.c:619
+#: builtin/fsck.c:639
msgid "report tags"
msgstr "вывести отчет по меткам"
-#: builtin/fsck.c:620
+#: builtin/fsck.c:640
msgid "report root nodes"
msgstr "вывести отчет по корневым узлам"
-#: builtin/fsck.c:621
+#: builtin/fsck.c:641
msgid "make index objects head nodes"
msgstr "воспринимать объекты в индексе как корневые узлы"
-#: builtin/fsck.c:622
+#: builtin/fsck.c:642
msgid "make reflogs head nodes (default)"
msgstr "создать корневые узлы журналов ссылок (по умолчанию)"
-#: builtin/fsck.c:623
+#: builtin/fsck.c:643
msgid "also consider packs and alternate objects"
msgstr "также проверять пакеты и альтернативные объекты"
-#: builtin/fsck.c:624
+#: builtin/fsck.c:644
+msgid "check only connectivity"
+msgstr "только проверить соединение"
+
+#: builtin/fsck.c:645
msgid "enable more strict checking"
msgstr "использовать более строгую проверку"
-#: builtin/fsck.c:626
+#: builtin/fsck.c:647
msgid "write dangling objects in .git/lost-found"
msgstr "записать объекты на которые нет ссылок в .git/lost-found"
-#: builtin/fsck.c:627 builtin/prune.c:107
+#: builtin/fsck.c:648 builtin/prune.c:107
msgid "show progress"
msgstr "показать прогресс выполнения"
-#: builtin/fsck.c:677
+#: builtin/fsck.c:707
msgid "Checking objects"
msgstr "Проверка объектов"
-#: builtin/gc.c:24
+#: builtin/gc.c:25
msgid "git gc [<options>]"
msgstr "git gc [<опции>]"
-#: builtin/gc.c:67
+#: builtin/gc.c:55
#, c-format
msgid "Invalid %s: '%s'"
msgstr "Недействительный %s: «%s»"
-#: builtin/gc.c:112
+#: builtin/gc.c:100
#, c-format
msgid "insanely long object directory %.*s"
msgstr "слишком длинный путь к каталогу объекта %.*s"
-#: builtin/gc.c:281
+#: builtin/gc.c:269
msgid "prune unreferenced objects"
msgstr "почистить объекты, на которые нет ссылок"
-#: builtin/gc.c:283
+#: builtin/gc.c:271
msgid "be more thorough (increased runtime)"
msgstr "проверять более внимательно (занимает больше времени)"
-#: builtin/gc.c:284
+#: builtin/gc.c:272
msgid "enable auto-gc mode"
msgstr "включить режим auto-gc"
-#: builtin/gc.c:285
+#: builtin/gc.c:273
msgid "force running gc even if there may be another gc running"
msgstr "принудительно запустить gc, даже есть другая копия gc уже запущена"
-#: builtin/gc.c:327
+#: builtin/gc.c:315
#, c-format
msgid "Auto packing the repository in background for optimum performance.\n"
msgstr "Автоматическая упаковка репозитория в фоне, для оптимальной производительности.\n"
-#: builtin/gc.c:329
+#: builtin/gc.c:317
#, c-format
msgid "Auto packing the repository for optimum performance.\n"
msgstr "Автоматическая упаковка репозитория, для оптимальной производительности.\n"
-#: builtin/gc.c:330
+#: builtin/gc.c:318
#, c-format
msgid "See \"git help gc\" for manual housekeeping.\n"
msgstr "Смотрите «git help gc» руководства по ручной очистке.\n"
-#: builtin/gc.c:348
+#: builtin/gc.c:336
#, c-format
msgid ""
"gc is already running on machine '%s' pid %<PRIuMAX> (use --force if not)"
msgstr "gc уже запущен на этом компьютере «%s» pid %<PRIuMAX> (если нет, используйте --force)"
-#: builtin/gc.c:376
+#: builtin/gc.c:364
msgid ""
"There are too many unreachable loose objects; run 'git prune' to remove "
"them."
@@ -5730,7 +6169,7 @@ msgstr "git hash-object [-t <тип>] [-w] [--path=<файл> | --no-filters] [-
msgid "git hash-object --stdin-paths < <list-of-paths>"
msgstr "git hash-object --stdin-paths < <список-путей>"
-#: builtin/hash-object.c:92 builtin/tag.c:612
+#: builtin/hash-object.c:92 builtin/tag.c:614
msgid "type"
msgstr "тип"
@@ -5879,27 +6318,27 @@ msgstr "использование: %s%s"
msgid "`git %s' is aliased to `%s'"
msgstr "«git %s» — это сокращение для «%s»"
-#: builtin/index-pack.c:151
+#: builtin/index-pack.c:152
#, c-format
msgid "unable to open %s"
msgstr "не удалось открыть %s"
-#: builtin/index-pack.c:201
+#: builtin/index-pack.c:202
#, c-format
msgid "object type mismatch at %s"
msgstr "несоответствие типа объекта на %s"
-#: builtin/index-pack.c:221
+#: builtin/index-pack.c:222
#, c-format
msgid "did not receive expected object %s"
msgstr "ожидаемый объект не получен на %s"
-#: builtin/index-pack.c:224
+#: builtin/index-pack.c:225
#, c-format
msgid "object %s: expected type %s, found %s"
msgstr "объект %s: ожидаемый тип %s, получен %s"
-#: builtin/index-pack.c:266
+#: builtin/index-pack.c:267
#, c-format
msgid "cannot fill %d byte"
msgid_plural "cannot fill %d bytes"
@@ -5908,69 +6347,69 @@ msgstr[1] "не удалось заполнить %d байта"
msgstr[2] "не удалось заполнить %d байтов"
msgstr[3] "не удалось заполнить %d байтов"
-#: builtin/index-pack.c:276
+#: builtin/index-pack.c:277
msgid "early EOF"
msgstr "неожиданный конец файла"
-#: builtin/index-pack.c:277
+#: builtin/index-pack.c:278
msgid "read error on input"
msgstr "ошибка чтения ввода"
-#: builtin/index-pack.c:289
+#: builtin/index-pack.c:290
msgid "used more bytes than were available"
msgstr "использовано больше байт, чем было доступно"
-#: builtin/index-pack.c:296
+#: builtin/index-pack.c:297
msgid "pack too large for current definition of off_t"
msgstr "пакет слишком большой для текущего определения off_t"
-#: builtin/index-pack.c:312
+#: builtin/index-pack.c:313
#, c-format
msgid "unable to create '%s'"
msgstr "не удалось создать «%s»"
-#: builtin/index-pack.c:317
+#: builtin/index-pack.c:318
#, c-format
msgid "cannot open packfile '%s'"
msgstr "не удалось открыть файл пакета «%s»"
-#: builtin/index-pack.c:331
+#: builtin/index-pack.c:332
msgid "pack signature mismatch"
msgstr "несоответствие подписи пакета"
-#: builtin/index-pack.c:333
+#: builtin/index-pack.c:334
#, c-format
msgid "pack version %<PRIu32> unsupported"
msgstr "версия пакета %<PRIu32> не поддерживается"
-#: builtin/index-pack.c:351
+#: builtin/index-pack.c:352
#, c-format
msgid "pack has bad object at offset %lu: %s"
msgstr "в пакете содержится поврежденный объект по смещению %lu: %s"
-#: builtin/index-pack.c:472
+#: builtin/index-pack.c:473
#, c-format
msgid "inflate returned %d"
msgstr "программа сжатия вернула %d"
-#: builtin/index-pack.c:521
+#: builtin/index-pack.c:522
msgid "offset value overflow for delta base object"
msgstr "переполнение значения смещения у базового объекта дельты"
-#: builtin/index-pack.c:529
+#: builtin/index-pack.c:530
msgid "delta base offset is out of bound"
msgstr "смещение базовой дельты вышло за допустимые пределы"
-#: builtin/index-pack.c:537
+#: builtin/index-pack.c:538
#, c-format
msgid "unknown object type %d"
msgstr "неизвестный тип объекта %d"
-#: builtin/index-pack.c:568
+#: builtin/index-pack.c:569
msgid "cannot pread pack file"
msgstr "не удалось выполнить pread для файла пакета"
-#: builtin/index-pack.c:570
+#: builtin/index-pack.c:571
#, c-format
msgid "premature end of pack file, %lu byte missing"
msgid_plural "premature end of pack file, %lu bytes missing"
@@ -5979,33 +6418,33 @@ msgstr[1] "преждевременное окончание файла паке
msgstr[2] "преждевременное окончание файла пакета, %lu байтов отсутствует"
msgstr[3] "преждевременное окончание файла пакета, %lu байтов отсутствует"
-#: builtin/index-pack.c:596
+#: builtin/index-pack.c:597
msgid "serious inflate inconsistency"
msgstr "серьезное несоответствие при распаковке"
-#: builtin/index-pack.c:742 builtin/index-pack.c:748 builtin/index-pack.c:771
-#: builtin/index-pack.c:805 builtin/index-pack.c:814
+#: builtin/index-pack.c:743 builtin/index-pack.c:749 builtin/index-pack.c:772
+#: builtin/index-pack.c:806 builtin/index-pack.c:815
#, c-format
msgid "SHA1 COLLISION FOUND WITH %s !"
msgstr "НАЙДЕНА КОЛЛИЗИЯ SHA1 С %s !"
-#: builtin/index-pack.c:745 builtin/pack-objects.c:162
+#: builtin/index-pack.c:746 builtin/pack-objects.c:162
#: builtin/pack-objects.c:254
#, c-format
msgid "unable to read %s"
msgstr "не удалось прочитать %s"
-#: builtin/index-pack.c:811
+#: builtin/index-pack.c:812
#, c-format
msgid "cannot read existing object %s"
msgstr "не удалось прочитать существующий объект %s"
-#: builtin/index-pack.c:825
+#: builtin/index-pack.c:826
#, c-format
msgid "invalid blob object %s"
msgstr "неправильный файл двоичного объекта %s"
-#: builtin/index-pack.c:839
+#: builtin/index-pack.c:840
#, c-format
msgid "invalid %s"
msgstr "неправильный %s"
@@ -6121,7 +6560,7 @@ msgstr "плохой pack.indexversion=%<PRIu32>"
msgid "invalid number of threads specified (%d)"
msgstr "указано неправильное количество потоков (%d)"
-#: builtin/index-pack.c:1479 builtin/index-pack.c:1658
+#: builtin/index-pack.c:1479 builtin/index-pack.c:1663
#, c-format
msgid "no threads support, ignoring %s"
msgstr "нет поддержки потоков, игнорирование %s"
@@ -6154,110 +6593,110 @@ msgstr[1] "длина цепочки = %d: %lu объекта"
msgstr[2] "длина цепочки = %d: %lu объектов"
msgstr[3] "длина цепочки = %d: %lu объектов"
-#: builtin/index-pack.c:1622
+#: builtin/index-pack.c:1623
msgid "Cannot come back to cwd"
msgstr "Не удалось вернуться в текущий рабочий каталог"
-#: builtin/index-pack.c:1670 builtin/index-pack.c:1673
-#: builtin/index-pack.c:1685 builtin/index-pack.c:1689
+#: builtin/index-pack.c:1675 builtin/index-pack.c:1678
+#: builtin/index-pack.c:1690 builtin/index-pack.c:1694
#, c-format
msgid "bad %s"
msgstr "плохой %s"
-#: builtin/index-pack.c:1703
+#: builtin/index-pack.c:1708
msgid "--fix-thin cannot be used without --stdin"
msgstr "--fix-thin нельзя использовать без --stdin"
-#: builtin/index-pack.c:1707 builtin/index-pack.c:1716
+#: builtin/index-pack.c:1712 builtin/index-pack.c:1721
#, c-format
msgid "packfile name '%s' does not end with '.pack'"
msgstr "имя пакета «%s» не оканчивается на «.pack»"
-#: builtin/index-pack.c:1724
+#: builtin/index-pack.c:1729
msgid "--verify with no packfile name given"
msgstr "--verify без указания имени файла пакета"
-#: builtin/init-db.c:35
+#: builtin/init-db.c:36
#, c-format
msgid "Could not make %s writable by group"
msgstr "Не удалось предоставить доступ к %s на запись"
-#: builtin/init-db.c:62
+#: builtin/init-db.c:63
#, c-format
msgid "insanely long template name %s"
msgstr "слишком длинное имя шаблона %s"
-#: builtin/init-db.c:67
+#: builtin/init-db.c:68
#, c-format
msgid "cannot stat '%s'"
msgstr "не удалось выполнить stat для «%s»"
-#: builtin/init-db.c:73
+#: builtin/init-db.c:74
#, c-format
msgid "cannot stat template '%s'"
msgstr "не удалось выполнить stat для шаблона «%s»"
-#: builtin/init-db.c:80
+#: builtin/init-db.c:81
#, c-format
msgid "cannot opendir '%s'"
msgstr "не удалось выполнить opendir для «%s»"
-#: builtin/init-db.c:97
+#: builtin/init-db.c:98
#, c-format
msgid "cannot readlink '%s'"
msgstr "не удалось выполнить readlink для «%s»"
-#: builtin/init-db.c:99
+#: builtin/init-db.c:100
#, c-format
msgid "insanely long symlink %s"
msgstr "слишком длинная символьная ссылка %s"
-#: builtin/init-db.c:102
+#: builtin/init-db.c:103
#, c-format
msgid "cannot symlink '%s' '%s'"
msgstr "не удалось создать символьную ссылку «%s» на «%s»"
-#: builtin/init-db.c:106
+#: builtin/init-db.c:107
#, c-format
msgid "cannot copy '%s' to '%s'"
msgstr "не удалось скопировать файл «%s» в «%s»"
-#: builtin/init-db.c:110
+#: builtin/init-db.c:111
#, c-format
msgid "ignoring template %s"
msgstr "игнорирование шаблона %s"
-#: builtin/init-db.c:136
+#: builtin/init-db.c:137
#, c-format
msgid "insanely long template path %s"
msgstr "слишком длинный путь шаблона %s"
-#: builtin/init-db.c:144
+#: builtin/init-db.c:145
#, c-format
msgid "templates not found %s"
msgstr "шаблоны не найдены %s"
-#: builtin/init-db.c:157
+#: builtin/init-db.c:158
#, c-format
msgid "not copying templates of a wrong format version %d from '%s'"
msgstr "не копирую шаблоны в неправильной версии формата %d из «%s»"
-#: builtin/init-db.c:211
+#: builtin/init-db.c:212
#, c-format
msgid "insane git directory %s"
msgstr "слишком длинный путь к каталогу git %s"
-#: builtin/init-db.c:343 builtin/init-db.c:346
+#: builtin/init-db.c:344 builtin/init-db.c:347
#, c-format
msgid "%s already exists"
msgstr "%s уже существует"
-#: builtin/init-db.c:374
+#: builtin/init-db.c:375
#, c-format
msgid "unable to handle file type %d"
msgstr "не удается обработать файл типа %d"
-#: builtin/init-db.c:377
+#: builtin/init-db.c:378
#, c-format
msgid "unable to move %s to %s"
msgstr "не удается переместить файл %s в %s"
@@ -6265,59 +6704,55 @@ msgstr "не удается переместить файл %s в %s"
#. TRANSLATORS: The first '%s' is either "Reinitialized
#. existing" or "Initialized empty", the second " shared" or
#. "", and the last '%s%s' is the verbatim directory name.
-#: builtin/init-db.c:433
+#: builtin/init-db.c:434
#, c-format
msgid "%s%s Git repository in %s%s\n"
msgstr "%s%s репозиторий Git в %s%s\n"
-#: builtin/init-db.c:434
+#: builtin/init-db.c:435
msgid "Reinitialized existing"
msgstr "Реинициализация существующего"
-#: builtin/init-db.c:434
+#: builtin/init-db.c:435
msgid "Initialized empty"
msgstr "Инициализирован пустой"
-#: builtin/init-db.c:435
+#: builtin/init-db.c:436
msgid " shared"
msgstr " общий"
-#: builtin/init-db.c:482
+#: builtin/init-db.c:483
msgid ""
"git init [-q | --quiet] [--bare] [--template=<template-directory>] "
"[--shared[=<permissions>]] [<directory>]"
msgstr "git init [-q | --quiet] [--bare] [--template=<каталог-шаблонов>] [--shared[=<права-доступа>]] [<каталог>]"
-#: builtin/init-db.c:505
+#: builtin/init-db.c:506
msgid "permissions"
msgstr "права-доступа"
-#: builtin/init-db.c:506
+#: builtin/init-db.c:507
msgid "specify that the git repository is to be shared amongst several users"
msgstr "укажите, если репозиторий git будет использоваться несколькими пользователями"
-#: builtin/init-db.c:508 builtin/prune-packed.c:57 builtin/repack.c:171
-msgid "be quiet"
-msgstr "тихий режим"
-
-#: builtin/init-db.c:540 builtin/init-db.c:545
+#: builtin/init-db.c:541 builtin/init-db.c:546
#, c-format
msgid "cannot mkdir %s"
msgstr "не удалось выполнить mkdir %s"
-#: builtin/init-db.c:549
+#: builtin/init-db.c:550
#, c-format
msgid "cannot chdir to %s"
msgstr "не удалось выполнить chdir в %s"
-#: builtin/init-db.c:570
+#: builtin/init-db.c:571
#, c-format
msgid ""
"%s (or --work-tree=<directory>) not allowed without specifying %s (or --git-"
"dir=<directory>)"
msgstr "%s (или --work-tree=<каталог>) нельзя использовать без указания %s (или --git-dir=<каталог>)"
-#: builtin/init-db.c:598
+#: builtin/init-db.c:599
#, c-format
msgid "Cannot access work tree '%s'"
msgstr "Не удалось получить доступ к рабочему каталогу «%s»"
@@ -6340,284 +6775,279 @@ msgstr "завершитель"
msgid "trailer(s) to add"
msgstr "завершители для добавления"
-#: builtin/log.c:41
+#: builtin/log.c:43
msgid "git log [<options>] [<revision-range>] [[--] <path>...]"
msgstr "git log [<опции>] [<диапазон-редакций>] [[--] <путь>…]"
-#: builtin/log.c:42
+#: builtin/log.c:44
msgid "git show [<options>] <object>..."
msgstr "git show [<опции>] <объект>…"
-#: builtin/log.c:81
+#: builtin/log.c:83
#, c-format
msgid "invalid --decorate option: %s"
msgstr "неправильный параметр для --decorate: %s"
-#: builtin/log.c:127
+#: builtin/log.c:131
msgid "suppress diff output"
msgstr "не выводить различия"
-#: builtin/log.c:128
+#: builtin/log.c:132
msgid "show source"
msgstr "показать источник"
-#: builtin/log.c:129
+#: builtin/log.c:133
msgid "Use mail map file"
msgstr "Использовать файл соответствия почтовых адресов"
-#: builtin/log.c:130
+#: builtin/log.c:134
msgid "decorate options"
msgstr "опции формата вывода ссылок"
-#: builtin/log.c:133
+#: builtin/log.c:137
msgid "Process line range n,m in file, counting from 1"
msgstr "Обработать диапазон строк n,m из файла, начиная с 1"
-#: builtin/log.c:229
+#: builtin/log.c:233
#, c-format
msgid "Final output: %d %s\n"
msgstr "Финальный вывод: %d %s\n"
-#: builtin/log.c:458
+#: builtin/log.c:465
#, c-format
msgid "git show %s: bad file"
msgstr "git show %s: плохой файл"
-#: builtin/log.c:472 builtin/log.c:564
+#: builtin/log.c:479 builtin/log.c:572
#, c-format
msgid "Could not read object %s"
msgstr "Не удалось прочитать объект %s"
-#: builtin/log.c:588
+#: builtin/log.c:596
#, c-format
msgid "Unknown type: %d"
msgstr "Неизвестный тип объекта: %d"
-#: builtin/log.c:689
+#: builtin/log.c:714
msgid "format.headers without value"
msgstr "в format.headers не указано значение"
-#: builtin/log.c:773
+#: builtin/log.c:798
msgid "name of output directory is too long"
msgstr "слишком длинное имя выходного каталога"
-#: builtin/log.c:789
+#: builtin/log.c:814
#, c-format
msgid "Cannot open patch file %s"
msgstr "Ну удалось открыть файл изменений %s"
-#: builtin/log.c:803
+#: builtin/log.c:828
msgid "Need exactly one range."
msgstr "Нужен только один диапазон."
-#: builtin/log.c:813
+#: builtin/log.c:838
msgid "Not a range."
msgstr "Не является диапазоном."
-#: builtin/log.c:919
+#: builtin/log.c:944
msgid "Cover letter needs email format"
msgstr "Сопроводительное письмо должно быть в формате электронной почты"
-#: builtin/log.c:998
+#: builtin/log.c:1023
#, c-format
msgid "insane in-reply-to: %s"
msgstr "ошибка в поле in-reply-to: %s"
-#: builtin/log.c:1026
+#: builtin/log.c:1051
msgid "git format-patch [<options>] [<since> | <revision-range>]"
msgstr "git format-patch [<опции>] [<начиная-с> | <диапазон-редакций>]"
-#: builtin/log.c:1071
+#: builtin/log.c:1096
msgid "Two output directories?"
msgstr "Два выходных каталога?"
-#: builtin/log.c:1186
+#: builtin/log.c:1211
msgid "use [PATCH n/m] even with a single patch"
msgstr "выводить [PATCH n/m] даже когда один патч"
-#: builtin/log.c:1189
+#: builtin/log.c:1214
msgid "use [PATCH] even with multiple patches"
msgstr "выводить [PATCH] даже когда несколько патчей"
-#: builtin/log.c:1193
+#: builtin/log.c:1218
msgid "print patches to standard out"
msgstr "выводить патчи на стандартный вывод"
-#: builtin/log.c:1195
+#: builtin/log.c:1220
msgid "generate a cover letter"
msgstr "генерировать сопроводительное письмо"
-#: builtin/log.c:1197
+#: builtin/log.c:1222
msgid "use simple number sequence for output file names"
msgstr "использовать простую последовательность чисел для имен выходных файлов"
-#: builtin/log.c:1198
+#: builtin/log.c:1223
msgid "sfx"
msgstr "суффикс"
-#: builtin/log.c:1199
+#: builtin/log.c:1224
msgid "use <sfx> instead of '.patch'"
msgstr "использовать суффикс <суффикс> вместо «.patch»"
-#: builtin/log.c:1201
+#: builtin/log.c:1226
msgid "start numbering patches at <n> instead of 1"
msgstr "начать нумерацию патчей с <n>, а не с 1"
-#: builtin/log.c:1203
+#: builtin/log.c:1228
msgid "mark the series as Nth re-roll"
msgstr "пометить серию как энную попытку"
-#: builtin/log.c:1205
+#: builtin/log.c:1230
msgid "Use [<prefix>] instead of [PATCH]"
msgstr "Использовать [<префикс>] вместо [PATCH]"
-#: builtin/log.c:1208
+#: builtin/log.c:1233
msgid "store resulting files in <dir>"
msgstr "сохранить результирующие файлы в <каталог>"
-#: builtin/log.c:1211
+#: builtin/log.c:1236
msgid "don't strip/add [PATCH]"
msgstr "не обрезать/добавлять [PATCH]"
-#: builtin/log.c:1214
+#: builtin/log.c:1239
msgid "don't output binary diffs"
msgstr "не выводить двоичные различия"
-#: builtin/log.c:1216
+#: builtin/log.c:1241
msgid "don't include a patch matching a commit upstream"
msgstr "не включать патч, если коммит уже есть в вышестоящей ветке"
-#: builtin/log.c:1218
+#: builtin/log.c:1243
msgid "show patch format instead of default (patch + stat)"
msgstr "выводить в формате патча, а не в стандартном (патч + статистика)"
-#: builtin/log.c:1220
+#: builtin/log.c:1245
msgid "Messaging"
msgstr "Передача сообщений"
-#: builtin/log.c:1221
+#: builtin/log.c:1246
msgid "header"
msgstr "заголовок"
-#: builtin/log.c:1222
+#: builtin/log.c:1247
msgid "add email header"
msgstr "добавить заголовок сообщения"
-#: builtin/log.c:1223 builtin/log.c:1225
+#: builtin/log.c:1248 builtin/log.c:1250
msgid "email"
msgstr "почта"
-#: builtin/log.c:1223
+#: builtin/log.c:1248
msgid "add To: header"
msgstr "добавить заголовок To:"
-#: builtin/log.c:1225
+#: builtin/log.c:1250
msgid "add Cc: header"
msgstr "добавить заголовок Cc:"
-#: builtin/log.c:1227
+#: builtin/log.c:1252
msgid "ident"
msgstr "идентификатор"
-#: builtin/log.c:1228
+#: builtin/log.c:1253
msgid "set From address to <ident> (or committer ident if absent)"
msgstr "установить адрес отправителя на <идентификатор> (или на идентификатор коммитера, если отсутствует)"
-#: builtin/log.c:1230
+#: builtin/log.c:1255
msgid "message-id"
msgstr "идентификатор-сообщения"
-#: builtin/log.c:1231
+#: builtin/log.c:1256
msgid "make first mail a reply to <message-id>"
msgstr "сделать первое письмо ответом на <идентификатор-сообщения>"
-#: builtin/log.c:1232 builtin/log.c:1235
+#: builtin/log.c:1257 builtin/log.c:1260
msgid "boundary"
msgstr "вложение"
-#: builtin/log.c:1233
+#: builtin/log.c:1258
msgid "attach the patch"
msgstr "приложить патч"
-#: builtin/log.c:1236
+#: builtin/log.c:1261
msgid "inline the patch"
msgstr "включить патч в текст письма"
-#: builtin/log.c:1240
+#: builtin/log.c:1265
msgid "enable message threading, styles: shallow, deep"
msgstr "включить в письмах иерархичность, стили: shallow (частичную), deep (глубокую)"
-#: builtin/log.c:1242
+#: builtin/log.c:1267
msgid "signature"
msgstr "подпись"
-#: builtin/log.c:1243
+#: builtin/log.c:1268
msgid "add a signature"
msgstr "добавить подпись"
-#: builtin/log.c:1245
+#: builtin/log.c:1270
msgid "add a signature from a file"
msgstr "добавить подпись из файла"
-#: builtin/log.c:1246
+#: builtin/log.c:1271
msgid "don't print the patch filenames"
msgstr "не выводить имена файлов патчей"
-#: builtin/log.c:1320
-#, c-format
-msgid "invalid ident line: %s"
-msgstr "неправильная строка идентификации: %s"
-
-#: builtin/log.c:1335
+#: builtin/log.c:1360
msgid "-n and -k are mutually exclusive."
msgstr "-n и -k нельзя использовать одновременно"
-#: builtin/log.c:1337
+#: builtin/log.c:1362
msgid "--subject-prefix and -k are mutually exclusive."
msgstr "--subject-prefix и -k нельзя использовать одновременно."
-#: builtin/log.c:1345
+#: builtin/log.c:1370
msgid "--name-only does not make sense"
msgstr "--name-only не имеет смысла"
-#: builtin/log.c:1347
+#: builtin/log.c:1372
msgid "--name-status does not make sense"
msgstr "--name-status не имеет смысла"
-#: builtin/log.c:1349
+#: builtin/log.c:1374
msgid "--check does not make sense"
msgstr "--check не имеет смысла"
-#: builtin/log.c:1372
+#: builtin/log.c:1397
msgid "standard output, or directory, which one?"
msgstr "стандартный вывод или каталог?"
-#: builtin/log.c:1374
+#: builtin/log.c:1399
#, c-format
msgid "Could not create directory '%s'"
msgstr "Не удалось создать каталог «%s»"
-#: builtin/log.c:1472
+#: builtin/log.c:1496
#, c-format
msgid "unable to read signature file '%s'"
msgstr "не удалось прочитать файл подписи «%s»"
-#: builtin/log.c:1535
+#: builtin/log.c:1559
msgid "Failed to create output files"
msgstr "Сбой при создании выходных файлов"
-#: builtin/log.c:1583
+#: builtin/log.c:1607
msgid "git cherry [-v] [<upstream> [<head> [<limit>]]]"
msgstr "git cherry [-v] [<вышестоящая-ветка> [<голова> [<ограничение>]]]"
-#: builtin/log.c:1637
+#: builtin/log.c:1661
#, c-format
msgid ""
"Could not find a tracked remote branch, please specify <upstream> "
"manually.\n"
msgstr "Не удалось найти отслеживаемую внешнюю ветку, укажите <вышестоящую-ветку> вручную.\n"
-#: builtin/log.c:1648 builtin/log.c:1650 builtin/log.c:1662
+#: builtin/log.c:1672 builtin/log.c:1674 builtin/log.c:1686
#, c-format
msgid "Unknown commit %s"
msgstr "Неизвестный коммит %s"
@@ -6781,31 +7211,31 @@ msgstr "Доступные стратегии:"
msgid "Available custom strategies are:"
msgstr "Доступные пользовательские стратегии:"
-#: builtin/merge.c:193
+#: builtin/merge.c:193 builtin/pull.c:119
msgid "do not show a diffstat at the end of the merge"
msgstr "не выводить статистику изменений после окончания слияния"
-#: builtin/merge.c:196
+#: builtin/merge.c:196 builtin/pull.c:122
msgid "show a diffstat at the end of the merge"
msgstr "вывести статистику изменений после окончания слияния"
-#: builtin/merge.c:197
+#: builtin/merge.c:197 builtin/pull.c:125
msgid "(synonym to --stat)"
msgstr "(синоним для --stat)"
-#: builtin/merge.c:199
+#: builtin/merge.c:199 builtin/pull.c:128
msgid "add (at most <n>) entries from shortlog to merge commit message"
msgstr "добавить (максимум <n>) записей из короткого журнала в сообщение коммита у слияния"
-#: builtin/merge.c:202
+#: builtin/merge.c:202 builtin/pull.c:131
msgid "create a single commit instead of doing a merge"
msgstr "создать один коммит, вместо выполнения слияния"
-#: builtin/merge.c:204
+#: builtin/merge.c:204 builtin/pull.c:134
msgid "perform a commit if the merge succeeds (default)"
msgstr "сделать коммит, если слияние прошло успешно (по умолчанию)"
-#: builtin/merge.c:206
+#: builtin/merge.c:206 builtin/pull.c:137
msgid "edit message before committing"
msgstr "отредактировать сообщение перед выполнением коммита"
@@ -6813,7 +7243,7 @@ msgstr "отредактировать сообщение перед выпол
msgid "allow fast-forward (default)"
msgstr "разрешить перемотку вперед (по умолчанию)"
-#: builtin/merge.c:209
+#: builtin/merge.c:209 builtin/pull.c:143
msgid "abort if fast-forward is not possible"
msgstr "отменить выполнение слияния, если перемотка вперед не возможна"
@@ -6821,19 +7251,20 @@ msgstr "отменить выполнение слияния, если пере
msgid "Verify that the named commit has a valid GPG signature"
msgstr "Проверить, что указанный коммит имеет верную электронную подпись GPG"
-#: builtin/merge.c:214 builtin/notes.c:753 builtin/revert.c:89
+#: builtin/merge.c:214 builtin/notes.c:767 builtin/pull.c:148
+#: builtin/revert.c:89
msgid "strategy"
msgstr "стратегия"
-#: builtin/merge.c:215
+#: builtin/merge.c:215 builtin/pull.c:149
msgid "merge strategy to use"
msgstr "используемая стратегия слияния"
-#: builtin/merge.c:216
+#: builtin/merge.c:216 builtin/pull.c:152
msgid "option=value"
msgstr "опция=значение"
-#: builtin/merge.c:217
+#: builtin/merge.c:217 builtin/pull.c:153
msgid "option for selected merge strategy"
msgstr "опции для выбранной стратегии слияния"
@@ -6871,6 +7302,12 @@ msgstr " (нечего уплотнять)"
msgid "Squash commit -- not updating HEAD\n"
msgstr "Уплотнение коммита — не обновляя HEAD\n"
+#: builtin/merge.c:344 builtin/merge.c:763 builtin/merge.c:975
+#: builtin/merge.c:988
+#, c-format
+msgid "Could not write to '%s'"
+msgstr "Не удалось записать в «%s»"
+
#: builtin/merge.c:372
msgid "Writing SQUASH_MSG"
msgstr "Запись SQUASH_MSG"
@@ -6894,10 +7331,6 @@ msgstr "«%s» не указывает на коммит"
msgid "Bad branch.%s.mergeoptions string: %s"
msgstr "Неправильная строка branch.%s.mergeoptions: %s"
-#: builtin/merge.c:632
-msgid "git write-tree failed to write a tree"
-msgstr "git write-tree не удалось записать дерево"
-
#: builtin/merge.c:656
msgid "Not handling anything other than two heads merge."
msgstr "Не обрабатываю ничего, кроме слияния двух указателей на коммиты."
@@ -6983,10 +7416,6 @@ msgid ""
"Please, commit your changes before you merge."
msgstr "Вы не завершили слияние (присутствует файл MERGE_HEAD).\nВыполните коммит ваших изменений, перед слиянием."
-#: builtin/merge.c:1227 git-pull.sh:74
-msgid "You have not concluded your merge (MERGE_HEAD exists)."
-msgstr "Вы не завершили слияние (присутствует файл MERGE_HEAD)."
-
#: builtin/merge.c:1231
msgid ""
"You have not concluded your cherry-pick (CHERRY_PICK_HEAD exists).\n"
@@ -7272,7 +7701,7 @@ msgstr "%s, откуда=%s, куда=%s"
msgid "Renaming %s to %s\n"
msgstr "Переименование %s в %s\n"
-#: builtin/mv.c:256 builtin/remote.c:725 builtin/repack.c:361
+#: builtin/mv.c:256 builtin/remote.c:722 builtin/repack.c:362
#, c-format
msgid "renaming '%s' failed"
msgstr "сбой при переименовании «%s»"
@@ -7317,332 +7746,329 @@ msgstr "разрешить вывод «undefined», если не найден
msgid "dereference tags in the input (internal use)"
msgstr "разыменовывать введенные метки (для внутреннего использования)"
-#: builtin/notes.c:24
+#: builtin/notes.c:25
msgid "git notes [--ref <notes-ref>] [list [<object>]]"
msgstr "git notes [--ref <ссылка-на-заметку>] [list [<объект>]]"
-#: builtin/notes.c:25
+#: builtin/notes.c:26
msgid ""
"git notes [--ref <notes-ref>] add [-f] [--allow-empty] [-m <msg> | -F <file>"
" | (-c | -C) <object>] [<object>]"
msgstr "git notes [--ref <ссылка-на-заметку>] add [-f] [--allow-empty] [-m <сообщение> | -F <файл> | (-c | -C) <объект>] [<объект>]"
-#: builtin/notes.c:26
+#: builtin/notes.c:27
msgid "git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>"
msgstr "git notes [--ref <ссылка-на-заметку>] copy [-f] <из-объекта> <в-объект>"
-#: builtin/notes.c:27
+#: builtin/notes.c:28
msgid ""
"git notes [--ref <notes-ref>] append [--allow-empty] [-m <msg> | -F <file> |"
" (-c | -C) <object>] [<object>]"
msgstr "git notes [--ref <ссылка-на-заметку>] append [--allow-empty] [-m <сообщение> | -F <файл> | (-c | -C) <объект>] [<объект>]"
-#: builtin/notes.c:28
+#: builtin/notes.c:29
msgid "git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]"
msgstr "git notes [--ref <ссылка-на-заметку>] edit [--allow-empty] [<объект>]"
-#: builtin/notes.c:29
+#: builtin/notes.c:30
msgid "git notes [--ref <notes-ref>] show [<object>]"
msgstr "git notes [--ref <ссылка-на-заметку>] show [<объект>]"
-#: builtin/notes.c:30
+#: builtin/notes.c:31
msgid ""
"git notes [--ref <notes-ref>] merge [-v | -q] [-s <strategy>] <notes-ref>"
msgstr "git notes [--ref <ссылка-на-заметку>] merge [-v | -q] [-s <стратегия>] <ссылка-на-заметку>"
-#: builtin/notes.c:31
+#: builtin/notes.c:32
msgid "git notes merge --commit [-v | -q]"
msgstr "git notes merge --commit [-v | -q]"
-#: builtin/notes.c:32
+#: builtin/notes.c:33
msgid "git notes merge --abort [-v | -q]"
msgstr "git notes merge --abort [-v | -q]"
-#: builtin/notes.c:33
+#: builtin/notes.c:34
msgid "git notes [--ref <notes-ref>] remove [<object>...]"
msgstr "git notes [--ref <ссылка-на-заметку>] remove [<объект>…]"
-#: builtin/notes.c:34
+#: builtin/notes.c:35
msgid "git notes [--ref <notes-ref>] prune [-n | -v]"
msgstr "git notes [--ref <ссылка-на-заметку>] prune [-n | -v]"
-#: builtin/notes.c:35
+#: builtin/notes.c:36
msgid "git notes [--ref <notes-ref>] get-ref"
msgstr "git notes [--ref <ссылка-на-заметку>] get-ref"
-#: builtin/notes.c:40
+#: builtin/notes.c:41
msgid "git notes [list [<object>]]"
msgstr "git notes [list [<объект>]]"
-#: builtin/notes.c:45
+#: builtin/notes.c:46
msgid "git notes add [<options>] [<object>]"
msgstr "git notes add [<опции>] [<объект>]"
-#: builtin/notes.c:50
+#: builtin/notes.c:51
msgid "git notes copy [<options>] <from-object> <to-object>"
msgstr "git notes copy [<опции>] <из-объекта> <в-объект>"
-#: builtin/notes.c:51
+#: builtin/notes.c:52
msgid "git notes copy --stdin [<from-object> <to-object>]..."
msgstr "git notes copy --stdin [<из-объекта> <в-объект>]…"
-#: builtin/notes.c:56
+#: builtin/notes.c:57
msgid "git notes append [<options>] [<object>]"
msgstr "git notes append [<опции>] [<объект>]"
-#: builtin/notes.c:61
+#: builtin/notes.c:62
msgid "git notes edit [<object>]"
msgstr "git notes edit [<объект>]"
-#: builtin/notes.c:66
+#: builtin/notes.c:67
msgid "git notes show [<object>]"
msgstr "git notes show [<объект>]"
-#: builtin/notes.c:71
+#: builtin/notes.c:72
msgid "git notes merge [<options>] <notes-ref>"
msgstr "git notes merge [<опции>] <ссылка-на-заметку>"
-#: builtin/notes.c:72
+#: builtin/notes.c:73
msgid "git notes merge --commit [<options>]"
msgstr "git notes merge --commit [<опции>]"
-#: builtin/notes.c:73
+#: builtin/notes.c:74
msgid "git notes merge --abort [<options>]"
msgstr "git notes merge --abort [<опции>]"
-#: builtin/notes.c:78
+#: builtin/notes.c:79
msgid "git notes remove [<object>]"
msgstr "git notes remove [<опции>]"
-#: builtin/notes.c:83
+#: builtin/notes.c:84
msgid "git notes prune [<options>]"
msgstr "git notes prune [<опции>]"
-#: builtin/notes.c:88
+#: builtin/notes.c:89
msgid "git notes get-ref"
msgstr "git notes get-ref"
-#: builtin/notes.c:146
+#: builtin/notes.c:147
#, c-format
msgid "unable to start 'show' for object '%s'"
msgstr "не удалось запустить «show» для объекта «%s»"
-#: builtin/notes.c:150
+#: builtin/notes.c:151
msgid "could not read 'show' output"
msgstr "не удалось прочитать вывод «show»"
-#: builtin/notes.c:158
+#: builtin/notes.c:159
#, c-format
msgid "failed to finish 'show' for object '%s'"
msgstr "не удалось завершить «show» для объекта «%s»"
-#: builtin/notes.c:173 builtin/tag.c:477
+#: builtin/notes.c:174 builtin/tag.c:477
#, c-format
msgid "could not create file '%s'"
msgstr "не удалось создать файл «%s»"
-#: builtin/notes.c:192
+#: builtin/notes.c:193
msgid "Please supply the note contents using either -m or -F option"
msgstr "Пожалуйста, укажите содержимое заметки, используя опцию -m или -F"
-#: builtin/notes.c:201
+#: builtin/notes.c:202
msgid "unable to write note object"
msgstr "не удалось записать объект заметки"
-#: builtin/notes.c:203
+#: builtin/notes.c:204
#, c-format
msgid "The note contents have been left in %s"
msgstr "Содержимое заметки осталось в %s"
-#: builtin/notes.c:231 builtin/tag.c:693
+#: builtin/notes.c:232 builtin/tag.c:695
#, c-format
msgid "cannot read '%s'"
msgstr "не удалось прочитать «%s»"
-#: builtin/notes.c:233 builtin/tag.c:696
+#: builtin/notes.c:234 builtin/tag.c:698
#, c-format
msgid "could not open or read '%s'"
msgstr "не удалось открыть или прочитать «%s»"
-#: builtin/notes.c:252 builtin/notes.c:303 builtin/notes.c:305
-#: builtin/notes.c:365 builtin/notes.c:420 builtin/notes.c:506
-#: builtin/notes.c:511 builtin/notes.c:589 builtin/notes.c:652
-#: builtin/notes.c:854 builtin/tag.c:709
+#: builtin/notes.c:253 builtin/notes.c:304 builtin/notes.c:306
+#: builtin/notes.c:366 builtin/notes.c:421 builtin/notes.c:507
+#: builtin/notes.c:512 builtin/notes.c:590 builtin/notes.c:653
+#: builtin/notes.c:877 builtin/tag.c:711
#, c-format
msgid "Failed to resolve '%s' as a valid ref."
msgstr "Не удалось разрешить «%s» как ссылку."
-#: builtin/notes.c:255
+#: builtin/notes.c:256
#, c-format
msgid "Failed to read object '%s'."
msgstr "Не удалось прочитать объект «%s»."
-#: builtin/notes.c:259
+#: builtin/notes.c:260
#, c-format
msgid "Cannot read note data from non-blob object '%s'."
msgstr "Не удалось прочитать данные заметки из недвоичного объекта «%s»."
-#: builtin/notes.c:299
-#, c-format
-msgid "Malformed input line: '%s'."
-msgstr "Плохая строка ввода: «%s»."
-
-#: builtin/notes.c:314
-#, c-format
-msgid "Failed to copy notes from '%s' to '%s'"
-msgstr "Не удалось скопировать заметку из «%s» в «%s»"
-
-#: builtin/notes.c:358 builtin/notes.c:413 builtin/notes.c:489
-#: builtin/notes.c:501 builtin/notes.c:577 builtin/notes.c:645
-#: builtin/notes.c:919
+#: builtin/notes.c:359 builtin/notes.c:414 builtin/notes.c:490
+#: builtin/notes.c:502 builtin/notes.c:578 builtin/notes.c:646
+#: builtin/notes.c:942
msgid "too many parameters"
msgstr "передано слишком много параметров"
-#: builtin/notes.c:371 builtin/notes.c:658
+#: builtin/notes.c:372 builtin/notes.c:659
#, c-format
msgid "No note found for object %s."
msgstr "Не найдена заметка для объекта %s."
-#: builtin/notes.c:392 builtin/notes.c:555
+#: builtin/notes.c:393 builtin/notes.c:556
msgid "note contents as a string"
msgstr "текстовое содержимое заметки"
-#: builtin/notes.c:395 builtin/notes.c:558
+#: builtin/notes.c:396 builtin/notes.c:559
msgid "note contents in a file"
msgstr "содержимое заметки в файле"
-#: builtin/notes.c:397 builtin/notes.c:400 builtin/notes.c:560
-#: builtin/notes.c:563 builtin/tag.c:628
+#: builtin/notes.c:398 builtin/notes.c:401 builtin/notes.c:561
+#: builtin/notes.c:564 builtin/tag.c:630
msgid "object"
msgstr "объект"
-#: builtin/notes.c:398 builtin/notes.c:561
+#: builtin/notes.c:399 builtin/notes.c:562
msgid "reuse and edit specified note object"
msgstr "использовать и отредактировать указанный объект заметки"
-#: builtin/notes.c:401 builtin/notes.c:564
+#: builtin/notes.c:402 builtin/notes.c:565
msgid "reuse specified note object"
msgstr "использовать указанный объект заметки"
-#: builtin/notes.c:404 builtin/notes.c:567
+#: builtin/notes.c:405 builtin/notes.c:568
msgid "allow storing empty note"
msgstr "разрешить сохранение пустой заметки"
-#: builtin/notes.c:405 builtin/notes.c:476
+#: builtin/notes.c:406 builtin/notes.c:477
msgid "replace existing notes"
msgstr "заменить существующие заметки"
-#: builtin/notes.c:430
+#: builtin/notes.c:431
#, c-format
msgid ""
"Cannot add notes. Found existing notes for object %s. Use '-f' to overwrite "
"existing notes"
msgstr "Не удалось добавить заметку. Найдена существующая заметка у объекта %s. Используйте параметр «-f» для перезаписи существующих заметок."
-#: builtin/notes.c:445 builtin/notes.c:524
+#: builtin/notes.c:446 builtin/notes.c:525
#, c-format
msgid "Overwriting existing notes for object %s\n"
msgstr "Перезапись существующих заметок у объекта %s\n"
-#: builtin/notes.c:456 builtin/notes.c:617 builtin/notes.c:859
+#: builtin/notes.c:457 builtin/notes.c:618 builtin/notes.c:882
#, c-format
msgid "Removing note for object %s\n"
msgstr "Удаление заметки у объекта %s\n"
-#: builtin/notes.c:477
+#: builtin/notes.c:478
msgid "read objects from stdin"
msgstr "прочитать объекты из стандартного ввода"
-#: builtin/notes.c:479
+#: builtin/notes.c:480
msgid "load rewriting config for <command> (implies --stdin)"
msgstr "загрузить настройки перезаписи для команды <команда> (включает в себя --stdin)"
-#: builtin/notes.c:497
+#: builtin/notes.c:498
msgid "too few parameters"
msgstr "передано слишком мало параметров"
-#: builtin/notes.c:518
+#: builtin/notes.c:519
#, c-format
msgid ""
"Cannot copy notes. Found existing notes for object %s. Use '-f' to overwrite"
" existing notes"
msgstr "Не удалось скопировать заметку. Найдена существующая заметка у объекта %s. Используйте параметр «-f» для перезаписи существующих заметок."
-#: builtin/notes.c:530
+#: builtin/notes.c:531
#, c-format
msgid "Missing notes on source object %s. Cannot copy."
msgstr "Нет заметок у исходного объекта %s. Нельзя скопировать."
-#: builtin/notes.c:582
+#: builtin/notes.c:583
#, c-format
msgid ""
"The -m/-F/-c/-C options have been deprecated for the 'edit' subcommand.\n"
"Please use 'git notes add -f -m/-F/-c/-C' instead.\n"
msgstr "Опции -m/-F/-c/-C для подкоманды «edit» устарели.\nИспользуйте вместо них «git notes add -f -m/-F/-c/-C».\n"
-#: builtin/notes.c:750
+#: builtin/notes.c:764
msgid "General options"
msgstr "Общие опции"
-#: builtin/notes.c:752
+#: builtin/notes.c:766
msgid "Merge options"
msgstr "Опции слияния"
-#: builtin/notes.c:754
+#: builtin/notes.c:768
msgid ""
"resolve notes conflicts using the given strategy "
"(manual/ours/theirs/union/cat_sort_uniq)"
msgstr "разрешить конфликты заметок с помощью указанной стратегии (manual/ours/theirs/union/cat_sort_uniq)"
-#: builtin/notes.c:756
+#: builtin/notes.c:770
msgid "Committing unmerged notes"
msgstr "Коммит не слитых заметок"
-#: builtin/notes.c:758
+#: builtin/notes.c:772
msgid "finalize notes merge by committing unmerged notes"
msgstr "завершить слияние заметок коммитом не слитых заметок"
-#: builtin/notes.c:760
+#: builtin/notes.c:774
msgid "Aborting notes merge resolution"
msgstr "Отмена разрешения слияния заметок"
-#: builtin/notes.c:762
+#: builtin/notes.c:776
msgid "abort notes merge"
msgstr "отменить слияние заметок"
-#: builtin/notes.c:857
+#: builtin/notes.c:853
+#, c-format
+msgid "A notes merge into %s is already in-progress at %s"
+msgstr "Слияние заметок в %s уже выполняется на %s"
+
+#: builtin/notes.c:880
#, c-format
msgid "Object %s has no note\n"
msgstr "У объекта %s нет заметки\n"
-#: builtin/notes.c:869
+#: builtin/notes.c:892
msgid "attempt to remove non-existent note is not an error"
msgstr "попытка удаления несуществующей заметки не является ошибкой"
-#: builtin/notes.c:872
+#: builtin/notes.c:895
msgid "read object names from the standard input"
msgstr "прочитать имена объектов из стандартного ввода"
-#: builtin/notes.c:953
+#: builtin/notes.c:976
msgid "notes-ref"
msgstr "ссылка-на-заметку"
-#: builtin/notes.c:954
+#: builtin/notes.c:977
msgid "use notes from <notes-ref>"
msgstr "использовать заметку из <ссылка-на-заметку>"
-#: builtin/notes.c:989 builtin/remote.c:1618
+#: builtin/notes.c:1012 builtin/remote.c:1588
#, c-format
msgid "Unknown subcommand: %s"
msgstr "Неизвестная подкоманда: %s"
#: builtin/pack-objects.c:28
-msgid "git pack-objects --stdout [options...] [< ref-list | < object-list]"
-msgstr "git pack-objects --stdout [опции…] [< список-ссылок | < список-объектов]"
+msgid ""
+"git pack-objects --stdout [<options>...] [< <ref-list> | < <object-list>]"
+msgstr "git pack-objects --stdout [<опции>…] [< <список-ссылок> | < <список-объектов>]"
#: builtin/pack-objects.c:29
-msgid "git pack-objects [options...] base-name [< ref-list | < object-list]"
-msgstr "git pack-objects [опции…] имя-базы [< список-ссылок | < список-объектов]"
+msgid ""
+"git pack-objects [<options>...] <base-name> [< <ref-list> | < <object-list>]"
+msgstr "git pack-objects [<опции>…] <имя-базы> [< <список-ссылок> | < <список-объектов>]"
#: builtin/pack-objects.c:175 builtin/pack-objects.c:178
#, c-format
@@ -7671,153 +8097,143 @@ msgstr "неподдерживаемая версия индекса %s"
msgid "bad index version '%s'"
msgstr "плохая версия индекса «%s»"
-#: builtin/pack-objects.c:2595
-#, c-format
-msgid "option %s does not accept negative form"
-msgstr "опция %s не принимает отрицательные значения"
-
-#: builtin/pack-objects.c:2599
-#, c-format
-msgid "unable to parse value '%s' for option %s"
-msgstr "не удалось разобрать значение «%s» для опции %s"
-
-#: builtin/pack-objects.c:2619
+#: builtin/pack-objects.c:2602
msgid "do not show progress meter"
msgstr "не выводить прогресс выполнения"
-#: builtin/pack-objects.c:2621
+#: builtin/pack-objects.c:2604
msgid "show progress meter"
msgstr "показать прогресс выполнения"
-#: builtin/pack-objects.c:2623
+#: builtin/pack-objects.c:2606
msgid "show progress meter during object writing phase"
msgstr "показать прогресс выполнения во время записи объектов"
-#: builtin/pack-objects.c:2626
+#: builtin/pack-objects.c:2609
msgid "similar to --all-progress when progress meter is shown"
msgstr "похоже на --all-progress при включенном прогрессе выполнения"
-#: builtin/pack-objects.c:2627
+#: builtin/pack-objects.c:2610
msgid "version[,offset]"
msgstr "версия[,смещение]"
-#: builtin/pack-objects.c:2628
+#: builtin/pack-objects.c:2611
msgid "write the pack index file in the specified idx format version"
msgstr "записать файл индекса пакета в указанной версии формата"
-#: builtin/pack-objects.c:2631
+#: builtin/pack-objects.c:2614
msgid "maximum size of each output pack file"
msgstr "максимальный размер каждого выходного файла пакета"
-#: builtin/pack-objects.c:2633
+#: builtin/pack-objects.c:2616
msgid "ignore borrowed objects from alternate object store"
msgstr "игнорировать чужие объекты, взятые из альтернативного хранилища объектов"
-#: builtin/pack-objects.c:2635
+#: builtin/pack-objects.c:2618
msgid "ignore packed objects"
msgstr "игнорировать упакованные объекты"
-#: builtin/pack-objects.c:2637
+#: builtin/pack-objects.c:2620
msgid "limit pack window by objects"
msgstr "ограничить окно пакета по количеству объектов"
-#: builtin/pack-objects.c:2639
+#: builtin/pack-objects.c:2622
msgid "limit pack window by memory in addition to object limit"
msgstr "дополнительно к количеству объектов ограничить окно пакета по памяти"
-#: builtin/pack-objects.c:2641
+#: builtin/pack-objects.c:2624
msgid "maximum length of delta chain allowed in the resulting pack"
msgstr "максимальная разрешенная длина цепочки дельт в результирующем пакете"
-#: builtin/pack-objects.c:2643
+#: builtin/pack-objects.c:2626
msgid "reuse existing deltas"
msgstr "использовать повторно существующие дельты"
-#: builtin/pack-objects.c:2645
+#: builtin/pack-objects.c:2628
msgid "reuse existing objects"
msgstr "использовать повторно существующие объекты"
-#: builtin/pack-objects.c:2647
+#: builtin/pack-objects.c:2630
msgid "use OFS_DELTA objects"
msgstr "использовать объекты OFS_DELTA"
-#: builtin/pack-objects.c:2649
+#: builtin/pack-objects.c:2632
msgid "use threads when searching for best delta matches"
msgstr "использовать многопоточность при поиске лучших совпадений дельт"
-#: builtin/pack-objects.c:2651
+#: builtin/pack-objects.c:2634
msgid "do not create an empty pack output"
msgstr "не создавать пустые выходные пакеты"
-#: builtin/pack-objects.c:2653
+#: builtin/pack-objects.c:2636
msgid "read revision arguments from standard input"
msgstr "прочитать аргументы редакций из стандартного ввода"
-#: builtin/pack-objects.c:2655
+#: builtin/pack-objects.c:2638
msgid "limit the objects to those that are not yet packed"
msgstr "ограничиться объектами, которые еще не упакованы"
-#: builtin/pack-objects.c:2658
+#: builtin/pack-objects.c:2641
msgid "include objects reachable from any reference"
msgstr "включить объекты, которые достижимы по любой из ссылок"
-#: builtin/pack-objects.c:2661
+#: builtin/pack-objects.c:2644
msgid "include objects referred by reflog entries"
msgstr "включить объекты, на которые ссылаются записи журнала ссылок"
-#: builtin/pack-objects.c:2664
+#: builtin/pack-objects.c:2647
msgid "include objects referred to by the index"
msgstr "включить объекты, на которые ссылается индекс"
-#: builtin/pack-objects.c:2667
+#: builtin/pack-objects.c:2650
msgid "output pack to stdout"
msgstr "вывести пакет на стандартный вывод"
-#: builtin/pack-objects.c:2669
+#: builtin/pack-objects.c:2652
msgid "include tag objects that refer to objects to be packed"
msgstr "включить объекты меток, которые ссылаются на упаковываемые объекты"
-#: builtin/pack-objects.c:2671
+#: builtin/pack-objects.c:2654
msgid "keep unreachable objects"
msgstr "сохранять ссылки на недоступные объекты"
-#: builtin/pack-objects.c:2672 parse-options.h:139
+#: builtin/pack-objects.c:2655 parse-options.h:142
msgid "time"
msgstr "время"
-#: builtin/pack-objects.c:2673
+#: builtin/pack-objects.c:2656
msgid "unpack unreachable objects newer than <time>"
msgstr "распаковать недоступные объекты, которые новее, чем <время>"
-#: builtin/pack-objects.c:2676
+#: builtin/pack-objects.c:2659
msgid "create thin packs"
msgstr "создавать тонкие пакеты"
-#: builtin/pack-objects.c:2678
+#: builtin/pack-objects.c:2661
msgid "create packs suitable for shallow fetches"
msgstr "создавать пакеты, подходящие для частичных извлечений"
-#: builtin/pack-objects.c:2680
+#: builtin/pack-objects.c:2663
msgid "ignore packs that have companion .keep file"
msgstr "игнорировать пакеты, рядом с которыми лежит .keep файл"
-#: builtin/pack-objects.c:2682
+#: builtin/pack-objects.c:2665
msgid "pack compression level"
msgstr "уровень сжатия пакета"
-#: builtin/pack-objects.c:2684
+#: builtin/pack-objects.c:2667
msgid "do not hide commits by grafts"
msgstr "не скрывать коммиты сращениями"
-#: builtin/pack-objects.c:2686
+#: builtin/pack-objects.c:2669
msgid "use a bitmap index if available to speed up counting objects"
msgstr "по возможности использовать индекс в битовых картах, для ускорения подсчета объектов"
-#: builtin/pack-objects.c:2688
+#: builtin/pack-objects.c:2671
msgid "write a bitmap index together with the pack index"
msgstr "запись индекса в битовых картах вместе с индексом пакета"
-#: builtin/pack-objects.c:2779
+#: builtin/pack-objects.c:2762
msgid "Counting objects"
msgstr "Подсчет объектов"
@@ -7845,37 +8261,169 @@ msgstr "Удаление дублирующихся объектов"
msgid "git prune [-n] [-v] [--expire <time>] [--] [<head>...]"
msgstr "git prune [-n] [-v] [--expire <время>] [--] [<имя-ветки>…]"
-#: builtin/prune.c:105 builtin/worktree.c:112
+#: builtin/prune.c:105 builtin/worktree.c:121
msgid "do not remove, show only"
msgstr "не удалять, только показать список"
-#: builtin/prune.c:106 builtin/worktree.c:113
+#: builtin/prune.c:106 builtin/worktree.c:122
msgid "report pruned objects"
msgstr "вывести список удаленных объектов"
-#: builtin/prune.c:109 builtin/worktree.c:115
+#: builtin/prune.c:109 builtin/worktree.c:124
msgid "expire objects older than <time>"
msgstr "удалить объекты старее чем <дата-окончания>"
-#: builtin/push.c:14
+#: builtin/pull.c:69
+msgid "git pull [options] [<repository> [<refspec>...]]"
+msgstr "git pull [опции] [<репозиторий> [<спецификация-ссылки>…]]"
+
+#: builtin/pull.c:113
+msgid "Options related to merging"
+msgstr "Опции, связанные со слиянием"
+
+#: builtin/pull.c:116
+msgid "incorporate changes by rebasing rather than merging"
+msgstr "забрать изменения с помощью перебазирования, а не слияния"
+
+#: builtin/pull.c:140 builtin/revert.c:105
+msgid "allow fast-forward"
+msgstr "разрешить перемотку вперед"
+
+#: builtin/pull.c:146
+msgid "verify that the named commit has a valid GPG signature"
+msgstr "проверить, что указанный коммит имеет верную электронную подпись GPG"
+
+#: builtin/pull.c:160
+msgid "Options related to fetching"
+msgstr "Опции, связанные с извлечением"
+
+#: builtin/pull.c:268
+#, c-format
+msgid "Invalid value for pull.ff: %s"
+msgstr "Неправильное значение для pull.ff: %s"
+
+#: builtin/pull.c:352
+msgid "Cannot pull with rebase: You have unstaged changes."
+msgstr "Не удалось получить с перемещением: У вас есть непроиндексированные изменения."
+
+#: builtin/pull.c:358
+msgid "Additionally, your index contains uncommitted changes."
+msgstr "К тому же, в вашем индексе есть незакоммиченные изменения."
+
+#: builtin/pull.c:360
+msgid "Cannot pull with rebase: Your index contains uncommitted changes."
+msgstr "Не удалось получить с перемещением: В вашем индексе есть незакоммиченные изменения."
+
+#: builtin/pull.c:436
+msgid ""
+"There is no candidate for rebasing against among the refs that you just "
+"fetched."
+msgstr "Нет претендентов для перемещения среди ссылок, которые вы только что получили."
+
+#: builtin/pull.c:438
+msgid ""
+"There are no candidates for merging among the refs that you just fetched."
+msgstr "Нет претендентов для слияния среди ссылок, которые вы только что получили."
+
+#: builtin/pull.c:439
+msgid ""
+"Generally this means that you provided a wildcard refspec which had no\n"
+"matches on the remote end."
+msgstr "Обычно это означает, что вы передали спецификацию ссылки с помощью шаблона и этот шаблон не совпал ни с одной из ссылок на внешнем репозитории."
+
+#: builtin/pull.c:442
+#, c-format
+msgid ""
+"You asked to pull from the remote '%s', but did not specify\n"
+"a branch. Because this is not the default configured remote\n"
+"for your current branch, you must specify a branch on the command line."
+msgstr "Вы попросили получить изменения со внешнего репозитория «%s», но не указали ветку. Так как это не репозиторий по умолчанию для вашей текущей ветки, вы должны указать ветку в командной строке."
+
+#: builtin/pull.c:447
+msgid "You are not currently on a branch."
+msgstr "Вы сейчас ни на одной из веток."
+
+#: builtin/pull.c:449 builtin/pull.c:464
+msgid "Please specify which branch you want to rebase against."
+msgstr "Пожалуйста, укажите на какую ветку вы хотите переместить изменения."
+
+#: builtin/pull.c:451 builtin/pull.c:466
+msgid "Please specify which branch you want to merge with."
+msgstr "Пожалуйста, укажите с какой веткой вы хотите слить изменения."
+
+#: builtin/pull.c:452 builtin/pull.c:467
+msgid "See git-pull(1) for details."
+msgstr "Для дополнительной информации смотрите git-pull(1)."
+
+#: builtin/pull.c:462
+msgid "There is no tracking information for the current branch."
+msgstr "У текущей ветки нет информации об отслеживании."
+
+#: builtin/pull.c:471
+#, c-format
+msgid ""
+"If you wish to set tracking information for this branch you can do so with:\n"
+"\n"
+" git branch --set-upstream-to=%s/<branch> %s\n"
+msgstr "Если вы хотите указать информацию о отслеживаемой ветке, выполните:\n\n git branch --set-upstream-to=%s/<branch> %s\n"
+
+#: builtin/pull.c:476
+#, c-format
+msgid ""
+"Your configuration specifies to merge with the ref '%s'\n"
+"from the remote, but no such ref was fetched."
+msgstr "Ваша конфигурация указывает, что нужно слить изменения со ссылкой\n«%s» из внешнего репозитория, но такая ссылка не была получена."
+
+#: builtin/pull.c:830
+msgid "Updating an unborn branch with changes added to the index."
+msgstr "Обновление еще не начавшейся ветки с изменениями, добавленными в индекс."
+
+#: builtin/pull.c:859
+#, c-format
+msgid ""
+"fetch updated the current branch head.\n"
+"fast-forwarding your working tree from\n"
+"commit %s."
+msgstr "извлечение обновило голову вашей текущей ветки.\nперемотка вашего рабочего каталога\nс коммита %s."
+
+#: builtin/pull.c:864
+#, c-format
+msgid ""
+"Cannot fast-forward your working tree.\n"
+"After making sure that you saved anything precious from\n"
+"$ git diff %s\n"
+"output, run\n"
+"$ git reset --hard\n"
+"to recover."
+msgstr "Не удалось перемотать вперёд изменения в вашем рабочем каталоге.\nПосле того, как вы убедитесь, что вы сохранили всё необходимое из вывода\n$ git diff %s\n, запустите\n$ git reset --hard\nдля восстановления исходного состояния."
+
+#: builtin/pull.c:879
+msgid "Cannot merge multiple branches into empty head."
+msgstr "Нельзя слить несколько веток в пустой указатель на коммит."
+
+#: builtin/pull.c:883
+msgid "Cannot rebase onto multiple branches."
+msgstr "Невозможно переместить над несколькими ветками."
+
+#: builtin/push.c:15
msgid "git push [<options>] [<repository> [<refspec>...]]"
msgstr "git push [<опции>] [<репозиторий> [<спецификация-ссылки>…]]"
-#: builtin/push.c:85
+#: builtin/push.c:86
msgid "tag shorthand without <tag>"
msgstr "указано сокращение tag, но не указана сама <метка>"
-#: builtin/push.c:95
+#: builtin/push.c:96
msgid "--delete only accepts plain target ref names"
msgstr "опция --delete принимает только простые целевые имена ссылок"
-#: builtin/push.c:139
+#: builtin/push.c:140
msgid ""
"\n"
"To choose either option permanently, see push.default in 'git help config'."
msgstr "\nЧтобы выбрать любую из опций на постоянной основе, смотрите push.default в «git help config»."
-#: builtin/push.c:142
+#: builtin/push.c:143
#, c-format
msgid ""
"The upstream branch of your current branch does not match\n"
@@ -7890,7 +8438,7 @@ msgid ""
"%s"
msgstr "Имя вышестоящей ветки и вашей текущей ветки различаются. Чтобы отправить изменения в вышестоящую ветку на внешнем репозитории, используйте:\n\n git push %s HEAD:%s\n\nЧтобы отправить изменения в ветку с таким же именем на внешнем репозитории, используйте:\n\n git push %s %s\n%s"
-#: builtin/push.c:157
+#: builtin/push.c:158
#, c-format
msgid ""
"You are not currently on a branch.\n"
@@ -7900,7 +8448,7 @@ msgid ""
" git push %s HEAD:<name-of-remote-branch>\n"
msgstr "Вы сейчас не находитесь ни на одной из веток.\nЧтобы отправить историю, ведущую к текущему (отделенный HEAD) состоянию, используйте\n\n git push %s HEAD:<имя-внешней-ветки>\n"
-#: builtin/push.c:171
+#: builtin/push.c:172
#, c-format
msgid ""
"The current branch %s has no upstream branch.\n"
@@ -7909,13 +8457,13 @@ msgid ""
" git push --set-upstream %s %s\n"
msgstr "Текущая ветка %s не имеет вышестоящей ветки.\nЧтобы отправить текущую ветку и установить внешнюю ветку как вышестоящую для этой ветки, используйте\n\n git push --set-upstream %s %s\n"
-#: builtin/push.c:179
+#: builtin/push.c:180
#, c-format
msgid ""
"The current branch %s has multiple upstream branches, refusing to push."
msgstr "Ваша текущая ветка %s имеет несколько вышестоящих веток, отказ в отправке изменений."
-#: builtin/push.c:182
+#: builtin/push.c:183
#, c-format
msgid ""
"You are pushing to remote '%s', which is not the upstream of\n"
@@ -7923,7 +8471,7 @@ msgid ""
"to update which remote branch."
msgstr "Вы сейчас отправляете изменения на внешний репозиторий «%s», который не является вышестоящим для вашей текущей ветки «%s», без указания того, что отправлять и в какую внешнюю ветку."
-#: builtin/push.c:205
+#: builtin/push.c:206
msgid ""
"push.default is unset; its implicit value has changed in\n"
"Git 2.0 from 'matching' to 'simple'. To squelch this message\n"
@@ -7947,11 +8495,11 @@ msgid ""
"'current' instead of 'simple' if you sometimes use older versions of Git)"
msgstr "push.default не установлен; его неявное значение было изменено в Git версии 2.0 с «matching» на «simple». Чтобы прекратить вывод этого сообщения и сохранить старое поведение, используйте:\n\n git config --global push.default matching\n\nЧтобы прекратить вывод этого сообщения и использовать новое поведение, используйте:\n\n git config --global push.default simple\n\nКогда push.default установлено в «matching», git будет отправлять изменения локальных веток в существующие внешние ветки с таким же именем.\n\nНачиная с Git версии 2.0, по умолчанию используется более консервативное поведение «simple», которое отправляет изменения текущей ветки в соответствующую внешнюю ветку, из которой «git pull» забирает изменения.\n\nСмотрите «git help config» и ищите «push.default» для дополнительной информации.\n(режим «simple» появился в Git версии 1.7.11. Используйте похожий режим «current» вместо «simple», если вы иногда используете старые версии Git)"
-#: builtin/push.c:272
+#: builtin/push.c:273
msgid "You didn't specify any refspecs to push, and push.default is \"nothing\"."
msgstr "Вы не указали спецификацию ссылки для отправки, а push.default указан как \"nothing\"."
-#: builtin/push.c:279
+#: builtin/push.c:280
msgid ""
"Updates were rejected because the tip of your current branch is behind\n"
"its remote counterpart. Integrate the remote changes (e.g.\n"
@@ -7959,7 +8507,7 @@ msgid ""
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr "Обновления были отклонены, так как верхушка вашей текущей ветки\nпозади ее внешней части. Заберите и слейте внешние изменения \n(например, с помощью «git pull …») перед повторной попыткой отправки\nизменений.\nДля дополнительной информации смотрите «Note about fast-forwards»\nв «git push --help»."
-#: builtin/push.c:285
+#: builtin/push.c:286
msgid ""
"Updates were rejected because a pushed branch tip is behind its remote\n"
"counterpart. Check out this branch and integrate the remote changes\n"
@@ -7967,7 +8515,7 @@ msgid ""
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr "Обновления были отклонены, так как верхушка отправляемой ветки\nпозади ее внешней части. Переключитесь на ветку и заберите внешние\nизменения (например, с помощью «git pull …») перед повторной\nпопыткой отправки изменений.\nДля дополнительной информации смотрите «Note about fast-forwards»\nв «git push --help»."
-#: builtin/push.c:291
+#: builtin/push.c:292
msgid ""
"Updates were rejected because the remote contains work that you do\n"
"not have locally. This is usually caused by another repository pushing\n"
@@ -7976,33 +8524,33 @@ msgid ""
"See the 'Note about fast-forwards' in 'git push --help' for details."
msgstr "Обновления были отклонены, так как внешний репозиторий содержит\nизменения, которых у вас нет в вашем локальном репозитории.\nОбычно, это связанно с тем, что кто-то уже отправил изменения в \nто же место. Перед повторной отправкой ваших изменений, вам нужно\nзабрать и слить изменения из внешнего репозитория себе\n(например, с помощью «git pull …»).\nДля дополнительной информации смотрите «Note about fast-forwards»\nв «git push --help»."
-#: builtin/push.c:298
+#: builtin/push.c:299
msgid "Updates were rejected because the tag already exists in the remote."
msgstr "Обновления были отклонены, так как метка уже существует во внешнем репозитории."
-#: builtin/push.c:301
+#: builtin/push.c:302
msgid ""
"You cannot update a remote ref that points at a non-commit object,\n"
"or update a remote ref to make it point at a non-commit object,\n"
"without using the '--force' option.\n"
msgstr "Вы не можете обновить внешнюю ссылку, которая указывает на объект, не являющийся коммитом или обновить внешнюю ссылку так, чтобы она указывала на объект, не являющийся коммитом, без указания опции «--force».\n"
-#: builtin/push.c:360
+#: builtin/push.c:361
#, c-format
msgid "Pushing to %s\n"
msgstr "Отправка в %s\n"
-#: builtin/push.c:364
+#: builtin/push.c:365
#, c-format
msgid "failed to push some refs to '%s'"
msgstr "не удалось отправить некоторые ссылки в «%s»"
-#: builtin/push.c:394
+#: builtin/push.c:395
#, c-format
msgid "bad repository '%s'"
msgstr "плохой репозитория «%s»"
-#: builtin/push.c:395
+#: builtin/push.c:396
msgid ""
"No configured push destination.\n"
"Either specify the URL from the command-line or configure a remote repository using\n"
@@ -8014,108 +8562,109 @@ msgid ""
" git push <name>\n"
msgstr "Не настроена точка назначения для отправки.\nЛибо укажите URL с помощью коммандной строки, либо настройте внешний репозиторий с помощью\n\n git remote add <имя> <адрес>\n\nа затем отправьте изменения с помощью имени внешнего репозитория\n\n git push <имя>\n"
-#: builtin/push.c:410
+#: builtin/push.c:411
msgid "--all and --tags are incompatible"
msgstr "--all и --tags нельзя использовать одновременно"
-#: builtin/push.c:411
+#: builtin/push.c:412
msgid "--all can't be combined with refspecs"
msgstr "--all нельзя использовать вместе со спецификациями ссылок"
-#: builtin/push.c:416
+#: builtin/push.c:417
msgid "--mirror and --tags are incompatible"
msgstr "--mirror и --tags нельзя использовать одновременно"
-#: builtin/push.c:417
+#: builtin/push.c:418
msgid "--mirror can't be combined with refspecs"
msgstr "--mirror нельзя использовать вместе со спецификациями ссылок"
-#: builtin/push.c:422
+#: builtin/push.c:423
msgid "--all and --mirror are incompatible"
msgstr "--all и --mirror нельзя использовать одновременно"
-#: builtin/push.c:502
+#: builtin/push.c:539
msgid "repository"
msgstr "репозиторий"
-#: builtin/push.c:503
+#: builtin/push.c:540 builtin/send-pack.c:161
msgid "push all refs"
msgstr "отправить все ссылки"
-#: builtin/push.c:504
+#: builtin/push.c:541 builtin/send-pack.c:163
msgid "mirror all refs"
msgstr "сделать зеркало всех ссылок"
-#: builtin/push.c:506
+#: builtin/push.c:543
msgid "delete refs"
msgstr "удалить ссылки"
-#: builtin/push.c:507
+#: builtin/push.c:544
msgid "push tags (can't be used with --all or --mirror)"
msgstr "отправить метки (нельзя использовать вместе с --all или --mirror)"
-#: builtin/push.c:510
+#: builtin/push.c:547 builtin/send-pack.c:164
msgid "force updates"
msgstr "принудительное обновление"
-#: builtin/push.c:512
+#: builtin/push.c:549 builtin/send-pack.c:175
msgid "refname>:<expect"
msgstr "имя-ссылки>:<ожидается"
-#: builtin/push.c:513
+#: builtin/push.c:550 builtin/send-pack.c:176
msgid "require old value of ref to be at this value"
msgstr "требовать, чтобы старое значение ссылки было ожидаемым"
-#: builtin/push.c:516
+#: builtin/push.c:553
msgid "control recursive pushing of submodules"
msgstr "управление рекурсивной отправкой подмодулей"
-#: builtin/push.c:518
+#: builtin/push.c:555 builtin/send-pack.c:169
msgid "use thin pack"
msgstr "использовать тонкие пакеты"
-#: builtin/push.c:519 builtin/push.c:520
+#: builtin/push.c:556 builtin/push.c:557 builtin/send-pack.c:158
+#: builtin/send-pack.c:159
msgid "receive pack program"
msgstr "путь к программе упаковки на сервере"
-#: builtin/push.c:521
+#: builtin/push.c:558
msgid "set upstream for git pull/status"
msgstr "установить вышестоящую ветку для git pull/status"
-#: builtin/push.c:524
+#: builtin/push.c:561
msgid "prune locally removed refs"
msgstr "почистить локально удаленные ссылки"
-#: builtin/push.c:526
+#: builtin/push.c:563
msgid "bypass pre-push hook"
msgstr "пропустить перехватчик перед-отправкой"
-#: builtin/push.c:527
+#: builtin/push.c:564
msgid "push missing but relevant tags"
msgstr "отправить пропущенные, но нужные метки"
-#: builtin/push.c:529
+#: builtin/push.c:567 builtin/send-pack.c:166
msgid "GPG sign the push"
msgstr "подписать отправку с помощью GPG"
-#: builtin/push.c:530
+#: builtin/push.c:569 builtin/send-pack.c:170
msgid "request atomic transaction on remote side"
msgstr "запросить выполнение атомарной транзакции на внешней стороне"
-#: builtin/push.c:539
+#: builtin/push.c:579
msgid "--delete is incompatible with --all, --mirror and --tags"
msgstr "--delete несовместимо с --all, --mirror и --tags"
-#: builtin/push.c:541
+#: builtin/push.c:581
msgid "--delete doesn't make sense without any refs"
msgstr "--delete не имеет смысла без указания ссылок"
#: builtin/read-tree.c:37
msgid ""
-"git read-tree [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>]"
+"git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>)"
" [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] "
"[--index-output=<file>] (--empty | <tree-ish1> [<tree-ish2> [<tree-ish3>]])"
-msgstr "git read-tree [[-m [--trivial] [--aggressive] | --reset | --prefix=<префикс>] [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--index-output=<файл>] (--empty | <указатель-дерева-1> [<указатель-дерева-2> [<указатель-дерева-3>]])"
+msgstr "git read-tree [(-m [--trivial] [--aggressive] | --reset | --prefix=<префикс>) [-u [--exclude-per-directory=<gitignore>] | -i]] [--no-sparse-checkout] [--index-output=<файл>] (--empty | <указатель-дерева-1> [<указатель-дерева-2> [<указатель-дерева-3>]])"
#: builtin/read-tree.c:110
msgid "write resulting index to <file>"
@@ -8181,12 +8730,12 @@ msgstr "пропустить применение фильтра частичн
msgid "debug unpack-trees"
msgstr "отладка unpack-trees"
-#: builtin/reflog.c:430
+#: builtin/reflog.c:432
#, c-format
-msgid "%s' for '%s' is not a valid timestamp"
+msgid "'%s' for '%s' is not a valid timestamp"
msgstr "«%s» для «%s» не является допустимой меткой даты/времени"
-#: builtin/reflog.c:547 builtin/reflog.c:552
+#: builtin/reflog.c:549 builtin/reflog.c:554
#, c-format
msgid "'%s' is not a valid timestamp"
msgstr "«%s» не является допустимой меткой даты/времени"
@@ -8318,12 +8867,12 @@ msgstr "указание мастер ветки не имеет смысла с
msgid "specifying branches to track makes sense only with fetch mirrors"
msgstr "указание отслеживаемых веток имеет смысл только при зеркальном извлечении"
-#: builtin/remote.c:187 builtin/remote.c:640
+#: builtin/remote.c:187 builtin/remote.c:637
#, c-format
msgid "remote %s already exists."
msgstr "внешний репозиторий %s уже существует"
-#: builtin/remote.c:191 builtin/remote.c:644
+#: builtin/remote.c:191 builtin/remote.c:641
#, c-format
msgid "'%s' is not a valid remote name"
msgstr "«%s» не является допустимым именем внешнего репозитория."
@@ -8346,27 +8895,27 @@ msgstr "(соответствующая)"
msgid "(delete)"
msgstr "(удаленная)"
-#: builtin/remote.c:589 builtin/remote.c:595 builtin/remote.c:601
+#: builtin/remote.c:588 builtin/remote.c:594 builtin/remote.c:600
#, c-format
msgid "Could not append '%s' to '%s'"
msgstr "Не удалось добавить «%s» к «%s»"
-#: builtin/remote.c:633 builtin/remote.c:792 builtin/remote.c:892
+#: builtin/remote.c:630 builtin/remote.c:769 builtin/remote.c:869
#, c-format
msgid "No such remote: %s"
msgstr "Нет такого внешнего репозитория: %s"
-#: builtin/remote.c:650
+#: builtin/remote.c:647
#, c-format
msgid "Could not rename config section '%s' to '%s'"
msgstr "Не удалось переименовать секцию конфигурации с «%s» на «%s»"
-#: builtin/remote.c:656 builtin/remote.c:844
+#: builtin/remote.c:653 builtin/remote.c:821
#, c-format
msgid "Could not remove config section '%s'"
msgstr "Не удалось удалить секцию файла конфигурации «%s»"
-#: builtin/remote.c:671
+#: builtin/remote.c:668
#, c-format
msgid ""
"Not updating non-default fetch refspec\n"
@@ -8374,32 +8923,27 @@ msgid ""
"\tPlease update the configuration manually if necessary."
msgstr "Не обновляю нестандартную спецификацию ссылки для извлечения\n\t%s\n\tПожалуйста, если требуется, обновите конфигурацию вручную."
-#: builtin/remote.c:677
+#: builtin/remote.c:674
#, c-format
msgid "Could not append '%s'"
msgstr "Не удалось добавить «%s»"
-#: builtin/remote.c:688
+#: builtin/remote.c:685
#, c-format
msgid "Could not set '%s'"
msgstr "Не удалось установить «%s»"
-#: builtin/remote.c:710
+#: builtin/remote.c:707
#, c-format
msgid "deleting '%s' failed"
msgstr "не удалось удалить «%s»"
-#: builtin/remote.c:744
+#: builtin/remote.c:741
#, c-format
msgid "creating '%s' failed"
msgstr "не удалось создать «%s»"
-#: builtin/remote.c:763
-#, c-format
-msgid "Could not remove branch %s"
-msgstr "Не удалось удалить ветку «%s»"
-
-#: builtin/remote.c:830
+#: builtin/remote.c:807
msgid ""
"Note: A branch outside the refs/remotes/ hierarchy was not removed;\n"
"to delete it, use:"
@@ -8411,125 +8955,125 @@ msgstr[1] "Примечание: Некоторые ветки вне иерар
msgstr[2] "Примечание: Некоторые ветки вне иерархии refs/remotes/ не будут удалены;\nчтобы удалить их, используйте:"
msgstr[3] "Примечание: Некоторые ветки вне иерархии refs/remotes/ не будут удалены;\nчтобы удалить их, используйте:"
-#: builtin/remote.c:945
+#: builtin/remote.c:922
#, c-format
msgid " new (next fetch will store in remotes/%s)"
msgstr " новая (следующее извлечение сохранит ее в remotes/%s)"
-#: builtin/remote.c:948
+#: builtin/remote.c:925
msgid " tracked"
msgstr " отслеживается"
-#: builtin/remote.c:950
+#: builtin/remote.c:927
msgid " stale (use 'git remote prune' to remove)"
msgstr " недействительна (используйте «git remote prune», чтобы удалить)"
-#: builtin/remote.c:952
+#: builtin/remote.c:929
msgid " ???"
msgstr " ???"
-#: builtin/remote.c:993
+#: builtin/remote.c:970
#, c-format
msgid "invalid branch.%s.merge; cannot rebase onto > 1 branch"
msgstr "неправильный параметр конфигурации branch.%s.merge; невозможно переместить более чем над 1 веткой"
-#: builtin/remote.c:1000
+#: builtin/remote.c:977
#, c-format
msgid "rebases onto remote %s"
msgstr "будет перемещена над внешней веткой %s"
-#: builtin/remote.c:1003
+#: builtin/remote.c:980
#, c-format
msgid " merges with remote %s"
msgstr " будет слита с внешней веткой %s"
-#: builtin/remote.c:1004
+#: builtin/remote.c:981
msgid " and with remote"
msgstr " и с внешней веткой"
-#: builtin/remote.c:1006
+#: builtin/remote.c:983
#, c-format
msgid "merges with remote %s"
msgstr "будет слита с внешней веткой %s"
-#: builtin/remote.c:1007
+#: builtin/remote.c:984
msgid " and with remote"
msgstr " и с внешней веткой"
-#: builtin/remote.c:1053
+#: builtin/remote.c:1030
msgid "create"
msgstr "создана"
-#: builtin/remote.c:1056
+#: builtin/remote.c:1033
msgid "delete"
msgstr "удалена"
-#: builtin/remote.c:1060
+#: builtin/remote.c:1037
msgid "up to date"
msgstr "уже актуальна"
-#: builtin/remote.c:1063
+#: builtin/remote.c:1040
msgid "fast-forwardable"
msgstr "возможна перемотка вперед"
-#: builtin/remote.c:1066
+#: builtin/remote.c:1043
msgid "local out of date"
msgstr "локальная ветка устарела"
-#: builtin/remote.c:1073
+#: builtin/remote.c:1050
#, c-format
msgid " %-*s forces to %-*s (%s)"
msgstr " %-*s будет принудительно отправлена в %-*s (%s)"
-#: builtin/remote.c:1076
+#: builtin/remote.c:1053
#, c-format
msgid " %-*s pushes to %-*s (%s)"
msgstr " %-*s будет отправлена в %-*s (%s)"
-#: builtin/remote.c:1080
+#: builtin/remote.c:1057
#, c-format
msgid " %-*s forces to %s"
msgstr " %-*s будет принудительно отправлена в %s"
-#: builtin/remote.c:1083
+#: builtin/remote.c:1060
#, c-format
msgid " %-*s pushes to %s"
msgstr " %-*s будет отправлена в %s"
-#: builtin/remote.c:1151
+#: builtin/remote.c:1128
msgid "do not query remotes"
msgstr "не опрашивать внешние репозитории"
-#: builtin/remote.c:1178
+#: builtin/remote.c:1155
#, c-format
msgid "* remote %s"
msgstr "* внешний репозиторий %s"
-#: builtin/remote.c:1179
+#: builtin/remote.c:1156
#, c-format
msgid " Fetch URL: %s"
msgstr " URL для извлечения: %s"
-#: builtin/remote.c:1180 builtin/remote.c:1331
+#: builtin/remote.c:1157 builtin/remote.c:1308
msgid "(no URL)"
msgstr "(нет URL)"
-#: builtin/remote.c:1189 builtin/remote.c:1191
+#: builtin/remote.c:1166 builtin/remote.c:1168
#, c-format
msgid " Push URL: %s"
msgstr " URL для отправки: %s"
-#: builtin/remote.c:1193 builtin/remote.c:1195 builtin/remote.c:1197
+#: builtin/remote.c:1170 builtin/remote.c:1172 builtin/remote.c:1174
#, c-format
msgid " HEAD branch: %s"
msgstr " HEAD ветка: %s"
-#: builtin/remote.c:1199
+#: builtin/remote.c:1176
#, c-format
msgid " HEAD branch (remote HEAD is ambiguous, may be one of the following):\n"
msgstr " HEAD ветка (HEAD внешнего репозитория неоднозначный, может быть одним из):\n"
-#: builtin/remote.c:1211
+#: builtin/remote.c:1188
#, c-format
msgid " Remote branch:%s"
msgid_plural " Remote branches:%s"
@@ -8538,11 +9082,11 @@ msgstr[1] " Внешние ветки:%s"
msgstr[2] " Внешние ветки:%s"
msgstr[3] " Внешние ветки:%s"
-#: builtin/remote.c:1214 builtin/remote.c:1241
+#: builtin/remote.c:1191 builtin/remote.c:1218
msgid " (status not queried)"
msgstr " (статус не запрошен)"
-#: builtin/remote.c:1223
+#: builtin/remote.c:1200
msgid " Local branch configured for 'git pull':"
msgid_plural " Local branches configured for 'git pull':"
msgstr[0] " Локальная ветка, настроенная для «git pull»:"
@@ -8550,11 +9094,11 @@ msgstr[1] " Локальные ветки, настроенные для «git
msgstr[2] " Локальные ветки, настроенные для «git pull»:"
msgstr[3] " Локальные ветки, настроенные для «git pull»:"
-#: builtin/remote.c:1231
+#: builtin/remote.c:1208
msgid " Local refs will be mirrored by 'git push'"
msgstr " Локальные ссылки, зеркалируемые с помощью «git push»"
-#: builtin/remote.c:1238
+#: builtin/remote.c:1215
#, c-format
msgid " Local ref configured for 'git push'%s:"
msgid_plural " Local refs configured for 'git push'%s:"
@@ -8563,115 +9107,115 @@ msgstr[1] " Локальные ссылки, настроенные для «gi
msgstr[2] " Локальные ссылки, настроенные для «git push»%s:"
msgstr[3] " Локальные ссылки, настроенные для «git push»%s:"
-#: builtin/remote.c:1259
+#: builtin/remote.c:1236
msgid "set refs/remotes/<name>/HEAD according to remote"
msgstr "установить refs/remotes/<имя>/HEAD в зависимости от внешнего репозитория"
-#: builtin/remote.c:1261
+#: builtin/remote.c:1238
msgid "delete refs/remotes/<name>/HEAD"
msgstr "удалить refs/remotes/<имя>/HEAD"
-#: builtin/remote.c:1276
+#: builtin/remote.c:1253
msgid "Cannot determine remote HEAD"
msgstr "Не удалось определить внешний HEAD"
-#: builtin/remote.c:1278
+#: builtin/remote.c:1255
msgid "Multiple remote HEAD branches. Please choose one explicitly with:"
msgstr "Несколько внешних HEAD веток. Укажите явно одну из них:"
-#: builtin/remote.c:1288
+#: builtin/remote.c:1265
#, c-format
msgid "Could not delete %s"
msgstr "Не удалось удалить %s"
-#: builtin/remote.c:1296
+#: builtin/remote.c:1273
#, c-format
msgid "Not a valid ref: %s"
msgstr "Неправильная ссылка: %s"
-#: builtin/remote.c:1298
+#: builtin/remote.c:1275
#, c-format
msgid "Could not setup %s"
msgstr "Не удалось настроить %s"
-#: builtin/remote.c:1316
+#: builtin/remote.c:1293
#, c-format
msgid " %s will become dangling!"
msgstr " %s будет висящей веткой!"
-#: builtin/remote.c:1317
+#: builtin/remote.c:1294
#, c-format
msgid " %s has become dangling!"
msgstr " %s стала висящей веткой!"
-#: builtin/remote.c:1327
+#: builtin/remote.c:1304
#, c-format
msgid "Pruning %s"
msgstr "Удаление %s"
-#: builtin/remote.c:1328
+#: builtin/remote.c:1305
#, c-format
msgid "URL: %s"
msgstr "URL: %s"
-#: builtin/remote.c:1351
+#: builtin/remote.c:1321
#, c-format
msgid " * [would prune] %s"
msgstr " * [будет удалена] %s"
-#: builtin/remote.c:1354
+#: builtin/remote.c:1324
#, c-format
msgid " * [pruned] %s"
msgstr " * [удалена] %s"
-#: builtin/remote.c:1399
+#: builtin/remote.c:1369
msgid "prune remotes after fetching"
msgstr "почистить внешние репозитории после извлечения"
-#: builtin/remote.c:1465 builtin/remote.c:1539
+#: builtin/remote.c:1435 builtin/remote.c:1509
#, c-format
msgid "No such remote '%s'"
msgstr "Нет такого внешнего репозитория «%s»"
-#: builtin/remote.c:1485
+#: builtin/remote.c:1455
msgid "add branch"
msgstr "добавить ветку"
-#: builtin/remote.c:1492
+#: builtin/remote.c:1462
msgid "no remote specified"
msgstr "не указан внешний репозиторий"
-#: builtin/remote.c:1514
+#: builtin/remote.c:1484
msgid "manipulate push URLs"
msgstr "управление URL отправки"
-#: builtin/remote.c:1516
+#: builtin/remote.c:1486
msgid "add URL"
msgstr "добавить URL"
-#: builtin/remote.c:1518
+#: builtin/remote.c:1488
msgid "delete URLs"
msgstr "удалить URL"
-#: builtin/remote.c:1525
+#: builtin/remote.c:1495
msgid "--add --delete doesn't make sense"
msgstr "--add нельзя использовать одновременно с --delete"
-#: builtin/remote.c:1565
+#: builtin/remote.c:1535
#, c-format
msgid "Invalid old URL pattern: %s"
msgstr "Неправильный шаблон старого URL: %s"
-#: builtin/remote.c:1573
+#: builtin/remote.c:1543
#, c-format
msgid "No such URL found: %s"
msgstr "Не найдены совпадения URL: %s"
-#: builtin/remote.c:1575
+#: builtin/remote.c:1545
msgid "Will not delete all non-push URLs"
msgstr "Нельзя удалить все URL не-отправки"
-#: builtin/remote.c:1589
+#: builtin/remote.c:1559
msgid "be verbose; must be placed before a subcommand"
msgstr "быть многословнее; должно стоять перед подкомандой"
@@ -8743,7 +9287,7 @@ msgstr "максимальный размер каждого из файлов
msgid "repack objects in packs marked with .keep"
msgstr "переупаковать объекты в пакеты, помеченные файлом .keep"
-#: builtin/repack.c:377
+#: builtin/repack.c:378
#, c-format
msgid "removing '%s' failed"
msgstr "не удалось удалить «%s»"
@@ -8925,11 +9469,6 @@ msgstr "записать только факт того, что удаленны
msgid "Failed to resolve '%s' as a valid revision."
msgstr "Не удалось распознать «%s» как действительную редакцию."
-#: builtin/reset.c:308 builtin/reset.c:316
-#, c-format
-msgid "Could not parse object '%s'."
-msgstr "Не удалось разобрать объект «%s»."
-
#: builtin/reset.c:313
#, c-format
msgid "Failed to resolve '%s' as a valid tree."
@@ -8970,6 +9509,10 @@ msgstr "Не удалось сбросить файл индекса на ред
msgid "Could not write new index file."
msgstr "Не удалось записать новый файл индекса."
+#: builtin/rev-list.c:354
+msgid "rev-list does not support display of notes"
+msgstr "rev-list не поддерживает отображение заметок"
+
#: builtin/rev-parse.c:361
msgid "git rev-parse --parseopt [<options>] -- [<args>...]"
msgstr "git rev-parse --parseopt [<опции>] -- [<аргументы>…]"
@@ -8986,7 +9529,7 @@ msgstr "остановить разбор после первого аргуме
msgid "output in stuck long form"
msgstr "выводить аргументы в длинном формате"
-#: builtin/rev-parse.c:499
+#: builtin/rev-parse.c:502
msgid ""
"git rev-parse --parseopt [<options>] -- [<args>...]\n"
" or: git rev-parse --sq-quote [<arg>...]\n"
@@ -9056,10 +9599,6 @@ msgstr "опция для стратегии слияния"
msgid "append commit name"
msgstr "добавить имя коммита"
-#: builtin/revert.c:105
-msgid "allow fast-forward"
-msgstr "разрешить перемотку вперед"
-
#: builtin/revert.c:106
msgid "preserve initially empty commits"
msgstr "сохранить изначально пустые коммиты"
@@ -9180,6 +9719,28 @@ msgstr "не удаляю рекурсивно «%s» без указания о
msgid "git rm: unable to remove %s"
msgstr "git rm: не удалось удалить %s"
+#: builtin/send-pack.c:18
+msgid ""
+"git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<host>:]<directory> [<ref>...]\n"
+" --all and explicit <ref> specification are mutually exclusive."
+msgstr "git send-pack [--all | --mirror] [--dry-run] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [--atomic] [<сервер>:]<каталог> [<ссылка>…]\n --all и явная спецификация <ссылки> взаимно исключающие."
+
+#: builtin/send-pack.c:160
+msgid "remote name"
+msgstr "имя внешнего репозитория"
+
+#: builtin/send-pack.c:171
+msgid "use stateless RPC protocol"
+msgstr "протокол без сохранения состояния для RPC"
+
+#: builtin/send-pack.c:172
+msgid "read refs from stdin"
+msgstr "прочитать ссылки из стандартного ввода"
+
+#: builtin/send-pack.c:173
+msgid "print status from remote helper"
+msgstr "вывести статус от скрипта внешнего сервера"
+
#: builtin/shortlog.c:13
msgid "git shortlog [<options>] [<revision-range>] [[--] [<path>...]]"
msgstr "git shortlog [<опции>] [<диапазон-редакций>] [[--] [<путь>…]]"
@@ -9292,8 +9853,8 @@ msgid ""
msgstr "git show-ref [-q | --quiet] [--verify] [--head] [-d | --dereference] [-s | --hash[=<n>]] [--abbrev[=<n>]] [--tags] [--heads] [--] [<шаблон>…]"
#: builtin/show-ref.c:11
-msgid "git show-ref --exclude-existing[=pattern] < ref-list"
-msgstr "git show-ref --exclude-existing[=шаблон] < ref-list"
+msgid "git show-ref --exclude-existing[=<pattern>] < <ref-list>"
+msgstr "git show-ref --exclude-existing[=<шаблон>] < <список-ссылок>"
#: builtin/show-ref.c:170
msgid "only show tags (can be combined with heads)"
@@ -9347,11 +9908,11 @@ msgstr "удалить символьные ссылки"
msgid "shorten ref output"
msgstr "укороченный вывод ссылок"
-#: builtin/symbolic-ref.c:43 builtin/update-ref.c:358
+#: builtin/symbolic-ref.c:43 builtin/update-ref.c:362
msgid "reason"
msgstr "причина"
-#: builtin/symbolic-ref.c:43 builtin/update-ref.c:358
+#: builtin/symbolic-ref.c:43 builtin/update-ref.c:362
msgid "reason of the update"
msgstr "причина обновления"
@@ -9462,110 +10023,114 @@ msgstr "при указании параметра «points-at» требует
msgid "malformed object name '%s'"
msgstr "Поврежденное имя объекта «%s»"
-#: builtin/tag.c:589
+#: builtin/tag.c:590
msgid "list tag names"
msgstr "список названий меток"
-#: builtin/tag.c:591
+#: builtin/tag.c:592
msgid "print <n> lines of each tag message"
msgstr "печатать <n> строк описания от каждой метки"
-#: builtin/tag.c:593
+#: builtin/tag.c:594
msgid "delete tags"
msgstr "удалить метки"
-#: builtin/tag.c:594
+#: builtin/tag.c:595
msgid "verify tags"
msgstr "проверить метки"
-#: builtin/tag.c:596
+#: builtin/tag.c:597
msgid "Tag creation options"
msgstr "Настройки создания метки"
-#: builtin/tag.c:598
+#: builtin/tag.c:599
msgid "annotated tag, needs a message"
msgstr "для аннотированной метки нужно сообщение"
-#: builtin/tag.c:600
+#: builtin/tag.c:601
msgid "tag message"
msgstr "описание метки"
-#: builtin/tag.c:602
+#: builtin/tag.c:603
msgid "annotated and GPG-signed tag"
msgstr "аннотированная и подписанная с помощью GPG метка"
-#: builtin/tag.c:606
+#: builtin/tag.c:607
msgid "use another key to sign the tag"
msgstr "использовать другой ключ для подписания метки"
-#: builtin/tag.c:607
+#: builtin/tag.c:608
msgid "replace the tag if exists"
msgstr "замена метки, если она существует"
-#: builtin/tag.c:609
+#: builtin/tag.c:609 builtin/update-ref.c:368
+msgid "create a reflog"
+msgstr "создать журнал ссылок"
+
+#: builtin/tag.c:611
msgid "Tag listing options"
msgstr "Настройки вывода списка меток"
-#: builtin/tag.c:610
+#: builtin/tag.c:612
msgid "show tag list in columns"
msgstr "показать список меток по столбцам"
-#: builtin/tag.c:612
+#: builtin/tag.c:614
msgid "sort tags"
msgstr "отсортировать метки"
-#: builtin/tag.c:617 builtin/tag.c:623
+#: builtin/tag.c:619 builtin/tag.c:625
msgid "print only tags that contain the commit"
msgstr "вывод только меток, которые содержат коммит"
-#: builtin/tag.c:629
+#: builtin/tag.c:631
msgid "print only tags of the object"
msgstr "вывод только меток, определенного объекта"
-#: builtin/tag.c:655
+#: builtin/tag.c:657
msgid "--column and -n are incompatible"
msgstr "--column и -n нельзя использовать одновременно"
-#: builtin/tag.c:667
+#: builtin/tag.c:669
msgid "--sort and -n are incompatible"
msgstr "--sort и -n нельзя использовать одновременно"
-#: builtin/tag.c:674
+#: builtin/tag.c:676
msgid "-n option is only allowed with -l."
msgstr "опцию -n можно использовать только вместе с -l."
-#: builtin/tag.c:676
+#: builtin/tag.c:678
msgid "--contains option is only allowed with -l."
msgstr "опцию --contains можно использовать только вместе с -l."
-#: builtin/tag.c:678
+#: builtin/tag.c:680
msgid "--points-at option is only allowed with -l."
msgstr "опцию --points-at можно использовать только вместе с -l."
-#: builtin/tag.c:686
+#: builtin/tag.c:688
msgid "only one -F or -m option is allowed."
msgstr "-F и -m нельзя использовать одновременно."
-#: builtin/tag.c:706
+#: builtin/tag.c:708
msgid "too many params"
msgstr "передано слишком много параметров"
-#: builtin/tag.c:712
+#: builtin/tag.c:714
#, c-format
msgid "'%s' is not a valid tag name."
msgstr "«%s» не является допустимым именем метки."
-#: builtin/tag.c:717
+#: builtin/tag.c:719
#, c-format
msgid "tag '%s' already exists"
msgstr "метка «%s» уже существует"
-#: builtin/tag.c:741
+#: builtin/tag.c:744
#, c-format
msgid "Updated tag '%s' (was %s)\n"
msgstr "Метка «%s» обновлена (была %s)\n"
-#: builtin/unpack-objects.c:489
+#: builtin/unpack-objects.c:490
msgid "Unpacking objects"
msgstr "Распаковка объектов"
@@ -9763,19 +10328,19 @@ msgstr "git update-ref [<опции>] <имя-ссылки> <новое-зн
msgid "git update-ref [<options>] --stdin [-z]"
msgstr "git update-ref [<опции>] --stdin [-z]"
-#: builtin/update-ref.c:359
+#: builtin/update-ref.c:363
msgid "delete the reference"
msgstr "удалить ссылку"
-#: builtin/update-ref.c:361
+#: builtin/update-ref.c:365
msgid "update <refname> not the one it points to"
msgstr "обновить <имя-ссылки> а не то, на что она указывает"
-#: builtin/update-ref.c:362
+#: builtin/update-ref.c:366
msgid "stdin has NUL-terminated arguments"
msgstr "ввод отделенный НУЛЕВЫМИ символами"
-#: builtin/update-ref.c:363
+#: builtin/update-ref.c:367
msgid "read updates from stdin"
msgstr "прочитать обновления из стандартного ввода"
@@ -9791,10 +10356,14 @@ msgstr "обновить информацию о серверах с нуля"
msgid "git verify-commit [-v | --verbose] <commit>..."
msgstr "git verify-commit [-v | --verbose] <коммит>…"
-#: builtin/verify-commit.c:75
+#: builtin/verify-commit.c:72
msgid "print commit contents"
msgstr "вывести содержимое коммита"
+#: builtin/verify-commit.c:73 builtin/verify-tag.c:84
+msgid "print raw gpg status output"
+msgstr "выводить сырой вывод статуса от gpg"
+
#: builtin/verify-pack.c:54
msgid "git verify-pack [-v | --verbose] [-s | --stat-only] <pack>..."
msgstr "git verify-pack [-v | --verbose] [-s | --stat-only] <пакет>…"
@@ -9811,86 +10380,82 @@ msgstr "вывести только статистику"
msgid "git verify-tag [-v | --verbose] <tag>..."
msgstr "git verify-tag [-v | --verbose] <метка>…"
-#: builtin/verify-tag.c:73
+#: builtin/verify-tag.c:83
msgid "print tag contents"
msgstr "вывести содержимое метки"
-#: builtin/worktree.c:11
+#: builtin/worktree.c:13
msgid "git worktree add [<options>] <path> <branch>"
msgstr "git worktree add [<опции>] <путь> <ветка>"
-#: builtin/worktree.c:12
+#: builtin/worktree.c:14
msgid "git worktree prune [<options>]"
msgstr "git worktree prune [<опции>]"
-#: builtin/worktree.c:27
+#: builtin/worktree.c:36
#, c-format
msgid "Removing worktrees/%s: not a valid directory"
msgstr "Удаление рабочих каталогов/%s: не является каталогом"
-#: builtin/worktree.c:33
+#: builtin/worktree.c:42
#, c-format
msgid "Removing worktrees/%s: gitdir file does not exist"
msgstr "Удаление рабочих каталогов/%s: файл gitdir не существует"
-#: builtin/worktree.c:38
+#: builtin/worktree.c:47
#, c-format
msgid "Removing worktrees/%s: unable to read gitdir file (%s)"
msgstr "Удаление рабочих каталогов/%s: не удалось прочитать файл gitdir (%s)"
-#: builtin/worktree.c:49
+#: builtin/worktree.c:58
#, c-format
msgid "Removing worktrees/%s: invalid gitdir file"
msgstr "Удаление рабочих каталогов/%s: недействительный файл gitdir"
-#: builtin/worktree.c:65
+#: builtin/worktree.c:74
#, c-format
msgid "Removing worktrees/%s: gitdir file points to non-existent location"
msgstr "Удаление рабочих каталогов/%s: gitdir указывает на несуществующее расположение"
-#: builtin/worktree.c:100
+#: builtin/worktree.c:109
#, c-format
msgid "failed to remove: %s"
msgstr "не удалось удалить: %s"
-#: builtin/worktree.c:186
+#: builtin/worktree.c:198
#, c-format
msgid "'%s' already exists"
msgstr "«%s» уже существует"
-#: builtin/worktree.c:207
+#: builtin/worktree.c:232
#, c-format
msgid "could not create directory of '%s'"
msgstr "не удалось создать каталог «%s»"
-#: builtin/worktree.c:241
-msgid "unable to resolve HEAD"
-msgstr "не удалось определить HEAD"
-
-#: builtin/worktree.c:249
+#: builtin/worktree.c:268
#, c-format
-msgid "Enter %s (identifier %s)"
-msgstr "Вход в %s (идентификатор %s)"
+msgid "Preparing %s (identifier %s)"
+msgstr "Подготовка %s (идентификатор %s)"
-#: builtin/worktree.c:281
+#: builtin/worktree.c:316
msgid "checkout <branch> even if already checked out in other worktree"
msgstr "перейти на <ветка> даже если она уже активна в другом рабочесм каталоге"
-#: builtin/worktree.c:283
+#: builtin/worktree.c:318
msgid "create a new branch"
msgstr "создать новую ветку"
-#: builtin/worktree.c:285
+#: builtin/worktree.c:320
msgid "create or reset a branch"
msgstr "создать или перейти на ветку"
-#: builtin/worktree.c:286
+#: builtin/worktree.c:321
msgid "detach HEAD at named commit"
msgstr "отсоединить HEAD на указанном коммите"
-#: builtin/worktree.c:292
-msgid "-b and -B are mutually exclusive"
-msgstr "-b и -B нельзя использовать одновременно"
+#: builtin/worktree.c:328
+msgid "-b, -B, and --detach are mutually exclusive"
+msgstr "-b, -B и --detach нельзя использовать одновременно"
#: builtin/write-tree.c:13
msgid "git write-tree [--missing-ok] [--prefix=<prefix>/]"
@@ -9908,7 +10473,7 @@ msgstr "вывести объект дерева для подкаталога
msgid "only useful for debugging"
msgstr "используется только при отладке"
-#: credential-cache--daemon.c:267
+#: credential-cache--daemon.c:255
msgid "print debugging messages to stderr"
msgstr "вывод отладочных сообщений на stderr"
@@ -9919,465 +10484,284 @@ msgid ""
"to read about a specific subcommand or concept."
msgstr "«git help -а» и «git help -g» выводит список доступных подкоманд и\nнекоторые руководства по темам. Запустите «git help <команда>» или\n«git help <термин>», чтобы прочесть о конкретных подкоманде или теме."
-#: common-cmds.h:10
+#: common-cmds.h:9
msgid "start a working area (see also: git help tutorial)"
msgstr "создать рабочую область (смотрите также: git help tutorial)"
-#: common-cmds.h:11
+#: common-cmds.h:10
msgid "work on the current change (see also: git help everyday)"
msgstr "работа с текущими изменениями (смотрите также: git help everyday)"
-#: common-cmds.h:12
+#: common-cmds.h:11
msgid "examine the history and state (see also: git help revisions)"
msgstr "просмотр истории и текущего состояния (смотрите также: git help revisions)"
-#: common-cmds.h:13
+#: common-cmds.h:12
msgid "grow, mark and tweak your common history"
msgstr "выращивание, отметка и настройка вашей общей истории"
-#: common-cmds.h:14
+#: common-cmds.h:13
msgid "collaborate (see also: git help workflows)"
msgstr "совместная работа (смотрите также: git help workflows)"
-#: common-cmds.h:18
+#: common-cmds.h:17
msgid "Add file contents to the index"
msgstr "Добавление содержимого файла в индекс"
-#: common-cmds.h:19
-msgid "Find by binary search the change that introduced a bug"
-msgstr "Двоичный поиск изменения, которое вносит ошибку"
+#: common-cmds.h:18
+msgid "Use binary search to find the commit that introduced a bug"
+msgstr "Использовать двоичный поиск изменения, которое вносит ошибку"
-#: common-cmds.h:20
+#: common-cmds.h:19
msgid "List, create, or delete branches"
msgstr "Вывод списка, создание или удаление веток"
-#: common-cmds.h:21
+#: common-cmds.h:20
msgid "Switch branches or restore working tree files"
msgstr "Переключение веток или восстановление файлов в рабочем каталоге"
-#: common-cmds.h:22
+#: common-cmds.h:21
msgid "Clone a repository into a new directory"
msgstr "Клонирование репозитория в новый каталог"
-#: common-cmds.h:23
+#: common-cmds.h:22
msgid "Record changes to the repository"
msgstr "Запись изменений в репозиторий"
-#: common-cmds.h:24
+#: common-cmds.h:23
msgid "Show changes between commits, commit and working tree, etc"
msgstr "Вывод разницы между коммитами, коммитом и рабочим каталогом и т.д."
-#: common-cmds.h:25
+#: common-cmds.h:24
msgid "Download objects and refs from another repository"
msgstr "Загрузка объектов и ссылок из другого репозитория"
-#: common-cmds.h:26
+#: common-cmds.h:25
msgid "Print lines matching a pattern"
msgstr "Вывод строк, соответствующих шаблону"
-#: common-cmds.h:27
+#: common-cmds.h:26
msgid "Create an empty Git repository or reinitialize an existing one"
msgstr "Создание пустого репозитория Git или реинициализация существующего"
-#: common-cmds.h:28
+#: common-cmds.h:27
msgid "Show commit logs"
msgstr "Вывод истории коммитов"
-#: common-cmds.h:29
+#: common-cmds.h:28
msgid "Join two or more development histories together"
msgstr "Объединение одной или нескольких историй разработки вместе"
-#: common-cmds.h:30
+#: common-cmds.h:29
msgid "Move or rename a file, a directory, or a symlink"
msgstr "Перемещение или переименование файла, каталога или символьной ссылки"
-#: common-cmds.h:31
+#: common-cmds.h:30
msgid "Fetch from and integrate with another repository or a local branch"
msgstr "Извлечение изменений и объединение с другим репозиторием или локальной веткой"
-#: common-cmds.h:32
+#: common-cmds.h:31
msgid "Update remote refs along with associated objects"
msgstr "Обновление внешних ссылок и связанных объектов"
-#: common-cmds.h:33
+#: common-cmds.h:32
msgid "Forward-port local commits to the updated upstream head"
msgstr "Перемещение локальных коммитов над обновленной вышестоящей веткой"
-#: common-cmds.h:34
+#: common-cmds.h:33
msgid "Reset current HEAD to the specified state"
msgstr "Сброс текущего состояния HEAD на указанное состояние"
-#: common-cmds.h:35
+#: common-cmds.h:34
msgid "Remove files from the working tree and from the index"
msgstr "Удаление файлов из рабочего каталога и индекса"
-#: common-cmds.h:36
+#: common-cmds.h:35
msgid "Show various types of objects"
msgstr "Вывод различных типов объектов"
-#: common-cmds.h:37
+#: common-cmds.h:36
msgid "Show the working tree status"
msgstr "Вывод состояния рабочего каталога"
-#: common-cmds.h:38
+#: common-cmds.h:37
msgid "Create, list, delete or verify a tag object signed with GPG"
msgstr "Создание, вывод списка, удаление или проверка метки, подписанной с помощью GPG"
-#: parse-options.h:142
+#: parse-options.h:145
msgid "expiry-date"
msgstr "дата-окончания"
-#: parse-options.h:157
+#: parse-options.h:160
msgid "no-op (backward compatibility)"
msgstr "ничего не делает (оставлено для обратной совместимости)"
-#: parse-options.h:231
+#: parse-options.h:236
msgid "be more verbose"
msgstr "быть многословнее"
-#: parse-options.h:233
+#: parse-options.h:238
msgid "be more quiet"
msgstr "тихий режим"
-#: parse-options.h:239
+#: parse-options.h:244
msgid "use <n> digits to display SHA-1s"
msgstr "использовать <n> цифр для вывода SHA-1"
-#: rerere.h:27
+#: rerere.h:28
msgid "update the index with reused conflict resolution if possible"
msgstr "обновить индекс с помощью переиспользования разрешения конфликта, если возможно"
-#: git-am.sh:53
-msgid "You need to set your committer info first"
-msgstr "Сначала нужно указать вашу информацию о коммитере"
-
-#: git-am.sh:100
-msgid ""
-"You seem to have moved HEAD since the last 'am' failure.\n"
-"Not rewinding to ORIG_HEAD"
-msgstr "Похоже, что вы переместили HEAD с момента последней ошибки выполнения «am».\nПеремотка на ORIG_HEAD не выполняется"
-
-#: git-am.sh:110
-#, sh-format
-msgid ""
-"When you have resolved this problem, run \"$cmdline --continue\".\n"
-"If you prefer to skip this patch, run \"$cmdline --skip\" instead.\n"
-"To restore the original branch and stop patching, run \"$cmdline --abort\"."
-msgstr "Когда вы разрешите этот конфликт, запустите «$cmdline --continue».\nЕсли вы хотите пропустить этот патч, то запустите «$cmdline --skip».\nЧтобы перейти на оригинальную ветку и остановить применение изменений, запустите «$cmdline --abort»."
-
-#: git-am.sh:126
-msgid "Cannot fall back to three-way merge."
-msgstr "Не удалось откатиться к трехходовому слиянию."
-
-#: git-am.sh:142
-msgid "Repository lacks necessary blobs to fall back on 3-way merge."
-msgstr "В репозитории отсутствуют двоичные объекты, необходимые для отката к трехходовому слиянию."
-
-#: git-am.sh:144
-msgid "Using index info to reconstruct a base tree..."
-msgstr "Использую индекс для реконструкции базового дерева…"
-
-#: git-am.sh:159
-msgid ""
-"Did you hand edit your patch?\n"
-"It does not apply to blobs recorded in its index."
-msgstr "Вы вручную изменяли патч?\nОн не накладывается без ошибок на двоичные объекты, записанные в его заголовке."
-
-#: git-am.sh:168
-msgid "Falling back to patching base and 3-way merge..."
-msgstr "Откат к применению изменений к базовому коммиту с помощью трехходового слияния…"
-
-#: git-am.sh:185
-msgid "Failed to merge in the changes."
-msgstr "Не удалось слить изменения."
-
-#: git-am.sh:280
-msgid "Only one StGIT patch series can be applied at once"
-msgstr "Только серия патчей StGIT может быть применена за раз"
-
-#: git-am.sh:367
-#, sh-format
-msgid "Patch format $patch_format is not supported."
-msgstr "Неподдерживаемый формат патча $patch_format."
-
-#: git-am.sh:369
-msgid "Patch format detection failed."
-msgstr "Сбой определения формата патча."
-
-#: git-am.sh:407
-msgid ""
-"The -b/--binary option has been a no-op for long time, and\n"
-"it will be removed. Please do not use it anymore."
-msgstr "Опция -b/--binary уже долгое время ничего не делает и будет удалена с следующих версиях Git. Пожалуйста, не используйте ее."
-
-#: git-am.sh:507
-#, sh-format
-msgid "previous rebase directory $dotest still exists but mbox given."
-msgstr "предыдущий каталог перемещения $dotest еще существует, но передан mbox."
-
-#: git-am.sh:512
-msgid "Please make up your mind. --skip or --abort?"
-msgstr "Пожалуйста, определитесь: --skip или --abort?"
-
-#: git-am.sh:560
-#, sh-format
-msgid ""
-"Stray $dotest directory found.\n"
-"Use \"git am --abort\" to remove it."
-msgstr "Найден забытый каталог $dotest.\nИспользуйте «git am --abort», чтобы удалить его."
-
-#: git-am.sh:568
-msgid "Resolve operation not in progress, we are not resuming."
-msgstr "Операция разрешения конфликтов не в процессе выполнения, не продолжаем."
-
-#: git-am.sh:635
-#, sh-format
-msgid "Dirty index: cannot apply patches (dirty: $files)"
-msgstr "Индекс не пустой: нельзя применять патчи (в индексе: $files)"
-
-#: git-am.sh:747
-#, sh-format
-msgid ""
-"Patch is empty. Was it split wrong?\n"
-"If you would prefer to skip this patch, instead run \"$cmdline --skip\".\n"
-"To restore the original branch and stop patching run \"$cmdline --abort\"."
-msgstr "Патч пуст. Возможно, он был неправильно разделен?\nЕсли вы хотите пропустить этот патч, то вместо этого запустите «$cmdline --skip».\nЧтобы перейти на оригинальную ветку и остановить применение изменений, запустите «$cmdline --abort»."
-
-#: git-am.sh:774
-msgid "Patch does not have a valid e-mail address."
-msgstr "Патч не содержит действительный адрес электронной почты."
-
-#: git-am.sh:821
-msgid "cannot be interactive without stdin connected to a terminal."
-msgstr "не удалось использовать интерактивное поведение, без stdin подключенного к терминалу."
-
-#: git-am.sh:825
-msgid "Commit Body is:"
-msgstr "Тело коммита:"
-
-#. TRANSLATORS: Make sure to include [y], [n], [e], [v] and [a]
-#. in your translation. The program will only accept English
-#. input at this point.
-#: git-am.sh:832
-msgid "Apply? [y]es/[n]o/[e]dit/[v]iew patch/[a]ccept all "
-msgstr "Применить? [y] - да/[n] - нет/[e] - редактировать/[v] - просмотреть патч/[a] - применить все "
-
-#: git-am.sh:868
-#, sh-format
-msgid "Applying: $FIRSTLINE"
-msgstr "Применение: $FIRSTLINE"
-
-#: git-am.sh:889
-msgid ""
-"No changes - did you forget to use 'git add'?\n"
-"If there is nothing left to stage, chances are that something else\n"
-"already introduced the same changes; you might want to skip this patch."
-msgstr "Нет изменений — возможно, вы забыли вызвать «git add»?\nЕсли ничего не осталось для индексации, то, скорее всего, что-то другое уже сделало те же изменения; возможно, вам следует пропустить этот патч."
-
-#: git-am.sh:897
-msgid ""
-"You still have unmerged paths in your index\n"
-"did you forget to use 'git add'?"
-msgstr "У вас все еще имеются не слитые пути в индексе.\nВозможно, вы забыли вызвать «git add»?"
-
-#: git-am.sh:913
-msgid "No changes -- Patch already applied."
-msgstr "Нет изменений — Патч уже применен."
-
-#: git-am.sh:923
-#, sh-format
-msgid "Patch failed at $msgnum $FIRSTLINE"
-msgstr "Ошибка применения изменений на строке $msgnum $FIRSTLINE"
-
-#: git-am.sh:926
-#, sh-format
-msgid ""
-"The copy of the patch that failed is found in:\n"
-" $dotest/patch"
-msgstr "Копию изменений, которые не удалось применить, вы можете найти в:\n $dotest/patch"
-
-#: git-am.sh:945
-msgid "applying to an empty history"
-msgstr "применение к пустой истории"
-
-#: git-bisect.sh:48
+#: git-bisect.sh:50
msgid "You need to start by \"git bisect start\""
msgstr "Вам нужно начать с помощью «git bisect start»"
#. TRANSLATORS: Make sure to include [Y] and [n] in your
#. translation. The program will only accept English input
#. at this point.
-#: git-bisect.sh:54
+#: git-bisect.sh:56
msgid "Do you want me to do it for you [Y/n]? "
msgstr "Вы уверены, что хотите, чтобы я сделал это [Y - да/n - нет]? "
-#: git-bisect.sh:95
+#: git-bisect.sh:99
#, sh-format
msgid "unrecognised option: '$arg'"
msgstr "неопознанная опция: «$arg»"
-#: git-bisect.sh:99
+#: git-bisect.sh:103
#, sh-format
msgid "'$arg' does not appear to be a valid revision"
msgstr "«$arg» не похоже на действительную редакцию"
-#: git-bisect.sh:117
+#: git-bisect.sh:132
msgid "Bad HEAD - I need a HEAD"
msgstr "Плохой указатель HEAD — Необходим указатель HEAD"
-#: git-bisect.sh:130
+#: git-bisect.sh:145
#, sh-format
msgid ""
"Checking out '$start_head' failed. Try 'git bisect reset <valid-branch>'."
msgstr "Сбой перехода на «$start_head». Попробуйте выполнить «git bisect reset <существующая-ветка>»."
-#: git-bisect.sh:140
+#: git-bisect.sh:155
msgid "won't bisect on cg-seek'ed tree"
msgstr "нельзя выполнить двоичный поиск на дереве после cg-seek"
-#: git-bisect.sh:144
+#: git-bisect.sh:159
msgid "Bad HEAD - strange symbolic ref"
msgstr "Плохой указатель HEAD — странная символьная ссылка"
-#: git-bisect.sh:189
+#: git-bisect.sh:211
#, sh-format
msgid "Bad bisect_write argument: $state"
msgstr "Плохой аргумент bisect_write: $state"
-#: git-bisect.sh:218
+#: git-bisect.sh:240
#, sh-format
msgid "Bad rev input: $arg"
msgstr "Плохой ввод номера редакции: $arg"
-#: git-bisect.sh:232
+#: git-bisect.sh:255
msgid "Please call 'bisect_state' with at least one argument."
msgstr "Пожалуйста, вызывайте «bisect_state» как минимум с одним аргументом."
-#: git-bisect.sh:244
+#: git-bisect.sh:267
#, sh-format
msgid "Bad rev input: $rev"
msgstr "Плохой ввод номера редакции: $rev"
-#: git-bisect.sh:253
-msgid "'git bisect bad' can take only one argument."
-msgstr "«git bisect bad» может принимать только один аргумент."
-
#: git-bisect.sh:276
-msgid "Warning: bisecting only with a bad commit."
-msgstr "Предупреждение: попытка двоичного поиска с указанием только плохого коммита."
+#, sh-format
+msgid "'git bisect $TERM_BAD' can take only one argument."
+msgstr "«git bisect $TERM_BAD» может принимать только один аргумент."
+
+#: git-bisect.sh:299
+#, sh-format
+msgid "Warning: bisecting only with a $TERM_BAD commit."
+msgstr "Предупреждение: попытка двоичного поиска с указанием только $TERM_BAD коммита."
#. TRANSLATORS: Make sure to include [Y] and [n] in your
#. translation. The program will only accept English input
#. at this point.
-#: git-bisect.sh:282
+#: git-bisect.sh:305
msgid "Are you sure [Y/n]? "
msgstr "Вы уверены [Y - да/n - нет]? "
-#: git-bisect.sh:292
+#: git-bisect.sh:317
+#, sh-format
msgid ""
-"You need to give me at least one good and one bad revision.\n"
-"(You can use \"git bisect bad\" and \"git bisect good\" for that.)"
-msgstr "Вам нужно передать мне как минимум одну хорошую и одну плохую редакцию.\n(Для этого вы можете использовать команды «git bisect bad» и «git bisect good».)"
+"You need to give me at least one $bad_syn and one $good_syn revision.\n"
+"(You can use \"git bisect $bad_syn\" and \"git bisect $good_syn\" for that.)"
+msgstr "Вам нужно передать мне как минимум одну $bad_syn и одну $good_syn редакцию.\n(Для этого вы можете использовать команды «git bisect $bad_syn» и «git bisect $good_syn».)"
-#: git-bisect.sh:295
+#: git-bisect.sh:320
+#, sh-format
msgid ""
"You need to start by \"git bisect start\".\n"
-"You then need to give me at least one good and one bad revision.\n"
-"(You can use \"git bisect bad\" and \"git bisect good\" for that.)"
-msgstr "Для начала нужно запустить «git bisect start».\nПосле этого, вам нужно передать мне как минимум одну хорошую и одну плохую редакцию.\n(Для этого вы можете использовать команды «git bisect bad» и «git bisect good».)"
+"You then need to give me at least one $good_syn and one $bad_syn revision.\n"
+"(You can use \"git bisect $bad_syn\" and \"git bisect $good_syn\" for that.)"
+msgstr "Для начала нужно запустить «git bisect start».\nПосле этого, вам нужно передать мне как минимум одну $good_syn и одну $bad_syn редакцию.\n(Для этого вы можете использовать команды «git bisect $good_syn» и «git bisect $good_syn».)"
-#: git-bisect.sh:366 git-bisect.sh:493
+#: git-bisect.sh:391 git-bisect.sh:521
msgid "We are not bisecting."
msgstr "Вы сейчас не в процессе бинарного поиска."
-#: git-bisect.sh:373
+#: git-bisect.sh:398
#, sh-format
msgid "'$invalid' is not a valid commit"
msgstr "«$invalid» не является действительным коммитом"
-#: git-bisect.sh:382
+#: git-bisect.sh:407
#, sh-format
msgid ""
"Could not check out original HEAD '$branch'.\n"
"Try 'git bisect reset <commit>'."
msgstr "Не удалось перейти на оригинальную ветку HEAD «$branch».\nПопробуйте запустить «git bisect reset <коммит>»."
-#: git-bisect.sh:409
+#: git-bisect.sh:435
msgid "No logfile given"
msgstr "Не передан файл журнала"
-#: git-bisect.sh:410
+#: git-bisect.sh:436
#, sh-format
msgid "cannot read $file for replaying"
msgstr "не удалось прочитать $file для повтора изменений"
-#: git-bisect.sh:427
+#: git-bisect.sh:455
msgid "?? what are you talking about?"
msgstr "?? вы о чем?"
-#: git-bisect.sh:439
+#: git-bisect.sh:467
#, sh-format
msgid "running $command"
msgstr "запускаю $command"
-#: git-bisect.sh:446
+#: git-bisect.sh:474
#, sh-format
msgid ""
"bisect run failed:\n"
"exit code $res from '$command' is < 0 or >= 128"
msgstr "не удалось выполнить двоичный поиск:\nкод завершения $res от «$command» оказался < 0 или >= 128"
-#: git-bisect.sh:472
+#: git-bisect.sh:500
msgid "bisect run cannot continue any more"
msgstr "bisect run больше не может продолжать"
-#: git-bisect.sh:478
+#: git-bisect.sh:506
#, sh-format
msgid ""
"bisect run failed:\n"
"'bisect_state $state' exited with error code $res"
msgstr "не удалось выполнить двоичный поиск:\n«bisect_state $state» завершился с кодом ошибки $res"
-#: git-bisect.sh:485
+#: git-bisect.sh:513
msgid "bisect run success"
msgstr "bisect run выполнен успешно"
-#: git-pull.sh:61
-msgid ""
-"Pull is not possible because you have unmerged files.\n"
-"Please, fix them up in the work tree, and then use 'git add/rm <file>'\n"
-"as appropriate to mark resolution and make a commit."
-msgstr "Невозможно выполнить получение, так как у вас имеются не слитые файлы.\nИсправьте их в рабочем каталоге, затем запустите «git add/rm <файл>»,\nчтобы пометить исправление и сделайте коммит."
-
-#: git-pull.sh:65
-msgid "Pull is not possible because you have unmerged files."
-msgstr "Невозможно выполнить получение, так как у вас имеются не слитые файлы."
-
-#: git-pull.sh:71
-msgid ""
-"You have not concluded your merge (MERGE_HEAD exists).\n"
-"Please, commit your changes before you can merge."
-msgstr "Вы не завершили слияние (присутствует файл MERGE_HEAD).\nВыполните коммит ваших изменений, перед слиянием."
-
-#: git-pull.sh:285
-msgid "updating an unborn branch with changes added to the index"
-msgstr "обновление еще не начавшейся ветки с изменениями, добавленными в индекс"
-
-#: git-pull.sh:311
+#: git-bisect.sh:548
#, sh-format
-msgid ""
-"Warning: fetch updated the current branch head.\n"
-"Warning: fast-forwarding your working tree from\n"
-"Warning: commit $orig_head."
-msgstr "Предупреждение: извлечение обновило голову вашей текущей ветки.\nПредупреждение: перемотка вашего рабочего каталога\nПредупреждение: с коммита $orig_head."
-
-#: git-pull.sh:336
-msgid "Cannot merge multiple branches into empty head"
-msgstr "Нельзя слить несколько веток в пустую указатель на коммит"
-
-#: git-pull.sh:340
-msgid "Cannot rebase onto multiple branches"
-msgstr "Невозможно переместить над несколькими ветками"
+msgid "Invalid command: you're currently in a $TERM_BAD/$TERM_GOOD bisect."
+msgstr "Недопустимая команда: вы сейчас находитесь на $TERM_BAD/$TERM_GOOD двоичном поиске."
#: git-rebase.sh:57
msgid ""
@@ -10540,7 +10924,7 @@ msgstr "Не удалось удалить временный индекс (не
msgid "Cannot record working tree state"
msgstr "Не удалось записать состояние рабочего каталога"
-#: git-stash.sh:191
+#: git-stash.sh:189
#, sh-format
msgid "Cannot update $ref_stash with $w_commit"
msgstr "Не удалось обновить $ref_stash с помощью $w_commit"
@@ -10554,97 +10938,97 @@ msgstr "Не удалось обновить $ref_stash с помощью $w_com
#. $ git stash save --blah-blah 2>&1 | head -n 2
#. error: unknown option for 'stash save': --blah-blah
#. To provide a message, use git stash save -- '--blah-blah'
-#: git-stash.sh:241
+#: git-stash.sh:239
#, sh-format
msgid ""
"error: unknown option for 'stash save': $option\n"
" To provide a message, use git stash save -- '$option'"
msgstr "ошибка: неизвестная опция для «stash save»: $option\n Для предоставления сообщения, используйте git stash save -- «$option»"
-#: git-stash.sh:262
+#: git-stash.sh:260
msgid "No local changes to save"
msgstr "Нет локальных изменений для сохранения"
-#: git-stash.sh:266
+#: git-stash.sh:264
msgid "Cannot initialize stash"
msgstr "Не удалось инициализировать спрятанные изменения"
-#: git-stash.sh:270
+#: git-stash.sh:268
msgid "Cannot save the current status"
msgstr "Не удалось сохранить текущий статус"
-#: git-stash.sh:288
+#: git-stash.sh:286
msgid "Cannot remove worktree changes"
msgstr "Не удалось удалить изменения рабочего каталога"
-#: git-stash.sh:389
+#: git-stash.sh:387
#, sh-format
msgid "unknown option: $opt"
msgstr "неизвестная опция: $opt"
-#: git-stash.sh:399
+#: git-stash.sh:397
msgid "No stash found."
msgstr "Не найдены спрятанные изменения."
-#: git-stash.sh:406
+#: git-stash.sh:404
#, sh-format
msgid "Too many revisions specified: $REV"
msgstr "Передано слишком много редакций: $REV"
-#: git-stash.sh:412
+#: git-stash.sh:410
#, sh-format
msgid "$reference is not a valid reference"
msgstr "$reference не является действительной ссылкой"
-#: git-stash.sh:440
+#: git-stash.sh:438
#, sh-format
msgid "'$args' is not a stash-like commit"
msgstr "«$args» не похоже на коммит со спрятанными изменениями"
-#: git-stash.sh:451
+#: git-stash.sh:449
#, sh-format
msgid "'$args' is not a stash reference"
msgstr "«$args» не является ссылкой на спрятанные изменения"
-#: git-stash.sh:459
+#: git-stash.sh:457
msgid "unable to refresh index"
msgstr "не удалось обновить индекс"
-#: git-stash.sh:463
+#: git-stash.sh:461
msgid "Cannot apply a stash in the middle of a merge"
msgstr "Нельзя применить спрятанные изменения во время выполнения слияния"
-#: git-stash.sh:471
+#: git-stash.sh:469
msgid "Conflicts in index. Try without --index."
msgstr "Конфликты в индексе. Попробуйте без --index."
-#: git-stash.sh:473
+#: git-stash.sh:471
msgid "Could not save index tree"
msgstr "Не удалось сохранить дерево индекса"
-#: git-stash.sh:507
+#: git-stash.sh:505
msgid "Cannot unstage modified files"
msgstr "Невозможно убрать из индекса измененные файлы"
-#: git-stash.sh:522
+#: git-stash.sh:520
msgid "Index was not unstashed."
msgstr "Индекс не был достат из спрятанных изменений."
-#: git-stash.sh:545
+#: git-stash.sh:543
#, sh-format
msgid "Dropped ${REV} ($s)"
msgstr "Отброшено ${REV} ($s)"
-#: git-stash.sh:546
+#: git-stash.sh:544
#, sh-format
msgid "${REV}: Could not drop stash entry"
msgstr "${REV}: Не удалось отбросить запись из спрятанных изменений"
-#: git-stash.sh:554
+#: git-stash.sh:552
msgid "No branch name specified"
msgstr "Не указано имя ветки"
-#: git-stash.sh:626
+#: git-stash.sh:624
msgid "(To restore them type \"git stash apply\")"
msgstr "(Чтобы восстановить их, наберите «git stash apply»)"
@@ -10872,7 +11256,7 @@ msgstr "Подмодуль по пути «$displaypath»: слито с «$sha1
#: git-submodule.sh:907
#, sh-format
msgid ""
-"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
+"Execution of '$command $sha1' failed in submodule path '$prefix$sm_path'"
msgstr "Сбой выполнения «$command $sha1» для подмодуля по пути «$prefix$sm_path»"
#: git-submodule.sh:908
diff --git a/reachable.c b/reachable.c
index 9cff25b..43616d4 100644
--- a/reachable.c
+++ b/reachable.c
@@ -25,9 +25,15 @@ static void update_progress(struct connectivity_progress *cp)
static int add_one_ref(const char *path, const struct object_id *oid,
int flag, void *cb_data)
{
- struct object *object = parse_object_or_die(oid->hash, path);
struct rev_info *revs = (struct rev_info *)cb_data;
+ struct object *object;
+ if ((flag & REF_ISSYMREF) && (flag & REF_ISBROKEN)) {
+ warning("symbolic ref is dangling: %s", path);
+ return 0;
+ }
+
+ object = parse_object_or_die(oid->hash, path);
add_pending_object(revs, object, "");
return 0;
diff --git a/setup.c b/setup.c
index a17c51e..1a374f2 100644
--- a/setup.c
+++ b/setup.c
@@ -5,6 +5,7 @@
static int inside_git_dir = -1;
static int inside_work_tree = -1;
static int work_tree_config_is_bogus;
+static struct string_list unknown_extensions = STRING_LIST_INIT_DUP;
/*
* The input parameter must contain an absolute path, and it must already be
@@ -229,14 +230,21 @@ void verify_non_filename(const char *prefix, const char *arg)
int get_common_dir(struct strbuf *sb, const char *gitdir)
{
+ const char *git_env_common_dir = getenv(GIT_COMMON_DIR_ENVIRONMENT);
+ if (git_env_common_dir) {
+ strbuf_addstr(sb, git_env_common_dir);
+ return 1;
+ } else {
+ return get_common_dir_noenv(sb, gitdir);
+ }
+}
+
+int get_common_dir_noenv(struct strbuf *sb, const char *gitdir)
+{
struct strbuf data = STRBUF_INIT;
struct strbuf path = STRBUF_INIT;
- const char *git_common_dir = getenv(GIT_COMMON_DIR_ENVIRONMENT);
int ret = 0;
- if (git_common_dir) {
- strbuf_addstr(sb, git_common_dir);
- return 1;
- }
+
strbuf_addf(&path, "%s/commondir", gitdir);
if (file_exists(path.buf)) {
if (strbuf_read_file(&data, path.buf, 0) <= 0)
@@ -352,10 +360,25 @@ void setup_work_tree(void)
static int check_repo_format(const char *var, const char *value, void *cb)
{
+ const char *ext;
+
if (strcmp(var, "core.repositoryformatversion") == 0)
repository_format_version = git_config_int(var, value);
else if (strcmp(var, "core.sharedrepository") == 0)
shared_repository = git_config_perm(var, value);
+ else if (skip_prefix(var, "extensions.", &ext)) {
+ /*
+ * record any known extensions here; otherwise,
+ * we fall through to recording it as unknown, and
+ * check_repository_format will complain
+ */
+ if (!strcmp(ext, "noop"))
+ ;
+ else if (!strcmp(ext, "preciousobjects"))
+ repository_format_precious_objects = git_config_bool(var, value);
+ else
+ string_list_append(&unknown_extensions, ext);
+ }
return 0;
}
@@ -366,6 +389,8 @@ static int check_repository_format_gently(const char *gitdir, int *nongit_ok)
config_fn_t fn;
int ret = 0;
+ string_list_clear(&unknown_extensions, 0);
+
if (get_common_dir(&sb, gitdir))
fn = check_repo_format;
else
@@ -383,16 +408,31 @@ static int check_repository_format_gently(const char *gitdir, int *nongit_ok)
* is a good one.
*/
git_config_early(fn, NULL, repo_config);
- if (GIT_REPO_VERSION < repository_format_version) {
+ if (GIT_REPO_VERSION_READ < repository_format_version) {
if (!nongit_ok)
die ("Expected git repo version <= %d, found %d",
- GIT_REPO_VERSION, repository_format_version);
+ GIT_REPO_VERSION_READ, repository_format_version);
warning("Expected git repo version <= %d, found %d",
- GIT_REPO_VERSION, repository_format_version);
+ GIT_REPO_VERSION_READ, repository_format_version);
warning("Please upgrade Git");
*nongit_ok = -1;
ret = -1;
}
+
+ if (repository_format_version >= 1 && unknown_extensions.nr) {
+ int i;
+
+ if (!nongit_ok)
+ die("unknown repository extension: %s",
+ unknown_extensions.items[0].string);
+
+ for (i = 0; i < unknown_extensions.nr; i++)
+ warning("unknown repository extension: %s",
+ unknown_extensions.items[i].string);
+ *nongit_ok = -1;
+ ret = -1;
+ }
+
strbuf_release(&sb);
return ret;
}
diff --git a/sha1_file.c b/sha1_file.c
index d295a32..ca699d7 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -786,6 +786,37 @@ void close_pack_windows(struct packed_git *p)
}
}
+static int close_pack_fd(struct packed_git *p)
+{
+ if (p->pack_fd < 0)
+ return 0;
+
+ close(p->pack_fd);
+ pack_open_fds--;
+ p->pack_fd = -1;
+
+ return 1;
+}
+
+static void close_pack(struct packed_git *p)
+{
+ close_pack_windows(p);
+ close_pack_fd(p);
+ close_pack_index(p);
+}
+
+void close_all_packs(void)
+{
+ struct packed_git *p;
+
+ for (p = packed_git; p; p = p->next)
+ if (p->do_not_close)
+ die("BUG! Want to close pack marked 'do-not-close'");
+ else
+ close_pack(p);
+}
+
+
/*
* The LRU pack is the one with the oldest MRU window, preferring packs
* with no used windows, or the oldest mtime if it has no windows allocated.
@@ -853,12 +884,8 @@ static int close_one_pack(void)
find_lru_pack(p, &lru_p, &mru_w, &accept_windows_inuse);
}
- if (lru_p) {
- close(lru_p->pack_fd);
- pack_open_fds--;
- lru_p->pack_fd = -1;
- return 1;
- }
+ if (lru_p)
+ return close_pack_fd(lru_p);
return 0;
}
@@ -898,12 +925,7 @@ void free_pack_by_name(const char *pack_name)
p = *pp;
if (strcmp(pack_name, p->pack_name) == 0) {
clear_delta_base_cache();
- close_pack_windows(p);
- if (p->pack_fd != -1) {
- close(p->pack_fd);
- pack_open_fds--;
- }
- close_pack_index(p);
+ close_pack(p);
free(p->bad_object_sha1);
*pp = p->next;
if (last_found_pack == p)
@@ -1037,11 +1059,7 @@ static int open_packed_git(struct packed_git *p)
{
if (!open_packed_git_1(p))
return 0;
- if (p->pack_fd != -1) {
- close(p->pack_fd);
- pack_open_fds--;
- p->pack_fd = -1;
- }
+ close_pack_fd(p);
return -1;
}
@@ -1107,11 +1125,8 @@ unsigned char *use_pack(struct packed_git *p,
p->pack_name,
strerror(errno));
if (!win->offset && win->len == p->pack_size
- && !p->do_not_close) {
- close(p->pack_fd);
- pack_open_fds--;
- p->pack_fd = -1;
- }
+ && !p->do_not_close)
+ close_pack_fd(p);
pack_mmap_calls++;
pack_open_windows++;
if (pack_mapped > peak_pack_mapped)
diff --git a/strbuf.c b/strbuf.c
index 29df55b..9583875 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -743,3 +743,69 @@ void strbuf_addftime(struct strbuf *sb, const char *fmt, const struct tm *tm)
}
strbuf_setlen(sb, sb->len + len);
}
+
+/*
+ * Returns the length of a line, without trailing spaces.
+ *
+ * If the line ends with newline, it will be removed too.
+ */
+static size_t cleanup(char *line, size_t len)
+{
+ while (len) {
+ unsigned char c = line[len - 1];
+ if (!isspace(c))
+ break;
+ len--;
+ }
+
+ return len;
+}
+
+/*
+ * Remove empty lines from the beginning and end
+ * and also trailing spaces from every line.
+ *
+ * Turn multiple consecutive empty lines between paragraphs
+ * into just one empty line.
+ *
+ * If the input has only empty lines and spaces,
+ * no output will be produced.
+ *
+ * If last line does not have a newline at the end, one is added.
+ *
+ * Enable skip_comments to skip every line starting with comment
+ * character.
+ */
+void strbuf_stripspace(struct strbuf *sb, int skip_comments)
+{
+ int empties = 0;
+ size_t i, j, len, newlen;
+ char *eol;
+
+ /* We may have to add a newline. */
+ strbuf_grow(sb, 1);
+
+ for (i = j = 0; i < sb->len; i += len, j += newlen) {
+ eol = memchr(sb->buf + i, '\n', sb->len - i);
+ len = eol ? eol - (sb->buf + i) + 1 : sb->len - i;
+
+ if (skip_comments && len && sb->buf[i] == comment_line_char) {
+ newlen = 0;
+ continue;
+ }
+ newlen = cleanup(sb->buf + i, len);
+
+ /* Not just an empty line? */
+ if (newlen) {
+ if (empties > 0 && j > 0)
+ sb->buf[j++] = '\n';
+ empties = 0;
+ memmove(sb->buf + j, sb->buf + i, newlen);
+ sb->buf[newlen + j++] = '\n';
+ } else {
+ empties++;
+ }
+ }
+
+ strbuf_setlen(sb, j);
+}
diff --git a/strbuf.h b/strbuf.h
index aef2794..5397d91 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -418,7 +418,16 @@ extern void strbuf_add_absolute_path(struct strbuf *sb, const char *path);
* Strip whitespace from a buffer. The second parameter controls if
* comments are considered contents to be removed or not.
*/
-extern void stripspace(struct strbuf *buf, int skip_comments);
+extern void strbuf_stripspace(struct strbuf *buf, int skip_comments);
+
+/**
+ * Temporary alias until all topic branches have switched to use
+ * strbuf_stripspace directly.
+ */
+static inline void stripspace(struct strbuf *buf, int skip_comments)
+{
+ strbuf_stripspace(buf, skip_comments);
+}
static inline int strbuf_strip_suffix(struct strbuf *sb, const char *suffix)
{
diff --git a/submodule.c b/submodule.c
index 245ed4d..5e5a46f 100644
--- a/submodule.c
+++ b/submodule.c
@@ -122,15 +122,8 @@ static int add_submodule_odb(const char *path)
struct strbuf objects_directory = STRBUF_INIT;
struct alternate_object_database *alt_odb;
int ret = 0;
- const char *git_dir;
- strbuf_addf(&objects_directory, "%s/.git", path);
- git_dir = read_gitfile(objects_directory.buf);
- if (git_dir) {
- strbuf_reset(&objects_directory);
- strbuf_addstr(&objects_directory, git_dir);
- }
- strbuf_addstr(&objects_directory, "/objects/");
+ strbuf_git_path_submodule(&objects_directory, path, "objects/");
if (!is_directory(objects_directory.buf)) {
ret = -1;
goto done;
diff --git a/t/t1302-repo-version.sh b/t/t1302-repo-version.sh
index 0d9388a..9bcd349 100755
--- a/t/t1302-repo-version.sh
+++ b/t/t1302-repo-version.sh
@@ -67,4 +67,64 @@ test_expect_success 'gitdir required mode' '
)
'
+check_allow () {
+ git rev-parse --git-dir >actual &&
+ echo .git >expect &&
+ test_cmp expect actual
+}
+
+check_abort () {
+ test_must_fail git rev-parse --git-dir
+}
+
+# avoid git-config, since it cannot be trusted to run
+# in a repository with a broken version
+mkconfig () {
+ echo '[core]' &&
+ echo "repositoryformatversion = $1" &&
+ shift &&
+
+ if test $# -gt 0; then
+ echo '[extensions]' &&
+ for i in "$@"; do
+ echo "$i"
+ done
+ fi
+}
+
+while read outcome version extensions; do
+ test_expect_success "$outcome version=$version $extensions" "
+ mkconfig $version $extensions >.git/config &&
+ check_${outcome}
+ "
+done <<\EOF
+allow 0
+allow 1
+allow 1 noop
+abort 1 no-such-extension
+allow 0 no-such-extension
+EOF
+
+test_expect_success 'precious-objects allowed' '
+ mkconfig 1 preciousObjects >.git/config &&
+ check_allow
+'
+
+test_expect_success 'precious-objects blocks destructive repack' '
+ test_must_fail git repack -ad
+'
+
+test_expect_success 'other repacks are OK' '
+ test_commit foo &&
+ git repack
+'
+
+test_expect_success 'precious-objects blocks prune' '
+ test_must_fail git prune
+'
+
+test_expect_success 'gc runs without complaint' '
+ git gc
+'
+
test_done
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index 3de0b1d..98eb49a 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -1261,4 +1261,16 @@ test_expect_success 'static check of bad SHA-1' '
test E = $(git cat-file commit HEAD | sed -ne \$p)
'
+test_expect_success 'editor saves as CR/LF' '
+ git checkout -b with-crlf &&
+ write_script add-crs.sh <<-\EOF &&
+ sed -e "s/\$/Q/" <"$1" | tr Q "\\015" >"$1".new &&
+ mv -f "$1".new "$1"
+ EOF
+ (
+ test_set_editor "$(pwd)/add-crs.sh" &&
+ git rebase -i HEAD^
+ )
+'
+
test_done
diff --git a/t/t5700-clone-reference.sh b/t/t5700-clone-reference.sh
index ef1779f..2250ef4 100755
--- a/t/t5700-clone-reference.sh
+++ b/t/t5700-clone-reference.sh
@@ -188,5 +188,26 @@ test_expect_success 'clone and dissociate from reference' '
test_must_fail git -C R fsck &&
git -C S fsck
'
+test_expect_success 'clone, dissociate from partial reference and repack' '
+ rm -fr P Q R &&
+ git init P &&
+ (
+ cd P &&
+ test_commit one &&
+ git repack &&
+ test_commit two &&
+ git repack
+ ) &&
+ git clone --bare P Q &&
+ (
+ cd P &&
+ git checkout -b second &&
+ test_commit three &&
+ git repack
+ ) &&
+ git clone --bare --dissociate --reference=P Q R &&
+ ls R/objects/pack/*.pack >packs.txt &&
+ test_line_count = 1 packs.txt
+'
test_done
diff --git a/t/t6500-gc.sh b/t/t6500-gc.sh
index 63194d8..5d7d414 100755
--- a/t/t6500-gc.sh
+++ b/t/t6500-gc.sh
@@ -30,4 +30,17 @@ test_expect_success 'gc -h with invalid configuration' '
test_i18ngrep "[Uu]sage" broken/usage
'
+test_expect_success 'gc is not aborted due to a stale symref' '
+ git init remote &&
+ (
+ cd remote &&
+ test_commit initial &&
+ git clone . ../client &&
+ git branch -m develop &&
+ cd ../client &&
+ git fetch --prune &&
+ git gc
+ )
+'
+
test_done
diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh
index 855afda..377c648 100755
--- a/t/t7003-filter-branch.sh
+++ b/t/t7003-filter-branch.sh
@@ -2,6 +2,7 @@
test_description='git filter-branch'
. ./test-lib.sh
+. "$TEST_DIRECTORY/lib-gpg.sh"
test_expect_success 'setup' '
test_commit A &&
@@ -292,6 +293,19 @@ test_expect_success 'Tag name filtering strips gpg signature' '
test_cmp expect actual
'
+test_expect_success GPG 'Filtering retains message of gpg signed commit' '
+ mkdir gpg &&
+ touch gpg/foo &&
+ git add gpg &&
+ test_tick &&
+ git commit -S -m "Adding gpg" &&
+
+ git log -1 --format="%s" > expect &&
+ git filter-branch -f --msg-filter "cat" &&
+ git log -1 --format="%s" > actual &&
+ test_cmp expect actual
+'
+
test_expect_success 'Tag name filtering allows slashes in tag names' '
git tag -m tag-with-slash X/1 &&
git cat-file tag X/1 | sed -e s,X/1,X/2, > expect &&
diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh
index 37a24c1..0e8d0d4 100755
--- a/t/t7063-status-untracked-cache.sh
+++ b/t/t7063-status-untracked-cache.sh
@@ -412,7 +412,9 @@ test_expect_success 'create/modify files, some of which are gitignored' '
echo two bis >done/two &&
echo three >done/three && # three is gitignored
echo four >done/four && # four is gitignored at a higher level
- echo five >done/five # five is not gitignored
+ echo five >done/five && # five is not gitignored
+ echo test >base && #we need to ensure that the root dir is touched
+ rm base
'
test_expect_success 'test sparse status with untracked cache' '
diff --git a/t/t7410-submodule-checkout-to.sh b/t/t7410-submodule-checkout-to.sh
index 3f609e8..1acef32 100755
--- a/t/t7410-submodule-checkout-to.sh
+++ b/t/t7410-submodule-checkout-to.sh
@@ -47,4 +47,14 @@ test_expect_success 'checkout main and initialize independed clones' \
test_expect_success 'can see submodule diffs after independed cloning' \
'(cd fully_cloned_submodule/main && git diff --submodule master"^!" | grep "file1 updated")'
+test_expect_success 'checkout sub manually' \
+ 'mkdir linked_submodule &&
+ (cd clone/main &&
+ git worktree add "$base_path/linked_submodule/main" "$rev1_hash_main") &&
+ (cd clone/main/sub &&
+ git worktree add "$base_path/linked_submodule/main/sub" "$rev1_hash_sub")'
+
+test_expect_success 'can see submodule diffs after manual checkout of linked submodule' \
+ '(cd linked_submodule/main && git diff --submodule master"^!" | grep "file1 updated")'
+
test_done
diff --git a/t/t9811-git-p4-label-import.sh b/t/t9811-git-p4-label-import.sh
index 095238f..decb66b 100755
--- a/t/t9811-git-p4-label-import.sh
+++ b/t/t9811-git-p4-label-import.sh
@@ -214,6 +214,51 @@ test_expect_success 'use git config to enable import/export of tags' '
)
'
+p4_head_revision() {
+ p4 changes -m 1 "$@" | awk '{print $2}'
+}
+
+# Importing a label that references a P4 commit that
+# has not been seen. The presence of a label on a commit
+# we haven't seen should not cause git-p4 to fail. It should
+# merely skip that label, and still import other labels.
+test_expect_success 'importing labels with missing revisions' '
+ test_when_finished cleanup_git &&
+ (
+ rm -fr "$cli" "$git" &&
+ mkdir "$cli" &&
+ P4CLIENT=missing-revision &&
+ client_view "//depot/missing-revision/... //missing-revision/..." &&
+ cd "$cli" &&
+ >f1 && p4 add f1 && p4 submit -d "start" &&
+
+ p4 tag -l TAG_S0 ... &&
+
+ >f2 && p4 add f2 && p4 submit -d "second" &&
+
+ startrev=$(p4_head_revision //depot/missing-revision/...) &&
+
+ >f3 && p4 add f3 && p4 submit -d "third" &&
+
+ p4 edit f2 && date >f2 && p4 submit -d "change" f2 &&
+
+ endrev=$(p4_head_revision //depot/missing-revision/...) &&
+
+ p4 tag -l TAG_S1 ... &&
+
+ # we should skip TAG_S0 since it is before our startpoint,
+ # but pick up TAG_S1.
+
+ git p4 clone --dest="$git" --import-labels -v \
+ //depot/missing-revision/...@$startrev,$endrev &&
+ (
+ cd "$git" &&
+ git rev-parse TAG_S1 &&
+ ! git rev-parse TAG_S0
+ )
+ )
+'
+
test_expect_success 'kill p4d' '
kill_p4d
diff --git a/t/t9825-git-p4-handle-utf16-without-bom.sh b/t/t9825-git-p4-handle-utf16-without-bom.sh
new file mode 100755
index 0000000..1551845
--- /dev/null
+++ b/t/t9825-git-p4-handle-utf16-without-bom.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+test_description='git p4 handling of UTF-16 files without BOM'
+
+. ./lib-git-p4.sh
+
+UTF16="\227\000\227\000"
+
+test_expect_success 'start p4d' '
+ start_p4d
+'
+
+test_expect_success 'init depot with UTF-16 encoded file and artificially remove BOM' '
+ (
+ cd "$cli" &&
+ printf "$UTF16" >file1 &&
+ p4 add -t utf16 file1 &&
+ p4 submit -d "file1"
+ ) &&
+
+ (
+ cd db &&
+ p4d -jc &&
+ # P4D automatically adds a BOM. Remove it here to make the file invalid.
+ sed -e "\$d" depot/file1,v >depot/file1,v.new &&
+ mv depot/file1,v.new depot/file1,v &&
+ printf "@$UTF16@" >>depot/file1,v &&
+ p4d -jrF checkpoint.1
+ )
+'
+
+test_expect_success 'clone depot with invalid UTF-16 file in verbose mode' '
+ git p4 clone --dest="$git" --verbose //depot &&
+ test_when_finished cleanup_git &&
+ (
+ cd "$git" &&
+ printf "$UTF16" >expect &&
+ test_cmp_bin expect file1
+ )
+'
+
+test_expect_failure 'clone depot with invalid UTF-16 file in non-verbose mode' '
+ git p4 clone --dest="$git" //depot
+'
+
+test_expect_success 'kill p4d' '
+ kill_p4d
+'
+
+test_done
diff --git a/test-path-utils.c b/test-path-utils.c
index 3dd3744..c67bf65 100644
--- a/test-path-utils.c
+++ b/test-path-utils.c
@@ -21,8 +21,6 @@ static int normalize_ceiling_entry(struct string_list_item *item, void *unused)
if (normalize_path_copy(buf, ceil) < 0)
die("Path \"%s\" could not be normalized", ceil);
len = strlen(buf);
- if (len > 1 && buf[len-1] == '/')
- die("Normalized path \"%s\" ended with slash", buf);
free(item->string);
item->string = xstrdup(buf);
return 1;