diff options
31 files changed, 1173 insertions, 1269 deletions
diff --git a/Documentation/RelNotes/2.4.11.txt b/Documentation/RelNotes/2.4.11.txt new file mode 100644 index 000000000..723360295 --- /dev/null +++ b/Documentation/RelNotes/2.4.11.txt @@ -0,0 +1,11 @@ +Git v2.4.11 Release Notes +========================= + +Fixes since v2.4.10 +------------------- + + * Bugfix patches were backported from the 'master' front to plug heap + corruption holes, to catch integer overflow in the computation of + pathname lengths, and to get rid of the name_path API. Both of + these would have resulted in writing over an under-allocated buffer + when formulating pathnames while tree traversal. diff --git a/Documentation/RelNotes/2.5.5.txt b/Documentation/RelNotes/2.5.5.txt new file mode 100644 index 000000000..37eae9a2d --- /dev/null +++ b/Documentation/RelNotes/2.5.5.txt @@ -0,0 +1,11 @@ +Git v2.5.5 Release Notes +======================== + +Fixes since v2.5.4 +------------------ + + * Bugfix patches were backported from the 'master' front to plug heap + corruption holes, to catch integer overflow in the computation of + pathname lengths, and to get rid of the name_path API. Both of + these would have resulted in writing over an under-allocated buffer + when formulating pathnames while tree traversal. diff --git a/Documentation/RelNotes/2.6.6.txt b/Documentation/RelNotes/2.6.6.txt new file mode 100644 index 000000000..023ad85ec --- /dev/null +++ b/Documentation/RelNotes/2.6.6.txt @@ -0,0 +1,11 @@ +Git v2.6.6 Release Notes +======================== + +Fixes since v2.6.5 +------------------ + + * Bugfix patches were backported from the 'master' front to plug heap + corruption holes, to catch integer overflow in the computation of + pathname lengths, and to get rid of the name_path API. Both of + these would have resulted in writing over an under-allocated buffer + when formulating pathnames while tree traversal. diff --git a/Documentation/RelNotes/2.7.4.txt b/Documentation/RelNotes/2.7.4.txt new file mode 100644 index 000000000..883ae896f --- /dev/null +++ b/Documentation/RelNotes/2.7.4.txt @@ -0,0 +1,11 @@ +Git v2.7.4 Release Notes +======================== + +Fixes since v2.7.3 +------------------ + + * Bugfix patches were backported from the 'master' front to plug heap + corruption holes, to catch integer overflow in the computation of + pathname lengths, and to get rid of the name_path API. Both of + these would have resulted in writing over an under-allocated buffer + when formulating pathnames while tree traversal. diff --git a/Documentation/RelNotes/2.8.0.txt b/Documentation/RelNotes/2.8.0.txt index 14b6c70ed..5ec39bc30 100644 --- a/Documentation/RelNotes/2.8.0.txt +++ b/Documentation/RelNotes/2.8.0.txt @@ -16,7 +16,9 @@ UI, Workflows & Features the source repository has packed references for a long time, and nobody noticed nor complained about it. - * "branch --delete" has "branch -d" but "push --delete" does not. + * "push" learned that its "--delete" option can be shortened to + "-d", just like "branch --delete" and "branch -d" are the same + thing. * "git blame" learned to produce the progress eye-candy when it takes too much time before emitting the first line of the result. @@ -131,8 +133,8 @@ UI, Workflows & Features * Across the transition at around Git version 2.0, the user used to get a pretty loud warning when running "git push" without setting - push.default configuration variable. We no longer warn, given that - the transition is over long time ago. + push.default configuration variable. We no longer warn because the + transition was completed a long time ago. * README has been renamed to README.md and its contents got tweaked slightly to make it easier on the eyes. @@ -143,8 +145,8 @@ Performance, Internal Implementation, Development Support etc. * Add a framework to spawn a group of processes in parallel, and use it to run "git fetch --recurse-submodules" in parallel. - * A slight update to the Makefile to mark "phoney" targets - as such correctly. + * A slight update to the Makefile to mark ".PHONY" targets as such + correctly. * In-core storage of the reverse index for .pack files (which lets you go from a pack offset to an object name) has been streamlined. @@ -187,14 +189,8 @@ Performance, Internal Implementation, Development Support etc. * Some calls to strcpy(3) triggers a false warning from static analysers that are less intelligent than humans, and reducing the number of these false hits helps us notice real issues. A few - calls to strcpy(3) in test-path-utils that are already safe has - been rewritten to avoid false wanings. - - * Some calls to strcpy(3) triggers a false warning from static - analysers that are less intelligent than humans, and reducing the - number of these false hits helps us notice real issues. A few - calls to strcpy(3) in "git rerere" that are already safe has been - rewritten to avoid false wanings. + calls to strcpy(3) in a couple of protrams that are already safe + has been rewritten to avoid false warnings. * The "name_path" API was an attempt to reduce the need to construct the full path out of a series of path components while walking a @@ -240,6 +236,23 @@ Performance, Internal Implementation, Development Support etc. * Out of maintenance gcc on OSX 10.6 fails to compile the code in 'master'; work it around by using clang by default on the platform. + * The "name_path" API was an attempt to reduce the need to construct + the full path out of a series of path components while walking a + tree hierarchy, but over time made less efficient because the path + needs to be flattened, e.g. to be compared with another path that + is already flat, in many cases. The API has been removed and its + users have been rewritten to simplify the overall code complexity. + This incidentally also closes some heap-corruption holes. + + * Recent versions of GNU grep is pickier than before to decide if a + file is "binary" and refuse to give line-oriented hits when we + expect it to, unless explicitly told with "-a" option. As our + scripted Porcelains use sane_grep wrapper for line-oriented data, + even when the line may contain non-ASCII payload we took from + end-user data, use "grep -a" to implement sane_grep wrapper when + using an implementation of "grep" that takes the "-a" option. + + Also contains various documentation updates and code clean-ups. @@ -281,11 +294,6 @@ notes for details). listing and sparse checkout selection areas in 2.7.0; the change that is responsible for the regression has been reverted. - * Another try to improve the ignore mechanism that lets you say "this - is excluded" and then later say "oh, no, this part (that is a - subset of the previous part) is not excluded". This has still a - known limitation, though. - * Some codepaths used fopen(3) when opening a fixed path in $GIT_DIR (e.g. COMMIT_EDITMSG) that is meant to be left after the command is done. This however did not work well if the repository is set to @@ -334,7 +342,7 @@ notes for details). * dirname() emulation has been added, as Msys2 lacks it. * The underlying machinery used by "ls-files -o" and other commands - have been taught not to create empty submodule ref cache for a + has been taught not to create empty submodule ref cache for a directory that is not a submodule. This removes a ton of wasted CPU cycles. diff --git a/Documentation/git-check-ignore.txt b/Documentation/git-check-ignore.txt index f60ee051f..e94367a5e 100644 --- a/Documentation/git-check-ignore.txt +++ b/Documentation/git-check-ignore.txt @@ -114,7 +114,6 @@ SEE ALSO linkgit:gitignore[5] linkgit:gitconfig[5] linkgit:git-ls-files[1] -GIT_TRACE_EXCLUDE in linkgit:git[1] GIT --- diff --git a/Documentation/git-svn.txt b/Documentation/git-svn.txt index 0c0f60b20..fb23a98a1 100644 --- a/Documentation/git-svn.txt +++ b/Documentation/git-svn.txt @@ -1034,6 +1034,8 @@ listed below are allowed: url = http://server.org/svn fetch = trunk/project-a:refs/remotes/project-a/trunk branches = branches/*/project-a:refs/remotes/project-a/branches/* + branches = branches/release_*:refs/remotes/project-a/branches/release_* + branches = branches/re*se:refs/remotes/project-a/branches/* tags = tags/*/project-a:refs/remotes/project-a/tags/* ------------------------------------------------------------------------ @@ -1044,6 +1046,16 @@ independent path component (surrounded by '/' or EOL). This type of configuration is not automatically created by 'init' and should be manually entered with a text-editor or using 'git config'. +Also note that only one asterisk is allowed per word. For example: + + branches = branches/re*se:refs/remotes/project-a/branches/* + +will match branches 'release', 'rese', 're123se', however + + branches = branches/re*s*e:refs/remotes/project-a/branches/* + +will produce an error. + It is also possible to fetch a subset of branches or tags by using a comma-separated list of names within braces. For example: diff --git a/Documentation/git.txt b/Documentation/git.txt index 951b24661..a9120a877 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -51,9 +51,10 @@ Documentation for older releases are available here: link:RelNotes/2.7.1.txt[2.7.1], link:RelNotes/2.7.0.txt[2.7]. -* link:v2.6.5/git.html[documentation for release 2.6.5] +* link:v2.6.6/git.html[documentation for release 2.6.6] * release notes for + link:RelNotes/2.6.6.txt[2.6.6], link:RelNotes/2.6.5.txt[2.6.5], link:RelNotes/2.6.4.txt[2.6.4], link:RelNotes/2.6.3.txt[2.6.3], @@ -61,18 +62,20 @@ Documentation for older releases are available here: link:RelNotes/2.6.1.txt[2.6.1], link:RelNotes/2.6.0.txt[2.6]. -* link:v2.5.4/git.html[documentation for release 2.5.4] +* link:v2.5.5/git.html[documentation for release 2.5.5] * release notes for + link:RelNotes/2.5.5.txt[2.5.5], link:RelNotes/2.5.4.txt[2.5.4], link:RelNotes/2.5.3.txt[2.5.3], link:RelNotes/2.5.2.txt[2.5.2], link:RelNotes/2.5.1.txt[2.5.1], link:RelNotes/2.5.0.txt[2.5]. -* link:v2.4.10/git.html[documentation for release 2.4.10] +* link:v2.4.11/git.html[documentation for release 2.4.11] * release notes for + link:RelNotes/2.4.11.txt[2.4.11], link:RelNotes/2.4.10.txt[2.4.10], link:RelNotes/2.4.9.txt[2.4.9], link:RelNotes/2.4.8.txt[2.4.8], @@ -1066,11 +1069,6 @@ of clones and fetches. cloning of shallow repositories. See 'GIT_TRACE' for available trace output options. -'GIT_TRACE_EXCLUDE':: - Enables trace messages that can help debugging .gitignore - processing. See 'GIT_TRACE' for available trace output - options. - 'GIT_LITERAL_PATHSPECS':: Setting this variable to `1` will cause Git to treat all pathspecs literally, rather than as glob patterns. For example, @@ -1129,7 +1127,7 @@ of clones and fetches. connection (or proxy, if configured) - `ssh`: git over ssh (including `host:path` syntax, - `git+ssh://`, etc). + `ssh://`, etc). - `http`: git over http, both "smart http" and "dumb http". Note that this does _not_ include `https`; if you want both, diff --git a/Documentation/gitignore.txt b/Documentation/gitignore.txt index 91d1ce2a8..473623d63 100644 --- a/Documentation/gitignore.txt +++ b/Documentation/gitignore.txt @@ -82,12 +82,12 @@ PATTERN FORMAT - An optional prefix "`!`" which negates the pattern; any matching file excluded by a previous pattern will become - included again. + included again. It is not possible to re-include a file if a parent + directory of that file is excluded. Git doesn't list excluded + directories for performance reasons, so any patterns on contained + files have no effect, no matter where they are defined. Put a backslash ("`\`") in front of the first "`!`" for patterns that begin with a literal "`!`", for example, "`\!important!.txt`". - It is possible to re-include a file if a parent directory of that - file is excluded if certain conditions are met. See section NOTES - for detail. - If the pattern ends with a slash, it is removed for the purpose of the following description, but it would only find @@ -141,51 +141,6 @@ not tracked by Git remain untracked. To stop tracking a file that is currently tracked, use 'git rm --cached'. -To re-include files or directories when their parent directory is -excluded, the following conditions must be met: - - - The rules to exclude a directory and re-include a subset back must - be in the same .gitignore file. - - - The directory part in the re-include rules must be literal (i.e. no - wildcards and has to start with a `/`). - -A re-inclusion of a directory makes all files in the directory -unignored. For example, suppose you have files `.gitignore`, -`dir/file1`, `dir/file2`, and `dir/file3`, and have the following in -your `.gitignore`: - ----------------- -# .gitignore is not mentioned in .gitignore -* -!/dir -# dir/file1 is not mentioned in .gitignore -dir/file2 -!dir/file3 ----------------- - -Then: - - - `.gitignore` gets ignored, because it matches the `*` at the top - level; - - - `dir/file1` does not get ignored, because `/dir` marks everything - underneath `dir/` directory to be 're-included' unless otherwise - specified; - - - `dir/file2` gets ignored, because `dir/file2` matches it. - - - `dir/file3` does not get ignored, because `!dir/file3` matches it. - Note that the entry `!dir/file3` is redundant because everything - underneath `dir/` is marked to be 're-included' already. - -Some earlier versions of Git treated `!/dir` above differently in -that it did not cause the paths under it unignored (but merely told -Git that patterns that begin with dir/ should not be ignored), but -this has been corrected to be consistent with `/dir` that says "the -directory `dir/` and everything below are ignored." - - EXAMPLES -------- diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index b373d8ae8..fb1cadf62 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v2.8.0-rc2 +DEF_VER=v2.8.0-rc3 LF=' ' @@ -264,6 +264,9 @@ all:: # # Define NO_TCLTK if you do not want Tcl/Tk GUI. # +# Define SANE_TEXT_GREP to "-a" if you use recent versions of GNU grep +# and egrep that are pickier when their input contains non-ASCII data. +# # The TCL_PATH variable governs the location of the Tcl interpreter # used to optimize git-gui for your system. Only used if NO_TCLTK # is not set. Defaults to the bare 'tclsh'. @@ -1740,7 +1743,7 @@ common-cmds.h: $(wildcard Documentation/git-*.txt) SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\ $(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\ - $(gitwebdir_SQ):$(PERL_PATH_SQ) + $(gitwebdir_SQ):$(PERL_PATH_SQ):$(SANE_TEXT_GREP) define cmd_munge_script $(RM) $@ $@+ && \ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ @@ -1752,6 +1755,7 @@ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ -e $(BROKEN_PATH_FIX) \ -e 's|@@GITWEBDIR@@|$(gitwebdir_SQ)|g' \ -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \ + -e 's|@@SANE_TEXT_GREP@@|$(SANE_TEXT_GREP)|g' \ $@.sh >$@+ endef diff --git a/config.mak.uname b/config.mak.uname index 4c68e078e..1139b4400 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -37,6 +37,7 @@ ifeq ($(uname_S),Linux) HAVE_CLOCK_GETTIME = YesPlease HAVE_CLOCK_MONOTONIC = YesPlease HAVE_GETDELIM = YesPlease + SANE_TEXT_GREP=-a endif ifeq ($(uname_S),GNU/kFreeBSD) HAVE_ALLOCA_H = YesPlease diff --git a/configure.ac b/configure.ac index 89e2590bd..0cd9f4680 100644 --- a/configure.ac +++ b/configure.ac @@ -471,6 +471,13 @@ if test -n "$ASCIIDOC"; then esac fi +if grep -a ascii configure.ac >/dev/null; then + AC_MSG_RESULT([Using 'grep -a' for sane_grep]) + SANE_TEXT_GREP=-a +else + SANE_TEXT_GREP= +fi +GIT_CONF_SUBST([SANE_TEXT_GREP]) ## Checks for libraries. AC_MSG_NOTICE([CHECKS for libraries]) @@ -267,9 +267,9 @@ static enum protocol get_protocol(const char *name) return PROTO_SSH; if (!strcmp(name, "git")) return PROTO_GIT; - if (!strcmp(name, "git+ssh")) + if (!strcmp(name, "git+ssh")) /* deprecated - do not use */ return PROTO_SSH; - if (!strcmp(name, "ssh+git")) + if (!strcmp(name, "ssh+git")) /* deprecated - do not use */ return PROTO_SSH; if (!strcmp(name, "file")) return PROTO_FILE; @@ -53,8 +53,6 @@ static enum path_treatment read_directory_recursive(struct dir_struct *dir, int check_only, const struct path_simplify *simplify); static int get_dtype(struct dirent *de, const char *path, int len); -static struct trace_key trace_exclude = TRACE_KEY_INIT(EXCLUDE); - /* helper string functions with support for the ignore_case flag */ int strcmp_icase(const char *a, const char *b) { @@ -516,7 +514,6 @@ void add_exclude(const char *string, const char *base, x->baselen = baselen; x->flags = flags; x->srcpos = srcpos; - string_list_init(&x->sticky_paths, 1); ALLOC_GROW(el->excludes, el->nr + 1, el->alloc); el->excludes[el->nr++] = x; x->el = el; @@ -557,10 +554,8 @@ void clear_exclude_list(struct exclude_list *el) { int i; - for (i = 0; i < el->nr; i++) { - string_list_clear(&el->excludes[i]->sticky_paths, 0); + for (i = 0; i < el->nr; i++) free(el->excludes[i]); - } free(el->excludes); free(el->filebuf); @@ -875,7 +870,7 @@ int match_pathname(const char *pathname, int pathlen, * then our prefix match is all we need; we * do not need to call fnmatch at all. */ - if (!patternlen && (!namelen || *name == '/')) + if (!patternlen && !namelen) return 1; } @@ -884,113 +879,6 @@ int match_pathname(const char *pathname, int pathlen, WM_PATHNAME) == 0; } -static void add_sticky(struct exclude *exc, const char *pathname, int pathlen) -{ - struct strbuf sb = STRBUF_INIT; - int i; - - for (i = exc->sticky_paths.nr - 1; i >= 0; i--) { - const char *sticky = exc->sticky_paths.items[i].string; - int len = strlen(sticky); - - if (pathlen < len && sticky[pathlen] == '/' && - !strncmp(pathname, sticky, pathlen)) - return; - } - - strbuf_add(&sb, pathname, pathlen); - string_list_append_nodup(&exc->sticky_paths, strbuf_detach(&sb, NULL)); -} - -static int match_sticky(struct exclude *exc, const char *pathname, int pathlen, int dtype) -{ - int i; - - for (i = exc->sticky_paths.nr - 1; i >= 0; i--) { - const char *sticky = exc->sticky_paths.items[i].string; - int len = strlen(sticky); - - if (pathlen == len && dtype == DT_DIR && - !strncmp(pathname, sticky, len)) - return 1; - - if (pathlen > len && pathname[len] == '/' && - !strncmp(pathname, sticky, len)) - return 1; - } - - return 0; -} - -static inline int different_decisions(const struct exclude *a, - const struct exclude *b) -{ - return (a->flags & EXC_FLAG_NEGATIVE) != (b->flags & EXC_FLAG_NEGATIVE); -} - -/* - * Return non-zero if pathname is a directory and an ancestor of the - * literal path in a pattern. - */ -static int match_directory_part(const char *pathname, int pathlen, - int *dtype, struct exclude *x) -{ - const char *base = x->base; - int baselen = x->baselen ? x->baselen - 1 : 0; - const char *pattern = x->pattern; - int prefix = x->nowildcardlen; - int patternlen = x->patternlen; - - if (*dtype == DT_UNKNOWN) - *dtype = get_dtype(NULL, pathname, pathlen); - if (*dtype != DT_DIR) - return 0; - - if (*pattern == '/') { - pattern++; - patternlen--; - prefix--; - } - - if (baselen) { - if (((pathlen < baselen && base[pathlen] == '/') || - pathlen == baselen) && - !strncmp_icase(pathname, base, pathlen)) - return 1; - pathname += baselen + 1; - pathlen -= baselen + 1; - } - - - if (prefix && - (((pathlen < prefix && pattern[pathlen] == '/') || - pathlen == prefix) && - !strncmp_icase(pathname, pattern, pathlen))) - return 1; - - return 0; -} - -static struct exclude *should_descend(const char *pathname, int pathlen, - int *dtype, struct exclude_list *el, - struct exclude *exc) -{ - int i; - - for (i = el->nr - 1; 0 <= i; i--) { - struct exclude *x = el->excludes[i]; - - if (x == exc) - break; - - if (!(x->flags & EXC_FLAG_NODIR) && - different_decisions(x, exc) && - match_directory_part(pathname, pathlen, dtype, x)) - return x; - } - return NULL; -} - /* * Scan the given exclude list in reverse to see whether pathname * should be ignored. The first match (i.e. the last on the list), if @@ -1004,32 +892,16 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname, struct exclude_list *el) { struct exclude *exc = NULL; /* undecided */ - int i, maybe_descend = 0; + int i; if (!el->nr) return NULL; /* undefined */ - trace_printf_key(&trace_exclude, "exclude: from %s\n", el->src); - for (i = el->nr - 1; 0 <= i; i--) { struct exclude *x = el->excludes[i]; const char *exclude = x->pattern; int prefix = x->nowildcardlen; - if (!maybe_descend && i < el->nr - 1 && - different_decisions(x, el->excludes[i+1])) - maybe_descend = 1; - - if (x->sticky_paths.nr) { - if (*dtype == DT_UNKNOWN) - *dtype = get_dtype(NULL, pathname, pathlen); - if (match_sticky(x, pathname, pathlen, *dtype)) { - exc = x; - break; - } - continue; - } - if (x->flags & EXC_FLAG_MUSTBEDIR) { if (*dtype == DT_UNKNOWN) *dtype = get_dtype(NULL, pathname, pathlen); @@ -1056,45 +928,6 @@ static struct exclude *last_exclude_matching_from_list(const char *pathname, break; } } - - if (!exc) { - trace_printf_key(&trace_exclude, "exclude: %.*s => n/a\n", - pathlen, pathname); - return NULL; - } - - /* - * We have found a matching pattern "exc" that may exclude whole - * directory. We also found that there may be a pattern that matches - * something inside the directory and reincludes stuff. - * - * Go through the patterns again, find that pattern and double check. - * If it's true, return "undecided" and keep descending in. "exc" is - * marked sticky so that it continues to match inside the directory. - */ - if (!(exc->flags & EXC_FLAG_NEGATIVE) && maybe_descend) { - struct exclude *x; - - if (*dtype == DT_UNKNOWN) - *dtype = get_dtype(NULL, pathname, pathlen); - - if (*dtype == DT_DIR && - (x = should_descend(pathname, pathlen, dtype, el, exc))) { - add_sticky(exc, pathname, pathlen); - trace_printf_key(&trace_exclude, - "exclude: %.*s vs %s at line %d => %s," - " forced open by %s at line %d => n/a\n", - pathlen, pathname, exc->pattern, exc->srcpos, - exc->flags & EXC_FLAG_NEGATIVE ? "no" : "yes", - x->pattern, x->srcpos); - return NULL; - } - } - - trace_printf_key(&trace_exclude, "exclude: %.*s vs %s at line %d => %s%s\n", - pathlen, pathname, exc->pattern, exc->srcpos, - exc->flags & EXC_FLAG_NEGATIVE ? "no" : "yes", - exc->sticky_paths.nr ? " (stuck)" : ""); return exc; } @@ -1840,13 +1673,9 @@ static enum path_treatment read_directory_recursive(struct dir_struct *dir, struct cached_dir cdir; enum path_treatment state, subdir_state, dir_state = path_none; struct strbuf path = STRBUF_INIT; - static int level = 0; strbuf_add(&path, base, baselen); - trace_printf_key(&trace_exclude, "exclude: [%d] enter '%.*s'\n", - level++, baselen, base); - if (open_cached_dir(&cdir, dir, untracked, &path, check_only)) goto out; @@ -1910,8 +1739,6 @@ static enum path_treatment read_directory_recursive(struct dir_struct *dir, } close_cached_dir(&cdir); out: - trace_printf_key(&trace_exclude, "exclude: [%d] leave '%.*s'\n", - --level, baselen, base); strbuf_release(&path); return dir_state; @@ -2148,25 +1975,6 @@ static struct untracked_cache_dir *validate_untracked_cache(struct dir_struct *d return root; } -static void clear_sticky(struct dir_struct *dir) -{ - struct exclude_list_group *g; - struct exclude_list *el; - struct exclude *x; - int i, j, k; - - for (i = EXC_CMDL; i <= EXC_FILE; i++) { - g = &dir->exclude_list_group[i]; - for (j = g->nr - 1; j >= 0; j--) { - el = &g->el[j]; - for (k = el->nr - 1; 0 <= k; k--) { - x = el->excludes[k]; - string_list_clear(&x->sticky_paths, 0); - } - } - } -} - int read_directory(struct dir_struct *dir, const char *path, int len, const struct pathspec *pathspec) { struct path_simplify *simplify; @@ -2188,12 +1996,6 @@ int read_directory(struct dir_struct *dir, const char *path, int len, const stru return dir->nr; /* - * Stay on the safe side. if read_directory() has run once on - * "dir", some sticky flag may have been left. Clear them all. - */ - clear_sticky(dir); - - /* * exclude patterns are treated like positive ones in * create_simplify. Usually exclude patterns should be a * subset of positive ones, which has no impacts on @@ -4,7 +4,6 @@ /* See Documentation/technical/api-directory-listing.txt */ #include "strbuf.h" -#include "string-list.h" struct dir_entry { unsigned int len; @@ -35,8 +34,6 @@ struct exclude { * and from -1 decrementing for patterns from CLI args. */ int srcpos; - - struct string_list sticky_paths; }; /* diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index c0cfe88a3..4cde685b4 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -1233,7 +1233,8 @@ then git rev-list $revisions | while read rev do - if test -f "$rewritten"/$rev && test "$(sane_grep "$rev" "$state_dir"/not-cherry-picks)" = "" + if test -f "$rewritten"/$rev && + ! sane_grep "$rev" "$state_dir"/not-cherry-picks >/dev/null then # Use -f2 because if rev-list is telling us this commit is # not worthwhile, we don't want to track its multiple heads, diff --git a/git-sh-setup.sh b/git-sh-setup.sh index 4691fbcb6..c48139a49 100644 --- a/git-sh-setup.sh +++ b/git-sh-setup.sh @@ -168,11 +168,11 @@ git_pager() { } sane_grep () { - GREP_OPTIONS= LC_ALL=C grep "$@" + GREP_OPTIONS= LC_ALL=C grep @@SANE_TEXT_GREP@@ "$@" } sane_egrep () { - GREP_OPTIONS= LC_ALL=C egrep "$@" + GREP_OPTIONS= LC_ALL=C egrep @@SANE_TEXT_GREP@@ "$@" } is_bare_repository () { diff --git a/git-svn.perl b/git-svn.perl index fa5f25306..05eced06c 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -1745,11 +1745,12 @@ sub post_fetch_checkout { sub complete_svn_url { my ($url, $path) = @_; - $path = canonicalize_path($path); - # If the path is not a URL... - if ($path !~ m#^[a-z\+]+://#) { - if (!defined $url || $url !~ m#^[a-z\+]+://#) { + if ($path =~ m#^[a-z\+]+://#i) { # path is a URL + $path = canonicalize_url($path); + } else { + $path = canonicalize_path($path); + if (!defined $url || $url !~ m#^[a-z\+]+://#i) { fatal("E: '$path' is not a complete URL ", "and a separate URL is not specified"); } @@ -1764,11 +1765,12 @@ sub complete_url_ls_init { print STDERR "W: $switch not specified\n"; return; } - $repo_path = canonicalize_path($repo_path); - if ($repo_path =~ m#^[a-z\+]+://#) { + if ($repo_path =~ m#^[a-z\+]+://#i) { + $repo_path = canonicalize_url($repo_path); $ra = Git::SVN::Ra->new($repo_path); $repo_path = ''; } else { + $repo_path = canonicalize_path($repo_path); $repo_path =~ s#^/+##; unless ($ra) { fatal("E: '$repo_path' is not a complete URL ", diff --git a/gitk-git/gitk b/gitk-git/gitk index 5f1255c86..805a1c703 100755 --- a/gitk-git/gitk +++ b/gitk-git/gitk @@ -3021,7 +3021,7 @@ proc bindall {event action} { } proc about {} { - global uifont NS + global bgcolor NS set w .about if {[winfo exists $w]} { raise $w @@ -3036,7 +3036,7 @@ Gitk - a commit viewer for git Copyright \u00a9 2005-2014 Paul Mackerras Use and redistribute under the terms of the GNU General Public License"] \ - -justify center -aspect 400 -border 2 -bg white -relief groove + -justify center -aspect 400 -border 2 -bg $bgcolor -relief groove pack $w.m -side top -fill x -padx 2 -pady 2 ${NS}::button $w.ok -text [mc "Close"] -command "destroy $w" -default active pack $w.ok -side bottom @@ -3047,7 +3047,7 @@ Use and redistribute under the terms of the GNU General Public License"] \ } proc keys {} { - global NS + global bgcolor NS set w .keys if {[winfo exists $w]} { raise $w @@ -3103,7 +3103,7 @@ proc keys {} { [mc "<%s-minus> Decrease font size" $M1T] [mc "<F5> Update"] " \ - -justify left -bg white -border 2 -relief groove + -justify left -bg $bgcolor -border 2 -relief groove pack $w.m -side top -fill both -padx 2 -pady 2 ${NS}::button $w.ok -text [mc "Close"] -command "destroy $w" -default active bind $w <Key-Escape> [list destroy $w] diff --git a/gitk-git/po/bg.po b/gitk-git/po/bg.po index 909a56463..99aa77aa6 100644 --- a/gitk-git/po/bg.po +++ b/gitk-git/po/bg.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: gitk master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-06-27 20:44+0300\n" -"PO-Revision-Date: 2015-06-27 20:46+0300\n" +"POT-Creation-Date: 2015-12-19 11:48+0200\n" +"PO-Revision-Date: 2015-12-19 11:49+0200\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language: bg\n" @@ -22,11 +22,11 @@ msgstr "" msgid "Couldn't get list of unmerged files:" msgstr "Списъкът с неслети файлове не може да бъде получен:" -#: gitk:212 gitk:2381 +#: gitk:212 gitk:2399 msgid "Color words" msgstr "Оцветяване на думите" -#: gitk:217 gitk:2381 gitk:8220 gitk:8253 +#: gitk:217 gitk:2399 gitk:8239 gitk:8272 msgid "Markup words" msgstr "Отбелязване на думите" @@ -59,15 +59,15 @@ msgstr "Грешка при изпълнение на „git log“:" msgid "Reading" msgstr "Прочитане" -#: gitk:496 gitk:4525 +#: gitk:496 gitk:4544 msgid "Reading commits..." msgstr "Прочитане на подаванията…" -#: gitk:499 gitk:1637 gitk:4528 +#: gitk:499 gitk:1637 gitk:4547 msgid "No commits selected" msgstr "Не са избрани подавания" -#: gitk:1445 gitk:4045 gitk:12432 +#: gitk:1445 gitk:4064 gitk:12469 msgid "Command line" msgstr "Команден ред" @@ -79,286 +79,294 @@ msgstr "Изходът от „git log“ не може да се анализи msgid "No commit information available" msgstr "Липсва информация за подавания" -#: gitk:1903 gitk:1932 gitk:4315 gitk:9669 gitk:11241 gitk:11521 +#: gitk:1903 gitk:1932 gitk:4334 gitk:9702 gitk:11274 gitk:11554 msgid "OK" msgstr "Добре" -#: gitk:1934 gitk:4317 gitk:9196 gitk:9275 gitk:9391 gitk:9440 gitk:9671 -#: gitk:11242 gitk:11522 +#: gitk:1934 gitk:4336 gitk:9215 gitk:9294 gitk:9424 gitk:9473 gitk:9704 +#: gitk:11275 gitk:11555 msgid "Cancel" msgstr "Отказ" -#: gitk:2069 +#: gitk:2083 msgid "&Update" -msgstr "Обновяване" +msgstr "&Обновяване" -#: gitk:2070 +#: gitk:2084 msgid "&Reload" -msgstr "Презареждане" +msgstr "&Презареждане" -#: gitk:2071 +#: gitk:2085 msgid "Reread re&ferences" -msgstr "Наново прочитане на настройките" +msgstr "&Наново прочитане на настройките" -#: gitk:2072 +#: gitk:2086 msgid "&List references" -msgstr "Изброяване на указателите" +msgstr "&Изброяване на указателите" -#: gitk:2074 +#: gitk:2088 msgid "Start git &gui" -msgstr "Стартиране на „git gui“" +msgstr "&Стартиране на „git gui“" -#: gitk:2076 +#: gitk:2090 msgid "&Quit" -msgstr "Спиране на програмата" +msgstr "&Спиране на програмата" -#: gitk:2068 +#: gitk:2082 msgid "&File" -msgstr "Файл" +msgstr "&Файл" -#: gitk:2080 +#: gitk:2094 msgid "&Preferences" -msgstr "Настройки" +msgstr "&Настройки" -#: gitk:2079 +#: gitk:2093 msgid "&Edit" -msgstr "Редактиране" +msgstr "&Редактиране" -#: gitk:2084 +#: gitk:2098 msgid "&New view..." -msgstr "Нов изглед…" +msgstr "&Нов изглед…" -#: gitk:2085 +#: gitk:2099 msgid "&Edit view..." -msgstr "Редактиране на изгледа…" +msgstr "&Редактиране на изгледа…" -#: gitk:2086 +#: gitk:2100 msgid "&Delete view" -msgstr "Изтриване на изгледа" +msgstr "&Изтриване на изгледа" -#: gitk:2088 gitk:4043 +#: gitk:2102 msgid "&All files" -msgstr "Всички файлове" +msgstr "&Всички файлове" -#: gitk:2083 gitk:4067 +#: gitk:2097 msgid "&View" -msgstr "Изглед" +msgstr "&Изглед" -#: gitk:2093 gitk:2103 gitk:3012 +#: gitk:2107 gitk:2117 msgid "&About gitk" -msgstr "Относно gitk" +msgstr "&Относно gitk" -#: gitk:2094 gitk:2108 +#: gitk:2108 gitk:2122 msgid "&Key bindings" -msgstr "Клавишни комбинации" +msgstr "&Клавишни комбинации" -#: gitk:2092 gitk:2107 +#: gitk:2106 gitk:2121 msgid "&Help" -msgstr "Помощ" +msgstr "Помо&щ" -#: gitk:2185 gitk:8652 +#: gitk:2199 gitk:8671 msgid "SHA1 ID:" msgstr "SHA1:" -#: gitk:2229 +#: gitk:2243 msgid "Row" msgstr "Ред" -#: gitk:2267 +#: gitk:2281 msgid "Find" msgstr "Търсене" -#: gitk:2295 +#: gitk:2309 msgid "commit" msgstr "подаване" -#: gitk:2299 gitk:2301 gitk:4687 gitk:4710 gitk:4734 gitk:6755 gitk:6827 -#: gitk:6912 +#: gitk:2313 gitk:2315 gitk:4706 gitk:4729 gitk:4753 gitk:6774 gitk:6846 +#: gitk:6931 msgid "containing:" msgstr "съдържащо:" -#: gitk:2302 gitk:3526 gitk:3531 gitk:4763 +#: gitk:2316 gitk:3545 gitk:3550 gitk:4782 msgid "touching paths:" msgstr "засягащо пътищата:" -#: gitk:2303 gitk:4777 +#: gitk:2317 gitk:4796 msgid "adding/removing string:" msgstr "добавящо/премахващо низ" -#: gitk:2304 gitk:4779 +#: gitk:2318 gitk:4798 msgid "changing lines matching:" msgstr "променящо редове напасващи:" -#: gitk:2313 gitk:2315 gitk:4766 +#: gitk:2327 gitk:2329 gitk:4785 msgid "Exact" msgstr "Точно" -#: gitk:2315 gitk:4854 gitk:6723 +#: gitk:2329 gitk:4873 gitk:6742 msgid "IgnCase" msgstr "Без регистър" -#: gitk:2315 gitk:4736 gitk:4852 gitk:6719 +#: gitk:2329 gitk:4755 gitk:4871 gitk:6738 msgid "Regexp" msgstr "Рег. израз" -#: gitk:2317 gitk:2318 gitk:4874 gitk:4904 gitk:4911 gitk:6848 gitk:6916 +#: gitk:2331 gitk:2332 gitk:4893 gitk:4923 gitk:4930 gitk:6867 gitk:6935 msgid "All fields" msgstr "Всички полета" -#: gitk:2318 gitk:4871 gitk:4904 gitk:6786 +#: gitk:2332 gitk:4890 gitk:4923 gitk:6805 msgid "Headline" msgstr "Първи ред" -#: gitk:2319 gitk:4871 gitk:6786 gitk:6916 gitk:7389 +#: gitk:2333 gitk:4890 gitk:6805 gitk:6935 gitk:7408 msgid "Comments" msgstr "Коментари" -#: gitk:2319 gitk:4871 gitk:4876 gitk:4911 gitk:6786 gitk:7324 gitk:8830 -#: gitk:8845 +#: gitk:2333 gitk:4890 gitk:4895 gitk:4930 gitk:6805 gitk:7343 gitk:8849 +#: gitk:8864 msgid "Author" msgstr "Автор" -#: gitk:2319 gitk:4871 gitk:6786 gitk:7326 +#: gitk:2333 gitk:4890 gitk:6805 gitk:7345 msgid "Committer" msgstr "Подаващ" -#: gitk:2350 +#: gitk:2367 msgid "Search" msgstr "Търсене" -#: gitk:2358 +#: gitk:2375 msgid "Diff" msgstr "Разлики" -#: gitk:2360 +#: gitk:2377 msgid "Old version" msgstr "Стара версия" -#: gitk:2362 +#: gitk:2379 msgid "New version" msgstr "Нова версия" -#: gitk:2364 +#: gitk:2382 msgid "Lines of context" msgstr "Контекст в редове" -#: gitk:2374 +#: gitk:2392 msgid "Ignore space change" msgstr "Празните знаци без значение" -#: gitk:2378 gitk:2380 gitk:7959 gitk:8206 +#: gitk:2396 gitk:2398 gitk:7978 gitk:8225 msgid "Line diff" msgstr "Поредови разлики" -#: gitk:2445 +#: gitk:2463 msgid "Patch" msgstr "Кръпка" -#: gitk:2447 +#: gitk:2465 msgid "Tree" msgstr "Дърво" -#: gitk:2617 gitk:2637 +#: gitk:2635 gitk:2656 msgid "Diff this -> selected" msgstr "Разлики между това и избраното" -#: gitk:2618 gitk:2638 +#: gitk:2636 gitk:2657 msgid "Diff selected -> this" msgstr "Разлики между избраното и това" -#: gitk:2619 gitk:2639 +#: gitk:2637 gitk:2658 msgid "Make patch" msgstr "Създаване на кръпка" -#: gitk:2620 gitk:9254 +#: gitk:2638 gitk:9273 msgid "Create tag" msgstr "Създаване на етикет" -#: gitk:2621 gitk:9371 +#: gitk:2639 +msgid "Copy commit summary" +msgstr "Копиране на информацията за подаване" + +#: gitk:2640 gitk:9404 msgid "Write commit to file" msgstr "Запазване на подаването във файл" -#: gitk:2622 gitk:9428 +#: gitk:2641 gitk:9461 msgid "Create new branch" msgstr "Създаване на нов клон" -#: gitk:2623 +#: gitk:2642 msgid "Cherry-pick this commit" msgstr "Отбиране на това подаване" -#: gitk:2624 +#: gitk:2643 msgid "Reset HEAD branch to here" msgstr "Привеждане на върха на клона към текущото подаване" -#: gitk:2625 +#: gitk:2644 msgid "Mark this commit" msgstr "Отбелязване на това подаване" -#: gitk:2626 +#: gitk:2645 msgid "Return to mark" msgstr "Връщане към отбелязаното подаване" -#: gitk:2627 +#: gitk:2646 msgid "Find descendant of this and mark" msgstr "Откриване и отбелязване на наследниците" -#: gitk:2628 +#: gitk:2647 msgid "Compare with marked commit" msgstr "Сравнение с отбелязаното подаване" -#: gitk:2629 gitk:2640 +#: gitk:2648 gitk:2659 msgid "Diff this -> marked commit" msgstr "Разлики между това и отбелязаното" -#: gitk:2630 gitk:2641 +#: gitk:2649 gitk:2660 msgid "Diff marked commit -> this" msgstr "Разлики между отбелязаното и това" -#: gitk:2631 +#: gitk:2650 msgid "Revert this commit" msgstr "Отмяна на това подаване" -#: gitk:2647 +#: gitk:2666 msgid "Check out this branch" msgstr "Изтегляне на този клон" -#: gitk:2648 +#: gitk:2667 msgid "Remove this branch" msgstr "Изтриване на този клон" -#: gitk:2649 +#: gitk:2668 msgid "Copy branch name" msgstr "Копиране на името на клона" -#: gitk:2656 +#: gitk:2675 msgid "Highlight this too" msgstr "Отбелязване и на това" -#: gitk:2657 +#: gitk:2676 msgid "Highlight this only" msgstr "Отбелязване само на това" -#: gitk:2658 +#: gitk:2677 msgid "External diff" msgstr "Външна програма за разлики" -#: gitk:2659 +#: gitk:2678 msgid "Blame parent commit" msgstr "Анотиране на родителското подаване" -#: gitk:2660 +#: gitk:2679 msgid "Copy path" msgstr "Копиране на пътя" -#: gitk:2667 +#: gitk:2686 msgid "Show origin of this line" msgstr "Показване на произхода на този ред" -#: gitk:2668 +#: gitk:2687 msgid "Run git gui blame on this line" msgstr "Изпълнение на „git gui blame“ върху този ред" -#: gitk:3014 +#: gitk:3031 +msgid "About gitk" +msgstr "Относно gitk" + +#: gitk:3033 msgid "" "\n" "Gitk - a commit viewer for git\n" @@ -374,316 +382,324 @@ msgstr "" "\n" "Използвайте и разпространявайте при условията на ОПЛ на ГНУ" -#: gitk:3022 gitk:3089 gitk:9857 +#: gitk:3041 gitk:3108 gitk:9890 msgid "Close" msgstr "Затваряне" -#: gitk:3043 +#: gitk:3062 msgid "Gitk key bindings" msgstr "Клавишни комбинации" -#: gitk:3046 +#: gitk:3065 msgid "Gitk key bindings:" msgstr "Клавишни комбинации:" -#: gitk:3048 +#: gitk:3067 #, tcl-format msgid "<%s-Q>\t\tQuit" msgstr "<%s-Q>\t\tСпиране на програмата" -#: gitk:3049 +#: gitk:3068 #, tcl-format msgid "<%s-W>\t\tClose window" msgstr "<%s-W>\t\tЗатваряне на прозореца" -#: gitk:3050 +#: gitk:3069 msgid "<Home>\t\tMove to first commit" msgstr "<Home>\t\tКъм първото подаване" -#: gitk:3051 +#: gitk:3070 msgid "<End>\t\tMove to last commit" msgstr "<End>\t\tКъм последното подаване" -#: gitk:3052 +#: gitk:3071 msgid "<Up>, p, k\tMove up one commit" msgstr "<Up>, p, k\tЕдно подаване нагоре" -#: gitk:3053 +#: gitk:3072 msgid "<Down>, n, j\tMove down one commit" msgstr "<Down>, n, j\tЕдно подаване надолу" -#: gitk:3054 +#: gitk:3073 msgid "<Left>, z, h\tGo back in history list" msgstr "<Left>, z, h\tНазад в историята" -#: gitk:3055 +#: gitk:3074 msgid "<Right>, x, l\tGo forward in history list" msgstr "<Right>, x, l\tНапред в историята" -#: gitk:3056 +#: gitk:3075 #, tcl-format msgid "<%s-n>\tGo to n-th parent of current commit in history list" msgstr "<%s-n>\tКъм n-тия родител на текущото подаване в историята" -#: gitk:3057 +#: gitk:3076 msgid "<PageUp>\tMove up one page in commit list" msgstr "<PageUp>\tСтраница нагоре в списъка с подаванията" -#: gitk:3058 +#: gitk:3077 msgid "<PageDown>\tMove down one page in commit list" msgstr "<PageDown>\tСтраница надолу в списъка с подаванията" -#: gitk:3059 +#: gitk:3078 #, tcl-format msgid "<%s-Home>\tScroll to top of commit list" msgstr "<%s-Home>\tКъм началото на списъка с подаванията" -#: gitk:3060 +#: gitk:3079 #, tcl-format msgid "<%s-End>\tScroll to bottom of commit list" msgstr "<%s-End>\tКъм края на списъка с подаванията" -#: gitk:3061 +#: gitk:3080 #, tcl-format msgid "<%s-Up>\tScroll commit list up one line" msgstr "<%s-Up>\tРед нагоре в списъка с подавания" -#: gitk:3062 +#: gitk:3081 #, tcl-format msgid "<%s-Down>\tScroll commit list down one line" msgstr "<%s-Down>\tРед надолу в списъка с подавания" -#: gitk:3063 +#: gitk:3082 #, tcl-format msgid "<%s-PageUp>\tScroll commit list up one page" msgstr "<%s-PageUp>\tСтраница нагоре в списъка с подавания" -#: gitk:3064 +#: gitk:3083 #, tcl-format msgid "<%s-PageDown>\tScroll commit list down one page" msgstr "<%s-PageDown>\tСтраница надолу в списъка с подавания" -#: gitk:3065 +#: gitk:3084 msgid "<Shift-Up>\tFind backwards (upwards, later commits)" msgstr "<Shift-Up>\tТърсене назад (визуално нагоре, исторически — последващи)" -#: gitk:3066 +#: gitk:3085 msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)" msgstr "" "<Shift-Down>\tТърсене напред (визуално надолу, исторически — предхождащи)" -#: gitk:3067 +#: gitk:3086 msgid "<Delete>, b\tScroll diff view up one page" msgstr "<Delete>, b\tСтраница нагоре в изгледа за разлики" -#: gitk:3068 +#: gitk:3087 msgid "<Backspace>\tScroll diff view up one page" msgstr "<Backspace>\tСтраница надолу в изгледа за разлики" -#: gitk:3069 +#: gitk:3088 msgid "<Space>\t\tScroll diff view down one page" msgstr "<Space>\t\tСтраница надолу в изгледа за разлики" -#: gitk:3070 +#: gitk:3089 msgid "u\t\tScroll diff view up 18 lines" msgstr "u\t\t18 реда нагоре в изгледа за разлики" -#: gitk:3071 +#: gitk:3090 msgid "d\t\tScroll diff view down 18 lines" msgstr "d\t\t18 реда надолу в изгледа за разлики" -#: gitk:3072 +#: gitk:3091 #, tcl-format msgid "<%s-F>\t\tFind" msgstr "<%s-F>\t\tТърсене" -#: gitk:3073 +#: gitk:3092 #, tcl-format msgid "<%s-G>\t\tMove to next find hit" msgstr "<%s-G>\t\tКъм следващата поява" -#: gitk:3074 +#: gitk:3093 msgid "<Return>\tMove to next find hit" msgstr "<Return>\tКъм следващата поява" -#: gitk:3075 +#: gitk:3094 msgid "g\t\tGo to commit" msgstr "g\t\tКъм последното подаване" -#: gitk:3076 +#: gitk:3095 msgid "/\t\tFocus the search box" msgstr "/\t\tФокус върху полето за търсене" -#: gitk:3077 +#: gitk:3096 msgid "?\t\tMove to previous find hit" msgstr "?\t\tКъм предишната поява" -#: gitk:3078 +#: gitk:3097 msgid "f\t\tScroll diff view to next file" msgstr "f\t\tСледващ файл в изгледа за разлики" -#: gitk:3079 +#: gitk:3098 #, tcl-format msgid "<%s-S>\t\tSearch for next hit in diff view" msgstr "<%s-S>\t\tТърсене на следващата поява в изгледа за разлики" -#: gitk:3080 +#: gitk:3099 #, tcl-format msgid "<%s-R>\t\tSearch for previous hit in diff view" msgstr "<%s-R>\t\tТърсене на предишната поява в изгледа за разлики" -#: gitk:3081 +#: gitk:3100 #, tcl-format msgid "<%s-KP+>\tIncrease font size" msgstr "<%s-KP+>\tПо-голям размер на шрифта" -#: gitk:3082 +#: gitk:3101 #, tcl-format msgid "<%s-plus>\tIncrease font size" msgstr "<%s-plus>\tПо-голям размер на шрифта" -#: gitk:3083 +#: gitk:3102 #, tcl-format msgid "<%s-KP->\tDecrease font size" msgstr "<%s-KP->\tПо-малък размер на шрифта" -#: gitk:3084 +#: gitk:3103 #, tcl-format msgid "<%s-minus>\tDecrease font size" msgstr "<%s-minus>\tПо-малък размер на шрифта" -#: gitk:3085 +#: gitk:3104 msgid "<F5>\t\tUpdate" msgstr "<F5>\t\tОбновяване" -#: gitk:3550 gitk:3559 +#: gitk:3569 gitk:3578 #, tcl-format msgid "Error creating temporary directory %s:" msgstr "Грешка при създаването на временната директория „%s“:" -#: gitk:3572 +#: gitk:3591 #, tcl-format msgid "Error getting \"%s\" from %s:" msgstr "Грешка при получаването на „%s“ от %s:" -#: gitk:3635 +#: gitk:3654 msgid "command failed:" msgstr "неуспешно изпълнение на команда:" -#: gitk:3784 +#: gitk:3803 msgid "No such commit" msgstr "Такова подаване няма" -#: gitk:3798 +#: gitk:3817 msgid "git gui blame: command failed:" msgstr "„git gui blame“: неуспешно изпълнение на команда:" -#: gitk:3829 +#: gitk:3848 #, tcl-format msgid "Couldn't read merge head: %s" msgstr "Върхът за сливане не може да бъде прочетен: %s" -#: gitk:3837 +#: gitk:3856 #, tcl-format msgid "Error reading index: %s" msgstr "Грешка при прочитане на индекса: %s" -#: gitk:3862 +#: gitk:3881 #, tcl-format msgid "Couldn't start git blame: %s" msgstr "Командата „git blame“ не може да бъде стартирана: %s" -#: gitk:3865 gitk:6754 +#: gitk:3884 gitk:6773 msgid "Searching" msgstr "Търсене" -#: gitk:3897 +#: gitk:3916 #, tcl-format msgid "Error running git blame: %s" msgstr "Грешка при изпълнението на „git blame“: %s" -#: gitk:3925 +#: gitk:3944 #, tcl-format msgid "That line comes from commit %s, which is not in this view" msgstr "Този ред идва от подаването %s, което не е в изгледа" -#: gitk:3939 +#: gitk:3958 msgid "External diff viewer failed:" msgstr "Неуспешно изпълнение на външната програма за разлики:" -#: gitk:4070 +#: gitk:4062 +msgid "All files" +msgstr "Всички файлове" + +#: gitk:4086 +msgid "View" +msgstr "Изглед" + +#: gitk:4089 msgid "Gitk view definition" msgstr "Дефиниция на изглед в Gitk" -#: gitk:4074 +#: gitk:4093 msgid "Remember this view" msgstr "Запазване на този изглед" -#: gitk:4075 +#: gitk:4094 msgid "References (space separated list):" msgstr "Указатели (списък с разделител интервал):" -#: gitk:4076 +#: gitk:4095 msgid "Branches & tags:" msgstr "Клони и етикети:" -#: gitk:4077 +#: gitk:4096 msgid "All refs" msgstr "Всички указатели" -#: gitk:4078 +#: gitk:4097 msgid "All (local) branches" msgstr "Всички (локални) клони" -#: gitk:4079 +#: gitk:4098 msgid "All tags" msgstr "Всички етикети" -#: gitk:4080 +#: gitk:4099 msgid "All remote-tracking branches" msgstr "Всички следящи клони" -#: gitk:4081 +#: gitk:4100 msgid "Commit Info (regular expressions):" msgstr "Информация за подаване (рег. изр.):" -#: gitk:4082 +#: gitk:4101 msgid "Author:" msgstr "Автор:" -#: gitk:4083 +#: gitk:4102 msgid "Committer:" msgstr "Подал:" -#: gitk:4084 +#: gitk:4103 msgid "Commit Message:" msgstr "Съобщение при подаване:" -#: gitk:4085 +#: gitk:4104 msgid "Matches all Commit Info criteria" msgstr "Съвпадение по всички характеристики на подаването" -#: gitk:4086 +#: gitk:4105 msgid "Matches no Commit Info criteria" msgstr "Не съвпада по никоя от характеристиките на подаването" -#: gitk:4087 +#: gitk:4106 msgid "Changes to Files:" msgstr "Промени по файловете:" -#: gitk:4088 +#: gitk:4107 msgid "Fixed String" msgstr "Дословен низ" -#: gitk:4089 +#: gitk:4108 msgid "Regular Expression" msgstr "Регулярен израз" -#: gitk:4090 +#: gitk:4109 msgid "Search string:" msgstr "Низ за търсене:" -#: gitk:4091 +#: gitk:4110 msgid "" "Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 " "15:27:38\"):" @@ -691,204 +707,204 @@ msgstr "" "Дата на подаване („2 weeks ago“ (преди 2 седмици), „2009-03-17 15:27:38“, " "„March 17, 2009 15:27:38“):" -#: gitk:4092 +#: gitk:4111 msgid "Since:" msgstr "От:" -#: gitk:4093 +#: gitk:4112 msgid "Until:" msgstr "До:" -#: gitk:4094 +#: gitk:4113 msgid "Limit and/or skip a number of revisions (positive integer):" msgstr "" "Ограничаване и/или прескачане на определен брой версии (неотрицателно цяло " "число):" -#: gitk:4095 +#: gitk:4114 msgid "Number to show:" msgstr "Брой показани:" -#: gitk:4096 +#: gitk:4115 msgid "Number to skip:" msgstr "Брой прескочени:" -#: gitk:4097 +#: gitk:4116 msgid "Miscellaneous options:" msgstr "Разни:" -#: gitk:4098 +#: gitk:4117 msgid "Strictly sort by date" msgstr "Подреждане по дата" -#: gitk:4099 +#: gitk:4118 msgid "Mark branch sides" msgstr "Отбелязване на страните по клона" -#: gitk:4100 +#: gitk:4119 msgid "Limit to first parent" msgstr "Само първия родител" -#: gitk:4101 +#: gitk:4120 msgid "Simple history" msgstr "Опростена история" -#: gitk:4102 +#: gitk:4121 msgid "Additional arguments to git log:" msgstr "Допълнителни аргументи към „git log“:" -#: gitk:4103 +#: gitk:4122 msgid "Enter files and directories to include, one per line:" msgstr "Въведете файловете и директориите за включване, по елемент на ред" -#: gitk:4104 +#: gitk:4123 msgid "Command to generate more commits to include:" msgstr "" "Команда за генерирането на допълнителни подавания, които да бъдат включени:" -#: gitk:4228 +#: gitk:4247 msgid "Gitk: edit view" msgstr "Gitk: редактиране на изглед" -#: gitk:4236 +#: gitk:4255 msgid "-- criteria for selecting revisions" msgstr "— критерии за избор на версии" -#: gitk:4241 +#: gitk:4260 msgid "View Name" msgstr "Име на изглед" -#: gitk:4316 +#: gitk:4335 msgid "Apply (F5)" msgstr "Прилагане (F5)" -#: gitk:4354 +#: gitk:4373 msgid "Error in commit selection arguments:" msgstr "Грешка в аргументите за избор на подавания:" -#: gitk:4409 gitk:4462 gitk:4924 gitk:4938 gitk:6208 gitk:12373 gitk:12374 +#: gitk:4428 gitk:4481 gitk:4943 gitk:4957 gitk:6227 gitk:12410 gitk:12411 msgid "None" msgstr "Няма" -#: gitk:5021 gitk:5026 +#: gitk:5040 gitk:5045 msgid "Descendant" msgstr "Наследник" -#: gitk:5022 +#: gitk:5041 msgid "Not descendant" msgstr "Не е наследник" -#: gitk:5029 gitk:5034 +#: gitk:5048 gitk:5053 msgid "Ancestor" msgstr "Предшественик" -#: gitk:5030 +#: gitk:5049 msgid "Not ancestor" msgstr "Не е предшественик" -#: gitk:5324 +#: gitk:5343 msgid "Local changes checked in to index but not committed" msgstr "Локални промени добавени към индекса, но неподадени" -#: gitk:5360 +#: gitk:5379 msgid "Local uncommitted changes, not checked in to index" msgstr "Локални промени извън индекса" -#: gitk:7134 +#: gitk:7153 msgid "and many more" msgstr "и още много" -#: gitk:7137 +#: gitk:7156 msgid "many" msgstr "много" -#: gitk:7328 +#: gitk:7347 msgid "Tags:" msgstr "Етикети:" -#: gitk:7345 gitk:7351 gitk:8825 +#: gitk:7364 gitk:7370 gitk:8844 msgid "Parent" msgstr "Родител" -#: gitk:7356 +#: gitk:7375 msgid "Child" msgstr "Дете" -#: gitk:7365 +#: gitk:7384 msgid "Branch" msgstr "Клон" -#: gitk:7368 +#: gitk:7387 msgid "Follows" msgstr "Следва" -#: gitk:7371 +#: gitk:7390 msgid "Precedes" msgstr "Предшества" -#: gitk:7966 +#: gitk:7985 #, tcl-format msgid "Error getting diffs: %s" msgstr "Грешка при получаването на разликите: %s" -#: gitk:8650 +#: gitk:8669 msgid "Goto:" msgstr "Към ред:" -#: gitk:8671 +#: gitk:8690 #, tcl-format msgid "Short SHA1 id %s is ambiguous" msgstr "Съкратената сума по SHA1 %s не е еднозначна" -#: gitk:8678 +#: gitk:8697 #, tcl-format msgid "Revision %s is not known" msgstr "Непозната версия %s" -#: gitk:8688 +#: gitk:8707 #, tcl-format msgid "SHA1 id %s is not known" msgstr "Непозната сума по SHA1 %s" -#: gitk:8690 +#: gitk:8709 #, tcl-format msgid "Revision %s is not in the current view" msgstr "Версия %s не е в текущия изглед" -#: gitk:8832 gitk:8847 +#: gitk:8851 gitk:8866 msgid "Date" msgstr "Дата" -#: gitk:8835 +#: gitk:8854 msgid "Children" msgstr "Деца" -#: gitk:8898 +#: gitk:8917 #, tcl-format msgid "Reset %s branch to here" msgstr "Зануляване на клона „%s“ към текущото подаване" -#: gitk:8900 +#: gitk:8919 msgid "Detached head: can't reset" msgstr "Несвързан връх: невъзможно зануляване" -#: gitk:9005 gitk:9011 +#: gitk:9024 gitk:9030 msgid "Skipping merge commit " msgstr "Пропускане на подаването на сливането" -#: gitk:9020 gitk:9025 +#: gitk:9039 gitk:9044 msgid "Error getting patch ID for " msgstr "Грешка при получаването на идентификатора на " -#: gitk:9021 gitk:9026 +#: gitk:9040 gitk:9045 msgid " - stopping\n" msgstr " — спиране\n" -#: gitk:9031 gitk:9034 gitk:9042 gitk:9056 gitk:9065 +#: gitk:9050 gitk:9053 gitk:9061 gitk:9075 gitk:9084 msgid "Commit " msgstr "Подаване" -#: gitk:9035 +#: gitk:9054 msgid "" " is the same patch as\n" " " @@ -896,7 +912,7 @@ msgstr "" " е същата кръпка като\n" " " -#: gitk:9043 +#: gitk:9062 msgid "" " differs from\n" " " @@ -904,7 +920,7 @@ msgstr "" " се различава от\n" " " -#: gitk:9045 +#: gitk:9064 msgid "" "Diff of commits:\n" "\n" @@ -912,130 +928,130 @@ msgstr "" "Разлика между подаванията:\n" "\n" -#: gitk:9057 gitk:9066 +#: gitk:9076 gitk:9085 #, tcl-format msgid " has %s children - stopping\n" msgstr " има %s деца — спиране\n" -#: gitk:9085 +#: gitk:9104 #, tcl-format msgid "Error writing commit to file: %s" msgstr "Грешка при запазването на подаването във файл: %s" -#: gitk:9091 +#: gitk:9110 #, tcl-format msgid "Error diffing commits: %s" msgstr "Грешка при изчисляването на разликите между подаванията: %s" -#: gitk:9137 +#: gitk:9156 msgid "Top" msgstr "Най-горе" -#: gitk:9138 +#: gitk:9157 msgid "From" msgstr "От" -#: gitk:9143 +#: gitk:9162 msgid "To" msgstr "До" -#: gitk:9167 +#: gitk:9186 msgid "Generate patch" msgstr "Генериране на кръпка" -#: gitk:9169 +#: gitk:9188 msgid "From:" msgstr "От:" -#: gitk:9178 +#: gitk:9197 msgid "To:" msgstr "До:" -#: gitk:9187 +#: gitk:9206 msgid "Reverse" msgstr "Обръщане" -#: gitk:9189 gitk:9385 +#: gitk:9208 gitk:9418 msgid "Output file:" msgstr "Запазване във файла:" -#: gitk:9195 +#: gitk:9214 msgid "Generate" msgstr "Генериране" -#: gitk:9233 +#: gitk:9252 msgid "Error creating patch:" msgstr "Грешка при създаването на кръпка:" -#: gitk:9256 gitk:9373 gitk:9430 +#: gitk:9275 gitk:9406 gitk:9463 msgid "ID:" msgstr "Идентификатор:" -#: gitk:9265 +#: gitk:9284 msgid "Tag name:" msgstr "Име на етикет:" -#: gitk:9268 +#: gitk:9287 msgid "Tag message is optional" msgstr "Съобщението за етикет е незадължително" -#: gitk:9270 +#: gitk:9289 msgid "Tag message:" msgstr "Съобщение за етикет:" -#: gitk:9274 gitk:9439 +#: gitk:9293 gitk:9472 msgid "Create" msgstr "Създаване" -#: gitk:9292 +#: gitk:9311 msgid "No tag name specified" msgstr "Липсва име на етикет" -#: gitk:9296 +#: gitk:9315 #, tcl-format msgid "Tag \"%s\" already exists" msgstr "Етикетът „%s“ вече съществува" -#: gitk:9306 +#: gitk:9325 msgid "Error creating tag:" msgstr "Грешка при създаването на етикет:" -#: gitk:9382 +#: gitk:9415 msgid "Command:" msgstr "Команда:" -#: gitk:9390 +#: gitk:9423 msgid "Write" msgstr "Запазване" -#: gitk:9408 +#: gitk:9441 msgid "Error writing commit:" msgstr "Грешка при запазването на подаването:" -#: gitk:9435 +#: gitk:9468 msgid "Name:" msgstr "Име:" -#: gitk:9458 +#: gitk:9491 msgid "Please specify a name for the new branch" msgstr "Укажете име за новия клон" -#: gitk:9463 +#: gitk:9496 #, tcl-format msgid "Branch '%s' already exists. Overwrite?" msgstr "Клонът „%s“ вече съществува. Да бъде ли презаписан?" -#: gitk:9530 +#: gitk:9563 #, tcl-format msgid "Commit %s is already included in branch %s -- really re-apply it?" msgstr "" "Подаването „%s“ вече е включено в клона „%s“ — да бъде ли приложено отново?" -#: gitk:9535 +#: gitk:9568 msgid "Cherry-picking" msgstr "Отбиране" -#: gitk:9544 +#: gitk:9577 #, tcl-format msgid "" "Cherry-pick failed because of local changes to file '%s'.\n" @@ -1044,7 +1060,7 @@ msgstr "" "Неуспешно отбиране, защото във файла „%s“ има локални промени.\n" "Подайте, занулете или ги скатайте и пробвайте отново." -#: gitk:9550 +#: gitk:9583 msgid "" "Cherry-pick failed because of merge conflict.\n" "Do you wish to run git citool to resolve it?" @@ -1052,20 +1068,20 @@ msgstr "" "Неуспешно отбиране поради конфликти при сливане.\n" "Искате ли да ги коригирате чрез „git citool“?" -#: gitk:9566 gitk:9624 +#: gitk:9599 gitk:9657 msgid "No changes committed" msgstr "Не са подадени промени" -#: gitk:9593 +#: gitk:9626 #, tcl-format msgid "Commit %s is not included in branch %s -- really revert it?" msgstr "Подаването „%s“ не е включено в клона „%s“. Да бъде ли отменено?" -#: gitk:9598 +#: gitk:9631 msgid "Reverting" msgstr "Отмяна" -#: gitk:9606 +#: gitk:9639 #, tcl-format msgid "" "Revert failed because of local changes to the following files:%s Please " @@ -1074,7 +1090,7 @@ msgstr "" "Неуспешна отмяна, защото във файла „%s“ има локални промени.\n" "Подайте, занулете или ги скатайте и пробвайте отново.<" -#: gitk:9610 +#: gitk:9643 msgid "" "Revert failed because of merge conflict.\n" " Do you wish to run git citool to resolve it?" @@ -1082,28 +1098,28 @@ msgstr "" "Неуспешно отмяна поради конфликти при сливане.\n" "Искате ли да ги коригирате чрез „git citool“?" -#: gitk:9653 +#: gitk:9686 msgid "Confirm reset" msgstr "Потвърждаване на зануляването" -#: gitk:9655 +#: gitk:9688 #, tcl-format msgid "Reset branch %s to %s?" msgstr "Да се занули ли клонът „%s“ към „%s“?" -#: gitk:9657 +#: gitk:9690 msgid "Reset type:" msgstr "Вид зануляване:" -#: gitk:9660 +#: gitk:9693 msgid "Soft: Leave working tree and index untouched" msgstr "Слабо: работното дърво и индекса остават същите" -#: gitk:9663 +#: gitk:9696 msgid "Mixed: Leave working tree untouched, reset index" msgstr "Смесено: работното дърво остава същото, индексът се занулява" -#: gitk:9666 +#: gitk:9699 msgid "" "Hard: Reset working tree and index\n" "(discard ALL local changes)" @@ -1111,19 +1127,19 @@ msgstr "" "Силно: зануляване и на работното дърво, и на индекса\n" "(*ВСИЧКИ* локални промени ще бъдат безвъзвратно загубени)" -#: gitk:9683 +#: gitk:9716 msgid "Resetting" msgstr "Зануляване" -#: gitk:9743 +#: gitk:9776 msgid "Checking out" msgstr "Изтегляне" -#: gitk:9796 +#: gitk:9829 msgid "Cannot delete the currently checked-out branch" msgstr "Текущо изтегленият клон не може да бъде изтрит" -#: gitk:9802 +#: gitk:9835 #, tcl-format msgid "" "The commits on branch %s aren't on any other branch.\n" @@ -1132,16 +1148,16 @@ msgstr "" "Подаванията на клона „%s“ не са на никой друг клон.\n" "Наистина ли да се изтрие клонът „%s“?" -#: gitk:9833 +#: gitk:9866 #, tcl-format msgid "Tags and heads: %s" msgstr "Етикети и върхове: %s" -#: gitk:9850 +#: gitk:9883 msgid "Filter" msgstr "Филтриране" -#: gitk:10146 +#: gitk:10179 msgid "" "Error reading commit topology information; branch and preceding/following " "tag information will be incomplete." @@ -1149,201 +1165,201 @@ msgstr "" "Грешка при прочитането на топологията на подаванията. Информацията за клона " "и предшестващите/следващите етикети ще е непълна." -#: gitk:11123 +#: gitk:11156 msgid "Tag" msgstr "Етикет" -#: gitk:11127 +#: gitk:11160 msgid "Id" msgstr "Идентификатор" -#: gitk:11210 +#: gitk:11243 msgid "Gitk font chooser" msgstr "Избор на шрифт за Gitk" -#: gitk:11227 +#: gitk:11260 msgid "B" msgstr "Ч" -#: gitk:11230 +#: gitk:11263 msgid "I" msgstr "К" -#: gitk:11348 +#: gitk:11381 msgid "Commit list display options" msgstr "Настройки на списъка с подавания" -#: gitk:11351 +#: gitk:11384 msgid "Maximum graph width (lines)" msgstr "Максимална широчина на графа (в редове)" -#: gitk:11355 +#: gitk:11388 #, no-tcl-format msgid "Maximum graph width (% of pane)" msgstr "Максимална широчина на графа (% от панела)" -#: gitk:11358 +#: gitk:11391 msgid "Show local changes" msgstr "Показване на локалните промени" -#: gitk:11361 +#: gitk:11394 msgid "Auto-select SHA1 (length)" msgstr "Автоматично избиране на SHA1 (дължина)" -#: gitk:11365 +#: gitk:11398 msgid "Hide remote refs" msgstr "Скриване на отдалечените указатели" -#: gitk:11369 +#: gitk:11402 msgid "Diff display options" msgstr "Настройки на показването на разликите" -#: gitk:11371 +#: gitk:11404 msgid "Tab spacing" msgstr "Широчина на табулатора" -#: gitk:11374 +#: gitk:11407 msgid "Display nearby tags/heads" msgstr "Извеждане на близките етикети и върхове" -#: gitk:11377 +#: gitk:11410 msgid "Maximum # tags/heads to show" msgstr "Максимален брой етикети/върхове за показване" -#: gitk:11380 +#: gitk:11413 msgid "Limit diffs to listed paths" msgstr "Разлика само в избраните пътища" -#: gitk:11383 +#: gitk:11416 msgid "Support per-file encodings" msgstr "Поддръжка на различни кодирания за всеки файл" -#: gitk:11389 gitk:11536 +#: gitk:11422 gitk:11569 msgid "External diff tool" msgstr "Външен инструмент за разлики" -#: gitk:11390 +#: gitk:11423 msgid "Choose..." msgstr "Избор…" -#: gitk:11395 +#: gitk:11428 msgid "General options" msgstr "Общи настройки" -#: gitk:11398 +#: gitk:11431 msgid "Use themed widgets" msgstr "Използване на тема за графичните обекти" -#: gitk:11400 +#: gitk:11433 msgid "(change requires restart)" msgstr "(промяната изисква рестартиране на Gitk)" -#: gitk:11402 +#: gitk:11435 msgid "(currently unavailable)" msgstr "(в момента недостъпно)" -#: gitk:11413 +#: gitk:11446 msgid "Colors: press to choose" msgstr "Цветове: избира се с натискане" -#: gitk:11416 +#: gitk:11449 msgid "Interface" msgstr "Интерфейс" -#: gitk:11417 +#: gitk:11450 msgid "interface" msgstr "интерфейс" -#: gitk:11420 +#: gitk:11453 msgid "Background" msgstr "Фон" -#: gitk:11421 gitk:11451 +#: gitk:11454 gitk:11484 msgid "background" msgstr "фон" -#: gitk:11424 +#: gitk:11457 msgid "Foreground" msgstr "Знаци" -#: gitk:11425 +#: gitk:11458 msgid "foreground" msgstr "знаци" -#: gitk:11428 +#: gitk:11461 msgid "Diff: old lines" msgstr "Разлика: стари редове" -#: gitk:11429 +#: gitk:11462 msgid "diff old lines" msgstr "разлика, стари редове" -#: gitk:11433 +#: gitk:11466 msgid "Diff: new lines" msgstr "Разлика: нови редове" -#: gitk:11434 +#: gitk:11467 msgid "diff new lines" msgstr "разлика, нови редове" -#: gitk:11438 +#: gitk:11471 msgid "Diff: hunk header" msgstr "Разлика: начало на парче" -#: gitk:11440 +#: gitk:11473 msgid "diff hunk header" msgstr "разлика, начало на парче" -#: gitk:11444 +#: gitk:11477 msgid "Marked line bg" msgstr "Фон на отбелязан ред" -#: gitk:11446 +#: gitk:11479 msgid "marked line background" msgstr "фон на отбелязан ред" -#: gitk:11450 +#: gitk:11483 msgid "Select bg" msgstr "Избор на фон" -#: gitk:11459 +#: gitk:11492 msgid "Fonts: press to choose" msgstr "Шрифтове: избира се с натискане" -#: gitk:11461 +#: gitk:11494 msgid "Main font" msgstr "Основен шрифт" -#: gitk:11462 +#: gitk:11495 msgid "Diff display font" msgstr "Шрифт за разликите" -#: gitk:11463 +#: gitk:11496 msgid "User interface font" msgstr "Шрифт на интерфейса" -#: gitk:11485 +#: gitk:11518 msgid "Gitk preferences" msgstr "Настройки на Gitk" -#: gitk:11494 +#: gitk:11527 msgid "General" msgstr "Общи" -#: gitk:11495 +#: gitk:11528 msgid "Colors" msgstr "Цветове" -#: gitk:11496 +#: gitk:11529 msgid "Fonts" msgstr "Шрифтове" -#: gitk:11546 +#: gitk:11579 #, tcl-format msgid "Gitk: choose color for %s" msgstr "Gitk: избор на цвят на „%s“" -#: gitk:12059 +#: gitk:12092 msgid "" "Sorry, gitk cannot run with this version of Tcl/Tk.\n" " Gitk requires at least Tcl/Tk 8.4." @@ -1351,15 +1367,15 @@ msgstr "" "Тази версия на Tcl/Tk не се поддържа от Gitk.\n" " Необходима ви е поне Tcl/Tk 8.4." -#: gitk:12269 +#: gitk:12302 msgid "Cannot find a git repository here." msgstr "Тук липсва хранилище на Git." -#: gitk:12316 +#: gitk:12349 #, tcl-format msgid "Ambiguous argument '%s': both revision and filename" msgstr "Нееднозначен аргумент „%s“: има и такава версия, и такъв файл" -#: gitk:12328 +#: gitk:12361 msgid "Bad arguments to gitk:" msgstr "Неправилни аргументи на gitk:" diff --git a/gitk-git/po/de.po b/gitk-git/po/de.po index d9ba4052e..bde749ed8 100644 --- a/gitk-git/po/de.po +++ b/gitk-git/po/de.po @@ -23,11 +23,11 @@ msgstr "Liste der nicht zusammengeführten Dateien nicht gefunden:" #: gitk:212 gitk:2381 msgid "Color words" -msgstr "" +msgstr "Wörter einfärben" #: gitk:217 gitk:2381 gitk:8220 gitk:8253 msgid "Markup words" -msgstr "" +msgstr "Wörter kennzeichnen" #: gitk:324 msgid "Error parsing revisions:" @@ -187,7 +187,7 @@ msgstr "Änderungen:" #: gitk:2304 gitk:4779 msgid "changing lines matching:" -msgstr "" +msgstr "Geänderte Zeilen entsprechen:" #: gitk:2313 gitk:2315 gitk:4766 msgid "Exact" @@ -248,7 +248,7 @@ msgstr "Leerzeichenänderungen ignorieren" #: gitk:2378 gitk:2380 gitk:7959 gitk:8206 msgid "Line diff" -msgstr "" +msgstr "Zeilenunterschied" #: gitk:2445 msgid "Patch" @@ -307,19 +307,16 @@ msgid "Compare with marked commit" msgstr "Mit Lesezeichen vergleichen" #: gitk:2629 gitk:2640 -#, fuzzy msgid "Diff this -> marked commit" -msgstr "Vergleich: diese -> gewählte" +msgstr "Vergleich: diese -> gewählte Version" #: gitk:2630 gitk:2641 -#, fuzzy msgid "Diff marked commit -> this" -msgstr "Vergleich: gewählte -> diese" +msgstr "Vergleich: gewählte -> diese Version" #: gitk:2631 -#, fuzzy msgid "Revert this commit" -msgstr "Lesezeichen setzen" +msgstr "Version umkehren" #: gitk:2647 msgid "Check out this branch" @@ -331,7 +328,7 @@ msgstr "Zweig löschen" #: gitk:2649 msgid "Copy branch name" -msgstr "" +msgstr "Zweigname kopieren" #: gitk:2656 msgid "Highlight this too" @@ -351,7 +348,7 @@ msgstr "Annotieren der Elternversion" #: gitk:2660 msgid "Copy path" -msgstr "" +msgstr "Pfad kopieren" #: gitk:2667 msgid "Show origin of this line" @@ -362,7 +359,6 @@ msgid "Run git gui blame on this line" msgstr "Diese Zeile annotieren (»git gui blame«)" #: gitk:3014 -#, fuzzy msgid "" "\n" "Gitk - a commit viewer for git\n" @@ -374,7 +370,7 @@ msgstr "" "\n" "Gitk - eine Visualisierung der Git-Historie\n" "\n" -"Copyright \\u00a9 2005-2010 Paul Mackerras\n" +"Copyright \\u00a9 2005-2014 Paul Mackerras\n" "\n" "Benutzung und Weiterverbreitung gemäß den Bedingungen der GNU General Public " "License" @@ -397,9 +393,9 @@ msgid "<%s-Q>\t\tQuit" msgstr "<%s-Q>\t\tBeenden" #: gitk:3049 -#, fuzzy, tcl-format +#, tcl-format msgid "<%s-W>\t\tClose window" -msgstr "<%s-F>\t\tSuchen" +msgstr "<%s-F>\t\tFenster schließen" #: gitk:3050 msgid "<Home>\t\tMove to first commit" @@ -410,19 +406,16 @@ msgid "<End>\t\tMove to last commit" msgstr "<Ende>\t\tZur ältesten Version springen" #: gitk:3052 -#, fuzzy msgid "<Up>, p, k\tMove up one commit" -msgstr "<Hoch>, p, i\tNächste neuere Version" +msgstr "<Hoch>, p, k\tNächste neuere Version" #: gitk:3053 -#, fuzzy msgid "<Down>, n, j\tMove down one commit" -msgstr "<Runter>, n, k\tNächste ältere Version" +msgstr "<Runter>, n, j\tNächste ältere Version" #: gitk:3054 -#, fuzzy msgid "<Left>, z, h\tGo back in history list" -msgstr "<Links>, z, j\tEine Version zurückgehen" +msgstr "<Links>, z, h\tEine Version zurückgehen" #: gitk:3055 msgid "<Right>, x, l\tGo forward in history list" @@ -431,7 +424,7 @@ msgstr "<Rechts>, x, l\tEine Version weitergehen" #: gitk:3056 #, tcl-format msgid "<%s-n>\tGo to n-th parent of current commit in history list" -msgstr "" +msgstr "<%s-n>\tZu n-ter Elternversion in Versionshistorie springen" #: gitk:3057 msgid "<PageUp>\tMove up one page in commit list" @@ -514,9 +507,8 @@ msgid "<Return>\tMove to next find hit" msgstr "<Eingabetaste>\tWeitersuchen" #: gitk:3075 -#, fuzzy msgid "g\t\tGo to commit" -msgstr "<Ende>\t\tZur ältesten Version springen" +msgstr "g\t\tZu Version springen" #: gitk:3076 msgid "/\t\tFocus the search box" @@ -673,9 +665,8 @@ msgid "Matches all Commit Info criteria" msgstr "Alle Versionsinformationen-Kriterien erfüllen" #: gitk:4086 -#, fuzzy msgid "Matches no Commit Info criteria" -msgstr "Alle Versionsinformationen-Kriterien erfüllen" +msgstr "keine Versionsinformationen-Kriterien erfüllen" #: gitk:4087 msgid "Changes to Files:" @@ -802,7 +793,7 @@ msgstr "Lokale Änderungen, nicht bereitgestellt" #: gitk:7134 msgid "and many more" -msgstr "" +msgstr "und weitere" #: gitk:7137 msgid "many" @@ -1066,34 +1057,31 @@ msgid "No changes committed" msgstr "Keine Änderungen eingetragen" #: gitk:9593 -#, fuzzy, tcl-format +#, tcl-format msgid "Commit %s is not included in branch %s -- really revert it?" msgstr "" -"Version »%s« ist bereits im Zweig »%s« enthalten -- trotzdem erneut " -"eintragen?" +"Version »%s« ist nicht im Zweig »%s« enthalten -- trotzdem umkehren?" #: gitk:9598 -#, fuzzy msgid "Reverting" -msgstr "Zurücksetzen" +msgstr "Umkehren" #: 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 "" -"Pflücken fehlgeschlagen, da noch lokale Änderungen in Datei »%s«\n" +"Umkehren fehlgeschlagen, da noch lokale Änderungen in Datei »%s«\n" "vorliegen. Bitte diese Änderungen eintragen, zurücksetzen oder\n" "zwischenspeichern (»git stash«) und dann erneut versuchen." #: gitk:9610 -#, fuzzy msgid "" "Revert failed because of merge conflict.\n" " Do you wish to run git citool to resolve it?" msgstr "" -"Pflücken fehlgeschlagen, da ein Zusammenführungs-Konflikt aufgetreten\n" +"Umkehren fehlgeschlagen, da ein Zusammenführungs-Konflikt aufgetreten\n" "ist. Soll das Zusammenführungs-Werkzeug (»git citool«) aufgerufen\n" "werden, um diesen Konflikt aufzulösen?" @@ -1206,9 +1194,8 @@ msgid "Show local changes" msgstr "Lokale Änderungen anzeigen" #: gitk:11361 -#, fuzzy msgid "Auto-select SHA1 (length)" -msgstr "SHA1-Hashwert automatisch auswählen" +msgstr "SHA1-Hashwert (Länge) automatisch auswählen" #: gitk:11365 msgid "Hide remote refs" @@ -1223,13 +1210,12 @@ msgid "Tab spacing" msgstr "Tabulatorbreite" #: gitk:11374 -#, fuzzy msgid "Display nearby tags/heads" -msgstr "Naheliegende Markierungen anzeigen" +msgstr "Naheliegende Markierungen/Zweigspitzen anzeigen" #: gitk:11377 msgid "Maximum # tags/heads to show" -msgstr "" +msgstr "Maximale Anzahl anzuzeigender Markierungen/Zweigspitzen" #: gitk:11380 msgid "Limit diffs to listed paths" @@ -1348,17 +1334,16 @@ msgid "Gitk preferences" msgstr "Gitk-Einstellungen" #: gitk:11494 -#, fuzzy msgid "General" -msgstr "Erzeugen" +msgstr "Allgemein" #: gitk:11495 msgid "Colors" -msgstr "" +msgstr "Farben" #: gitk:11496 msgid "Fonts" -msgstr "" +msgstr "Schriftarten" #: gitk:11546 #, tcl-format @@ -1370,6 +1355,8 @@ msgid "" "Sorry, gitk cannot run with this version of Tcl/Tk.\n" " Gitk requires at least Tcl/Tk 8.4." msgstr "" +"Entschuldigung, gitk kann nicht mit dieser Tcl/Tk Version ausgeführt werden.\n" +" Gitk erfordert mindestens Tcl/Tk 8.4." #: gitk:12269 msgid "Cannot find a git repository here." diff --git a/gitk-git/po/fr.po b/gitk-git/po/fr.po index 80f72fb45..c44f994fa 100644 --- a/gitk-git/po/fr.po +++ b/gitk-git/po/fr.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the gitk package. # Translators: # Emmanuel Trillaud <etrillaud@gmail.com> -# +# Jean-Noël Avila <jn.avila@free.fr> msgid "" msgstr "" "Project-Id-Version: gitk\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-05-17 14:32+1000\n" -"PO-Revision-Date: 2009-11-19 22:13+0100\n" -"Last-Translator: Emmanuel Trillaud <etrillaud@gmail.com>\n" +"POT-Creation-Date: 2016-01-22 22:04+0100\n" +"PO-Revision-Date: 2016-01-22 23:28+0100\n" +"Last-Translator: Jean-Noël Avila <jn.avila@free.fr>\n" "Language-Team: git@vger.kernel.org\n" "Language: \n" "MIME-Version: 1.0\n" @@ -23,13 +23,13 @@ msgstr "" msgid "Couldn't get list of unmerged files:" msgstr "Impossible de récupérer la liste des fichiers non fusionnés :" -#: gitk:212 gitk:2381 +#: gitk:212 gitk:2399 msgid "Color words" -msgstr "" +msgstr "Colorier les mots différents" -#: gitk:217 gitk:2381 gitk:8220 gitk:8253 +#: gitk:217 gitk:2399 gitk:8239 gitk:8272 msgid "Markup words" -msgstr "" +msgstr "Marquer les mots différents" #: gitk:324 msgid "Error parsing revisions:" @@ -47,13 +47,10 @@ msgstr "" # FIXME : améliorer la traduction de 'file limite' #: gitk:396 -#, fuzzy msgid "" "No files selected: --merge specified but no unmerged files are within file " "limit." -msgstr "" -"Aucun fichier sélectionné : --merge précisé mais aucun fichier non fusionné " -"n'est dans la limite des fichiers." +msgstr "Aucun fichier sélectionné : --merge précisé mais aucun fichier non fusionné n'est dans la limite des fichiers." #: gitk:418 gitk:566 msgid "Error executing git log:" @@ -63,15 +60,15 @@ msgstr "Erreur à l'exécution de git log :" msgid "Reading" msgstr "Lecture en cours" -#: gitk:496 gitk:4525 +#: gitk:496 gitk:4544 msgid "Reading commits..." msgstr "Lecture des commits..." -#: gitk:499 gitk:1637 gitk:4528 +#: gitk:499 gitk:1637 gitk:4547 msgid "No commits selected" msgstr "Aucun commit sélectionné" -#: gitk:1445 gitk:4045 gitk:12432 +#: gitk:1445 gitk:4064 gitk:12469 msgid "Command line" msgstr "Ligne de commande" @@ -83,290 +80,294 @@ msgstr "Impossible de lire la sortie de git log :" msgid "No commit information available" msgstr "Aucune information disponible sur le commit" -#: gitk:1903 gitk:1932 gitk:4315 gitk:9669 gitk:11241 gitk:11521 +#: gitk:1903 gitk:1932 gitk:4334 gitk:9702 gitk:11274 gitk:11554 msgid "OK" msgstr "OK" -#: gitk:1934 gitk:4317 gitk:9196 gitk:9275 gitk:9391 gitk:9440 gitk:9671 -#: gitk:11242 gitk:11522 +#: gitk:1934 gitk:4336 gitk:9215 gitk:9294 gitk:9424 gitk:9473 gitk:9704 +#: gitk:11275 gitk:11555 msgid "Cancel" msgstr "Annuler" -#: gitk:2069 +#: gitk:2083 msgid "&Update" msgstr "Mise à jour" -#: gitk:2070 +#: gitk:2084 msgid "&Reload" -msgstr "Recharger" +msgstr "&Recharger" -#: gitk:2071 +#: gitk:2085 msgid "Reread re&ferences" -msgstr "Relire les références" +msgstr "Relire les ré&férences" -#: gitk:2072 +#: gitk:2086 msgid "&List references" -msgstr "Lister les références" +msgstr "&Lister les références" -#: gitk:2074 +#: gitk:2088 msgid "Start git &gui" -msgstr "Démarrer git gui" +msgstr "Démarrer git &gui" -#: gitk:2076 +#: gitk:2090 msgid "&Quit" -msgstr "Quitter" +msgstr "&Quitter" -#: gitk:2068 +#: gitk:2082 msgid "&File" -msgstr "Fichier" +msgstr "&Fichier" -#: gitk:2080 +#: gitk:2094 msgid "&Preferences" msgstr "Préférences" -#: gitk:2079 +#: gitk:2093 msgid "&Edit" -msgstr "Éditer" +msgstr "&Éditer" -#: gitk:2084 +#: gitk:2098 msgid "&New view..." -msgstr "Nouvelle vue..." +msgstr "&Nouvelle vue..." -#: gitk:2085 +#: gitk:2099 msgid "&Edit view..." -msgstr "Éditer la vue..." +msgstr "&Éditer la vue..." -#: gitk:2086 +#: gitk:2100 msgid "&Delete view" msgstr "Supprimer la vue" -#: gitk:2088 gitk:4043 +#: gitk:2102 msgid "&All files" msgstr "Tous les fichiers" -#: gitk:2083 gitk:4067 +#: gitk:2097 msgid "&View" -msgstr "Vue" +msgstr "&Vue" -#: gitk:2093 gitk:2103 gitk:3012 +#: gitk:2107 gitk:2117 msgid "&About gitk" msgstr "À propos de gitk" -#: gitk:2094 gitk:2108 +#: gitk:2108 gitk:2122 msgid "&Key bindings" msgstr "Raccourcis clavier" -#: gitk:2092 gitk:2107 +#: gitk:2106 gitk:2121 msgid "&Help" msgstr "Aide" -#: gitk:2185 gitk:8652 +#: gitk:2199 gitk:8671 msgid "SHA1 ID:" msgstr "Id SHA1 :" -#: gitk:2229 +#: gitk:2243 msgid "Row" msgstr "Colonne" -#: gitk:2267 +#: gitk:2281 msgid "Find" msgstr "Recherche" -#: gitk:2295 +#: gitk:2309 msgid "commit" msgstr "commit" -#: gitk:2299 gitk:2301 gitk:4687 gitk:4710 gitk:4734 gitk:6755 gitk:6827 -#: gitk:6912 +#: gitk:2313 gitk:2315 gitk:4706 gitk:4729 gitk:4753 gitk:6774 gitk:6846 +#: gitk:6931 msgid "containing:" msgstr "contient :" -#: gitk:2302 gitk:3526 gitk:3531 gitk:4763 +#: gitk:2316 gitk:3545 gitk:3550 gitk:4782 msgid "touching paths:" msgstr "chemins modifiés :" -#: gitk:2303 gitk:4777 +#: gitk:2317 gitk:4796 msgid "adding/removing string:" msgstr "ajoute/supprime la chaîne :" -#: gitk:2304 gitk:4779 +#: gitk:2318 gitk:4798 msgid "changing lines matching:" -msgstr "" +msgstr "modifie les lignes vérifiant :" -#: gitk:2313 gitk:2315 gitk:4766 +#: gitk:2327 gitk:2329 gitk:4785 msgid "Exact" msgstr "Exact" -#: gitk:2315 gitk:4854 gitk:6723 +#: gitk:2329 gitk:4873 gitk:6742 msgid "IgnCase" msgstr "Ignorer la casse" -#: gitk:2315 gitk:4736 gitk:4852 gitk:6719 +#: gitk:2329 gitk:4755 gitk:4871 gitk:6738 msgid "Regexp" msgstr "Expression régulière" -#: gitk:2317 gitk:2318 gitk:4874 gitk:4904 gitk:4911 gitk:6848 gitk:6916 +#: gitk:2331 gitk:2332 gitk:4893 gitk:4923 gitk:4930 gitk:6867 gitk:6935 msgid "All fields" msgstr "Tous les champs" -#: gitk:2318 gitk:4871 gitk:4904 gitk:6786 +#: gitk:2332 gitk:4890 gitk:4923 gitk:6805 msgid "Headline" -msgstr "Surligner" +msgstr "Titre" -#: gitk:2319 gitk:4871 gitk:6786 gitk:6916 gitk:7389 +#: gitk:2333 gitk:4890 gitk:6805 gitk:6935 gitk:7408 msgid "Comments" msgstr "Commentaires" -#: gitk:2319 gitk:4871 gitk:4876 gitk:4911 gitk:6786 gitk:7324 gitk:8830 -#: gitk:8845 +#: gitk:2333 gitk:4890 gitk:4895 gitk:4930 gitk:6805 gitk:7343 gitk:8849 +#: gitk:8864 msgid "Author" msgstr "Auteur" -#: gitk:2319 gitk:4871 gitk:6786 gitk:7326 +#: gitk:2333 gitk:4890 gitk:6805 gitk:7345 msgid "Committer" -msgstr "Auteur du commit" +msgstr "Validateur" -#: gitk:2350 +#: gitk:2367 msgid "Search" msgstr "Rechercher" -#: gitk:2358 +#: gitk:2375 msgid "Diff" msgstr "Diff" -#: gitk:2360 +#: gitk:2377 msgid "Old version" msgstr "Ancienne version" -#: gitk:2362 +#: gitk:2379 msgid "New version" msgstr "Nouvelle version" -#: gitk:2364 +#: gitk:2382 msgid "Lines of context" msgstr "Lignes de contexte" -#: gitk:2374 +#: gitk:2392 msgid "Ignore space change" msgstr "Ignorer les modifications d'espace" -#: gitk:2378 gitk:2380 gitk:7959 gitk:8206 +#: gitk:2396 gitk:2398 gitk:7978 gitk:8225 msgid "Line diff" -msgstr "" +msgstr "différence par ligne" -#: gitk:2445 +#: gitk:2463 msgid "Patch" msgstr "Patch" -#: gitk:2447 +#: gitk:2465 msgid "Tree" msgstr "Arbre" -#: gitk:2617 gitk:2637 +#: gitk:2635 gitk:2656 msgid "Diff this -> selected" -msgstr "Diff entre ceci et la sélection" +msgstr "Diff ceci -> la sélection" -#: gitk:2618 gitk:2638 +#: gitk:2636 gitk:2657 msgid "Diff selected -> this" -msgstr "Diff entre sélection et ceci" +msgstr "Diff sélection -> ceci" -#: gitk:2619 gitk:2639 +#: gitk:2637 gitk:2658 msgid "Make patch" msgstr "Créer patch" -#: gitk:2620 gitk:9254 +#: gitk:2638 gitk:9273 msgid "Create tag" -msgstr "Créer tag" +msgstr "Créer étiquette" + +#: gitk:2639 +msgid "Copy commit summary" +msgstr "Copié le résumé du commit" -#: gitk:2621 gitk:9371 +#: gitk:2640 gitk:9404 msgid "Write commit to file" msgstr "Écrire le commit dans un fichier" -#: gitk:2622 gitk:9428 +#: gitk:2641 gitk:9461 msgid "Create new branch" msgstr "Créer une nouvelle branche" -#: gitk:2623 +#: gitk:2642 msgid "Cherry-pick this commit" msgstr "Cueillir (cherry-pick) ce commit" -#: gitk:2624 +#: gitk:2643 msgid "Reset HEAD branch to here" msgstr "Réinitialiser la branche HEAD vers cet état" -#: gitk:2625 +#: gitk:2644 msgid "Mark this commit" msgstr "Marquer ce commit" -#: gitk:2626 +#: gitk:2645 msgid "Return to mark" msgstr "Retourner à la marque" -#: gitk:2627 +#: gitk:2646 msgid "Find descendant of this and mark" msgstr "Chercher le descendant de ceci et le marquer" -#: gitk:2628 +#: gitk:2647 msgid "Compare with marked commit" msgstr "Comparer avec le commit marqué" -#: gitk:2629 gitk:2640 -#, fuzzy +#: gitk:2648 gitk:2659 msgid "Diff this -> marked commit" -msgstr "Diff entre ceci et la sélection" +msgstr "Diff ceci -> sélection" -#: gitk:2630 gitk:2641 -#, fuzzy +#: gitk:2649 gitk:2660 msgid "Diff marked commit -> this" -msgstr "Diff entre sélection et ceci" +msgstr "Diff entre sélection -> ceci" -#: gitk:2631 -#, fuzzy +#: gitk:2650 msgid "Revert this commit" -msgstr "Marquer ce commit" +msgstr "Défaire ce commit" -#: gitk:2647 +#: gitk:2666 msgid "Check out this branch" msgstr "Récupérer cette branche" -#: gitk:2648 +#: gitk:2667 msgid "Remove this branch" msgstr "Supprimer cette branche" -#: gitk:2649 +#: gitk:2668 msgid "Copy branch name" -msgstr "" +msgstr "Copier la nom de la branche" -#: gitk:2656 +#: gitk:2675 msgid "Highlight this too" msgstr "Surligner également ceci" -#: gitk:2657 +#: gitk:2676 msgid "Highlight this only" msgstr "Surligner seulement ceci" -#: gitk:2658 +#: gitk:2677 msgid "External diff" msgstr "Diff externe" -#: gitk:2659 +#: gitk:2678 msgid "Blame parent commit" msgstr "Blâmer le commit parent" -#: gitk:2660 +#: gitk:2679 msgid "Copy path" -msgstr "" +msgstr "Copier le chemin" -#: gitk:2667 +#: gitk:2686 msgid "Show origin of this line" msgstr "Montrer l'origine de cette ligne" -#: gitk:2668 +#: gitk:2687 msgid "Run git gui blame on this line" msgstr "Exécuter git gui blame sur cette ligne" -#: gitk:3014 -#, fuzzy +#: gitk:3031 +msgid "About gitk" +msgstr "À propos de gitk" + +#: gitk:3033 msgid "" "\n" "Gitk - a commit viewer for git\n" @@ -378,327 +379,329 @@ msgstr "" "\n" "Gitk - visualisateur de commit pour git\n" "\n" -"Copyright \\u00a9 2005-2010 Paul Mackerras\n" +"Copyright \\u00a9 2005-2014 Paul Mackerras\n" "\n" -"Utilisation et redistribution soumises aux termes de la GNU General Public " -"License" +"Utilisation et redistribution soumises aux termes de la GNU General Public License" -#: gitk:3022 gitk:3089 gitk:9857 +#: gitk:3041 gitk:3108 gitk:9890 msgid "Close" msgstr "Fermer" -#: gitk:3043 +#: gitk:3062 msgid "Gitk key bindings" msgstr "Raccourcis clavier de Gitk" -#: gitk:3046 +#: gitk:3065 msgid "Gitk key bindings:" msgstr "Raccourcis clavier de Gitk :" -#: gitk:3048 +#: gitk:3067 #, tcl-format msgid "<%s-Q>\t\tQuit" msgstr "<%s-Q>\t\tQuitter" -#: gitk:3049 -#, fuzzy, tcl-format +#: gitk:3068 +#, tcl-format msgid "<%s-W>\t\tClose window" -msgstr "<%s-F>\t\tRechercher" +msgstr "<%s-W>\t\tFermer la fenêtre" -#: gitk:3050 +#: gitk:3069 msgid "<Home>\t\tMove to first commit" msgstr "<Début>\t\tAller au premier commit" -#: gitk:3051 +#: gitk:3070 msgid "<End>\t\tMove to last commit" msgstr "<Fin>\t\tAller au dernier commit" -#: gitk:3052 -#, fuzzy +#: gitk:3071 msgid "<Up>, p, k\tMove up one commit" -msgstr "<Haut>, p, i\t Aller au commit suivant" +msgstr "<Haut>, p, k\t Aller au commit précédent" -#: gitk:3053 -#, fuzzy +#: gitk:3072 msgid "<Down>, n, j\tMove down one commit" -msgstr "<Bas>, n, k\t Aller au commit précédent" +msgstr "<Bas>, n, j\t Aller au commit suivant" -#: gitk:3054 -#, fuzzy +#: gitk:3073 msgid "<Left>, z, h\tGo back in history list" -msgstr "<Gauche>, z, j\tReculer dans l'historique" +msgstr "<Gauche>, z, h\tReculer dans l'historique" -#: gitk:3055 +#: gitk:3074 msgid "<Right>, x, l\tGo forward in history list" msgstr "<Droite>, x, l\tAvancer dans l'historique" -#: gitk:3056 +#: gitk:3075 #, tcl-format msgid "<%s-n>\tGo to n-th parent of current commit in history list" -msgstr "" +msgstr "<%s-n>\tAller sur le n-ième parent du commit dans l'historique" -#: gitk:3057 +#: gitk:3076 msgid "<PageUp>\tMove up one page in commit list" msgstr "<PageUp>\tMonter d'une page dans la liste des commits" -#: gitk:3058 +#: gitk:3077 msgid "<PageDown>\tMove down one page in commit list" msgstr "<PageDown>\tDescendre d'une page dans la liste des commits" -#: gitk:3059 +#: gitk:3078 #, tcl-format msgid "<%s-Home>\tScroll to top of commit list" msgstr "<%s-Début>\tAller en haut de la liste des commits" -#: gitk:3060 +#: gitk:3079 #, tcl-format msgid "<%s-End>\tScroll to bottom of commit list" msgstr "<%s-End>\tAller en bas de la liste des commits" -#: gitk:3061 +#: gitk:3080 #, tcl-format msgid "<%s-Up>\tScroll commit list up one line" msgstr "<%s-Up>\tMonter d'une ligne dans la liste des commits" -#: gitk:3062 +#: gitk:3081 #, tcl-format msgid "<%s-Down>\tScroll commit list down one line" msgstr "<%s-Down>\tDescendre d'une ligne dans la liste des commits" -#: gitk:3063 +#: gitk:3082 #, tcl-format msgid "<%s-PageUp>\tScroll commit list up one page" msgstr "<%s-PageUp>\tMonter d'une page dans la liste des commits" -#: gitk:3064 +#: gitk:3083 #, tcl-format msgid "<%s-PageDown>\tScroll commit list down one page" msgstr "<%s-PageDown>\tDescendre d'une page dans la liste des commits" -#: gitk:3065 +#: gitk:3084 msgid "<Shift-Up>\tFind backwards (upwards, later commits)" msgstr "" "<Shift-Up>\tRecherche en arrière (vers l'avant, commits les plus anciens)" -#: gitk:3066 +#: gitk:3085 msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)" msgstr "" "<Shift-Down>\tRecherche en avant (vers l'arrière, commit les plus récents)" -#: gitk:3067 +#: gitk:3086 msgid "<Delete>, b\tScroll diff view up one page" msgstr "<Supprimer>, b\tMonter d'une page dans la vue des diff" -#: gitk:3068 +#: gitk:3087 msgid "<Backspace>\tScroll diff view up one page" msgstr "<Backspace>\tMonter d'une page dans la vue des diff" -#: gitk:3069 +#: gitk:3088 msgid "<Space>\t\tScroll diff view down one page" msgstr "<Espace>\t\tDescendre d'une page dans la vue des diff" -#: gitk:3070 +#: gitk:3089 msgid "u\t\tScroll diff view up 18 lines" msgstr "u\t\tMonter de 18 lignes dans la vue des diff" -#: gitk:3071 +#: gitk:3090 msgid "d\t\tScroll diff view down 18 lines" msgstr "d\t\tDescendre de 18 lignes dans la vue des diff" -#: gitk:3072 +#: gitk:3091 #, tcl-format msgid "<%s-F>\t\tFind" msgstr "<%s-F>\t\tRechercher" -#: gitk:3073 +#: gitk:3092 #, tcl-format msgid "<%s-G>\t\tMove to next find hit" msgstr "<%s-G>\t\tAller au résultat de recherche suivant" -#: gitk:3074 +#: gitk:3093 msgid "<Return>\tMove to next find hit" msgstr "<Return>\t\tAller au résultat de recherche suivant" -#: gitk:3075 -#, fuzzy +#: gitk:3094 msgid "g\t\tGo to commit" -msgstr "<Fin>\t\tAller au dernier commit" +msgstr "g\t\tAller au commit" -#: gitk:3076 +#: gitk:3095 msgid "/\t\tFocus the search box" msgstr "/\t\tFocus sur la zone de recherche" -#: gitk:3077 +#: gitk:3096 msgid "?\t\tMove to previous find hit" msgstr "?\t\tAller au résultat de recherche précédent" -#: gitk:3078 +#: gitk:3097 msgid "f\t\tScroll diff view to next file" msgstr "f\t\tAller au prochain fichier dans la vue des diff" -#: gitk:3079 +#: gitk:3098 #, tcl-format msgid "<%s-S>\t\tSearch for next hit in diff view" msgstr "<%s-S>\t\tAller au résultat suivant dans la vue des diff" -#: gitk:3080 +#: gitk:3099 #, tcl-format msgid "<%s-R>\t\tSearch for previous hit in diff view" msgstr "<%s-R>\t\tAller au résultat précédent dans la vue des diff" -#: gitk:3081 +#: gitk:3100 #, tcl-format msgid "<%s-KP+>\tIncrease font size" msgstr "<%s-KP+>\tAugmenter la taille de la police" -#: gitk:3082 +#: gitk:3101 #, tcl-format msgid "<%s-plus>\tIncrease font size" msgstr "<%s-plus>\tAugmenter la taille de la police" -#: gitk:3083 +#: gitk:3102 #, tcl-format msgid "<%s-KP->\tDecrease font size" msgstr "<%s-KP->\tDiminuer la taille de la police" -#: gitk:3084 +#: gitk:3103 #, tcl-format msgid "<%s-minus>\tDecrease font size" msgstr "<%s-minus>\tDiminuer la taille de la police" -#: gitk:3085 +#: gitk:3104 msgid "<F5>\t\tUpdate" msgstr "<F5>\t\tMise à jour" -#: gitk:3550 gitk:3559 +#: gitk:3569 gitk:3578 #, tcl-format msgid "Error creating temporary directory %s:" msgstr "Erreur lors de la création du répertoire temporaire %s :" -#: gitk:3572 +#: gitk:3591 #, tcl-format msgid "Error getting \"%s\" from %s:" msgstr "Erreur en obtenant \"%s\" de %s:" -#: gitk:3635 +#: gitk:3654 msgid "command failed:" msgstr "échec de la commande :" -#: gitk:3784 +#: gitk:3803 msgid "No such commit" msgstr "Commit inexistant" -#: gitk:3798 +#: gitk:3817 msgid "git gui blame: command failed:" msgstr "git gui blame : échec de la commande :" -#: gitk:3829 +#: gitk:3848 #, tcl-format msgid "Couldn't read merge head: %s" msgstr "Impossible de lire le head de la fusion : %s" -#: gitk:3837 +#: gitk:3856 #, tcl-format msgid "Error reading index: %s" msgstr "Erreur à la lecture de l'index : %s" -#: gitk:3862 +#: gitk:3881 #, tcl-format msgid "Couldn't start git blame: %s" msgstr "Impossible de démarrer git blame : %s" -#: gitk:3865 gitk:6754 +#: gitk:3884 gitk:6773 msgid "Searching" msgstr "Recherche en cours" -#: gitk:3897 +#: gitk:3916 #, tcl-format msgid "Error running git blame: %s" msgstr "Erreur à l'exécution de git blame : %s" -#: gitk:3925 +#: gitk:3944 #, tcl-format msgid "That line comes from commit %s, which is not in this view" msgstr "Cette ligne est issue du commit %s, qui n'est pas dans cette vue" -#: gitk:3939 +#: gitk:3958 msgid "External diff viewer failed:" -msgstr "Échec de l'outil externe de visualisation des diff" +msgstr "Échec de l'outil externe de visualisation des diff :" + +#: gitk:4062 +msgid "All files" +msgstr "Tous les fichiers" -#: gitk:4070 +#: gitk:4086 +msgid "View" +msgstr "Vue" + +#: gitk:4089 msgid "Gitk view definition" msgstr "Définition des vues de Gitk" -#: gitk:4074 +#: gitk:4093 msgid "Remember this view" msgstr "Se souvenir de cette vue" -#: gitk:4075 +#: gitk:4094 msgid "References (space separated list):" msgstr "Références (liste d'éléments séparés par des espaces) :" -#: gitk:4076 +#: gitk:4095 msgid "Branches & tags:" -msgstr "Branches & tags :" +msgstr "Branches & étiquettes :" -#: gitk:4077 +#: gitk:4096 msgid "All refs" msgstr "Toutes les références" -#: gitk:4078 +#: gitk:4097 msgid "All (local) branches" msgstr "Toutes les branches (locales)" -#: gitk:4079 +#: gitk:4098 msgid "All tags" -msgstr "Tous les tags" +msgstr "Toutes les étiquettes" -#: gitk:4080 +#: gitk:4099 msgid "All remote-tracking branches" msgstr "Toutes les branches de suivi à distance" -#: gitk:4081 +#: gitk:4100 msgid "Commit Info (regular expressions):" msgstr "Info sur les commits (expressions régulières) :" -#: gitk:4082 +#: gitk:4101 msgid "Author:" msgstr "Auteur :" -#: gitk:4083 +#: gitk:4102 msgid "Committer:" -msgstr "Commiteur :" +msgstr "Validateur :" -#: gitk:4084 +#: gitk:4103 msgid "Commit Message:" msgstr "Message de commit :" -#: gitk:4085 +#: gitk:4104 msgid "Matches all Commit Info criteria" msgstr "Correspond à tous les critères d'Info sur les commits" -#: gitk:4086 -#, fuzzy +#: gitk:4105 msgid "Matches no Commit Info criteria" -msgstr "Correspond à tous les critères d'Info sur les commits" +msgstr "Ne correspond à aucun des critères d'Info sur les commits" -#: gitk:4087 +#: gitk:4106 msgid "Changes to Files:" msgstr "Changements des fichiers :" -#: gitk:4088 +#: gitk:4107 msgid "Fixed String" msgstr "Chaîne Figée" -#: gitk:4089 +#: gitk:4108 msgid "Regular Expression" msgstr "Expression Régulière" -#: gitk:4090 +#: gitk:4109 msgid "Search string:" msgstr "Recherche de la chaîne :" -#: gitk:4091 +#: gitk:4110 msgid "" "Commit Dates (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, 2009 " "15:27:38\"):" @@ -706,204 +709,201 @@ msgstr "" "Dates des commits (\"2 weeks ago\", \"2009-03-17 15:27:38\", \"March 17, " "2009 15:27:38\") :" -#: gitk:4092 +#: gitk:4111 msgid "Since:" -msgstr "De :" +msgstr "Depuis :" -#: gitk:4093 +#: gitk:4112 msgid "Until:" msgstr "Jusqu'au :" -#: gitk:4094 +#: gitk:4113 msgid "Limit and/or skip a number of revisions (positive integer):" msgstr "Limiter et/ou sauter un certain nombre (entier positif) de révisions :" -#: gitk:4095 +#: gitk:4114 msgid "Number to show:" msgstr "Nombre à afficher :" -#: gitk:4096 +#: gitk:4115 msgid "Number to skip:" msgstr "Nombre à sauter :" -#: gitk:4097 +#: gitk:4116 msgid "Miscellaneous options:" msgstr "Options diverses :" -#: gitk:4098 +#: gitk:4117 msgid "Strictly sort by date" msgstr "Trier par date" -# FIXME : traduction de "branch sides" -#: gitk:4099 -#, fuzzy +#: gitk:4118 msgid "Mark branch sides" -msgstr "Marquer les extrémités des branches" +msgstr "Indiquer les côtés des branches" -#: gitk:4100 +#: gitk:4119 msgid "Limit to first parent" msgstr "Limiter au premier ancêtre" -#: gitk:4101 +#: gitk:4120 msgid "Simple history" msgstr "Historique simple" -#: gitk:4102 +#: gitk:4121 msgid "Additional arguments to git log:" msgstr "Arguments supplémentaires de git log :" -#: gitk:4103 +#: gitk:4122 msgid "Enter files and directories to include, one per line:" msgstr "Saisir les fichiers et répertoires à inclure, un par ligne :" -#: gitk:4104 +#: gitk:4123 msgid "Command to generate more commits to include:" msgstr "Commande pour générer plus de commits à inclure :" -#: gitk:4228 +#: gitk:4247 msgid "Gitk: edit view" msgstr "Gitk : éditer la vue" -#: gitk:4236 +#: gitk:4255 msgid "-- criteria for selecting revisions" msgstr "-- critère pour la sélection des révisions" -#: gitk:4241 -#, fuzzy +#: gitk:4260 msgid "View Name" -msgstr "Nom de la vue :" +msgstr "Nom de la vue" -#: gitk:4316 +#: gitk:4335 msgid "Apply (F5)" msgstr "Appliquer (F5)" -#: gitk:4354 +#: gitk:4373 msgid "Error in commit selection arguments:" msgstr "Erreur dans les arguments de sélection des commits :" -#: gitk:4409 gitk:4462 gitk:4924 gitk:4938 gitk:6208 gitk:12373 gitk:12374 +#: gitk:4428 gitk:4481 gitk:4943 gitk:4957 gitk:6227 gitk:12410 gitk:12411 msgid "None" msgstr "Aucun" -#: gitk:5021 gitk:5026 +#: gitk:5040 gitk:5045 msgid "Descendant" msgstr "Descendant" -#: gitk:5022 +#: gitk:5041 msgid "Not descendant" msgstr "Pas un descendant" -#: gitk:5029 gitk:5034 +#: gitk:5048 gitk:5053 msgid "Ancestor" msgstr "Ancêtre" -#: gitk:5030 +#: gitk:5049 msgid "Not ancestor" msgstr "Pas un ancêtre" -#: gitk:5324 +#: gitk:5343 msgid "Local changes checked in to index but not committed" -msgstr "Modifications locales enregistrées dans l'index mais non commitées" +msgstr "Modifications locales enregistrées dans l'index mais non validées" -#: gitk:5360 +#: gitk:5379 msgid "Local uncommitted changes, not checked in to index" -msgstr "Modifications locales non enregistrées dans l'index et non commitées" +msgstr "Modifications locales non enregistrées dans l'index et non validées" -#: gitk:7134 +#: gitk:7153 msgid "and many more" -msgstr "" +msgstr "et beaucoup plus" -#: gitk:7137 +#: gitk:7156 msgid "many" msgstr "nombreux" -#: gitk:7328 +#: gitk:7347 msgid "Tags:" -msgstr "Tags :" +msgstr "Étiquettes :" -#: gitk:7345 gitk:7351 gitk:8825 +#: gitk:7364 gitk:7370 gitk:8844 msgid "Parent" msgstr "Parent" -#: gitk:7356 +#: gitk:7375 msgid "Child" msgstr "Enfant" -#: gitk:7365 +#: gitk:7384 msgid "Branch" msgstr "Branche" -#: gitk:7368 +#: gitk:7387 msgid "Follows" msgstr "Suit" -#: gitk:7371 +#: gitk:7390 msgid "Precedes" msgstr "Précède" -#: gitk:7966 +#: gitk:7985 #, tcl-format msgid "Error getting diffs: %s" msgstr "Erreur lors de la récupération des diff : %s" -#: gitk:8650 +#: gitk:8669 msgid "Goto:" msgstr "Aller à :" -#: gitk:8671 +#: gitk:8690 #, tcl-format msgid "Short SHA1 id %s is ambiguous" -msgstr "Id SHA1 court %s est ambigu" +msgstr "L'id SHA1 court %s est ambigu" -#: gitk:8678 +#: gitk:8697 #, tcl-format msgid "Revision %s is not known" -msgstr "Id SHA1 %s est inconnu" +msgstr "La révision %s est inconnu" -#: gitk:8688 +#: gitk:8707 #, tcl-format msgid "SHA1 id %s is not known" -msgstr "Id SHA1 %s est inconnu" +msgstr "L'id SHA1 %s est inconnu" -#: gitk:8690 +#: gitk:8709 #, tcl-format msgid "Revision %s is not in the current view" msgstr "La révision %s n'est pas dans la vue courante" -#: gitk:8832 gitk:8847 +#: gitk:8851 gitk:8866 msgid "Date" msgstr "Date" -#: gitk:8835 +#: gitk:8854 msgid "Children" msgstr "Enfants" -#: gitk:8898 +#: gitk:8917 #, tcl-format msgid "Reset %s branch to here" msgstr "Réinitialiser la branche %s vers cet état" -#: gitk:8900 +#: gitk:8919 msgid "Detached head: can't reset" msgstr "Head détaché : impossible de réinitialiser" -#: gitk:9005 gitk:9011 +#: gitk:9024 gitk:9030 msgid "Skipping merge commit " msgstr "Éviter le commit de la fusion " -#: gitk:9020 gitk:9025 +#: gitk:9039 gitk:9044 msgid "Error getting patch ID for " msgstr "Erreur à l'obtention de l'ID du patch pour " -#: gitk:9021 gitk:9026 +#: gitk:9040 gitk:9045 msgid " - stopping\n" msgstr " - arrêt en cours\n" -#: gitk:9031 gitk:9034 gitk:9042 gitk:9056 gitk:9065 +#: gitk:9050 gitk:9053 gitk:9061 gitk:9075 gitk:9084 msgid "Commit " msgstr "Commit " -#: gitk:9035 +#: gitk:9054 msgid "" " is the same patch as\n" " " @@ -911,7 +911,7 @@ msgstr "" "est le même patch que \n" " " -#: gitk:9043 +#: gitk:9062 msgid "" " differs from\n" " " @@ -919,240 +919,226 @@ msgstr "" " diffère de\n" " " -#: gitk:9045 +#: gitk:9064 msgid "" "Diff of commits:\n" "\n" -msgstr "" +msgstr "Diff des commits :\n\n" -#: gitk:9057 gitk:9066 +#: gitk:9076 gitk:9085 #, tcl-format msgid " has %s children - stopping\n" -msgstr "a %s enfants - arrêt en cours\n" +msgstr " a %s enfants - arrêt en cours\n" -#: gitk:9085 -#, fuzzy, tcl-format +#: gitk:9104 +#, tcl-format msgid "Error writing commit to file: %s" -msgstr "Erreur à l'ecriture du commit :" +msgstr "Erreur à l'écriture du commit dans le fichier : %s" -#: gitk:9091 -#, fuzzy, tcl-format +#: gitk:9110 +#, tcl-format msgid "Error diffing commits: %s" -msgstr "Erreur à l'ecriture du commit :" +msgstr "Erreur à la différence des commits : %s" -#: gitk:9137 +#: gitk:9156 msgid "Top" msgstr "Haut" -#: gitk:9138 +#: gitk:9157 msgid "From" msgstr "De" -#: gitk:9143 +#: gitk:9162 msgid "To" msgstr "À" -#: gitk:9167 +#: gitk:9186 msgid "Generate patch" msgstr "Générer le patch" -#: gitk:9169 +#: gitk:9188 msgid "From:" msgstr "De :" -#: gitk:9178 +#: gitk:9197 msgid "To:" msgstr "À :" -#: gitk:9187 +#: gitk:9206 msgid "Reverse" msgstr "Inverser" -#: gitk:9189 gitk:9385 +#: gitk:9208 gitk:9418 msgid "Output file:" msgstr "Fichier de sortie :" -#: gitk:9195 +#: gitk:9214 msgid "Generate" msgstr "Générer" -#: gitk:9233 +#: gitk:9252 msgid "Error creating patch:" msgstr "Erreur à la création du patch :" -#: gitk:9256 gitk:9373 gitk:9430 +#: gitk:9275 gitk:9406 gitk:9463 msgid "ID:" msgstr "ID :" -#: gitk:9265 +#: gitk:9284 msgid "Tag name:" -msgstr "Nom du Tag :" +msgstr "Nom de l'étiquette :" -#: gitk:9268 +#: gitk:9287 msgid "Tag message is optional" -msgstr "" +msgstr "Le message d'étiquette est optionnel" -#: gitk:9270 -#, fuzzy +#: gitk:9289 msgid "Tag message:" -msgstr "Nom du Tag :" +msgstr "Message d'étiquette :" -#: gitk:9274 gitk:9439 +#: gitk:9293 gitk:9472 msgid "Create" msgstr "Créer" -#: gitk:9292 +#: gitk:9311 msgid "No tag name specified" -msgstr "Aucun nom de tag spécifié" +msgstr "Aucun nom d'étiquette spécifié" -#: gitk:9296 +#: gitk:9315 #, tcl-format msgid "Tag \"%s\" already exists" -msgstr "Le tag \"%s\" existe déjà" +msgstr "L'étiquette \"%s\" existe déjà" -#: gitk:9306 +#: gitk:9325 msgid "Error creating tag:" -msgstr "Erreur à la création du tag :" +msgstr "Erreur à la création de l'étiquette :" -#: gitk:9382 +#: gitk:9415 msgid "Command:" msgstr "Commande :" -#: gitk:9390 +#: gitk:9423 msgid "Write" msgstr "Écrire" -#: gitk:9408 +#: gitk:9441 msgid "Error writing commit:" msgstr "Erreur à l'ecriture du commit :" -#: gitk:9435 +#: gitk:9468 msgid "Name:" msgstr "Nom :" -#: gitk:9458 +#: gitk:9491 msgid "Please specify a name for the new branch" msgstr "Veuillez spécifier un nom pour la nouvelle branche" -#: gitk:9463 +#: gitk:9496 #, tcl-format msgid "Branch '%s' already exists. Overwrite?" msgstr "La branche '%s' existe déjà. Écraser?" -#: gitk:9530 +#: gitk:9563 #, tcl-format msgid "Commit %s is already included in branch %s -- really re-apply it?" msgstr "" "Le Commit %s est déjà inclus dans la branche %s -- le ré-appliquer malgré " "tout?" -#: gitk:9535 +#: gitk:9568 msgid "Cherry-picking" -msgstr "Cueillir (Cherry-picking)" +msgstr "Picorer (Cherry-picking)" -#: gitk:9544 +#: gitk:9577 #, tcl-format msgid "" "Cherry-pick failed because of local changes to file '%s'.\n" "Please commit, reset or stash your changes and try again." msgstr "" -"La cueillette (cherry-pick) a échouée à cause de modifications locales du " -"fichier '%s'.\n" -"Veuillez commiter, réinitialiser ou stasher vos changements et essayer de " -"nouveau." +"Le picorage (cherry-pick) a échouée à cause de modifications locales du fichier '%s'.\n" +"Veuillez commiter, réinitialiser ou stasher vos changements et essayer de nouveau." -#: gitk:9550 +#: gitk:9583 msgid "" "Cherry-pick failed because of merge conflict.\n" "Do you wish to run git citool to resolve it?" msgstr "" -"La cueillette (cherry-pick) a échouée à cause d'un conflit lors d'une " -"fusion.\n" +"Le picorage (cherry-pick) a échouée à cause d'un conflit lors d'une fusion.\n" "Souhaitez-vous exécuter git citool pour le résoudre ?" -#: gitk:9566 gitk:9624 +#: gitk:9599 gitk:9657 msgid "No changes committed" -msgstr "Aucun changement commité" +msgstr "Aucune modification validée" -#: gitk:9593 -#, fuzzy, tcl-format +#: gitk:9626 +#, tcl-format msgid "Commit %s is not included in branch %s -- really revert it?" -msgstr "" -"Le Commit %s est déjà inclus dans la branche %s -- le ré-appliquer malgré " -"tout?" +msgstr "Le Commit %s n'est pas inclus dans la branche %s -- le défaire malgré tout?" -#: gitk:9598 -#, fuzzy +#: gitk:9631 msgid "Reverting" -msgstr "Réinitialisation" +msgstr "Commit défait" -#: gitk:9606 -#, fuzzy, tcl-format +#: gitk:9639 +#, 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 "" -"La cueillette (cherry-pick) a échouée à cause de modifications locales du " -"fichier '%s'.\n" -"Veuillez commiter, réinitialiser ou stasher vos changements et essayer de " -"nouveau." +msgstr "Échec en tentant de défaire le commit à cause de modifications locales des fichiers : %s. Veuillez valider, réinitialiser ou remiser vos modifications et essayer de nouveau." -#: gitk:9610 -#, fuzzy +#: gitk:9643 msgid "" "Revert failed because of merge conflict.\n" " Do you wish to run git citool to resolve it?" msgstr "" -"La cueillette (cherry-pick) a échouée à cause d'un conflit lors d'une " -"fusion.\n" +"Échec en tentant de défaire à cause d'un conflit de fusion.\n" "Souhaitez-vous exécuter git citool pour le résoudre ?" -#: gitk:9653 +#: gitk:9686 msgid "Confirm reset" msgstr "Confirmer la réinitialisation" -#: gitk:9655 +#: gitk:9688 #, tcl-format msgid "Reset branch %s to %s?" msgstr "Réinitialiser la branche %s à %s?" -#: gitk:9657 +#: gitk:9690 msgid "Reset type:" msgstr "Type de réinitialisation :" -#: gitk:9660 +#: gitk:9693 msgid "Soft: Leave working tree and index untouched" msgstr "Douce : Laisse le répertoire de travail et l'index intacts" -#: gitk:9663 +#: gitk:9696 msgid "Mixed: Leave working tree untouched, reset index" msgstr "" "Hybride : Laisse le répertoire de travail dans son état courant, " "réinitialise l'index" -#: gitk:9666 +#: gitk:9699 msgid "" "Hard: Reset working tree and index\n" "(discard ALL local changes)" msgstr "" "Dure : Réinitialise le répertoire de travail et l'index\n" -"(abandonne TOUS les changements locaux)" +"(abandonne TOUTES les modifications locale)" -#: gitk:9683 +#: gitk:9716 msgid "Resetting" msgstr "Réinitialisation" # Fixme: Récupération est-il vraiment une mauvaise traduction? -#: gitk:9743 -#, fuzzy +#: gitk:9776 msgid "Checking out" -msgstr "Récupération" +msgstr "Extraction" -#: gitk:9796 +#: gitk:9829 msgid "Cannot delete the currently checked-out branch" -msgstr "Impossible de supprimer la branche en cours" +msgstr "Impossible de supprimer la branche extraite" -#: gitk:9802 +#: gitk:9835 #, tcl-format msgid "" "The commits on branch %s aren't on any other branch.\n" @@ -1161,16 +1147,16 @@ msgstr "" "Les commits de la branche %s ne sont dans aucune autre branche.\n" "Voulez-vous vraiment supprimer cette branche %s ?" -#: gitk:9833 +#: gitk:9866 #, tcl-format msgid "Tags and heads: %s" -msgstr "Tags et heads : %s" +msgstr "Étiquettes et heads : %s" -#: gitk:9850 +#: gitk:9883 msgid "Filter" msgstr "Filtrer" -#: gitk:10146 +#: gitk:10179 msgid "" "Error reading commit topology information; branch and preceding/following " "tag information will be incomplete." @@ -1179,207 +1165,202 @@ msgstr "" "informations sur les branches et les tags précédents/suivants seront " "incomplètes." -#: gitk:11123 +#: gitk:11156 msgid "Tag" -msgstr "Tag" +msgstr "Étiquette" -#: gitk:11127 +#: gitk:11160 msgid "Id" msgstr "Id" -#: gitk:11210 +#: gitk:11243 msgid "Gitk font chooser" msgstr "Sélecteur de police de Gitk" -#: gitk:11227 +#: gitk:11260 msgid "B" msgstr "B" -#: gitk:11230 +#: gitk:11263 msgid "I" msgstr "I" -#: gitk:11348 +#: gitk:11381 msgid "Commit list display options" msgstr "Options d'affichage de la liste des commits" -#: gitk:11351 +#: gitk:11384 msgid "Maximum graph width (lines)" msgstr "Longueur maximum du graphe (lignes)" # FIXME : Traduction standard de "pane"? -#: gitk:11355 -#, fuzzy, no-tcl-format +#: gitk:11388 +#, no-tcl-format msgid "Maximum graph width (% of pane)" -msgstr "Longueur maximum du graphe (% du panneau)" +msgstr "Largeur maximum du graphe (% du panneau)" -#: gitk:11358 +#: gitk:11391 msgid "Show local changes" -msgstr "Montrer les changements locaux" +msgstr "Montrer les modifications locales" -#: gitk:11361 -#, fuzzy +#: gitk:11394 msgid "Auto-select SHA1 (length)" -msgstr "Sélection auto. du SHA1" +msgstr "Sélection auto. du SHA1 (longueur)" -#: gitk:11365 +#: gitk:11398 msgid "Hide remote refs" msgstr "Cacher les refs distantes" -#: gitk:11369 +#: gitk:11402 msgid "Diff display options" msgstr "Options d'affichage des diff" -#: gitk:11371 +#: gitk:11404 msgid "Tab spacing" msgstr "Taille des tabulations" -#: gitk:11374 -#, fuzzy +#: gitk:11407 msgid "Display nearby tags/heads" msgstr "Afficher les tags les plus proches" -#: gitk:11377 +#: gitk:11410 msgid "Maximum # tags/heads to show" -msgstr "" +msgstr "Nombre maximum d'étiquettes/heads à afficher" -#: gitk:11380 +#: gitk:11413 msgid "Limit diffs to listed paths" msgstr "Limiter les différences aux chemins listés" -#: gitk:11383 +#: gitk:11416 msgid "Support per-file encodings" msgstr "Support pour un encodage des caractères par fichier" -#: gitk:11389 gitk:11536 +#: gitk:11422 gitk:11569 msgid "External diff tool" msgstr "Outil diff externe" -#: gitk:11390 +#: gitk:11423 msgid "Choose..." msgstr "Choisir..." -#: gitk:11395 -#, fuzzy +#: gitk:11428 msgid "General options" -msgstr "Générer le patch" +msgstr "Options générales" -#: gitk:11398 +#: gitk:11431 msgid "Use themed widgets" -msgstr "" +msgstr "Utiliser des widgets en thème" -#: gitk:11400 +#: gitk:11433 msgid "(change requires restart)" -msgstr "" +msgstr "(la modification nécessite un redémarrage)" -#: gitk:11402 +#: gitk:11435 msgid "(currently unavailable)" -msgstr "" +msgstr "(non disponible actuellement)" -#: gitk:11413 +#: gitk:11446 msgid "Colors: press to choose" msgstr "Couleurs : cliquer pour choisir" -#: gitk:11416 +#: gitk:11449 msgid "Interface" -msgstr "" +msgstr "Interface" -#: gitk:11417 -#, fuzzy +#: gitk:11450 msgid "interface" -msgstr "Police de l'interface utilisateur" +msgstr "interface" -#: gitk:11420 +#: gitk:11453 msgid "Background" msgstr "Arrière-plan" -#: gitk:11421 gitk:11451 +#: gitk:11454 gitk:11484 msgid "background" msgstr "arrière-plan" -#: gitk:11424 +#: gitk:11457 msgid "Foreground" msgstr "Premier plan" -#: gitk:11425 +#: gitk:11458 msgid "foreground" msgstr "premier plan" -#: gitk:11428 +#: gitk:11461 msgid "Diff: old lines" msgstr "Diff : anciennes lignes" -#: gitk:11429 +#: gitk:11462 msgid "diff old lines" msgstr "diff anciennes lignes" -#: gitk:11433 +#: gitk:11466 msgid "Diff: new lines" msgstr "Diff : nouvelles lignes" -#: gitk:11434 +#: gitk:11467 msgid "diff new lines" msgstr "diff nouvelles lignes" -#: gitk:11438 +#: gitk:11471 msgid "Diff: hunk header" msgstr "Diff : entête du hunk" -#: gitk:11440 +#: gitk:11473 msgid "diff hunk header" msgstr "diff : entête du hunk" -#: gitk:11444 +#: gitk:11477 msgid "Marked line bg" -msgstr "Arrière-plan de la ligne marquée" +msgstr "Fond de la ligne marquée" -#: gitk:11446 +#: gitk:11479 msgid "marked line background" -msgstr "Arrière-plan de la ligne marquée" +msgstr "Fond de la ligne marquée" -#: gitk:11450 +#: gitk:11483 msgid "Select bg" -msgstr "Sélectionner l'arrière-plan" +msgstr "Sélectionner le fond" -#: gitk:11459 +#: gitk:11492 msgid "Fonts: press to choose" msgstr "Polices : cliquer pour choisir" -#: gitk:11461 +#: gitk:11494 msgid "Main font" msgstr "Police principale" -#: gitk:11462 +#: gitk:11495 msgid "Diff display font" msgstr "Police d'affichage des diff" -#: gitk:11463 +#: gitk:11496 msgid "User interface font" msgstr "Police de l'interface utilisateur" -#: gitk:11485 +#: gitk:11518 msgid "Gitk preferences" msgstr "Préférences de Gitk" -#: gitk:11494 -#, fuzzy +#: gitk:11527 msgid "General" -msgstr "Générer" +msgstr "Général" -#: gitk:11495 +#: gitk:11528 msgid "Colors" -msgstr "" +msgstr "Couleurs" -#: gitk:11496 +#: gitk:11529 msgid "Fonts" -msgstr "" +msgstr "Polices" -#: gitk:11546 +#: gitk:11579 #, tcl-format msgid "Gitk: choose color for %s" msgstr "Gitk : choisir la couleur de %s" -#: gitk:12059 +#: gitk:12092 msgid "" "Sorry, gitk cannot run with this version of Tcl/Tk.\n" " Gitk requires at least Tcl/Tk 8.4." @@ -1387,16 +1368,16 @@ msgstr "" "Désolé, gitk ne peut être exécuté avec cette version de Tcl/Tk.\n" " Gitk requiert Tcl/Tk version 8.4 ou supérieur." -#: gitk:12269 +#: gitk:12302 msgid "Cannot find a git repository here." msgstr "Impossible de trouver un dépôt git ici." -#: gitk:12316 +#: gitk:12349 #, tcl-format msgid "Ambiguous argument '%s': both revision and filename" msgstr "Argument '%s' ambigu : à la fois une révision et un nom de fichier" -#: gitk:12328 +#: gitk:12361 msgid "Bad arguments to gitk:" msgstr "Arguments invalides pour gitk :" diff --git a/perl/Git/SVN/GlobSpec.pm b/perl/Git/SVN/GlobSpec.pm index c95f5d76c..a0a8d1762 100644 --- a/perl/Git/SVN/GlobSpec.pm +++ b/perl/Git/SVN/GlobSpec.pm @@ -8,19 +8,23 @@ sub new { $re =~ s!/+$!!g; # no need for trailing slashes my (@left, @right, @patterns); my $state = "left"; - my $die_msg = "Only one set of wildcard directories " . - "(e.g. '*' or '*/*/*') is supported: '$glob'\n"; + my $die_msg = "Only one set of wildcards " . + "(e.g. '*' or '*/*/*') is supported: $glob\n"; for my $part (split(m|/|, $glob)) { - if ($part =~ /\*/ && $part ne "*") { - die "Invalid pattern in '$glob': $part\n"; - } elsif ($pattern_ok && $part =~ /[{}]/ && + if ($pattern_ok && $part =~ /[{}]/ && $part !~ /^\{[^{}]+\}/) { die "Invalid pattern in '$glob': $part\n"; } - if ($part eq "*") { + my $nstars = $part =~ tr/*//; + if ($nstars > 1) { + die "Only one '*' is allowed in a pattern: '$part'\n"; + } + if ($part =~ /(.*)\*(.*)/) { die $die_msg if $state eq "right"; + my ($l, $r) = ($1, $2); $state = "pattern"; - push(@patterns, "[^/]*"); + my $pat = quotemeta($l) . '[^/]*' . quotemeta($r); + push(@patterns, $pat); } elsif ($pattern_ok && $part =~ /^\{(.*)\}$/) { die $die_msg if $state eq "right"; $state = "pattern"; diff --git a/t/t3001-ls-files-others-exclude.sh b/t/t3001-ls-files-others-exclude.sh index d043078da..3fc484e8c 100755 --- a/t/t3001-ls-files-others-exclude.sh +++ b/t/t3001-ls-files-others-exclude.sh @@ -175,10 +175,13 @@ test_expect_success 'negated exclude matches can override previous ones' ' grep "^a.1" output ' -test_expect_success 'excluded directory does not override content patterns' ' +test_expect_success 'excluded directory overrides content patterns' ' git ls-files --others --exclude="one" --exclude="!one/a.1" >output && - grep "^one/a.1" output + if grep "^one/a.1" output + then + false + fi ' test_expect_success 'negated directory doesn'\''t affect content patterns' ' diff --git a/t/t3007-ls-files-other-negative.sh b/t/t3007-ls-files-other-negative.sh deleted file mode 100755 index 0797b86ad..000000000 --- a/t/t3007-ls-files-other-negative.sh +++ /dev/null @@ -1,153 +0,0 @@ -#!/bin/sh - -test_description='test re-include patterns' - -. ./test-lib.sh - -test_expect_success 'setup' ' - mkdir -p fooo foo/bar tmp && - touch abc foo/def foo/bar/ghi foo/bar/bar -' - -test_expect_success 'no match, do not enter subdir and waste cycles' ' - cat >.gitignore <<-\EOF && - /tmp - /foo - !fooo/bar/bar - EOF - GIT_TRACE_EXCLUDE="$(pwd)/tmp/trace" git ls-files -o --exclude-standard >tmp/actual && - ! grep "enter .foo/.\$" tmp/trace && - cat >tmp/expected <<-\EOF && - .gitignore - abc - EOF - test_cmp tmp/expected tmp/actual -' - -test_expect_success 'match, excluded by literal pathname pattern' ' - cat >.gitignore <<-\EOF && - /tmp - /fooo - /foo - !foo/bar/bar - EOF - cat >fooo/.gitignore <<-\EOF && - !/* - EOF git ls-files -o --exclude-standard >tmp/actual && - cat >tmp/expected <<-\EOF && - .gitignore - abc - foo/bar/bar - EOF - test_cmp tmp/expected tmp/actual -' - -test_expect_success 'match, excluded by wildcard pathname pattern' ' - cat >.gitignore <<-\EOF && - /tmp - /fooo - /fo? - !foo/bar/bar - EOF - git ls-files -o --exclude-standard >tmp/actual && - cat >tmp/expected <<-\EOF && - .gitignore - abc - foo/bar/bar - EOF - test_cmp tmp/expected tmp/actual -' - -test_expect_success 'match, excluded by literal basename pattern' ' - cat >.gitignore <<-\EOF && - /tmp - /fooo - foo - !foo/bar/bar - EOF - git ls-files -o --exclude-standard >tmp/actual && - cat >tmp/expected <<-\EOF && - .gitignore - abc - foo/bar/bar - EOF - test_cmp tmp/expected tmp/actual -' - -test_expect_success 'match, excluded by wildcard basename pattern' ' - cat >.gitignore <<-\EOF && - /tmp - /fooo - fo? - !foo/bar/bar - EOF - git ls-files -o --exclude-standard >tmp/actual && - cat >tmp/expected <<-\EOF && - .gitignore - abc - foo/bar/bar - EOF - test_cmp tmp/expected tmp/actual -' - -test_expect_success 'match, excluded by literal mustbedir, basename pattern' ' - cat >.gitignore <<-\EOF && - /tmp - /fooo - foo/ - !foo/bar/bar - EOF - git ls-files -o --exclude-standard >tmp/actual && - cat >tmp/expected <<-\EOF && - .gitignore - abc - foo/bar/bar - EOF - test_cmp tmp/expected tmp/actual -' - -test_expect_success 'match, excluded by literal mustbedir, pathname pattern' ' - cat >.gitignore <<-\EOF && - /tmp - /fooo - /foo/ - !foo/bar/bar - EOF - git ls-files -o --exclude-standard >tmp/actual && - cat >tmp/expected <<-\EOF && - .gitignore - abc - foo/bar/bar - EOF - test_cmp tmp/expected tmp/actual -' - -test_expect_success 'prepare for nested negatives' ' - cat >.git/info/exclude <<-\EOF && - /.gitignore - /tmp - /foo - /abc - EOF - git ls-files -o --exclude-standard >tmp/actual && - test_must_be_empty tmp/actual && - mkdir -p 1/2/3/4 && - touch 1/f 1/2/f 1/2/3/f 1/2/3/4/f -' - -test_expect_success 'match, literal pathname, nested negatives' ' - cat >.gitignore <<-\EOF && - /1 - !1/2 - 1/2/3 - !1/2/3/4 - EOF - git ls-files -o --exclude-standard >tmp/actual && - cat >tmp/expected <<-\EOF && - 1/2/3/4/f - 1/2/f - EOF - test_cmp tmp/expected tmp/actual -' - -test_done diff --git a/t/t9108-git-svn-glob.sh b/t/t9108-git-svn-glob.sh index a526d6037..a94286c8e 100755 --- a/t/t9108-git-svn-glob.sh +++ b/t/t9108-git-svn-glob.sh @@ -86,9 +86,12 @@ test_expect_success 'test left-hand-side only globbing' ' test_cmp expect.two output.two ' -echo "Only one set of wildcard directories" \ - "(e.g. '*' or '*/*/*') is supported: 'branches/*/t/*'" > expect.three -echo "" >> expect.three +test_expect_success 'prepare test disallow multi-globs' " +cat >expect.three <<EOF +Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/*/t/* + +EOF + " test_expect_success 'test disallow multi-globs' ' git config --add svn-remote.three.url "$svnrepo" && diff --git a/t/t9109-git-svn-multi-glob.sh b/t/t9109-git-svn-multi-glob.sh index f36b74924..8d99e848d 100755 --- a/t/t9109-git-svn-multi-glob.sh +++ b/t/t9109-git-svn-multi-glob.sh @@ -135,9 +135,12 @@ test_expect_success 'test another branch' ' test_cmp expect.four output.four ' -echo "Only one set of wildcard directories" \ - "(e.g. '*' or '*/*/*') is supported: 'branches/*/t/*'" > expect.three -echo "" >> expect.three +test_expect_success 'prepare test disallow multiple globs' " +cat >expect.three <<EOF +Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/*/t/* + +EOF + " test_expect_success 'test disallow multiple globs' ' git config --add svn-remote.three.url "$svnrepo" && diff --git a/t/t9117-git-svn-init-clone.sh b/t/t9117-git-svn-init-clone.sh index a66f43c6b..69a675052 100755 --- a/t/t9117-git-svn-init-clone.sh +++ b/t/t9117-git-svn-init-clone.sh @@ -119,4 +119,10 @@ test_expect_success 'clone with -s/-T/-b/-t and --prefix "" still works' ' rm -f warning ' +test_expect_success 'init with -T as a full url works' ' + test ! -d project && + git svn init -T "$svnrepo"/project/trunk project && + rm -rf project + ' + test_done diff --git a/t/t9168-git-svn-partially-globbed-names.sh b/t/t9168-git-svn-partially-globbed-names.sh new file mode 100755 index 000000000..8b22f2272 --- /dev/null +++ b/t/t9168-git-svn-partially-globbed-names.sh @@ -0,0 +1,223 @@ +#!/bin/sh +test_description='git svn globbing refspecs with prefixed globs' +. ./lib-git-svn.sh + +test_expect_success 'prepare test refspec prefixed globbing' ' + cat >expect.end <<EOF +the end +hi +start a new branch +initial +EOF + ' + +test_expect_success 'test refspec prefixed globbing' ' + mkdir -p trunk/src/a trunk/src/b trunk/doc && + echo "hello world" >trunk/src/a/readme && + echo "goodbye world" >trunk/src/b/readme && + svn_cmd import -m "initial" trunk "$svnrepo"/trunk && + svn_cmd co "$svnrepo" tmp && + ( + cd tmp && + mkdir branches tags && + svn_cmd add branches tags && + svn_cmd cp trunk branches/b_start && + svn_cmd commit -m "start a new branch" && + svn_cmd up && + echo "hi" >>branches/b_start/src/b/readme && + poke branches/b_start/src/b/readme && + echo "hey" >>branches/b_start/src/a/readme && + poke branches/b_start/src/a/readme && + svn_cmd commit -m "hi" && + svn_cmd up && + svn_cmd cp branches/b_start tags/t_end && + echo "bye" >>tags/t_end/src/b/readme && + poke tags/t_end/src/b/readme && + echo "aye" >>tags/t_end/src/a/readme && + poke tags/t_end/src/a/readme && + svn_cmd commit -m "the end" && + echo "byebye" >>tags/t_end/src/b/readme && + poke tags/t_end/src/b/readme && + svn_cmd commit -m "nothing to see here" + ) && + git config --add svn-remote.svn.url "$svnrepo" && + git config --add svn-remote.svn.fetch \ + "trunk/src/a:refs/remotes/trunk" && + git config --add svn-remote.svn.branches \ + "branches/b_*/src/a:refs/remotes/branches/b_*" && + git config --add svn-remote.svn.tags\ + "tags/t_*/src/a:refs/remotes/tags/t_*" && + git svn multi-fetch && + git log --pretty=oneline refs/remotes/tags/t_end | \ + sed -e "s/^.\{41\}//" >output.end && + test_cmp expect.end output.end && + test "$(git rev-parse refs/remotes/tags/t_end~1)" = \ + "$(git rev-parse refs/remotes/branches/b_start)" && + test "$(git rev-parse refs/remotes/branches/b_start~2)" = \ + "$(git rev-parse refs/remotes/trunk)" && + test_must_fail git rev-parse refs/remotes/tags/t_end@3 + ' + +test_expect_success 'prepare test left-hand-side only prefixed globbing' ' + echo try to try >expect.two && + echo nothing to see here >>expect.two && + cat expect.end >>expect.two + ' + +test_expect_success 'test left-hand-side only prefixed globbing' ' + git config --add svn-remote.two.url "$svnrepo" && + git config --add svn-remote.two.fetch trunk:refs/remotes/two/trunk && + git config --add svn-remote.two.branches \ + "branches/b_*:refs/remotes/two/branches/*" && + git config --add svn-remote.two.tags \ + "tags/t_*:refs/remotes/two/tags/*" && + ( + cd tmp && + echo "try try" >>tags/t_end/src/b/readme && + poke tags/t_end/src/b/readme && + svn_cmd commit -m "try to try" + ) && + git svn fetch two && + test $(git rev-list refs/remotes/two/tags/t_end | wc -l) -eq 6 && + test $(git rev-list refs/remotes/two/branches/b_start | wc -l) -eq 3 && + test $(git rev-parse refs/remotes/two/branches/b_start~2) = \ + $(git rev-parse refs/remotes/two/trunk) && + test $(git rev-parse refs/remotes/two/tags/t_end~3) = \ + $(git rev-parse refs/remotes/two/branches/b_start) && + git log --pretty=oneline refs/remotes/two/tags/t_end | \ + sed -e "s/^.\{41\}//" >output.two && + test_cmp expect.two output.two + ' + +test_expect_success 'prepare test prefixed globs match just prefix' ' + cat >expect.three <<EOF +Tag commit to t_ +Branch commit to b_ +initial +EOF + ' + +test_expect_success 'test prefixed globs match just prefix' ' + git config --add svn-remote.three.url "$svnrepo" && + git config --add svn-remote.three.fetch \ + trunk:refs/remotes/three/trunk && + git config --add svn-remote.three.branches \ + "branches/b_*:refs/remotes/three/branches/*" && + git config --add svn-remote.three.tags \ + "tags/t_*:refs/remotes/three/tags/*" && + ( + cd tmp && + svn_cmd cp trunk branches/b_ && + echo "Branch commit to b_" >>branches/b_/src/a/readme && + poke branches/b_/src/a/readme && + svn_cmd commit -m "Branch commit to b_" && + svn_cmd up && svn_cmd cp branches/b_ tags/t_ && + echo "Tag commit to t_" >>tags/t_/src/a/readme && + poke tags/t_/src/a/readme && + svn_cmd commit -m "Tag commit to t_" && + svn_cmd up + ) && + git svn fetch three && + test $(git rev-list refs/remotes/three/branches/b_ | wc -l) -eq 2 && + test $(git rev-list refs/remotes/three/tags/t_ | wc -l) -eq 3 && + test $(git rev-parse refs/remotes/three/branches/b_~1) = \ + $(git rev-parse refs/remotes/three/trunk) && + test $(git rev-parse refs/remotes/three/tags/t_~1) = \ + $(git rev-parse refs/remotes/three/branches/b_) && + git log --pretty=oneline refs/remotes/three/tags/t_ | \ + sed -e "s/^.\{41\}//" >output.three && + test_cmp expect.three output.three + ' + +test_expect_success 'prepare test disallow prefixed multi-globs' " +cat >expect.four <<EOF +Only one set of wildcards (e.g. '*' or '*/*/*') is supported: branches/b_*/t/* + +EOF + " + +test_expect_success 'test disallow prefixed multi-globs' ' + git config --add svn-remote.four.url "$svnrepo" && + git config --add svn-remote.four.fetch \ + trunk:refs/remotes/four/trunk && + git config --add svn-remote.four.branches \ + "branches/b_*/t/*:refs/remotes/four/branches/*" && + git config --add svn-remote.four.tags \ + "tags/t_*/*:refs/remotes/four/tags/*" && + ( + cd tmp && + echo "try try" >>tags/t_end/src/b/readme && + poke tags/t_end/src/b/readme && + svn_cmd commit -m "try to try" + ) && + test_must_fail git svn fetch four 2>stderr.four && + test_cmp expect.four stderr.four && + git config --unset svn-remote.four.branches && + git config --unset svn-remote.four.tags + ' + +test_expect_success 'prepare test globbing in the middle of the word' ' + cat >expect.five <<EOF +Tag commit to fghij +Branch commit to abcde +initial +EOF + ' + +test_expect_success 'test globbing in the middle of the word' ' + git config --add svn-remote.five.url "$svnrepo" && + git config --add svn-remote.five.fetch \ + trunk:refs/remotes/five/trunk && + git config --add svn-remote.five.branches \ + "branches/a*e:refs/remotes/five/branches/*" && + git config --add svn-remote.five.tags \ + "tags/f*j:refs/remotes/five/tags/*" && + ( + cd tmp && + svn_cmd cp trunk branches/abcde && + echo "Branch commit to abcde" >>branches/abcde/src/a/readme && + poke branches/b_/src/a/readme && + svn_cmd commit -m "Branch commit to abcde" && + svn_cmd up && + svn_cmd cp branches/abcde tags/fghij && + echo "Tag commit to fghij" >>tags/fghij/src/a/readme && + poke tags/fghij/src/a/readme && + svn_cmd commit -m "Tag commit to fghij" && + svn_cmd up + ) && + git svn fetch five && + test $(git rev-list refs/remotes/five/branches/abcde | wc -l) -eq 2 && + test $(git rev-list refs/remotes/five/tags/fghij | wc -l) -eq 3 && + test $(git rev-parse refs/remotes/five/branches/abcde~1) = \ + $(git rev-parse refs/remotes/five/trunk) && + test $(git rev-parse refs/remotes/five/tags/fghij~1) = \ + $(git rev-parse refs/remotes/five/branches/abcde) && + git log --pretty=oneline refs/remotes/five/tags/fghij | \ + sed -e "s/^.\{41\}//" >output.five && + test_cmp expect.five output.five + ' + +test_expect_success 'prepare test disallow multiple asterisks in one word' " + echo \"Only one '*' is allowed in a pattern: 'a*c*e'\" >expect.six && + echo \"\" >>expect.six + " + +test_expect_success 'test disallow multiple asterisks in one word' ' + git config --add svn-remote.six.url "$svnrepo" && + git config --add svn-remote.six.fetch \ + trunk:refs/remotes/six/trunk && + git config --add svn-remote.six.branches \ + "branches/a*c*e:refs/remotes/six/branches/*" && + git config --add svn-remote.six.tags \ + "tags/f*h*j:refs/remotes/six/tags/*" && + ( + cd tmp && + echo "try try" >>tags/fghij/src/b/readme && + poke tags/fghij/src/b/readme && + svn_cmd commit -m "try to try" + ) && + test_must_fail git svn fetch six 2>stderr.six && + test_cmp expect.six stderr.six + ' + +test_done diff --git a/transport.c b/transport.c index ca3cfa4b0..095e61f0a 100644 --- a/transport.c +++ b/transport.c @@ -678,8 +678,9 @@ struct transport *transport_get(struct remote *remote, const char *url) || starts_with(url, "file://") || starts_with(url, "git://") || starts_with(url, "ssh://") - || starts_with(url, "git+ssh://") - || starts_with(url, "ssh+git://")) { + || starts_with(url, "git+ssh://") /* deprecated - do not use */ + || starts_with(url, "ssh+git://") /* deprecated - do not use */ + ) { /* * These are builtin smart transports; "allowed" transports * will be checked individually in git_connect. |