* "git worktree" learned a "list" subcommand.
+ * "git clone --dissociate" learned that it can be used even when
+ "--reference" was not used at the same time.
+
Performance, Internal Implementation, Development Support etc.
* "git rebase -i" had a minor regression recently, which stopped
considering a line that begins with an indented '#' in its insn
- sheet not a comment, which is now fixed.
- (merge 1db168e gr/rebase-i-drop-warn later to maint).
+ sheet not a comment. Further, the code was still too picky on
+ Windows where CRLF left by the editor is turned into a trailing CR
+ on the line read via the "read" built-in command of bash. Both of
+ these issues are now fixed.
+ (merge 39743cf gr/rebase-i-drop-warn later to maint).
* After "git checkout --detach", "git status" reported a fairly
useless "HEAD detached at HEAD", instead of saying at which exact
borrowing cache entries and restructuring the API somewhat.
(merge 41284eb dt/name-hash-dir-entry-fix later to maint).
+ * "git merge-file" tried to signal how many conflicts it found, which
+ obviously would not work well when there are too many of them.
+ (merge e34f802 jk/merge-file-exit-code later to maint).
+
+ * The error message from "git blame --contents --reverse" incorrectly
+ talked about "--contents --children".
+ (merge 9526197 mk/blame-error-message later to maint).
+
+ * "git imap-send" did not compile well with older version of cURL library.
+ (merge 71d9257 js/imap-send-curl-compilation-fix later to maint).
+
+ * Merging a branch that removes a path and another that changes the
+ mode bits on the same path should have conflicted at the path, but
+ it didn't and silently favoured the removal.
+ (merge 72fac66 jk/delete-modechange-conflict later to maint).
+
+ * "git --literal-pathspecs add -u/-A" without any command line
+ argument misbehaved ever since Git 2.0.
+ (merge 29abb33 jc/add-u-A-default-to-top later to maint).
+
* Code clean-up, minor fixes etc.
(merge 15ed07d jc/rerere later to maint).
(merge e7a7401 pt/pull-builtin later to maint).
(merge 3b19dba jc/em-dash-in-doc later to maint).
(merge f3f38c7 jc/everyday-markup later to maint).
(merge 77d5f71 xf/user-manual-markup later to maint).
+ (merge b2af482 xf/user-manual-ff later to maint).
+ (merge e510ab8 rs/pop-commit later to maint).
+ (merge fdcdb77 js/misc-fixes later to maint).
--dissociate::
Borrow the objects from reference repositories specified
with the `--reference` options only to reduce network
- transfer and stop borrowing from them after a clone is made
- by making necessary local copies of borrowed objects.
+ transfer, and stop borrowing from them after a clone is made
+ by making necessary local copies of borrowed objects. This
+ option can also be used when cloning locally from a
+ repository that already borrows objects from another
+ repository--the new repository will borrow objects from the
+ same repository, and this option can be used to stop the
+ borrowing.
--quiet::
-q::
conflict markers can be given with the `--marker-size` option.
The exit value of this program is negative on error, and the number of
-conflicts otherwise. If the merge was clean, the exit value is 0.
+conflicts otherwise (truncated to 127 if there are more than that many
+conflicts). If the merge was clean, the exit value is 0.
'git merge-file' is designed to be a minimal clone of RCS 'merge'; that is, it
implements all of RCS 'merge''s functionality which is needed by
parents, one pointing at each of the two lines of development that
were merged.
-However, if the current branch is a descendant of the other--so every
-commit present in the one is already contained in the other--then Git
-just performs a "fast-forward"; the head of the current branch is moved
-forward to point at the head of the merged-in branch, without any new
-commits being created.
+However, if the current branch is an ancestor of the other--so every commit
+present in the current branch is already contained in the other branch--then Git
+just performs a "fast-forward"; the head of the current branch is moved forward
+to point at the head of the merged-in branch, without any new commits being
+created.
[[fixing-mistakes]]
Fixing mistakes
if (!show_only && ignore_missing)
die(_("Option --ignore-missing can only be used together with --dry-run"));
- if ((0 < addremove_explicit || take_worktree_changes) && !argc) {
- static const char *whole[2] = { ":/", NULL };
- argc = 1;
- argv = whole;
- }
-
add_new_files = !take_worktree_changes && !refresh_only;
- require_pathspec = !take_worktree_changes;
+ require_pathspec = !(take_worktree_changes || (0 < addremove_explicit));
hold_locked_index(&lock_file, 1);
sb.commits.compare = compare_commits_by_commit_date;
}
else if (contents_from)
- die("--contents and --children do not blend well.");
+ die("--contents and --reverse do not blend well.");
else if (revs.first_parent_only)
die("combining --first-parent and --reverse is not supported");
else {
static void dissociate_from_references(void)
{
static const char* argv[] = { "repack", "-a", "-d", NULL };
+ char *alternates = git_pathdup("objects/info/alternates");
- if (run_command_v_opt(argv, RUN_GIT_CMD|RUN_COMMAND_NO_STDIN))
- die(_("cannot repack to clean up"));
- if (unlink(git_path("objects/info/alternates")) && errno != ENOENT)
- die_errno(_("cannot unlink temporary alternates file"));
+ if (!access(alternates, F_OK)) {
+ if (run_command_v_opt(argv, RUN_GIT_CMD|RUN_COMMAND_NO_STDIN))
+ die(_("cannot repack to clean up"));
+ if (unlink(alternates) && errno != ENOENT)
+ die_errno(_("cannot unlink temporary alternates file"));
+ }
+ free(alternates);
}
int cmd_clone(int argc, const char **argv, const char *prefix)
if (option_reference.nr)
setup_reference();
- else if (option_dissociate) {
- warning(_("--dissociate given, but there is no --reference"));
- option_dissociate = 0;
- }
fetch_pattern = value.buf;
refspec = parse_fetch_refspec(1, &fetch_pattern);
static void find_merge_parents(struct merge_parents *result,
struct strbuf *in, unsigned char *head)
{
- struct commit_list *parents, *next;
+ struct commit_list *parents;
struct commit *head_commit;
int pos = 0, i, j;
parents = reduce_heads(parents);
while (parents) {
+ struct commit *cmit = pop_commit(&parents);
for (i = 0; i < result->nr; i++)
- if (!hashcmp(result->item[i].commit,
- parents->item->object.sha1))
+ if (!hashcmp(result->item[i].commit, cmit->object.sha1))
result->item[i].used = 1;
- next = parents->next;
- free(parents);
- parents = next;
}
for (i = j = 0; i < result->nr; i++) {
* running.
*/
time(NULL) - st.st_mtime <= 12 * 3600 &&
- fscanf(fp, "%"PRIuMAX" %127c", &pid, locking_host) == 2 &&
+ fscanf(fp, "%"SCNuMAX" %127c", &pid, locking_host) == 2 &&
/* be gentle to concurrent "gc" on remote hosts */
(strcmp(locking_host, my_host) || !kill(pid, 0) || errno == EPERM);
if (fp != NULL)
free(result.ptr);
}
+ if (ret > 127)
+ ret = 127;
+
return ret;
}
int *head_subsumed,
struct commit_list *remoteheads)
{
- struct commit_list *parents, *next, **remotes = &remoteheads;
+ struct commit_list *parents, **remotes;
/*
* Is the current HEAD reachable from another commit being
/* Find what parents to record by checking independent ones. */
parents = reduce_heads(remoteheads);
- for (remoteheads = NULL, remotes = &remoteheads;
- parents;
- parents = next) {
- struct commit *commit = parents->item;
- next = parents->next;
+ remoteheads = NULL;
+ remotes = &remoteheads;
+ while (parents) {
+ struct commit *commit = pop_commit(&parents);
if (commit == head_commit)
*head_subsumed = 0;
else
remotes = &commit_list_insert(commit, remotes)->next;
- free(parents);
}
return remoteheads;
}
*/
static void mark_reachable(struct expire_reflog_policy_cb *cb)
{
- struct commit *commit;
struct commit_list *pending;
unsigned long expire_limit = cb->mark_limit;
struct commit_list *leftover = NULL;
pending = cb->mark_list;
while (pending) {
- struct commit_list *entry = pending;
struct commit_list *parent;
- pending = entry->next;
- commit = entry->item;
- free(entry);
+ struct commit *commit = pop_commit(&pending);
if (commit->object.flags & REACHABLE)
continue;
if (parse_commit(commit))
b = lookup_commit_reference(end);
exclude = get_merge_bases(a, b);
while (exclude) {
- struct commit_list *n = exclude->next;
- show_rev(REVERSED,
- exclude->item->object.sha1,NULL);
- free(exclude);
- exclude = n;
+ struct commit *commit = pop_commit(&exclude);
+ show_rev(REVERSED, commit->object.sha1, NULL);
}
}
*dotdot = '.';
return NULL;
}
-static struct commit *pop_one_commit(struct commit_list **list_p)
-{
- struct commit *commit;
- struct commit_list *list;
- list = *list_p;
- commit = list->item;
- *list_p = list->next;
- free(list);
- return commit;
-}
-
struct commit_name {
const char *head_name; /* which head's ancestor? */
int generation; /* how many parents away from head_name */
while (*list_p) {
struct commit_list *parents;
int still_interesting = !!interesting(*list_p);
- struct commit *commit = pop_one_commit(list_p);
+ struct commit *commit = pop_commit(list_p);
int flags = commit->object.flags & all_mask;
if (!still_interesting && extra <= 0)
int exit_status = 1;
while (seen) {
- struct commit *commit = pop_one_commit(&seen);
+ struct commit *commit = pop_commit(&seen);
int flags = commit->object.flags & all_mask;
if (!(flags & UNINTERESTING) &&
((flags & all_revs) == all_revs)) {
all_revs = all_mask & ~((1u << REV_SHIFT) - 1);
while (seen) {
- struct commit *commit = pop_one_commit(&seen);
+ struct commit *commit = pop_commit(&seen);
int this_flag = commit->object.flags;
int is_merge_point = ((this_flag & all_revs) == all_revs);
void free_commit_list(struct commit_list *list)
{
- while (list) {
- struct commit_list *temp = list;
- list = temp->next;
- free(temp);
- }
+ while (list)
+ pop_commit(&list);
}
struct commit_list * commit_list_insert_by_date(struct commit *item, struct commit_list **list)
struct commit *pop_most_recent_commit(struct commit_list **list,
unsigned int mark)
{
- struct commit *ret = (*list)->item;
+ struct commit *ret = pop_commit(list);
struct commit_list *parents = ret->parents;
- struct commit_list *old = *list;
-
- *list = (*list)->next;
- free(old);
while (parents) {
struct commit *commit = parents->item;
list = paint_down_to_common(one, n, twos);
while (list) {
- struct commit_list *next = list->next;
- if (!(list->item->object.flags & STALE))
- commit_list_insert_by_date(list->item, &result);
- free(list);
- list = next;
+ struct commit *commit = pop_commit(&list);
+ if (!(commit->object.flags & STALE))
+ commit_list_insert_by_date(commit, &result);
}
return result;
}
* if everything else stays the same.
*/
while (parents) {
- struct commit_list *next = parents->next;
- struct commit *parent = parents->item;
-
+ struct commit *parent = pop_commit(&parents);
strbuf_addf(&buffer, "parent %s\n",
sha1_to_hex(parent->object.sha1));
- free(parents);
- parents = next;
}
/* Person/date information */
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA. */
+#include <stdint.h>
+
static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
size_t length, reg_syntax_t syntax);
static void re_compile_fastmap_iter (regex_t *bufp,
old_tree = NULL;
if (elem->token.type == SUBEXP)
- postorder (elem, mark_opt_subexp, (void *) (long) elem->token.opr.idx);
+ postorder (elem, mark_opt_subexp, (void *) (intptr_t) elem->token.opr.idx);
tree = create_tree (dfa, elem, NULL, (end == -1 ? OP_DUP_ASTERISK : OP_ALT));
if (BE (tree == NULL, 0))
static reg_errcode_t
mark_opt_subexp (void *extra, bin_tree_t *node)
{
- int idx = (int) (long) extra;
+ int idx = (int) (intptr_t) extra;
if (node->token.type == SUBEXP && node->token.opr.idx == idx)
node->token.opt_subexp = 1;
#define PRIuMAX "llu"
#endif
+#ifndef SCNuMAX
+#define SCNuMAX PRIuMAX
+#endif
+
#ifndef PRIu32
#define PRIu32 "u"
#endif
#endif
#define DEFAULT_PACKED_GIT_LIMIT \
- ((1024L * 1024L) * (sizeof(void*) >= 8 ? 8192 : 256))
+ ((1024L * 1024L) * (size_t)(sizeof(void*) >= 8 ? 8192 : 256))
#ifdef NO_PREAD
#define pread git_pread
my ($repo, $workdir, $file, $sha1) = @_;
my $null_sha1 = '0' x 40;
- if (! -e "$workdir/$file") {
- # If the file doesn't exist in the working tree, we cannot
- # use it.
+ if (-l "$workdir/$file" || ! -e _) {
return (0, $null_sha1);
}
# Deleted in both or deleted in one and unchanged in the other
#
"$1.." | "$1.$1" | "$1$1.")
+ if { test -z "$6" && test "$5" != "$7"; } ||
+ { test -z "$7" && test "$5" != "$6"; }
+ then
+ echo "ERROR: File $4 deleted on one branch but had its" >&2
+ echo "ERROR: permissions changed on the other." >&2
+ exit 1
+ fi
+
if test -n "$2"
then
echo "Removing $4"
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
"$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
"$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
set viewchanged(1) 0
set vdatemode(1) 0
addviewmenu 1
- .bar.view entryconf [mca "Edit view..."] -state normal
- .bar.view entryconf [mca "Delete view"] -state normal
+ .bar.view entryconf [mca "&Edit view..."] -state normal
+ .bar.view entryconf [mca "&Delete view"] -state normal
}
if {[info exists permviews]} {
msgstr "Отказ"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Обновяване"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr "Презареждане"
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Наново прочитане на настройките"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Изброяване на указателите"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr "Стартиране на „git gui“"
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Спиране на програмата"
#: gitk:2068
-msgid "File"
+msgid "&File"
msgstr "Файл"
#: gitk:2080
-msgid "Preferences"
+msgid "&Preferences"
msgstr "Настройки"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Редактиране"
#: gitk:2084
-msgid "New view..."
+msgid "&New view..."
msgstr "Нов изглед…"
#: gitk:2085
-msgid "Edit view..."
+msgid "&Edit view..."
msgstr "Редактиране на изгледа…"
#: gitk:2086
-msgid "Delete view"
+msgid "&Delete view"
msgstr "Изтриване на изгледа"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Всички файлове"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Изглед"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "Относно gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Клавишни комбинации"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Помощ"
#: gitk:2185 gitk:8652
"Project-Id-Version: gitk\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-17 14:32+1000\n"
-"PO-Revision-Date: 2015-02-01 22:49-0700\n"
+"PO-Revision-Date: 2015-10-05 22:23-0600\n"
"Last-Translator: Alex Henrie <alexhenrie24@gmail.com>\n"
"Language-Team: Catalan\n"
"Language: ca\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 1.7.3\n"
+"X-Generator: Poedit 1.8.5\n"
#: gitk:140
msgid "Couldn't get list of unmerged files:"
msgstr "Cancel·la"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Actualitza"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr "Recarrega"
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Rellegeix les referències"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Llista les referències"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr "Inicia el git gui"
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Surt"
#: gitk:2068
-msgid "File"
+msgid "&File"
msgstr "Fitxer"
#: gitk:2080
-msgid "Preferences"
+msgid "&Preferences"
msgstr "Preferències"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Edita"
#: gitk:2084
-msgid "New view..."
+msgid "&New view..."
msgstr "Vista nova..."
#: gitk:2085
-msgid "Edit view..."
+msgid "&Edit view..."
msgstr "Edita la vista..."
#: gitk:2086
-msgid "Delete view"
-msgstr "Suprimeix vista"
+msgid "&Delete view"
+msgstr "Suprimeix la vista"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Tots els fitxers"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Vista"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "Quant al gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Associacions de tecles"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Ajuda"
#: gitk:2185 gitk:8652
#: gitk:2649
msgid "Copy branch name"
-msgstr ""
+msgstr "Copia el nom de branca"
#: gitk:2656
msgid "Highlight this too"
#: gitk:2660
msgid "Copy path"
-msgstr ""
+msgstr "Copia el camí"
#: gitk:2667
msgid "Show origin of this line"
#: gitk:3052
msgid "<Up>, p, k\tMove up one commit"
-msgstr "<Amunt>, p, k\tMou-te una comissió amunt"
+msgstr "<Amunt>, p, k\tMou-te cap amunt per una comissió"
#: gitk:3053
msgid "<Down>, n, j\tMove down one commit"
-msgstr "<Avall>, n, j\tMou-te una comissió avall"
+msgstr "<Avall>, n, j\tMou-te cap avall per una comissió"
#: gitk:3054
msgid "<Left>, z, h\tGo back in history list"
#: gitk:3057
msgid "<PageUp>\tMove up one page in commit list"
-msgstr "<RePàg>\tBaixa una pàgina en la llista de comissions"
+msgstr "<RePàg>\tMou-te cap amunt per una pàgina en la llista de comissions"
#: gitk:3058
msgid "<PageDown>\tMove down one page in commit list"
-msgstr "<AvPàg>\tBaixa per una pàgina en la llista de comissions"
+msgstr "<AvPàg>\tMou-te cap avall per una pàgina en la llista de comissions"
#: gitk:3059
#, tcl-format
#: gitk:3061
#, tcl-format
msgid "<%s-Up>\tScroll commit list up one line"
-msgstr "<%s-Amunt>\tDesplaça la llista de comissions una línia cap amunt"
+msgstr "<%s-Amunt>\tDesplaça la llista de comissions cap amunt per una línia"
#: gitk:3062
#, tcl-format
msgid "<%s-Down>\tScroll commit list down one line"
-msgstr "<%s-Avall>\tDesplaça la llista de comissions una línia cap avall"
+msgstr "<%s-Avall>\tDesplaça la llista de comissions cap avall per una línia"
#: gitk:3063
#, tcl-format
msgid "<%s-PageUp>\tScroll commit list up one page"
-msgstr "<%s-RePàg>\tDesplaça la llista de comissions amunt per una pàgina"
+msgstr "<%s-RePàg>\tDesplaça la llista de comissions cap amunt per una pàgina"
#: gitk:3064
#, tcl-format
msgid "<%s-PageDown>\tScroll commit list down one page"
-msgstr "<%s-AvPàg>\tDesplaça la llista de comissions una pàgina cap avall"
+msgstr "<%s-AvPàg>\tDesplaça la llista de comissions cap avall per una pàgina"
#: gitk:3065
msgid "<Shift-Up>\tFind backwards (upwards, later commits)"
-msgstr "<Maj-Amunt>\tCerca cap enrere (amunt, les comissions més noves)"
+msgstr "<Maj-Amunt>\tCerca cap enrere (cap amunt, les comissions més noves)"
#: gitk:3066
msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)"
-msgstr "<Maj-Avall>\tCerca cap endavant (avall, les comissions més velles)"
+msgstr "<Maj-Avall>\tCerca cap endavant (cap avall, les comissions més velles)"
#: gitk:3067
msgid "<Delete>, b\tScroll diff view up one page"
-msgstr "<Supr>, b\tDesplaça la vista de diferència una pàgina cap amunt"
+msgstr "<Supr>, b\tDesplaça la vista de diferència cap amunt per una pàgina"
#: gitk:3068
msgid "<Backspace>\tScroll diff view up one page"
-msgstr "<Retrocés>\tDesplaça la vista de diferència una pàgina cap amunt"
+msgstr "<Retrocés>\tDesplaça la vista de diferència cap amunt per una pàgina"
#: gitk:3069
msgid "<Space>\t\tScroll diff view down one page"
-msgstr "<Espai>\t\tDesplaça la vista de diferència una pàgina cap avall"
+msgstr "<Espai>\t\tDesplaça la vista de diferència cap avall per una pàgina"
#: gitk:3070
msgid "u\t\tScroll diff view up 18 lines"
-msgstr "u\t\tDesplaça la vista de diferència 18 línies cap amunt"
+msgstr "u\t\tDesplaça la vista de diferència cap amunt per 18 línies"
#: gitk:3071
msgid "d\t\tScroll diff view down 18 lines"
-msgstr "d\t\tDesplaça la vista de diferència 18 línies cap avall "
+msgstr "d\t\tDesplaça la vista de diferència cap avall per 18 línies"
#: gitk:3072
#, tcl-format
msgstr "<Retorn>\tMou-te a la propera coincidència de la cerca"
#: gitk:3075
-#, fuzzy
msgid "g\t\tGo to commit"
-msgstr "<Fi>\t\tVés a l'última comissió"
+msgstr "g\t\tVés a l'última comissió"
#: gitk:3076
msgid "/\t\tFocus the search box"
msgstr "Coincideix amb tots els criteris d'informació de comissió"
#: gitk:4086
-#, fuzzy
msgid "Matches no Commit Info criteria"
-msgstr "Coincideix amb tots els criteris d'informació de comissió"
+msgstr "No coincideix amb cap criteri d'informació de comissió"
#: gitk:4087
msgid "Changes to Files:"
#: gitk:11450
msgid "Select bg"
-msgstr "fons de la selecció"
+msgstr "Fons de la selecció"
#: gitk:11459
msgid "Fonts: press to choose"
"Sorry, gitk cannot run with this version of Tcl/Tk.\n"
" Gitk requires at least Tcl/Tk 8.4."
msgstr ""
+"Perdó, el gitk no pot executar-se amb aquesta versió de Tcl/Tk.\n"
+" El Gitk requereix com a mínim el Tcl/Tk 8.4."
#: gitk:12269
msgid "Cannot find a git repository here."
#: gitk:12328
msgid "Bad arguments to gitk:"
msgstr "Paràmetres dolents al gitk:"
-
-#~ msgid "mc"
-#~ msgstr "mc"
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-17 14:32+1000\n"
-"PO-Revision-Date: 2010-01-27 20:27+0100\n"
+"PO-Revision-Date: 2015-10-20 14:20+0200\n"
"Last-Translator: Christian Stimming <stimming@tuhh.de>\n"
"Language-Team: German\n"
"Language: \n"
msgstr "Abbrechen"
#: gitk:2069
-msgid "Update"
-msgstr "Aktualisieren"
+msgid "&Update"
+msgstr "&Aktualisieren"
#: gitk:2070
-msgid "Reload"
-msgstr "Neu laden"
+msgid "&Reload"
+msgstr "&Neu laden"
#: gitk:2071
-msgid "Reread references"
-msgstr "Zweige neu laden"
+msgid "Reread re&ferences"
+msgstr "&Zweige neu laden"
#: gitk:2072
-msgid "List references"
-msgstr "Zweige/Markierungen auflisten"
+msgid "&List references"
+msgstr "Zweige/Markierungen auf&listen"
#: gitk:2074
-msgid "Start git gui"
-msgstr "»git gui« starten"
+msgid "Start git &gui"
+msgstr "»git &gui« starten"
#: gitk:2076
-msgid "Quit"
-msgstr "Beenden"
+msgid "&Quit"
+msgstr "&Beenden"
#: gitk:2068
-msgid "File"
-msgstr "Datei"
+msgid "&File"
+msgstr "&Datei"
#: gitk:2080
-msgid "Preferences"
-msgstr "Einstellungen"
+msgid "&Preferences"
+msgstr "&Einstellungen"
#: gitk:2079
-msgid "Edit"
-msgstr "Bearbeiten"
+msgid "&Edit"
+msgstr "&Bearbeiten"
#: gitk:2084
-msgid "New view..."
-msgstr "Neue Ansicht ..."
+msgid "&New view..."
+msgstr "&Neue Ansicht ..."
#: gitk:2085
-msgid "Edit view..."
-msgstr "Ansicht bearbeiten ..."
+msgid "&Edit view..."
+msgstr "Ansicht &bearbeiten ..."
#: gitk:2086
-msgid "Delete view"
-msgstr "Ansicht entfernen"
+msgid "&Delete view"
+msgstr "Ansicht &entfernen"
#: gitk:2088 gitk:4043
-msgid "All files"
-msgstr "Alle Dateien"
+msgid "&All files"
+msgstr "&Alle Dateien"
#: gitk:2083 gitk:4067
-msgid "View"
-msgstr "Ansicht"
+msgid "&View"
+msgstr "&Ansicht"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
-msgstr "Über gitk"
+msgid "&About gitk"
+msgstr "Über &gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
-msgstr "Tastenkürzel"
+msgid "&Key bindings"
+msgstr "&Tastenkürzel"
#: gitk:2092 gitk:2107
-msgid "Help"
-msgstr "Hilfe"
+msgid "&Help"
+msgstr "&Hilfe"
#: gitk:2185 gitk:8652
msgid "SHA1 ID:"
msgstr "Cancelar"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Actualizar"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr ""
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Releer referencias"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Lista de referencias"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr ""
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Salir"
#: gitk:2068
-msgid "File"
+msgid "&File"
msgstr "Archivo"
#: gitk:2080
-msgid "Preferences"
+msgid "&Preferences"
msgstr "Preferencias"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Editar"
#: gitk:2084
-msgid "New view..."
+msgid "&New view..."
msgstr "Nueva vista..."
#: gitk:2085
-msgid "Edit view..."
+msgid "&Edit view..."
msgstr "Modificar vista..."
#: gitk:2086
-msgid "Delete view"
+msgid "&Delete view"
msgstr "Eliminar vista"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Todos los archivos"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Vista"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "Acerca de gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Combinaciones de teclas"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Ayuda"
#: gitk:2185 gitk:8652
msgstr "Annuler"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Mise à jour"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr "Recharger"
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Relire les références"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Lister les références"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr "Démarrer git gui"
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Quitter"
#: gitk:2068
-msgid "File"
+msgid "&File"
msgstr "Fichier"
#: gitk:2080
-msgid "Preferences"
+msgid "&Preferences"
msgstr "Préférences"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Éditer"
#: gitk:2084
-msgid "New view..."
+msgid "&New view..."
msgstr "Nouvelle vue..."
#: gitk:2085
-msgid "Edit view..."
+msgid "&Edit view..."
msgstr "Éditer la vue..."
#: gitk:2086
-msgid "Delete view"
+msgid "&Delete view"
msgstr "Supprimer la vue"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Tous les fichiers"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Vue"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "À propos de gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Raccourcis clavier"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Aide"
#: gitk:2185 gitk:8652
msgstr "Visszavonás"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Frissités"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr "Újratöltés"
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Referenciák újraolvasása"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Referenciák listázása"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr "Git gui indítása"
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Kilépés"
#: gitk:2068
-msgid "File"
+msgid "&File"
msgstr "Fájl"
#: gitk:2080
-msgid "Preferences"
+msgid "&Preferences"
msgstr "Beállítások"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Szerkesztés"
#: gitk:2084
-msgid "New view..."
+msgid "&New view..."
msgstr "Új nézet ..."
#: gitk:2085
-msgid "Edit view..."
+msgid "&Edit view..."
msgstr "Nézet szerkesztése ..."
#: gitk:2086
-msgid "Delete view"
+msgid "&Delete view"
msgstr "Nézet törlése"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Minden fájl"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Nézet"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "Gitk névjegy"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Billentyűkombináció"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Segítség"
#: gitk:2185 gitk:8652
msgstr "Annulla"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Aggiorna"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr "Ricarica"
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Rileggi riferimenti"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Elenca riferimenti"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr "Avvia git gui"
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Esci"
#: gitk:2068
-msgid "File"
-msgstr "File"
+msgid "&File"
+msgstr "&File"
#: gitk:2080
-msgid "Preferences"
+msgid "&Preferences"
msgstr "Preferenze"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Modifica"
#: gitk:2084
-msgid "New view..."
+msgid "&New view..."
msgstr "Nuova vista..."
#: gitk:2085
-msgid "Edit view..."
+msgid "&Edit view..."
msgstr "Modifica vista..."
#: gitk:2086
-msgid "Delete view"
+msgid "&Delete view"
msgstr "Elimina vista"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Tutti i file"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Vista"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "Informazioni su gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Scorciatoie da tastiera"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Aiuto"
#: gitk:2185 gitk:8652
msgstr "キャンセル"
#: gitk:2069
-msgid "Update"
-msgstr "更新"
+msgid "&Update"
+msgstr "更新(&U)"
#: gitk:2070
-msgid "Reload"
-msgstr "リロード"
+msgid "&Reload"
+msgstr "リロード(&R)"
#: gitk:2071
-msgid "Reread references"
-msgstr "リファレンスを再読み込み"
+msgid "Reread re&ferences"
+msgstr "リファレンスを再読み込み(&F)"
#: gitk:2072
-msgid "List references"
-msgstr "リファレンスリストを表示"
+msgid "&List references"
+msgstr "リファレンスリストを表示(&L)"
#: gitk:2074
-msgid "Start git gui"
-msgstr "git gui の開始"
+msgid "Start git &gui"
+msgstr "git gui の開始(&G)"
#: gitk:2076
-msgid "Quit"
-msgstr "終了"
+msgid "&Quit"
+msgstr "終了(&Q)"
#: gitk:2068
-msgid "File"
-msgstr "ファイル"
+msgid "&File"
+msgstr "ファイル(&F)"
#: gitk:2080
-msgid "Preferences"
-msgstr "設定"
+msgid "&Preferences"
+msgstr "設定(&P)"
#: gitk:2079
-msgid "Edit"
-msgstr "編集"
+msgid "&Edit"
+msgstr "編集(&E)"
#: gitk:2084
-msgid "New view..."
-msgstr "新規ビュー..."
+msgid "&New view..."
+msgstr "新規ビュー...(&N)"
#: gitk:2085
-msgid "Edit view..."
-msgstr "ビュー編集..."
+msgid "&Edit view..."
+msgstr "ビュー編集...(&E)"
#: gitk:2086
-msgid "Delete view"
-msgstr "ビュー削除"
+msgid "&Delete view"
+msgstr "ビュー削除(&D)"
#: gitk:2088 gitk:4043
-msgid "All files"
-msgstr "全てのファイル"
+msgid "&All files"
+msgstr "全てのファイル(&A)"
#: gitk:2083 gitk:4067
-msgid "View"
-msgstr "ビュー"
+msgid "&View"
+msgstr "ビュー(&V)"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
-msgstr "gitk について"
+msgid "&About gitk"
+msgstr "gitk について(&A)"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
-msgstr "キーバインディング"
+msgid "&Key bindings"
+msgstr "キーバインディング(&K)"
#: gitk:2092 gitk:2107
-msgid "Help"
-msgstr "ヘルプ"
+msgid "&Help"
+msgstr "ヘルプ(&H)"
#: gitk:2185 gitk:8652
msgid "SHA1 ID:"
msgstr "Cancelar"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Atualizar"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr "Recarregar"
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Ler as referências novamente"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Listar referências"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr "Iniciar Git GUI"
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Sair"
#: gitk:2068
-msgid "File"
+msgid "&File"
msgstr "Arquivo"
#: gitk:2080
-msgid "Preferences"
+msgid "&Preferences"
msgstr "Preferências"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Editar"
#: gitk:2084
-msgid "New view..."
+msgid "&New view..."
msgstr "Nova vista..."
#: gitk:2085
-msgid "Edit view..."
+msgid "&Edit view..."
msgstr "Editar vista..."
#: gitk:2086
-msgid "Delete view"
+msgid "&Delete view"
msgstr "Apagar vista"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Todos os arquivos"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Exibir"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "Sobre o gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Atalhos de teclado"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Ajuda"
#: gitk:2185 gitk:8652
-#
# Translation of gitk to Russian.
#
+# Translators:
+# 0xAX <kuleshovmail@gmail.com>, 2014
+# Alex Riesen <raa.lkml@gmail.com>, 2015
+# Dimitriy Ryazantcev <DJm00n@mail.ru>, 2015
+# Dmitry Potapov <dpotapov@gmail.com>, 2009
+# Skip <bsvskip@rambler.ru>, 2011
msgid ""
msgstr ""
-"Project-Id-Version: gitk\n"
+"Project-Id-Version: Git Russian Localization Project\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-17 14:32+1000\n"
-"PO-Revision-Date: 2009-04-24 16:00+0200\n"
-"Last-Translator: Alex Riesen <raa.lkml@gmail.com>\n"
-"Language-Team: Russian\n"
-"Language: \n"
+"PO-Revision-Date: 2015-10-12 10:14+0000\n"
+"Last-Translator: Dimitriy Ryazantcev <DJm00n@mail.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"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#: gitk:140
msgid "Couldn't get list of unmerged files:"
#: gitk:212 gitk:2381
msgid "Color words"
-msgstr ""
+msgstr "Цветные слова"
#: gitk:217 gitk:2381 gitk:8220 gitk:8253
msgid "Markup words"
-msgstr ""
+msgstr "Помеченые слова"
#: gitk:324
msgid "Error parsing revisions:"
-msgstr "Ð\9eÑ\88ибка в иденÑ\82иÑ\84икаÑ\82оÑ\80е веÑ\80Ñ\81ии:"
+msgstr "Ð\9eÑ\88ибка пÑ\80и Ñ\80азбоÑ\80е Ñ\80едакÑ\86ии:"
#: gitk:380
msgid "Error executing --argscmd command:"
#: gitk:393
msgid "No files selected: --merge specified but no files are unmerged."
-msgstr ""
-"Файлы не выбраны: указан --merge, но не было найдено ни одного файла где эта "
-"операция должна быть завершена."
+msgstr "Файлы не выбраны: указан --merge, но не было найдено ни одного файла где эта операция должна быть завершена."
#: gitk:396
msgid ""
"No files selected: --merge specified but no unmerged files are within file "
"limit."
-msgstr ""
-"Файлы не выбраны: указан --merge, но в рамках указанного ограничения на "
-"имена файлов нет ни одного где эта операция должна быть завершена."
+msgstr "Файлы не выбраны: указан --merge, но в рамках указанного ограничения на имена файлов нет ни одного где эта операция должна быть завершена."
#: gitk:418 gitk:566
msgid "Error executing git log:"
#: gitk:496 gitk:4525
msgid "Reading commits..."
-msgstr "ЧÑ\82ение веÑ\80Ñ\81ий..."
+msgstr "ЧÑ\82ение коммиÑ\82ов..."
#: gitk:499 gitk:1637 gitk:4528
msgid "No commits selected"
#: gitk:1740
msgid "No commit information available"
-msgstr "Нет информации о состоянии"
+msgstr "Нет информации о коммите"
#: gitk:1903 gitk:1932 gitk:4315 gitk:9669 gitk:11241 gitk:11521
msgid "OK"
msgstr "Отмена"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Обновить"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr "Перечитать"
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Обновить список ссылок"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Список ссылок"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr "Запустить git gui"
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Завершить"
#: gitk:2068
-msgid "File"
+msgid "&File"
msgstr "Файл"
#: gitk:2080
-msgid "Preferences"
+msgid "&Preferences"
msgstr "Настройки"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Редактировать"
#: gitk:2084
-msgid "New view..."
+msgid "&New view..."
msgstr "Новое представление..."
#: gitk:2085
-msgid "Edit view..."
+msgid "&Edit view..."
msgstr "Редактировать представление..."
#: gitk:2086
-msgid "Delete view"
+msgid "&Delete view"
msgstr "Удалить представление"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Все файлы"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Представление"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "О gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Назначения клавиатуры"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Подсказка"
#: gitk:2185 gitk:8652
#: gitk:2295
msgid "commit"
-msgstr "состояние"
+msgstr "коммит"
#: gitk:2299 gitk:2301 gitk:4687 gitk:4710 gitk:4734 gitk:6755 gitk:6827
#: gitk:6912
#: gitk:2304 gitk:4779
msgid "changing lines matching:"
-msgstr ""
+msgstr "изменяя совпадающие строки:"
#: gitk:2313 gitk:2315 gitk:4766
msgid "Exact"
#: gitk:2319 gitk:4871 gitk:6786 gitk:7326
msgid "Committer"
-msgstr "СоÑ\85Ñ\80анивÑ\88ий Ñ\81оÑ\81Ñ\82оÑ\8fние"
+msgstr "Ð\9aоммиÑ\82еÑ\80"
#: gitk:2350
msgid "Search"
#: gitk:2378 gitk:2380 gitk:7959 gitk:8206
msgid "Line diff"
-msgstr ""
+msgstr "Изменения строк"
#: gitk:2445
msgid "Patch"
#: gitk:2617 gitk:2637
msgid "Diff this -> selected"
-msgstr "Сравнить это состояние с выделенным"
+msgstr "Сравнить этот коммит с выделенным"
#: gitk:2618 gitk:2638
msgid "Diff selected -> this"
-msgstr "Сравнить выделенное с этим состоянием"
+msgstr "Сравнить выделенный с этим коммитом"
#: gitk:2619 gitk:2639
msgid "Make patch"
#: gitk:2621 gitk:9371
msgid "Write commit to file"
-msgstr "СоÑ\85Ñ\80аниÑ\82Ñ\8c изменениÑ\8f в файл"
+msgstr "СоÑ\85Ñ\80аниÑ\82Ñ\8c коммиÑ\82 в файл"
#: gitk:2622 gitk:9428
msgid "Create new branch"
-msgstr "СоздаÑ\82Ñ\8c веÑ\82вÑ\8c"
+msgstr "СоздаÑ\82Ñ\8c веÑ\82кÑ\83"
#: gitk:2623
msgid "Cherry-pick this commit"
-msgstr "СкопиÑ\80оваÑ\82Ñ\8c Ñ\8dÑ\82о Ñ\81оÑ\81Ñ\82оÑ\8fние"
+msgstr "Ð\9eÑ\82боÑ\80 лÑ\83Ñ\87Ñ\88его длÑ\8f Ñ\8dÑ\82ого коммиÑ\82а"
#: gitk:2624
msgid "Reset HEAD branch to here"
-msgstr "Установить HEAD на это состояние"
+msgstr "Установить HEAD на этот коммит"
#: gitk:2625
-#, fuzzy
msgid "Mark this commit"
-msgstr "СкопиÑ\80оваÑ\82Ñ\8c Ñ\8dÑ\82о Ñ\81оÑ\81Ñ\82оÑ\8fние"
+msgstr "Ð\9fомеÑ\82иÑ\82Ñ\8c Ñ\8dÑ\82оÑ\82 коммиÑ\82"
#: gitk:2626
msgid "Return to mark"
-msgstr ""
+msgstr "Вернуться на пометку"
#: gitk:2627
msgid "Find descendant of this and mark"
-msgstr ""
+msgstr "Найти и пометить потомка этого коммита"
#: gitk:2628
msgid "Compare with marked commit"
-msgstr ""
+msgstr "Сравнить с помеченным коммитом"
#: gitk:2629 gitk:2640
-#, fuzzy
msgid "Diff this -> marked commit"
-msgstr "Сравнить это состояние с выделенным"
+msgstr "Сравнить выделенное с помеченным коммитом"
#: gitk:2630 gitk:2641
-#, fuzzy
msgid "Diff marked commit -> this"
-msgstr "СÑ\80авниÑ\82Ñ\8c вÑ\8bделенное Ñ\81 Ñ\8dÑ\82им Ñ\81оÑ\81Ñ\82оÑ\8fнием"
+msgstr "СÑ\80авниÑ\82Ñ\8c помеÑ\87еннÑ\8bй Ñ\81 Ñ\8dÑ\82им коммиÑ\82ом"
#: gitk:2631
-#, fuzzy
msgid "Revert this commit"
-msgstr "СкопиÑ\80оваÑ\82Ñ\8c Ñ\8dÑ\82о Ñ\81оÑ\81Ñ\82оÑ\8fние"
+msgstr "Ð\92озвÑ\80аÑ\82 Ñ\8dÑ\82ого коммиÑ\82а"
#: gitk:2647
msgid "Check out this branch"
-msgstr "Ð\9fеÑ\80ейÑ\82и на Ñ\8dÑ\82Ñ\83 веÑ\82вÑ\8c"
+msgstr "Ð\9fеÑ\80ейÑ\82и на Ñ\8dÑ\82Ñ\83 веÑ\82кÑ\83"
#: gitk:2648
msgid "Remove this branch"
-msgstr "УдалиÑ\82Ñ\8c Ñ\8dÑ\82Ñ\83 веÑ\82вÑ\8c"
+msgstr "УдалиÑ\82Ñ\8c Ñ\8dÑ\82Ñ\83 веÑ\82кÑ\83"
#: gitk:2649
msgid "Copy branch name"
-msgstr ""
+msgstr "Копировать имя ветки"
#: gitk:2656
msgid "Highlight this too"
#: gitk:2659
msgid "Blame parent commit"
-msgstr "Ð\90нноÑ\82иÑ\80оваÑ\82Ñ\8c Ñ\80одиÑ\82елÑ\8cÑ\81кое Ñ\81оÑ\81Ñ\82оÑ\8fние"
+msgstr "Ð\90вÑ\82оÑ\80Ñ\8b изменений Ñ\80одиÑ\82елÑ\8cÑ\81кого коммиÑ\82а"
#: gitk:2660
msgid "Copy path"
-msgstr ""
+msgstr "Копировать путь"
#: gitk:2667
msgid "Show origin of this line"
msgstr "Запустить git gui blame для этой строки"
#: gitk:3014
-#, fuzzy
msgid ""
"\n"
"Gitk - a commit viewer for git\n"
"\n"
-"Copyright © 2005-2014 Paul Mackerras\n"
+"Copyright 2005-2014 Paul Mackerras\n"
"\n"
"Use and redistribute under the terms of the GNU General Public License"
-msgstr ""
-"\n"
-"Gitk - программа просмотра истории репозиториев Git\n"
-"\n"
-"Copyright \\u00a9 2005-2010 Paul Mackerras\n"
-"\n"
-"Использование и распространение согласно условиям GNU General Public License"
+msgstr "\nGitk - программа просмотра истории репозиториев git\n\n© 2005-2014 Paul Mackerras\n\nИспользование и распространение согласно условиям GNU General Public License"
#: gitk:3022 gitk:3089 gitk:9857
msgid "Close"
msgstr "<%s-Q>\t\tЗавершить"
#: gitk:3049
-#, fuzzy, tcl-format
+#, tcl-format
msgid "<%s-W>\t\tClose window"
-msgstr "<%s-F>\t\tПоиск"
+msgstr "<%s-W>\t\tЗакрыть окно"
#: gitk:3050
msgid "<Home>\t\tMove to first commit"
-msgstr "<Home>\t\tПерейти к первому состоянию"
+msgstr "<Home>\t\tПерейти к первому коммиту"
#: gitk:3051
msgid "<End>\t\tMove to last commit"
-msgstr "<End>\t\tПерейти к последнему состоянию"
+msgstr "<End>\t\tПерейти к последнему коммиту"
#: gitk:3052
-#, fuzzy
msgid "<Up>, p, k\tMove up one commit"
-msgstr "<Up>, p, i\tПерейти к следующему состоянию"
+msgstr "<Up>, p, k\tПерейти на один коммит вверх"
#: gitk:3053
-#, fuzzy
msgid "<Down>, n, j\tMove down one commit"
-msgstr "<Down>, n, k\tПерейти к предыдущему состоянию"
+msgstr "<Down>, n, j\tПерейти на один коммит вниз"
#: gitk:3054
-#, fuzzy
msgid "<Left>, z, h\tGo back in history list"
-msgstr "<Left>, z, j\tПоказать ранее посещённое состояние"
+msgstr "<Left>, z, h\tПоказать ранее посещённое состояние"
#: gitk:3055
msgid "<Right>, x, l\tGo forward in history list"
-msgstr "<Right>, x, l\tÐ\9fоказаÑ\82Ñ\8c Ñ\81ледÑ\83Ñ\8eÑ\89ее поÑ\81еÑ\89Ñ\91нное Ñ\81оÑ\81Ñ\82оÑ\8fние"
+msgstr "<Right>, x, l\tÐ\9fоказаÑ\82Ñ\8c Ñ\81ледÑ\83Ñ\8eÑ\89ий поÑ\81еÑ\89Ñ\91ннÑ\8bй коммиÑ\82"
#: gitk:3056
#, tcl-format
msgid "<%s-n>\tGo to n-th parent of current commit in history list"
-msgstr ""
+msgstr "<%s-n>\tПерейти на n родителя от текущего коммита"
#: gitk:3057
msgid "<PageUp>\tMove up one page in commit list"
-msgstr "<PageUp>\tПерейти на страницу выше в списке состояний"
+msgstr "<PageUp>\tПерейти на страницу выше в списке коммитов"
#: gitk:3058
msgid "<PageDown>\tMove down one page in commit list"
-msgstr "<PageDown>\tПерейти на страницу ниже в списке состояний"
+msgstr "<PageDown>\tПерейти на страницу ниже в списке коммитов"
#: gitk:3059
#, tcl-format
msgid "<%s-Home>\tScroll to top of commit list"
-msgstr "<%s-Home>\tÐ\9fоказаÑ\82Ñ\8c наÑ\87ало Ñ\81пиÑ\81ка Ñ\81оÑ\81Ñ\82оÑ\8fний"
+msgstr "<%s-Home>\tÐ\9fеÑ\80ейÑ\82и на наÑ\87ало Ñ\81пиÑ\81ка коммиÑ\82ов"
#: gitk:3060
#, tcl-format
msgid "<%s-End>\tScroll to bottom of commit list"
-msgstr "<%s-End>\tÐ\9fоказаÑ\82Ñ\8c конеÑ\86 Ñ\81пиÑ\81ка Ñ\81оÑ\81Ñ\82оÑ\8fний"
+msgstr "<%s-End>\tÐ\9fеÑ\80ейÑ\82и на конеÑ\86 Ñ\81пиÑ\81ка коммиÑ\82ов"
#: gitk:3061
#, tcl-format
msgid "<%s-Up>\tScroll commit list up one line"
-msgstr "<%s-Up>\tПровернуть список состояний вверх"
+msgstr "<%s-Up>\tПровернуть список коммитов вверх"
#: gitk:3062
#, tcl-format
msgid "<%s-Down>\tScroll commit list down one line"
-msgstr "<%s-Down>\tПровернуть список состояний вниз"
+msgstr "<%s-Down>\tПровернуть список коммитов вниз"
#: gitk:3063
#, tcl-format
msgid "<%s-PageUp>\tScroll commit list up one page"
-msgstr "<%s-PageUp>\tПровернуть список состояний на страницу вверх"
+msgstr "<%s-PageUp>\tПровернуть список коммитов на страницу вверх"
#: gitk:3064
#, tcl-format
msgid "<%s-PageDown>\tScroll commit list down one page"
-msgstr "<%s-PageDown>\tПровернуть список состояний на страницу вниз"
+msgstr "<%s-PageDown>\tПровернуть список коммитов на страницу вниз"
#: gitk:3065
msgid "<Shift-Up>\tFind backwards (upwards, later commits)"
-msgstr "<Shift-Up>\tПоиск в обратном порядке (вверх, среди новых состояний)"
+msgstr "<Shift-Up>\tПоиск в обратном порядке (вверх, среди новых коммитов)"
#: gitk:3066
msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)"
-msgstr "<Shift-Down>\tПоиск (вниз, среди старых состояний)"
+msgstr "<Shift-Down>\tПоиск (вниз, среди старых коммитов)"
#: gitk:3067
msgid "<Delete>, b\tScroll diff view up one page"
#: gitk:3073
#, tcl-format
msgid "<%s-G>\t\tMove to next find hit"
-msgstr "<%s-G>\t\tПерейти к следующему найденному состоянию"
+msgstr "<%s-G>\t\tПерейти к следующему найденному коммиту"
#: gitk:3074
msgid "<Return>\tMove to next find hit"
-msgstr "<Return>\tПерейти к следующему найденному состоянию"
+msgstr "<Return>\tПерейти к следующему найденному коммиту"
#: gitk:3075
-#, fuzzy
msgid "g\t\tGo to commit"
-msgstr "<End>\t\tПерейти к последнему состоянию"
+msgstr "g\t\tПерейти на коммит"
#: gitk:3076
msgid "/\t\tFocus the search box"
#: gitk:3077
msgid "?\t\tMove to previous find hit"
-msgstr "?\t\tПерейти к предыдущему найденному состоянию"
+msgstr "?\t\tПерейти к предыдущему найденному коммиту"
#: gitk:3078
msgid "f\t\tScroll diff view to next file"
#: gitk:3572
#, tcl-format
msgid "Error getting \"%s\" from %s:"
-msgstr "Ошибка получения \"%s\" из %s:"
+msgstr "Ошибка получения «%s» из %s:"
#: gitk:3635
msgid "command failed:"
#: gitk:3784
msgid "No such commit"
-msgstr "СоÑ\81Ñ\82оÑ\8fние не найдено"
+msgstr "Ð\9aоммиÑ\82 не найден"
#: gitk:3798
msgid "git gui blame: command failed:"
#: gitk:3925
#, tcl-format
msgid "That line comes from commit %s, which is not in this view"
-msgstr ""
-"Эта строка принадлежит состоянию %s, которое не показано в этом представлении"
+msgstr "Эта строка принадлежит коммиту %s, который не показан в этом представлении"
#: gitk:3939
msgid "External diff viewer failed:"
#: gitk:4075
msgid "References (space separated list):"
-msgstr ""
+msgstr "Ссылки (разделённые пробелом):"
#: gitk:4076
msgid "Branches & tags:"
-msgstr ""
+msgstr "Ветки и метки"
#: gitk:4077
-#, fuzzy
msgid "All refs"
-msgstr "Ð\92Ñ\81е Ñ\84айлÑ\8b"
+msgstr "Ð\92Ñ\81е Ñ\81Ñ\81Ñ\8bлки"
#: gitk:4078
msgid "All (local) branches"
-msgstr ""
+msgstr "Все (локальные) ветки"
#: gitk:4079
msgid "All tags"
-msgstr ""
+msgstr "Все метки"
#: gitk:4080
msgid "All remote-tracking branches"
-msgstr ""
+msgstr "Все внешние отслеживаемые ветки"
#: gitk:4081
msgid "Commit Info (regular expressions):"
-msgstr ""
+msgstr "Информация о коммите (регулярные выражения):"
#: gitk:4082
-#, fuzzy
msgid "Author:"
-msgstr "Автор"
+msgstr "Автор:"
#: gitk:4083
-#, fuzzy
msgid "Committer:"
-msgstr "СоÑ\85Ñ\80анивÑ\88ий Ñ\81оÑ\81Ñ\82оÑ\8fние"
+msgstr "Ð\9aоммиÑ\82еÑ\80:"
#: gitk:4084
msgid "Commit Message:"
-msgstr ""
+msgstr "Сообщение коммита:"
#: gitk:4085
msgid "Matches all Commit Info criteria"
-msgstr ""
+msgstr "Совпадает со всеми условиями информации о коммите"
#: gitk:4086
msgid "Matches no Commit Info criteria"
-msgstr ""
+msgstr "Не совпадает с условиями информации о коммите"
#: gitk:4087
msgid "Changes to Files:"
-msgstr ""
+msgstr "Изменения файлов:"
#: gitk:4088
msgid "Fixed String"
-msgstr ""
+msgstr "Обычная строка"
#: gitk:4089
msgid "Regular Expression"
-msgstr ""
+msgstr "Регулярное выражение:"
#: gitk:4090
-#, fuzzy
msgid "Search string:"
-msgstr "Ð\9fоиÑ\81к"
+msgstr "СÑ\82Ñ\80ока длÑ\8f поиÑ\81ка:"
#: gitk:4091
msgid ""
"Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 "
"15:27:38\"):"
-msgstr ""
+msgstr "Даты коммита («2 недели назад», «2009-03-17 15:27:38», «17 марта 2009 15:27:38»):"
#: gitk:4092
-#, fuzzy
msgid "Since:"
msgstr "С даты:"
#: gitk:4093
-#, fuzzy
msgid "Until:"
msgstr "По дату:"
#: gitk:4094
msgid "Limit and/or skip a number of revisions (positive integer):"
-msgstr ""
+msgstr "Ограничить и/или пропустить количество редакций (положительное число):"
#: gitk:4095
msgid "Number to show:"
-msgstr ""
+msgstr "Показать количество:"
#: gitk:4096
msgid "Number to skip:"
-msgstr ""
+msgstr "Пропустить количество:"
#: gitk:4097
msgid "Miscellaneous options:"
-msgstr ""
+msgstr "Различные опции:"
#: gitk:4098
msgid "Strictly sort by date"
#: gitk:4099
msgid "Mark branch sides"
-msgstr "Ð\9eÑ\82меÑ\82иÑ\82Ñ\8c Ñ\81Ñ\82оÑ\80онÑ\8b веÑ\82вей"
+msgstr "Ð\9eÑ\82меÑ\82иÑ\82Ñ\8c Ñ\81Ñ\82оÑ\80онÑ\8b веÑ\82ок"
#: gitk:4100
msgid "Limit to first parent"
#: gitk:4101
msgid "Simple history"
-msgstr ""
+msgstr "Упрощенная история"
#: gitk:4102
-#, fuzzy
msgid "Additional arguments to git log:"
-msgstr "Ð\92клÑ\8eÑ\87иÑ\82Ñ\8c Ñ\81оÑ\81Ñ\82оÑ\8fниÑ\8f (аÑ\80гÑ\83менÑ\82Ñ\8b длÑ\8f git-log):"
+msgstr "Ð\94ополниÑ\82елÑ\8cнÑ\8bе аÑ\80гÑ\83менÑ\82Ñ\8b длÑ\8f git log:"
#: gitk:4103
msgid "Enter files and directories to include, one per line:"
#: gitk:4104
msgid "Command to generate more commits to include:"
-msgstr "Дополнительная команда для списка состояний:"
+msgstr "Дополнительная команда для списка коммитов:"
#: gitk:4228
msgid "Gitk: edit view"
-msgstr ""
+msgstr "Gitk: изменить представление"
#: gitk:4236
-#, fuzzy
msgid "-- criteria for selecting revisions"
-msgstr "Ошибка в идентификаторе версии:"
+msgstr "— критерий поиска редакций"
#: gitk:4241
-#, fuzzy
msgid "View Name"
-msgstr "Ð\9fÑ\80едÑ\81Ñ\82авление"
+msgstr "Ð\98мÑ\8f пÑ\80едÑ\81Ñ\82авлениÑ\8f"
#: gitk:4316
msgid "Apply (F5)"
#: gitk:4354
msgid "Error in commit selection arguments:"
-msgstr "Ошибка в параметрах выбора состояний:"
+msgstr "Ошибка в параметрах выбора коммитов:"
#: gitk:4409 gitk:4462 gitk:4924 gitk:4938 gitk:6208 gitk:12373 gitk:12374
msgid "None"
#: gitk:5324
msgid "Local changes checked in to index but not committed"
-msgstr "Ð\98зменениÑ\8f заÑ\80егиÑ\81Ñ\82Ñ\80иÑ\80ованнÑ\8bе в индекÑ\81е, но не Ñ\81оÑ\85Ñ\80анÑ\91ннÑ\8bе"
+msgstr "Ð\9fÑ\80оиндекÑ\81иÑ\80ованнÑ\8bе изменениÑ\8f"
#: gitk:5360
msgid "Local uncommitted changes, not checked in to index"
-msgstr "Ð\98зменениÑ\8f в Ñ\80абоÑ\87ем каÑ\82алоге, не заÑ\80егиÑ\81Ñ\82Ñ\80иÑ\80ованнÑ\8bе в индекÑ\81е"
+msgstr "Ð\9dепÑ\80оиндекÑ\81иÑ\80ованнÑ\8bе изменениÑ\8f"
#: gitk:7134
msgid "and many more"
-msgstr ""
+msgstr "и многое другое"
#: gitk:7137
msgid "many"
-msgstr ""
+msgstr "много"
#: gitk:7328
msgid "Tags:"
-msgstr "Таги:"
+msgstr "Ð\9cеÑ\82ки:"
#: gitk:7345 gitk:7351 gitk:8825
msgid "Parent"
#: gitk:7365
msgid "Branch"
-msgstr "Ð\92еÑ\82вÑ\8c"
+msgstr "Ð\92еÑ\82ка"
#: gitk:7368
msgid "Follows"
msgstr "Сокращённый SHA1 идентификатор %s неоднозначен"
#: gitk:8678
-#, fuzzy, tcl-format
+#, tcl-format
msgid "Revision %s is not known"
-msgstr "SHA1 идентификатор %s не найден"
+msgstr "Редакция %s не найдена"
#: gitk:8688
#, tcl-format
#: gitk:8690
#, tcl-format
msgid "Revision %s is not in the current view"
-msgstr ""
+msgstr "Редакция %s не найдена в текущем представлении"
#: gitk:8832 gitk:8847
msgid "Date"
#: gitk:8898
#, tcl-format
msgid "Reset %s branch to here"
-msgstr "УÑ\81Ñ\82ановиÑ\82Ñ\8c веÑ\82вÑ\8c %s на Ñ\8dÑ\82о Ñ\81оÑ\81Ñ\82оÑ\8fние"
+msgstr "СбÑ\80оÑ\81иÑ\82Ñ\8c веÑ\82кÑ\83 %s на Ñ\8dÑ\82оÑ\82 коммиÑ\82"
#: gitk:8900
msgid "Detached head: can't reset"
-msgstr "СоÑ\81Ñ\82оÑ\8fние не пÑ\80инадлежиÑ\82 ни одной веÑ\82ви, пеÑ\80еÑ\85од невозможен"
+msgstr "Ð\9aоммиÑ\82 не пÑ\80инадлежиÑ\82 ни одной веÑ\82ке, Ñ\81бÑ\80оÑ\81иÑ\82Ñ\8c невозможно"
#: gitk:9005 gitk:9011
msgid "Skipping merge commit "
-msgstr ""
+msgstr "Пропускаю коммит-слияние"
#: gitk:9020 gitk:9025
-#, fuzzy
msgid "Error getting patch ID for "
-msgstr "Ð\9eÑ\88ибка Ñ\81озданиÑ\8f паÑ\82Ñ\87а:"
+msgstr "Ð\9dе Ñ\83далоÑ\81Ñ\8c полÑ\83Ñ\87иÑ\82Ñ\8c иденÑ\82иÑ\84икаÑ\82оÑ\80 паÑ\82Ñ\87а длÑ\8f "
#: gitk:9021 gitk:9026
msgid " - stopping\n"
-msgstr ""
+msgstr " — останов\n"
#: gitk:9031 gitk:9034 gitk:9042 gitk:9056 gitk:9065
-#, fuzzy
msgid "Commit "
-msgstr "состояние"
+msgstr "Коммит"
#: gitk:9035
msgid ""
" is the same patch as\n"
" "
-msgstr ""
+msgstr " такой же патч, как и\n "
#: gitk:9043
msgid ""
" differs from\n"
" "
-msgstr ""
+msgstr " отличается от\n "
#: gitk:9045
msgid ""
"Diff of commits:\n"
"\n"
-msgstr ""
+msgstr "Различия коммитов:\n\n"
#: gitk:9057 gitk:9066
#, tcl-format
msgid " has %s children - stopping\n"
-msgstr ""
+msgstr " является %s потомком — останов\n"
#: gitk:9085
-#, fuzzy, tcl-format
+#, tcl-format
msgid "Error writing commit to file: %s"
-msgstr "Ð\9eÑ\88ибка Ñ\81оÑ\85Ñ\80анениÑ\8f Ñ\81оÑ\81Ñ\82оÑ\8fниÑ\8f:"
+msgstr "Ð\9fÑ\80оизоÑ\88ла оÑ\88ибка пÑ\80и запиÑ\81и коммиÑ\82а в Ñ\84айл: %s"
#: gitk:9091
-#, fuzzy, tcl-format
+#, tcl-format
msgid "Error diffing commits: %s"
-msgstr "Ð\9eÑ\88ибка Ñ\81оÑ\85Ñ\80анениÑ\8f Ñ\81оÑ\81Ñ\82оÑ\8fниÑ\8f:"
+msgstr "Ð\9fÑ\80оизоÑ\88ла оÑ\88ибка пÑ\80и вÑ\8bводе Ñ\80азлиÑ\87ий коммиÑ\82ов: %s"
#: gitk:9137
msgid "Top"
#: gitk:9268
msgid "Tag message is optional"
-msgstr ""
+msgstr "Описание метки указывать не обязательно"
#: gitk:9270
-#, fuzzy
msgid "Tag message:"
-msgstr "Ð\98мÑ\8f метки:"
+msgstr "Ð\9eпиÑ\81ание метки:"
#: gitk:9274 gitk:9439
msgid "Create"
#: gitk:9296
#, tcl-format
msgid "Tag \"%s\" already exists"
-msgstr "Метка \"%s\" уже существует"
+msgstr "Метка «%s» уже существует"
#: gitk:9306
msgid "Error creating tag:"
#: gitk:9408
msgid "Error writing commit:"
-msgstr "Ð\9eÑ\88ибка Ñ\81оÑ\85Ñ\80анениÑ\8f Ñ\81оÑ\81Ñ\82оÑ\8fниÑ\8f:"
+msgstr "Ð\9fÑ\80оизоÑ\88ла оÑ\88ибка пÑ\80и запиÑ\81и коммиÑ\82а:"
#: gitk:9435
msgid "Name:"
#: gitk:9458
msgid "Please specify a name for the new branch"
-msgstr "УкажиÑ\82е имÑ\8f длÑ\8f новой веÑ\82ви"
+msgstr "УкажиÑ\82е имÑ\8f длÑ\8f новой веÑ\82ки"
#: gitk:9463
#, tcl-format
msgid "Branch '%s' already exists. Overwrite?"
-msgstr "Ð\92еÑ\82вÑ\8c '%s' уже существует. Переписать?"
+msgstr "Ð\92еÑ\82ка «%s» уже существует. Переписать?"
#: gitk:9530
#, tcl-format
msgid "Commit %s is already included in branch %s -- really re-apply it?"
-msgstr "СоÑ\81Ñ\82оÑ\8fние %s Ñ\83же пÑ\80инадлежиÑ\82 веÑ\82ви %s. Продолжить операцию?"
+msgstr "Ð\9aоммиÑ\82 %s Ñ\83же вклÑ\8eÑ\87Ñ\91н в веÑ\82кÑ\83 %s. Продолжить операцию?"
#: gitk:9535
msgid "Cherry-picking"
msgid ""
"Cherry-pick failed because of local changes to file '%s'.\n"
"Please commit, reset or stash your changes and try again."
-msgstr ""
-"Копирование невозможно из-за изменений в файле '%s'.\n"
-"Сохраните или отмените изменения и повторите операцию."
+msgstr "Отбор лучшего невозможен из-за изменений в файле «%s».\nЗакомитьте, сбросьте или спрячьте изменения и повторите операцию."
#: gitk:9550
msgid ""
"Cherry-pick failed because of merge conflict.\n"
"Do you wish to run git citool to resolve it?"
-msgstr ""
-"Копирование изменений невозможно из-за незавершённой операции слияния.\n"
-"Запустить git citool для завершения этой операции?"
+msgstr "Копирование изменений невозможно из-за незавершённой операции слияния.\nЗапустить git citool для завершения этой операции?"
#: gitk:9566 gitk:9624
msgid "No changes committed"
-msgstr "Изменения не сохранены"
+msgstr "Изменения не закоммичены"
#: gitk:9593
-#, fuzzy, tcl-format
+#, tcl-format
msgid "Commit %s is not included in branch %s -- really revert it?"
-msgstr "СоÑ\81Ñ\82оÑ\8fние %s Ñ\83же пÑ\80инадлежиÑ\82 веÑ\82ви %s. Продолжить операцию?"
+msgstr "Ð\9aоммиÑ\82 %s не вклÑ\8eÑ\87Ñ\91н в веÑ\82кÑ\83 %s. Продолжить операцию?"
#: gitk:9598
-#, fuzzy
msgid "Reverting"
-msgstr "УÑ\81Ñ\82ановка"
+msgstr "Ð\92озвÑ\80аÑ\82 изменений"
#: gitk:9606
-#, fuzzy, tcl-format
+#, tcl-format
msgid ""
"Revert failed because of local changes to the following files:%s Please "
"commit, reset or stash your changes and try again."
-msgstr ""
-"Копирование невозможно из-за изменений в файле '%s'.\n"
-"Сохраните или отмените изменения и повторите операцию."
+msgstr "Возврат изменений коммита не удался из-за локальных изменений в указанных файлах: %s\nЗакомитьте, сбросьте или спрячьте изменения и повторите операцию."
#: gitk:9610
-#, fuzzy
msgid ""
"Revert failed because of merge conflict.\n"
" Do you wish to run git citool to resolve it?"
-msgstr ""
-"Копирование изменений невозможно из-за незавершённой операции слияния.\n"
-"Запустить git citool для завершения этой операции?"
+msgstr "Возврат изменений невозможен из-за незавершённой операции слияния.\nЗапустить git citool для завершения этой операции?"
#: gitk:9653
msgid "Confirm reset"
#: gitk:9655
#, tcl-format
msgid "Reset branch %s to %s?"
-msgstr "УÑ\81Ñ\82ановиÑ\82Ñ\8c веÑ\82вÑ\8c %s на Ñ\81оÑ\81Ñ\82оÑ\8fние %s?"
+msgstr "СбÑ\80оÑ\81иÑ\82Ñ\8c веÑ\82кÑ\83 %s на коммиÑ\82 %s?"
#: gitk:9657
msgid "Reset type:"
msgid ""
"Hard: Reset working tree and index\n"
"(discard ALL local changes)"
-msgstr ""
-"Жесткий: переписать индекс и рабочий каталог\n"
-"(все изменения в рабочем каталоге будут потеряны)"
+msgstr "Жесткий: переписать индекс и рабочий каталог\n(все изменения в рабочем каталоге будут потеряны)"
#: gitk:9683
msgid "Resetting"
-msgstr "УÑ\81Ñ\82ановка"
+msgstr "СбÑ\80оÑ\81"
#: gitk:9743
msgid "Checking out"
#: gitk:9796
msgid "Cannot delete the currently checked-out branch"
-msgstr "Ð\90кÑ\82ивнаÑ\8f веÑ\82вÑ\8c не может быть удалена"
+msgstr "Ð\90кÑ\82ивнаÑ\8f веÑ\82ка не может быть удалена"
#: gitk:9802
#, tcl-format
msgid ""
"The commits on branch %s aren't on any other branch.\n"
"Really delete branch %s?"
-msgstr ""
-"Состояния ветви %s больше не принадлежат никакой другой ветви.\n"
-"Действительно удалить ветвь %s?"
+msgstr "Коммиты из ветки %s не принадлежат больше никакой другой ветке.\nДействительно удалить ветку %s?"
#: gitk:9833
#, tcl-format
msgid "Tags and heads: %s"
-msgstr "Ð\9cеÑ\82ки и веÑ\82ви: %s"
+msgstr "Ð\9cеÑ\82ки и веÑ\82ки: %s"
#: gitk:9850
msgid "Filter"
msgid ""
"Error reading commit topology information; branch and preceding/following "
"tag information will be incomplete."
-msgstr ""
-"Ошибка чтения истории проекта; информация о ветвях и состояниях вокруг меток "
-"(до/после) может быть неполной."
+msgstr "Ошибка чтения истории проекта; информация о ветках и коммитах вокруг меток (до/после) может быть неполной."
#: gitk:11123
msgid "Tag"
#: gitk:11348
msgid "Commit list display options"
-msgstr "Параметры показа списка состояний"
+msgstr "Параметры показа списка коммитов"
#: gitk:11351
msgid "Maximum graph width (lines)"
msgstr "Показывать изменения в рабочем каталоге"
#: gitk:11361
-#, fuzzy
msgid "Auto-select SHA1 (length)"
-msgstr "Ð\92Ñ\8bделиÑ\82Ñ\8c SHA1"
+msgstr "Ð\90вÑ\82омаÑ\82иÑ\87еÑ\81ки вÑ\8bделиÑ\82Ñ\8c SHA1 (длинна)"
#: gitk:11365
msgid "Hide remote refs"
-msgstr ""
+msgstr "Скрыть внешние ссылки"
#: gitk:11369
msgid "Diff display options"
msgstr "Ширина табуляции"
#: gitk:11374
-#, fuzzy
msgid "Display nearby tags/heads"
-msgstr "Показывать близкие метки"
+msgstr "Показывать близкие метки/ветки"
#: gitk:11377
msgid "Maximum # tags/heads to show"
-msgstr ""
+msgstr "Показывать максимальное количество меток/веток"
#: gitk:11380
msgid "Limit diffs to listed paths"
msgstr "Выберите..."
#: gitk:11395
-#, fuzzy
msgid "General options"
-msgstr "СоздаÑ\82Ñ\8c паÑ\82Ñ\87"
+msgstr "Ð\9eбÑ\89ие опÑ\86ии"
#: gitk:11398
msgid "Use themed widgets"
-msgstr ""
+msgstr "Использовать стили виджетов"
#: gitk:11400
msgid "(change requires restart)"
-msgstr ""
+msgstr "(изменение потребует перезапуск)"
#: gitk:11402
msgid "(currently unavailable)"
-msgstr ""
+msgstr "(недоступно в данный момент)"
#: gitk:11413
msgid "Colors: press to choose"
#: gitk:11416
msgid "Interface"
-msgstr ""
+msgstr "Интерфейс"
#: gitk:11417
-#, fuzzy
msgid "interface"
-msgstr "ШÑ\80иÑ\84Ñ\82 инÑ\82еÑ\80Ñ\84ейÑ\81а"
+msgstr "инÑ\82еÑ\80Ñ\84ейÑ\81"
#: gitk:11420
msgid "Background"
msgstr "Настройки Gitk"
#: gitk:11494
-#, fuzzy
msgid "General"
-msgstr "СоздаÑ\82Ñ\8c"
+msgstr "Ð\9eбÑ\89ие"
#: gitk:11495
msgid "Colors"
-msgstr ""
+msgstr "Цвета"
#: gitk:11496
msgid "Fonts"
-msgstr ""
+msgstr "Шрифты"
#: gitk:11546
#, tcl-format
msgid ""
"Sorry, gitk cannot run with this version of Tcl/Tk.\n"
" Gitk requires at least Tcl/Tk 8.4."
-msgstr ""
-"К сожалению gitk не может работать с этой версий Tcl/Tk.\n"
-"Требуется как минимум Tcl/Tk 8.4."
+msgstr "К сожалению gitk не может работать с этой версий Tcl/Tk.\nТребуется как минимум Tcl/Tk 8.4."
#: gitk:12269
msgid "Cannot find a git repository here."
#: gitk:12316
#, tcl-format
msgid "Ambiguous argument '%s': both revision and filename"
-msgstr "Неоднозначный аргумент '%s': существует как версия и имя файла"
+msgstr "Неоднозначный аргумент «%s»: существует как редакция и как имя файла"
#: gitk:12328
msgid "Bad arguments to gitk:"
msgstr "Неправильные аргументы для gitk:"
-
-#~ msgid "SHA1 ID: "
-#~ msgstr "SHA1:"
-
-#~ msgid "next"
-#~ msgstr "След."
-
-#~ msgid "prev"
-#~ msgstr "Пред."
-
-#~ msgid "Use all refs"
-#~ msgstr "Использовать все ветви"
-
-#~ msgid "Max count:"
-#~ msgstr "Макс. количество:"
-
-#~ msgid "Skip:"
-#~ msgstr "Пропустить:"
-
-#~ msgid "Name"
-#~ msgstr "Имя"
-
-#~ msgid "CDate"
-#~ msgstr "Дата ввода"
-
-#~ msgid "Tag/Head %s is not known"
-#~ msgstr "Метка или ветвь %s не найдена"
-
-#~ msgid "Cannot find the git directory \"%s\"."
-#~ msgstr "Git-репозитарий \"%s\" не найден."
msgstr "Avbryt"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Uppdatera"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr "Ladda om"
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Läs om referenser"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Visa referenser"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr "Starta git gui"
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Avsluta"
#: gitk:2068
-msgid "File"
+msgid "&File"
msgstr "Arkiv"
#: gitk:2080
-msgid "Preferences"
+msgid "&Preferences"
msgstr "Inställningar"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Redigera"
#: gitk:2084
-msgid "New view..."
+msgid "&New view..."
msgstr "Ny vy..."
#: gitk:2085
-msgid "Edit view..."
+msgid "&Edit view..."
msgstr "Ändra vy..."
#: gitk:2086
-msgid "Delete view"
+msgid "&Delete view"
msgstr "Ta bort vy"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Alla filer"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Visa"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "Om gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Tangentbordsbindningar"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Hjälp"
#: gitk:2185 gitk:8652
# Vietnamese translations for gitk package.
# Bản dịch tiếng Việt cho gói gitk.
# This file is distributed under the same license as the gitk package.
-# Trần Ngọc Quân <vnwildman@gmail.com>, 2013.
+# Trần Ngọc Quân <vnwildman@gmail.com>, 2013, 2015.
#
msgid ""
msgstr ""
"Project-Id-Version: gitk @@GIT_VERSION@@\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-17 14:32+1000\n"
-"PO-Revision-Date: 2013-12-14 14:40+0700\n"
+"PO-Revision-Date: 2015-09-15 07:33+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
"Language: vi\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Gtranslator 2.91.7\n"
#: gitk:140
msgid "Couldn't get list of unmerged files:"
#: gitk:496 gitk:4525
msgid "Reading commits..."
-msgstr "Đang đọc các lần chuyển giao..."
+msgstr "Đang đọc các lần chuyển giao…"
#: gitk:499 gitk:1637 gitk:4528
msgid "No commits selected"
msgstr "Thôi"
#: gitk:2069
-msgid "Update"
+msgid "&Update"
msgstr "Cập nhật"
#: gitk:2070
-msgid "Reload"
+msgid "&Reload"
msgstr "Tải lại"
#: gitk:2071
-msgid "Reread references"
+msgid "Reread re&ferences"
msgstr "Đọc lại tham chiếu"
#: gitk:2072
-msgid "List references"
+msgid "&List references"
msgstr "Liệt kê các tham chiếu"
#: gitk:2074
-msgid "Start git gui"
+msgid "Start git &gui"
msgstr "Khởi chạy git gui"
#: gitk:2076
-msgid "Quit"
+msgid "&Quit"
msgstr "Thoát"
#: gitk:2068
-msgid "File"
+msgid "&File"
msgstr "Chính"
#: gitk:2080
-msgid "Preferences"
-msgstr "Cá nhân hóa"
+msgid "&Preferences"
+msgstr "Tùy thích"
#: gitk:2079
-msgid "Edit"
+msgid "&Edit"
msgstr "Chỉnh sửa"
#: gitk:2084
-msgid "New view..."
-msgstr "Thêm trình bày mới..."
+msgid "&New view..."
+msgstr "Thêm trình bày mới…"
#: gitk:2085
-msgid "Edit view..."
-msgstr "Sửa cách trình bày..."
+msgid "&Edit view..."
+msgstr "Sửa cách trình bày…"
#: gitk:2086
-msgid "Delete view"
+msgid "&Delete view"
msgstr "Xóa cách trình bày"
#: gitk:2088 gitk:4043
-msgid "All files"
+msgid "&All files"
msgstr "Mọi tập tin"
#: gitk:2083 gitk:4067
-msgid "View"
+msgid "&View"
msgstr "Trình bày"
#: gitk:2093 gitk:2103 gitk:3012
-msgid "About gitk"
+msgid "&About gitk"
msgstr "Giới thiệu về gitk"
#: gitk:2094 gitk:2108
-msgid "Key bindings"
+msgid "&Key bindings"
msgstr "Tổ hợp phím"
#: gitk:2092 gitk:2107
-msgid "Help"
+msgid "&Help"
msgstr "Trợ giúp"
#: gitk:2185 gitk:8652
#: gitk:2647
msgid "Check out this branch"
-msgstr "Checkout nhánh này"
+msgstr "Lấy ra nhánh này"
#: gitk:2648
msgid "Remove this branch"
#: gitk:2649
msgid "Copy branch name"
-msgstr ""
+msgstr "Chép tên nhánh"
#: gitk:2656
msgid "Highlight this too"
#: gitk:2660
msgid "Copy path"
-msgstr ""
+msgstr "Chép đường dẫn"
#: gitk:2667
msgid "Show origin of this line"
msgstr "Chạy lệnh git gui blame cho dòng này"
#: gitk:3014
-#, fuzzy
msgid ""
"\n"
"Gitk - a commit viewer for git\n"
"Use and redistribute under the terms of the GNU General Public License"
msgstr ""
"\n"
-"Gitk - phần mềm xem các lần chuyển giao dành cho git\n"
+"Gitk - ứng dụng để xem các lần chuyển giao dành cho git\n"
"\n"
-"Bản quyền © 2005-2011 Paul Mackerras\n"
+"Bản quyền © 2005-2014 Paul Mackerras\n"
"\n"
"Dùng và phân phối lại phần mềm này theo các điều khoản của Giấy Phép Công GNU"
#, tcl-format
msgid "<%s-n>\tGo to n-th parent of current commit in history list"
msgstr ""
+"<%s-n>\tĐến cha thứ n của lần chuyển giao hiện tại trong danh sách lịch sử"
#: gitk:3057
msgid "<PageUp>\tMove up one page in commit list"
msgstr "<Return>\t\tDi chuyển đến chỗ gặp kế tiếp"
#: gitk:3075
-#, fuzzy
msgid "g\t\tGo to commit"
-msgstr "<End>\t\tChuyển đến lần chuyển giao cuối"
+msgstr "g\t\tChuyển đến lần chuyển giao"
#: gitk:3076
msgid "/\t\tFocus the search box"
msgstr "Khớp mọi điều kiện Thông tin Chuyển giao"
#: gitk:4086
-#, fuzzy
msgid "Matches no Commit Info criteria"
-msgstr "Khớp mọi điều kiện Thông tin Chuyển giao"
+msgstr "Khớp không điều kiện Thông tin Chuyển giao"
#: gitk:4087
msgid "Changes to Files:"
#: gitk:4097
msgid "Miscellaneous options:"
-msgstr "Tuỳ chọn hỗn hợp:"
+msgstr "Tùy chọn hỗn hợp:"
#: gitk:4098
msgid "Strictly sort by date"
#: gitk:9256 gitk:9373 gitk:9430
msgid "ID:"
-msgstr "ID:"
+msgstr "Mã số:"
#: gitk:9265
msgid "Tag name:"
#: gitk:11355
#, no-tcl-format
msgid "Maximum graph width (% of pane)"
-msgstr "Độ rộng biểu đồ tối đa (% của bảng)"
+msgstr "Độ rộng đồ thị tối đa (% của bảng)"
#: gitk:11358
msgid "Show local changes"
#: gitk:11361
msgid "Auto-select SHA1 (length)"
-msgstr "Tự chọn SHA1 (độ dài)"
+msgstr "Tự chọn (độ dài) SHA1"
#: gitk:11365
msgid "Hide remote refs"
#: gitk:11390
msgid "Choose..."
-msgstr "Chọn..."
+msgstr "Chọn…"
#: gitk:11395
msgid "General options"
"Sorry, gitk cannot run with this version of Tcl/Tk.\n"
" Gitk requires at least Tcl/Tk 8.4."
msgstr ""
+"Rất tiếc, gitk không thể chạy Tcl/Tk phiên bản này.\n"
+" Gitk cần ít nhất là Tcl/Tk 8.4."
#: gitk:12269
msgid "Cannot find a git repository here."
#: gitk:12328
msgid "Bad arguments to gitk:"
-msgstr "Đối số không hợp lệ cho gitk:"
+msgstr "Đối số cho gitk không hợp lệ:"
#~ msgid "mc"
#~ msgstr "mc"
curl_easy_setopt(curl, CURLOPT_PORT, server.port);
if (server.auth_method) {
+#if LIBCURL_VERSION_NUM < 0x072200
+ warning("No LOGIN_OPTIONS support in this cURL version");
+#else
struct strbuf auth = STRBUF_INIT;
strbuf_addstr(&auth, "AUTH=");
strbuf_addstr(&auth, server.auth_method);
curl_easy_setopt(curl, CURLOPT_LOGIN_OPTIONS, auth.buf);
strbuf_release(&auth);
+#endif
}
if (!server.use_ssl)
mi->header_stage = 1;
mi->use_inbody_headers = 1;
mi->content_top = mi->content;
- git_config(git_mailinfo_config, &mi);
+ git_config(git_mailinfo_config, mi);
}
void clear_mailinfo(struct mailinfo *mi)
}
static int blob_unchanged(const unsigned char *o_sha,
+ unsigned o_mode,
const unsigned char *a_sha,
+ unsigned a_mode,
int renormalize, const char *path)
{
struct strbuf o = STRBUF_INIT;
struct strbuf a = STRBUF_INIT;
int ret = 0; /* assume changed for safety */
+ if (a_mode != o_mode)
+ return 0;
if (sha_eq(o_sha, a_sha))
return 1;
if (!renormalize)
} else if (o_sha && (!a_sha || !b_sha)) {
/* Case A: Deleted in one */
if ((!a_sha && !b_sha) ||
- (!b_sha && blob_unchanged(o_sha, a_sha, normalize, path)) ||
- (!a_sha && blob_unchanged(o_sha, b_sha, normalize, path))) {
+ (!b_sha && blob_unchanged(o_sha, o_mode, a_sha, a_mode, normalize, path)) ||
+ (!a_sha && blob_unchanged(o_sha, o_mode, b_sha, b_mode, normalize, path))) {
/* Deleted in both or deleted in one and
* unchanged in the other */
if (a_sha)
static int pack_revindex_ix(struct packed_git *p)
{
- unsigned long ui = (unsigned long)p;
+ unsigned long ui = (unsigned long)(intptr_t)p;
int i;
ui = ui ^ (ui >> 16); /* defeat structure alignment */
if (va->ul < vb->ul)
cmp = -1;
else if (va->ul == vb->ul)
- cmp = 0;
+ cmp = strcmp(a->refname, b->refname);
else
cmp = 1;
}
static void unmark_and_free(struct commit_list *list, unsigned int mark)
{
while (list) {
- struct commit_list *temp = list;
- temp->item->object.flags &= ~mark;
- list = temp->next;
- free(temp);
+ struct commit *commit = pop_commit(&list);
+ commit->object.flags &= ~mark;
}
}
commit_list_insert(l->item, &parents);
while (parents) {
- struct commit *commit = parents->item;
- l = parents;
- parents = parents->next;
- free(l);
+ struct commit *commit = pop_commit(&parents);
while (commit) {
/*
}
while (list) {
- struct commit_list *entry = list;
- struct commit *commit = list->item;
+ struct commit *commit = pop_commit(&list);
struct object *obj = &commit->object;
show_early_output_fn_t show;
- list = list->next;
- free(entry);
-
if (commit == interesting_cache)
interesting_cache = NULL;
yet_to_do = NULL;
tail = &yet_to_do;
while (list) {
- commit = list->item;
- next = list->next;
- free(list);
- list = next;
+ commit = pop_commit(&list);
tail = simplify_one(revs, commit, tail);
}
}
while (list) {
struct merge_simplify_state *st;
- commit = list->item;
- next = list->next;
- free(list);
- list = next;
+ commit = pop_commit(&list);
st = locate_simplify_state(revs, commit);
if (st->simplified == commit)
tail = &commit_list_insert(commit, tail)->next;
return NULL;
do {
- struct commit_list *entry = revs->commits;
- struct commit *commit = entry->item;
-
- revs->commits = entry->next;
- free(entry);
+ struct commit *commit = pop_commit(&revs->commits);
if (revs->reflog_info) {
save_parents(revs, commit);
{
unsigned long hash;
- hash = (unsigned long)p + (unsigned long)base_offset;
+ hash = (unsigned long)(intptr_t)p + (unsigned long)base_offset;
hash += (hash >> 8) + (hash >> 16);
return hash % MAX_DELTA_CACHE;
}
commit_list_insert(c, &head);
while (head) {
struct commit_list *p;
- struct commit *c = head->item;
+ struct commit *c = pop_commit(&head);
uint32_t **refs = ref_bitmap_at(&info->ref_bitmap, c);
- p = head;
- head = head->next;
- free(p);
-
/* XXX check "UNINTERESTING" from pack bitmaps if available */
if (c->object.flags & (SEEN | UNINTERESTING))
continue;
goto done;
}
/* avoid adding it twice */
+ prepare_alt_odb();
for (alt_odb = alt_odb_list; alt_odb; alt_odb = alt_odb->next)
if (alt_odb->name - alt_odb->base == objects_directory.len &&
!strncmp(alt_odb->base, objects_directory.buf,
/* add possible alternates from the submodule */
read_info_alternates(objects_directory.buf, 0);
- prepare_alt_odb();
done:
strbuf_release(&objects_directory);
return ret;
(
cd dir1 &&
echo even more >>sub2 &&
+ git --literal-pathspecs add -u &&
+ echo even more >>sub2 &&
git add -u
) &&
: >expect &&
echo expect
echo ignored
) >.gitignore &&
+ git --literal-pathspecs add --all &&
>will-remove &&
git add --all &&
test_tick &&
test_cmp expected actual
'
+test_expect_success 'merging with triple rename across D/F conflict' '
+ git reset --hard HEAD &&
+ git checkout -b main &&
+ git rm -rf . &&
+
+ echo "just a file" >sub1 &&
+ mkdir -p sub2 &&
+ echo content1 >sub2/file1 &&
+ echo content2 >sub2/file2 &&
+ echo content3 >sub2/file3 &&
+ mkdir simple &&
+ echo base >simple/bar &&
+ git add -A &&
+ test_tick &&
+ git commit -m base &&
+
+ git checkout -b other &&
+ echo more >>simple/bar &&
+ test_tick &&
+ git commit -a -m changesimplefile &&
+
+ git checkout main &&
+ git rm sub1 &&
+ git mv sub2 sub1 &&
+ test_tick &&
+ git commit -m changefiletodir &&
+
+ test_tick &&
+ git merge other
+'
test_done
test_expect_success 'git branch `--sort` option' '
cat >expect <<-\EOF &&
- branch-two
* (HEAD detached from fromtag)
+ branch-two
branch-one
master
EOF
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
test_line_count = 1 packs.txt
'
+test_expect_success 'clone, dissociate from alternates' '
+ rm -fr A B C &&
+ test_create_repo A &&
+ commit_in A file1 &&
+ git clone --reference=A A B &&
+ test_line_count = 1 B/.git/objects/info/alternates &&
+ git clone --local --dissociate B C &&
+ ! test -f C/.git/objects/info/alternates &&
+ ( cd C && git fsck )
+'
+
test_done
--- /dev/null
+#!/bin/sh
+
+test_description='merge: handle file mode'
+. ./test-lib.sh
+
+test_expect_success 'set up mode change in one branch' '
+ : >file1 &&
+ git add file1 &&
+ git commit -m initial &&
+ git checkout -b a1 master &&
+ : >dummy &&
+ git add dummy &&
+ git commit -m a &&
+ git checkout -b b1 master &&
+ test_chmod +x file1 &&
+ git add file1 &&
+ git commit -m b1
+'
+
+do_one_mode () {
+ strategy=$1
+ us=$2
+ them=$3
+ test_expect_success "resolve single mode change ($strategy, $us)" '
+ git checkout -f $us &&
+ git merge -s $strategy $them &&
+ git ls-files -s file1 | grep ^100755
+ '
+
+ test_expect_success FILEMODE "verify executable bit on file ($strategy, $us)" '
+ test -x file1
+ '
+}
+
+do_one_mode recursive a1 b1
+do_one_mode recursive b1 a1
+do_one_mode resolve a1 b1
+do_one_mode resolve b1 a1
+
+test_expect_success 'set up mode change in both branches' '
+ git reset --hard HEAD &&
+ git checkout -b a2 master &&
+ : >file2 &&
+ H=$(git hash-object file2) &&
+ test_chmod +x file2 &&
+ git commit -m a2 &&
+ git checkout -b b2 master &&
+ : >file2 &&
+ git add file2 &&
+ git commit -m b2 &&
+ {
+ echo "100755 $H 2 file2"
+ echo "100644 $H 3 file2"
+ } >expect
+'
+
+do_both_modes () {
+ strategy=$1
+ test_expect_success "detect conflict on double mode change ($strategy)" '
+ git reset --hard &&
+ git checkout -f a2 &&
+ test_must_fail git merge -s $strategy b2 &&
+ git ls-files -u >actual &&
+ test_cmp actual expect &&
+ git ls-files -s file2 | grep ^100755
+ '
+
+ test_expect_success FILEMODE "verify executable bit on file ($strategy)" '
+ test -x file2
+ '
+}
+
+# both sides are equivalent, so no need to run both ways
+do_both_modes recursive
+do_both_modes resolve
+
+test_expect_success 'set up delete/modechange scenario' '
+ git reset --hard &&
+ git checkout -b deletion master &&
+ git rm file1 &&
+ git commit -m deletion
+'
+
+do_delete_modechange () {
+ strategy=$1
+ us=$2
+ them=$3
+ test_expect_success "detect delete/modechange conflict ($strategy, $us)" '
+ git reset --hard &&
+ git checkout $us &&
+ test_must_fail git merge -s $strategy $them
+ '
+}
+
+do_delete_modechange recursive b1 deletion
+do_delete_modechange recursive deletion b1
+do_delete_modechange resolve b1 deletion
+do_delete_modechange resolve deletion b1
+
+test_done
+++ /dev/null
-#!/bin/sh
-
-test_description='merge-recursive: handle file mode'
-. ./test-lib.sh
-
-test_expect_success 'mode change in one branch: keep changed version' '
- : >file1 &&
- git add file1 &&
- git commit -m initial &&
- git checkout -b a1 master &&
- : >dummy &&
- git add dummy &&
- git commit -m a &&
- git checkout -b b1 master &&
- test_chmod +x file1 &&
- git add file1 &&
- git commit -m b1 &&
- git checkout a1 &&
- git merge-recursive master -- a1 b1 &&
- git ls-files -s file1 | grep ^100755
-'
-
-test_expect_success FILEMODE 'verify executable bit on file' '
- test -x file1
-'
-
-test_expect_success 'mode change in both branches: expect conflict' '
- git reset --hard HEAD &&
- git checkout -b a2 master &&
- : >file2 &&
- H=$(git hash-object file2) &&
- test_chmod +x file2 &&
- git commit -m a2 &&
- git checkout -b b2 master &&
- : >file2 &&
- git add file2 &&
- git commit -m b2 &&
- git checkout a2 &&
- (
- git merge-recursive master -- a2 b2
- test $? = 1
- ) &&
- git ls-files -u >actual &&
- (
- echo "100755 $H 2 file2"
- echo "100644 $H 3 file2"
- ) >expect &&
- test_cmp actual expect &&
- git ls-files -s file2 | grep ^100755
-'
-
-test_expect_success FILEMODE 'verify executable bit on file' '
- test -x file2
-'
-
-test_expect_success 'merging with triple rename across D/F conflict' '
- git reset --hard HEAD &&
- git checkout -b main &&
- git rm -rf . &&
-
- echo "just a file" >sub1 &&
- mkdir -p sub2 &&
- echo content1 >sub2/file1 &&
- echo content2 >sub2/file2 &&
- echo content3 >sub2/file3 &&
- mkdir simple &&
- echo base >simple/bar &&
- git add -A &&
- test_tick &&
- git commit -m base &&
-
- git checkout -b other &&
- echo more >>simple/bar &&
- test_tick &&
- git commit -a -m changesimplefile &&
-
- git checkout main &&
- git rm sub1 &&
- git mv sub2 sub1 &&
- test_tick &&
- git commit -m changefiletodir &&
-
- test_tick &&
- git merge other
-'
-
-test_done
test_cmp actual expect
'
+test_expect_success 'set up mod-256 conflict scenario' '
+ # 256 near-identical stanzas...
+ for i in $(test_seq 1 256); do
+ for j in 1 2 3 4 5; do
+ echo $i-$j
+ done
+ done >file &&
+ git add file &&
+ git commit -m base &&
+
+ # one side changes the first line of each to "master"
+ sed s/-1/-master/ <file >tmp &&
+ mv tmp file &&
+ git commit -am master &&
+
+ # and the other to "side"; merging the two will
+ # yield 256 separate conflicts
+ git checkout -b side HEAD^ &&
+ sed s/-1/-side/ <file >tmp &&
+ mv tmp file &&
+ git commit -am side
+'
+
+test_expect_success 'merge detects mod-256 conflicts (recursive)' '
+ git reset --hard &&
+ test_must_fail git merge -s recursive master
+'
+
+test_expect_success 'merge detects mod-256 conflicts (resolve)' '
+ git reset --hard &&
+ test_must_fail git merge -s resolve master
+'
+
test_done
)
'
+test_expect_success PERL,SYMLINKS 'difftool --dir-diff symlinked directories' '
+ git init dirlinks &&
+ (
+ cd dirlinks &&
+ git config diff.tool checktrees &&
+ git config difftool.checktrees.cmd "echo good" &&
+ mkdir foo &&
+ : >foo/bar &&
+ git add foo/bar &&
+ test_commit symlink-one &&
+ ln -s foo link &&
+ git add link &&
+ test_commit symlink-two &&
+ echo good >expect &&
+ git difftool --tool=checktrees --dir-diff HEAD~ >actual &&
+ test_cmp expect actual
+ )
+'
+
test_done
commit_list_insert_by_date(want, &work);
while (work) {
- struct commit_list *list = work->next;
- struct commit *commit = work->item;
- free(work);
- work = list;
+ struct commit_list *list;
+ struct commit *commit = pop_commit(&work);
if (commit->object.flags & THEY_HAVE) {
want->object.flags |= COMMON_KNOWN;