diff options
85 files changed, 3580 insertions, 2712 deletions
diff --git a/Documentation/RelNotes-1.6.6.2.txt b/Documentation/RelNotes-1.6.6.2.txt new file mode 100644 index 0000000000..4eaddc0106 --- /dev/null +++ b/Documentation/RelNotes-1.6.6.2.txt @@ -0,0 +1,46 @@ +Git v1.6.6.2 Release Notes +========================== + +Fixes since v1.6.6.1 +-------------------- + + * recursive merge didn't correctly diagnose its own programming errors, + and instead caused the caller to segfault. + + * The new "smart http" aware clients probed the web servers to see if + they support smart http, but did not fall back to dumb http transport + correctly with some servers. + + * Time based reflog syntax e.g. "@{yesterday}" didn't diagnose a misspelled + time specification and instead assumed "@{now}". + + * "git archive HEAD -- no-such-directory" produced an empty archive + without complaining. + + * "git blame -L start,end -- file" misbehaved when given a start that is + larger than the number of lines in the file. + + * "git checkout -m" didn't correctly call custom merge backend supplied + by the end user. + + * "git config -f <file>" misbehaved when run from a subdirectory. + + * "git cvsserver" didn't like having regex metacharacters (e.g. '+') in + CVSROOT environment. + + * "git fast-import" did not correctly handle large blobs that may + bust the pack size limit. + + * "git gui" is supposed to work even when launched from inside a .git + directory. + + * "git gui" misbehaved when applying a hunk that ends with deletion. + + * "git imap-send" did not honor imap.preformattedHTML as documented. + + * "git log" family incorrectly showed the commit notes unconditionally by + mistake, which was especially irritating when running "git log --oneline". + + * "git status" shouldn't require an write access to the repository. + +Other minor documentation updates are included. diff --git a/Documentation/RelNotes-1.7.0.1.txt b/Documentation/RelNotes-1.7.0.1.txt new file mode 100644 index 0000000000..312a3f5534 --- /dev/null +++ b/Documentation/RelNotes-1.7.0.1.txt @@ -0,0 +1,31 @@ +Git v1.7.0.1 Release Notes +========================== + +Fixes since v1.7.0 +------------------ + + * In a freshly created repository "rev-parse HEAD^0" complained that + it is dangling symref, even though "rev-parse HEAD" didn't. + + * Message from "git cherry-pick" was harder to read and use than necessary + when it stopped due to conflicting changes. + + * "git diff --output=/path/that/cannot/be/written" did not correctly + error out. + + * "git grep -e -pattern-that-begin-with-dash paths..." could not be + spelled as "git grep -- -pattern-that-begin-with-dash paths..." which + would be a GNU way to use "--" as "end of options". + + * "git grep" compiled with threading support tried to access an + uninitialized mutex on boxes with a single CPU. + + * "git stash pop -q --index" failed because the unnecessary --index + option was propagated to "git stash drop" that is internally run at the + end. + +-- +exec >/var/tmp/1 +echo O=$(git describe) +O=v1.7.0-11-g354d9f8 +git shortlog $O.. diff --git a/Documentation/RelNotes-1.7.0.txt b/Documentation/RelNotes-1.7.0.txt index 323ae54007..43e3f33615 100644 --- a/Documentation/RelNotes-1.7.0.txt +++ b/Documentation/RelNotes-1.7.0.txt @@ -4,7 +4,7 @@ Git v1.7.0 Release Notes Notes on behaviour change ------------------------- - * "git push" into a branch that is currently checked out (i.e. pointed by + * "git push" into a branch that is currently checked out (i.e. pointed at by HEAD in a repository that is not bare) is refused by default. Similarly, "git push $there :$killed" to delete the branch $killed @@ -19,7 +19,7 @@ Notes on behaviour change patch series with more than two messages. All messages will be sent as a reply to the first message, i.e. cover letter. - It has been possible to configure send-email to send "shallow thread" + It has been possible already to configure send-email to send "shallow thread" by setting sendemail.chainreplyto configuration variable to false. The only thing this release does is to change the default when you haven't configured that variable. @@ -30,7 +30,7 @@ Notes on behaviour change * "git diff" traditionally treated various "ignore whitespace" options only as a way to filter the patch output. "git diff --exit-code -b" exited with non-zero status even if all changes were about changing the - ammount of whitespace and nothing else. and "git diff -b" showed the + amount of whitespace and nothing else; and "git diff -b" showed the "diff --git" header line for such a change without patch text. In this release, the "ignore whitespaces" options affect the semantics @@ -38,7 +38,7 @@ Notes on behaviour change whitespaces is reported with zero exit status when run with --exit-code, and there is no "diff --git" header for such a change. - * external diff and textconv helpers are now executed using the shell. + * External diff and textconv helpers are now executed using the shell. This makes them consistent with other programs executed by git, and allows you to pass command-line parameters to the helpers. Any helper paths containing spaces or other metacharacters now need to be @@ -46,6 +46,12 @@ Notes on behaviour change environment, and diff.*.command and diff.*.textconv in the config file. + * The --max-pack-size argument to 'git repack', 'git pack-objects', and + 'git fast-import' was assuming the provided size to be expressed in MiB, + unlike the corresponding config variable and other similar options accepting + a size value. It is now expecting a size expressed in bytes, with a possible + unit suffix of 'k', 'm', or 'g'. + Updates since v1.6.6 -------------------- @@ -57,7 +63,9 @@ Updates since v1.6.6 * "git svn" support of subversion "merge tickets" and miscellaneous fixes. - * "gitk" updates. + * "gitk" and "git gui" translation updates. + + * "gitweb" updates (code clean-up, load checking etc.) (portability) @@ -98,7 +106,9 @@ Updates since v1.6.6 defaults to the current branch, so "git fetch && git merge @{upstream}" will be equivalent to "git pull". - * "git branch --set-upstream" can be used to update the (surprise!) upstream + * "git am --resolved" has a synonym "git am --continue". + + * "git branch --set-upstream" can be used to update the (surprise!) upstream, i.e. where the branch is supposed to pull and merge from (or rebase onto). * "git checkout A...B" is a way to detach HEAD at the merge base between @@ -125,10 +135,7 @@ Updates since v1.6.6 * "git fetch --all" can now be used in place of "git remote update". * "git grep" does not rely on external grep anymore. It can use more than - one threads to accelerate the operation. - - * "git grep" learned "--no-index" option, to search inside contents that - are not managed by git. + one thread to accelerate the operation. * "git grep" learned "--quiet" option. @@ -154,13 +161,13 @@ Updates since v1.6.6 * "git rebase --onto A...B" means the history is replayed on top of the merge base between A and B. - * "git rebase -i" learned new action "fixup", that squashes the change + * "git rebase -i" learned new action "fixup" that squashes the change but does not affect existing log message. - * "git rebase -i" also learned --autosquash option, that is useful + * "git rebase -i" also learned --autosquash option that is useful together with the new "fixup" action. - * "git remote" learned set-url subcommand, to update (surprise!) url + * "git remote" learned set-url subcommand that updates (surprise!) url for an existing remote nickname. * "git rerere" learned "forget path" subcommand. Together with "git @@ -195,10 +202,8 @@ release, unless otherwise noted. the branch is fully merged to its upstream branch if it is not merged to the current branch. It now deletes it in such a case. - * "git config -f <relative path>" run from a subdirectory misbehaved. - 65807ee (builtin-config: Fix crash when using "-f <relative path>" - from non-root dir, 2010-01-26) may be merged to older maintenance - branches. + * "fiter-branch" command incorrectly said --prune-empty and --filter-commit + were incompatible; the latter should be read as --commit-filter. * When using "git status" or asking "git diff" to compare the work tree with something, they used to consider that a checked-out submodule with @@ -207,9 +212,3 @@ release, unless otherwise noted. superproject. They now consider such a change as a modification and "git diff" will append a "-dirty" to the work tree side when generating patch output or when used with the --submodule option. - --- -exec >/var/tmp/1 -O=v1.7.0-rc1-6-g2ee8c5b -echo O=$(git describe master) -git shortlog --no-merges $O..master ^maint diff --git a/Documentation/RelNotes-1.7.1.txt b/Documentation/RelNotes-1.7.1.txt new file mode 100644 index 0000000000..b0bf8366c0 --- /dev/null +++ b/Documentation/RelNotes-1.7.1.txt @@ -0,0 +1,17 @@ +Git v1.7.1 Release Notes +======================== + +Updates since v1.7.0 +-------------------- + +Fixes since v1.7.0 +------------------ + +All of the fixes in v1.7.0.X maintenance series are included in this +release, unless otherwise noted. + +--- +exec >/var/tmp/1 +echo O=$(git describe) +O=v1.7.0 +git shortlog --no-merges ^maint $O.. diff --git a/Documentation/config.txt b/Documentation/config.txt index 36ad992a56..4c36aa95b7 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -1368,10 +1368,13 @@ you can use linkgit:git-index-pack[1] on the *.pack file to regenerate the `{asterisk}.idx` file. pack.packSizeLimit:: - The default maximum size of a pack. This setting only affects - packing to a file, i.e. the git:// protocol is unaffected. It - can be overridden by the `\--max-pack-size` option of - linkgit:git-repack[1]. + The maximum size of a pack. This setting only affects + packing to a file when repacking, i.e. the git:// protocol + is unaffected. It can be overridden by the `\--max-pack-size` + option of linkgit:git-repack[1]. The minimum size allowed is + limited to 1 MiB. The default is unlimited. + Common unit suffixes of 'k', 'm', or 'g' are + supported. pager.<cmd>:: Allows turning on or off pagination of the output of a diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt index f74fcf3737..51cbeb7032 100644 --- a/Documentation/git-add.txt +++ b/Documentation/git-add.txt @@ -153,7 +153,7 @@ EXAMPLES and its subdirectories: + ------------ -$ git add Documentation/\\*.txt +$ git add Documentation/\*.txt ------------ + Note that the asterisk `\*` is quoted from the shell in this diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt index c3e4f12c44..c66c565bbe 100644 --- a/Documentation/git-am.txt +++ b/Documentation/git-am.txt @@ -15,7 +15,7 @@ SYNOPSIS [--whitespace=<option>] [-C<n>] [-p<n>] [--directory=<dir>] [--reject] [-q | --quiet] [--scissors | --no-scissors] [<mbox> | <Maildir>...] -'git am' (--skip | --resolved | --abort) +'git am' (--continue | --skip | --abort) DESCRIPTION ----------- @@ -107,6 +107,7 @@ default. You can use `--no-utf8` to override this. Skip the current patch. This is only meaningful when restarting an aborted patch. +--continue:: -r:: --resolved:: After a patch failure (e.g. attempting to apply diff --git a/Documentation/git-archive.txt b/Documentation/git-archive.txt index 799c8b64bd..8d3e66626f 100644 --- a/Documentation/git-archive.txt +++ b/Documentation/git-archive.txt @@ -112,6 +112,14 @@ export-subst:: expand several placeholders when adding this file to an archive. See linkgit:gitattributes[5] for details. +Note that attributes are by default taken from the `.gitattributes` files +in the tree that is being archived. If you want to tweak the way the +output is generated after the fact (e.g. you committed without adding an +appropriate export-ignore in its `.gitattributes`), adjust the checked out +`.gitattributes` file as necessary and use `--work-tree-attributes` +option. Alternatively you can keep necessary attributes that should apply +while archiving any tree in your `$GIT_DIR/info/attributes` file. + EXAMPLES -------- git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -):: diff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt index d9a3326f58..e1c4320f02 100644 --- a/Documentation/git-check-ref-format.txt +++ b/Documentation/git-check-ref-format.txt @@ -43,7 +43,7 @@ imposes the following rules on how references are named: . They cannot contain a sequence `@{`. -- They cannot contain a `\\`. +. They cannot contain a `\`. These rules make it easy for shell script based tools to parse reference names, pathname expansion by the shell when a reference name is used diff --git a/Documentation/git-clean.txt b/Documentation/git-clean.txt index 335c885bb7..a81cb6c280 100644 --- a/Documentation/git-clean.txt +++ b/Documentation/git-clean.txt @@ -33,8 +33,8 @@ OPTIONS -f:: --force:: - If the git configuration specifies clean.requireForce as true, - 'git clean' will refuse to run unless given -f or -n. + If the git configuration variable clean.requireForce is not set + to false, 'git clean' will refuse to run unless given -f or -n. -n:: --dry-run:: diff --git a/Documentation/git-fast-import.txt b/Documentation/git-fast-import.txt index 2691114440..6764ff1886 100644 --- a/Documentation/git-fast-import.txt +++ b/Documentation/git-fast-import.txt @@ -44,8 +44,8 @@ OPTIONS not contain the old commit). --max-pack-size=<n>:: - Maximum size of each output packfile, expressed in MiB. - The default is 4096 (4 GiB) as that is the maximum allowed + Maximum size of each output packfile. + The default is 4 GiB as that is the maximum allowed packfile size (due to file format limitations). Some importers may wish to lower this, such as to ensure the resulting packfiles fit on CDs. diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt index cfaba2a305..020028cf9a 100644 --- a/Documentation/git-filter-branch.txt +++ b/Documentation/git-filter-branch.txt @@ -358,7 +358,7 @@ To move the whole tree into a subdirectory, or remove it from there: --------------------------------------------------------------- git filter-branch --index-filter \ - 'git ls-files -s | sed "s-\t-&newsubdir/-" | + 'git ls-files -s | sed "s-\t\"*-&newsubdir/-" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new \ git update-index --index-info && mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD diff --git a/Documentation/git-pack-objects.txt b/Documentation/git-pack-objects.txt index 097a14773b..ffd5025f7b 100644 --- a/Documentation/git-pack-objects.txt +++ b/Documentation/git-pack-objects.txt @@ -105,8 +105,9 @@ base-name:: `--window-memory=0` makes memory usage unlimited, which is the default. ---max-pack-size=<n>:: - Maximum size of each output packfile, expressed in MiB. +--max-pack-size=[N]:: + Maximum size of each output pack file. The size can be suffixed with + "k", "m", or "g". The minimum size allowed is limited to 1 MiB. If specified, multiple packfiles may be created. The default is unlimited, unless the config variable `pack.packSizeLimit` is set. diff --git a/Documentation/git-push.txt b/Documentation/git-push.txt index 73a921ca0f..bd79119dd3 100644 --- a/Documentation/git-push.txt +++ b/Documentation/git-push.txt @@ -176,12 +176,17 @@ If --porcelain is used, then each line of the output is of the form: <flag> \t <from>:<to> \t <summary> (<reason>) ------------------------------- +The status of up-to-date refs is shown only if --porcelain or --verbose +option is used. + flag:: - A single character indicating the status of the ref. This is - blank for a successfully pushed ref, `!` for a ref that was - rejected or failed to push, and '=' for a ref that was up to - date and did not need pushing (note that the status of up to - date refs is shown only when `git push` is running verbosely). + A single character indicating the status of the ref: +(space);; for a successfully pushed fast-forward; +`{plus}`;; for a successful forced update; +`-`;; for a successfully deleted ref; +`*`;; for a successfully pushed new ref; +`!`;; for a ref that was rejected or failed to push; and +`=`;; for a ref that was up to date and did not need pushing. summary:: For a successfully pushed ref, the summary shows the old and new diff --git a/Documentation/git-repack.txt b/Documentation/git-repack.txt index 538895c50c..8c67d1724f 100644 --- a/Documentation/git-repack.txt +++ b/Documentation/git-repack.txt @@ -98,24 +98,26 @@ other objects in that pack they already have locally. `--window-memory=0` makes memory usage unlimited, which is the default. ---max-pack-size=<n>:: - Maximum size of each output packfile, expressed in MiB. +--max-pack-size=[N]:: + Maximum size of each output pack file. The size can be suffixed with + "k", "m", or "g". The minimum size allowed is limited to 1 MiB. If specified, multiple packfiles may be created. - The default is unlimited. + The default is unlimited, unless the config variable + `pack.packSizeLimit` is set. Configuration ------------- -When configuration variable `repack.UseDeltaBaseOffset` is set -for the repository, the command passes `--delta-base-offset` -option to 'git pack-objects'; this typically results in slightly -smaller packs, but the generated packs are incompatible with -versions of git older than (and including) v1.4.3; do not set -the variable in a repository that older version of git needs to -be able to read (this includes repositories from which packs can -be copied out over http or rsync, and people who obtained packs -that way can try to use older git with it). +By default, the command passes `--delta-base-offset` option to +'git pack-objects'; this typically results in slightly smaller packs, +but the generated packs are incompatible with versions of Git older than +version 1.4.4. If you need to share your repository with such ancient Git +versions, either directly or via the dumb http or rsync protocol, then you +need to set the configuration variable `repack.UseDeltaBaseOffset` to +"false" and repack. Access from old Git versions over the native protocol +is unaffected by this option as the conversion is performed on the fly +as needed in that case. Author diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt index fc731525da..d677c72d5e 100644 --- a/Documentation/git-rev-parse.txt +++ b/Documentation/git-rev-parse.txt @@ -244,7 +244,7 @@ when you run 'git merge'. * The special construct '@\{-<n>\}' means the <n>th branch checked out before the current one. -* The suffix '@{upstream}' to a ref (short form 'ref@{u}') refers to +* The suffix '@\{upstream\}' to a ref (short form 'ref@\{u\}') refers to the branch the ref is set to build on top of. Missing ref defaults to the current branch. diff --git a/Documentation/git.txt b/Documentation/git.txt index 8c5f5b05cb..01c463101b 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -43,9 +43,15 @@ unreleased) version of git, that is available from 'master' branch of the `git.git` repository. Documentation for older releases are available here: -* link:v1.6.6.1/git.html[documentation for release 1.6.6.1] +* link:v1.7.0/git.html[documentation for release 1.7.0] * release notes for + link:RelNotes-1.7.0.txt[1.7.0]. + +* link:v1.6.6.2/git.html[documentation for release 1.6.6.2] + +* release notes for + link:RelNotes-1.6.6.2.txt[1.6.6.2], link:RelNotes-1.6.6.1.txt[1.6.6.1], link:RelNotes-1.6.6.txt[1.6.6]. diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index a7d8c63427..a668143d7a 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v1.6.6.GIT +DEF_VER=v1.7.0.GIT LF=' ' @@ -1 +1 @@ -Documentation/RelNotes-1.7.0.txt
\ No newline at end of file +Documentation/RelNotes-1.7.1.txt
\ No newline at end of file diff --git a/builtin-archive.c b/builtin-archive.c index 3fb41364a5..6a887f5a9d 100644 --- a/builtin-archive.c +++ b/builtin-archive.c @@ -70,7 +70,7 @@ static const char *format_from_name(const char *filename) return NULL; ext++; if (!strcasecmp(ext, "zip")) - return "zip"; + return "--format=zip"; return NULL; } @@ -84,7 +84,7 @@ int cmd_archive(int argc, const char **argv, const char *prefix) const char *exec = "git-upload-archive"; const char *output = NULL; const char *remote = NULL; - const char *format = NULL; + const char *format_option = NULL; struct option local_opts[] = { OPT_STRING('o', "output", &output, "file", "write the archive to this file"), @@ -92,33 +92,31 @@ int cmd_archive(int argc, const char **argv, const char *prefix) "retrieve the archive from remote repository <repo>"), OPT_STRING(0, "exec", &exec, "cmd", "path to the remote git-upload-archive command"), - OPT_STRING(0, "format", &format, "fmt", "archive format"), OPT_END() }; - char fmt_opt[32]; argc = parse_options(argc, argv, prefix, local_opts, NULL, PARSE_OPT_KEEP_ALL); if (output) { create_output_file(output); - if (!format) - format = format_from_name(output); + format_option = format_from_name(output); } - if (format) { - sprintf(fmt_opt, "--format=%s", format); - /* - * We have enough room in argv[] to muck it in place, - * because either --format and/or --output must have - * been given on the original command line if we get - * to this point, and parse_options() must have eaten - * it, i.e. we can add back one element to the array. - * But argv[] may contain "--"; we should make it the - * first option. - */ + /* + * We have enough room in argv[] to muck it in place, because + * --output must have been given on the original command line + * if we get to this point, and parse_options() must have eaten + * it, i.e. we can add back one element to the array. + * + * We add a fake --format option at the beginning, with the + * format inferred from our output filename. This way explicit + * --format options can override it, and the fake option is + * inserted before any "--" that might have been given. + */ + if (format_option) { memmove(argv + 2, argv + 1, sizeof(*argv) * argc); - argv[1] = fmt_opt; + argv[1] = format_option; argv[++argc] = NULL; } diff --git a/builtin-blame.c b/builtin-blame.c index 6408ec8ee6..10f7eacf6e 100644 --- a/builtin-blame.c +++ b/builtin-blame.c @@ -2433,7 +2433,7 @@ parse_done: if (top < 1) top = lno; bottom--; - if (lno < top) + if (lno < top || lno < bottom) die("file %s has only %lu lines", path, lno); ent = xcalloc(1, sizeof(*ent)); diff --git a/builtin-clean.c b/builtin-clean.c index 3a70fa81bd..fac64e6cd3 100644 --- a/builtin-clean.c +++ b/builtin-clean.c @@ -67,8 +67,8 @@ int cmd_clean(int argc, const char **argv, const char *prefix) die("-x and -X cannot be used together"); if (!show_only && !force) - die("clean.requireForce%s set and -n or -f not given; " - "refusing to clean", config_set ? "" : " not"); + die("clean.requireForce %s to true and neither -n nor -f given; " + "refusing to clean", config_set ? "set" : "defaults"); if (force > 1) rm_flags = 0; diff --git a/builtin-fsck.c b/builtin-fsck.c index 0e5faae381..0929c7f245 100644 --- a/builtin-fsck.c +++ b/builtin-fsck.c @@ -578,7 +578,7 @@ static struct option fsck_opts[] = { OPT_BOOLEAN(0, "root", &show_root, "report root nodes"), OPT_BOOLEAN(0, "cache", &keep_cache_objects, "make index objects head nodes"), OPT_BOOLEAN(0, "reflogs", &include_reflogs, "make reflogs head nodes (default)"), - OPT_BOOLEAN(0, "full", &check_full, "also consider alternate objects"), + OPT_BOOLEAN(0, "full", &check_full, "also consider packs and alternate objects"), OPT_BOOLEAN(0, "strict", &check_strict, "enable more strict checking"), OPT_BOOLEAN(0, "lost-found", &write_lost_and_found, "write dangling objects in .git/lost-found"), diff --git a/builtin-grep.c b/builtin-grep.c index 0ef849cb84..552ef1face 100644 --- a/builtin-grep.c +++ b/builtin-grep.c @@ -409,15 +409,25 @@ static int pathspec_matches(const char **paths, const char *name, int max_depth) return 0; } +static void *lock_and_read_sha1_file(const unsigned char *sha1, enum object_type *type, unsigned long *size) +{ + void *data; + + if (use_threads) { + read_sha1_lock(); + data = read_sha1_file(sha1, type, size); + read_sha1_unlock(); + } else { + data = read_sha1_file(sha1, type, size); + } + return data; +} + static void *load_sha1(const unsigned char *sha1, unsigned long *size, const char *name) { enum object_type type; - char *data; - - read_sha1_lock(); - data = read_sha1_file(sha1, &type, size); - read_sha1_unlock(); + void *data = lock_and_read_sha1_file(sha1, &type, size); if (!data) error("'%s': unable to read %s", name, sha1_to_hex(sha1)); @@ -606,10 +616,7 @@ static int grep_tree(struct grep_opt *opt, const char **paths, void *data; unsigned long size; - read_sha1_lock(); - data = read_sha1_file(entry.sha1, &type, &size); - read_sha1_unlock(); - + data = lock_and_read_sha1_file(entry.sha1, &type, &size); if (!data) die("unable to read tree (%s)", sha1_to_hex(entry.sha1)); @@ -889,6 +896,16 @@ int cmd_grep(int argc, const char **argv, const char *prefix) /* die the same way as if we did it at the beginning */ setup_git_directory(); + /* + * skip a -- separator; we know it cannot be + * separating revisions from pathnames if + * we haven't even had any patterns yet + */ + if (argc > 0 && !opt.pattern_list && !strcmp(argv[0], "--")) { + argv++; + argc--; + } + /* First unrecognized non-option token */ if (argc > 0 && !opt.pattern_list) { append_grep_pattern(&opt, argv[0], "command line", 0, diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 4a41547a27..e1d3adf405 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -77,7 +77,7 @@ static int allow_ofs_delta; static const char *base_name; static int progress = 1; static int window = 10; -static uint32_t pack_size_limit, pack_size_limit_cfg; +static unsigned long pack_size_limit, pack_size_limit_cfg; static int depth = 50; static int delta_search_threads; static int pack_to_stdout; @@ -246,7 +246,7 @@ static unsigned long write_object(struct sha1file *f, type = entry->type; - /* write limit if limited packsize and not first object */ + /* apply size limit if limited packsize and not first object */ if (!pack_size_limit || !nr_written) limit = 0; else if (pack_size_limit <= write_offset) @@ -443,7 +443,7 @@ static int write_one(struct sha1file *f, /* offset is non zero if object is written already. */ if (e->idx.offset || e->preferred_base) - return 1; + return -1; /* if we are deltified, write out base object first. */ if (e->delta && !write_one(f, e->delta, offset)) @@ -587,19 +587,6 @@ static void write_pack_file(void) if (written != nr_result) die("wrote %"PRIu32" objects while expecting %"PRIu32, written, nr_result); - /* - * We have scanned through [0 ... i). Since we have written - * the correct number of objects, the remaining [i ... nr_objects) - * items must be either already written (due to out-of-order delta base) - * or a preferred base. Count those which are neither and complain if any. - */ - for (j = 0; i < nr_objects; i++) { - struct object_entry *e = objects + i; - j += !e->idx.offset && !e->preferred_base; - } - if (j) - die("wrote %"PRIu32" objects as expected but %"PRIu32 - " unwritten", written, j); } static int locate_object_entry_hash(const unsigned char *sha1) @@ -2203,10 +2190,8 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) continue; } if (!prefixcmp(arg, "--max-pack-size=")) { - char *end; pack_size_limit_cfg = 0; - pack_size_limit = strtoul(arg+16, &end, 0) * 1024 * 1024; - if (!arg[16] || *end) + if (!git_parse_ulong(arg+16, &pack_size_limit)) usage(pack_usage); continue; } @@ -2346,9 +2331,12 @@ int cmd_pack_objects(int argc, const char **argv, const char *prefix) if (!pack_to_stdout && !pack_size_limit) pack_size_limit = pack_size_limit_cfg; - if (pack_to_stdout && pack_size_limit) die("--max-pack-size cannot be used to build a pack for transfer."); + if (pack_size_limit && pack_size_limit < 1024*1024) { + warning("minimum pack size limit is 1 MiB"); + pack_size_limit = 1024*1024; + } if (!pack_to_stdout && thin) die("--thin cannot be used to build an indexable pack."); diff --git a/builtin-revert.c b/builtin-revert.c index 8ac86f0943..eff52687a8 100644 --- a/builtin-revert.c +++ b/builtin-revert.c @@ -38,6 +38,7 @@ static const char * const cherry_pick_usage[] = { static int edit, no_replay, no_commit, mainline, signoff; static enum { REVERT, CHERRY_PICK } action; static struct commit *commit; +static const char *commit_name; static int allow_rerere_auto; static const char *me; @@ -49,7 +50,6 @@ static void parse_args(int argc, const char **argv) const char * const * usage_str = action == REVERT ? revert_usage : cherry_pick_usage; unsigned char sha1[20]; - const char *arg; int noop; struct option options[] = { OPT_BOOLEAN('n', "no-commit", &no_commit, "don't automatically commit"), @@ -64,19 +64,13 @@ static void parse_args(int argc, const char **argv) if (parse_options(argc, argv, NULL, options, usage_str, 0) != 1) usage_with_options(usage_str, options); - arg = argv[0]; - if (get_sha1(arg, sha1)) - die ("Cannot find '%s'", arg); - commit = (struct commit *)parse_object(sha1); + commit_name = argv[0]; + if (get_sha1(commit_name, sha1)) + die ("Cannot find '%s'", commit_name); + commit = lookup_commit_reference(sha1); if (!commit) - die ("Could not find %s", sha1_to_hex(sha1)); - if (commit->object.type == OBJ_TAG) { - commit = (struct commit *) - deref_tag((struct object *)commit, arg, strlen(arg)); - } - if (commit->object.type != OBJ_COMMIT) - die ("'%s' does not point to a commit", arg); + exit(1); } static char *get_oneline(const char *message) @@ -204,25 +198,27 @@ static void set_author_ident_env(const char *message) sha1_to_hex(commit->object.sha1)); } -static char *help_msg(const unsigned char *sha1) +static char *help_msg(const char *name) { - static char helpbuf[1024]; + struct strbuf helpbuf = STRBUF_INIT; char *msg = getenv("GIT_CHERRY_PICK_HELP"); if (msg) return msg; - strcpy(helpbuf, " After resolving the conflicts,\n" - "mark the corrected paths with 'git add <paths>' " - "or 'git rm <paths>' and commit the result."); + strbuf_addstr(&helpbuf, " After resolving the conflicts,\n" + "mark the corrected paths with 'git add <paths>' or 'git rm <paths>'\n" + "and commit the result"); if (action == CHERRY_PICK) { - sprintf(helpbuf + strlen(helpbuf), - "\nWhen commiting, use the option " - "'-c %s' to retain authorship and message.", - find_unique_abbrev(sha1, DEFAULT_ABBREV)); + strbuf_addf(&helpbuf, " with: \n" + "\n" + " git commit -c %s\n", + name); } - return helpbuf; + else + strbuf_addch(&helpbuf, '.'); + return strbuf_detach(&helpbuf, NULL); } static struct tree *empty_tree(void) @@ -409,7 +405,7 @@ static int revert_or_cherry_pick(int argc, const char **argv) if (commit_lock_file(&msg_file) < 0) die ("Error wrapping up %s", defmsg); fprintf(stderr, "Automatic %s failed.%s\n", - me, help_msg(commit->object.sha1)); + me, help_msg(commit_name)); rerere(allow_rerere_auto); exit(1); } diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index da46bf81e6..fe93747c93 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -667,7 +667,7 @@ _git_am () { local cur="${COMP_WORDS[COMP_CWORD]}" dir="$(__gitdir)" if [ -d "$dir"/rebase-apply ]; then - __gitcomp "--skip --resolved --abort" + __gitcomp "--skip --continue --resolved --abort" return fi case "$cur" in @@ -1386,6 +1386,7 @@ _git_rebase () --preserve-merges --stat --no-stat --committer-date-is-author-date --ignore-date --ignore-whitespace --whitespace= + --autosquash " return @@ -2893,6 +2893,8 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac) ; else if (!prefixcmp(arg, "--output=")) { options->file = fopen(arg + strlen("--output="), "w"); + if (!options->file) + die_errno("Could not open '%s'", arg + strlen("--output=")); options->close_file = 1; } else return 0; diff --git a/fast-import.c b/fast-import.c index ca210822db..b477dc6a8f 100644 --- a/fast-import.c +++ b/fast-import.c @@ -2764,11 +2764,6 @@ static void option_date_format(const char *fmt) die("unknown --date-format argument %s", fmt); } -static void option_max_pack_size(const char *packsize) -{ - max_packsize = strtoumax(packsize, NULL, 0) * 1024 * 1024; -} - static void option_depth(const char *depth) { max_depth = strtoul(depth, NULL, 0); @@ -2798,9 +2793,22 @@ static void option_export_pack_edges(const char *edges) static int parse_one_option(const char *option) { if (!prefixcmp(option, "max-pack-size=")) { - option_max_pack_size(option + 14); + unsigned long v; + if (!git_parse_ulong(option + 14, &v)) + return 0; + if (v < 8192) { + warning("max-pack-size is now in bytes, assuming --max-pack-size=%lum", v); + v *= 1024 * 1024; + } else if (v < 1024 * 1024) { + warning("minimum max-pack-size is 1 MiB"); + v = 1024 * 1024; + } + max_packsize = v; } else if (!prefixcmp(option, "big-file-threshold=")) { - big_file_threshold = strtoumax(option + 19, NULL, 0) * 1024 * 1024; + unsigned long v; + if (!git_parse_ulong(option + 19, &v)) + return 0; + big_file_threshold = v; } else if (!prefixcmp(option, "depth=")) { option_depth(option + 6); } else if (!prefixcmp(option, "active-branches=")) { @@ -25,7 +25,8 @@ p= pass it through git-apply patch-format= format the patch(es) are in reject pass it through git-apply resolvemsg= override error message when patch failure occurs -r,resolved to be used after a patch failure +continue continue applying patches after resolving a conflict +r,resolved synonyms for --continue skip skip the current patch abort restore the original branch and abort the patching operation. committer-date-is-author-date lie about committer date @@ -318,7 +319,7 @@ do scissors=t ;; --no-scissors) scissors=f ;; - -r|--resolved) + -r|--resolved|--continue) resolved=t ;; --skip) skip=t ;; diff --git a/git-filter-branch.sh b/git-filter-branch.sh index e95845c0d6..88fb0f070e 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -207,7 +207,7 @@ t,) ,*) ;; *) - die "Cannot set --prune-empty and --filter-commit at the same time" + die "Cannot set --prune-empty and --commit-filter at the same time" esac case "$force" in diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh index 1fb3cbfc78..7d5451198c 100755 --- a/git-gui/git-gui.sh +++ b/git-gui/git-gui.sh @@ -121,6 +121,8 @@ unset oguimsg set _appname {Git Gui} set _gitdir {} +set _gitworktree {} +set _isbare {} set _gitexec {} set _githtmldir {} set _reponame {} @@ -276,6 +278,32 @@ proc get_config {name} { } } +proc is_bare {} { + global _isbare + global _gitdir + global _gitworktree + + if {$_isbare eq {}} { + if {[catch { + set _bare [git rev-parse --is-bare-repository] + switch -- $_bare { + true { set _isbare 1 } + false { set _isbare 0} + default { throw } + } + }]} { + if {[is_config_true core.bare] + || ($_gitworktree eq {} + && [lindex [file split $_gitdir] end] ne {.git})} { + set _isbare 1 + } else { + set _isbare 0 + } + } + } + return $_isbare +} + ###################################################################### ## ## handy utils @@ -649,12 +677,17 @@ if {[is_Windows]} { ## config defaults set cursor_ptr arrow -font create font_diff -family Courier -size 10 font create font_ui -catch { - label .dummy - eval font configure font_ui [font actual [.dummy cget -font]] - destroy .dummy +if {[lsearch -exact [font names] TkDefaultFont] != -1} { + eval [linsert [font actual TkDefaultFont] 0 font configure font_ui] + eval [linsert [font actual TkFixedFont] 0 font create font_diff] +} else { + font create font_diff -family Courier -size 10 + catch { + label .dummy + eval font configure font_ui [font actual [.dummy cget -font]] + destroy .dummy + } } font create font_uiitalic @@ -669,6 +702,9 @@ foreach class {Button Checkbutton Entry Label } if {![is_MacOSX]} { option add *Menu.font font_ui + option add *Entry.borderWidth 1 startupFile + option add *Entry.relief sunken startupFile + option add *RadioButton.anchor w startupFile } unset class @@ -721,6 +757,18 @@ proc apply_config {} { font configure ${font}bold -weight bold font configure ${font}italic -slant italic } + + global use_ttk NS + set use_ttk 0 + set NS {} + if {$repo_config(gui.usettk)} { + set use_ttk [package vsatisfies [package provide Tk] 8.5] + if {$use_ttk} { + set NS ttk + bind [winfo class .] <<ThemeChanged>> [list InitTheme] + pave_toplevel . + } + } } set default_config(branch.autosetupmerge) true @@ -747,6 +795,7 @@ set default_config(gui.fontui) [font configure font_ui] set default_config(gui.fontdiff) [font configure font_diff] # TODO: this option should be added to the git-config documentation set default_config(gui.maxfilesdisplayed) 5000 +set default_config(gui.usettk) 1 set font_descs { {fontui font_ui {mc "Main Font"}} {fontdiff font_diff {mc "Diff/Console Font"}} @@ -1100,25 +1149,41 @@ if {![file isdirectory $_gitdir]} { error_popup [strcat [mc "Git directory not found:"] "\n\n$_gitdir"] exit 1 } +# _gitdir exists, so try loading the config +load_config 0 +apply_config +# try to set work tree from environment, falling back to core.worktree +if {[catch { set _gitworktree $env(GIT_WORK_TREE) }]} { + set _gitworktree [get_config core.worktree] +} if {$_prefix ne {}} { - regsub -all {[^/]+/} $_prefix ../ cdup + if {$_gitworktree eq {}} { + regsub -all {[^/]+/} $_prefix ../ cdup + } else { + set cdup $_gitworktree + } if {[catch {cd $cdup} err]} { catch {wm withdraw .} error_popup [strcat [mc "Cannot move to top of working directory:"] "\n\n$err"] exit 1 } + set _gitworktree [pwd] unset cdup } elseif {![is_enabled bare]} { - if {[lindex [file split $_gitdir] end] ne {.git}} { + if {[is_bare]} { catch {wm withdraw .} - error_popup [strcat [mc "Cannot use funny .git directory:"] "\n\n$_gitdir"] + error_popup [strcat [mc "Cannot use bare repository:"] "\n\n$_gitdir"] exit 1 } - if {[catch {cd [file dirname $_gitdir]} err]} { + if {$_gitworktree eq {}} { + set _gitworktree [file dirname $_gitdir] + } + if {[catch {cd $_gitworktree} err]} { catch {wm withdraw .} - error_popup [strcat [mc "No working directory"] " [file dirname $_gitdir]:\n\n$err"] + error_popup [strcat [mc "No working directory"] " $_gitworktree:\n\n$err"] exit 1 } + set _gitworktree [pwd] } set _reponame [file split [file normalize $_gitdir]] if {[lindex $_reponame end] eq {.git}} { @@ -1127,6 +1192,9 @@ if {[lindex $_reponame end] eq {.git}} { set _reponame [lindex $_reponame end] } +set env(GIT_DIR) $_gitdir +set env(GIT_WORK_TREE) $_gitworktree + ###################################################################### ## ## global init @@ -1808,15 +1876,6 @@ static unsigned char file_fulltick_bits[] = { 0x62, 0x10, 0x02, 0x10, 0xfe, 0x1f}; } -maskdata $filemask -image create bitmap file_parttick -background white -foreground "#005050" -data { -#define parttick_width 14 -#define parttick_height 15 -static unsigned char parttick_bits[] = { - 0xfe, 0x01, 0x02, 0x03, 0x7a, 0x05, 0x02, 0x09, 0x7a, 0x1f, 0x02, 0x10, - 0x7a, 0x14, 0x02, 0x16, 0x02, 0x13, 0x8a, 0x11, 0xda, 0x10, 0x72, 0x10, - 0x22, 0x10, 0x02, 0x10, 0xfe, 0x1f}; -} -maskdata $filemask - image create bitmap file_question -background white -foreground black -data { #define file_question_width 14 #define file_question_height 15 @@ -1857,7 +1916,7 @@ set ui_index .vpane.files.index.list set ui_workdir .vpane.files.workdir.list set all_icons(_$ui_index) file_plain -set all_icons(A$ui_index) file_fulltick +set all_icons(A$ui_index) file_plain set all_icons(M$ui_index) file_fulltick set all_icons(D$ui_index) file_removed set all_icons(U$ui_index) file_merge @@ -1933,7 +1992,10 @@ proc incr_font_size {font {amt 1}} { set starting_gitk_msg [mc "Starting gitk... please wait..."] -proc do_gitk {revs} { +proc do_gitk {revs {is_submodule false}} { + global current_diff_path file_states current_diff_side ui_index + global _gitdir _gitworktree + # -- Always start gitk through whatever we were loaded with. This # lets us bypass using shell process on Windows systems. # @@ -1944,23 +2006,78 @@ proc do_gitk {revs} { } else { global env - if {[info exists env(GIT_DIR)]} { - set old_GIT_DIR $env(GIT_DIR) + set pwd [pwd] + + if {!$is_submodule} { + if {![is_bare]} { + cd $_gitworktree + } } else { - set old_GIT_DIR {} + cd $current_diff_path + if {$revs eq {--}} { + set s $file_states($current_diff_path) + set old_sha1 {} + set new_sha1 {} + switch -glob -- [lindex $s 0] { + M_ { set old_sha1 [lindex [lindex $s 2] 1] } + _M { set old_sha1 [lindex [lindex $s 3] 1] } + MM { + if {$current_diff_side eq $ui_index} { + set old_sha1 [lindex [lindex $s 2] 1] + set new_sha1 [lindex [lindex $s 3] 1] + } else { + set old_sha1 [lindex [lindex $s 3] 1] + } + } + } + set revs $old_sha1...$new_sha1 + } + # GIT_DIR and GIT_WORK_TREE for the submodule are not the ones + # we've been using for the main repository, so unset them. + # TODO we could make life easier (start up faster?) for gitk + # by setting these to the appropriate values to allow gitk + # to skip the heuristics to find their proper value + unset env(GIT_DIR) + unset env(GIT_WORK_TREE) + } + eval exec $cmd $revs "--" "--" & + + set env(GIT_DIR) $_gitdir + set env(GIT_WORK_TREE) $_gitworktree + cd $pwd + + ui_status $::starting_gitk_msg + after 10000 { + ui_ready $starting_gitk_msg } + } +} + +proc do_git_gui {} { + global current_diff_path + + # -- Always start git gui through whatever we were loaded with. This + # lets us bypass using shell process on Windows systems. + # + set exe [list [_which git]] + if {$exe eq {}} { + error_popup [mc "Couldn't find git gui in PATH"] + } else { + global env + global _gitdir _gitworktree + + # see note in do_gitk about unsetting these vars when + # running tools in a submodule + unset env(GIT_DIR) + unset env(GIT_WORK_TREE) set pwd [pwd] - cd [file dirname [gitdir]] - set env(GIT_DIR) [file tail [gitdir]] + cd $current_diff_path - eval exec $cmd $revs "--" "--" & + eval exec $exe gui & - if {$old_GIT_DIR eq {}} { - unset env(GIT_DIR) - } else { - set env(GIT_DIR) $old_GIT_DIR - } + set env(GIT_DIR) $_gitdir + set env(GIT_WORK_TREE) $_gitworktree cd $pwd ui_status $::starting_gitk_msg @@ -1971,6 +2088,7 @@ proc do_gitk {revs} { } proc do_explore {} { + global _gitworktree set explorer {} if {[is_Cygwin] || [is_Windows]} { set explorer "explorer.exe" @@ -1980,7 +2098,7 @@ proc do_explore {} { # freedesktop.org-conforming system is our best shot set explorer "xdg-open" } - eval exec $explorer [list [file nativename [file dirname [gitdir]]]] & + eval exec $explorer $_gitworktree & } set is_quitting 0 @@ -1996,7 +2114,7 @@ proc do_quit {{rc {1}}} { global ui_comm is_quitting repo_config commit_type global GITGUI_BCK_exists GITGUI_BCK_i global ui_comm_spell - global ret_code + global ret_code use_ttk if {$is_quitting} return set is_quitting 1 @@ -2054,8 +2172,13 @@ proc do_quit {{rc {1}}} { } set cfg_geometry [list] lappend cfg_geometry [wm geometry .] - lappend cfg_geometry [lindex [.vpane sash coord 0] 0] - lappend cfg_geometry [lindex [.vpane.files sash coord 0] 1] + if {$use_ttk} { + lappend cfg_geometry [.vpane sashpos 0] + lappend cfg_geometry [.vpane.files sashpos 0] + } else { + lappend cfg_geometry [lindex [.vpane sash coord 0] 0] + lappend cfg_geometry [lindex [.vpane.files sash coord 0] 1] + } if {[catch {set rc_geometry $repo_config(gui.geometry)}]} { set rc_geometry {} } @@ -2344,8 +2467,6 @@ proc show_less_context {} { ## ## ui construction -load_config 0 -apply_config set ui_comm {} # -- Menu Bar @@ -2377,10 +2498,12 @@ if {[is_enabled multicommit] || [is_enabled singlecommit]} { # menu .mbar.repository -.mbar.repository add command \ - -label [mc "Explore Working Copy"] \ - -command {do_explore} -.mbar.repository add separator +if {![is_bare]} { + .mbar.repository add command \ + -label [mc "Explore Working Copy"] \ + -command {do_explore} + .mbar.repository add separator +} .mbar.repository add command \ -label [mc "Browse Current Branch's Files"] \ @@ -2822,14 +2945,13 @@ default { # -- Branch Control # -frame .branch \ - -borderwidth 1 \ - -relief sunken -label .branch.l1 \ +${NS}::frame .branch +if {!$use_ttk} {.branch configure -borderwidth 1 -relief sunken} +${NS}::label .branch.l1 \ -text [mc "Current Branch:"] \ -anchor w \ -justify left -label .branch.cb \ +${NS}::label .branch.cb \ -textvariable current_branch \ -anchor w \ -justify left @@ -2839,15 +2961,20 @@ pack .branch -side top -fill x # -- Main Window Layout # -panedwindow .vpane -orient horizontal -panedwindow .vpane.files -orient vertical -.vpane add .vpane.files -sticky nsew -height 100 -width 200 +${NS}::panedwindow .vpane -orient horizontal +${NS}::panedwindow .vpane.files -orient vertical +if {$use_ttk} { + .vpane add .vpane.files +} else { + .vpane add .vpane.files -sticky nsew -height 100 -width 200 +} pack .vpane -anchor n -side top -fill both -expand 1 # -- Index File List # -frame .vpane.files.index -height 100 -width 200 -label .vpane.files.index.title -text [mc "Staged Changes (Will Commit)"] \ +${NS}::frame .vpane.files.index -height 100 -width 200 +tlabel .vpane.files.index.title \ + -text [mc "Staged Changes (Will Commit)"] \ -background lightgreen -foreground black text $ui_index -background white -foreground black \ -borderwidth 0 \ @@ -2857,8 +2984,8 @@ text $ui_index -background white -foreground black \ -xscrollcommand {.vpane.files.index.sx set} \ -yscrollcommand {.vpane.files.index.sy set} \ -state disabled -scrollbar .vpane.files.index.sx -orient h -command [list $ui_index xview] -scrollbar .vpane.files.index.sy -orient v -command [list $ui_index yview] +${NS}::scrollbar .vpane.files.index.sx -orient h -command [list $ui_index xview] +${NS}::scrollbar .vpane.files.index.sy -orient v -command [list $ui_index yview] pack .vpane.files.index.title -side top -fill x pack .vpane.files.index.sx -side bottom -fill x pack .vpane.files.index.sy -side right -fill y @@ -2866,8 +2993,8 @@ pack $ui_index -side left -fill both -expand 1 # -- Working Directory File List # -frame .vpane.files.workdir -height 100 -width 200 -label .vpane.files.workdir.title -text [mc "Unstaged Changes"] \ +${NS}::frame .vpane.files.workdir -height 100 -width 200 +tlabel .vpane.files.workdir.title -text [mc "Unstaged Changes"] \ -background lightsalmon -foreground black text $ui_workdir -background white -foreground black \ -borderwidth 0 \ @@ -2877,15 +3004,19 @@ text $ui_workdir -background white -foreground black \ -xscrollcommand {.vpane.files.workdir.sx set} \ -yscrollcommand {.vpane.files.workdir.sy set} \ -state disabled -scrollbar .vpane.files.workdir.sx -orient h -command [list $ui_workdir xview] -scrollbar .vpane.files.workdir.sy -orient v -command [list $ui_workdir yview] +${NS}::scrollbar .vpane.files.workdir.sx -orient h -command [list $ui_workdir xview] +${NS}::scrollbar .vpane.files.workdir.sy -orient v -command [list $ui_workdir yview] pack .vpane.files.workdir.title -side top -fill x pack .vpane.files.workdir.sx -side bottom -fill x pack .vpane.files.workdir.sy -side right -fill y pack $ui_workdir -side left -fill both -expand 1 -.vpane.files add .vpane.files.workdir -sticky nsew -.vpane.files add .vpane.files.index -sticky nsew +.vpane.files add .vpane.files.workdir +.vpane.files add .vpane.files.index +if {!$use_ttk} { + .vpane.files paneconfigure .vpane.files.workdir -sticky news + .vpane.files paneconfigure .vpane.files.index -sticky news +} foreach i [list $ui_index $ui_workdir] { rmsel_tag $i @@ -2895,68 +3026,69 @@ unset i # -- Diff and Commit Area # -frame .vpane.lower -height 300 -width 400 -frame .vpane.lower.commarea -frame .vpane.lower.diff -relief sunken -borderwidth 1 +${NS}::frame .vpane.lower -height 300 -width 400 +${NS}::frame .vpane.lower.commarea +${NS}::frame .vpane.lower.diff -relief sunken -borderwidth 1 pack .vpane.lower.diff -fill both -expand 1 pack .vpane.lower.commarea -side bottom -fill x -.vpane add .vpane.lower -sticky nsew +.vpane add .vpane.lower +if {!$use_ttk} {.vpane paneconfigure .vpane.lower -sticky nsew} # -- Commit Area Buttons # -frame .vpane.lower.commarea.buttons -label .vpane.lower.commarea.buttons.l -text {} \ +${NS}::frame .vpane.lower.commarea.buttons +${NS}::label .vpane.lower.commarea.buttons.l -text {} \ -anchor w \ -justify left pack .vpane.lower.commarea.buttons.l -side top -fill x pack .vpane.lower.commarea.buttons -side left -fill y -button .vpane.lower.commarea.buttons.rescan -text [mc Rescan] \ +${NS}::button .vpane.lower.commarea.buttons.rescan -text [mc Rescan] \ -command ui_do_rescan pack .vpane.lower.commarea.buttons.rescan -side top -fill x lappend disable_on_lock \ {.vpane.lower.commarea.buttons.rescan conf -state} -button .vpane.lower.commarea.buttons.incall -text [mc "Stage Changed"] \ +${NS}::button .vpane.lower.commarea.buttons.incall -text [mc "Stage Changed"] \ -command do_add_all pack .vpane.lower.commarea.buttons.incall -side top -fill x lappend disable_on_lock \ {.vpane.lower.commarea.buttons.incall conf -state} if {![is_enabled nocommitmsg]} { - button .vpane.lower.commarea.buttons.signoff -text [mc "Sign Off"] \ + ${NS}::button .vpane.lower.commarea.buttons.signoff -text [mc "Sign Off"] \ -command do_signoff pack .vpane.lower.commarea.buttons.signoff -side top -fill x } -button .vpane.lower.commarea.buttons.commit -text [commit_btn_caption] \ +${NS}::button .vpane.lower.commarea.buttons.commit -text [commit_btn_caption] \ -command do_commit pack .vpane.lower.commarea.buttons.commit -side top -fill x lappend disable_on_lock \ {.vpane.lower.commarea.buttons.commit conf -state} if {![is_enabled nocommit]} { - button .vpane.lower.commarea.buttons.push -text [mc Push] \ + ${NS}::button .vpane.lower.commarea.buttons.push -text [mc Push] \ -command do_push_anywhere pack .vpane.lower.commarea.buttons.push -side top -fill x } # -- Commit Message Buffer # -frame .vpane.lower.commarea.buffer -frame .vpane.lower.commarea.buffer.header +${NS}::frame .vpane.lower.commarea.buffer +${NS}::frame .vpane.lower.commarea.buffer.header set ui_comm .vpane.lower.commarea.buffer.t set ui_coml .vpane.lower.commarea.buffer.header.l if {![is_enabled nocommit]} { - radiobutton .vpane.lower.commarea.buffer.header.new \ + ${NS}::radiobutton .vpane.lower.commarea.buffer.header.new \ -text [mc "New Commit"] \ -command do_select_commit_type \ -variable selected_commit_type \ -value new lappend disable_on_lock \ [list .vpane.lower.commarea.buffer.header.new conf -state] - radiobutton .vpane.lower.commarea.buffer.header.amend \ + ${NS}::radiobutton .vpane.lower.commarea.buffer.header.amend \ -text [mc "Amend Last Commit"] \ -command do_select_commit_type \ -variable selected_commit_type \ @@ -2965,7 +3097,7 @@ if {![is_enabled nocommit]} { [list .vpane.lower.commarea.buffer.header.amend conf -state] } -label $ui_coml \ +${NS}::label $ui_coml \ -anchor w \ -justify left proc trace_commit_type {varname args} { @@ -2997,7 +3129,7 @@ text $ui_comm -background white -foreground black \ -width $repo_config(gui.commitmsgwidth) -height 9 -wrap none \ -font font_diff \ -yscrollcommand {.vpane.lower.commarea.buffer.sby set} -scrollbar .vpane.lower.commarea.buffer.sby \ +${NS}::scrollbar .vpane.lower.commarea.buffer.sby \ -command [list $ui_comm yview] pack .vpane.lower.commarea.buffer.header -side top -fill x pack .vpane.lower.commarea.buffer.sby -side right -fill y @@ -3063,19 +3195,19 @@ proc trace_current_diff_path {varname args} { } trace add variable current_diff_path write trace_current_diff_path -frame .vpane.lower.diff.header -background gold -label .vpane.lower.diff.header.status \ +gold_frame .vpane.lower.diff.header +tlabel .vpane.lower.diff.header.status \ -background gold \ -foreground black \ -width $max_status_desc \ -anchor w \ -justify left -label .vpane.lower.diff.header.file \ +tlabel .vpane.lower.diff.header.file \ -background gold \ -foreground black \ -anchor w \ -justify left -label .vpane.lower.diff.header.path \ +tlabel .vpane.lower.diff.header.path \ -background gold \ -foreground black \ -anchor w \ @@ -3099,7 +3231,7 @@ bind_button3 .vpane.lower.diff.header.path "tk_popup $ctxm %X %Y" # -- Diff Body # -frame .vpane.lower.diff.body +${NS}::frame .vpane.lower.diff.body set ui_diff .vpane.lower.diff.body.t text $ui_diff -background white -foreground black \ -borderwidth 0 \ @@ -3108,9 +3240,9 @@ text $ui_diff -background white -foreground black \ -xscrollcommand {.vpane.lower.diff.body.sbx set} \ -yscrollcommand {.vpane.lower.diff.body.sby set} \ -state disabled -scrollbar .vpane.lower.diff.body.sbx -orient horizontal \ +${NS}::scrollbar .vpane.lower.diff.body.sbx -orient horizontal \ -command [list $ui_diff xview] -scrollbar .vpane.lower.diff.body.sby -orient vertical \ +${NS}::scrollbar .vpane.lower.diff.body.sby -orient vertical \ -command [list $ui_diff yview] pack .vpane.lower.diff.body.sbx -side bottom -fill x pack .vpane.lower.diff.body.sby -side right -fill y @@ -3155,15 +3287,6 @@ $ui_diff tag raise sel proc create_common_diff_popup {ctxm} { $ctxm add command \ - -label [mc "Show Less Context"] \ - -command show_less_context - lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] - $ctxm add command \ - -label [mc "Show More Context"] \ - -command show_more_context - lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] - $ctxm add separator - $ctxm add command \ -label [mc Refresh] \ -command reshow_diff lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] @@ -3214,10 +3337,19 @@ set ui_diff_applyhunk [$ctxm index last] lappend diff_actions [list $ctxm entryconf $ui_diff_applyhunk -state] $ctxm add command \ -label [mc "Apply/Reverse Line"] \ - -command {apply_line $cursorX $cursorY; do_rescan} + -command {apply_range_or_line $cursorX $cursorY; do_rescan} set ui_diff_applyline [$ctxm index last] lappend diff_actions [list $ctxm entryconf $ui_diff_applyline -state] $ctxm add separator +$ctxm add command \ + -label [mc "Show Less Context"] \ + -command show_less_context +lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] +$ctxm add command \ + -label [mc "Show More Context"] \ + -command show_more_context +lappend diff_actions [list $ctxm entryconf [$ctxm index last] -state] +$ctxm add separator create_common_diff_popup $ctxm set ctxmmg .vpane.lower.diff.body.ctxmmg @@ -3240,9 +3372,40 @@ $ctxmmg add command \ -command {merge_resolve_one 1} lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state] $ctxmmg add separator +$ctxmmg add command \ + -label [mc "Show Less Context"] \ + -command show_less_context +lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state] +$ctxmmg add command \ + -label [mc "Show More Context"] \ + -command show_more_context +lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state] +$ctxmmg add separator create_common_diff_popup $ctxmmg -proc popup_diff_menu {ctxm ctxmmg x y X Y} { +set ctxmsm .vpane.lower.diff.body.ctxmsm +menu $ctxmsm -tearoff 0 +$ctxmsm add command \ + -label [mc "Visualize These Changes In The Submodule"] \ + -command {do_gitk -- true} +lappend diff_actions [list $ctxmsm entryconf [$ctxmsm index last] -state] +$ctxmsm add command \ + -label [mc "Visualize Current Branch History In The Submodule"] \ + -command {do_gitk {} true} +lappend diff_actions [list $ctxmsm entryconf [$ctxmsm index last] -state] +$ctxmsm add command \ + -label [mc "Visualize All Branch History In The Submodule"] \ + -command {do_gitk --all true} +lappend diff_actions [list $ctxmsm entryconf [$ctxmsm index last] -state] +$ctxmsm add separator +$ctxmsm add command \ + -label [mc "Start git gui In The Submodule"] \ + -command {do_git_gui} +lappend diff_actions [list $ctxmsm entryconf [$ctxmsm index last] -state] +$ctxmsm add separator +create_common_diff_popup $ctxmsm + +proc popup_diff_menu {ctxm ctxmmg ctxmsm x y X Y} { global current_diff_path file_states set ::cursorX $x set ::cursorY $y @@ -3253,15 +3416,26 @@ proc popup_diff_menu {ctxm ctxmmg x y X Y} { } if {[string first {U} $state] >= 0} { tk_popup $ctxmmg $X $Y + } elseif {$::is_submodule_diff} { + tk_popup $ctxmsm $X $Y } else { + set has_range [expr {[$::ui_diff tag nextrange sel 0.0] != {}}] if {$::ui_index eq $::current_diff_side} { set l [mc "Unstage Hunk From Commit"] - set t [mc "Unstage Line From Commit"] + if {$has_range} { + set t [mc "Unstage Lines From Commit"] + } else { + set t [mc "Unstage Line From Commit"] + } } else { set l [mc "Stage Hunk For Commit"] - set t [mc "Stage Line For Commit"] + if {$has_range} { + set t [mc "Stage Lines For Commit"] + } else { + set t [mc "Stage Line For Commit"] + } } - if {$::is_3way_diff || $::is_submodule_diff + if {$::is_3way_diff || $current_diff_path eq {} || {__} eq $state || {_O} eq $state @@ -3276,7 +3450,7 @@ proc popup_diff_menu {ctxm ctxmmg x y X Y} { tk_popup $ctxm $X $Y } } -bind_button3 $ui_diff [list popup_diff_menu $ctxm $ctxmmg %x %y %X %Y] +bind_button3 $ui_diff [list popup_diff_menu $ctxm $ctxmmg $ctxmsm %x %y %X %Y] # -- Status Bar # @@ -3289,12 +3463,17 @@ $main_status show [mc "Initializing..."] catch { set gm $repo_config(gui.geometry) wm geometry . [lindex $gm 0] -.vpane sash place 0 \ - [lindex $gm 1] \ - [lindex [.vpane sash coord 0] 1] -.vpane.files sash place 0 \ - [lindex [.vpane.files sash coord 0] 0] \ - [lindex $gm 2] +if {$use_ttk} { + .vpane sashpos 0 [lindex $gm 1] + .vpane.files sashpos 0 [lindex $gm 2] +} else { + .vpane sash place 0 \ + [lindex $gm 1] \ + [lindex [.vpane sash coord 0] 1] + .vpane.files sash place 0 \ + [lindex [.vpane.files sash coord 0] 0] \ + [lindex $gm 2] +} unset gm } @@ -3371,6 +3550,8 @@ bind . <$M1B-Key-s> do_signoff bind . <$M1B-Key-S> do_signoff bind . <$M1B-Key-t> do_add_selection bind . <$M1B-Key-T> do_add_selection +bind . <$M1B-Key-j> do_revert_selection +bind . <$M1B-Key-J> do_revert_selection bind . <$M1B-Key-i> do_add_all bind . <$M1B-Key-I> do_add_all bind . <$M1B-Key-minus> {show_less_context;break} @@ -3389,7 +3570,7 @@ unset i set file_lists($ui_index) [list] set file_lists($ui_workdir) [list] -wm title . "[appname] ([reponame]) [file normalize [file dirname [gitdir]]]" +wm title . "[appname] ([reponame]) [file normalize $_gitworktree]" focus -force $ui_comm # -- Warn the user about environmental problems. Cygwin's Tcl @@ -3562,3 +3743,9 @@ if {[is_enabled retcode]} { if {$picked && [is_config_true gui.autoexplore]} { do_explore } + +# Local variables: +# mode: tcl +# indent-tabs-mode: t +# tab-width: 4 +# End: diff --git a/git-gui/lib/about.tcl b/git-gui/lib/about.tcl index 241ab892cd..cfa50fca87 100644 --- a/git-gui/lib/about.tcl +++ b/git-gui/lib/about.tcl @@ -4,31 +4,26 @@ proc do_about {} { global appvers copyright oguilib global tcl_patchLevel tk_patchLevel - global ui_comm_spell + global ui_comm_spell NS use_ttk set w .about_dialog - toplevel $w + Dialog $w wm geometry $w "+[winfo rootx .]+[winfo rooty .]" pack [git_logo $w.git_logo] -side left -fill y -padx 10 -pady 10 - label $w.header -text [mc "About %s" [appname]] \ - -font font_uibold + ${NS}::label $w.header -text [mc "About %s" [appname]] \ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.close -text {Close} \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.close -text {Close} \ -default active \ -command [list destroy $w] pack $w.buttons.close -side right pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - label $w.desc \ - -text "[mc "git-gui - a graphical user interface for Git."]\n$copyright" \ - -padx 5 -pady 5 \ - -justify left \ - -anchor w \ - -borderwidth 1 \ - -relief solid + paddedlabel $w.desc \ + -text "[mc "git-gui - a graphical user interface for Git."]\n$copyright" pack $w.desc -side top -fill x -padx 5 -pady 5 set v {} @@ -52,22 +47,10 @@ proc do_about {} { append d "git exec dir: [gitexec]\n" append d "git-gui lib: $oguilib" - label $w.vers \ - -text $v \ - -padx 5 -pady 5 \ - -justify left \ - -anchor w \ - -borderwidth 1 \ - -relief solid + paddedlabel $w.vers -text $v pack $w.vers -side top -fill x -padx 5 -pady 5 - label $w.dirs \ - -text $d \ - -padx 5 -pady 5 \ - -justify left \ - -anchor w \ - -borderwidth 1 \ - -relief solid + paddedlabel $w.dirs -text $d pack $w.dirs -side top -fill x -padx 5 -pady 5 menu $w.ctxm -tearoff 0 diff --git a/git-gui/lib/blame.tcl b/git-gui/lib/blame.tcl index 8525b79aaa..786b50b8c2 100644 --- a/git-gui/lib/blame.tcl +++ b/git-gui/lib/blame.tcl @@ -61,7 +61,7 @@ field tooltip_timer {} ; # Current timer event for our tooltip field tooltip_commit {} ; # Commit(s) in tooltip constructor new {i_commit i_path i_jump} { - global cursor_ptr M1B M1T have_tk85 + global cursor_ptr M1B M1T have_tk85 use_ttk NS variable active_color variable group_colors @@ -73,15 +73,15 @@ constructor new {i_commit i_path i_jump} { set font_w [font measure font_diff "0"] - frame $w.header -background gold - label $w.header.commit_l \ + gold_frame $w.header + tlabel $w.header.commit_l \ -text [mc "Commit:"] \ -background gold \ -foreground black \ -anchor w \ -justify left set w_back $w.header.commit_b - label $w_back \ + tlabel $w_back \ -image ::blame::img_back_arrow \ -borderwidth 0 \ -relief flat \ @@ -94,20 +94,20 @@ constructor new {i_commit i_path i_jump} { [cb _history_menu] } " - label $w.header.commit \ + tlabel $w.header.commit \ -textvariable @commit \ -background gold \ -foreground black \ -anchor w \ -justify left - label $w.header.path_l \ + tlabel $w.header.path_l \ -text [mc "File:"] \ -background gold \ -foreground black \ -anchor w \ -justify left set w_path $w.header.path - label $w_path \ + tlabel $w_path \ -background gold \ -foreground black \ -anchor w \ @@ -209,10 +209,10 @@ constructor new {i_commit i_path i_jump} { set w_columns [list $w_amov $w_asim $w_line $w_file] - scrollbar $w.file_pane.out.sbx \ + ${NS}::scrollbar $w.file_pane.out.sbx \ -orient h \ -command [list $w_file xview] - scrollbar $w.file_pane.out.sby \ + ${NS}::scrollbar $w.file_pane.out.sby \ -orient v \ -command [list scrollbar2many $w_columns yview] eval grid $w_columns $w.file_pane.out.sby -sticky nsew @@ -254,10 +254,10 @@ constructor new {i_commit i_path i_jump} { -background $active_color \ -font font_ui $w_cviewer tag raise sel - scrollbar $w.file_pane.cm.sbx \ + ${NS}::scrollbar $w.file_pane.cm.sbx \ -orient h \ -command [list $w_cviewer xview] - scrollbar $w.file_pane.cm.sby \ + ${NS}::scrollbar $w.file_pane.cm.sby \ -orient v \ -command [list $w_cviewer yview] pack $w.file_pane.cm.sby -side right -fill y diff --git a/git-gui/lib/branch_checkout.tcl b/git-gui/lib/branch_checkout.tcl index 6603703ea1..2e459a8297 100644 --- a/git-gui/lib/branch_checkout.tcl +++ b/git-gui/lib/branch_checkout.tcl @@ -10,21 +10,24 @@ field opt_fetch 1; # refetch tracking branch if used? field opt_detach 0; # force a detached head case? constructor dialog {} { - make_toplevel top w + global use_ttk NS + make_dialog top w + wm withdraw $w wm title $top [append "[appname] ([reponame]): " [mc "Checkout Branch"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" } - label $w.header -text [mc "Checkout Branch"] -font font_uibold + ${NS}::label $w.header -text [mc "Checkout Branch"] \ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.create -text [mc Checkout] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.create -text [mc Checkout] \ -default active \ -command [cb _checkout] pack $w.buttons.create -side right - button $w.buttons.cancel -text [mc Cancel] \ + ${NS}::button $w.buttons.cancel -text [mc Cancel] \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 @@ -33,14 +36,14 @@ constructor dialog {} { $w_rev bind_listbox <Double-Button-1> [cb _checkout] pack $w.rev -anchor nw -fill both -expand 1 -pady 5 -padx 5 - labelframe $w.options -text [mc Options] + ${NS}::labelframe $w.options -text [mc Options] - checkbutton $w.options.fetch \ + ${NS}::checkbutton $w.options.fetch \ -text [mc "Fetch Tracking Branch"] \ -variable @opt_fetch pack $w.options.fetch -anchor nw - checkbutton $w.options.detach \ + ${NS}::checkbutton $w.options.detach \ -text [mc "Detach From Local Branch"] \ -variable @opt_detach pack $w.options.detach -anchor nw @@ -50,6 +53,7 @@ constructor dialog {} { bind $w <Visibility> [cb _visible] bind $w <Key-Escape> [list destroy $w] bind $w <Key-Return> [cb _checkout]\;break + wm deiconify $w tkwait window $w } diff --git a/git-gui/lib/branch_create.tcl b/git-gui/lib/branch_create.tcl index 3817771b94..4bb907705c 100644 --- a/git-gui/lib/branch_create.tcl +++ b/git-gui/lib/branch_create.tcl @@ -16,48 +16,48 @@ field opt_fetch 1; # refetch tracking branch if used? field reset_ok 0; # did the user agree to reset? constructor dialog {} { - global repo_config + global repo_config use_ttk NS - make_toplevel top w + make_dialog top w + wm withdraw $w wm title $top [append "[appname] ([reponame]): " [mc "Create Branch"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" } - label $w.header -text [mc "Create New Branch"] -font font_uibold + ${NS}::label $w.header -text [mc "Create New Branch"] \ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.create -text [mc Create] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.create -text [mc Create] \ -default active \ -command [cb _create] pack $w.buttons.create -side right - button $w.buttons.cancel -text [mc Cancel] \ + ${NS}::button $w.buttons.cancel -text [mc Cancel] \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - labelframe $w.desc -text [mc "Branch Name"] - radiobutton $w.desc.name_r \ - -anchor w \ + ${NS}::labelframe $w.desc -text [mc "Branch Name"] + ${NS}::radiobutton $w.desc.name_r \ -text [mc "Name:"] \ -value user \ -variable @name_type + if {!$use_ttk} {$w.desc.name_r configure -anchor w} set w_name $w.desc.name_t - entry $w_name \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w_name \ -width 40 \ -textvariable @name \ -validate key \ -validatecommand [cb _validate %d %S] grid $w.desc.name_r $w_name -sticky we -padx {0 5} - radiobutton $w.desc.match_r \ - -anchor w \ + ${NS}::radiobutton $w.desc.match_r \ -text [mc "Match Tracking Branch Name"] \ -value match \ -variable @name_type + if {!$use_ttk} {$w.desc.match_r configure -anchor w} grid $w.desc.match_r -sticky we -padx {0 5} -columnspan 2 grid columnconfigure $w.desc 1 -weight 1 @@ -66,34 +66,34 @@ constructor dialog {} { set w_rev [::choose_rev::new $w.rev [mc "Starting Revision"]] pack $w.rev -anchor nw -fill both -expand 1 -pady 5 -padx 5 - labelframe $w.options -text [mc Options] + ${NS}::labelframe $w.options -text [mc Options] - frame $w.options.merge - label $w.options.merge.l -text [mc "Update Existing Branch:"] + ${NS}::frame $w.options.merge + ${NS}::label $w.options.merge.l -text [mc "Update Existing Branch:"] pack $w.options.merge.l -side left - radiobutton $w.options.merge.no \ + ${NS}::radiobutton $w.options.merge.no \ -text [mc No] \ -value none \ -variable @opt_merge pack $w.options.merge.no -side left - radiobutton $w.options.merge.ff \ + ${NS}::radiobutton $w.options.merge.ff \ -text [mc "Fast Forward Only"] \ -value ff \ -variable @opt_merge pack $w.options.merge.ff -side left - radiobutton $w.options.merge.reset \ + ${NS}::radiobutton $w.options.merge.reset \ -text [mc Reset] \ -value reset \ -variable @opt_merge pack $w.options.merge.reset -side left pack $w.options.merge -anchor nw - checkbutton $w.options.fetch \ + ${NS}::checkbutton $w.options.fetch \ -text [mc "Fetch Tracking Branch"] \ -variable @opt_fetch pack $w.options.fetch -anchor nw - checkbutton $w.options.checkout \ + ${NS}::checkbutton $w.options.checkout \ -text [mc "Checkout After Creation"] \ -variable @opt_checkout pack $w.options.checkout -anchor nw @@ -109,6 +109,7 @@ constructor dialog {} { bind $w <Visibility> [cb _visible] bind $w <Key-Escape> [list destroy $w] bind $w <Key-Return> [cb _create]\;break + wm deiconify $w tkwait window $w } diff --git a/git-gui/lib/branch_delete.tcl b/git-gui/lib/branch_delete.tcl index 20d5e42307..867938ec6a 100644 --- a/git-gui/lib/branch_delete.tcl +++ b/git-gui/lib/branch_delete.tcl @@ -9,41 +9,40 @@ field w_check ; # revision picker for merge test field w_delete ; # delete button constructor dialog {} { - global current_branch + global current_branch use_ttk NS - make_toplevel top w + make_dialog top w + wm withdraw $w wm title $top [append "[appname] ([reponame]): " [mc "Delete Branch"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" } - label $w.header -text [mc "Delete Local Branch"] -font font_uibold + ${NS}::label $w.header -text [mc "Delete Local Branch"] \ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons + ${NS}::frame $w.buttons set w_delete $w.buttons.delete - button $w_delete \ + ${NS}::button $w_delete \ -text [mc Delete] \ -default active \ -state disabled \ -command [cb _delete] pack $w_delete -side right - button $w.buttons.cancel \ + ${NS}::button $w.buttons.cancel \ -text [mc Cancel] \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - labelframe $w.list -text [mc "Local Branches"] + ${NS}::labelframe $w.list -text [mc "Local Branches"] set w_heads $w.list.l - listbox $w_heads \ + slistbox $w_heads \ -height 10 \ -width 70 \ -selectmode extended \ - -exportselection false \ - -yscrollcommand [list $w.list.sby set] - scrollbar $w.list.sby -command [list $w.list.l yview] - pack $w.list.sby -side right -fill y + -exportselection false pack $w.list.l -side left -fill both -expand 1 pack $w.list -fill both -expand 1 -pady 5 -padx 5 @@ -67,6 +66,7 @@ constructor dialog {} { " bind $w <Key-Escape> [list destroy $w] bind $w <Key-Return> [cb _delete]\;break + wm deiconify $w tkwait window $w } diff --git a/git-gui/lib/branch_rename.tcl b/git-gui/lib/branch_rename.tcl index 166538808f..63988773ba 100644 --- a/git-gui/lib/branch_rename.tcl +++ b/git-gui/lib/branch_rename.tcl @@ -8,9 +8,10 @@ field oldname field newname constructor dialog {} { - global current_branch + global current_branch use_ttk NS - make_toplevel top w + make_dialog top w + wm withdraw $w wm title $top [append "[appname] ([reponame]): " [mc "Rename Branch"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" @@ -19,27 +20,31 @@ constructor dialog {} { set oldname $current_branch set newname [get_config gui.newbranchtemplate] - label $w.header -text [mc "Rename Branch"] -font font_uibold + ${NS}::label $w.header -text [mc "Rename Branch"]\ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.rename -text [mc Rename] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.rename -text [mc Rename] \ -default active \ -command [cb _rename] pack $w.buttons.rename -side right - button $w.buttons.cancel -text [mc Cancel] \ + ${NS}::button $w.buttons.cancel -text [mc Cancel] \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - frame $w.rename - label $w.rename.oldname_l -text [mc "Branch:"] - eval tk_optionMenu $w.rename.oldname_m @oldname [load_all_heads] + ${NS}::frame $w.rename + ${NS}::label $w.rename.oldname_l -text [mc "Branch:"] + if {$use_ttk} { + ttk::combobox $w.rename.oldname_m -textvariable @oldname \ + -values [load_all_heads] -state readonly + } else { + eval tk_optionMenu $w.rename.oldname_m @oldname [load_all_heads] + } - label $w.rename.newname_l -text [mc "New Name:"] - entry $w.rename.newname_t \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::label $w.rename.newname_l -text [mc "New Name:"] + ${NS}::entry $w.rename.newname_t \ -width 40 \ -textvariable @newname \ -validate key \ @@ -60,6 +65,7 @@ constructor dialog {} { $w.rename.newname_t icursor end focus $w.rename.newname_t " + wm deiconify $w tkwait window $w } diff --git a/git-gui/lib/browser.tcl b/git-gui/lib/browser.tcl index 0410cc68df..c2415729e0 100644 --- a/git-gui/lib/browser.tcl +++ b/git-gui/lib/browser.tcl @@ -21,23 +21,23 @@ field browser_busy 1 field ls_buf {}; # Buffered record output from ls-tree constructor new {commit {path {}}} { - global cursor_ptr M1B - make_toplevel top w + global cursor_ptr M1B use_ttk NS + make_dialog top w + wm withdraw $top wm title $top [append "[appname] ([reponame]): " [mc "File Browser"]] set browser_commit $commit set browser_path $browser_commit:$path - label $w.path \ + ${NS}::label $w.path \ -textvariable @browser_path \ -anchor w \ -justify left \ - -borderwidth 1 \ - -relief sunken \ -font font_uibold + if {!$use_ttk} { $w.path configure -borderwidth 1 -relief sunken} pack $w.path -anchor w -side top -fill x - frame $w.list + ${NS}::frame $w.list set w_list $w.list.l text $w_list -background white -foreground black \ -borderwidth 0 \ @@ -49,19 +49,18 @@ constructor new {commit {path {}}} { -xscrollcommand [list $w.list.sbx set] \ -yscrollcommand [list $w.list.sby set] rmsel_tag $w_list - scrollbar $w.list.sbx -orient h -command [list $w_list xview] - scrollbar $w.list.sby -orient v -command [list $w_list yview] + ${NS}::scrollbar $w.list.sbx -orient h -command [list $w_list xview] + ${NS}::scrollbar $w.list.sby -orient v -command [list $w_list yview] pack $w.list.sbx -side bottom -fill x pack $w.list.sby -side right -fill y pack $w_list -side left -fill both -expand 1 pack $w.list -side top -fill both -expand 1 - label $w.status \ + ${NS}::label $w.status \ -textvariable @browser_status \ -anchor w \ - -justify left \ - -borderwidth 1 \ - -relief sunken + -justify left + if {!$use_ttk} { $w.status configure -borderwidth 1 -relief sunken} pack $w.status -anchor w -side bottom -fill x bind $w_list <Button-1> "[cb _click 0 @%x,%y];break" @@ -78,6 +77,7 @@ constructor new {commit {path {}}} { bind $w_list <Right> break bind $w_list <Visibility> [list focus $w_list] + wm deiconify $top set w $w_list if {$path ne {}} { _ls $this $browser_commit:$path $path @@ -263,23 +263,27 @@ field w ; # widget path field w_rev ; # mega-widget to pick the initial revision constructor dialog {} { - make_toplevel top w + global use_ttk NS + make_dialog top w + wm withdraw $top wm title $top [append "[appname] ([reponame]): " [mc "Browse Branch Files"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" + wm transient $top . } - label $w.header \ + ${NS}::label $w.header \ -text [mc "Browse Branch Files"] \ - -font font_uibold + -font font_uibold \ + -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.browse -text [mc Browse] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.browse -text [mc Browse] \ -default active \ -command [cb _open] pack $w.buttons.browse -side right - button $w.buttons.cancel -text [mc Cancel] \ + ${NS}::button $w.buttons.cancel -text [mc Cancel] \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 @@ -291,6 +295,7 @@ constructor dialog {} { bind $w <Visibility> [cb _visible] bind $w <Key-Escape> [list destroy $w] bind $w <Key-Return> [cb _open]\;break + wm deiconify $top tkwait window $w } diff --git a/git-gui/lib/choose_font.tcl b/git-gui/lib/choose_font.tcl index 56443b042c..ebe50bd7d0 100644 --- a/git-gui/lib/choose_font.tcl +++ b/git-gui/lib/choose_font.tcl @@ -17,6 +17,7 @@ variable all_families [list] ; # All fonts known to Tk constructor pick {path title a_family a_size} { variable all_families + global use_ttk NS set v_family $a_family set v_size $a_size @@ -27,29 +28,30 @@ constructor pick {path title a_family a_size} { set f_family $pv_family set f_size $pv_size - make_toplevel top w + make_dialog top w + wm withdraw $top wm title $top "[appname] ([reponame]): $title" wm geometry $top "+[winfo rootx $path]+[winfo rooty $path]" - label $w.header -text $title -font font_uibold + ${NS}::label $w.header -text $title -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.select \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.select \ -text [mc Select] \ -default active \ -command [cb _select] - button $w.buttons.cancel \ + ${NS}::button $w.buttons.cancel \ -text [mc Cancel] \ -command [list destroy $w] pack $w.buttons.select -side right pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - frame $w.inner + ${NS}::frame $w.inner - frame $w.inner.family - label $w.inner.family.l \ + ${NS}::frame $w.inner.family + ${NS}::label $w.inner.family.l \ -text [mc "Font Family"] \ -anchor w set w_family $w.inner.family.v @@ -64,16 +66,16 @@ constructor pick {path title a_family a_size} { -height 10 \ -yscrollcommand [list $w.inner.family.sby set] rmsel_tag $w_family - scrollbar $w.inner.family.sby -command [list $w_family yview] + ${NS}::scrollbar $w.inner.family.sby -command [list $w_family yview] pack $w.inner.family.l -side top -fill x pack $w.inner.family.sby -side right -fill y pack $w_family -fill both -expand 1 - frame $w.inner.size - label $w.inner.size.l \ + ${NS}::frame $w.inner.size + ${NS}::label $w.inner.size.l \ -text [mc "Font Size"] \ -anchor w - spinbox $w.inner.size.v \ + tspinbox $w.inner.size.v \ -textvariable @f_size \ -from 2 -to 80 -increment 1 \ -width 3 @@ -86,8 +88,8 @@ constructor pick {path title a_family a_size} { grid columnconfigure $w.inner 0 -weight 1 pack $w.inner -fill both -expand 1 -padx 5 -pady 5 - frame $w.example - label $w.example.l \ + ${NS}::frame $w.example + ${NS}::label $w.example.l \ -text [mc "Font Example"] \ -anchor w set w_example $w.example.t @@ -129,6 +131,7 @@ constructor pick {path title a_family a_size} { grab $w focus $w " + wm deiconify $w tkwait window $w } diff --git a/git-gui/lib/choose_repository.tcl b/git-gui/lib/choose_repository.tcl index 3f8f3030fa..64f06748b6 100644 --- a/git-gui/lib/choose_repository.tcl +++ b/git-gui/lib/choose_repository.tcl @@ -22,9 +22,9 @@ field readtree_err ; # Error output from read-tree (if any) field sorted_recent ; # recent repositories (sorted) constructor pick {} { - global M1T M1B + global M1T M1B use_ttk NS - make_toplevel top w + make_dialog top w wm title $top [mc "Git Gui"] if {$top eq {.}} { @@ -71,11 +71,11 @@ constructor pick {} { set w_body $w.body set opts $w_body.options - frame $w_body + ${NS}::frame $w_body text $opts \ -cursor $::cursor_ptr \ -relief flat \ - -background [$w_body cget -background] \ + -background [get_bg_color $w_body] \ -wrap none \ -spacing1 5 \ -width 50 \ @@ -132,15 +132,15 @@ constructor pick {} { -label [mc "Recent Repositories"] } - label $w_body.space - label $w_body.recentlabel \ + ${NS}::label $w_body.space + ${NS}::label $w_body.recentlabel \ -anchor w \ -text [mc "Open Recent Repository:"] set w_recentlist $w_body.recentlist text $w_recentlist \ -cursor $::cursor_ptr \ -relief flat \ - -background [$w_body.recentlabel cget -background] \ + -background [get_bg_color $w_body.recentlabel] \ -wrap none \ -width 50 \ -height 10 @@ -176,10 +176,10 @@ constructor pick {} { } pack $w_body -fill x -padx 10 -pady 10 - frame $w.buttons + ${NS}::frame $w.buttons set w_next $w.buttons.next set w_quit $w.buttons.quit - button $w_quit \ + ${NS}::button $w_quit \ -text [mc "Quit"] \ -command exit pack $w_quit -side right -padx 5 @@ -203,6 +203,7 @@ constructor pick {} { wm deiconify $top tkwait variable @done + grab release $top if {$top eq {.}} { eval destroy [winfo children $top] } @@ -284,9 +285,10 @@ method _open_recent_path {p} { } method _next {action} { + global NS destroy $w_body if {![winfo exists $w_next]} { - button $w_next -default active + ${NS}::button $w_next -default active pack $w_next -side right -padx 5 -before $w_quit } _do_$action $this @@ -375,26 +377,25 @@ proc _objdir {path} { ## Create New Repository method _do_new {} { + global use_ttk NS $w_next conf \ -state disabled \ -command [cb _do_new2] \ -text [mc "Create"] - frame $w_body - label $w_body.h \ - -font font_uibold \ + ${NS}::frame $w_body + ${NS}::label $w_body.h \ + -font font_uibold -anchor center \ -text [mc "Create New Repository"] pack $w_body.h -side top -fill x -pady 10 pack $w_body -fill x -padx 10 - frame $w_body.where - label $w_body.where.l -text [mc "Directory:"] - entry $w_body.where.t \ + ${NS}::frame $w_body.where + ${NS}::label $w_body.where.l -text [mc "Directory:"] + ${NS}::entry $w_body.where.t \ -textvariable @local_path \ - -borderwidth 1 \ - -relief sunken \ -width 50 - button $w_body.where.b \ + ${NS}::button $w_body.where.b \ -text [mc "Browse"] \ -command [cb _new_local_path] set w_localpath $w_body.where.t @@ -460,63 +461,57 @@ proc _new_ok {p} { ## Clone Existing Repository method _do_clone {} { + global use_ttk NS $w_next conf \ -state disabled \ -command [cb _do_clone2] \ -text [mc "Clone"] - frame $w_body - label $w_body.h \ - -font font_uibold \ + ${NS}::frame $w_body + ${NS}::label $w_body.h \ + -font font_uibold -anchor center \ -text [mc "Clone Existing Repository"] pack $w_body.h -side top -fill x -pady 10 pack $w_body -fill x -padx 10 set args $w_body.args - frame $w_body.args + ${NS}::frame $w_body.args pack $args -fill both - label $args.origin_l -text [mc "Source Location:"] - entry $args.origin_t \ + ${NS}::label $args.origin_l -text [mc "Source Location:"] + ${NS}::entry $args.origin_t \ -textvariable @origin_url \ - -borderwidth 1 \ - -relief sunken \ -width 50 - button $args.origin_b \ + ${NS}::button $args.origin_b \ -text [mc "Browse"] \ -command [cb _open_origin] grid $args.origin_l $args.origin_t $args.origin_b -sticky ew - label $args.where_l -text [mc "Target Directory:"] - entry $args.where_t \ + ${NS}::label $args.where_l -text [mc "Target Directory:"] + ${NS}::entry $args.where_t \ -textvariable @local_path \ - -borderwidth 1 \ - -relief sunken \ -width 50 - button $args.where_b \ + ${NS}::button $args.where_b \ -text [mc "Browse"] \ -command [cb _new_local_path] grid $args.where_l $args.where_t $args.where_b -sticky ew set w_localpath $args.where_t - label $args.type_l -text [mc "Clone Type:"] - frame $args.type_f + ${NS}::label $args.type_l -text [mc "Clone Type:"] + ${NS}::frame $args.type_f set w_types [list] - lappend w_types [radiobutton $args.type_f.hardlink \ + lappend w_types [${NS}::radiobutton $args.type_f.hardlink \ -state disabled \ - -anchor w \ -text [mc "Standard (Fast, Semi-Redundant, Hardlinks)"] \ -variable @clone_type \ -value hardlink] - lappend w_types [radiobutton $args.type_f.full \ + lappend w_types [${NS}::radiobutton $args.type_f.full \ -state disabled \ - -anchor w \ -text [mc "Full Copy (Slower, Redundant Backup)"] \ -variable @clone_type \ -value full] - lappend w_types [radiobutton $args.type_f.shared \ + lappend w_types [${NS}::radiobutton $args.type_f.shared \ -state disabled \ - -anchor w \ -text [mc "Shared (Fastest, Not Recommended, No Backup)"] \ -variable @clone_type \ -value shared] @@ -1005,26 +1000,25 @@ method _postcheckout_wait {fd_ph} { ## Open Existing Repository method _do_open {} { + global NS $w_next conf \ -state disabled \ -command [cb _do_open2] \ -text [mc "Open"] - frame $w_body - label $w_body.h \ - -font font_uibold \ + ${NS}::frame $w_body + ${NS}::label $w_body.h \ + -font font_uibold -anchor center \ -text [mc "Open Existing Repository"] pack $w_body.h -side top -fill x -pady 10 pack $w_body -fill x -padx 10 - frame $w_body.where - label $w_body.where.l -text [mc "Repository:"] - entry $w_body.where.t \ + ${NS}::frame $w_body.where + ${NS}::label $w_body.where.l -text [mc "Repository:"] + ${NS}::entry $w_body.where.t \ -textvariable @local_path \ - -borderwidth 1 \ - -relief sunken \ -width 50 - button $w_body.where.b \ + ${NS}::button $w_body.where.b \ -text [mc "Browse"] \ -command [cb _open_local_path] diff --git a/git-gui/lib/choose_rev.tcl b/git-gui/lib/choose_rev.tcl index c8821c1463..c12d5e1698 100644 --- a/git-gui/lib/choose_rev.tcl +++ b/git-gui/lib/choose_rev.tcl @@ -10,7 +10,7 @@ field w_list ; # list of currently filtered specs field w_filter ; # filter entry for $w_list field c_expr {}; # current revision expression -field filter ; # current filter string +field filter ""; # current filter string field revtype head; # type of revision chosen field cur_specs [list]; # list of specs for $revtype field spec_head ; # list of all head specs @@ -32,7 +32,7 @@ proc new_unmerged {path {title {}}} { } constructor _new {path unmerged_only title} { - global current_branch is_detached + global current_branch is_detached use_ttk NS if {![info exists ::all_remotes]} { load_all_remotes @@ -41,65 +41,65 @@ constructor _new {path unmerged_only title} { set w $path if {$title ne {}} { - labelframe $w -text $title + ${NS}::labelframe $w -text $title } else { - frame $w + ${NS}::frame $w } bind $w <Destroy> [cb _delete %W] if {$is_detached} { - radiobutton $w.detachedhead_r \ - -anchor w \ + ${NS}::radiobutton $w.detachedhead_r \ -text [mc "This Detached Checkout"] \ -value HEAD \ -variable @revtype + if {!$use_ttk} {$w.detachedhead_r configure -anchor w} grid $w.detachedhead_r -sticky we -padx {0 5} -columnspan 2 } - radiobutton $w.expr_r \ + ${NS}::radiobutton $w.expr_r \ -text [mc "Revision Expression:"] \ -value expr \ -variable @revtype - entry $w.expr_t \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w.expr_t \ -width 50 \ -textvariable @c_expr \ -validate key \ -validatecommand [cb _validate %d %S] grid $w.expr_r $w.expr_t -sticky we -padx {0 5} - frame $w.types - radiobutton $w.types.head_r \ + ${NS}::frame $w.types + ${NS}::radiobutton $w.types.head_r \ -text [mc "Local Branch"] \ -value head \ -variable @revtype pack $w.types.head_r -side left - radiobutton $w.types.trck_r \ + ${NS}::radiobutton $w.types.trck_r \ -text [mc "Tracking Branch"] \ -value trck \ -variable @revtype pack $w.types.trck_r -side left - radiobutton $w.types.tag_r \ + ${NS}::radiobutton $w.types.tag_r \ -text [mc "Tag"] \ -value tag \ -variable @revtype pack $w.types.tag_r -side left set w_filter $w.types.filter - entry $w_filter \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w_filter \ -width 12 \ -textvariable @filter \ -validate key \ -validatecommand [cb _filter %P] pack $w_filter -side right - pack [label $w.types.filter_icon \ + pack [${NS}::label $w.types.filter_icon \ -image ::choose_rev::img_find \ ] -side right grid $w.types -sticky we -padx {0 5} -columnspan 2 - frame $w.list + if {$use_ttk} { + ttk::frame $w.list -style SListbox.TFrame -padding 2 + } else { + frame $w.list + } set w_list $w.list.l listbox $w_list \ -font font_diff \ @@ -109,6 +109,9 @@ constructor _new {path unmerged_only title} { -exportselection false \ -xscrollcommand [cb _sb_set $w.list.sbx h] \ -yscrollcommand [cb _sb_set $w.list.sby v] + if {$use_ttk} { + $w_list configure -relief flat -highlightthickness 0 -borderwidth 0 + } pack $w_list -fill both -expand 1 grid $w.list -sticky nswe -padx {20 5} -columnspan 2 bind $w_list <Any-Motion> [cb _show_tooltip @%x,%y] @@ -235,11 +238,12 @@ constructor _new {path unmerged_only title} { } method none {text} { + global NS use_ttk if {![winfo exists $w.none_r]} { - radiobutton $w.none_r \ - -anchor w \ + ${NS}::radiobutton $w.none_r \ -value none \ -variable @revtype + if {!$use_ttk} {$w.none_r configure -anchor w} grid $w.none_r -sticky we -padx {0 5} -columnspan 2 } $w.none_r configure -text $text @@ -425,6 +429,7 @@ method _delete {current} { } method _sb_set {sb orient first last} { + global NS set old_focus [focus -lastfor $w] if {$first == 0 && $last == 1} { @@ -440,10 +445,10 @@ method _sb_set {sb orient first last} { if {![winfo exists $sb]} { if {$orient eq {h}} { - scrollbar $sb -orient h -command [list $w_list xview] + ${NS}::scrollbar $sb -orient h -command [list $w_list xview] pack $sb -fill x -side bottom -before $w_list } else { - scrollbar $sb -orient v -command [list $w_list yview] + ${NS}::scrollbar $sb -orient v -command [list $w_list yview] pack $sb -fill y -side right -before $w_list } if {$old_focus ne {}} { diff --git a/git-gui/lib/class.tcl b/git-gui/lib/class.tcl index dc2141192a..c27b71476a 100644 --- a/git-gui/lib/class.tcl +++ b/git-gui/lib/class.tcl @@ -134,6 +134,13 @@ proc delete_this {{t {}}} { if {[namespace exists $t]} {namespace delete $t} } +proc make_dialog {t w args} { + upvar $t top $w pfx this this + global use_ttk + uplevel [linsert $args 0 make_toplevel $t $w] + pave_toplevel $pfx +} + proc make_toplevel {t w args} { upvar $t top $w pfx this this diff --git a/git-gui/lib/console.tcl b/git-gui/lib/console.tcl index c112464ec3..1f3248ffd1 100644 --- a/git-gui/lib/console.tcl +++ b/git-gui/lib/console.tcl @@ -27,20 +27,20 @@ constructor embed {path title} { } method _init {} { - global M1B + global M1B use_ttk NS if {$is_toplevel} { - make_toplevel top w -autodelete 0 + make_dialog top w -autodelete 0 wm title $top "[appname] ([reponame]): $t_short" } else { - frame $w + ${NS}::frame $w } set console_cr 1.0 set w_t $w.m.t - frame $w.m - label $w.m.l1 \ + ${NS}::frame $w.m + ${NS}::label $w.m.l1 \ -textvariable @t_long \ -anchor w \ -justify left \ @@ -78,7 +78,7 @@ method _init {} { " if {$is_toplevel} { - button $w.ok -text [mc "Close"] \ + ${NS}::button $w.ok -text [mc "Close"] \ -state disabled \ -command [list destroy $w] pack $w.ok -side bottom -anchor e -pady 10 -padx 10 @@ -206,13 +206,14 @@ method done {ok} { } method _sb_set {sb orient first last} { + global NS if {![winfo exists $sb]} { if {$first == $last || ($first == 0 && $last == 1)} return if {$orient eq {h}} { - scrollbar $sb -orient h -command [list $w_t xview] + ${NS}::scrollbar $sb -orient h -command [list $w_t xview] pack $sb -fill x -side bottom -before $w_t } else { - scrollbar $sb -orient v -command [list $w_t yview] + ${NS}::scrollbar $sb -orient v -command [list $w_t yview] pack $sb -fill y -side right -before $w_t } } diff --git a/git-gui/lib/database.tcl b/git-gui/lib/database.tcl index d4e0bed0b6..1f187ed286 100644 --- a/git-gui/lib/database.tcl +++ b/git-gui/lib/database.tcl @@ -2,6 +2,7 @@ # Copyright (C) 2006, 2007 Shawn Pearce proc do_stats {} { + global use_ttk NS set fd [git_read count-objects -v] while {[gets $fd line] > 0} { if {[regexp {^([^:]+): (\d+)$} $line _ name value]} { @@ -21,24 +22,22 @@ proc do_stats {} { } set w .stats_view - toplevel $w + Dialog $w + wm withdraw $w wm geometry $w "+[winfo rootx .]+[winfo rooty .]" - label $w.header -text [mc "Database Statistics"] - pack $w.header -side top -fill x - - frame $w.buttons -border 1 - button $w.buttons.close -text [mc Close] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.close -text [mc Close] \ -default active \ -command [list destroy $w] - button $w.buttons.gc -text [mc "Compress Database"] \ + ${NS}::button $w.buttons.gc -text [mc "Compress Database"] \ -default normal \ -command "destroy $w;do_gc" pack $w.buttons.close -side right pack $w.buttons.gc -side left pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - frame $w.stat -borderwidth 1 -relief solid + ${NS}::labelframe $w.stat -text [mc "Database Statistics"] foreach s { {count {mc "Number of loose objects"}} {size {mc "Disk space used by loose objects"} { KiB}} @@ -55,8 +54,8 @@ proc do_stats {} { set value "$value[lindex $s 2]" } - label $w.stat.l_$name -text "$label:" -anchor w - label $w.stat.v_$name -text $value -anchor w + ${NS}::label $w.stat.l_$name -text "$label:" -anchor w + ${NS}::label $w.stat.v_$name -text $value -anchor w grid $w.stat.l_$name $w.stat.v_$name -sticky we -padx {0 5} } pack $w.stat -pady 10 -padx 10 @@ -65,6 +64,7 @@ proc do_stats {} { bind $w <Key-Escape> [list destroy $w] bind $w <Key-Return> [list destroy $w] wm title $w [append "[appname] ([reponame]): " [mc "Database Statistics"]] + wm deiconify $w tkwait window $w } diff --git a/git-gui/lib/diff.tcl b/git-gui/lib/diff.tcl index 066755b864..ec8c11eeb7 100644 --- a/git-gui/lib/diff.tcl +++ b/git-gui/lib/diff.tcl @@ -281,6 +281,15 @@ proc start_show_diff {cont_info {add_opts {}}} { } } + if {[string match {160000 *} [lindex $s 2]] + || [string match {160000 *} [lindex $s 3]]} { + set is_submodule_diff 1 + + if {[git-version >= "1.6.6"]} { + lappend cmd --submodule + } + } + lappend cmd -p lappend cmd --no-color if {$repo_config(gui.diffcontext) >= 1} { @@ -296,9 +305,7 @@ proc start_show_diff {cont_info {add_opts {}}} { lappend cmd $path } - if {[string match {160000 *} [lindex $s 2]] - || [string match {160000 *} [lindex $s 3]]} { - set is_submodule_diff 1 + if {$is_submodule_diff && [git-version < "1.6.6"]} { if {$w eq $ui_index} { set cmd [list submodule summary --cached -- $path] } else { @@ -387,7 +394,9 @@ proc read_diff {fd cont_info} { } } elseif {$is_submodule_diff} { if {$line == ""} continue - if {[regexp {^\* } $line]} { + if {[regexp {^Submodule } $line]} { + set tags d_@ + } elseif {[regexp {^\* } $line]} { set line [string replace $line 0 1 {Submodule }] set tags d_@ } else { @@ -533,10 +542,23 @@ proc apply_hunk {x y} { } } -proc apply_line {x y} { +proc apply_range_or_line {x y} { global current_diff_path current_diff_header current_diff_side global ui_diff ui_index file_states + set selected [$ui_diff tag nextrange sel 0.0] + + if {$selected == {}} { + set first [$ui_diff index "@$x,$y"] + set last $first + } else { + set first [lindex $selected 0] + set last [lindex $selected 1] + } + + set first_l [$ui_diff index "$first linestart"] + set last_l [$ui_diff index "$last lineend"] + if {$current_diff_path eq {} || $current_diff_header eq {}} return if {![lock_index apply_hunk]} return @@ -559,120 +581,147 @@ proc apply_line {x y} { } } - set the_l [$ui_diff index @$x,$y] + set wholepatch {} - # operate only on change lines - set c1 [$ui_diff get "$the_l linestart"] - if {$c1 ne {+} && $c1 ne {-}} { - unlock_index - return - } - set sign $c1 - - set i_l [$ui_diff search -backwards -regexp ^@@ $the_l 0.0] - if {$i_l eq {}} { - unlock_index - return - } - # $i_l is now at the beginning of a line + while {$first_l < $last_l} { + set i_l [$ui_diff search -backwards -regexp ^@@ $first_l 0.0] + if {$i_l eq {}} { + # If there's not a @@ above, then the selected range + # must have come before the first_l @@ + set i_l [$ui_diff search -regexp ^@@ $first_l $last_l] + } + if {$i_l eq {}} { + unlock_index + return + } + # $i_l is now at the beginning of a line - # pick start line number from hunk header - set hh [$ui_diff get $i_l "$i_l + 1 lines"] - set hh [lindex [split $hh ,] 0] - set hln [lindex [split $hh -] 1] + # pick start line number from hunk header + set hh [$ui_diff get $i_l "$i_l + 1 lines"] + set hh [lindex [split $hh ,] 0] + set hln [lindex [split $hh -] 1] - # There is a special situation to take care of. Consider this hunk: - # - # @@ -10,4 +10,4 @@ - # context before - # -old 1 - # -old 2 - # +new 1 - # +new 2 - # context after - # - # We used to keep the context lines in the order they appear in the - # hunk. But then it is not possible to correctly stage only - # "-old 1" and "+new 1" - it would result in this staged text: - # - # context before - # old 2 - # new 1 - # context after - # - # (By symmetry it is not possible to *un*stage "old 2" and "new 2".) - # - # We resolve the problem by introducing an asymmetry, namely, when - # a "+" line is *staged*, it is moved in front of the context lines - # that are generated from the "-" lines that are immediately before - # the "+" block. That is, we construct this patch: - # - # @@ -10,4 +10,5 @@ - # context before - # +new 1 - # old 1 - # old 2 - # context after - # - # But we do *not* treat "-" lines that are *un*staged in a special - # way. - # - # With this asymmetry it is possible to stage the change - # "old 1" -> "new 1" directly, and to stage the change - # "old 2" -> "new 2" by first staging the entire hunk and - # then unstaging the change "old 1" -> "new 1". - - # This is non-empty if and only if we are _staging_ changes; - # then it accumulates the consecutive "-" lines (after converting - # them to context lines) in order to be moved after the "+" change - # line. - set pre_context {} - - set n 0 - set i_l [$ui_diff index "$i_l + 1 lines"] - set patch {} - while {[$ui_diff compare $i_l < "end - 1 chars"] && - [$ui_diff get $i_l "$i_l + 2 chars"] ne {@@}} { - set next_l [$ui_diff index "$i_l + 1 lines"] - set c1 [$ui_diff get $i_l] - if {[$ui_diff compare $i_l <= $the_l] && - [$ui_diff compare $the_l < $next_l]} { - # the line to stage/unstage - set ln [$ui_diff get $i_l $next_l] - if {$c1 eq {-}} { - set n [expr $n+1] + # There is a special situation to take care of. Consider this + # hunk: + # + # @@ -10,4 +10,4 @@ + # context before + # -old 1 + # -old 2 + # +new 1 + # +new 2 + # context after + # + # We used to keep the context lines in the order they appear in + # the hunk. But then it is not possible to correctly stage only + # "-old 1" and "+new 1" - it would result in this staged text: + # + # context before + # old 2 + # new 1 + # context after + # + # (By symmetry it is not possible to *un*stage "old 2" and "new + # 2".) + # + # We resolve the problem by introducing an asymmetry, namely, + # when a "+" line is *staged*, it is moved in front of the + # context lines that are generated from the "-" lines that are + # immediately before the "+" block. That is, we construct this + # patch: + # + # @@ -10,4 +10,5 @@ + # context before + # +new 1 + # old 1 + # old 2 + # context after + # + # But we do *not* treat "-" lines that are *un*staged in a + # special way. + # + # With this asymmetry it is possible to stage the change "old + # 1" -> "new 1" directly, and to stage the change "old 2" -> + # "new 2" by first staging the entire hunk and then unstaging + # the change "old 1" -> "new 1". + # + # Applying multiple lines adds complexity to the special + # situation. The pre_context must be moved after the entire + # first block of consecutive staged "+" lines, so that + # staging both additions gives the following patch: + # + # @@ -10,4 +10,6 @@ + # context before + # +new 1 + # +new 2 + # old 1 + # old 2 + # context after + + # This is non-empty if and only if we are _staging_ changes; + # then it accumulates the consecutive "-" lines (after + # converting them to context lines) in order to be moved after + # "+" change lines. + set pre_context {} + + set n 0 + set m 0 + set i_l [$ui_diff index "$i_l + 1 lines"] + set patch {} + while {[$ui_diff compare $i_l < "end - 1 chars"] && + [$ui_diff get $i_l "$i_l + 2 chars"] ne {@@}} { + set next_l [$ui_diff index "$i_l + 1 lines"] + set c1 [$ui_diff get $i_l] + if {[$ui_diff compare $first_l <= $i_l] && + [$ui_diff compare $i_l < $last_l] && + ($c1 eq {-} || $c1 eq {+})} { + # a line to stage/unstage + set ln [$ui_diff get $i_l $next_l] + if {$c1 eq {-}} { + set n [expr $n+1] + set patch "$patch$pre_context$ln" + set pre_context {} + } else { + set m [expr $m+1] + set patch "$patch$ln" + } + } elseif {$c1 ne {-} && $c1 ne {+}} { + # context line + set ln [$ui_diff get $i_l $next_l] set patch "$patch$pre_context$ln" + set n [expr $n+1] + set m [expr $m+1] + set pre_context {} + } elseif {$c1 eq $to_context} { + # turn change line into context line + set ln [$ui_diff get "$i_l + 1 chars" $next_l] + if {$c1 eq {-}} { + set pre_context "$pre_context $ln" + } else { + set patch "$patch $ln" + } + set n [expr $n+1] + set m [expr $m+1] } else { - set patch "$patch$ln$pre_context" - } - set pre_context {} - } elseif {$c1 ne {-} && $c1 ne {+}} { - # context line - set ln [$ui_diff get $i_l $next_l] - set patch "$patch$pre_context$ln" - set n [expr $n+1] - set pre_context {} - } elseif {$c1 eq $to_context} { - # turn change line into context line - set ln [$ui_diff get "$i_l + 1 chars" $next_l] - if {$c1 eq {-}} { - set pre_context "$pre_context $ln" - } else { - set patch "$patch $ln" + # a change in the opposite direction of + # to_context which is outside the range of + # lines to apply. + set patch "$patch$pre_context" + set pre_context {} } - set n [expr $n+1] + set i_l $next_l } - set i_l $next_l + set patch "$patch$pre_context" + set wholepatch "$wholepatch@@ -$hln,$n +$hln,$m @@\n$patch" + set first_l [$ui_diff index "$next_l + 1 lines"] } - set patch "$patch$pre_context" - set patch "@@ -$hln,$n +$hln,[eval expr $n $sign 1] @@\n$patch" if {[catch { set enc [get_path_encoding $current_diff_path] set p [eval git_write $apply_cmd] fconfigure $p -translation binary -encoding $enc puts -nonewline $p $current_diff_header - puts -nonewline $p $patch + puts -nonewline $p $wholepatch close $p} err]} { error_popup [append $failed_msg "\n\n$err"] } diff --git a/git-gui/lib/error.tcl b/git-gui/lib/error.tcl index 75650157e5..c0fa69af56 100644 --- a/git-gui/lib/error.tcl +++ b/git-gui/lib/error.tcl @@ -71,11 +71,13 @@ proc ask_popup {msg} { } proc hook_failed_popup {hook msg {is_fatal 1}} { + global use_ttk NS set w .hookfail - toplevel $w + Dialog $w + wm withdraw $w - frame $w.m - label $w.m.l1 -text "$hook hook failed:" \ + ${NS}::frame $w.m + ${NS}::label $w.m.l1 -text "$hook hook failed:" \ -anchor w \ -justify left \ -font font_uibold @@ -87,10 +89,10 @@ proc hook_failed_popup {hook msg {is_fatal 1}} { -width 80 -height 10 \ -font font_diff \ -yscrollcommand [list $w.m.sby set] - scrollbar $w.m.sby -command [list $w.m.t yview] + ${NS}::scrollbar $w.m.sby -command [list $w.m.t yview] pack $w.m.l1 -side top -fill x if {$is_fatal} { - label $w.m.l2 \ + ${NS}::label $w.m.l2 \ -text [mc "You must correct the above errors before committing."] \ -anchor w \ -justify left \ @@ -104,7 +106,7 @@ proc hook_failed_popup {hook msg {is_fatal 1}} { $w.m.t insert 1.0 $msg $w.m.t conf -state disabled - button $w.ok -text OK \ + ${NS}::button $w.ok -text OK \ -width 15 \ -command "destroy $w" pack $w.ok -side bottom -anchor e -pady 10 -padx 10 @@ -112,5 +114,6 @@ proc hook_failed_popup {hook msg {is_fatal 1}} { bind $w <Visibility> "grab $w; focus $w" bind $w <Key-Return> "destroy $w" wm title $w [strcat "[appname] ([reponame]): " [mc "error"]] + wm deiconify $w tkwait window $w } diff --git a/git-gui/lib/index.tcl b/git-gui/lib/index.tcl index 0b58bd8876..e9db0c4989 100644 --- a/git-gui/lib/index.tcl +++ b/git-gui/lib/index.tcl @@ -8,26 +8,28 @@ proc _delete_indexlock {} { } proc _close_updateindex {fd after} { + global use_ttk NS fconfigure $fd -blocking 1 if {[catch {close $fd} err]} { set w .indexfried - toplevel $w + Dialog $w + wm withdraw $w wm title $w [strcat "[appname] ([reponame]): " [mc "Index Error"]] wm geometry $w "+[winfo rootx .]+[winfo rooty .]" set s [mc "Updating the Git index failed. A rescan will be automatically started to resynchronize git-gui."] text $w.msg -yscrollcommand [list $w.vs set] \ -width [string length $s] -relief flat \ -borderwidth 0 -highlightthickness 0 \ - -background [$w cget -background] + -background [get_bg_color $w] $w.msg tag configure bold -font font_uibold -justify center - scrollbar $w.vs -command [list $w.msg yview] + ${NS}::scrollbar $w.vs -command [list $w.msg yview] $w.msg insert end $s bold \n\n$err {} $w.msg configure -state disabled - button $w.continue \ + ${NS}::button $w.continue \ -text [mc "Continue"] \ -command [list destroy $w] - button $w.unlock \ + ${NS}::button $w.unlock \ -text [mc "Unlock Index"] \ -command "destroy $w; _delete_indexlock" grid $w.msg - $w.vs -sticky news @@ -40,6 +42,7 @@ proc _close_updateindex {fd after} { grab $w focus %W " + wm deiconify $w tkwait window $w $::main_status stop diff --git a/git-gui/lib/merge.tcl b/git-gui/lib/merge.tcl index 283e4915e9..5cded2341c 100644 --- a/git-gui/lib/merge.tcl +++ b/git-gui/lib/merge.tcl @@ -139,14 +139,14 @@ method _finish {cons ok} { constructor dialog {} { global current_branch - global M1B + global M1B use_ttk NS if {![_can_merge $this]} { delete_this return } - make_toplevel top w + make_dialog top w wm title $top [append "[appname] ([reponame]): " [mc "Merge"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" @@ -154,21 +154,21 @@ constructor dialog {} { set _start [cb _start] - label $w.header \ + ${NS}::label $w.header \ -text [mc "Merge Into %s" $current_branch] \ -font font_uibold pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.visualize \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.visualize \ -text [mc Visualize] \ -command [cb _visualize] pack $w.buttons.visualize -side left - button $w.buttons.merge \ + ${NS}::button $w.buttons.merge \ -text [mc Merge] \ -command $_start pack $w.buttons.merge -side right - button $w.buttons.cancel \ + ${NS}::button $w.buttons.cancel \ -text [mc "Cancel"] \ -command [cb _cancel] pack $w.buttons.cancel -side right -padx 5 diff --git a/git-gui/lib/option.tcl b/git-gui/lib/option.tcl index 1d55b49c9b..d4c5e45c8a 100644 --- a/git-gui/lib/option.tcl +++ b/git-gui/lib/option.tcl @@ -91,7 +91,7 @@ proc save_config {} { proc do_options {} { global repo_config global_config font_descs global repo_config_new global_config_new - global ui_comm_spell + global ui_comm_spell use_ttk NS array unset repo_config_new array unset global_config_new @@ -110,26 +110,28 @@ proc do_options {} { } set w .options_editor - toplevel $w + Dialog $w + wm withdraw $w + wm transient $w [winfo parent $w] wm geometry $w "+[winfo rootx .]+[winfo rooty .]" - frame $w.buttons - button $w.buttons.restore -text [mc "Restore Defaults"] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.restore -text [mc "Restore Defaults"] \ -default normal \ -command do_restore_defaults pack $w.buttons.restore -side left - button $w.buttons.save -text [mc Save] \ + ${NS}::button $w.buttons.save -text [mc Save] \ -default active \ -command [list do_save_config $w] pack $w.buttons.save -side right - button $w.buttons.cancel -text [mc "Cancel"] \ + ${NS}::button $w.buttons.cancel -text [mc "Cancel"] \ -default normal \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - labelframe $w.repo -text [mc "%s Repository" [reponame]] - labelframe $w.global -text [mc "Global (All Repositories)"] + ${NS}::labelframe $w.repo -text [mc "%s Repository" [reponame]] + ${NS}::labelframe $w.global -text [mc "Global (All Repositories)"] pack $w.repo -side left -fill both -expand 1 -pady 5 -padx 5 pack $w.global -side right -fill both -expand 1 -pady 5 -padx 5 @@ -161,7 +163,7 @@ proc do_options {} { foreach f {repo global} { switch -glob -- $type { b { - checkbutton $w.$f.$optid -text $text \ + ${NS}::checkbutton $w.$f.$optid -text $text \ -variable ${f}_config_new($name) \ -onvalue true \ -offvalue false @@ -169,10 +171,10 @@ proc do_options {} { } i-* { regexp -- {-(\d+)\.\.(\d+)$} $type _junk min max - frame $w.$f.$optid - label $w.$f.$optid.l -text "$text:" + ${NS}::frame $w.$f.$optid + ${NS}::label $w.$f.$optid.l -text "$text:" pack $w.$f.$optid.l -side left -anchor w -fill x - spinbox $w.$f.$optid.v \ + tspinbox $w.$f.$optid.v \ -textvariable ${f}_config_new($name) \ -from $min \ -to $max \ @@ -184,11 +186,9 @@ proc do_options {} { } c - t { - frame $w.$f.$optid - label $w.$f.$optid.l -text "$text:" - entry $w.$f.$optid.v \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::frame $w.$f.$optid + ${NS}::label $w.$f.$optid.l -text "$text:" + ${NS}::entry $w.$f.$optid.v \ -width 20 \ -textvariable ${f}_config_new($name) pack $w.$f.$optid.l -side left -anchor w @@ -199,7 +199,7 @@ proc do_options {} { menu $w.$f.$optid.m build_encoding_menu $w.$f.$optid.m \ [list set ${f}_config_new($name)] 1 - button $w.$f.$optid.b \ + ${NS}::button $w.$f.$optid.b \ -text [mc "Change"] \ -command [list popup_btn_menu \ $w.$f.$optid.m $w.$f.$optid.b] @@ -226,11 +226,17 @@ proc do_options {} { set ${f}_config_new(gui.spellingdictionary) $value } - frame $w.$f.$optid - label $w.$f.$optid.l -text [mc "Spelling Dictionary:"] - eval tk_optionMenu $w.$f.$optid.v \ - ${f}_config_new(gui.spellingdictionary) \ - $all_dicts + ${NS}::frame $w.$f.$optid + ${NS}::label $w.$f.$optid.l -text [mc "Spelling Dictionary:"] + if {$use_ttk} { + ttk::combobox $w.$f.$optid.v \ + -textvariable ${f}_config_new(gui.spellingdictionary) \ + -values $all_dicts -state readonly + } else { + eval tk_optionMenu $w.$f.$optid.v \ + ${f}_config_new(gui.spellingdictionary) \ + $all_dicts + } pack $w.$f.$optid.l -side left -anchor w -fill x pack $w.$f.$optid.v -side right -anchor e -padx 5 pack $w.$f.$optid -side top -anchor w -fill x @@ -248,20 +254,20 @@ proc do_options {} { set global_config_new(gui.$font^^size) \ [font configure $font -size] - frame $w.global.$name - label $w.global.$name.l -text "$text:" - button $w.global.$name.b \ + ${NS}::frame $w.global.$name + ${NS}::label $w.global.$name.l -text "$text:" + ${NS}::button $w.global.$name.b \ -text [mc "Change Font"] \ -command [list \ - choose_font::pick \ + tchoosefont \ $w \ [mc "Choose %s" $text] \ global_config_new(gui.$font^^family) \ global_config_new(gui.$font^^size) \ ] - label $w.global.$name.f -textvariable global_config_new(gui.$font^^family) - label $w.global.$name.s -textvariable global_config_new(gui.$font^^size) - label $w.global.$name.pt -text [mc "pt."] + ${NS}::label $w.global.$name.f -textvariable global_config_new(gui.$font^^family) + ${NS}::label $w.global.$name.s -textvariable global_config_new(gui.$font^^size) + ${NS}::label $w.global.$name.pt -text [mc "pt."] pack $w.global.$name.l -side left -anchor w pack $w.global.$name.b -side right -anchor e pack $w.global.$name.pt -side right -anchor w @@ -280,6 +286,7 @@ proc do_options {} { set t [mc "Options"] } wm title $w "[appname] ([reponame]): $t" + wm deiconify $w tkwait window $w } diff --git a/git-gui/lib/remote_add.tcl b/git-gui/lib/remote_add.tcl index fb29422aa7..50029d0cee 100644 --- a/git-gui/lib/remote_add.tcl +++ b/git-gui/lib/remote_add.tcl @@ -13,45 +13,43 @@ field location {}; # location of the remote the user has chosen field opt_action fetch; # action to do after registering the remote locally constructor dialog {} { - global repo_config + global repo_config use_ttk NS - make_toplevel top w + make_dialog top w + wm withdraw $top wm title $top [append "[appname] ([reponame]): " [mc "Add Remote"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" } - label $w.header -text [mc "Add New Remote"] -font font_uibold + ${NS}::label $w.header -text [mc "Add New Remote"] \ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.create -text [mc Add] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.create -text [mc Add] \ -default active \ -command [cb _add] pack $w.buttons.create -side right - button $w.buttons.cancel -text [mc Cancel] \ + ${NS}::button $w.buttons.cancel -text [mc Cancel] \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - labelframe $w.desc -text [mc "Remote Details"] + ${NS}::labelframe $w.desc -text [mc "Remote Details"] - label $w.desc.name_l -text [mc "Name:"] + ${NS}::label $w.desc.name_l -text [mc "Name:"] set w_name $w.desc.name_t - entry $w_name \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w_name \ -width 40 \ -textvariable @name \ -validate key \ -validatecommand [cb _validate_name %d %S] grid $w.desc.name_l $w_name -sticky we -padx {0 5} - label $w.desc.loc_l -text [mc "Location:"] + ${NS}::label $w.desc.loc_l -text [mc "Location:"] set w_loc $w.desc.loc_t - entry $w_loc \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w_loc \ -width 40 \ -textvariable @location grid $w.desc.loc_l $w_loc -sticky we -padx {0 5} @@ -59,21 +57,21 @@ constructor dialog {} { grid columnconfigure $w.desc 1 -weight 1 pack $w.desc -anchor nw -fill x -pady 5 -padx 5 - labelframe $w.action -text [mc "Further Action"] + ${NS}::labelframe $w.action -text [mc "Further Action"] - radiobutton $w.action.fetch \ + ${NS}::radiobutton $w.action.fetch \ -text [mc "Fetch Immediately"] \ -value fetch \ -variable @opt_action pack $w.action.fetch -anchor nw - radiobutton $w.action.push \ + ${NS}::radiobutton $w.action.push \ -text [mc "Initialize Remote Repository and Push"] \ -value push \ -variable @opt_action pack $w.action.push -anchor nw - radiobutton $w.action.none \ + ${NS}::radiobutton $w.action.none \ -text [mc "Do Nothing Else Now"] \ -value none \ -variable @opt_action @@ -85,6 +83,7 @@ constructor dialog {} { bind $w <Visibility> [cb _visible] bind $w <Key-Escape> [list destroy $w] bind $w <Key-Return> [cb _add]\;break + wm deiconify $top tkwait window $w } diff --git a/git-gui/lib/remote_branch_delete.tcl b/git-gui/lib/remote_branch_delete.tcl index 241642062e..f872a3d89d 100644 --- a/git-gui/lib/remote_branch_delete.tcl +++ b/git-gui/lib/remote_branch_delete.tcl @@ -23,34 +23,40 @@ field full_cache field cached constructor dialog {} { - global all_remotes M1B + global all_remotes M1B use_ttk NS - make_toplevel top w + make_dialog top w wm title $top [append "[appname] ([reponame]): " [mc "Delete Branch Remotely"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" } - label $w.header -text [mc "Delete Branch Remotely"] -font font_uibold + ${NS}::label $w.header -text [mc "Delete Branch Remotely"] \ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.delete -text [mc Delete] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.delete -text [mc Delete] \ -default active \ -command [cb _delete] pack $w.buttons.delete -side right - button $w.buttons.cancel -text [mc "Cancel"] \ + ${NS}::button $w.buttons.cancel -text [mc "Cancel"] \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - labelframe $w.dest -text [mc "From Repository"] + ${NS}::labelframe $w.dest -text [mc "From Repository"] if {$all_remotes ne {}} { - radiobutton $w.dest.remote_r \ + ${NS}::radiobutton $w.dest.remote_r \ -text [mc "Remote:"] \ -value remote \ -variable @urltype - eval tk_optionMenu $w.dest.remote_m @remote $all_remotes + if {$use_ttk} { + ttk::combobox $w.dest.remote_m -textvariable @remote \ + -values $all_remotes -state readonly + } else { + eval tk_optionMenu $w.dest.remote_m @remote $all_remotes + } grid $w.dest.remote_r $w.dest.remote_m -sticky w if {[lsearch -sorted -exact $all_remotes origin] != -1} { set remote origin @@ -62,13 +68,11 @@ constructor dialog {} { } else { set urltype url } - radiobutton $w.dest.url_r \ + ${NS}::radiobutton $w.dest.url_r \ -text [mc "Arbitrary Location:"] \ -value url \ -variable @urltype - entry $w.dest.url_t \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w.dest.url_t \ -width 50 \ -textvariable @url \ -validate key \ @@ -81,33 +85,30 @@ constructor dialog {} { grid columnconfigure $w.dest 1 -weight 1 pack $w.dest -anchor nw -fill x -pady 5 -padx 5 - labelframe $w.heads -text [mc "Branches"] - listbox $w.heads.l \ + ${NS}::labelframe $w.heads -text [mc "Branches"] + slistbox $w.heads.l \ -height 10 \ -width 70 \ -listvariable @head_list \ - -selectmode extended \ - -yscrollcommand [list $w.heads.sby set] - scrollbar $w.heads.sby -command [list $w.heads.l yview] + -selectmode extended - frame $w.heads.footer - label $w.heads.footer.status \ + ${NS}::frame $w.heads.footer + ${NS}::label $w.heads.footer.status \ -textvariable @status \ -anchor w \ -justify left - button $w.heads.footer.rescan \ + ${NS}::button $w.heads.footer.rescan \ -text [mc "Rescan"] \ -command [cb _rescan] pack $w.heads.footer.status -side left -fill x pack $w.heads.footer.rescan -side right pack $w.heads.footer -side bottom -fill x - pack $w.heads.sby -side right -fill y pack $w.heads.l -side left -fill both -expand 1 pack $w.heads -fill both -expand 1 -pady 5 -padx 5 - labelframe $w.validate -text [mc "Delete Only If"] - radiobutton $w.validate.head_r \ + ${NS}::labelframe $w.validate -text [mc "Delete Only If"] + ${NS}::radiobutton $w.validate.head_r \ -text [mc "Merged Into:"] \ -value head \ -variable @checktype @@ -115,7 +116,7 @@ constructor dialog {} { trace add variable @head_list write [cb _write_head_list] trace add variable @check_head write [cb _write_check_head] grid $w.validate.head_r $w.validate.head_m -sticky w - radiobutton $w.validate.always_r \ + ${NS}::radiobutton $w.validate.always_r \ -text [mc "Always (Do not perform merge checks)"] \ -value always \ -variable @checktype diff --git a/git-gui/lib/search.tcl b/git-gui/lib/search.tcl index b371e9a30a..7fdbf87bcd 100644 --- a/git-gui/lib/search.tcl +++ b/git-gui/lib/search.tcl @@ -14,15 +14,16 @@ field smarktop field smarkbot constructor new {i_w i_text args} { + global use_ttk NS set w $i_w set ctext $i_text - frame $w - label $w.l -text [mc Find:] + ${NS}::frame $w + ${NS}::label $w.l -text [mc Find:] entry $w.ent -textvariable ${__this}::searchstring -background lightgreen - button $w.bn -text [mc Next] -command [cb find_next] - button $w.bp -text [mc Prev] -command [cb find_prev] - checkbutton $w.cs -text [mc Case-Sensitive] \ + ${NS}::button $w.bn -text [mc Next] -command [cb find_next] + ${NS}::button $w.bp -text [mc Prev] -command [cb find_prev] + ${NS}::checkbutton $w.cs -text [mc Case-Sensitive] \ -variable ${__this}::casesensitive -command [cb _incrsearch] pack $w.l -side left pack $w.cs -side right diff --git a/git-gui/lib/shortcut.tcl b/git-gui/lib/shortcut.tcl index 2f20eb39c0..79c1888e11 100644 --- a/git-gui/lib/shortcut.tcl +++ b/git-gui/lib/shortcut.tcl @@ -2,6 +2,7 @@ # Copyright (C) 2006, 2007 Shawn Pearce proc do_windows_shortcut {} { + global _gitworktree set fn [tk_getSaveFile \ -parent . \ -title [append "[appname] ([reponame]): " [mc "Create Desktop Icon"]] \ @@ -15,7 +16,7 @@ proc do_windows_shortcut {} { [info nameofexecutable] \ [file normalize $::argv0] \ ] \ - [file dirname [file normalize [gitdir]]] + [file normalize [$_gitworktree]] } err]} { error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"] } @@ -23,7 +24,7 @@ proc do_windows_shortcut {} { } proc do_cygwin_shortcut {} { - global argv0 + global argv0 _gitworktree if {[catch { set desktop [exec cygpath \ @@ -56,7 +57,7 @@ proc do_cygwin_shortcut {} { $sh -c \ "CHERE_INVOKING=1 source /etc/profile;[sq $me] &" \ ] \ - [file dirname [file normalize [gitdir]]] + [file normalize [$_gitworktree]] } err]} { error_popup [strcat [mc "Cannot write shortcut:"] "\n\n$err"] } diff --git a/git-gui/lib/sshkey.tcl b/git-gui/lib/sshkey.tcl index 82a1a80ff4..5f75bc96b3 100644 --- a/git-gui/lib/sshkey.tcl +++ b/git-gui/lib/sshkey.tcl @@ -15,7 +15,7 @@ proc find_ssh_key {} { } proc do_ssh_key {} { - global sshkey_title have_tk85 sshkey_fd + global sshkey_title have_tk85 sshkey_fd use_ttk NS set w .sshkey_dialog if {[winfo exists $w]} { @@ -23,7 +23,7 @@ proc do_ssh_key {} { return } - toplevel $w + Dialog $w wm transient $w . set finfo [find_ssh_key] @@ -35,9 +35,9 @@ proc do_ssh_key {} { set gen_state disabled } - frame $w.header -relief flat - label $w.header.lbl -textvariable sshkey_title -anchor w - button $w.header.gen -text [mc "Generate Key"] \ + ${NS}::frame $w.header + ${NS}::label $w.header.lbl -textvariable sshkey_title -anchor w + ${NS}::button $w.header.gen -text [mc "Generate Key"] \ -command [list make_ssh_key $w] -state $gen_state pack $w.header.lbl -side left -expand 1 -fill x pack $w.header.gen -side right @@ -46,14 +46,16 @@ proc do_ssh_key {} { text $w.contents -width 60 -height 10 -wrap char -relief sunken pack $w.contents -fill both -expand 1 if {$have_tk85} { - $w.contents configure -inactiveselectbackground darkblue + set clr darkblue + if {$use_ttk} { set clr [ttk::style lookup . -selectbackground] } + $w.contents configure -inactiveselectbackground $clr } - frame $w.buttons - button $w.buttons.close -text [mc Close] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.close -text [mc Close] \ -default active -command [list destroy $w] pack $w.buttons.close -side right - button $w.buttons.copy -text [mc "Copy To Clipboard"] \ + ${NS}::button $w.buttons.copy -text [mc "Copy To Clipboard"] \ -command [list tk_textCopy $w.contents] pack $w.buttons.copy -side left pack $w.buttons -side bottom -fill x -pady 5 -padx 5 diff --git a/git-gui/lib/status_bar.tcl b/git-gui/lib/status_bar.tcl index 51d4177551..5fe3aad382 100644 --- a/git-gui/lib/status_bar.tcl +++ b/git-gui/lib/status_bar.tcl @@ -13,14 +13,16 @@ field units {}; # unit of progress field meter {}; # current core git progress meter (if active) constructor new {path} { + global use_ttk NS set w $path set w_l $w.l set w_c $w.c - frame $w \ - -borderwidth 1 \ - -relief sunken - label $w_l \ + ${NS}::frame $w + if {!$use_ttk} { + $w configure -borderwidth 1 -relief sunken + } + ${NS}::label $w_l \ -textvariable @status \ -anchor w \ -justify left @@ -41,8 +43,8 @@ constructor two_line {path} { set w_l $w.l set w_c $w.c - frame $w - label $w_l \ + ${NS}::frame $w + ${NS}::label $w_l \ -textvariable @status \ -anchor w \ -justify left diff --git a/git-gui/lib/themed.tcl b/git-gui/lib/themed.tcl new file mode 100644 index 0000000000..1da458673b --- /dev/null +++ b/git-gui/lib/themed.tcl @@ -0,0 +1,174 @@ +# Functions for supporting the use of themed Tk widgets in git-gui. +# Copyright (C) 2009 Pat Thoyts <patthoyts@users.sourceforge.net> + +proc InitTheme {} { + # Create a color label style (bg can be overridden by widget option) + ttk::style layout Color.TLabel { + Color.Label.border -sticky news -children { + Color.label.fill -sticky news -children { + Color.Label.padding -sticky news -children { + Color.Label.label -sticky news}}}} + eval [linsert [ttk::style configure TLabel] 0 \ + ttk::style configure Color.TLabel] + ttk::style configure Color.TLabel \ + -borderwidth 0 -relief flat -padding 2 + ttk::style map Color.TLabel -background {{} gold} + # We also need a padded label. + ttk::style configure Padded.TLabel \ + -padding {5 5} -borderwidth 1 -relief solid + # We need a gold frame. + ttk::style layout Gold.TFrame { + Gold.Frame.border -sticky nswe -children { + Gold.Frame.fill -sticky nswe}} + ttk::style configure Gold.TFrame -background gold -relief flat + # listboxes should have a theme border so embed in ttk::frame + ttk::style layout SListbox.TFrame { + SListbox.Frame.Entry.field -sticky news -border true -children { + SListbox.Frame.padding -sticky news + } + } +} + +proc gold_frame {w args} { + global use_ttk + if {$use_ttk} { + eval [linsert $args 0 ttk::frame $w -style Gold.TFrame] + } else { + eval [linsert $args 0 frame $w -background gold] + } +} + +proc tlabel {w args} { + global use_ttk + if {$use_ttk} { + set cmd [list ttk::label $w -style Color.TLabel] + foreach {k v} $args { + switch -glob -- $k { + -activebackground {} + default { lappend cmd $k $v } + } + } + eval $cmd + } else { + eval [linsert $args 0 label $w] + } +} + +# The padded label gets used in the about class. +proc paddedlabel {w args} { + global use_ttk + if {$use_ttk} { + eval [linsert $args 0 ttk::label $w -style Padded.TLabel] + } else { + eval [linsert $args 0 label $w \ + -padx 5 -pady 5 \ + -justify left \ + -anchor w \ + -borderwidth 1 \ + -relief solid] + } +} + +# Create a toplevel for use as a dialog. +# If available, sets the EWMH dialog hint and if ttk is enabled +# place a themed frame over the surface. +proc Dialog {w args} { + eval [linsert $args 0 toplevel $w -class Dialog] + pave_toplevel $w + return $w +} + +# Tk toplevels are not themed - so pave it over with a themed frame to get +# the base color correct per theme. +proc pave_toplevel {w} { + global use_ttk + if {$use_ttk && ![winfo exists $w.!paving]} { + set paving [ttk::frame $w.!paving] + place $paving -x 0 -y 0 -relwidth 1 -relheight 1 + lower $paving + } +} + +# Create a scrolled listbox with appropriate border for the current theme. +# On many themes the border for a scrolled listbox needs to go around the +# listbox and the scrollbar. +proc slistbox {w args} { + global use_ttk NS + if {$use_ttk} { + set f [ttk::frame $w -style SListbox.TFrame -padding 2] + } else { + set f [frame $w -relief flat] + } + if {[catch { + if {$use_ttk} { + eval [linsert $args 0 listbox $f.list -relief flat \ + -highlightthickness 0 -borderwidth 0] + } else { + eval [linsert $args 0 listbox $f.list] + } + ${NS}::scrollbar $f.vs -command [list $f.list yview] + $f.list configure -yscrollcommand [list $f.vs set] + grid $f.list $f.vs -sticky news + grid rowconfigure $f 0 -weight 1 + grid columnconfigure $f 0 -weight 1 + bind $f.list <<ListboxSelect>> \ + [list event generate $w <<ListboxSelect>>] + interp hide {} $w + interp alias {} $w {} $f.list + } err]} { + destroy $f + return -code error $err + } + return $w +} + +# fetch the background color from a widget. +proc get_bg_color {w} { + global use_ttk + if {$use_ttk} { + set bg [ttk::style lookup [winfo class $w] -background] + } else { + set bg [$w cget -background] + } + return $bg +} + +# ttk::spinbox didn't get added until 8.6 +proc tspinbox {w args} { + global use_ttk + if {$use_ttk && [llength [info commands ttk::spinbox]] > 0} { + eval [linsert $args 0 ttk::spinbox $w] + } else { + eval [linsert $args 0 spinbox $w] + } +} + +# Tk 8.6 provides a standard font selection dialog. This uses the native +# dialogs on Windows and MacOSX or a standard Tk dialog on X11. +proc tchoosefont {w title familyvar sizevar} { + if {[package vsatisfies [package provide Tk] 8.6]} { + upvar #0 $familyvar family + upvar #0 $sizevar size + tk fontchooser configure -parent $w -title $title \ + -font [list $family $size] \ + -command [list on_choosefont $familyvar $sizevar] + tk fontchooser show + } else { + choose_font::pick $w $title $familyvar $sizevar + } +} + +# Called when the Tk 8.6 fontchooser selects a font. +proc on_choosefont {familyvar sizevar font} { + upvar #0 $familyvar family + upvar #0 $sizevar size + set font [font actual $font] + set family [dict get $font -family] + set size [dict get $font -size] +} + +# Local variables: +# mode: tcl +# indent-tabs-mode: t +# tab-width: 4 +# End: diff --git a/git-gui/lib/tools_dlg.tcl b/git-gui/lib/tools_dlg.tcl index 5f7f08e239..7eeda9daf2 100644 --- a/git-gui/lib/tools_dlg.tcl +++ b/git-gui/lib/tools_dlg.tcl @@ -16,53 +16,50 @@ field ask_branch 0; # ask for a revision field ask_args 0; # ask for additional args constructor dialog {} { - global repo_config + global repo_config use_ttk NS - make_toplevel top w + make_dialog top w wm title $top [append "[appname] ([reponame]): " [mc "Add Tool"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" wm transient $top . } - label $w.header -text [mc "Add New Tool Command"] -font font_uibold + ${NS}::label $w.header -text [mc "Add New Tool Command"] \ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - checkbutton $w.buttons.global \ + ${NS}::frame $w.buttons + ${NS}::checkbutton $w.buttons.global \ -text [mc "Add globally"] \ -variable @add_global pack $w.buttons.global -side left -padx 5 - button $w.buttons.create -text [mc Add] \ + ${NS}::button $w.buttons.create -text [mc Add] \ -default active \ -command [cb _add] pack $w.buttons.create -side right - button $w.buttons.cancel -text [mc Cancel] \ + ${NS}::button $w.buttons.cancel -text [mc Cancel] \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - labelframe $w.desc -text [mc "Tool Details"] + ${NS}::labelframe $w.desc -text [mc "Tool Details"] - label $w.desc.name_cmnt -anchor w\ + ${NS}::label $w.desc.name_cmnt -anchor w\ -text [mc "Use '/' separators to create a submenu tree:"] grid x $w.desc.name_cmnt -sticky we -padx {0 5} -pady {0 2} - label $w.desc.name_l -text [mc "Name:"] + ${NS}::label $w.desc.name_l -text [mc "Name:"] set w_name $w.desc.name_t - entry $w_name \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w_name \ -width 40 \ -textvariable @name \ -validate key \ -validatecommand [cb _validate_name %d %S] grid $w.desc.name_l $w_name -sticky we -padx {0 5} - label $w.desc.cmd_l -text [mc "Command:"] + ${NS}::label $w.desc.cmd_l -text [mc "Command:"] set w_cmd $w.desc.cmd_t - entry $w_cmd \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w_cmd \ -width 40 \ -textvariable @command grid $w.desc.cmd_l $w_cmd -sticky we -padx {0 5} -pady {0 3} @@ -70,30 +67,30 @@ constructor dialog {} { grid columnconfigure $w.desc 1 -weight 1 pack $w.desc -anchor nw -fill x -pady 5 -padx 5 - checkbutton $w.confirm \ + ${NS}::checkbutton $w.confirm \ -text [mc "Show a dialog before running"] \ -variable @confirm -command [cb _check_enable_dlg] - labelframe $w.dlg -labelwidget $w.confirm + ${NS}::labelframe $w.dlg -labelwidget $w.confirm - checkbutton $w.dlg.askbranch \ + ${NS}::checkbutton $w.dlg.askbranch \ -text [mc "Ask the user to select a revision (sets \$REVISION)"] \ -variable @ask_branch -state disabled pack $w.dlg.askbranch -anchor w -padx 15 - checkbutton $w.dlg.askargs \ + ${NS}::checkbutton $w.dlg.askargs \ -text [mc "Ask the user for additional arguments (sets \$ARGS)"] \ -variable @ask_args -state disabled pack $w.dlg.askargs -anchor w -padx 15 pack $w.dlg -anchor nw -fill x -pady {0 8} -padx 5 - checkbutton $w.noconsole \ + ${NS}::checkbutton $w.noconsole \ -text [mc "Don't show the command output window"] \ -variable @no_console pack $w.noconsole -anchor w -padx 5 - checkbutton $w.needsfile \ + ${NS}::checkbutton $w.needsfile \ -text [mc "Run only if a diff is selected (\$FILENAME not empty)"] \ -variable @needs_file pack $w.needsfile -anchor w -padx 5 @@ -182,40 +179,38 @@ field w ; # widget path field w_names ; # name list constructor dialog {} { - global repo_config global_config system_config + global repo_config global_config system_config use_ttk NS load_config 1 - make_toplevel top w + make_dialog top w wm title $top [append "[appname] ([reponame]): " [mc "Remove Tool"]] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" wm transient $top . } - label $w.header -text [mc "Remove Tool Commands"] -font font_uibold + ${NS}::label $w.header -text [mc "Remove Tool Commands"] \ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.create -text [mc Remove] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.create -text [mc Remove] \ -default active \ -command [cb _remove] pack $w.buttons.create -side right - button $w.buttons.cancel -text [mc Cancel] \ + ${NS}::button $w.buttons.cancel -text [mc Cancel] \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - frame $w.list + ${NS}::frame $w.list set w_names $w.list.l - listbox $w_names \ + slistbox $w_names \ -height 10 \ -width 30 \ -selectmode extended \ - -exportselection false \ - -yscrollcommand [list $w.list.sby set] - scrollbar $w.list.sby -command [list $w.list.l yview] - pack $w.list.sby -side right -fill y + -exportselection false pack $w.list.l -side left -fill both -expand 1 pack $w.list -fill both -expand 1 -pady 5 -padx 5 @@ -232,7 +227,7 @@ constructor dialog {} { } if {$local_cnt > 0} { - label $w.colorlbl -foreground blue \ + ${NS}::label $w.colorlbl -foreground blue \ -text [mc "(Blue denotes repository-local tools)"] pack $w.colorlbl -fill x -pady 5 -padx 5 } @@ -277,14 +272,14 @@ field is_ok 0; # ok to start field argstr {}; # arguments constructor dialog {fullname} { - global M1B + global M1B use_ttk NS set title [get_config "guitool.$fullname.title"] if {$title eq {}} { regsub {/} $fullname { / } title } - make_toplevel top w -autodelete 0 + make_dialog top w -autodelete 0 wm title $top [append "[appname] ([reponame]): " $title] if {$top ne {.}} { wm geometry $top "+[winfo rootx .]+[winfo rooty .]" @@ -297,7 +292,7 @@ constructor dialog {fullname} { set prompt [mc "Run Command: %s" $command] } - label $w.header -text $prompt -font font_uibold + ${NS}::label $w.header -text $prompt -font font_uibold -anchor center pack $w.header -side top -fill x set argprompt [get_config "guitool.$fullname.argprompt"] @@ -311,12 +306,10 @@ constructor dialog {fullname} { set argprompt [mc "Arguments"] } - labelframe $w.arg -text $argprompt + ${NS}::labelframe $w.arg -text $argprompt set w_args $w.arg.txt - entry $w_args \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w_args \ -width 40 \ -textvariable @argstr pack $w_args -padx 5 -pady 5 -fill both @@ -337,18 +330,18 @@ constructor dialog {fullname} { pack $w.rev -anchor nw -fill both -expand 1 -pady 5 -padx 5 } - frame $w.buttons + ${NS}::frame $w.buttons if {$is_ask_revs} { - button $w.buttons.visualize \ + ${NS}::button $w.buttons.visualize \ -text [mc Visualize] \ -command [cb _visualize] pack $w.buttons.visualize -side left } - button $w.buttons.ok \ + ${NS}::button $w.buttons.ok \ -text [mc OK] \ -command [cb _start] pack $w.buttons.ok -side right - button $w.buttons.cancel \ + ${NS}::button $w.buttons.cancel \ -text [mc "Cancel"] \ -command [cb _cancel] pack $w.buttons.cancel -side right -padx 5 diff --git a/git-gui/lib/transport.tcl b/git-gui/lib/transport.tcl index b18d9c7a1b..60e3a642c5 100644 --- a/git-gui/lib/transport.tcl +++ b/git-gui/lib/transport.tcl @@ -91,50 +91,55 @@ trace add variable push_remote write \ proc do_push_anywhere {} { global all_remotes current_branch global push_urltype push_remote push_url push_thin push_tags - global push_force + global push_force use_ttk NS set w .push_setup toplevel $w + wm withdraw $w wm geometry $w "+[winfo rootx .]+[winfo rooty .]" + pave_toplevel $w - label $w.header -text [mc "Push Branches"] -font font_uibold + ${NS}::label $w.header -text [mc "Push Branches"] \ + -font font_uibold -anchor center pack $w.header -side top -fill x - frame $w.buttons - button $w.buttons.create -text [mc Push] \ + ${NS}::frame $w.buttons + ${NS}::button $w.buttons.create -text [mc Push] \ -default active \ -command [list start_push_anywhere_action $w] pack $w.buttons.create -side right - button $w.buttons.cancel -text [mc "Cancel"] \ + ${NS}::button $w.buttons.cancel -text [mc "Cancel"] \ -default normal \ -command [list destroy $w] pack $w.buttons.cancel -side right -padx 5 pack $w.buttons -side bottom -fill x -pady 10 -padx 10 - labelframe $w.source -text [mc "Source Branches"] - listbox $w.source.l \ + ${NS}::labelframe $w.source -text [mc "Source Branches"] + slistbox $w.source.l \ -height 10 \ -width 70 \ - -selectmode extended \ - -yscrollcommand [list $w.source.sby set] + -selectmode extended foreach h [load_all_heads] { $w.source.l insert end $h if {$h eq $current_branch} { $w.source.l select set end } } - scrollbar $w.source.sby -command [list $w.source.l yview] - pack $w.source.sby -side right -fill y pack $w.source.l -side left -fill both -expand 1 pack $w.source -fill both -expand 1 -pady 5 -padx 5 - labelframe $w.dest -text [mc "Destination Repository"] + ${NS}::labelframe $w.dest -text [mc "Destination Repository"] if {$all_remotes ne {}} { - radiobutton $w.dest.remote_r \ + ${NS}::radiobutton $w.dest.remote_r \ -text [mc "Remote:"] \ -value remote \ -variable push_urltype - eval tk_optionMenu $w.dest.remote_m push_remote $all_remotes + if {$use_ttk} { + ttk::combobox $w.dest.remote_m -textvariable push_remote \ + -values $all_remotes + } else { + eval tk_optionMenu $w.dest.remote_m push_remote $all_remotes + } grid $w.dest.remote_r $w.dest.remote_m -sticky w if {[lsearch -sorted -exact $all_remotes origin] != -1} { set push_remote origin @@ -145,13 +150,11 @@ proc do_push_anywhere {} { } else { set push_urltype url } - radiobutton $w.dest.url_r \ + ${NS}::radiobutton $w.dest.url_r \ -text [mc "Arbitrary Location:"] \ -value url \ -variable push_urltype - entry $w.dest.url_t \ - -borderwidth 1 \ - -relief sunken \ + ${NS}::entry $w.dest.url_t \ -width 50 \ -textvariable push_url \ -validate key \ @@ -166,16 +169,16 @@ proc do_push_anywhere {} { grid columnconfigure $w.dest 1 -weight 1 pack $w.dest -anchor nw -fill x -pady 5 -padx 5 - labelframe $w.options -text [mc "Transfer Options"] - checkbutton $w.options.force \ + ${NS}::labelframe $w.options -text [mc "Transfer Options"] + ${NS}::checkbutton $w.options.force \ -text [mc "Force overwrite existing branch (may discard changes)"] \ -variable push_force grid $w.options.force -columnspan 2 -sticky w - checkbutton $w.options.thin \ + ${NS}::checkbutton $w.options.thin \ -text [mc "Use thin pack (for slow network connections)"] \ -variable push_thin grid $w.options.thin -columnspan 2 -sticky w - checkbutton $w.options.tags \ + ${NS}::checkbutton $w.options.tags \ -text [mc "Include tags"] \ -variable push_tags grid $w.options.tags -columnspan 2 -sticky w @@ -191,5 +194,6 @@ proc do_push_anywhere {} { bind $w <Key-Escape> "destroy $w" bind $w <Key-Return> [list start_push_anywhere_action $w] wm title $w [append "[appname] ([reponame]): " [mc "Push"]] + wm deiconify $w tkwait window $w } diff --git a/git-gui/po/de.po b/git-gui/po/de.po index 51abb50bb6..44c5ddc8b6 100644 --- a/git-gui/po/de.po +++ b/git-gui/po/de.po @@ -7,41 +7,41 @@ msgid "" msgstr "" "Project-Id-Version: git-gui\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-12-06 20:51+0100\n" -"PO-Revision-Date: 2008-12-06 21:22+0100\n" +"POT-Creation-Date: 2010-01-26 22:22+0100\n" +"PO-Revision-Date: 2010-01-26 22:25+0100\n" "Last-Translator: Christian Stimming <stimming@tuhh.de>\n" "Language-Team: German\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744 -#: git-gui.sh:763 +#: git-gui.sh:41 git-gui.sh:793 git-gui.sh:807 git-gui.sh:820 git-gui.sh:903 +#: git-gui.sh:922 msgid "git-gui: fatal error" msgstr "git-gui: Programmfehler" -#: git-gui.sh:593 +#: git-gui.sh:743 #, tcl-format msgid "Invalid font specified in %s:" msgstr "Ungültige Zeichensatz-Angabe in %s:" -#: git-gui.sh:620 +#: git-gui.sh:779 msgid "Main Font" msgstr "Programmschriftart" -#: git-gui.sh:621 +#: git-gui.sh:780 msgid "Diff/Console Font" msgstr "Vergleich-Schriftart" -#: git-gui.sh:635 +#: git-gui.sh:794 msgid "Cannot find git in PATH." msgstr "Git kann im PATH nicht gefunden werden." -#: git-gui.sh:662 +#: git-gui.sh:821 msgid "Cannot parse Git version string:" msgstr "Git Versionsangabe kann nicht erkannt werden:" -#: git-gui.sh:680 +#: git-gui.sh:839 #, tcl-format msgid "" "Git version cannot be determined.\n" @@ -60,447 +60,479 @@ msgstr "" "\n" "Soll angenommen werden, »%s« sei Version 1.5.0?\n" -#: git-gui.sh:918 +#: git-gui.sh:1128 msgid "Git directory not found:" msgstr "Git-Verzeichnis nicht gefunden:" -#: git-gui.sh:925 +#: git-gui.sh:1146 msgid "Cannot move to top of working directory:" msgstr "" "Es konnte nicht in das oberste Verzeichnis der Arbeitskopie gewechselt " "werden:" -#: git-gui.sh:932 -msgid "Cannot use funny .git directory:" -msgstr "Unerwartete Struktur des .git Verzeichnis:" +#: git-gui.sh:1154 +msgid "Cannot use bare repository:" +msgstr "Leeres Projektarchiv kann nicht benutzt werden:" -#: git-gui.sh:937 +#: git-gui.sh:1162 msgid "No working directory" msgstr "Kein Arbeitsverzeichnis" -#: git-gui.sh:1084 lib/checkout_op.tcl:283 +#: git-gui.sh:1334 lib/checkout_op.tcl:306 msgid "Refreshing file status..." msgstr "Dateistatus aktualisieren..." -#: git-gui.sh:1149 +#: git-gui.sh:1390 msgid "Scanning for modified files ..." msgstr "Nach geänderten Dateien suchen..." -#: git-gui.sh:1367 +#: git-gui.sh:1454 msgid "Calling prepare-commit-msg hook..." msgstr "Aufrufen der Eintragen-Vorbereiten-Kontrolle..." -#: git-gui.sh:1384 +#: git-gui.sh:1471 msgid "Commit declined by prepare-commit-msg hook." -msgstr "Eintragen abgelehnt durch Eintragen-Vorbereiten-Kontrolle (»prepare-commit hook«)." +msgstr "" +"Eintragen abgelehnt durch Eintragen-Vorbereiten-Kontrolle (»prepare-commit " +"hook«)." -#: git-gui.sh:1542 lib/browser.tcl:246 +#: git-gui.sh:1629 lib/browser.tcl:246 msgid "Ready." msgstr "Bereit." -#: git-gui.sh:1590 +#: git-gui.sh:1787 +#, tcl-format +msgid "Displaying only %s of %s files." +msgstr "Nur %s von %s Dateien werden angezeigt." + +#: git-gui.sh:1913 msgid "Unmodified" msgstr "Unverändert" -#: git-gui.sh:1592 +#: git-gui.sh:1915 msgid "Modified, not staged" msgstr "Verändert, nicht bereitgestellt" -#: git-gui.sh:1593 git-gui.sh:1598 +#: git-gui.sh:1916 git-gui.sh:1924 msgid "Staged for commit" msgstr "Bereitgestellt zum Eintragen" -#: git-gui.sh:1594 git-gui.sh:1599 +#: git-gui.sh:1917 git-gui.sh:1925 msgid "Portions staged for commit" msgstr "Teilweise bereitgestellt zum Eintragen" -#: git-gui.sh:1595 git-gui.sh:1600 +#: git-gui.sh:1918 git-gui.sh:1926 msgid "Staged for commit, missing" msgstr "Bereitgestellt zum Eintragen, fehlend" -#: git-gui.sh:1658 +#: git-gui.sh:1920 msgid "File type changed, not staged" msgstr "Dateityp geändert, nicht bereitgestellt" -#: git-gui.sh:1659 +#: git-gui.sh:1921 msgid "File type changed, staged" msgstr "Dateityp geändert, bereitgestellt" -#: git-gui.sh:1661 +#: git-gui.sh:1923 msgid "Untracked, not staged" msgstr "Nicht unter Versionskontrolle, nicht bereitgestellt" -#: git-gui.sh:1602 +#: git-gui.sh:1928 msgid "Missing" msgstr "Fehlend" -#: git-gui.sh:1603 +#: git-gui.sh:1929 msgid "Staged for removal" msgstr "Bereitgestellt zum Löschen" -#: git-gui.sh:1604 +#: git-gui.sh:1930 msgid "Staged for removal, still present" msgstr "Bereitgestellt zum Löschen, trotzdem vorhanden" -#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609 +#: git-gui.sh:1932 git-gui.sh:1933 git-gui.sh:1934 git-gui.sh:1935 +#: git-gui.sh:1936 git-gui.sh:1937 msgid "Requires merge resolution" msgstr "Konfliktauflösung nötig" -#: git-gui.sh:1644 +#: git-gui.sh:1972 msgid "Starting gitk... please wait..." msgstr "Gitk wird gestartet... bitte warten." -#: git-gui.sh:1698 +#: git-gui.sh:1984 msgid "Couldn't find gitk in PATH" msgstr "Gitk kann im PATH nicht gefunden werden." -#: git-gui.sh:1948 lib/choose_repository.tcl:36 +#: git-gui.sh:2043 +msgid "Couldn't find git gui in PATH" +msgstr "»Git gui« kann im PATH nicht gefunden werden." + +#: git-gui.sh:2455 lib/choose_repository.tcl:36 msgid "Repository" msgstr "Projektarchiv" -#: git-gui.sh:1861 +#: git-gui.sh:2456 msgid "Edit" msgstr "Bearbeiten" -#: git-gui.sh:1863 lib/choose_rev.tcl:561 +#: git-gui.sh:2458 lib/choose_rev.tcl:561 msgid "Branch" msgstr "Zweig" -#: git-gui.sh:1866 lib/choose_rev.tcl:548 +#: git-gui.sh:2461 lib/choose_rev.tcl:548 msgid "Commit@@noun" msgstr "Version" -#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167 +#: git-gui.sh:2464 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 msgid "Merge" msgstr "Zusammenführen" -#: git-gui.sh:1870 lib/choose_rev.tcl:557 +#: git-gui.sh:2465 lib/choose_rev.tcl:557 msgid "Remote" msgstr "Andere Archive" -#: git-gui.sh:2293 +#: git-gui.sh:2468 msgid "Tools" msgstr "Werkzeuge" -#: git-gui.sh:2302 +#: git-gui.sh:2477 msgid "Explore Working Copy" msgstr "Arbeitskopie im Dateimanager" -#: git-gui.sh:2247 +#: git-gui.sh:2483 msgid "Browse Current Branch's Files" msgstr "Aktuellen Zweig durchblättern" -#: git-gui.sh:1883 +#: git-gui.sh:2487 msgid "Browse Branch Files..." msgstr "Einen Zweig durchblättern..." -#: git-gui.sh:1888 +#: git-gui.sh:2492 msgid "Visualize Current Branch's History" msgstr "Aktuellen Zweig darstellen" -#: git-gui.sh:1892 +#: git-gui.sh:2496 msgid "Visualize All Branch History" msgstr "Alle Zweige darstellen" -#: git-gui.sh:1899 +#: git-gui.sh:2503 #, tcl-format msgid "Browse %s's Files" msgstr "Zweig »%s« durchblättern" -#: git-gui.sh:1901 +#: git-gui.sh:2505 #, tcl-format msgid "Visualize %s's History" msgstr "Historie von »%s« darstellen" -#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67 +#: git-gui.sh:2510 lib/database.tcl:27 lib/database.tcl:67 msgid "Database Statistics" msgstr "Datenbankstatistik" -#: git-gui.sh:1909 lib/database.tcl:34 +#: git-gui.sh:2513 lib/database.tcl:34 msgid "Compress Database" msgstr "Datenbank komprimieren" -#: git-gui.sh:1912 +#: git-gui.sh:2516 msgid "Verify Database" msgstr "Datenbank überprüfen" -#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7 -#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +#: git-gui.sh:2523 git-gui.sh:2527 git-gui.sh:2531 lib/shortcut.tcl:8 +#: lib/shortcut.tcl:40 lib/shortcut.tcl:72 msgid "Create Desktop Icon" msgstr "Desktop-Icon erstellen" -#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185 +#: git-gui.sh:2539 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 msgid "Quit" msgstr "Beenden" -#: git-gui.sh:1939 +#: git-gui.sh:2547 msgid "Undo" msgstr "Rückgängig" -#: git-gui.sh:1942 +#: git-gui.sh:2550 msgid "Redo" msgstr "Wiederholen" -#: git-gui.sh:1946 git-gui.sh:2443 +#: git-gui.sh:2554 git-gui.sh:3109 msgid "Cut" msgstr "Ausschneiden" -#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614 +#: git-gui.sh:2557 git-gui.sh:3112 git-gui.sh:3186 git-gui.sh:3259 #: lib/console.tcl:69 msgid "Copy" msgstr "Kopieren" -#: git-gui.sh:1952 git-gui.sh:2449 +#: git-gui.sh:2560 git-gui.sh:3115 msgid "Paste" msgstr "Einfügen" -#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26 +#: git-gui.sh:2563 git-gui.sh:3118 lib/branch_delete.tcl:26 #: lib/remote_branch_delete.tcl:38 msgid "Delete" msgstr "Löschen" -#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71 +#: git-gui.sh:2567 git-gui.sh:3122 git-gui.sh:3263 lib/console.tcl:71 msgid "Select All" msgstr "Alle auswählen" -#: git-gui.sh:1968 +#: git-gui.sh:2576 msgid "Create..." msgstr "Erstellen..." -#: git-gui.sh:1974 +#: git-gui.sh:2582 msgid "Checkout..." msgstr "Umstellen..." -#: git-gui.sh:1980 +#: git-gui.sh:2588 msgid "Rename..." msgstr "Umbenennen..." -#: git-gui.sh:1985 git-gui.sh:2085 +#: git-gui.sh:2593 msgid "Delete..." msgstr "Löschen..." -#: git-gui.sh:1990 +#: git-gui.sh:2598 msgid "Reset..." msgstr "Zurücksetzen..." -#: git-gui.sh:2372 +#: git-gui.sh:2608 msgid "Done" msgstr "Fertig" -#: git-gui.sh:2374 +#: git-gui.sh:2610 msgid "Commit@@verb" msgstr "Eintragen" -#: git-gui.sh:2383 git-gui.sh:2786 +#: git-gui.sh:2619 git-gui.sh:3050 msgid "New Commit" msgstr "Neue Version" -#: git-gui.sh:2010 git-gui.sh:2396 +#: git-gui.sh:2627 git-gui.sh:3057 msgid "Amend Last Commit" msgstr "Letzte nachbessern" -#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99 +#: git-gui.sh:2637 git-gui.sh:3011 lib/remote_branch_delete.tcl:99 msgid "Rescan" msgstr "Neu laden" -#: git-gui.sh:2025 +#: git-gui.sh:2643 msgid "Stage To Commit" msgstr "Zum Eintragen bereitstellen" -#: git-gui.sh:2031 +#: git-gui.sh:2649 msgid "Stage Changed Files To Commit" msgstr "Geänderte Dateien bereitstellen" -#: git-gui.sh:2037 +#: git-gui.sh:2655 msgid "Unstage From Commit" msgstr "Aus der Bereitstellung herausnehmen" -#: git-gui.sh:2042 lib/index.tcl:395 +#: git-gui.sh:2661 lib/index.tcl:412 msgid "Revert Changes" msgstr "Änderungen verwerfen" -#: git-gui.sh:2141 git-gui.sh:2702 +#: git-gui.sh:2669 git-gui.sh:3310 git-gui.sh:3341 msgid "Show Less Context" msgstr "Weniger Zeilen anzeigen" -#: git-gui.sh:2145 git-gui.sh:2706 +#: git-gui.sh:2673 git-gui.sh:3314 git-gui.sh:3345 msgid "Show More Context" msgstr "Mehr Zeilen anzeigen" -#: git-gui.sh:2151 git-gui.sh:2470 git-gui.sh:2569 +#: git-gui.sh:2680 git-gui.sh:3024 git-gui.sh:3133 msgid "Sign Off" msgstr "Abzeichnen" -#: git-gui.sh:2458 +#: git-gui.sh:2696 msgid "Local Merge..." msgstr "Lokales Zusammenführen..." -#: git-gui.sh:2069 +#: git-gui.sh:2701 msgid "Abort Merge..." msgstr "Zusammenführen abbrechen..." -#: git-gui.sh:2475 +#: git-gui.sh:2713 git-gui.sh:2741 msgid "Add..." msgstr "Hinzufügen..." -#: git-gui.sh:2479 +#: git-gui.sh:2717 msgid "Push..." msgstr "Versenden..." -#: git-gui.sh:2483 +#: git-gui.sh:2721 msgid "Delete Branch..." msgstr "Zweig löschen..." -#: git-gui.sh:2493 git-gui.sh:2515 lib/about.tcl:14 -#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50 -#, tcl-format -msgid "About %s" -msgstr "Über %s" - -#: git-gui.sh:2099 -msgid "Preferences..." -msgstr "Einstellungen..." - -#: git-gui.sh:2107 git-gui.sh:2639 +#: git-gui.sh:2731 git-gui.sh:3292 msgid "Options..." msgstr "Optionen..." -#: git-gui.sh:2576 +#: git-gui.sh:2742 msgid "Remove..." msgstr "Entfernen..." -#: git-gui.sh:2585 lib/choose_repository.tcl:50 +#: git-gui.sh:2751 lib/choose_repository.tcl:50 msgid "Help" msgstr "Hilfe" -#: git-gui.sh:2154 +#: git-gui.sh:2755 git-gui.sh:2759 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "Über %s" + +#: git-gui.sh:2783 msgid "Online Documentation" msgstr "Online-Dokumentation" -#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +#: git-gui.sh:2786 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 msgid "Show SSH Key" msgstr "SSH-Schlüssel anzeigen" -#: git-gui.sh:2707 +#: git-gui.sh:2893 #, tcl-format msgid "fatal: cannot stat path %s: No such file or directory" msgstr "" "Fehler: Verzeichnis »%s« kann nicht gelesen werden: Datei oder Verzeichnis " "nicht gefunden" -#: git-gui.sh:2271 +#: git-gui.sh:2926 msgid "Current Branch:" msgstr "Aktueller Zweig:" -#: git-gui.sh:2292 +#: git-gui.sh:2947 msgid "Staged Changes (Will Commit)" msgstr "Bereitstellung (zum Eintragen)" -#: git-gui.sh:2312 +#: git-gui.sh:2967 msgid "Unstaged Changes" msgstr "Nicht bereitgestellte Änderungen" -#: git-gui.sh:2362 +#: git-gui.sh:3017 msgid "Stage Changed" msgstr "Alles bereitstellen" -#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182 +#: git-gui.sh:3036 lib/transport.tcl:104 lib/transport.tcl:193 msgid "Push" msgstr "Versenden" -#: git-gui.sh:2408 +#: git-gui.sh:3071 msgid "Initial Commit Message:" msgstr "Erste Versionsbeschreibung:" -#: git-gui.sh:2409 +#: git-gui.sh:3072 msgid "Amended Commit Message:" msgstr "Nachgebesserte Beschreibung:" -#: git-gui.sh:2410 +#: git-gui.sh:3073 msgid "Amended Initial Commit Message:" msgstr "Nachgebesserte erste Beschreibung:" -#: git-gui.sh:2411 +#: git-gui.sh:3074 msgid "Amended Merge Commit Message:" msgstr "Nachgebesserte Zusammenführungs-Beschreibung:" -#: git-gui.sh:2412 +#: git-gui.sh:3075 msgid "Merge Commit Message:" msgstr "Zusammenführungs-Beschreibung:" -#: git-gui.sh:2413 +#: git-gui.sh:3076 msgid "Commit Message:" msgstr "Versionsbeschreibung:" -#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73 +#: git-gui.sh:3125 git-gui.sh:3267 lib/console.tcl:73 msgid "Copy All" msgstr "Alle kopieren" -#: git-gui.sh:2483 lib/blame.tcl:107 +#: git-gui.sh:3149 lib/blame.tcl:104 msgid "File:" msgstr "Datei:" -#: git-gui.sh:2834 +#: git-gui.sh:3255 msgid "Refresh" msgstr "Aktualisieren" -#: git-gui.sh:2631 +#: git-gui.sh:3276 msgid "Decrease Font Size" msgstr "Schriftgröße verkleinern" -#: git-gui.sh:2635 +#: git-gui.sh:3280 msgid "Increase Font Size" msgstr "Schriftgröße vergrößern" -#: git-gui.sh:3033 lib/blame.tcl:281 +#: git-gui.sh:3288 lib/blame.tcl:281 msgid "Encoding" msgstr "Zeichenkodierung" -#: git-gui.sh:3044 +#: git-gui.sh:3299 msgid "Apply/Reverse Hunk" msgstr "Kontext anwenden/umkehren" -#: git-gui.sh:2875 +#: git-gui.sh:3304 msgid "Apply/Reverse Line" msgstr "Zeile anwenden/umkehren" -#: git-gui.sh:2885 +#: git-gui.sh:3323 msgid "Run Merge Tool" msgstr "Zusammenführungswerkzeug" -#: git-gui.sh:2890 +#: git-gui.sh:3328 msgid "Use Remote Version" msgstr "Entfernte Version benutzen" -#: git-gui.sh:2894 +#: git-gui.sh:3332 msgid "Use Local Version" msgstr "Lokale Version benutzen" -#: git-gui.sh:2898 +#: git-gui.sh:3336 msgid "Revert To Base" msgstr "Ursprüngliche Version benutzen" -#: git-gui.sh:3091 +#: git-gui.sh:3354 +msgid "Visualize These Changes In The Submodule" +msgstr "Diese Änderungen im Untermodul darstellen" + +#: git-gui.sh:3358 +msgid "Visualize Current Branch History In The Submodule" +msgstr "Aktuellen Zweig im Untermodul darstellen" + +#: git-gui.sh:3362 +msgid "Visualize All Branch History In The Submodule" +msgstr "Alle Zweige im Untermodul darstellen" + +#: git-gui.sh:3367 +msgid "Start git gui In The Submodule" +msgstr "Git gui im Untermodul starten" + +#: git-gui.sh:3389 msgid "Unstage Hunk From Commit" msgstr "Kontext aus Bereitstellung herausnehmen" -#: git-gui.sh:2748 +#: git-gui.sh:3391 +msgid "Unstage Lines From Commit" +msgstr "Zeilen aus der Bereitstellung herausnehmen" + +#: git-gui.sh:3393 msgid "Unstage Line From Commit" msgstr "Zeile aus der Bereitstellung herausnehmen" -#: git-gui.sh:2750 +#: git-gui.sh:3396 msgid "Stage Hunk For Commit" msgstr "Kontext zur Bereitstellung hinzufügen" -#: git-gui.sh:2751 +#: git-gui.sh:3398 +msgid "Stage Lines For Commit" +msgstr "Zeilen zur Bereitstellung hinzufügen" + +#: git-gui.sh:3400 msgid "Stage Line For Commit" msgstr "Zeile zur Bereitstellung hinzufügen" -#: git-gui.sh:2771 +#: git-gui.sh:3424 msgid "Initializing..." msgstr "Initialisieren..." -#: git-gui.sh:2762 +#: git-gui.sh:3541 #, tcl-format msgid "" "Possible environment issues exist.\n" @@ -516,7 +548,7 @@ msgstr "" "von %s an Git weitergegeben werden:\n" "\n" -#: git-gui.sh:2792 +#: git-gui.sh:3570 msgid "" "\n" "This is due to a known issue with the\n" @@ -526,7 +558,7 @@ msgstr "" "Dies ist ein bekanntes Problem der Tcl-Version, die\n" "in Cygwin mitgeliefert wird." -#: git-gui.sh:2797 +#: git-gui.sh:3575 #, tcl-format msgid "" "\n" @@ -546,15 +578,15 @@ msgstr "" msgid "git-gui - a graphical user interface for Git." msgstr "git-gui - eine grafische Oberfläche für Git." -#: lib/blame.tcl:77 +#: lib/blame.tcl:72 msgid "File Viewer" msgstr "Datei-Browser" -#: lib/blame.tcl:81 +#: lib/blame.tcl:78 msgid "Commit:" msgstr "Version:" -#: lib/blame.tcl:264 +#: lib/blame.tcl:271 msgid "Copy Commit" msgstr "Version kopieren" @@ -566,88 +598,88 @@ msgstr "Text suchen..." msgid "Do Full Copy Detection" msgstr "Volle Kopie-Erkennung" -#: lib/blame.tcl:263 +#: lib/blame.tcl:288 msgid "Show History Context" msgstr "Historien-Kontext anzeigen" -#: lib/blame.tcl:266 +#: lib/blame.tcl:291 msgid "Blame Parent Commit" msgstr "Elternversion annotieren" -#: lib/blame.tcl:394 +#: lib/blame.tcl:450 #, tcl-format msgid "Reading %s..." msgstr "%s lesen..." -#: lib/blame.tcl:488 +#: lib/blame.tcl:557 msgid "Loading copy/move tracking annotations..." msgstr "Annotierungen für Kopieren/Verschieben werden geladen..." -#: lib/blame.tcl:508 +#: lib/blame.tcl:577 msgid "lines annotated" msgstr "Zeilen annotiert" -#: lib/blame.tcl:689 +#: lib/blame.tcl:769 msgid "Loading original location annotations..." msgstr "Annotierungen für ursprünglichen Ort werden geladen..." -#: lib/blame.tcl:692 +#: lib/blame.tcl:772 msgid "Annotation complete." msgstr "Annotierung vollständig." -#: lib/blame.tcl:737 +#: lib/blame.tcl:802 msgid "Busy" msgstr "Verarbeitung läuft" -#: lib/blame.tcl:738 +#: lib/blame.tcl:803 msgid "Annotation process is already running." msgstr "Annotierung läuft bereits." -#: lib/blame.tcl:777 +#: lib/blame.tcl:842 msgid "Running thorough copy detection..." msgstr "Intensive Kopie-Erkennung läuft..." -#: lib/blame.tcl:827 +#: lib/blame.tcl:910 msgid "Loading annotation..." msgstr "Annotierung laden..." -#: lib/blame.tcl:802 +#: lib/blame.tcl:963 msgid "Author:" msgstr "Autor:" -#: lib/blame.tcl:806 +#: lib/blame.tcl:967 msgid "Committer:" msgstr "Eintragender:" -#: lib/blame.tcl:811 +#: lib/blame.tcl:972 msgid "Original File:" msgstr "Ursprüngliche Datei:" -#: lib/blame.tcl:1021 +#: lib/blame.tcl:1020 msgid "Cannot find HEAD commit:" msgstr "Zweigspitze (»HEAD«) kann nicht gefunden werden:" -#: lib/blame.tcl:1076 +#: lib/blame.tcl:1075 msgid "Cannot find parent commit:" msgstr "Elternversion kann nicht gefunden werden:" -#: lib/blame.tcl:1001 +#: lib/blame.tcl:1090 msgid "Unable to display parent" msgstr "Elternversion kann nicht angezeigt werden" -#: lib/blame.tcl:1002 lib/diff.tcl:191 +#: lib/blame.tcl:1091 lib/diff.tcl:320 msgid "Error loading diff:" msgstr "Fehler beim Laden des Vergleichs:" -#: lib/blame.tcl:1142 +#: lib/blame.tcl:1231 msgid "Originally By:" msgstr "Ursprünglich von:" -#: lib/blame.tcl:931 +#: lib/blame.tcl:1237 msgid "In File:" msgstr "In Datei:" -#: lib/blame.tcl:936 +#: lib/blame.tcl:1242 msgid "Copied Or Moved Here By:" msgstr "Kopiert oder verschoben durch:" @@ -661,16 +693,18 @@ msgstr "Umstellen" #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282 -#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171 -#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97 +#: lib/checkout_op.tcl:579 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 +#: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 +#: lib/transport.tcl:108 msgid "Cancel" msgstr "Abbrechen" -#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 +#: lib/branch_checkout.tcl:32 lib/browser.tcl:287 lib/tools_dlg.tcl:328 msgid "Revision" msgstr "Version" -#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242 +#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:280 msgid "Options" msgstr "Optionen" @@ -690,7 +724,7 @@ msgstr "Zweig erstellen" msgid "Create New Branch" msgstr "Neuen Zweig erstellen" -#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371 +#: lib/branch_create.tcl:31 lib/choose_repository.tcl:381 msgid "Create" msgstr "Erstellen" @@ -698,7 +732,7 @@ msgstr "Erstellen" msgid "Branch Name" msgstr "Zweigname" -#: lib/branch_create.tcl:43 +#: lib/branch_create.tcl:43 lib/remote_add.tcl:39 lib/tools_dlg.tcl:50 msgid "Name:" msgstr "Name:" @@ -722,7 +756,7 @@ msgstr "Nein" msgid "Fast Forward Only" msgstr "Nur Schnellzusammenführung" -#: lib/branch_create.tcl:85 lib/checkout_op.tcl:514 +#: lib/branch_create.tcl:85 lib/checkout_op.tcl:571 msgid "Reset" msgstr "Zurücksetzen" @@ -764,15 +798,26 @@ msgstr "Lokale Zweige" msgid "Delete Only If Merged Into" msgstr "Nur löschen, wenn zusammengeführt nach" -#: lib/branch_delete.tcl:54 -msgid "Always (Do not perform merge test.)" -msgstr "Immer (ohne Zusammenführungstest)" +#: lib/branch_delete.tcl:54 lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" +msgstr "Immer (Keine Zusammenführungsprüfung)" #: lib/branch_delete.tcl:103 #, tcl-format msgid "The following branches are not completely merged into %s:" msgstr "Folgende Zweige sind noch nicht mit »%s« zusammengeführt:" +#: lib/branch_delete.tcl:115 lib/remote_branch_delete.tcl:217 +msgid "" +"Recovering deleted branches is difficult.\n" +"\n" +"Delete the selected branches?" +msgstr "" +"Das Wiederherstellen von gelöschten Zweigen ist nur mit größerem Aufwand " +"möglich.\n" +"\n" +"Sollen die ausgewählten Zweige gelöscht werden?" + #: lib/branch_delete.tcl:141 #, tcl-format msgid "" @@ -802,7 +847,7 @@ msgstr "Neuer Name:" msgid "Please select a branch to rename." msgstr "Bitte wählen Sie einen Zweig zum umbenennen." -#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:179 +#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:202 #, tcl-format msgid "Branch '%s' already exists." msgstr "Zweig »%s« existiert bereits." @@ -833,37 +878,38 @@ msgstr "[Nach oben]" msgid "Browse Branch Files" msgstr "Dateien des Zweigs durchblättern" -#: lib/browser.tcl:278 lib/choose_repository.tcl:387 -#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484 -#: lib/choose_repository.tcl:987 +#: lib/browser.tcl:278 lib/choose_repository.tcl:398 +#: lib/choose_repository.tcl:486 lib/choose_repository.tcl:497 +#: lib/choose_repository.tcl:1028 msgid "Browse" msgstr "Blättern" -#: lib/checkout_op.tcl:79 +#: lib/checkout_op.tcl:85 #, tcl-format msgid "Fetching %s from %s" msgstr "Änderungen »%s« von »%s« anfordern" -#: lib/checkout_op.tcl:127 +#: lib/checkout_op.tcl:133 #, tcl-format msgid "fatal: Cannot resolve %s" msgstr "Fehler: »%s« kann nicht als Zweig oder Version erkannt werden" -#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31 +#: lib/checkout_op.tcl:146 lib/console.tcl:81 lib/database.tcl:31 +#: lib/sshkey.tcl:53 msgid "Close" msgstr "Schließen" -#: lib/checkout_op.tcl:169 +#: lib/checkout_op.tcl:175 #, tcl-format msgid "Branch '%s' does not exist." msgstr "Zweig »%s« existiert nicht." -#: lib/checkout_op.tcl:193 +#: lib/checkout_op.tcl:194 #, tcl-format msgid "Failed to configure simplified git-pull for '%s'." msgstr "Fehler beim Einrichten der vereinfachten git-pull für »%s«." -#: lib/checkout_op.tcl:228 +#: lib/checkout_op.tcl:229 #, tcl-format msgid "" "Branch '%s' already exists.\n" @@ -876,21 +922,21 @@ msgstr "" "Zweig kann nicht mit »%s« schnellzusammengeführt werden. Reguläres " "Zusammenführen ist notwendig." -#: lib/checkout_op.tcl:220 +#: lib/checkout_op.tcl:243 #, tcl-format msgid "Merge strategy '%s' not supported." msgstr "Zusammenführungsmethode »%s« nicht unterstützt." -#: lib/checkout_op.tcl:239 +#: lib/checkout_op.tcl:262 #, tcl-format msgid "Failed to update '%s'." msgstr "Aktualisieren von »%s« fehlgeschlagen." -#: lib/checkout_op.tcl:251 +#: lib/checkout_op.tcl:274 msgid "Staging area (index) is already locked." msgstr "Bereitstellung (»index«) ist zur Bearbeitung gesperrt (»locked«)." -#: lib/checkout_op.tcl:266 +#: lib/checkout_op.tcl:289 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -906,32 +952,32 @@ msgstr "" "\n" "Es wird gleich neu geladen.\n" -#: lib/checkout_op.tcl:322 +#: lib/checkout_op.tcl:345 #, tcl-format msgid "Updating working directory to '%s'..." msgstr "Arbeitskopie umstellen auf »%s«..." -#: lib/checkout_op.tcl:323 +#: lib/checkout_op.tcl:346 msgid "files checked out" msgstr "Dateien aktualisiert" -#: lib/checkout_op.tcl:353 +#: lib/checkout_op.tcl:376 #, tcl-format msgid "Aborted checkout of '%s' (file level merging is required)." msgstr "" "Auf Zweig »%s« umstellen abgebrochen (Zusammenführen der Dateien ist " "notwendig)." -#: lib/checkout_op.tcl:354 +#: lib/checkout_op.tcl:377 msgid "File level merge required." msgstr "Zusammenführen der Dateien ist notwendig." -#: lib/checkout_op.tcl:358 +#: lib/checkout_op.tcl:381 #, tcl-format msgid "Staying on branch '%s'." msgstr "Es wird auf Zweig »%s« verblieben." -#: lib/checkout_op.tcl:429 +#: lib/checkout_op.tcl:452 msgid "" "You are no longer on a local branch.\n" "\n" @@ -943,32 +989,32 @@ msgstr "" "Wenn Sie auf einem Zweig arbeiten möchten, erstellen Sie bitte jetzt einen " "Zweig mit der Auswahl »Abgetrennte Arbeitskopie-Version«." -#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450 +#: lib/checkout_op.tcl:503 lib/checkout_op.tcl:507 #, tcl-format msgid "Checked out '%s'." msgstr "Umgestellt auf »%s«." -#: lib/checkout_op.tcl:478 +#: lib/checkout_op.tcl:535 #, tcl-format msgid "Resetting '%s' to '%s' will lose the following commits:" msgstr "Zurücksetzen von »%s« nach »%s« wird folgende Versionen verwerfen:" -#: lib/checkout_op.tcl:500 +#: lib/checkout_op.tcl:557 msgid "Recovering lost commits may not be easy." msgstr "" "Verworfene Versionen können nur mit größerem Aufwand wiederhergestellt " "werden." -#: lib/checkout_op.tcl:505 +#: lib/checkout_op.tcl:562 #, tcl-format msgid "Reset '%s'?" msgstr "»%s« zurücksetzen?" -#: lib/checkout_op.tcl:510 lib/merge.tcl:163 +#: lib/checkout_op.tcl:567 lib/merge.tcl:164 lib/tools_dlg.tcl:343 msgid "Visualize" msgstr "Darstellen" -#: lib/checkout_op.tcl:578 +#: lib/checkout_op.tcl:635 #, tcl-format msgid "" "Failed to set current branch.\n" @@ -1014,231 +1060,231 @@ msgstr "" msgid "Git Gui" msgstr "Git Gui" -#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376 +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:386 msgid "Create New Repository" msgstr "Neues Projektarchiv" -#: lib/choose_repository.tcl:87 +#: lib/choose_repository.tcl:93 msgid "New..." msgstr "Neu..." -#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460 +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:471 msgid "Clone Existing Repository" msgstr "Projektarchiv klonen" -#: lib/choose_repository.tcl:100 +#: lib/choose_repository.tcl:106 msgid "Clone..." msgstr "Klonen..." -#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976 +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:1016 msgid "Open Existing Repository" msgstr "Projektarchiv öffnen" -#: lib/choose_repository.tcl:113 +#: lib/choose_repository.tcl:119 msgid "Open..." msgstr "Öffnen..." -#: lib/choose_repository.tcl:126 +#: lib/choose_repository.tcl:132 msgid "Recent Repositories" msgstr "Zuletzt benutzte Projektarchive" -#: lib/choose_repository.tcl:132 +#: lib/choose_repository.tcl:138 msgid "Open Recent Repository:" msgstr "Zuletzt benutztes Projektarchiv öffnen:" -#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303 -#: lib/choose_repository.tcl:310 +#: lib/choose_repository.tcl:306 lib/choose_repository.tcl:313 +#: lib/choose_repository.tcl:320 #, tcl-format msgid "Failed to create repository %s:" msgstr "Projektarchiv »%s« konnte nicht erstellt werden:" -#: lib/choose_repository.tcl:387 +#: lib/choose_repository.tcl:391 msgid "Directory:" msgstr "Verzeichnis:" -#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537 -#: lib/choose_repository.tcl:1011 +#: lib/choose_repository.tcl:423 lib/choose_repository.tcl:550 +#: lib/choose_repository.tcl:1052 msgid "Git Repository" msgstr "Git Projektarchiv" -#: lib/choose_repository.tcl:442 +#: lib/choose_repository.tcl:448 #, tcl-format msgid "Directory %s already exists." msgstr "Verzeichnis »%s« existiert bereits." -#: lib/choose_repository.tcl:446 +#: lib/choose_repository.tcl:452 #, tcl-format msgid "File %s already exists." msgstr "Datei »%s« existiert bereits." -#: lib/choose_repository.tcl:455 +#: lib/choose_repository.tcl:466 msgid "Clone" msgstr "Klonen" -#: lib/choose_repository.tcl:473 +#: lib/choose_repository.tcl:479 msgid "Source Location:" msgstr "Herkunft:" -#: lib/choose_repository.tcl:484 +#: lib/choose_repository.tcl:490 msgid "Target Directory:" msgstr "Zielverzeichnis:" -#: lib/choose_repository.tcl:490 +#: lib/choose_repository.tcl:502 msgid "Clone Type:" msgstr "Art des Klonens:" -#: lib/choose_repository.tcl:495 +#: lib/choose_repository.tcl:508 msgid "Standard (Fast, Semi-Redundant, Hardlinks)" msgstr "Standard (schnell, teilweise redundant, Hardlinks)" -#: lib/choose_repository.tcl:501 +#: lib/choose_repository.tcl:514 msgid "Full Copy (Slower, Redundant Backup)" msgstr "Alles kopieren (langsamer, volle Redundanz)" -#: lib/choose_repository.tcl:507 +#: lib/choose_repository.tcl:520 msgid "Shared (Fastest, Not Recommended, No Backup)" msgstr "Verknüpft (schnell, nicht empfohlen, kein Backup)" -#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590 -#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806 -#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025 +#: lib/choose_repository.tcl:556 lib/choose_repository.tcl:603 +#: lib/choose_repository.tcl:749 lib/choose_repository.tcl:819 +#: lib/choose_repository.tcl:1058 lib/choose_repository.tcl:1066 #, tcl-format msgid "Not a Git repository: %s" msgstr "Kein Git-Projektarchiv in »%s« gefunden." -#: lib/choose_repository.tcl:579 +#: lib/choose_repository.tcl:592 msgid "Standard only available for local repository." msgstr "Standard ist nur für lokale Projektarchive verfügbar." -#: lib/choose_repository.tcl:583 +#: lib/choose_repository.tcl:596 msgid "Shared only available for local repository." msgstr "Verknüpft ist nur für lokale Projektarchive verfügbar." -#: lib/choose_repository.tcl:604 +#: lib/choose_repository.tcl:617 #, tcl-format msgid "Location %s already exists." msgstr "Projektarchiv »%s« existiert bereits." -#: lib/choose_repository.tcl:615 +#: lib/choose_repository.tcl:628 msgid "Failed to configure origin" msgstr "Der Ursprungsort konnte nicht eingerichtet werden" -#: lib/choose_repository.tcl:627 +#: lib/choose_repository.tcl:640 msgid "Counting objects" msgstr "Objekte werden gezählt" -#: lib/choose_repository.tcl:628 +#: lib/choose_repository.tcl:641 msgid "buckets" msgstr "Buckets" -#: lib/choose_repository.tcl:652 +#: lib/choose_repository.tcl:665 #, tcl-format msgid "Unable to copy objects/info/alternates: %s" msgstr "Kopien von Objekten/Info/Alternates konnten nicht erstellt werden: %s" -#: lib/choose_repository.tcl:688 +#: lib/choose_repository.tcl:701 #, tcl-format msgid "Nothing to clone from %s." msgstr "Von »%s« konnte nichts geklont werden." -#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904 -#: lib/choose_repository.tcl:916 +#: lib/choose_repository.tcl:703 lib/choose_repository.tcl:917 +#: lib/choose_repository.tcl:929 msgid "The 'master' branch has not been initialized." msgstr "Der »master«-Zweig wurde noch nicht initialisiert." -#: lib/choose_repository.tcl:703 +#: lib/choose_repository.tcl:716 msgid "Hardlinks are unavailable. Falling back to copying." msgstr "Hardlinks nicht verfügbar. Stattdessen wird kopiert." -#: lib/choose_repository.tcl:715 +#: lib/choose_repository.tcl:728 #, tcl-format msgid "Cloning from %s" msgstr "Kopieren von »%s«" -#: lib/choose_repository.tcl:746 +#: lib/choose_repository.tcl:759 msgid "Copying objects" msgstr "Objektdatenbank kopieren" -#: lib/choose_repository.tcl:747 +#: lib/choose_repository.tcl:760 msgid "KiB" msgstr "KB" -#: lib/choose_repository.tcl:771 +#: lib/choose_repository.tcl:784 #, tcl-format msgid "Unable to copy object: %s" msgstr "Objekt kann nicht kopiert werden: %s" -#: lib/choose_repository.tcl:781 +#: lib/choose_repository.tcl:794 msgid "Linking objects" msgstr "Objekte verlinken" -#: lib/choose_repository.tcl:782 +#: lib/choose_repository.tcl:795 msgid "objects" msgstr "Objekte" -#: lib/choose_repository.tcl:790 +#: lib/choose_repository.tcl:803 #, tcl-format msgid "Unable to hardlink object: %s" msgstr "Für Objekt konnte kein Hardlink erstellt werden: %s" -#: lib/choose_repository.tcl:845 +#: lib/choose_repository.tcl:858 msgid "Cannot fetch branches and objects. See console output for details." msgstr "" "Zweige und Objekte konnten nicht angefordert werden. Kontrollieren Sie die " "Ausgaben auf der Konsole für weitere Angaben." -#: lib/choose_repository.tcl:856 +#: lib/choose_repository.tcl:869 msgid "Cannot fetch tags. See console output for details." msgstr "" "Markierungen konnten nicht angefordert werden. Kontrollieren Sie die " "Ausgaben auf der Konsole für weitere Angaben." -#: lib/choose_repository.tcl:880 +#: lib/choose_repository.tcl:893 msgid "Cannot determine HEAD. See console output for details." msgstr "" "Die Zweigspitze (HEAD) konnte nicht gefunden werden. Kontrollieren Sie die " "Ausgaben auf der Konsole für weitere Angaben." -#: lib/choose_repository.tcl:889 +#: lib/choose_repository.tcl:902 #, tcl-format msgid "Unable to cleanup %s" msgstr "Verzeichnis »%s« kann nicht aufgeräumt werden." -#: lib/choose_repository.tcl:895 +#: lib/choose_repository.tcl:908 msgid "Clone failed." msgstr "Klonen fehlgeschlagen." -#: lib/choose_repository.tcl:902 +#: lib/choose_repository.tcl:915 msgid "No default branch obtained." msgstr "Kein voreingestellter Zweig gefunden." -#: lib/choose_repository.tcl:913 +#: lib/choose_repository.tcl:926 #, tcl-format msgid "Cannot resolve %s as a commit." msgstr "»%s« wurde nicht als Version gefunden." -#: lib/choose_repository.tcl:925 +#: lib/choose_repository.tcl:938 msgid "Creating working directory" msgstr "Arbeitskopie erstellen" -#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127 -#: lib/index.tcl:193 +#: lib/choose_repository.tcl:939 lib/index.tcl:67 lib/index.tcl:130 +#: lib/index.tcl:198 msgid "files" msgstr "Dateien" -#: lib/choose_repository.tcl:955 +#: lib/choose_repository.tcl:968 msgid "Initial file checkout failed." msgstr "Erstellen der Arbeitskopie fehlgeschlagen." -#: lib/choose_repository.tcl:971 +#: lib/choose_repository.tcl:1011 msgid "Open" msgstr "Öffnen" -#: lib/choose_repository.tcl:981 +#: lib/choose_repository.tcl:1021 msgid "Repository:" msgstr "Projektarchiv:" -#: lib/choose_repository.tcl:1031 +#: lib/choose_repository.tcl:1072 #, tcl-format msgid "Failed to open repository %s:" msgstr "Projektarchiv »%s« konnte nicht geöffnet werden." @@ -1311,19 +1357,24 @@ msgstr "" "unfertige Zusammenführung existiert. Dazu müssen Sie die Zusammenführung " "beenden oder abbrechen.\n" -#: lib/commit.tcl:49 +#: lib/commit.tcl:48 msgid "Error loading commit data for amend:" msgstr "Fehler beim Laden der Versionsdaten für Nachbessern:" -#: lib/commit.tcl:76 +#: lib/commit.tcl:75 msgid "Unable to obtain your identity:" msgstr "Benutzername konnte nicht bestimmt werden:" -#: lib/commit.tcl:81 +#: lib/commit.tcl:80 msgid "Invalid GIT_COMMITTER_IDENT:" msgstr "Ungültiger Wert von GIT_COMMITTER_INDENT:" -#: lib/commit.tcl:133 +#: lib/commit.tcl:129 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "Warning: Tcl/Tk unterstützt die Zeichencodierung »%s« nicht." + +#: lib/commit.tcl:149 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -1339,7 +1390,7 @@ msgstr "" "\n" "Es wird gleich neu geladen.\n" -#: lib/commit.tcl:154 +#: lib/commit.tcl:172 #, tcl-format msgid "" "Unmerged files cannot be committed.\n" @@ -1352,7 +1403,7 @@ msgstr "" "Die Datei »%s« hat noch nicht aufgelöste Zusammenführungs-Konflikte. Sie " "müssen diese Konflikte auflösen, bevor Sie eintragen können.\n" -#: lib/commit.tcl:162 +#: lib/commit.tcl:180 #, tcl-format msgid "" "Unknown file state %s detected.\n" @@ -1363,7 +1414,7 @@ msgstr "" "\n" "Datei »%s« kann nicht eingetragen werden.\n" -#: lib/commit.tcl:170 +#: lib/commit.tcl:188 msgid "" "No changes to commit.\n" "\n" @@ -1373,7 +1424,7 @@ msgstr "" "\n" "Sie müssen mindestens eine Datei bereitstellen, bevor Sie eintragen können.\n" -#: lib/commit.tcl:183 +#: lib/commit.tcl:203 msgid "" "Please supply a commit message.\n" "\n" @@ -1393,47 +1444,42 @@ msgstr "" "\n" "- Rest: Eine ausführliche Beschreibung, warum diese Änderung hilfreich ist.\n" -#: lib/commit.tcl:207 -#, tcl-format -msgid "warning: Tcl does not support encoding '%s'." -msgstr "Warning: Tcl/Tk unterstützt die Zeichencodierung »%s« nicht." - -#: lib/commit.tcl:221 +#: lib/commit.tcl:234 msgid "Calling pre-commit hook..." msgstr "Aufrufen der Vor-Eintragen-Kontrolle..." -#: lib/commit.tcl:236 +#: lib/commit.tcl:249 msgid "Commit declined by pre-commit hook." msgstr "Eintragen abgelehnt durch Vor-Eintragen-Kontrolle (»pre-commit hook«)." -#: lib/commit.tcl:259 +#: lib/commit.tcl:272 msgid "Calling commit-msg hook..." msgstr "Aufrufen der Versionsbeschreibungs-Kontrolle..." -#: lib/commit.tcl:274 +#: lib/commit.tcl:287 msgid "Commit declined by commit-msg hook." msgstr "" "Eintragen abgelehnt durch Versionsbeschreibungs-Kontrolle (»commit-message " "hook«)." -#: lib/commit.tcl:287 +#: lib/commit.tcl:300 msgid "Committing changes..." msgstr "Änderungen eintragen..." -#: lib/commit.tcl:303 +#: lib/commit.tcl:316 msgid "write-tree failed:" msgstr "write-tree fehlgeschlagen:" -#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368 +#: lib/commit.tcl:317 lib/commit.tcl:361 lib/commit.tcl:382 msgid "Commit failed." msgstr "Eintragen fehlgeschlagen." -#: lib/commit.tcl:321 +#: lib/commit.tcl:334 #, tcl-format msgid "Commit %s appears to be corrupt" msgstr "Version »%s« scheint beschädigt zu sein" -#: lib/commit.tcl:326 +#: lib/commit.tcl:339 msgid "" "No changes to commit.\n" "\n" @@ -1448,19 +1494,19 @@ msgstr "" "\n" "Das Arbeitsverzeichnis wird daher jetzt neu geladen.\n" -#: lib/commit.tcl:333 +#: lib/commit.tcl:346 msgid "No changes to commit." msgstr "Keine Änderungen, die eingetragen werden können." -#: lib/commit.tcl:347 +#: lib/commit.tcl:360 msgid "commit-tree failed:" msgstr "commit-tree fehlgeschlagen:" -#: lib/commit.tcl:367 +#: lib/commit.tcl:381 msgid "update-ref failed:" msgstr "update-ref fehlgeschlagen:" -#: lib/commit.tcl:454 +#: lib/commit.tcl:469 #, tcl-format msgid "Created commit %s: %s" msgstr "Version %s übertragen: %s" @@ -1513,21 +1559,19 @@ msgstr "Objektdatenbank komprimieren" msgid "Verifying the object database with fsck-objects" msgstr "Die Objektdatenbank durch »fsck-objects« überprüfen lassen" -#: lib/database.tcl:108 +#: lib/database.tcl:107 #, tcl-format msgid "" "This repository currently has approximately %i loose objects.\n" "\n" "To maintain optimal performance it is strongly recommended that you compress " -"the database when more than %i loose objects exist.\n" +"the database.\n" "\n" "Compress the database now?" msgstr "" "Dieses Projektarchiv enthält ungefähr %i nicht verknüpfte Objekte.\n" "\n" -"Für eine optimale Performance wird empfohlen, die Datenbank des " -"Projektarchivs zu komprimieren, sobald mehr als %i nicht verknüpfte Objekte " -"vorliegen.\n" +"Für eine optimale Performance wird empfohlen, die Datenbank des Projektarchivs zu komprimieren.\n" "\n" "Soll die Datenbank jetzt komprimiert werden?" @@ -1536,7 +1580,7 @@ msgstr "" msgid "Invalid date from Git: %s" msgstr "Ungültiges Datum von Git: %s" -#: lib/diff.tcl:42 +#: lib/diff.tcl:64 #, tcl-format msgid "" "No differences detected.\n" @@ -1551,19 +1595,19 @@ msgid "" msgstr "" "Keine Änderungen feststellbar.\n" "\n" -"»%s« enthält keine Änderungen. Zwar wurde das Änderungsdatum dieser Datei " -"von einem anderen Programm modifiziert, aber der Inhalt der Datei ist " +"»%s« enthält keine Änderungen. Zwar wurde das Änderungsdatum dieser Datei von " +"einem anderen Programm modifiziert, aber der Inhalt der Datei ist " "unverändert.\n" "\n" "Das Arbeitsverzeichnis wird jetzt neu geladen, um diese Änderung bei allen " "Dateien zu prüfen." -#: lib/diff.tcl:81 +#: lib/diff.tcl:104 #, tcl-format msgid "Loading diff of %s..." msgstr "Vergleich von »%s« laden..." -#: lib/diff.tcl:120 +#: lib/diff.tcl:125 msgid "" "LOCAL: deleted\n" "REMOTE:\n" @@ -1571,7 +1615,7 @@ msgstr "" "LOKAL: gelöscht\n" "ANDERES:\n" -#: lib/diff.tcl:125 +#: lib/diff.tcl:130 msgid "" "REMOTE: deleted\n" "LOCAL:\n" @@ -1579,32 +1623,32 @@ msgstr "" "ANDERES: gelöscht\n" "LOKAL:\n" -#: lib/diff.tcl:132 +#: lib/diff.tcl:137 msgid "LOCAL:\n" msgstr "LOKAL:\n" -#: lib/diff.tcl:135 +#: lib/diff.tcl:140 msgid "REMOTE:\n" msgstr "ANDERES:\n" -#: lib/diff.tcl:197 lib/diff.tcl:296 +#: lib/diff.tcl:202 lib/diff.tcl:319 #, tcl-format msgid "Unable to display %s" msgstr "Datei »%s« kann nicht angezeigt werden" -#: lib/diff.tcl:115 +#: lib/diff.tcl:203 msgid "Error loading file:" msgstr "Fehler beim Laden der Datei:" -#: lib/diff.tcl:122 +#: lib/diff.tcl:210 msgid "Git Repository (subproject)" msgstr "Git-Projektarchiv (Unterprojekt)" -#: lib/diff.tcl:134 +#: lib/diff.tcl:222 msgid "* Binary file (not showing content)." msgstr "* Binärdatei (Inhalt wird nicht angezeigt)" -#: lib/diff.tcl:222 +#: lib/diff.tcl:227 #, tcl-format msgid "" "* Untracked file is %d bytes.\n" @@ -1613,7 +1657,7 @@ msgstr "" "* Datei nicht unter Versionskontrolle, Dateigröße %d Bytes.\n" "* Nur erste %d Bytes werden angezeigt.\n" -#: lib/diff.tcl:228 +#: lib/diff.tcl:233 #, tcl-format msgid "" "\n" @@ -1624,20 +1668,20 @@ msgstr "" "* Datei nicht unter Versionskontrolle, hier abgeschnitten durch %s.\n" "* Zum Ansehen der vollständigen Datei externen Editor benutzen.\n" -#: lib/diff.tcl:436 +#: lib/diff.tcl:482 msgid "Failed to unstage selected hunk." msgstr "" "Fehler beim Herausnehmen des gewählten Kontexts aus der Bereitstellung." -#: lib/diff.tcl:310 +#: lib/diff.tcl:489 msgid "Failed to stage selected hunk." msgstr "Fehler beim Bereitstellen des gewählten Kontexts." -#: lib/diff.tcl:386 +#: lib/diff.tcl:568 msgid "Failed to unstage selected line." msgstr "Fehler beim Herausnehmen der gewählten Zeile aus der Bereitstellung." -#: lib/diff.tcl:394 +#: lib/diff.tcl:576 msgid "Failed to stage selected line." msgstr "Fehler beim Bereitstellen der gewählten Zeile." @@ -1675,7 +1719,7 @@ msgstr "Bereitstellung kann nicht wieder freigegeben werden." msgid "Index Error" msgstr "Fehler in Bereitstellung" -#: lib/index.tcl:21 +#: lib/index.tcl:17 msgid "" "Updating the Git index failed. A rescan will be automatically started to " "resynchronize git-gui." @@ -1684,7 +1728,7 @@ msgstr "" "Git-Aktualisierung wird jetzt gestartet, um git-gui wieder mit git zu " "synchronisieren." -#: lib/index.tcl:27 +#: lib/index.tcl:28 msgid "Continue" msgstr "Fortsetzen" @@ -1692,44 +1736,44 @@ msgstr "Fortsetzen" msgid "Unlock Index" msgstr "Bereitstellung freigeben" -#: lib/index.tcl:282 +#: lib/index.tcl:289 #, tcl-format msgid "Unstaging %s from commit" msgstr "Datei »%s« aus der Bereitstellung herausnehmen" -#: lib/index.tcl:313 +#: lib/index.tcl:328 msgid "Ready to commit." msgstr "Bereit zum Eintragen." -#: lib/index.tcl:326 +#: lib/index.tcl:341 #, tcl-format msgid "Adding %s" msgstr "»%s« hinzufügen..." -#: lib/index.tcl:381 +#: lib/index.tcl:398 #, tcl-format msgid "Revert changes in file %s?" msgstr "Änderungen in Datei »%s« verwerfen?" -#: lib/index.tcl:383 +#: lib/index.tcl:400 #, tcl-format msgid "Revert changes in these %i files?" msgstr "Änderungen in den gewählten %i Dateien verwerfen?" -#: lib/index.tcl:391 +#: lib/index.tcl:408 msgid "Any unstaged changes will be permanently lost by the revert." msgstr "" "Alle nicht bereitgestellten Änderungen werden beim Verwerfen verloren gehen." -#: lib/index.tcl:394 +#: lib/index.tcl:411 msgid "Do Nothing" msgstr "Nichts tun" -#: lib/index.tcl:419 +#: lib/index.tcl:429 msgid "Reverting selected files" msgstr "Änderungen in gewählten Dateien verwerfen" -#: lib/index.tcl:423 +#: lib/index.tcl:433 #, tcl-format msgid "Reverting %s" msgstr "Änderungen in %s verwerfen" @@ -1761,7 +1805,7 @@ msgstr "" "\n" "Es wird gleich neu geladen.\n" -#: lib/merge.tcl:44 +#: lib/merge.tcl:45 #, tcl-format msgid "" "You are in the middle of a conflicted merge.\n" @@ -1778,7 +1822,7 @@ msgstr "" "bereitstellen und eintragen, um die Zusammenführung abzuschließen. Erst " "danach kann eine neue Zusammenführung begonnen werden.\n" -#: lib/merge.tcl:54 +#: lib/merge.tcl:55 #, tcl-format msgid "" "You are in the middle of a change.\n" @@ -1795,34 +1839,34 @@ msgstr "" "Reihenfolge können Sie mögliche Konflikte beim Zusammenführen wesentlich " "einfacher beheben oder abbrechen.\n" -#: lib/merge.tcl:106 +#: lib/merge.tcl:107 #, tcl-format msgid "%s of %s" msgstr "%s von %s" -#: lib/merge.tcl:119 +#: lib/merge.tcl:120 #, tcl-format msgid "Merging %s and %s..." msgstr "Zusammenführen von %s und %s..." -#: lib/merge.tcl:130 +#: lib/merge.tcl:131 msgid "Merge completed successfully." msgstr "Zusammenführen erfolgreich abgeschlossen." -#: lib/merge.tcl:132 +#: lib/merge.tcl:133 msgid "Merge failed. Conflict resolution is required." msgstr "Zusammenführen fehlgeschlagen. Konfliktauflösung ist notwendig." -#: lib/merge.tcl:157 +#: lib/merge.tcl:158 #, tcl-format msgid "Merge Into %s" msgstr "Zusammenführen in »%s«" -#: lib/merge.tcl:176 +#: lib/merge.tcl:177 msgid "Revision To Merge" msgstr "Zusammenzuführende Version" -#: lib/merge.tcl:211 +#: lib/merge.tcl:212 msgid "" "Cannot abort while amending.\n" "\n" @@ -1832,7 +1876,7 @@ msgstr "" "\n" "Sie müssen die Nachbesserung der Version abschließen.\n" -#: lib/merge.tcl:221 +#: lib/merge.tcl:222 msgid "" "Abort merge?\n" "\n" @@ -1847,7 +1891,7 @@ msgstr "" "\n" "Zusammenführen jetzt abbrechen?" -#: lib/merge.tcl:227 +#: lib/merge.tcl:228 msgid "" "Reset changes?\n" "\n" @@ -1862,35 +1906,35 @@ msgstr "" "\n" "Änderungen jetzt zurücksetzen?" -#: lib/merge.tcl:238 +#: lib/merge.tcl:239 msgid "Aborting" msgstr "Abbruch" -#: lib/merge.tcl:238 +#: lib/merge.tcl:239 msgid "files reset" msgstr "Dateien zurückgesetzt" -#: lib/merge.tcl:265 +#: lib/merge.tcl:267 msgid "Abort failed." msgstr "Abbruch fehlgeschlagen." -#: lib/merge.tcl:267 +#: lib/merge.tcl:269 msgid "Abort completed. Ready." msgstr "Abbruch durchgeführt. Bereit." -#: lib/mergetool.tcl:14 +#: lib/mergetool.tcl:8 msgid "Force resolution to the base version?" msgstr "Konflikt durch Basisversion ersetzen?" -#: lib/mergetool.tcl:15 +#: lib/mergetool.tcl:9 msgid "Force resolution to this branch?" msgstr "Konflikt durch diesen Zweig ersetzen?" -#: lib/mergetool.tcl:16 +#: lib/mergetool.tcl:10 msgid "Force resolution to the other branch?" msgstr "Konflikt durch anderen Zweig ersetzen?" -#: lib/mergetool.tcl:20 +#: lib/mergetool.tcl:14 #, tcl-format msgid "" "Note that the diff shows only conflicting changes.\n" @@ -1916,31 +1960,31 @@ msgstr "Datei »%s« hat nicht aufgelöste Konflikte. Trotzdem bereitstellen?" msgid "Adding resolution for %s" msgstr "Auflösung hinzugefügt für %s" -#: lib/mergetool.tcl:119 +#: lib/mergetool.tcl:141 msgid "Cannot resolve deletion or link conflicts using a tool" msgstr "" "Konflikte durch gelöschte Dateien oder symbolische Links können nicht durch " "das Zusamenführungswerkzeug gelöst werden." -#: lib/mergetool.tcl:124 +#: lib/mergetool.tcl:146 msgid "Conflict file does not exist" msgstr "Konflikt-Datei existiert nicht" -#: lib/mergetool.tcl:236 +#: lib/mergetool.tcl:264 #, tcl-format msgid "Not a GUI merge tool: '%s'" msgstr "Kein GUI Zusammenführungswerkzeug: »%s«" -#: lib/mergetool.tcl:240 +#: lib/mergetool.tcl:268 #, tcl-format msgid "Unsupported merge tool '%s'" msgstr "Unbekanntes Zusammenführungswerkzeug: »%s«" -#: lib/mergetool.tcl:275 +#: lib/mergetool.tcl:303 msgid "Merge tool is already running, terminate it?" msgstr "Zusammenführungswerkzeug läuft bereits. Soll es abgebrochen werden?" -#: lib/mergetool.tcl:295 +#: lib/mergetool.tcl:323 #, tcl-format msgid "" "Error retrieving versions:\n" @@ -1949,7 +1993,7 @@ msgstr "" "Fehler beim Abrufen der Dateiversionen:\n" "%s" -#: lib/mergetool.tcl:315 +#: lib/mergetool.tcl:343 #, tcl-format msgid "" "Could not start the merge tool:\n" @@ -1960,11 +2004,11 @@ msgstr "" "\n" "%s" -#: lib/mergetool.tcl:319 +#: lib/mergetool.tcl:347 msgid "Running merge tool..." msgstr "Zusammenführungswerkzeug starten..." -#: lib/mergetool.tcl:347 lib/mergetool.tcl:363 +#: lib/mergetool.tcl:375 lib/mergetool.tcl:383 msgid "Merge tool failed." msgstr "Zusammenführungswerkzeug fehlgeschlagen." @@ -1982,76 +2026,76 @@ msgstr "Ungültige Archiv-Zeichenkodierung »%s«" msgid "Restore Defaults" msgstr "Voreinstellungen wiederherstellen" -#: lib/option.tcl:99 +#: lib/option.tcl:121 msgid "Save" msgstr "Speichern" -#: lib/option.tcl:109 +#: lib/option.tcl:131 #, tcl-format msgid "%s Repository" msgstr "Projektarchiv %s" -#: lib/option.tcl:110 +#: lib/option.tcl:132 msgid "Global (All Repositories)" msgstr "Global (Alle Projektarchive)" -#: lib/option.tcl:116 +#: lib/option.tcl:138 msgid "User Name" msgstr "Benutzername" -#: lib/option.tcl:117 +#: lib/option.tcl:139 msgid "Email Address" msgstr "E-Mail-Adresse" -#: lib/option.tcl:119 +#: lib/option.tcl:141 msgid "Summarize Merge Commits" msgstr "Zusammenführungs-Versionen zusammenfassen" -#: lib/option.tcl:120 +#: lib/option.tcl:142 msgid "Merge Verbosity" msgstr "Ausführlichkeit der Zusammenführen-Meldungen" -#: lib/option.tcl:121 +#: lib/option.tcl:143 msgid "Show Diffstat After Merge" msgstr "Vergleichsstatistik nach Zusammenführen anzeigen" -#: lib/option.tcl:122 +#: lib/option.tcl:144 msgid "Use Merge Tool" msgstr "Zusammenführungswerkzeug" -#: lib/option.tcl:124 +#: lib/option.tcl:146 msgid "Trust File Modification Timestamps" msgstr "Auf Dateiänderungsdatum verlassen" -#: lib/option.tcl:124 +#: lib/option.tcl:147 msgid "Prune Tracking Branches During Fetch" msgstr "Übernahmezweige aufräumen während Anforderung" -#: lib/option.tcl:125 +#: lib/option.tcl:148 msgid "Match Tracking Branches" msgstr "Passend zu Übernahmezweig" -#: lib/option.tcl:126 +#: lib/option.tcl:149 msgid "Blame Copy Only On Changed Files" msgstr "Kopie-Annotieren nur bei geänderten Dateien" -#: lib/option.tcl:127 +#: lib/option.tcl:150 msgid "Minimum Letters To Blame Copy On" msgstr "Mindestzahl Zeichen für Kopie-Annotieren" -#: lib/option.tcl:128 +#: lib/option.tcl:151 msgid "Blame History Context Radius (days)" msgstr "Anzahl Tage für Historien-Kontext" -#: lib/option.tcl:129 +#: lib/option.tcl:152 msgid "Number of Diff Context Lines" msgstr "Anzahl der Kontextzeilen beim Vergleich" -#: lib/option.tcl:127 +#: lib/option.tcl:153 msgid "Commit Message Text Width" msgstr "Textbreite der Versionsbeschreibung" -#: lib/option.tcl:128 +#: lib/option.tcl:154 msgid "New Branch Name Template" msgstr "Namensvorschlag für neue Zweige" @@ -2067,24 +2111,24 @@ msgstr "Ändern" msgid "Spelling Dictionary:" msgstr "Wörterbuch Rechtschreibprüfung:" -#: lib/option.tcl:216 +#: lib/option.tcl:254 msgid "Change Font" msgstr "Schriftart ändern" -#: lib/option.tcl:220 +#: lib/option.tcl:258 #, tcl-format msgid "Choose %s" msgstr "%s wählen" -#: lib/option.tcl:226 +#: lib/option.tcl:264 msgid "pt." msgstr "pt." -#: lib/option.tcl:240 +#: lib/option.tcl:278 msgid "Preferences" msgstr "Einstellungen" -#: lib/option.tcl:275 +#: lib/option.tcl:314 msgid "Failed to completely save options:" msgstr "Optionen konnten nicht gespeichert werden:" @@ -2096,7 +2140,7 @@ msgstr "Anderes Archiv hinzufügen" msgid "Add New Remote" msgstr "Neues anderes Archiv hinzufügen" -#: lib/remote_add.tcl:28 +#: lib/remote_add.tcl:28 lib/tools_dlg.tcl:36 msgid "Add" msgstr "Hinzufügen" @@ -2151,8 +2195,7 @@ msgstr "»%s« anfordern" #: lib/remote_add.tcl:157 #, tcl-format msgid "Do not know how to initialize repository at location '%s'." -msgstr "" -"Initialisieren eines anderen Archivs an Adresse »%s« ist nicht möglich." +msgstr "Initialisieren eines anderen Archivs an Adresse »%s« ist nicht möglich." #: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:63 #: lib/transport.tcl:81 @@ -2173,11 +2216,11 @@ msgstr "Zweig in anderem Archiv löschen" msgid "From Repository" msgstr "In Projektarchiv" -#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123 +#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:134 msgid "Remote:" msgstr "Anderes Archiv:" -#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138 +#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:149 msgid "Arbitrary Location:" msgstr "Adresse:" @@ -2193,10 +2236,6 @@ msgstr "Nur löschen, wenn" msgid "Merged Into:" msgstr "Zusammengeführt mit:" -#: lib/remote_branch_delete.tcl:119 -msgid "Always (Do not perform merge checks)" -msgstr "Immer (Keine Zusammenführungsprüfung)" - #: lib/remote_branch_delete.tcl:152 msgid "A branch is required for 'Merged Into'." msgstr "Für »Zusammenführen mit« muss ein Zweig angegeben werden." @@ -2226,27 +2265,16 @@ msgstr "" msgid "Please select one or more branches to delete." msgstr "Bitte wählen Sie mindestens einen Zweig, der gelöscht werden soll." -#: lib/remote_branch_delete.tcl:216 -msgid "" -"Recovering deleted branches is difficult.\n" -"\n" -"Delete the selected branches?" -msgstr "" -"Das Wiederherstellen von gelöschten Zweigen ist nur mit größerem Aufwand " -"möglich.\n" -"\n" -"Sollen die ausgewählten Zweige gelöscht werden?" - #: lib/remote_branch_delete.tcl:226 #, tcl-format msgid "Deleting branches from %s" msgstr "Zweige auf »%s« werden gelöscht" -#: lib/remote_branch_delete.tcl:286 +#: lib/remote_branch_delete.tcl:292 msgid "No repository selected." msgstr "Kein Projektarchiv ausgewählt." -#: lib/remote_branch_delete.tcl:291 +#: lib/remote_branch_delete.tcl:297 #, tcl-format msgid "Scanning %s..." msgstr "»%s« laden..." @@ -2259,11 +2287,11 @@ msgstr "Anderes Archiv entfernen" msgid "Prune from" msgstr "Aufräumen von" -#: lib/remote.tcl:170 +#: lib/remote.tcl:173 msgid "Fetch from" msgstr "Anfordern von" -#: lib/remote.tcl:213 +#: lib/remote.tcl:215 msgid "Push to" msgstr "Versenden nach" @@ -2271,11 +2299,11 @@ msgstr "Versenden nach" msgid "Find:" msgstr "Suchen:" -#: lib/search.tcl:22 +#: lib/search.tcl:23 msgid "Next" msgstr "Nächster" -#: lib/search.tcl:23 +#: lib/search.tcl:24 msgid "Prev" msgstr "Voriger" @@ -2283,11 +2311,11 @@ msgstr "Voriger" msgid "Case-Sensitive" msgstr "Groß-/Kleinschreibung unterscheiden" -#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +#: lib/shortcut.tcl:21 lib/shortcut.tcl:62 msgid "Cannot write shortcut:" msgstr "Fehler beim Schreiben der Verknüpfung:" -#: lib/shortcut.tcl:136 +#: lib/shortcut.tcl:137 msgid "Cannot write icon:" msgstr "Fehler beim Erstellen des Icons:" @@ -2316,15 +2344,15 @@ msgstr "Rechtschreibprüfungsprogramm mit Fehler abgebrochen" msgid "Unrecognized spell checker" msgstr "Unbekanntes Rechtschreibprüfungsprogramm" -#: lib/spellcheck.tcl:180 +#: lib/spellcheck.tcl:186 msgid "No Suggestions" msgstr "Keine Vorschläge" -#: lib/spellcheck.tcl:381 +#: lib/spellcheck.tcl:388 msgid "Unexpected EOF from spell checker" msgstr "Unerwartetes EOF vom Rechtschreibprüfungsprogramm" -#: lib/spellcheck.tcl:385 +#: lib/spellcheck.tcl:392 msgid "Spell Checker Failed" msgstr "Rechtschreibprüfung fehlgeschlagen" @@ -2534,31 +2562,31 @@ msgstr "Spiegeln nach %s" msgid "Pushing %s %s to %s" msgstr "%s %s nach %s versenden" -#: lib/transport.tcl:89 +#: lib/transport.tcl:100 msgid "Push Branches" msgstr "Zweige versenden" -#: lib/transport.tcl:103 +#: lib/transport.tcl:114 msgid "Source Branches" msgstr "Lokale Zweige" -#: lib/transport.tcl:120 +#: lib/transport.tcl:131 msgid "Destination Repository" msgstr "Ziel-Projektarchiv" -#: lib/transport.tcl:158 +#: lib/transport.tcl:169 msgid "Transfer Options" msgstr "Netzwerk-Einstellungen" -#: lib/transport.tcl:160 +#: lib/transport.tcl:171 msgid "Force overwrite existing branch (may discard changes)" msgstr "" "Überschreiben von existierenden Zweigen erzwingen (könnte Änderungen löschen)" -#: lib/transport.tcl:164 +#: lib/transport.tcl:175 msgid "Use thin pack (for slow network connections)" msgstr "Kompaktes Datenformat benutzen (für langsame Netzverbindungen)" -#: lib/transport.tcl:168 +#: lib/transport.tcl:179 msgid "Include tags" msgstr "Mit Markierungen übertragen" diff --git a/git-gui/po/fr.po b/git-gui/po/fr.po index a944ace6ce..81706965f3 100644 --- a/git-gui/po/fr.po +++ b/git-gui/po/fr.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-11-16 13:56-0800\n" -"PO-Revision-Date: 2008-11-20 10:20+0100\n" +"POT-Creation-Date: 2010-01-26 15:47-0800\n" +"PO-Revision-Date: 2010-02-02 12:59+0100\n" "Last-Translator: Christian Couder <chriscool@tuxfamily.org>\n" "Language-Team: French\n" "MIME-Version: 1.0\n" @@ -19,33 +19,33 @@ msgstr "" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: git-gui.sh:41 git-gui.sh:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 -#: git-gui.sh:866 +#: git-gui.sh:41 git-gui.sh:793 git-gui.sh:807 git-gui.sh:820 git-gui.sh:903 +#: git-gui.sh:922 msgid "git-gui: fatal error" msgstr "git-gui: erreur fatale" -#: git-gui.sh:689 +#: git-gui.sh:743 #, tcl-format msgid "Invalid font specified in %s:" msgstr "Police invalide spécifiée dans %s :" -#: git-gui.sh:723 +#: git-gui.sh:779 msgid "Main Font" msgstr "Police principale" -#: git-gui.sh:724 +#: git-gui.sh:780 msgid "Diff/Console Font" msgstr "Police diff/console" -#: git-gui.sh:738 +#: git-gui.sh:794 msgid "Cannot find git in PATH." msgstr "Impossible de trouver git dans PATH." -#: git-gui.sh:765 +#: git-gui.sh:821 msgid "Cannot parse Git version string:" msgstr "Impossible de parser la version de Git :" -#: git-gui.sh:783 +#: git-gui.sh:839 #, tcl-format msgid "" "Git version cannot be determined.\n" @@ -64,446 +64,475 @@ msgstr "" "\n" "Peut-on considérer que '%s' est en version 1.5.0 ?\n" -#: git-gui.sh:1062 +#: git-gui.sh:1128 msgid "Git directory not found:" msgstr "Impossible de trouver le répertoire git :" -#: git-gui.sh:1069 +#: git-gui.sh:1146 msgid "Cannot move to top of working directory:" msgstr "Impossible d'aller à la racine du répertoire de travail :" -#: git-gui.sh:1076 -msgid "Cannot use funny .git directory:" -msgstr "Impossible d'utiliser le répertoire .git:" +#: git-gui.sh:1154 +msgid "Cannot use bare repository:" +msgstr "Impossible d'utiliser un dépôt nu (bare) :" -#: git-gui.sh:1081 +#: git-gui.sh:1162 msgid "No working directory" msgstr "Aucun répertoire de travail" -#: git-gui.sh:1247 lib/checkout_op.tcl:305 +#: git-gui.sh:1334 lib/checkout_op.tcl:306 msgid "Refreshing file status..." msgstr "Rafraîchissement du statut des fichiers..." -#: git-gui.sh:1303 +#: git-gui.sh:1390 msgid "Scanning for modified files ..." msgstr "Recherche de fichiers modifiés..." -#: git-gui.sh:1367 +#: git-gui.sh:1454 msgid "Calling prepare-commit-msg hook..." msgstr "Lancement de l'action de préparation du message de commit..." -#: git-gui.sh:1384 +#: git-gui.sh:1471 msgid "Commit declined by prepare-commit-msg hook." msgstr "Commit refusé par l'action de préparation du message de commit." -#: git-gui.sh:1542 lib/browser.tcl:246 +#: git-gui.sh:1629 lib/browser.tcl:246 msgid "Ready." msgstr "Prêt." -#: git-gui.sh:1819 +#: git-gui.sh:1787 +#, tcl-format +msgid "Displaying only %s of %s files." +msgstr "Affiche seulement %s fichiers sur %s." + +#: git-gui.sh:1913 msgid "Unmodified" msgstr "Non modifié" -#: git-gui.sh:1821 +#: git-gui.sh:1915 msgid "Modified, not staged" msgstr "Modifié, pas indexé" -#: git-gui.sh:1822 git-gui.sh:1830 +#: git-gui.sh:1916 git-gui.sh:1924 msgid "Staged for commit" msgstr "Indexé" -#: git-gui.sh:1823 git-gui.sh:1831 +#: git-gui.sh:1917 git-gui.sh:1925 msgid "Portions staged for commit" msgstr "Portions indexées" -#: git-gui.sh:1824 git-gui.sh:1832 +#: git-gui.sh:1918 git-gui.sh:1926 msgid "Staged for commit, missing" msgstr "Indexés, manquant" -#: git-gui.sh:1826 +#: git-gui.sh:1920 msgid "File type changed, not staged" msgstr "Le type de fichier a changé, non indexé" -#: git-gui.sh:1827 +#: git-gui.sh:1921 msgid "File type changed, staged" msgstr "Le type de fichier a changé, indexé" -#: git-gui.sh:1829 +#: git-gui.sh:1923 msgid "Untracked, not staged" msgstr "Non versionné, non indexé" -#: git-gui.sh:1834 +#: git-gui.sh:1928 msgid "Missing" msgstr "Manquant" -#: git-gui.sh:1835 +#: git-gui.sh:1929 msgid "Staged for removal" msgstr "Indexé pour suppression" -#: git-gui.sh:1836 +#: git-gui.sh:1930 msgid "Staged for removal, still present" msgstr "Indexé pour suppression, toujours présent" -#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 -#: git-gui.sh:1842 git-gui.sh:1843 +#: git-gui.sh:1932 git-gui.sh:1933 git-gui.sh:1934 git-gui.sh:1935 +#: git-gui.sh:1936 git-gui.sh:1937 msgid "Requires merge resolution" msgstr "Nécessite la résolution d'une fusion" -#: git-gui.sh:1878 +#: git-gui.sh:1972 msgid "Starting gitk... please wait..." msgstr "Lancement de gitk... un instant..." -#: git-gui.sh:1887 +#: git-gui.sh:1984 msgid "Couldn't find gitk in PATH" msgstr "Impossible de trouver gitk dans PATH." -#: git-gui.sh:2280 lib/choose_repository.tcl:36 +#: git-gui.sh:2043 +msgid "Couldn't find git gui in PATH" +msgstr "Impossible de trouver git gui dans PATH" + +#: git-gui.sh:2455 lib/choose_repository.tcl:36 msgid "Repository" msgstr "Dépôt" -#: git-gui.sh:2281 +#: git-gui.sh:2456 msgid "Edit" msgstr "Édition" -#: git-gui.sh:2283 lib/choose_rev.tcl:561 +#: git-gui.sh:2458 lib/choose_rev.tcl:561 msgid "Branch" msgstr "Branche" -#: git-gui.sh:2286 lib/choose_rev.tcl:548 +#: git-gui.sh:2461 lib/choose_rev.tcl:548 msgid "Commit@@noun" msgstr "Commit" -#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +#: git-gui.sh:2464 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 msgid "Merge" msgstr "Fusionner" -#: git-gui.sh:2290 lib/choose_rev.tcl:557 +#: git-gui.sh:2465 lib/choose_rev.tcl:557 msgid "Remote" msgstr "Dépôt distant" -#: git-gui.sh:2293 +#: git-gui.sh:2468 msgid "Tools" msgstr "Outils" -#: git-gui.sh:2302 +#: git-gui.sh:2477 msgid "Explore Working Copy" msgstr "Explorer la copie de travail" -#: git-gui.sh:2307 +#: git-gui.sh:2483 msgid "Browse Current Branch's Files" msgstr "Naviguer dans la branche courante" -#: git-gui.sh:2311 +#: git-gui.sh:2487 msgid "Browse Branch Files..." msgstr "Naviguer dans la branche..." -#: git-gui.sh:2316 +#: git-gui.sh:2492 msgid "Visualize Current Branch's History" msgstr "Visualiser l'historique de la branche courante" -#: git-gui.sh:2320 +#: git-gui.sh:2496 msgid "Visualize All Branch History" msgstr "Voir l'historique de toutes les branches" -#: git-gui.sh:2327 +#: git-gui.sh:2503 #, tcl-format msgid "Browse %s's Files" msgstr "Parcourir l'arborescence de %s" -#: git-gui.sh:2329 +#: git-gui.sh:2505 #, tcl-format msgid "Visualize %s's History" msgstr "Voir l'historique de la branche : %s" -#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +#: git-gui.sh:2510 lib/database.tcl:27 lib/database.tcl:67 msgid "Database Statistics" msgstr "Statistiques du dépôt" -#: git-gui.sh:2337 lib/database.tcl:34 +#: git-gui.sh:2513 lib/database.tcl:34 msgid "Compress Database" msgstr "Comprimer le dépôt" -#: git-gui.sh:2340 +#: git-gui.sh:2516 msgid "Verify Database" msgstr "Vérifier le dépôt" -#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 -#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +#: git-gui.sh:2523 git-gui.sh:2527 git-gui.sh:2531 lib/shortcut.tcl:8 +#: lib/shortcut.tcl:40 lib/shortcut.tcl:72 msgid "Create Desktop Icon" msgstr "Créer une icône sur le bureau" -#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +#: git-gui.sh:2539 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 msgid "Quit" msgstr "Quitter" -#: git-gui.sh:2371 +#: git-gui.sh:2547 msgid "Undo" msgstr "Défaire" -#: git-gui.sh:2374 +#: git-gui.sh:2550 msgid "Redo" msgstr "Refaire" -#: git-gui.sh:2378 git-gui.sh:2923 +#: git-gui.sh:2554 git-gui.sh:3109 msgid "Cut" msgstr "Couper" -#: git-gui.sh:2381 git-gui.sh:2926 git-gui.sh:3000 git-gui.sh:3082 +#: git-gui.sh:2557 git-gui.sh:3112 git-gui.sh:3186 git-gui.sh:3259 #: lib/console.tcl:69 msgid "Copy" msgstr "Copier" -#: git-gui.sh:2384 git-gui.sh:2929 +#: git-gui.sh:2560 git-gui.sh:3115 msgid "Paste" msgstr "Coller" -#: git-gui.sh:2387 git-gui.sh:2932 lib/branch_delete.tcl:26 +#: git-gui.sh:2563 git-gui.sh:3118 lib/branch_delete.tcl:26 #: lib/remote_branch_delete.tcl:38 msgid "Delete" msgstr "Supprimer" -#: git-gui.sh:2391 git-gui.sh:2936 git-gui.sh:3086 lib/console.tcl:71 +#: git-gui.sh:2567 git-gui.sh:3122 git-gui.sh:3263 lib/console.tcl:71 msgid "Select All" msgstr "Tout sélectionner" -#: git-gui.sh:2400 +#: git-gui.sh:2576 msgid "Create..." msgstr "Créer..." -#: git-gui.sh:2406 +#: git-gui.sh:2582 msgid "Checkout..." msgstr "Charger (checkout)..." -#: git-gui.sh:2412 +#: git-gui.sh:2588 msgid "Rename..." msgstr "Renommer..." -#: git-gui.sh:2417 +#: git-gui.sh:2593 msgid "Delete..." msgstr "Supprimer..." -#: git-gui.sh:2422 +#: git-gui.sh:2598 msgid "Reset..." msgstr "Réinitialiser..." -#: git-gui.sh:2432 +#: git-gui.sh:2608 msgid "Done" msgstr "Effectué" -#: git-gui.sh:2434 +#: git-gui.sh:2610 msgid "Commit@@verb" msgstr "Commiter@@verb" -#: git-gui.sh:2443 git-gui.sh:2864 +#: git-gui.sh:2619 git-gui.sh:3050 msgid "New Commit" msgstr "Nouveau commit" -#: git-gui.sh:2451 git-gui.sh:2871 +#: git-gui.sh:2627 git-gui.sh:3057 msgid "Amend Last Commit" msgstr "Corriger dernier commit" -#: git-gui.sh:2461 git-gui.sh:2825 lib/remote_branch_delete.tcl:99 +#: git-gui.sh:2637 git-gui.sh:3011 lib/remote_branch_delete.tcl:99 msgid "Rescan" msgstr "Recharger modifs." -#: git-gui.sh:2467 +#: git-gui.sh:2643 msgid "Stage To Commit" msgstr "Indexer" -#: git-gui.sh:2473 +#: git-gui.sh:2649 msgid "Stage Changed Files To Commit" msgstr "Indexer toutes modifications" -#: git-gui.sh:2479 +#: git-gui.sh:2655 msgid "Unstage From Commit" msgstr "Désindexer" -#: git-gui.sh:2484 lib/index.tcl:410 +#: git-gui.sh:2661 lib/index.tcl:412 msgid "Revert Changes" msgstr "Annuler les modifications" -#: git-gui.sh:2491 git-gui.sh:3069 +#: git-gui.sh:2669 git-gui.sh:3310 git-gui.sh:3341 msgid "Show Less Context" msgstr "Montrer moins de contexte" -#: git-gui.sh:2495 git-gui.sh:3073 +#: git-gui.sh:2673 git-gui.sh:3314 git-gui.sh:3345 msgid "Show More Context" msgstr "Montrer plus de contexte" -#: git-gui.sh:2502 git-gui.sh:2838 git-gui.sh:2947 +#: git-gui.sh:2680 git-gui.sh:3024 git-gui.sh:3133 msgid "Sign Off" msgstr "Signer" -#: git-gui.sh:2518 +#: git-gui.sh:2696 msgid "Local Merge..." msgstr "Fusion locale..." -#: git-gui.sh:2523 +#: git-gui.sh:2701 msgid "Abort Merge..." msgstr "Abandonner fusion..." -#: git-gui.sh:2535 git-gui.sh:2575 +#: git-gui.sh:2713 git-gui.sh:2741 msgid "Add..." msgstr "Ajouter..." -#: git-gui.sh:2539 +#: git-gui.sh:2717 msgid "Push..." msgstr "Pousser..." -#: git-gui.sh:2543 +#: git-gui.sh:2721 msgid "Delete Branch..." msgstr "Supprimer branche..." -#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 -#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 -#, tcl-format -msgid "About %s" -msgstr "À propos de %s" - -#: git-gui.sh:2557 -msgid "Preferences..." -msgstr "Préférences..." - -#: git-gui.sh:2565 git-gui.sh:3115 +#: git-gui.sh:2731 git-gui.sh:3292 msgid "Options..." msgstr "Options..." -#: git-gui.sh:2576 +#: git-gui.sh:2742 msgid "Remove..." msgstr "Supprimer..." -#: git-gui.sh:2585 lib/choose_repository.tcl:50 +#: git-gui.sh:2751 lib/choose_repository.tcl:50 msgid "Help" msgstr "Aide" -#: git-gui.sh:2611 +#: git-gui.sh:2755 git-gui.sh:2759 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "À propos de %s" + +#: git-gui.sh:2783 msgid "Online Documentation" msgstr "Documentation en ligne" -#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +#: git-gui.sh:2786 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 msgid "Show SSH Key" msgstr "Montrer la clé SSH" -#: git-gui.sh:2707 +#: git-gui.sh:2893 #, tcl-format msgid "fatal: cannot stat path %s: No such file or directory" msgstr "" "erreur fatale : pas d'infos sur le chemin %s : Fichier ou répertoire " "inexistant" -#: git-gui.sh:2740 +#: git-gui.sh:2926 msgid "Current Branch:" msgstr "Branche courante :" -#: git-gui.sh:2761 +#: git-gui.sh:2947 msgid "Staged Changes (Will Commit)" msgstr "Modifs. indexées (pour commit)" -#: git-gui.sh:2781 +#: git-gui.sh:2967 msgid "Unstaged Changes" msgstr "Modifs. non indexées" -#: git-gui.sh:2831 +#: git-gui.sh:3017 msgid "Stage Changed" msgstr "Indexer modifs." -#: git-gui.sh:2850 lib/transport.tcl:93 lib/transport.tcl:182 +#: git-gui.sh:3036 lib/transport.tcl:104 lib/transport.tcl:193 msgid "Push" msgstr "Pousser" -#: git-gui.sh:2885 +#: git-gui.sh:3071 msgid "Initial Commit Message:" msgstr "Message de commit initial :" -#: git-gui.sh:2886 +#: git-gui.sh:3072 msgid "Amended Commit Message:" msgstr "Message de commit corrigé :" -#: git-gui.sh:2887 +#: git-gui.sh:3073 msgid "Amended Initial Commit Message:" msgstr "Message de commit initial corrigé :" -#: git-gui.sh:2888 +#: git-gui.sh:3074 msgid "Amended Merge Commit Message:" msgstr "Message de commit de fusion corrigé :" -#: git-gui.sh:2889 +#: git-gui.sh:3075 msgid "Merge Commit Message:" msgstr "Message de commit de fusion :" -#: git-gui.sh:2890 +#: git-gui.sh:3076 msgid "Commit Message:" msgstr "Message de commit :" -#: git-gui.sh:2939 git-gui.sh:3090 lib/console.tcl:73 +#: git-gui.sh:3125 git-gui.sh:3267 lib/console.tcl:73 msgid "Copy All" msgstr "Copier tout" -#: git-gui.sh:2963 lib/blame.tcl:104 +#: git-gui.sh:3149 lib/blame.tcl:104 msgid "File:" msgstr "Fichier :" -#: git-gui.sh:3078 +#: git-gui.sh:3255 msgid "Refresh" msgstr "Rafraîchir" -#: git-gui.sh:3099 +#: git-gui.sh:3276 msgid "Decrease Font Size" msgstr "Diminuer la police" -#: git-gui.sh:3103 +#: git-gui.sh:3280 msgid "Increase Font Size" msgstr "Agrandir la police" -#: git-gui.sh:3111 lib/blame.tcl:281 +#: git-gui.sh:3288 lib/blame.tcl:281 msgid "Encoding" msgstr "Codage des caractères" -#: git-gui.sh:3122 +#: git-gui.sh:3299 msgid "Apply/Reverse Hunk" msgstr "Appliquer/Inverser section" -#: git-gui.sh:3127 +#: git-gui.sh:3304 msgid "Apply/Reverse Line" msgstr "Appliquer/Inverser la ligne" -#: git-gui.sh:3137 +#: git-gui.sh:3323 msgid "Run Merge Tool" msgstr "Lancer l'outil de fusion" -#: git-gui.sh:3142 +#: git-gui.sh:3328 msgid "Use Remote Version" msgstr "Utiliser la version distante" -#: git-gui.sh:3146 +#: git-gui.sh:3332 msgid "Use Local Version" msgstr "Utiliser la version locale" -#: git-gui.sh:3150 +#: git-gui.sh:3336 msgid "Revert To Base" msgstr "Revenir à la version de base" -#: git-gui.sh:3169 +#: git-gui.sh:3354 +msgid "Visualize These Changes In The Submodule" +msgstr "Voir les changments dans le sous-module" + +#: git-gui.sh:3358 +msgid "Visualize Current Branch History In The Submodule" +msgstr "Voir l'historique de la branche courante du sous-module" + +#: git-gui.sh:3362 +msgid "Visualize All Branch History In The Submodule" +msgstr "Voir l'historique de toutes les branches du sous-module" + +#: git-gui.sh:3367 +msgid "Start git gui In The Submodule" +msgstr "Démarrer git gui dans le sous-module" + +#: git-gui.sh:3389 msgid "Unstage Hunk From Commit" msgstr "Désindexer la section" -#: git-gui.sh:3170 +#: git-gui.sh:3391 +msgid "Unstage Lines From Commit" +msgstr "Désindexer la ligne du commit" + +#: git-gui.sh:3393 msgid "Unstage Line From Commit" msgstr "Désindexer la ligne" -#: git-gui.sh:3172 +#: git-gui.sh:3396 msgid "Stage Hunk For Commit" msgstr "Indexer la section" -#: git-gui.sh:3173 +#: git-gui.sh:3398 +msgid "Stage Lines For Commit" +msgstr "Indexer les lignes" + +#: git-gui.sh:3400 msgid "Stage Line For Commit" msgstr "Indexer la ligne" -#: git-gui.sh:3196 +#: git-gui.sh:3424 msgid "Initializing..." msgstr "Initialisation..." -#: git-gui.sh:3301 +#: git-gui.sh:3541 #, tcl-format msgid "" "Possible environment issues exist.\n" @@ -520,7 +549,7 @@ msgstr "" "sous-processus de Git lancés par %s\n" "\n" -#: git-gui.sh:3331 +#: git-gui.sh:3570 msgid "" "\n" "This is due to a known issue with the\n" @@ -530,7 +559,7 @@ msgstr "" "Ceci est dû à un problème connu avec\n" "le binaire Tcl distribué par Cygwin." -#: git-gui.sh:3336 +#: git-gui.sh:3575 #, tcl-format msgid "" "\n" @@ -616,43 +645,43 @@ msgstr "Recherche de copie approfondie en cours..." msgid "Loading annotation..." msgstr "Chargement des annotations..." -#: lib/blame.tcl:964 +#: lib/blame.tcl:963 msgid "Author:" msgstr "Auteur :" -#: lib/blame.tcl:968 +#: lib/blame.tcl:967 msgid "Committer:" msgstr "Commiteur :" -#: lib/blame.tcl:973 +#: lib/blame.tcl:972 msgid "Original File:" msgstr "Fichier original :" -#: lib/blame.tcl:1021 +#: lib/blame.tcl:1020 msgid "Cannot find HEAD commit:" msgstr "Impossible de trouver le commit HEAD :" -#: lib/blame.tcl:1076 +#: lib/blame.tcl:1075 msgid "Cannot find parent commit:" msgstr "Impossible de trouver le commit parent :" -#: lib/blame.tcl:1091 +#: lib/blame.tcl:1090 msgid "Unable to display parent" msgstr "Impossible d'afficher le parent" -#: lib/blame.tcl:1092 lib/diff.tcl:297 +#: lib/blame.tcl:1091 lib/diff.tcl:320 msgid "Error loading diff:" msgstr "Erreur lors du chargement des différences :" -#: lib/blame.tcl:1232 +#: lib/blame.tcl:1231 msgid "Originally By:" msgstr "À l'origine par :" -#: lib/blame.tcl:1238 +#: lib/blame.tcl:1237 msgid "In File:" msgstr "Dans le fichier :" -#: lib/blame.tcl:1243 +#: lib/blame.tcl:1242 msgid "Copied Or Moved Here By:" msgstr "Copié ou déplacé ici par :" @@ -666,10 +695,10 @@ msgstr "Charger (checkout)" #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282 -#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/checkout_op.tcl:579 lib/choose_font.tcl:43 lib/merge.tcl:172 #: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 #: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 -#: lib/transport.tcl:97 +#: lib/transport.tcl:108 msgid "Cancel" msgstr "Annuler" @@ -697,7 +726,7 @@ msgstr "Créer une branche" msgid "Create New Branch" msgstr "Créer une nouvelle branche" -#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377 +#: lib/branch_create.tcl:31 lib/choose_repository.tcl:381 msgid "Create" msgstr "Créer" @@ -729,7 +758,7 @@ msgstr "Non" msgid "Fast Forward Only" msgstr "Mise à jour rectiligne seulement (fast-forward)" -#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536 +#: lib/branch_create.tcl:85 lib/checkout_op.tcl:571 msgid "Reset" msgstr "Réinitialiser" @@ -771,15 +800,25 @@ msgstr "Branches locales" msgid "Delete Only If Merged Into" msgstr "Supprimer seulement si fusionnée dans :" -#: lib/branch_delete.tcl:54 -msgid "Always (Do not perform merge test.)" -msgstr "Toujours (Ne pas faire de test de fusion.)" +#: lib/branch_delete.tcl:54 lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" +msgstr "Toujours (ne pas vérifier les fusions)" #: lib/branch_delete.tcl:103 #, tcl-format msgid "The following branches are not completely merged into %s:" msgstr "Les branches suivantes ne sont pas complètement fusionnées dans %s :" +#: lib/branch_delete.tcl:115 lib/remote_branch_delete.tcl:217 +msgid "" +"Recovering deleted branches is difficult.\n" +"\n" +"Delete the selected branches?" +msgstr "" +"Il est difficile de récupérer des branches supprimées.\n" +"\n" +"Supprimer les branches sélectionnées ?" + #: lib/branch_delete.tcl:141 #, tcl-format msgid "" @@ -809,7 +848,7 @@ msgstr "Nouveau nom :" msgid "Please select a branch to rename." msgstr "Merci de sélectionner une branche à renommer." -#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:201 +#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:202 #, tcl-format msgid "Branch '%s' already exists." msgstr "La branche '%s' existe déjà." @@ -840,38 +879,38 @@ msgstr "[Jusqu'au parent]" msgid "Browse Branch Files" msgstr "Naviguer dans les fichiers de le branche" -#: lib/browser.tcl:278 lib/choose_repository.tcl:394 -#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 -#: lib/choose_repository.tcl:995 +#: lib/browser.tcl:278 lib/choose_repository.tcl:398 +#: lib/choose_repository.tcl:486 lib/choose_repository.tcl:497 +#: lib/choose_repository.tcl:1028 msgid "Browse" msgstr "Naviguer" -#: lib/checkout_op.tcl:84 +#: lib/checkout_op.tcl:85 #, tcl-format msgid "Fetching %s from %s" msgstr "Récupération de %s à partir de %s" -#: lib/checkout_op.tcl:132 +#: lib/checkout_op.tcl:133 #, tcl-format msgid "fatal: Cannot resolve %s" msgstr "erreur fatale : Impossible de résoudre %s" -#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/checkout_op.tcl:146 lib/console.tcl:81 lib/database.tcl:31 #: lib/sshkey.tcl:53 msgid "Close" msgstr "Fermer" -#: lib/checkout_op.tcl:174 +#: lib/checkout_op.tcl:175 #, tcl-format msgid "Branch '%s' does not exist." msgstr "La branche '%s' n'existe pas." -#: lib/checkout_op.tcl:193 +#: lib/checkout_op.tcl:194 #, tcl-format msgid "Failed to configure simplified git-pull for '%s'." msgstr "Échec de la configuration simplifiée de git-pull pour '%s'." -#: lib/checkout_op.tcl:228 +#: lib/checkout_op.tcl:229 #, tcl-format msgid "" "Branch '%s' already exists.\n" @@ -884,21 +923,21 @@ msgstr "" "Impossible de faire une avance rapide (fast forward) vers %s.\n" "Une fusion est nécessaire." -#: lib/checkout_op.tcl:242 +#: lib/checkout_op.tcl:243 #, tcl-format msgid "Merge strategy '%s' not supported." msgstr "La stratégie de fusion '%s' n'est pas supportée." -#: lib/checkout_op.tcl:261 +#: lib/checkout_op.tcl:262 #, tcl-format msgid "Failed to update '%s'." msgstr "La mise à jour de '%s' a échoué." -#: lib/checkout_op.tcl:273 +#: lib/checkout_op.tcl:274 msgid "Staging area (index) is already locked." msgstr "L'index (staging area) est déjà verrouillé." -#: lib/checkout_op.tcl:288 +#: lib/checkout_op.tcl:289 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -916,30 +955,31 @@ msgstr "" "\n" "Cela va être fait tout de suite automatiquement.\n" -#: lib/checkout_op.tcl:344 +#: lib/checkout_op.tcl:345 #, tcl-format msgid "Updating working directory to '%s'..." msgstr "Mise à jour du répertoire courant avec '%s'..." -#: lib/checkout_op.tcl:345 +#: lib/checkout_op.tcl:346 msgid "files checked out" msgstr "fichiers chargés" -#: lib/checkout_op.tcl:375 +#: lib/checkout_op.tcl:376 #, tcl-format msgid "Aborted checkout of '%s' (file level merging is required)." -msgstr "Chargement de '%s' abandonné (il est nécessaire de fusionner des fichiers)." +msgstr "" +"Chargement de '%s' abandonné (il est nécessaire de fusionner des fichiers)." -#: lib/checkout_op.tcl:376 +#: lib/checkout_op.tcl:377 msgid "File level merge required." msgstr "Il est nécessaire de fusionner des fichiers." -#: lib/checkout_op.tcl:380 +#: lib/checkout_op.tcl:381 #, tcl-format msgid "Staying on branch '%s'." msgstr "Le répertoire de travail reste sur la branche '%s'." -#: lib/checkout_op.tcl:451 +#: lib/checkout_op.tcl:452 msgid "" "You are no longer on a local branch.\n" "\n" @@ -951,30 +991,30 @@ msgstr "" "Si vous vouliez être sur une branche, créez-en une maintenant en partant de " "'Cet emprunt détaché'." -#: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472 +#: lib/checkout_op.tcl:503 lib/checkout_op.tcl:507 #, tcl-format msgid "Checked out '%s'." msgstr "'%s' chargé." -#: lib/checkout_op.tcl:500 +#: lib/checkout_op.tcl:535 #, tcl-format msgid "Resetting '%s' to '%s' will lose the following commits:" msgstr "Réinitialiser '%s' à '%s' va faire perdre les commits suivants :" -#: lib/checkout_op.tcl:522 +#: lib/checkout_op.tcl:557 msgid "Recovering lost commits may not be easy." msgstr "Récupérer les commits perdus ne sera peut être pas facile." -#: lib/checkout_op.tcl:527 +#: lib/checkout_op.tcl:562 #, tcl-format msgid "Reset '%s'?" msgstr "Réinitialiser '%s' ?" -#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +#: lib/checkout_op.tcl:567 lib/merge.tcl:164 lib/tools_dlg.tcl:343 msgid "Visualize" msgstr "Visualiser" -#: lib/checkout_op.tcl:600 +#: lib/checkout_op.tcl:635 #, tcl-format msgid "" "Failed to set current branch.\n" @@ -1020,7 +1060,7 @@ msgstr "" msgid "Git Gui" msgstr "Git Gui" -#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:386 msgid "Create New Repository" msgstr "Créer nouveau dépôt" @@ -1028,7 +1068,7 @@ msgstr "Créer nouveau dépôt" msgid "New..." msgstr "Nouveau..." -#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:471 msgid "Clone Existing Repository" msgstr "Cloner un dépôt existant" @@ -1036,7 +1076,7 @@ msgstr "Cloner un dépôt existant" msgid "Clone..." msgstr "Cloner..." -#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:1016 msgid "Open Existing Repository" msgstr "Ouvrir un dépôt existant" @@ -1052,197 +1092,199 @@ msgstr "Dépôts récemment utilisés" msgid "Open Recent Repository:" msgstr "Ouvrir un dépôt récent :" -#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 -#: lib/choose_repository.tcl:316 +#: lib/choose_repository.tcl:306 lib/choose_repository.tcl:313 +#: lib/choose_repository.tcl:320 #, tcl-format msgid "Failed to create repository %s:" msgstr "La création du dépôt %s a échoué :" -#: lib/choose_repository.tcl:387 +#: lib/choose_repository.tcl:391 msgid "Directory:" msgstr "Répertoire :" -#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 -#: lib/choose_repository.tcl:1017 +#: lib/choose_repository.tcl:423 lib/choose_repository.tcl:550 +#: lib/choose_repository.tcl:1052 msgid "Git Repository" msgstr "Dépôt Git" -#: lib/choose_repository.tcl:442 +#: lib/choose_repository.tcl:448 #, tcl-format msgid "Directory %s already exists." msgstr "Le répertoire %s existe déjà." -#: lib/choose_repository.tcl:446 +#: lib/choose_repository.tcl:452 #, tcl-format msgid "File %s already exists." msgstr "Le fichier %s existe déjà." -#: lib/choose_repository.tcl:460 +#: lib/choose_repository.tcl:466 msgid "Clone" msgstr "Cloner" -#: lib/choose_repository.tcl:473 +#: lib/choose_repository.tcl:479 msgid "Source Location:" msgstr "Emplacement source :" -#: lib/choose_repository.tcl:484 +#: lib/choose_repository.tcl:490 msgid "Target Directory:" msgstr "Répertoire cible :" -#: lib/choose_repository.tcl:496 +#: lib/choose_repository.tcl:502 msgid "Clone Type:" msgstr "Type de clonage :" -#: lib/choose_repository.tcl:502 +#: lib/choose_repository.tcl:508 msgid "Standard (Fast, Semi-Redundant, Hardlinks)" msgstr "Standard (rapide, semi-redondant, liens durs)" -#: lib/choose_repository.tcl:508 +#: lib/choose_repository.tcl:514 msgid "Full Copy (Slower, Redundant Backup)" msgstr "Copy complète (plus lent, sauvegarde redondante)" -#: lib/choose_repository.tcl:514 +#: lib/choose_repository.tcl:520 msgid "Shared (Fastest, Not Recommended, No Backup)" msgstr "Partagé (le plus rapide, non recommandé, pas de sauvegarde)" -#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 -#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 -#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#: lib/choose_repository.tcl:556 lib/choose_repository.tcl:603 +#: lib/choose_repository.tcl:749 lib/choose_repository.tcl:819 +#: lib/choose_repository.tcl:1058 lib/choose_repository.tcl:1066 #, tcl-format msgid "Not a Git repository: %s" msgstr "'%s' n'est pas un dépôt Git." -#: lib/choose_repository.tcl:586 +#: lib/choose_repository.tcl:592 msgid "Standard only available for local repository." msgstr "Standard n'est disponible que pour un dépôt local." -#: lib/choose_repository.tcl:590 +#: lib/choose_repository.tcl:596 msgid "Shared only available for local repository." msgstr "Partagé n'est disponible que pour un dépôt local." -#: lib/choose_repository.tcl:611 +#: lib/choose_repository.tcl:617 #, tcl-format msgid "Location %s already exists." msgstr "L'emplacement %s existe déjà." -#: lib/choose_repository.tcl:622 +#: lib/choose_repository.tcl:628 msgid "Failed to configure origin" msgstr "La configuration de l'origine a échoué." -#: lib/choose_repository.tcl:634 +#: lib/choose_repository.tcl:640 msgid "Counting objects" msgstr "Décompte des objets" -#: lib/choose_repository.tcl:635 +#: lib/choose_repository.tcl:641 msgid "buckets" msgstr "paniers" -#: lib/choose_repository.tcl:659 +#: lib/choose_repository.tcl:665 #, tcl-format msgid "Unable to copy objects/info/alternates: %s" msgstr "Impossible de copier 'objects/info/alternates' : %s" -#: lib/choose_repository.tcl:695 +#: lib/choose_repository.tcl:701 #, tcl-format msgid "Nothing to clone from %s." msgstr "Il n'y a rien à cloner depuis %s." -#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 -#: lib/choose_repository.tcl:923 +#: lib/choose_repository.tcl:703 lib/choose_repository.tcl:917 +#: lib/choose_repository.tcl:929 msgid "The 'master' branch has not been initialized." msgstr "La branche 'master' n'a pas été initialisée." -#: lib/choose_repository.tcl:710 +#: lib/choose_repository.tcl:716 msgid "Hardlinks are unavailable. Falling back to copying." -msgstr "Les liens durs ne sont pas supportés. Une copie sera effectuée à la place." +msgstr "" +"Les liens durs ne sont pas supportés. Une copie sera effectuée à la place." -#: lib/choose_repository.tcl:722 +#: lib/choose_repository.tcl:728 #, tcl-format msgid "Cloning from %s" msgstr "Clonage depuis %s" -#: lib/choose_repository.tcl:753 +#: lib/choose_repository.tcl:759 msgid "Copying objects" msgstr "Copie des objets" -#: lib/choose_repository.tcl:754 +#: lib/choose_repository.tcl:760 msgid "KiB" msgstr "KiB" -#: lib/choose_repository.tcl:778 +#: lib/choose_repository.tcl:784 #, tcl-format msgid "Unable to copy object: %s" msgstr "Impossible de copier l'objet : %s" -#: lib/choose_repository.tcl:788 +#: lib/choose_repository.tcl:794 msgid "Linking objects" msgstr "Liaison des objets" -#: lib/choose_repository.tcl:789 +#: lib/choose_repository.tcl:795 msgid "objects" msgstr "objets" -#: lib/choose_repository.tcl:797 +#: lib/choose_repository.tcl:803 #, tcl-format msgid "Unable to hardlink object: %s" msgstr "Impossible créer un lien dur pour l'objet : %s" -#: lib/choose_repository.tcl:852 +#: lib/choose_repository.tcl:858 msgid "Cannot fetch branches and objects. See console output for details." msgstr "" "Impossible de récupérer les branches et objets. Voir la sortie console pour " "plus de détails." -#: lib/choose_repository.tcl:863 +#: lib/choose_repository.tcl:869 msgid "Cannot fetch tags. See console output for details." msgstr "" "Impossible de récupérer les marques (tags). Voir la sortie console pour plus " "de détails." -#: lib/choose_repository.tcl:887 +#: lib/choose_repository.tcl:893 msgid "Cannot determine HEAD. See console output for details." -msgstr "Impossible de déterminer HEAD. Voir la sortie console pour plus de détails." +msgstr "" +"Impossible de déterminer HEAD. Voir la sortie console pour plus de détails." -#: lib/choose_repository.tcl:896 +#: lib/choose_repository.tcl:902 #, tcl-format msgid "Unable to cleanup %s" msgstr "Impossible de nettoyer %s" -#: lib/choose_repository.tcl:902 +#: lib/choose_repository.tcl:908 msgid "Clone failed." msgstr "Le clonage a échoué." -#: lib/choose_repository.tcl:909 +#: lib/choose_repository.tcl:915 msgid "No default branch obtained." msgstr "Aucune branche par défaut n'a été obtenue." -#: lib/choose_repository.tcl:920 +#: lib/choose_repository.tcl:926 #, tcl-format msgid "Cannot resolve %s as a commit." msgstr "Impossible de résoudre %s comme commit." -#: lib/choose_repository.tcl:932 +#: lib/choose_repository.tcl:938 msgid "Creating working directory" msgstr "Création du répertoire de travail" -#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 -#: lib/index.tcl:196 +#: lib/choose_repository.tcl:939 lib/index.tcl:67 lib/index.tcl:130 +#: lib/index.tcl:198 msgid "files" msgstr "fichiers" -#: lib/choose_repository.tcl:962 +#: lib/choose_repository.tcl:968 msgid "Initial file checkout failed." msgstr "Le chargement initial du fichier a échoué." -#: lib/choose_repository.tcl:978 +#: lib/choose_repository.tcl:1011 msgid "Open" msgstr "Ouvrir" -#: lib/choose_repository.tcl:988 +#: lib/choose_repository.tcl:1021 msgid "Repository:" msgstr "Dépôt :" -#: lib/choose_repository.tcl:1037 +#: lib/choose_repository.tcl:1072 #, tcl-format msgid "Failed to open repository %s:" msgstr "Impossible d'ouvrir le dépôt %s :" @@ -1314,19 +1356,24 @@ msgstr "" "terminée. Vous ne pouvez pas corriger le commit précédent sauf si vous " "abandonnez la fusion courante.\n" -#: lib/commit.tcl:49 +#: lib/commit.tcl:48 msgid "Error loading commit data for amend:" msgstr "Erreur lors du chargement des données de commit pour correction :" -#: lib/commit.tcl:76 +#: lib/commit.tcl:75 msgid "Unable to obtain your identity:" msgstr "Impossible d'obtenir votre identité :" -#: lib/commit.tcl:81 +#: lib/commit.tcl:80 msgid "Invalid GIT_COMMITTER_IDENT:" msgstr "GIT_COMMITTER_IDENT invalide :" -#: lib/commit.tcl:133 +#: lib/commit.tcl:129 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "attention : Tcl ne supporte pas le codage '%s'." + +#: lib/commit.tcl:149 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -1344,7 +1391,7 @@ msgstr "" "\n" "Cela va être fait tout de suite automatiquement.\n" -#: lib/commit.tcl:156 +#: lib/commit.tcl:172 #, tcl-format msgid "" "Unmerged files cannot be committed.\n" @@ -1357,7 +1404,7 @@ msgstr "" "Le fichier %s a des conflicts de fusion. Vous devez les résoudre et pré-" "commiter le fichier avant de pouvoir commiter.\n" -#: lib/commit.tcl:164 +#: lib/commit.tcl:180 #, tcl-format msgid "" "Unknown file state %s detected.\n" @@ -1368,7 +1415,7 @@ msgstr "" "\n" "Le fichier %s ne peut pas être commité par ce programme.\n" -#: lib/commit.tcl:172 +#: lib/commit.tcl:188 msgid "" "No changes to commit.\n" "\n" @@ -1378,7 +1425,7 @@ msgstr "" "\n" "Vous devez indexer au moins 1 fichier avant de pouvoir commiter.\n" -#: lib/commit.tcl:187 +#: lib/commit.tcl:203 msgid "" "Please supply a commit message.\n" "\n" @@ -1396,45 +1443,40 @@ msgstr "" "- Deuxième ligne : rien.\n" "- Lignes suivantes : Décrire pourquoi ces modifications sont bonnes.\n" -#: lib/commit.tcl:211 -#, tcl-format -msgid "warning: Tcl does not support encoding '%s'." -msgstr "attention : Tcl ne supporte pas le codage '%s'." - -#: lib/commit.tcl:227 +#: lib/commit.tcl:234 msgid "Calling pre-commit hook..." msgstr "Lancement de l'action d'avant-commit..." -#: lib/commit.tcl:242 +#: lib/commit.tcl:249 msgid "Commit declined by pre-commit hook." msgstr "Commit refusé par l'action d'avant-commit." -#: lib/commit.tcl:265 +#: lib/commit.tcl:272 msgid "Calling commit-msg hook..." msgstr "Lancement de l'action \"message de commit\"..." -#: lib/commit.tcl:280 +#: lib/commit.tcl:287 msgid "Commit declined by commit-msg hook." msgstr "Commit refusé par l'action \"message de commit\"." -#: lib/commit.tcl:293 +#: lib/commit.tcl:300 msgid "Committing changes..." msgstr "Commit des modifications..." -#: lib/commit.tcl:309 +#: lib/commit.tcl:316 msgid "write-tree failed:" msgstr "write-tree a échoué :" -#: lib/commit.tcl:310 lib/commit.tcl:354 lib/commit.tcl:374 +#: lib/commit.tcl:317 lib/commit.tcl:361 lib/commit.tcl:382 msgid "Commit failed." msgstr "Le commit a échoué." -#: lib/commit.tcl:327 +#: lib/commit.tcl:334 #, tcl-format msgid "Commit %s appears to be corrupt" msgstr "Le commit %s semble être corrompu" -#: lib/commit.tcl:332 +#: lib/commit.tcl:339 msgid "" "No changes to commit.\n" "\n" @@ -1449,19 +1491,19 @@ msgstr "" "\n" "Une resynchronisation va être lancée tout de suite automatiquement.\n" -#: lib/commit.tcl:339 +#: lib/commit.tcl:346 msgid "No changes to commit." msgstr "Pas de modifications à commiter." -#: lib/commit.tcl:353 +#: lib/commit.tcl:360 msgid "commit-tree failed:" msgstr "commit-tree a échoué :" -#: lib/commit.tcl:373 +#: lib/commit.tcl:381 msgid "update-ref failed:" msgstr "update-ref a échoué :" -#: lib/commit.tcl:461 +#: lib/commit.tcl:469 #, tcl-format msgid "Created commit %s: %s" msgstr "Commit %s créé : %s" @@ -1514,13 +1556,13 @@ msgstr "Compression de la base des objets" msgid "Verifying the object database with fsck-objects" msgstr "Vérification de la base des objets avec fsck-objects" -#: lib/database.tcl:108 +#: lib/database.tcl:107 #, tcl-format msgid "" "This repository currently has approximately %i loose objects.\n" "\n" "To maintain optimal performance it is strongly recommended that you compress " -"the database when more than %i loose objects exist.\n" +"the database.\n" "\n" "Compress the database now?" msgstr "" @@ -1528,8 +1570,7 @@ msgstr "" "particulier.\n" "\n" "Pour conserver une performance optimale, il est fortement recommandé de " -"comprimer la base quand plus de %i objets ayant leur fichier particulier " -"existent.\n" +"comprimer la base de donnée.\n" "\n" "Comprimer la base maintenant ?" @@ -1538,7 +1579,7 @@ msgstr "" msgid "Invalid date from Git: %s" msgstr "Date invalide de Git : %s" -#: lib/diff.tcl:59 +#: lib/diff.tcl:64 #, tcl-format msgid "" "No differences detected.\n" @@ -1561,12 +1602,12 @@ msgstr "" "Une resynchronisation va être lancée automatiquement pour trouver d'autres " "fichiers qui pourraient se trouver dans le même état." -#: lib/diff.tcl:99 +#: lib/diff.tcl:104 #, tcl-format msgid "Loading diff of %s..." msgstr "Chargement des différences de %s..." -#: lib/diff.tcl:120 +#: lib/diff.tcl:125 msgid "" "LOCAL: deleted\n" "REMOTE:\n" @@ -1574,7 +1615,7 @@ msgstr "" "LOCAL : supprimé\n" "DISTANT :\n" -#: lib/diff.tcl:125 +#: lib/diff.tcl:130 msgid "" "REMOTE: deleted\n" "LOCAL:\n" @@ -1582,32 +1623,32 @@ msgstr "" "DISTANT : supprimé\n" "LOCAL :\n" -#: lib/diff.tcl:132 +#: lib/diff.tcl:137 msgid "LOCAL:\n" msgstr "LOCAL :\n" -#: lib/diff.tcl:135 +#: lib/diff.tcl:140 msgid "REMOTE:\n" msgstr "DISTANT :\n" -#: lib/diff.tcl:197 lib/diff.tcl:296 +#: lib/diff.tcl:202 lib/diff.tcl:319 #, tcl-format msgid "Unable to display %s" msgstr "Impossible d'afficher %s" -#: lib/diff.tcl:198 +#: lib/diff.tcl:203 msgid "Error loading file:" msgstr "Erreur lors du chargement du fichier :" -#: lib/diff.tcl:205 +#: lib/diff.tcl:210 msgid "Git Repository (subproject)" msgstr "Dépôt Git (sous projet)" -#: lib/diff.tcl:217 +#: lib/diff.tcl:222 msgid "* Binary file (not showing content)." msgstr "* Fichier binaire (pas d'apperçu du contenu)." -#: lib/diff.tcl:222 +#: lib/diff.tcl:227 #, tcl-format msgid "" "* Untracked file is %d bytes.\n" @@ -1616,7 +1657,7 @@ msgstr "" "* Le fichier non suivi fait %d octets.\n" "* Seuls les %d premiers octets sont montrés.\n" -#: lib/diff.tcl:228 +#: lib/diff.tcl:233 #, tcl-format msgid "" "\n" @@ -1627,19 +1668,19 @@ msgstr "" "* Fichier suivi raccourcis ici de %s.\n" "* Pour voir le fichier entier, utilisez un éditeur externe.\n" -#: lib/diff.tcl:436 +#: lib/diff.tcl:482 msgid "Failed to unstage selected hunk." msgstr "Échec lors de la désindexation de la section sélectionnée." -#: lib/diff.tcl:443 +#: lib/diff.tcl:489 msgid "Failed to stage selected hunk." msgstr "Échec lors de l'indexation de la section." -#: lib/diff.tcl:509 +#: lib/diff.tcl:568 msgid "Failed to unstage selected line." msgstr "Échec lors de la désindexation de la ligne sélectionnée." -#: lib/diff.tcl:517 +#: lib/diff.tcl:576 msgid "Failed to stage selected line." msgstr "Échec lors de l'indexation de la ligne." @@ -1676,7 +1717,7 @@ msgstr "Impossible de déverrouiller l'index." msgid "Index Error" msgstr "Erreur de l'index" -#: lib/index.tcl:21 +#: lib/index.tcl:17 msgid "" "Updating the Git index failed. A rescan will be automatically started to " "resynchronize git-gui." @@ -1684,7 +1725,7 @@ msgstr "" "Échec de la mise à jour de l'index. Une resynchronisation va être lancée " "automatiquement." -#: lib/index.tcl:27 +#: lib/index.tcl:28 msgid "Continue" msgstr "Continuer" @@ -1692,45 +1733,45 @@ msgstr "Continuer" msgid "Unlock Index" msgstr "Déverrouiller l'index" -#: lib/index.tcl:287 +#: lib/index.tcl:289 #, tcl-format msgid "Unstaging %s from commit" msgstr "Désindexation de : %s" -#: lib/index.tcl:326 +#: lib/index.tcl:328 msgid "Ready to commit." msgstr "Prêt à être commité." -#: lib/index.tcl:339 +#: lib/index.tcl:341 #, tcl-format msgid "Adding %s" msgstr "Ajout de %s" -#: lib/index.tcl:396 +#: lib/index.tcl:398 #, tcl-format msgid "Revert changes in file %s?" msgstr "Annuler les modifications dans le fichier %s ? " -#: lib/index.tcl:398 +#: lib/index.tcl:400 #, tcl-format msgid "Revert changes in these %i files?" msgstr "Annuler les modifications dans ces %i fichiers ?" -#: lib/index.tcl:406 +#: lib/index.tcl:408 msgid "Any unstaged changes will be permanently lost by the revert." msgstr "" "Toutes les modifications non-indexées seront définitivement perdues par " "l'annulation." -#: lib/index.tcl:409 +#: lib/index.tcl:411 msgid "Do Nothing" msgstr "Ne rien faire" -#: lib/index.tcl:427 +#: lib/index.tcl:429 msgid "Reverting selected files" msgstr "Annuler modifications dans fichiers selectionnés" -#: lib/index.tcl:431 +#: lib/index.tcl:433 #, tcl-format msgid "Reverting %s" msgstr "Annulation des modifications dans %s" @@ -1913,7 +1954,8 @@ msgstr "" #: lib/mergetool.tcl:45 #, tcl-format msgid "File %s seems to have unresolved conflicts, still stage?" -msgstr "Le fichier %s semble avoir des conflits non résolus, indexer quand même ?" +msgstr "" +"Le fichier %s semble avoir des conflits non résolus, indexer quand même ?" #: lib/mergetool.tcl:60 #, tcl-format @@ -1922,7 +1964,9 @@ msgstr "Ajouter une résolution pour %s" #: lib/mergetool.tcl:141 msgid "Cannot resolve deletion or link conflicts using a tool" -msgstr "Impossible de résoudre la suppression ou de relier des conflits en utilisant un outil" +msgstr "" +"Impossible de résoudre la suppression ou de relier des conflits en utilisant " +"un outil" #: lib/mergetool.tcl:146 msgid "Conflict file does not exist" @@ -2171,7 +2215,8 @@ msgstr "Récupération de %s" msgid "Do not know how to initialize repository at location '%s'." msgstr "Pas de méthode connue pour initialiser le dépôt à l'emplacement '%s'." -#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:71 +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:63 +#: lib/transport.tcl:81 #, tcl-format msgid "push %s" msgstr "pousser %s" @@ -2189,11 +2234,11 @@ msgstr "Supprimer une branche à distance" msgid "From Repository" msgstr "Dépôt source" -#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123 +#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:134 msgid "Remote:" msgstr "Branche distante :" -#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138 +#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:149 msgid "Arbitrary Location:" msgstr "Emplacement arbitraire :" @@ -2209,10 +2254,6 @@ msgstr "Supprimer seulement si" msgid "Merged Into:" msgstr "Fusionné dans :" -#: lib/remote_branch_delete.tcl:119 -msgid "Always (Do not perform merge checks)" -msgstr "Toujours (ne pas vérifier les fusions)" - #: lib/remote_branch_delete.tcl:152 msgid "A branch is required for 'Merged Into'." msgstr "Une branche est nécessaire pour 'Fusionné dans'." @@ -2235,32 +2276,23 @@ msgid "" "necessary commits. Try fetching from %s first." msgstr "" "Un ou plusieurs des tests de fusion ont échoué parce que vous n'avez pas " -"récupéré les commits nécessaires. Essayez de récupérer à partir de %s d'abord." +"récupéré les commits nécessaires. Essayez de récupérer à partir de %s " +"d'abord." #: lib/remote_branch_delete.tcl:207 msgid "Please select one or more branches to delete." msgstr "Merci de sélectionner une ou plusieurs branches à supprimer." -#: lib/remote_branch_delete.tcl:216 -msgid "" -"Recovering deleted branches is difficult.\n" -"\n" -"Delete the selected branches?" -msgstr "" -"Il est difficile de récupérer des branches supprimées.\n" -"\n" -"Supprimer les branches sélectionnées ?" - #: lib/remote_branch_delete.tcl:226 #, tcl-format msgid "Deleting branches from %s" msgstr "Suppression des branches de %s" -#: lib/remote_branch_delete.tcl:286 +#: lib/remote_branch_delete.tcl:292 msgid "No repository selected." msgstr "Aucun dépôt n'est sélectionné." -#: lib/remote_branch_delete.tcl:291 +#: lib/remote_branch_delete.tcl:297 #, tcl-format msgid "Scanning %s..." msgstr "Synchronisation de %s..." @@ -2281,11 +2313,11 @@ msgstr "Précédent" msgid "Case-Sensitive" msgstr "Sensible à la casse" -#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +#: lib/shortcut.tcl:21 lib/shortcut.tcl:62 msgid "Cannot write shortcut:" msgstr "Impossible d'écrire le raccourci :" -#: lib/shortcut.tcl:136 +#: lib/shortcut.tcl:137 msgid "Cannot write icon:" msgstr "Impossible d'écrire l'icône :" @@ -2440,7 +2472,8 @@ msgstr "Montrer une boîte de dialogue avant le lancement" #: lib/tools_dlg.tcl:80 msgid "Ask the user to select a revision (sets $REVISION)" -msgstr "Demander à l'utilisateur de sélectionner une révision (change $REVISION)" +msgstr "" +"Demander à l'utilisateur de sélectionner une révision (change $REVISION)" #: lib/tools_dlg.tcl:85 msgid "Ask the user for additional arguments (sets $ARGS)" @@ -2521,38 +2554,51 @@ msgstr "Nettoyer les branches de suivi supprimées de %s" msgid "Pushing changes to %s" msgstr "Les modifications sont poussées vers %s" -#: lib/transport.tcl:72 +#: lib/transport.tcl:64 +#, tcl-format +msgid "Mirroring to %s" +msgstr "Dupliquer dans %s" + +#: lib/transport.tcl:82 #, tcl-format msgid "Pushing %s %s to %s" msgstr "Pousse %s %s vers %s" -#: lib/transport.tcl:89 +#: lib/transport.tcl:100 msgid "Push Branches" msgstr "Pousser branches" -#: lib/transport.tcl:103 +#: lib/transport.tcl:114 msgid "Source Branches" msgstr "Branches source" -#: lib/transport.tcl:120 +#: lib/transport.tcl:131 msgid "Destination Repository" msgstr "Dépôt de destination" -#: lib/transport.tcl:158 +#: lib/transport.tcl:169 msgid "Transfer Options" msgstr "Options de transfert" -#: lib/transport.tcl:160 +#: lib/transport.tcl:171 msgid "Force overwrite existing branch (may discard changes)" msgstr "" "Forcer l'écrasement d'une branche existante (peut supprimer des " "modifications)" -#: lib/transport.tcl:164 +#: lib/transport.tcl:175 msgid "Use thin pack (for slow network connections)" msgstr "Utiliser des petits paquets (pour les connexions lentes)" -#: lib/transport.tcl:168 +#: lib/transport.tcl:179 msgid "Include tags" msgstr "Inclure les marques (tags)" +#~ msgid "Cannot use funny .git directory:" +#~ msgstr "Impossible d'utiliser le répertoire .git:" + +#~ msgid "Preferences..." +#~ msgstr "Préférences..." + +#~ msgid "Always (Do not perform merge test.)" +#~ msgstr "Toujours (Ne pas faire de test de fusion.)" diff --git a/git-gui/po/git-gui.pot b/git-gui/po/git-gui.pot index 074582d979..1ae2aaa0b3 100644 --- a/git-gui/po/git-gui.pot +++ b/git-gui/po/git-gui.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-12-08 08:31-0800\n" +"POT-Creation-Date: 2010-01-26 15:47-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -16,33 +16,33 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: git-gui.sh:41 git-gui.sh:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 -#: git-gui.sh:866 +#: git-gui.sh:41 git-gui.sh:793 git-gui.sh:807 git-gui.sh:820 git-gui.sh:903 +#: git-gui.sh:922 msgid "git-gui: fatal error" msgstr "" -#: git-gui.sh:689 +#: git-gui.sh:743 #, tcl-format msgid "Invalid font specified in %s:" msgstr "" -#: git-gui.sh:723 +#: git-gui.sh:779 msgid "Main Font" msgstr "" -#: git-gui.sh:724 +#: git-gui.sh:780 msgid "Diff/Console Font" msgstr "" -#: git-gui.sh:738 +#: git-gui.sh:794 msgid "Cannot find git in PATH." msgstr "" -#: git-gui.sh:765 +#: git-gui.sh:821 msgid "Cannot parse Git version string:" msgstr "" -#: git-gui.sh:783 +#: git-gui.sh:839 #, tcl-format msgid "" "Git version cannot be determined.\n" @@ -54,449 +54,473 @@ msgid "" "Assume '%s' is version 1.5.0?\n" msgstr "" -#: git-gui.sh:1062 +#: git-gui.sh:1128 msgid "Git directory not found:" msgstr "" -#: git-gui.sh:1069 +#: git-gui.sh:1146 msgid "Cannot move to top of working directory:" msgstr "" -#: git-gui.sh:1076 -msgid "Cannot use funny .git directory:" +#: git-gui.sh:1154 +msgid "Cannot use bare repository:" msgstr "" -#: git-gui.sh:1081 +#: git-gui.sh:1162 msgid "No working directory" msgstr "" -#: git-gui.sh:1247 lib/checkout_op.tcl:305 +#: git-gui.sh:1334 lib/checkout_op.tcl:306 msgid "Refreshing file status..." msgstr "" -#: git-gui.sh:1303 +#: git-gui.sh:1390 msgid "Scanning for modified files ..." msgstr "" -#: git-gui.sh:1367 +#: git-gui.sh:1454 msgid "Calling prepare-commit-msg hook..." msgstr "" -#: git-gui.sh:1384 +#: git-gui.sh:1471 msgid "Commit declined by prepare-commit-msg hook." msgstr "" -#: git-gui.sh:1542 lib/browser.tcl:246 +#: git-gui.sh:1629 lib/browser.tcl:246 msgid "Ready." msgstr "" -#: git-gui.sh:1726 +#: git-gui.sh:1787 #, tcl-format msgid "Displaying only %s of %s files." msgstr "" -#: git-gui.sh:1819 +#: git-gui.sh:1913 msgid "Unmodified" msgstr "" -#: git-gui.sh:1821 +#: git-gui.sh:1915 msgid "Modified, not staged" msgstr "" -#: git-gui.sh:1822 git-gui.sh:1830 +#: git-gui.sh:1916 git-gui.sh:1924 msgid "Staged for commit" msgstr "" -#: git-gui.sh:1823 git-gui.sh:1831 +#: git-gui.sh:1917 git-gui.sh:1925 msgid "Portions staged for commit" msgstr "" -#: git-gui.sh:1824 git-gui.sh:1832 +#: git-gui.sh:1918 git-gui.sh:1926 msgid "Staged for commit, missing" msgstr "" -#: git-gui.sh:1826 +#: git-gui.sh:1920 msgid "File type changed, not staged" msgstr "" -#: git-gui.sh:1827 +#: git-gui.sh:1921 msgid "File type changed, staged" msgstr "" -#: git-gui.sh:1829 +#: git-gui.sh:1923 msgid "Untracked, not staged" msgstr "" -#: git-gui.sh:1834 +#: git-gui.sh:1928 msgid "Missing" msgstr "" -#: git-gui.sh:1835 +#: git-gui.sh:1929 msgid "Staged for removal" msgstr "" -#: git-gui.sh:1836 +#: git-gui.sh:1930 msgid "Staged for removal, still present" msgstr "" -#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 -#: git-gui.sh:1842 git-gui.sh:1843 +#: git-gui.sh:1932 git-gui.sh:1933 git-gui.sh:1934 git-gui.sh:1935 +#: git-gui.sh:1936 git-gui.sh:1937 msgid "Requires merge resolution" msgstr "" -#: git-gui.sh:1878 +#: git-gui.sh:1972 msgid "Starting gitk... please wait..." msgstr "" -#: git-gui.sh:1887 +#: git-gui.sh:1984 msgid "Couldn't find gitk in PATH" msgstr "" -#: git-gui.sh:2280 lib/choose_repository.tcl:36 +#: git-gui.sh:2043 +msgid "Couldn't find git gui in PATH" +msgstr "" + +#: git-gui.sh:2455 lib/choose_repository.tcl:36 msgid "Repository" msgstr "" -#: git-gui.sh:2281 +#: git-gui.sh:2456 msgid "Edit" msgstr "" -#: git-gui.sh:2283 lib/choose_rev.tcl:561 +#: git-gui.sh:2458 lib/choose_rev.tcl:561 msgid "Branch" msgstr "" -#: git-gui.sh:2286 lib/choose_rev.tcl:548 +#: git-gui.sh:2461 lib/choose_rev.tcl:548 msgid "Commit@@noun" msgstr "" -#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +#: git-gui.sh:2464 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 msgid "Merge" msgstr "" -#: git-gui.sh:2290 lib/choose_rev.tcl:557 +#: git-gui.sh:2465 lib/choose_rev.tcl:557 msgid "Remote" msgstr "" -#: git-gui.sh:2293 +#: git-gui.sh:2468 msgid "Tools" msgstr "" -#: git-gui.sh:2302 +#: git-gui.sh:2477 msgid "Explore Working Copy" msgstr "" -#: git-gui.sh:2307 +#: git-gui.sh:2483 msgid "Browse Current Branch's Files" msgstr "" -#: git-gui.sh:2311 +#: git-gui.sh:2487 msgid "Browse Branch Files..." msgstr "" -#: git-gui.sh:2316 +#: git-gui.sh:2492 msgid "Visualize Current Branch's History" msgstr "" -#: git-gui.sh:2320 +#: git-gui.sh:2496 msgid "Visualize All Branch History" msgstr "" -#: git-gui.sh:2327 +#: git-gui.sh:2503 #, tcl-format msgid "Browse %s's Files" msgstr "" -#: git-gui.sh:2329 +#: git-gui.sh:2505 #, tcl-format msgid "Visualize %s's History" msgstr "" -#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +#: git-gui.sh:2510 lib/database.tcl:27 lib/database.tcl:67 msgid "Database Statistics" msgstr "" -#: git-gui.sh:2337 lib/database.tcl:34 +#: git-gui.sh:2513 lib/database.tcl:34 msgid "Compress Database" msgstr "" -#: git-gui.sh:2340 +#: git-gui.sh:2516 msgid "Verify Database" msgstr "" -#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 -#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +#: git-gui.sh:2523 git-gui.sh:2527 git-gui.sh:2531 lib/shortcut.tcl:8 +#: lib/shortcut.tcl:40 lib/shortcut.tcl:72 msgid "Create Desktop Icon" msgstr "" -#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +#: git-gui.sh:2539 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 msgid "Quit" msgstr "" -#: git-gui.sh:2371 +#: git-gui.sh:2547 msgid "Undo" msgstr "" -#: git-gui.sh:2374 +#: git-gui.sh:2550 msgid "Redo" msgstr "" -#: git-gui.sh:2378 git-gui.sh:2937 +#: git-gui.sh:2554 git-gui.sh:3109 msgid "Cut" msgstr "" -#: git-gui.sh:2381 git-gui.sh:2940 git-gui.sh:3014 git-gui.sh:3096 +#: git-gui.sh:2557 git-gui.sh:3112 git-gui.sh:3186 git-gui.sh:3259 #: lib/console.tcl:69 msgid "Copy" msgstr "" -#: git-gui.sh:2384 git-gui.sh:2943 +#: git-gui.sh:2560 git-gui.sh:3115 msgid "Paste" msgstr "" -#: git-gui.sh:2387 git-gui.sh:2946 lib/branch_delete.tcl:26 +#: git-gui.sh:2563 git-gui.sh:3118 lib/branch_delete.tcl:26 #: lib/remote_branch_delete.tcl:38 msgid "Delete" msgstr "" -#: git-gui.sh:2391 git-gui.sh:2950 git-gui.sh:3100 lib/console.tcl:71 +#: git-gui.sh:2567 git-gui.sh:3122 git-gui.sh:3263 lib/console.tcl:71 msgid "Select All" msgstr "" -#: git-gui.sh:2400 +#: git-gui.sh:2576 msgid "Create..." msgstr "" -#: git-gui.sh:2406 +#: git-gui.sh:2582 msgid "Checkout..." msgstr "" -#: git-gui.sh:2412 +#: git-gui.sh:2588 msgid "Rename..." msgstr "" -#: git-gui.sh:2417 +#: git-gui.sh:2593 msgid "Delete..." msgstr "" -#: git-gui.sh:2422 +#: git-gui.sh:2598 msgid "Reset..." msgstr "" -#: git-gui.sh:2432 +#: git-gui.sh:2608 msgid "Done" msgstr "" -#: git-gui.sh:2434 +#: git-gui.sh:2610 msgid "Commit@@verb" msgstr "" -#: git-gui.sh:2443 git-gui.sh:2878 +#: git-gui.sh:2619 git-gui.sh:3050 msgid "New Commit" msgstr "" -#: git-gui.sh:2451 git-gui.sh:2885 +#: git-gui.sh:2627 git-gui.sh:3057 msgid "Amend Last Commit" msgstr "" -#: git-gui.sh:2461 git-gui.sh:2839 lib/remote_branch_delete.tcl:99 +#: git-gui.sh:2637 git-gui.sh:3011 lib/remote_branch_delete.tcl:99 msgid "Rescan" msgstr "" -#: git-gui.sh:2467 +#: git-gui.sh:2643 msgid "Stage To Commit" msgstr "" -#: git-gui.sh:2473 +#: git-gui.sh:2649 msgid "Stage Changed Files To Commit" msgstr "" -#: git-gui.sh:2479 +#: git-gui.sh:2655 msgid "Unstage From Commit" msgstr "" -#: git-gui.sh:2484 lib/index.tcl:410 +#: git-gui.sh:2661 lib/index.tcl:412 msgid "Revert Changes" msgstr "" -#: git-gui.sh:2491 git-gui.sh:3083 +#: git-gui.sh:2669 git-gui.sh:3310 git-gui.sh:3341 msgid "Show Less Context" msgstr "" -#: git-gui.sh:2495 git-gui.sh:3087 +#: git-gui.sh:2673 git-gui.sh:3314 git-gui.sh:3345 msgid "Show More Context" msgstr "" -#: git-gui.sh:2502 git-gui.sh:2852 git-gui.sh:2961 +#: git-gui.sh:2680 git-gui.sh:3024 git-gui.sh:3133 msgid "Sign Off" msgstr "" -#: git-gui.sh:2518 +#: git-gui.sh:2696 msgid "Local Merge..." msgstr "" -#: git-gui.sh:2523 +#: git-gui.sh:2701 msgid "Abort Merge..." msgstr "" -#: git-gui.sh:2535 git-gui.sh:2575 +#: git-gui.sh:2713 git-gui.sh:2741 msgid "Add..." msgstr "" -#: git-gui.sh:2539 +#: git-gui.sh:2717 msgid "Push..." msgstr "" -#: git-gui.sh:2543 +#: git-gui.sh:2721 msgid "Delete Branch..." msgstr "" -#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 -#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 -#, tcl-format -msgid "About %s" -msgstr "" - -#: git-gui.sh:2557 -msgid "Preferences..." -msgstr "" - -#: git-gui.sh:2565 git-gui.sh:3129 +#: git-gui.sh:2731 git-gui.sh:3292 msgid "Options..." msgstr "" -#: git-gui.sh:2576 +#: git-gui.sh:2742 msgid "Remove..." msgstr "" -#: git-gui.sh:2585 lib/choose_repository.tcl:50 +#: git-gui.sh:2751 lib/choose_repository.tcl:50 msgid "Help" msgstr "" -#: git-gui.sh:2611 +#: git-gui.sh:2755 git-gui.sh:2759 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "" + +#: git-gui.sh:2783 msgid "Online Documentation" msgstr "" -#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +#: git-gui.sh:2786 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 msgid "Show SSH Key" msgstr "" -#: git-gui.sh:2721 +#: git-gui.sh:2893 #, tcl-format msgid "fatal: cannot stat path %s: No such file or directory" msgstr "" -#: git-gui.sh:2754 +#: git-gui.sh:2926 msgid "Current Branch:" msgstr "" -#: git-gui.sh:2775 +#: git-gui.sh:2947 msgid "Staged Changes (Will Commit)" msgstr "" -#: git-gui.sh:2795 +#: git-gui.sh:2967 msgid "Unstaged Changes" msgstr "" -#: git-gui.sh:2845 +#: git-gui.sh:3017 msgid "Stage Changed" msgstr "" -#: git-gui.sh:2864 lib/transport.tcl:104 lib/transport.tcl:193 +#: git-gui.sh:3036 lib/transport.tcl:104 lib/transport.tcl:193 msgid "Push" msgstr "" -#: git-gui.sh:2899 +#: git-gui.sh:3071 msgid "Initial Commit Message:" msgstr "" -#: git-gui.sh:2900 +#: git-gui.sh:3072 msgid "Amended Commit Message:" msgstr "" -#: git-gui.sh:2901 +#: git-gui.sh:3073 msgid "Amended Initial Commit Message:" msgstr "" -#: git-gui.sh:2902 +#: git-gui.sh:3074 msgid "Amended Merge Commit Message:" msgstr "" -#: git-gui.sh:2903 +#: git-gui.sh:3075 msgid "Merge Commit Message:" msgstr "" -#: git-gui.sh:2904 +#: git-gui.sh:3076 msgid "Commit Message:" msgstr "" -#: git-gui.sh:2953 git-gui.sh:3104 lib/console.tcl:73 +#: git-gui.sh:3125 git-gui.sh:3267 lib/console.tcl:73 msgid "Copy All" msgstr "" -#: git-gui.sh:2977 lib/blame.tcl:104 +#: git-gui.sh:3149 lib/blame.tcl:104 msgid "File:" msgstr "" -#: git-gui.sh:3092 +#: git-gui.sh:3255 msgid "Refresh" msgstr "" -#: git-gui.sh:3113 +#: git-gui.sh:3276 msgid "Decrease Font Size" msgstr "" -#: git-gui.sh:3117 +#: git-gui.sh:3280 msgid "Increase Font Size" msgstr "" -#: git-gui.sh:3125 lib/blame.tcl:281 +#: git-gui.sh:3288 lib/blame.tcl:281 msgid "Encoding" msgstr "" -#: git-gui.sh:3136 +#: git-gui.sh:3299 msgid "Apply/Reverse Hunk" msgstr "" -#: git-gui.sh:3141 +#: git-gui.sh:3304 msgid "Apply/Reverse Line" msgstr "" -#: git-gui.sh:3151 +#: git-gui.sh:3323 msgid "Run Merge Tool" msgstr "" -#: git-gui.sh:3156 +#: git-gui.sh:3328 msgid "Use Remote Version" msgstr "" -#: git-gui.sh:3160 +#: git-gui.sh:3332 msgid "Use Local Version" msgstr "" -#: git-gui.sh:3164 +#: git-gui.sh:3336 msgid "Revert To Base" msgstr "" -#: git-gui.sh:3183 +#: git-gui.sh:3354 +msgid "Visualize These Changes In The Submodule" +msgstr "" + +#: git-gui.sh:3358 +msgid "Visualize Current Branch History In The Submodule" +msgstr "" + +#: git-gui.sh:3362 +msgid "Visualize All Branch History In The Submodule" +msgstr "" + +#: git-gui.sh:3367 +msgid "Start git gui In The Submodule" +msgstr "" + +#: git-gui.sh:3389 msgid "Unstage Hunk From Commit" msgstr "" -#: git-gui.sh:3184 +#: git-gui.sh:3391 +msgid "Unstage Lines From Commit" +msgstr "" + +#: git-gui.sh:3393 msgid "Unstage Line From Commit" msgstr "" -#: git-gui.sh:3186 +#: git-gui.sh:3396 msgid "Stage Hunk For Commit" msgstr "" -#: git-gui.sh:3187 +#: git-gui.sh:3398 +msgid "Stage Lines For Commit" +msgstr "" + +#: git-gui.sh:3400 msgid "Stage Line For Commit" msgstr "" -#: git-gui.sh:3210 +#: git-gui.sh:3424 msgid "Initializing..." msgstr "" -#: git-gui.sh:3315 +#: git-gui.sh:3541 #, tcl-format msgid "" "Possible environment issues exist.\n" @@ -507,14 +531,14 @@ msgid "" "\n" msgstr "" -#: git-gui.sh:3345 +#: git-gui.sh:3570 msgid "" "\n" "This is due to a known issue with the\n" "Tcl binary distributed by Cygwin." msgstr "" -#: git-gui.sh:3350 +#: git-gui.sh:3575 #, tcl-format msgid "" "\n" @@ -618,7 +642,7 @@ msgstr "" msgid "Unable to display parent" msgstr "" -#: lib/blame.tcl:1091 lib/diff.tcl:297 +#: lib/blame.tcl:1091 lib/diff.tcl:320 msgid "Error loading diff:" msgstr "" @@ -644,7 +668,7 @@ msgstr "" #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282 -#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/checkout_op.tcl:579 lib/choose_font.tcl:43 lib/merge.tcl:172 #: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 #: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 #: lib/transport.tcl:108 @@ -675,7 +699,7 @@ msgstr "" msgid "Create New Branch" msgstr "" -#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377 +#: lib/branch_create.tcl:31 lib/choose_repository.tcl:381 msgid "Create" msgstr "" @@ -707,7 +731,7 @@ msgstr "" msgid "Fast Forward Only" msgstr "" -#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536 +#: lib/branch_create.tcl:85 lib/checkout_op.tcl:571 msgid "Reset" msgstr "" @@ -749,8 +773,8 @@ msgstr "" msgid "Delete Only If Merged Into" msgstr "" -#: lib/branch_delete.tcl:54 -msgid "Always (Do not perform merge test.)" +#: lib/branch_delete.tcl:54 lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" msgstr "" #: lib/branch_delete.tcl:103 @@ -758,6 +782,13 @@ msgstr "" msgid "The following branches are not completely merged into %s:" msgstr "" +#: lib/branch_delete.tcl:115 lib/remote_branch_delete.tcl:217 +msgid "" +"Recovering deleted branches is difficult.\n" +"\n" +"Delete the selected branches?" +msgstr "" + #: lib/branch_delete.tcl:141 #, tcl-format msgid "" @@ -785,7 +816,7 @@ msgstr "" msgid "Please select a branch to rename." msgstr "" -#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:201 +#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:202 #, tcl-format msgid "Branch '%s' already exists." msgstr "" @@ -816,38 +847,38 @@ msgstr "" msgid "Browse Branch Files" msgstr "" -#: lib/browser.tcl:278 lib/choose_repository.tcl:394 -#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 -#: lib/choose_repository.tcl:995 +#: lib/browser.tcl:278 lib/choose_repository.tcl:398 +#: lib/choose_repository.tcl:486 lib/choose_repository.tcl:497 +#: lib/choose_repository.tcl:1028 msgid "Browse" msgstr "" -#: lib/checkout_op.tcl:84 +#: lib/checkout_op.tcl:85 #, tcl-format msgid "Fetching %s from %s" msgstr "" -#: lib/checkout_op.tcl:132 +#: lib/checkout_op.tcl:133 #, tcl-format msgid "fatal: Cannot resolve %s" msgstr "" -#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/checkout_op.tcl:146 lib/console.tcl:81 lib/database.tcl:31 #: lib/sshkey.tcl:53 msgid "Close" msgstr "" -#: lib/checkout_op.tcl:174 +#: lib/checkout_op.tcl:175 #, tcl-format msgid "Branch '%s' does not exist." msgstr "" -#: lib/checkout_op.tcl:193 +#: lib/checkout_op.tcl:194 #, tcl-format msgid "Failed to configure simplified git-pull for '%s'." msgstr "" -#: lib/checkout_op.tcl:228 +#: lib/checkout_op.tcl:229 #, tcl-format msgid "" "Branch '%s' already exists.\n" @@ -856,21 +887,21 @@ msgid "" "A merge is required." msgstr "" -#: lib/checkout_op.tcl:242 +#: lib/checkout_op.tcl:243 #, tcl-format msgid "Merge strategy '%s' not supported." msgstr "" -#: lib/checkout_op.tcl:261 +#: lib/checkout_op.tcl:262 #, tcl-format msgid "Failed to update '%s'." msgstr "" -#: lib/checkout_op.tcl:273 +#: lib/checkout_op.tcl:274 msgid "Staging area (index) is already locked." msgstr "" -#: lib/checkout_op.tcl:288 +#: lib/checkout_op.tcl:289 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -880,30 +911,30 @@ msgid "" "The rescan will be automatically started now.\n" msgstr "" -#: lib/checkout_op.tcl:344 +#: lib/checkout_op.tcl:345 #, tcl-format msgid "Updating working directory to '%s'..." msgstr "" -#: lib/checkout_op.tcl:345 +#: lib/checkout_op.tcl:346 msgid "files checked out" msgstr "" -#: lib/checkout_op.tcl:375 +#: lib/checkout_op.tcl:376 #, tcl-format msgid "Aborted checkout of '%s' (file level merging is required)." msgstr "" -#: lib/checkout_op.tcl:376 +#: lib/checkout_op.tcl:377 msgid "File level merge required." msgstr "" -#: lib/checkout_op.tcl:380 +#: lib/checkout_op.tcl:381 #, tcl-format msgid "Staying on branch '%s'." msgstr "" -#: lib/checkout_op.tcl:451 +#: lib/checkout_op.tcl:452 msgid "" "You are no longer on a local branch.\n" "\n" @@ -911,30 +942,30 @@ msgid "" "Checkout'." msgstr "" -#: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472 +#: lib/checkout_op.tcl:503 lib/checkout_op.tcl:507 #, tcl-format msgid "Checked out '%s'." msgstr "" -#: lib/checkout_op.tcl:500 +#: lib/checkout_op.tcl:535 #, tcl-format msgid "Resetting '%s' to '%s' will lose the following commits:" msgstr "" -#: lib/checkout_op.tcl:522 +#: lib/checkout_op.tcl:557 msgid "Recovering lost commits may not be easy." msgstr "" -#: lib/checkout_op.tcl:527 +#: lib/checkout_op.tcl:562 #, tcl-format msgid "Reset '%s'?" msgstr "" -#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +#: lib/checkout_op.tcl:567 lib/merge.tcl:164 lib/tools_dlg.tcl:343 msgid "Visualize" msgstr "" -#: lib/checkout_op.tcl:600 +#: lib/checkout_op.tcl:635 #, tcl-format msgid "" "Failed to set current branch.\n" @@ -971,7 +1002,7 @@ msgstr "" msgid "Git Gui" msgstr "" -#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:386 msgid "Create New Repository" msgstr "" @@ -979,7 +1010,7 @@ msgstr "" msgid "New..." msgstr "" -#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:471 msgid "Clone Existing Repository" msgstr "" @@ -987,7 +1018,7 @@ msgstr "" msgid "Clone..." msgstr "" -#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:1016 msgid "Open Existing Repository" msgstr "" @@ -1003,193 +1034,193 @@ msgstr "" msgid "Open Recent Repository:" msgstr "" -#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 -#: lib/choose_repository.tcl:316 +#: lib/choose_repository.tcl:306 lib/choose_repository.tcl:313 +#: lib/choose_repository.tcl:320 #, tcl-format msgid "Failed to create repository %s:" msgstr "" -#: lib/choose_repository.tcl:387 +#: lib/choose_repository.tcl:391 msgid "Directory:" msgstr "" -#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 -#: lib/choose_repository.tcl:1017 +#: lib/choose_repository.tcl:423 lib/choose_repository.tcl:550 +#: lib/choose_repository.tcl:1052 msgid "Git Repository" msgstr "" -#: lib/choose_repository.tcl:442 +#: lib/choose_repository.tcl:448 #, tcl-format msgid "Directory %s already exists." msgstr "" -#: lib/choose_repository.tcl:446 +#: lib/choose_repository.tcl:452 #, tcl-format msgid "File %s already exists." msgstr "" -#: lib/choose_repository.tcl:460 +#: lib/choose_repository.tcl:466 msgid "Clone" msgstr "" -#: lib/choose_repository.tcl:473 +#: lib/choose_repository.tcl:479 msgid "Source Location:" msgstr "" -#: lib/choose_repository.tcl:484 +#: lib/choose_repository.tcl:490 msgid "Target Directory:" msgstr "" -#: lib/choose_repository.tcl:496 +#: lib/choose_repository.tcl:502 msgid "Clone Type:" msgstr "" -#: lib/choose_repository.tcl:502 +#: lib/choose_repository.tcl:508 msgid "Standard (Fast, Semi-Redundant, Hardlinks)" msgstr "" -#: lib/choose_repository.tcl:508 +#: lib/choose_repository.tcl:514 msgid "Full Copy (Slower, Redundant Backup)" msgstr "" -#: lib/choose_repository.tcl:514 +#: lib/choose_repository.tcl:520 msgid "Shared (Fastest, Not Recommended, No Backup)" msgstr "" -#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 -#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 -#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#: lib/choose_repository.tcl:556 lib/choose_repository.tcl:603 +#: lib/choose_repository.tcl:749 lib/choose_repository.tcl:819 +#: lib/choose_repository.tcl:1058 lib/choose_repository.tcl:1066 #, tcl-format msgid "Not a Git repository: %s" msgstr "" -#: lib/choose_repository.tcl:586 +#: lib/choose_repository.tcl:592 msgid "Standard only available for local repository." msgstr "" -#: lib/choose_repository.tcl:590 +#: lib/choose_repository.tcl:596 msgid "Shared only available for local repository." msgstr "" -#: lib/choose_repository.tcl:611 +#: lib/choose_repository.tcl:617 #, tcl-format msgid "Location %s already exists." msgstr "" -#: lib/choose_repository.tcl:622 +#: lib/choose_repository.tcl:628 msgid "Failed to configure origin" msgstr "" -#: lib/choose_repository.tcl:634 +#: lib/choose_repository.tcl:640 msgid "Counting objects" msgstr "" -#: lib/choose_repository.tcl:635 +#: lib/choose_repository.tcl:641 msgid "buckets" msgstr "" -#: lib/choose_repository.tcl:659 +#: lib/choose_repository.tcl:665 #, tcl-format msgid "Unable to copy objects/info/alternates: %s" msgstr "" -#: lib/choose_repository.tcl:695 +#: lib/choose_repository.tcl:701 #, tcl-format msgid "Nothing to clone from %s." msgstr "" -#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 -#: lib/choose_repository.tcl:923 +#: lib/choose_repository.tcl:703 lib/choose_repository.tcl:917 +#: lib/choose_repository.tcl:929 msgid "The 'master' branch has not been initialized." msgstr "" -#: lib/choose_repository.tcl:710 +#: lib/choose_repository.tcl:716 msgid "Hardlinks are unavailable. Falling back to copying." msgstr "" -#: lib/choose_repository.tcl:722 +#: lib/choose_repository.tcl:728 #, tcl-format msgid "Cloning from %s" msgstr "" -#: lib/choose_repository.tcl:753 +#: lib/choose_repository.tcl:759 msgid "Copying objects" msgstr "" -#: lib/choose_repository.tcl:754 +#: lib/choose_repository.tcl:760 msgid "KiB" msgstr "" -#: lib/choose_repository.tcl:778 +#: lib/choose_repository.tcl:784 #, tcl-format msgid "Unable to copy object: %s" msgstr "" -#: lib/choose_repository.tcl:788 +#: lib/choose_repository.tcl:794 msgid "Linking objects" msgstr "" -#: lib/choose_repository.tcl:789 +#: lib/choose_repository.tcl:795 msgid "objects" msgstr "" -#: lib/choose_repository.tcl:797 +#: lib/choose_repository.tcl:803 #, tcl-format msgid "Unable to hardlink object: %s" msgstr "" -#: lib/choose_repository.tcl:852 +#: lib/choose_repository.tcl:858 msgid "Cannot fetch branches and objects. See console output for details." msgstr "" -#: lib/choose_repository.tcl:863 +#: lib/choose_repository.tcl:869 msgid "Cannot fetch tags. See console output for details." msgstr "" -#: lib/choose_repository.tcl:887 +#: lib/choose_repository.tcl:893 msgid "Cannot determine HEAD. See console output for details." msgstr "" -#: lib/choose_repository.tcl:896 +#: lib/choose_repository.tcl:902 #, tcl-format msgid "Unable to cleanup %s" msgstr "" -#: lib/choose_repository.tcl:902 +#: lib/choose_repository.tcl:908 msgid "Clone failed." msgstr "" -#: lib/choose_repository.tcl:909 +#: lib/choose_repository.tcl:915 msgid "No default branch obtained." msgstr "" -#: lib/choose_repository.tcl:920 +#: lib/choose_repository.tcl:926 #, tcl-format msgid "Cannot resolve %s as a commit." msgstr "" -#: lib/choose_repository.tcl:932 +#: lib/choose_repository.tcl:938 msgid "Creating working directory" msgstr "" -#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 -#: lib/index.tcl:196 +#: lib/choose_repository.tcl:939 lib/index.tcl:67 lib/index.tcl:130 +#: lib/index.tcl:198 msgid "files" msgstr "" -#: lib/choose_repository.tcl:962 +#: lib/choose_repository.tcl:968 msgid "Initial file checkout failed." msgstr "" -#: lib/choose_repository.tcl:978 +#: lib/choose_repository.tcl:1011 msgid "Open" msgstr "" -#: lib/choose_repository.tcl:988 +#: lib/choose_repository.tcl:1021 msgid "Repository:" msgstr "" -#: lib/choose_repository.tcl:1037 +#: lib/choose_repository.tcl:1072 #, tcl-format msgid "Failed to open repository %s:" msgstr "" @@ -1264,7 +1295,12 @@ msgstr "" msgid "Invalid GIT_COMMITTER_IDENT:" msgstr "" -#: lib/commit.tcl:132 +#: lib/commit.tcl:129 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "" + +#: lib/commit.tcl:149 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -1274,7 +1310,7 @@ msgid "" "The rescan will be automatically started now.\n" msgstr "" -#: lib/commit.tcl:155 +#: lib/commit.tcl:172 #, tcl-format msgid "" "Unmerged files cannot be committed.\n" @@ -1283,7 +1319,7 @@ msgid "" "before committing.\n" msgstr "" -#: lib/commit.tcl:163 +#: lib/commit.tcl:180 #, tcl-format msgid "" "Unknown file state %s detected.\n" @@ -1291,14 +1327,14 @@ msgid "" "File %s cannot be committed by this program.\n" msgstr "" -#: lib/commit.tcl:171 +#: lib/commit.tcl:188 msgid "" "No changes to commit.\n" "\n" "You must stage at least 1 file before you can commit.\n" msgstr "" -#: lib/commit.tcl:186 +#: lib/commit.tcl:203 msgid "" "Please supply a commit message.\n" "\n" @@ -1309,45 +1345,40 @@ msgid "" "- Remaining lines: Describe why this change is good.\n" msgstr "" -#: lib/commit.tcl:210 -#, tcl-format -msgid "warning: Tcl does not support encoding '%s'." -msgstr "" - -#: lib/commit.tcl:226 +#: lib/commit.tcl:234 msgid "Calling pre-commit hook..." msgstr "" -#: lib/commit.tcl:241 +#: lib/commit.tcl:249 msgid "Commit declined by pre-commit hook." msgstr "" -#: lib/commit.tcl:264 +#: lib/commit.tcl:272 msgid "Calling commit-msg hook..." msgstr "" -#: lib/commit.tcl:279 +#: lib/commit.tcl:287 msgid "Commit declined by commit-msg hook." msgstr "" -#: lib/commit.tcl:292 +#: lib/commit.tcl:300 msgid "Committing changes..." msgstr "" -#: lib/commit.tcl:308 +#: lib/commit.tcl:316 msgid "write-tree failed:" msgstr "" -#: lib/commit.tcl:309 lib/commit.tcl:353 lib/commit.tcl:373 +#: lib/commit.tcl:317 lib/commit.tcl:361 lib/commit.tcl:382 msgid "Commit failed." msgstr "" -#: lib/commit.tcl:326 +#: lib/commit.tcl:334 #, tcl-format msgid "Commit %s appears to be corrupt" msgstr "" -#: lib/commit.tcl:331 +#: lib/commit.tcl:339 msgid "" "No changes to commit.\n" "\n" @@ -1356,19 +1387,19 @@ msgid "" "A rescan will be automatically started now.\n" msgstr "" -#: lib/commit.tcl:338 +#: lib/commit.tcl:346 msgid "No changes to commit." msgstr "" -#: lib/commit.tcl:352 +#: lib/commit.tcl:360 msgid "commit-tree failed:" msgstr "" -#: lib/commit.tcl:372 +#: lib/commit.tcl:381 msgid "update-ref failed:" msgstr "" -#: lib/commit.tcl:460 +#: lib/commit.tcl:469 #, tcl-format msgid "Created commit %s: %s" msgstr "" @@ -1421,13 +1452,13 @@ msgstr "" msgid "Verifying the object database with fsck-objects" msgstr "" -#: lib/database.tcl:108 +#: lib/database.tcl:107 #, tcl-format msgid "" "This repository currently has approximately %i loose objects.\n" "\n" "To maintain optimal performance it is strongly recommended that you compress " -"the database when more than %i loose objects exist.\n" +"the database.\n" "\n" "Compress the database now?" msgstr "" @@ -1437,7 +1468,7 @@ msgstr "" msgid "Invalid date from Git: %s" msgstr "" -#: lib/diff.tcl:59 +#: lib/diff.tcl:64 #, tcl-format msgid "" "No differences detected.\n" @@ -1451,56 +1482,56 @@ msgid "" "the same state." msgstr "" -#: lib/diff.tcl:99 +#: lib/diff.tcl:104 #, tcl-format msgid "Loading diff of %s..." msgstr "" -#: lib/diff.tcl:120 +#: lib/diff.tcl:125 msgid "" "LOCAL: deleted\n" "REMOTE:\n" msgstr "" -#: lib/diff.tcl:125 +#: lib/diff.tcl:130 msgid "" "REMOTE: deleted\n" "LOCAL:\n" msgstr "" -#: lib/diff.tcl:132 +#: lib/diff.tcl:137 msgid "LOCAL:\n" msgstr "" -#: lib/diff.tcl:135 +#: lib/diff.tcl:140 msgid "REMOTE:\n" msgstr "" -#: lib/diff.tcl:197 lib/diff.tcl:296 +#: lib/diff.tcl:202 lib/diff.tcl:319 #, tcl-format msgid "Unable to display %s" msgstr "" -#: lib/diff.tcl:198 +#: lib/diff.tcl:203 msgid "Error loading file:" msgstr "" -#: lib/diff.tcl:205 +#: lib/diff.tcl:210 msgid "Git Repository (subproject)" msgstr "" -#: lib/diff.tcl:217 +#: lib/diff.tcl:222 msgid "* Binary file (not showing content)." msgstr "" -#: lib/diff.tcl:222 +#: lib/diff.tcl:227 #, tcl-format msgid "" "* Untracked file is %d bytes.\n" "* Showing only first %d bytes.\n" msgstr "" -#: lib/diff.tcl:228 +#: lib/diff.tcl:233 #, tcl-format msgid "" "\n" @@ -1508,19 +1539,19 @@ msgid "" "* To see the entire file, use an external editor.\n" msgstr "" -#: lib/diff.tcl:436 +#: lib/diff.tcl:482 msgid "Failed to unstage selected hunk." msgstr "" -#: lib/diff.tcl:443 +#: lib/diff.tcl:489 msgid "Failed to stage selected hunk." msgstr "" -#: lib/diff.tcl:509 +#: lib/diff.tcl:568 msgid "Failed to unstage selected line." msgstr "" -#: lib/diff.tcl:517 +#: lib/diff.tcl:576 msgid "Failed to stage selected line." msgstr "" @@ -1557,13 +1588,13 @@ msgstr "" msgid "Index Error" msgstr "" -#: lib/index.tcl:21 +#: lib/index.tcl:17 msgid "" "Updating the Git index failed. A rescan will be automatically started to " "resynchronize git-gui." msgstr "" -#: lib/index.tcl:27 +#: lib/index.tcl:28 msgid "Continue" msgstr "" @@ -1571,43 +1602,43 @@ msgstr "" msgid "Unlock Index" msgstr "" -#: lib/index.tcl:287 +#: lib/index.tcl:289 #, tcl-format msgid "Unstaging %s from commit" msgstr "" -#: lib/index.tcl:326 +#: lib/index.tcl:328 msgid "Ready to commit." msgstr "" -#: lib/index.tcl:339 +#: lib/index.tcl:341 #, tcl-format msgid "Adding %s" msgstr "" -#: lib/index.tcl:396 +#: lib/index.tcl:398 #, tcl-format msgid "Revert changes in file %s?" msgstr "" -#: lib/index.tcl:398 +#: lib/index.tcl:400 #, tcl-format msgid "Revert changes in these %i files?" msgstr "" -#: lib/index.tcl:406 +#: lib/index.tcl:408 msgid "Any unstaged changes will be permanently lost by the revert." msgstr "" -#: lib/index.tcl:409 +#: lib/index.tcl:411 msgid "Do Nothing" msgstr "" -#: lib/index.tcl:427 +#: lib/index.tcl:429 msgid "Reverting selected files" msgstr "" -#: lib/index.tcl:431 +#: lib/index.tcl:433 #, tcl-format msgid "Reverting %s" msgstr "" @@ -2036,10 +2067,6 @@ msgstr "" msgid "Merged Into:" msgstr "" -#: lib/remote_branch_delete.tcl:119 -msgid "Always (Do not perform merge checks)" -msgstr "" - #: lib/remote_branch_delete.tcl:152 msgid "A branch is required for 'Merged Into'." msgstr "" @@ -2063,23 +2090,16 @@ msgstr "" msgid "Please select one or more branches to delete." msgstr "" -#: lib/remote_branch_delete.tcl:216 -msgid "" -"Recovering deleted branches is difficult.\n" -"\n" -"Delete the selected branches?" -msgstr "" - #: lib/remote_branch_delete.tcl:226 #, tcl-format msgid "Deleting branches from %s" msgstr "" -#: lib/remote_branch_delete.tcl:286 +#: lib/remote_branch_delete.tcl:292 msgid "No repository selected." msgstr "" -#: lib/remote_branch_delete.tcl:291 +#: lib/remote_branch_delete.tcl:297 #, tcl-format msgid "Scanning %s..." msgstr "" @@ -2100,11 +2120,11 @@ msgstr "" msgid "Case-Sensitive" msgstr "" -#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +#: lib/shortcut.tcl:21 lib/shortcut.tcl:62 msgid "Cannot write shortcut:" msgstr "" -#: lib/shortcut.tcl:136 +#: lib/shortcut.tcl:137 msgid "Cannot write icon:" msgstr "" diff --git a/git-gui/po/it.po b/git-gui/po/it.po index 762632c22f..aa15a204d8 100644 --- a/git-gui/po/it.po +++ b/git-gui/po/it.po @@ -9,41 +9,41 @@ msgid "" msgstr "" "Project-Id-Version: git-gui\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-12-08 08:31-0800\n" -"PO-Revision-Date: 2008-12-09 13:04+0100\n" +"POT-Creation-Date: 2010-01-26 15:47-0800\n" +"PO-Revision-Date: 2010-01-28 10:04+0100\n" "Last-Translator: Michele Ballabio <barra_cuda@katamail.com>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: git-gui.sh:41 git-gui.sh:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 -#: git-gui.sh:866 +#: git-gui.sh:41 git-gui.sh:793 git-gui.sh:807 git-gui.sh:820 git-gui.sh:903 +#: git-gui.sh:922 msgid "git-gui: fatal error" msgstr "git-gui: errore grave" -#: git-gui.sh:689 +#: git-gui.sh:743 #, tcl-format msgid "Invalid font specified in %s:" msgstr "Caratteri non validi specificati in %s:" -#: git-gui.sh:723 +#: git-gui.sh:779 msgid "Main Font" msgstr "Caratteri principali" -#: git-gui.sh:724 +#: git-gui.sh:780 msgid "Diff/Console Font" msgstr "Caratteri per confronti e terminale" -#: git-gui.sh:738 +#: git-gui.sh:794 msgid "Cannot find git in PATH." msgstr "Impossibile trovare git nel PATH" -#: git-gui.sh:765 +#: git-gui.sh:821 msgid "Cannot parse Git version string:" msgstr "Impossibile determinare la versione di Git:" -#: git-gui.sh:783 +#: git-gui.sh:839 #, tcl-format msgid "" "Git version cannot be determined.\n" @@ -62,446 +62,475 @@ msgstr "" "\n" "Assumere che '%s' sia alla versione 1.5.0?\n" -#: git-gui.sh:1062 +#: git-gui.sh:1128 msgid "Git directory not found:" msgstr "Non trovo la directory di git: " -#: git-gui.sh:1069 +#: git-gui.sh:1146 msgid "Cannot move to top of working directory:" msgstr "Impossibile spostarsi sulla directory principale del progetto:" -#: git-gui.sh:1076 -msgid "Cannot use funny .git directory:" -msgstr "Impossibile usare una .git directory strana:" +#: git-gui.sh:1154 +msgid "Cannot use bare repository:" +msgstr "Impossibile usare un archivio senza directory di lavoro:" -#: git-gui.sh:1081 +#: git-gui.sh:1162 msgid "No working directory" msgstr "Nessuna directory di lavoro" -#: git-gui.sh:1247 lib/checkout_op.tcl:305 +#: git-gui.sh:1334 lib/checkout_op.tcl:306 msgid "Refreshing file status..." msgstr "Controllo dello stato dei file in corso..." -#: git-gui.sh:1303 +#: git-gui.sh:1390 msgid "Scanning for modified files ..." msgstr "Ricerca di file modificati in corso..." -#: git-gui.sh:1367 +#: git-gui.sh:1454 msgid "Calling prepare-commit-msg hook..." msgstr "Avvio prepare-commit-msg hook..." -#: git-gui.sh:1384 +#: git-gui.sh:1471 msgid "Commit declined by prepare-commit-msg hook." msgstr "Revisione rifiutata dal prepare-commit-msg hook." -#: git-gui.sh:1542 lib/browser.tcl:246 +#: git-gui.sh:1629 lib/browser.tcl:246 msgid "Ready." msgstr "Pronto." -#: git-gui.sh:1819 +#: git-gui.sh:1787 +#, tcl-format +msgid "Displaying only %s of %s files." +msgstr "Saranno mostrati solo %s file su %s." + +#: git-gui.sh:1913 msgid "Unmodified" msgstr "Non modificato" -#: git-gui.sh:1821 +#: git-gui.sh:1915 msgid "Modified, not staged" msgstr "Modificato, non preparato per una nuova revisione" -#: git-gui.sh:1822 git-gui.sh:1830 +#: git-gui.sh:1916 git-gui.sh:1924 msgid "Staged for commit" msgstr "Preparato per una nuova revisione" -#: git-gui.sh:1823 git-gui.sh:1831 +#: git-gui.sh:1917 git-gui.sh:1925 msgid "Portions staged for commit" msgstr "Parti preparate per una nuova revisione" -#: git-gui.sh:1824 git-gui.sh:1832 +#: git-gui.sh:1918 git-gui.sh:1926 msgid "Staged for commit, missing" msgstr "Preparato per una nuova revisione, mancante" -#: git-gui.sh:1826 +#: git-gui.sh:1920 msgid "File type changed, not staged" msgstr "Tipo di file modificato, non preparato per una nuova revisione" -#: git-gui.sh:1827 +#: git-gui.sh:1921 msgid "File type changed, staged" msgstr "Tipo di file modificato, preparato per una nuova revisione" -#: git-gui.sh:1829 +#: git-gui.sh:1923 msgid "Untracked, not staged" msgstr "Non tracciato, non preparato per una nuova revisione" -#: git-gui.sh:1834 +#: git-gui.sh:1928 msgid "Missing" msgstr "Mancante" -#: git-gui.sh:1835 +#: git-gui.sh:1929 msgid "Staged for removal" msgstr "Preparato per la rimozione" -#: git-gui.sh:1836 +#: git-gui.sh:1930 msgid "Staged for removal, still present" msgstr "Preparato alla rimozione, ancora presente" -#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 -#: git-gui.sh:1842 git-gui.sh:1843 +#: git-gui.sh:1932 git-gui.sh:1933 git-gui.sh:1934 git-gui.sh:1935 +#: git-gui.sh:1936 git-gui.sh:1937 msgid "Requires merge resolution" msgstr "Richiede risoluzione dei conflitti" -#: git-gui.sh:1878 +#: git-gui.sh:1972 msgid "Starting gitk... please wait..." msgstr "Avvio di gitk... attendere..." -#: git-gui.sh:1887 +#: git-gui.sh:1984 msgid "Couldn't find gitk in PATH" msgstr "Impossibile trovare gitk nel PATH" -#: git-gui.sh:2280 lib/choose_repository.tcl:36 +#: git-gui.sh:2043 +msgid "Couldn't find git gui in PATH" +msgstr "Impossibile trovare git gui nel PATH" + +#: git-gui.sh:2455 lib/choose_repository.tcl:36 msgid "Repository" msgstr "Archivio" -#: git-gui.sh:2281 +#: git-gui.sh:2456 msgid "Edit" msgstr "Modifica" -#: git-gui.sh:2283 lib/choose_rev.tcl:561 +#: git-gui.sh:2458 lib/choose_rev.tcl:561 msgid "Branch" msgstr "Ramo" -#: git-gui.sh:2286 lib/choose_rev.tcl:548 +#: git-gui.sh:2461 lib/choose_rev.tcl:548 msgid "Commit@@noun" msgstr "Revisione" -#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +#: git-gui.sh:2464 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 msgid "Merge" msgstr "Fusione (Merge)" -#: git-gui.sh:2290 lib/choose_rev.tcl:557 +#: git-gui.sh:2465 lib/choose_rev.tcl:557 msgid "Remote" msgstr "Remoto" -#: git-gui.sh:2293 +#: git-gui.sh:2468 msgid "Tools" -msgstr "Strumenti" +msgstr "Accessori" -#: git-gui.sh:2302 +#: git-gui.sh:2477 msgid "Explore Working Copy" msgstr "Esplora copia di lavoro" -#: git-gui.sh:2307 +#: git-gui.sh:2483 msgid "Browse Current Branch's Files" msgstr "Esplora i file del ramo attuale" -#: git-gui.sh:2311 +#: git-gui.sh:2487 msgid "Browse Branch Files..." msgstr "Esplora i file del ramo..." -#: git-gui.sh:2316 +#: git-gui.sh:2492 msgid "Visualize Current Branch's History" msgstr "Visualizza la cronologia del ramo attuale" -#: git-gui.sh:2320 +#: git-gui.sh:2496 msgid "Visualize All Branch History" msgstr "Visualizza la cronologia di tutti i rami" -#: git-gui.sh:2327 +#: git-gui.sh:2503 #, tcl-format msgid "Browse %s's Files" msgstr "Esplora i file di %s" -#: git-gui.sh:2329 +#: git-gui.sh:2505 #, tcl-format msgid "Visualize %s's History" msgstr "Visualizza la cronologia di %s" -#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +#: git-gui.sh:2510 lib/database.tcl:27 lib/database.tcl:67 msgid "Database Statistics" msgstr "Statistiche dell'archivio" -#: git-gui.sh:2337 lib/database.tcl:34 +#: git-gui.sh:2513 lib/database.tcl:34 msgid "Compress Database" msgstr "Comprimi l'archivio" -#: git-gui.sh:2340 +#: git-gui.sh:2516 msgid "Verify Database" msgstr "Verifica l'archivio" -#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 -#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +#: git-gui.sh:2523 git-gui.sh:2527 git-gui.sh:2531 lib/shortcut.tcl:8 +#: lib/shortcut.tcl:40 lib/shortcut.tcl:72 msgid "Create Desktop Icon" msgstr "Crea icona desktop" -#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +#: git-gui.sh:2539 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 msgid "Quit" msgstr "Esci" -#: git-gui.sh:2371 +#: git-gui.sh:2547 msgid "Undo" msgstr "Annulla" -#: git-gui.sh:2374 +#: git-gui.sh:2550 msgid "Redo" msgstr "Ripeti" -#: git-gui.sh:2378 git-gui.sh:2937 +#: git-gui.sh:2554 git-gui.sh:3109 msgid "Cut" msgstr "Taglia" -#: git-gui.sh:2381 git-gui.sh:2940 git-gui.sh:3014 git-gui.sh:3096 +#: git-gui.sh:2557 git-gui.sh:3112 git-gui.sh:3186 git-gui.sh:3259 #: lib/console.tcl:69 msgid "Copy" msgstr "Copia" -#: git-gui.sh:2384 git-gui.sh:2943 +#: git-gui.sh:2560 git-gui.sh:3115 msgid "Paste" msgstr "Incolla" -#: git-gui.sh:2387 git-gui.sh:2946 lib/branch_delete.tcl:26 +#: git-gui.sh:2563 git-gui.sh:3118 lib/branch_delete.tcl:26 #: lib/remote_branch_delete.tcl:38 msgid "Delete" msgstr "Elimina" -#: git-gui.sh:2391 git-gui.sh:2950 git-gui.sh:3100 lib/console.tcl:71 +#: git-gui.sh:2567 git-gui.sh:3122 git-gui.sh:3263 lib/console.tcl:71 msgid "Select All" msgstr "Seleziona tutto" -#: git-gui.sh:2400 +#: git-gui.sh:2576 msgid "Create..." msgstr "Crea..." -#: git-gui.sh:2406 +#: git-gui.sh:2582 msgid "Checkout..." msgstr "Attiva..." -#: git-gui.sh:2412 +#: git-gui.sh:2588 msgid "Rename..." msgstr "Rinomina" -#: git-gui.sh:2417 +#: git-gui.sh:2593 msgid "Delete..." msgstr "Elimina..." -#: git-gui.sh:2422 +#: git-gui.sh:2598 msgid "Reset..." msgstr "Ripristina..." -#: git-gui.sh:2432 +#: git-gui.sh:2608 msgid "Done" msgstr "Fatto" -#: git-gui.sh:2434 +#: git-gui.sh:2610 msgid "Commit@@verb" msgstr "Nuova revisione" -#: git-gui.sh:2443 git-gui.sh:2878 +#: git-gui.sh:2619 git-gui.sh:3050 msgid "New Commit" msgstr "Nuova revisione" -#: git-gui.sh:2451 git-gui.sh:2885 +#: git-gui.sh:2627 git-gui.sh:3057 msgid "Amend Last Commit" msgstr "Correggi l'ultima revisione" -#: git-gui.sh:2461 git-gui.sh:2839 lib/remote_branch_delete.tcl:99 +#: git-gui.sh:2637 git-gui.sh:3011 lib/remote_branch_delete.tcl:99 msgid "Rescan" msgstr "Analizza nuovamente" -#: git-gui.sh:2467 +#: git-gui.sh:2643 msgid "Stage To Commit" msgstr "Prepara per una nuova revisione" -#: git-gui.sh:2473 +#: git-gui.sh:2649 msgid "Stage Changed Files To Commit" msgstr "Prepara i file modificati per una nuova revisione" -#: git-gui.sh:2479 +#: git-gui.sh:2655 msgid "Unstage From Commit" msgstr "Annulla preparazione" -#: git-gui.sh:2484 lib/index.tcl:410 +#: git-gui.sh:2661 lib/index.tcl:412 msgid "Revert Changes" msgstr "Annulla modifiche" -#: git-gui.sh:2491 git-gui.sh:3083 +#: git-gui.sh:2669 git-gui.sh:3310 git-gui.sh:3341 msgid "Show Less Context" msgstr "Mostra meno contesto" -#: git-gui.sh:2495 git-gui.sh:3087 +#: git-gui.sh:2673 git-gui.sh:3314 git-gui.sh:3345 msgid "Show More Context" msgstr "Mostra più contesto" -#: git-gui.sh:2502 git-gui.sh:2852 git-gui.sh:2961 +#: git-gui.sh:2680 git-gui.sh:3024 git-gui.sh:3133 msgid "Sign Off" msgstr "Sign Off" -#: git-gui.sh:2518 +#: git-gui.sh:2696 msgid "Local Merge..." msgstr "Fusione locale..." -#: git-gui.sh:2523 +#: git-gui.sh:2701 msgid "Abort Merge..." msgstr "Interrompi fusione..." -#: git-gui.sh:2535 git-gui.sh:2575 +#: git-gui.sh:2713 git-gui.sh:2741 msgid "Add..." msgstr "Aggiungi..." -#: git-gui.sh:2539 +#: git-gui.sh:2717 msgid "Push..." msgstr "Propaga..." -#: git-gui.sh:2543 +#: git-gui.sh:2721 msgid "Delete Branch..." msgstr "Elimina ramo..." -#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 -#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 -#, tcl-format -msgid "About %s" -msgstr "Informazioni su %s" - -#: git-gui.sh:2557 -msgid "Preferences..." -msgstr "Preferenze..." - -#: git-gui.sh:2565 git-gui.sh:3129 +#: git-gui.sh:2731 git-gui.sh:3292 msgid "Options..." msgstr "Opzioni..." -#: git-gui.sh:2576 +#: git-gui.sh:2742 msgid "Remove..." msgstr "Rimuovi..." -#: git-gui.sh:2585 lib/choose_repository.tcl:50 +#: git-gui.sh:2751 lib/choose_repository.tcl:50 msgid "Help" msgstr "Aiuto" -#: git-gui.sh:2611 +#: git-gui.sh:2755 git-gui.sh:2759 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "Informazioni su %s" + +#: git-gui.sh:2783 msgid "Online Documentation" msgstr "Documentazione sul web" -#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +#: git-gui.sh:2786 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 msgid "Show SSH Key" msgstr "Mostra chave SSH" -#: git-gui.sh:2721 +#: git-gui.sh:2893 #, tcl-format msgid "fatal: cannot stat path %s: No such file or directory" msgstr "" "errore grave: impossibile effettuare lo stat del path %s: file o directory " "non trovata" -#: git-gui.sh:2754 +#: git-gui.sh:2926 msgid "Current Branch:" msgstr "Ramo attuale:" -#: git-gui.sh:2775 +#: git-gui.sh:2947 msgid "Staged Changes (Will Commit)" msgstr "Modifiche preparate (saranno nella nuova revisione)" -#: git-gui.sh:2795 +#: git-gui.sh:2967 msgid "Unstaged Changes" msgstr "Modifiche non preparate" -#: git-gui.sh:2845 +#: git-gui.sh:3017 msgid "Stage Changed" msgstr "Prepara modificati" -#: git-gui.sh:2864 lib/transport.tcl:104 lib/transport.tcl:193 +#: git-gui.sh:3036 lib/transport.tcl:104 lib/transport.tcl:193 msgid "Push" msgstr "Propaga (Push)" -#: git-gui.sh:2899 +#: git-gui.sh:3071 msgid "Initial Commit Message:" msgstr "Messaggio di revisione iniziale:" -#: git-gui.sh:2900 +#: git-gui.sh:3072 msgid "Amended Commit Message:" msgstr "Messaggio di revisione corretto:" -#: git-gui.sh:2901 +#: git-gui.sh:3073 msgid "Amended Initial Commit Message:" msgstr "Messaggio iniziale di revisione corretto:" -#: git-gui.sh:2902 +#: git-gui.sh:3074 msgid "Amended Merge Commit Message:" msgstr "Messaggio di fusione corretto:" -#: git-gui.sh:2903 +#: git-gui.sh:3075 msgid "Merge Commit Message:" msgstr "Messaggio di fusione:" -#: git-gui.sh:2904 +#: git-gui.sh:3076 msgid "Commit Message:" msgstr "Messaggio di revisione:" -#: git-gui.sh:2953 git-gui.sh:3104 lib/console.tcl:73 +#: git-gui.sh:3125 git-gui.sh:3267 lib/console.tcl:73 msgid "Copy All" msgstr "Copia tutto" -#: git-gui.sh:2977 lib/blame.tcl:104 +#: git-gui.sh:3149 lib/blame.tcl:104 msgid "File:" msgstr "File:" -#: git-gui.sh:3092 +#: git-gui.sh:3255 msgid "Refresh" msgstr "Rinfresca" -#: git-gui.sh:3113 +#: git-gui.sh:3276 msgid "Decrease Font Size" msgstr "Diminuisci dimensione caratteri" -#: git-gui.sh:3117 +#: git-gui.sh:3280 msgid "Increase Font Size" msgstr "Aumenta dimensione caratteri" -#: git-gui.sh:3125 lib/blame.tcl:281 +#: git-gui.sh:3288 lib/blame.tcl:281 msgid "Encoding" msgstr "Codifica" -#: git-gui.sh:3136 +#: git-gui.sh:3299 msgid "Apply/Reverse Hunk" msgstr "Applica/Inverti sezione" -#: git-gui.sh:3141 +#: git-gui.sh:3304 msgid "Apply/Reverse Line" msgstr "Applica/Inverti riga" -#: git-gui.sh:3151 +#: git-gui.sh:3323 msgid "Run Merge Tool" msgstr "Avvia programma esterno per la risoluzione dei conflitti" -#: git-gui.sh:3156 +#: git-gui.sh:3328 msgid "Use Remote Version" msgstr "Usa versione remota" -#: git-gui.sh:3160 +#: git-gui.sh:3332 msgid "Use Local Version" msgstr "Usa versione locale" -#: git-gui.sh:3164 +#: git-gui.sh:3336 msgid "Revert To Base" msgstr "Ritorna alla revisione comune" -#: git-gui.sh:3183 +#: git-gui.sh:3354 +msgid "Visualize These Changes In The Submodule" +msgstr "Visualizza queste modifiche nel sottomodulo" + +#: git-gui.sh:3358 +msgid "Visualize Current Branch History In The Submodule" +msgstr "Visualizza la cronologia del ramo attuale nel sottomodulo" + +#: git-gui.sh:3362 +msgid "Visualize All Branch History In The Submodule" +msgstr "Visualizza la cronologia di tutti i rami nel sottomodulo" + +#: git-gui.sh:3367 +msgid "Start git gui In The Submodule" +msgstr "Avvia git gui nel sottomodulo" + +#: git-gui.sh:3389 msgid "Unstage Hunk From Commit" msgstr "Annulla preparazione della sezione per una nuova revisione" -#: git-gui.sh:3184 +#: git-gui.sh:3391 +msgid "Unstage Lines From Commit" +msgstr "Annulla preparazione delle linee per una nuova revisione" + +#: git-gui.sh:3393 msgid "Unstage Line From Commit" msgstr "Annulla preparazione della linea per una nuova revisione" -#: git-gui.sh:3186 +#: git-gui.sh:3396 msgid "Stage Hunk For Commit" msgstr "Prepara sezione per una nuova revisione" -#: git-gui.sh:3187 +#: git-gui.sh:3398 +msgid "Stage Lines For Commit" +msgstr "Prepara linee per una nuova revisione" + +#: git-gui.sh:3400 msgid "Stage Line For Commit" msgstr "Prepara linea per una nuova revisione" -#: git-gui.sh:3210 +#: git-gui.sh:3424 msgid "Initializing..." msgstr "Inizializzazione..." -#: git-gui.sh:3315 +#: git-gui.sh:3541 #, tcl-format msgid "" "Possible environment issues exist.\n" @@ -518,7 +547,7 @@ msgstr "" "da %s:\n" "\n" -#: git-gui.sh:3345 +#: git-gui.sh:3570 msgid "" "\n" "This is due to a known issue with the\n" @@ -528,7 +557,7 @@ msgstr "" "Ciò è dovuto a un problema conosciuto\n" "causato dall'eseguibile Tcl distribuito da Cygwin." -#: git-gui.sh:3350 +#: git-gui.sh:3575 #, tcl-format msgid "" "\n" @@ -637,7 +666,7 @@ msgstr "Impossibile trovare la revisione precedente:" msgid "Unable to display parent" msgstr "Impossibile visualizzare la revisione precedente" -#: lib/blame.tcl:1091 lib/diff.tcl:297 +#: lib/blame.tcl:1091 lib/diff.tcl:320 msgid "Error loading diff:" msgstr "Errore nel caricamento delle differenze:" @@ -663,7 +692,7 @@ msgstr "Attiva" #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282 -#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/checkout_op.tcl:579 lib/choose_font.tcl:43 lib/merge.tcl:172 #: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 #: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 #: lib/transport.tcl:108 @@ -694,7 +723,7 @@ msgstr "Crea ramo" msgid "Create New Branch" msgstr "Crea nuovo ramo" -#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377 +#: lib/branch_create.tcl:31 lib/choose_repository.tcl:381 msgid "Create" msgstr "Crea" @@ -726,7 +755,7 @@ msgstr "No" msgid "Fast Forward Only" msgstr "Solo fast forward" -#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536 +#: lib/branch_create.tcl:85 lib/checkout_op.tcl:571 msgid "Reset" msgstr "Ripristina" @@ -769,15 +798,25 @@ msgstr "Rami locali" msgid "Delete Only If Merged Into" msgstr "Cancella solo se fuso con un altro ramo" -#: lib/branch_delete.tcl:54 -msgid "Always (Do not perform merge test.)" -msgstr "Sempre (Non effettuare verifiche di fusione)." +#: lib/branch_delete.tcl:54 lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" +msgstr "Sempre (non verificare le fusioni)" #: lib/branch_delete.tcl:103 #, tcl-format msgid "The following branches are not completely merged into %s:" msgstr "I rami seguenti non sono stati fusi completamente in %s:" +#: lib/branch_delete.tcl:115 lib/remote_branch_delete.tcl:217 +msgid "" +"Recovering deleted branches is difficult.\n" +"\n" +"Delete the selected branches?" +msgstr "" +"Ripristinare rami cancellati è difficile.\n" +"\n" +"Cancellare i rami selezionati?" + #: lib/branch_delete.tcl:141 #, tcl-format msgid "" @@ -807,7 +846,7 @@ msgstr "Nuovo Nome:" msgid "Please select a branch to rename." msgstr "Scegliere un ramo da rinominare." -#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:201 +#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:202 #, tcl-format msgid "Branch '%s' already exists." msgstr "Il ramo '%s' esiste già." @@ -838,38 +877,38 @@ msgstr "[Directory superiore]" msgid "Browse Branch Files" msgstr "Esplora i file del ramo" -#: lib/browser.tcl:278 lib/choose_repository.tcl:394 -#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 -#: lib/choose_repository.tcl:995 +#: lib/browser.tcl:278 lib/choose_repository.tcl:398 +#: lib/choose_repository.tcl:486 lib/choose_repository.tcl:497 +#: lib/choose_repository.tcl:1028 msgid "Browse" msgstr "Esplora" -#: lib/checkout_op.tcl:84 +#: lib/checkout_op.tcl:85 #, tcl-format msgid "Fetching %s from %s" msgstr "Recupero %s da %s" -#: lib/checkout_op.tcl:132 +#: lib/checkout_op.tcl:133 #, tcl-format msgid "fatal: Cannot resolve %s" msgstr "errore grave: impossibile risolvere %s" -#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/checkout_op.tcl:146 lib/console.tcl:81 lib/database.tcl:31 #: lib/sshkey.tcl:53 msgid "Close" msgstr "Chiudi" -#: lib/checkout_op.tcl:174 +#: lib/checkout_op.tcl:175 #, tcl-format msgid "Branch '%s' does not exist." msgstr "Il ramo '%s' non esiste." -#: lib/checkout_op.tcl:193 +#: lib/checkout_op.tcl:194 #, tcl-format msgid "Failed to configure simplified git-pull for '%s'." msgstr "Impossibile configurare git-pull semplificato per '%s'." -#: lib/checkout_op.tcl:228 +#: lib/checkout_op.tcl:229 #, tcl-format msgid "" "Branch '%s' already exists.\n" @@ -882,22 +921,22 @@ msgstr "" "Non può effettuare un 'fast-forward' a %s.\n" "E' necessaria una fusione." -#: lib/checkout_op.tcl:242 +#: lib/checkout_op.tcl:243 #, tcl-format msgid "Merge strategy '%s' not supported." msgstr "La strategia di fusione '%s' non è supportata." -#: lib/checkout_op.tcl:261 +#: lib/checkout_op.tcl:262 #, tcl-format msgid "Failed to update '%s'." msgstr "Impossibile aggiornare '%s'." -#: lib/checkout_op.tcl:273 +#: lib/checkout_op.tcl:274 msgid "Staging area (index) is already locked." msgstr "" "L'area di preparazione per una nuova revisione (indice) è già bloccata." -#: lib/checkout_op.tcl:288 +#: lib/checkout_op.tcl:289 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -914,30 +953,30 @@ msgstr "" "\n" "La nuova analisi comincerà ora.\n" -#: lib/checkout_op.tcl:344 +#: lib/checkout_op.tcl:345 #, tcl-format msgid "Updating working directory to '%s'..." msgstr "Aggiornamento della directory di lavoro a '%s' in corso..." -#: lib/checkout_op.tcl:345 +#: lib/checkout_op.tcl:346 msgid "files checked out" msgstr "file presenti nella directory di lavoro" -#: lib/checkout_op.tcl:375 +#: lib/checkout_op.tcl:376 #, tcl-format msgid "Aborted checkout of '%s' (file level merging is required)." msgstr "Attivazione di '%s' fallita (richiesta una fusione a livello file)." -#: lib/checkout_op.tcl:376 +#: lib/checkout_op.tcl:377 msgid "File level merge required." msgstr "E' richiesta una fusione a livello file." -#: lib/checkout_op.tcl:380 +#: lib/checkout_op.tcl:381 #, tcl-format msgid "Staying on branch '%s'." msgstr "Si rimarrà sul ramo '%s'." -#: lib/checkout_op.tcl:451 +#: lib/checkout_op.tcl:452 msgid "" "You are no longer on a local branch.\n" "\n" @@ -949,31 +988,31 @@ msgstr "" "Se si vuole rimanere su un ramo, crearne uno ora a partire da 'Questa " "revisione attiva staccata'." -#: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472 +#: lib/checkout_op.tcl:503 lib/checkout_op.tcl:507 #, tcl-format msgid "Checked out '%s'." msgstr "Attivazione di '%s' completata." -#: lib/checkout_op.tcl:500 +#: lib/checkout_op.tcl:535 #, tcl-format msgid "Resetting '%s' to '%s' will lose the following commits:" msgstr "" "Ripristinare '%s' a '%s' comporterà la perdita delle seguenti revisioni:" -#: lib/checkout_op.tcl:522 +#: lib/checkout_op.tcl:557 msgid "Recovering lost commits may not be easy." msgstr "Ricomporre le revisioni perdute potrebbe non essere semplice." -#: lib/checkout_op.tcl:527 +#: lib/checkout_op.tcl:562 #, tcl-format msgid "Reset '%s'?" msgstr "Ripristinare '%s'?" -#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +#: lib/checkout_op.tcl:567 lib/merge.tcl:164 lib/tools_dlg.tcl:343 msgid "Visualize" msgstr "Visualizza" -#: lib/checkout_op.tcl:600 +#: lib/checkout_op.tcl:635 #, tcl-format msgid "" "Failed to set current branch.\n" @@ -1019,7 +1058,7 @@ msgstr "" msgid "Git Gui" msgstr "Git Gui" -#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:386 msgid "Create New Repository" msgstr "Crea nuovo archivio" @@ -1027,7 +1066,7 @@ msgstr "Crea nuovo archivio" msgid "New..." msgstr "Nuovo..." -#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:471 msgid "Clone Existing Repository" msgstr "Clona archivio esistente" @@ -1035,7 +1074,7 @@ msgstr "Clona archivio esistente" msgid "Clone..." msgstr "Clona..." -#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:1016 msgid "Open Existing Repository" msgstr "Apri archivio esistente" @@ -1051,198 +1090,198 @@ msgstr "Archivi recenti" msgid "Open Recent Repository:" msgstr "Apri archivio recente:" -#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 -#: lib/choose_repository.tcl:316 +#: lib/choose_repository.tcl:306 lib/choose_repository.tcl:313 +#: lib/choose_repository.tcl:320 #, tcl-format msgid "Failed to create repository %s:" msgstr "Impossibile creare l'archivio %s:" -#: lib/choose_repository.tcl:387 +#: lib/choose_repository.tcl:391 msgid "Directory:" msgstr "Directory:" -#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 -#: lib/choose_repository.tcl:1017 +#: lib/choose_repository.tcl:423 lib/choose_repository.tcl:550 +#: lib/choose_repository.tcl:1052 msgid "Git Repository" msgstr "Archivio Git" -#: lib/choose_repository.tcl:442 +#: lib/choose_repository.tcl:448 #, tcl-format msgid "Directory %s already exists." msgstr "La directory %s esiste già." -#: lib/choose_repository.tcl:446 +#: lib/choose_repository.tcl:452 #, tcl-format msgid "File %s already exists." msgstr "Il file %s esiste già." -#: lib/choose_repository.tcl:460 +#: lib/choose_repository.tcl:466 msgid "Clone" msgstr "Clona" -#: lib/choose_repository.tcl:473 +#: lib/choose_repository.tcl:479 msgid "Source Location:" msgstr "Posizione sorgente:" -#: lib/choose_repository.tcl:484 +#: lib/choose_repository.tcl:490 msgid "Target Directory:" msgstr "Directory di destinazione:" -#: lib/choose_repository.tcl:496 +#: lib/choose_repository.tcl:502 msgid "Clone Type:" msgstr "Tipo di clone:" -#: lib/choose_repository.tcl:502 +#: lib/choose_repository.tcl:508 msgid "Standard (Fast, Semi-Redundant, Hardlinks)" msgstr "Standard (veloce, semi-ridondante, con hardlink)" -#: lib/choose_repository.tcl:508 +#: lib/choose_repository.tcl:514 msgid "Full Copy (Slower, Redundant Backup)" msgstr "Copia completa (più lento, backup ridondante)" -#: lib/choose_repository.tcl:514 +#: lib/choose_repository.tcl:520 msgid "Shared (Fastest, Not Recommended, No Backup)" msgstr "Shared (il più veloce, non raccomandato, nessun backup)" -#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 -#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 -#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#: lib/choose_repository.tcl:556 lib/choose_repository.tcl:603 +#: lib/choose_repository.tcl:749 lib/choose_repository.tcl:819 +#: lib/choose_repository.tcl:1058 lib/choose_repository.tcl:1066 #, tcl-format msgid "Not a Git repository: %s" msgstr "%s non è un archivio Git." -#: lib/choose_repository.tcl:586 +#: lib/choose_repository.tcl:592 msgid "Standard only available for local repository." msgstr "Standard è disponibile solo per archivi locali." -#: lib/choose_repository.tcl:590 +#: lib/choose_repository.tcl:596 msgid "Shared only available for local repository." msgstr "Shared è disponibile solo per archivi locali." -#: lib/choose_repository.tcl:611 +#: lib/choose_repository.tcl:617 #, tcl-format msgid "Location %s already exists." msgstr "Il file/directory %s esiste già." -#: lib/choose_repository.tcl:622 +#: lib/choose_repository.tcl:628 msgid "Failed to configure origin" msgstr "Impossibile configurare origin" -#: lib/choose_repository.tcl:634 +#: lib/choose_repository.tcl:640 msgid "Counting objects" msgstr "Calcolo oggetti" -#: lib/choose_repository.tcl:635 +#: lib/choose_repository.tcl:641 msgid "buckets" msgstr "" -#: lib/choose_repository.tcl:659 +#: lib/choose_repository.tcl:665 #, tcl-format msgid "Unable to copy objects/info/alternates: %s" msgstr "Impossibile copiare oggetti/info/alternate: %s" -#: lib/choose_repository.tcl:695 +#: lib/choose_repository.tcl:701 #, tcl-format msgid "Nothing to clone from %s." msgstr "Niente da clonare da %s." -#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 -#: lib/choose_repository.tcl:923 +#: lib/choose_repository.tcl:703 lib/choose_repository.tcl:917 +#: lib/choose_repository.tcl:929 msgid "The 'master' branch has not been initialized." msgstr "Il ramo 'master' non è stato inizializzato." -#: lib/choose_repository.tcl:710 +#: lib/choose_repository.tcl:716 msgid "Hardlinks are unavailable. Falling back to copying." msgstr "Impossibile utilizzare gli hardlink. Si ricorrerà alla copia." -#: lib/choose_repository.tcl:722 +#: lib/choose_repository.tcl:728 #, tcl-format msgid "Cloning from %s" msgstr "Clonazione da %s" -#: lib/choose_repository.tcl:753 +#: lib/choose_repository.tcl:759 msgid "Copying objects" msgstr "Copia degli oggetti" -#: lib/choose_repository.tcl:754 +#: lib/choose_repository.tcl:760 msgid "KiB" msgstr "KiB" -#: lib/choose_repository.tcl:778 +#: lib/choose_repository.tcl:784 #, tcl-format msgid "Unable to copy object: %s" msgstr "Impossibile copiare oggetto: %s" -#: lib/choose_repository.tcl:788 +#: lib/choose_repository.tcl:794 msgid "Linking objects" msgstr "Collegamento oggetti" -#: lib/choose_repository.tcl:789 +#: lib/choose_repository.tcl:795 msgid "objects" msgstr "oggetti" -#: lib/choose_repository.tcl:797 +#: lib/choose_repository.tcl:803 #, tcl-format msgid "Unable to hardlink object: %s" msgstr "Hardlink impossibile sull'oggetto: %s" -#: lib/choose_repository.tcl:852 +#: lib/choose_repository.tcl:858 msgid "Cannot fetch branches and objects. See console output for details." msgstr "" "Impossibile recuperare rami e oggetti. Controllare i dettagli forniti dalla " "console." -#: lib/choose_repository.tcl:863 +#: lib/choose_repository.tcl:869 msgid "Cannot fetch tags. See console output for details." msgstr "" "Impossibile recuperare le etichette. Controllare i dettagli forniti dalla " "console." -#: lib/choose_repository.tcl:887 +#: lib/choose_repository.tcl:893 msgid "Cannot determine HEAD. See console output for details." msgstr "" "Impossibile determinare HEAD. Controllare i dettagli forniti dalla console." -#: lib/choose_repository.tcl:896 +#: lib/choose_repository.tcl:902 #, tcl-format msgid "Unable to cleanup %s" msgstr "Impossibile ripulire %s" -#: lib/choose_repository.tcl:902 +#: lib/choose_repository.tcl:908 msgid "Clone failed." msgstr "Clonazione non riuscita." -#: lib/choose_repository.tcl:909 +#: lib/choose_repository.tcl:915 msgid "No default branch obtained." msgstr "Non è stato trovato un ramo predefinito." -#: lib/choose_repository.tcl:920 +#: lib/choose_repository.tcl:926 #, tcl-format msgid "Cannot resolve %s as a commit." msgstr "Impossibile risolvere %s come una revisione." -#: lib/choose_repository.tcl:932 +#: lib/choose_repository.tcl:938 msgid "Creating working directory" msgstr "Creazione directory di lavoro" -#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 -#: lib/index.tcl:196 +#: lib/choose_repository.tcl:939 lib/index.tcl:67 lib/index.tcl:130 +#: lib/index.tcl:198 msgid "files" msgstr "file" -#: lib/choose_repository.tcl:962 +#: lib/choose_repository.tcl:968 msgid "Initial file checkout failed." msgstr "Attivazione iniziale non riuscita." -#: lib/choose_repository.tcl:978 +#: lib/choose_repository.tcl:1011 msgid "Open" msgstr "Apri" -#: lib/choose_repository.tcl:988 +#: lib/choose_repository.tcl:1021 msgid "Repository:" msgstr "Archivio:" -#: lib/choose_repository.tcl:1037 +#: lib/choose_repository.tcl:1072 #, tcl-format msgid "Failed to open repository %s:" msgstr "Impossibile accedere all'archivio %s:" @@ -1326,7 +1365,12 @@ msgstr "Impossibile ottenere la tua identità:" msgid "Invalid GIT_COMMITTER_IDENT:" msgstr "GIT_COMMITTER_IDENT non valida:" -#: lib/commit.tcl:132 +#: lib/commit.tcl:129 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "attenzione: Tcl non supporta la codifica '%s'." + +#: lib/commit.tcl:149 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -1343,7 +1387,7 @@ msgstr "" "\n" "La nuova analisi comincerà ora.\n" -#: lib/commit.tcl:155 +#: lib/commit.tcl:172 #, tcl-format msgid "" "Unmerged files cannot be committed.\n" @@ -1356,7 +1400,7 @@ msgstr "" "Il file %s presenta dei conflitti. Devi risolverli e preparare il file per " "creare una nuova revisione prima di effettuare questa azione.\n" -#: lib/commit.tcl:163 +#: lib/commit.tcl:180 #, tcl-format msgid "" "Unknown file state %s detected.\n" @@ -1367,7 +1411,7 @@ msgstr "" "\n" "Questo programma non può creare una revisione contenente il file %s.\n" -#: lib/commit.tcl:171 +#: lib/commit.tcl:188 msgid "" "No changes to commit.\n" "\n" @@ -1378,7 +1422,7 @@ msgstr "" "Devi preparare per una nuova revisione almeno 1 file prima di effettuare " "questa operazione.\n" -#: lib/commit.tcl:186 +#: lib/commit.tcl:203 msgid "" "Please supply a commit message.\n" "\n" @@ -1396,45 +1440,40 @@ msgstr "" "- Seconda linea: vuota.\n" "- Terza linea: spiega a cosa serve la tua modifica.\n" -#: lib/commit.tcl:210 -#, tcl-format -msgid "warning: Tcl does not support encoding '%s'." -msgstr "attenzione: Tcl non supporta la codifica '%s'." - -#: lib/commit.tcl:226 +#: lib/commit.tcl:234 msgid "Calling pre-commit hook..." msgstr "Avvio pre-commit hook..." -#: lib/commit.tcl:241 +#: lib/commit.tcl:249 msgid "Commit declined by pre-commit hook." msgstr "Revisione rifiutata dal pre-commit hook." -#: lib/commit.tcl:264 +#: lib/commit.tcl:272 msgid "Calling commit-msg hook..." msgstr "Avvio commit-msg hook..." -#: lib/commit.tcl:279 +#: lib/commit.tcl:287 msgid "Commit declined by commit-msg hook." msgstr "Revisione rifiutata dal commit-msg hook." -#: lib/commit.tcl:292 +#: lib/commit.tcl:300 msgid "Committing changes..." msgstr "Archiviazione modifiche..." -#: lib/commit.tcl:308 +#: lib/commit.tcl:316 msgid "write-tree failed:" msgstr "write-tree non riuscito:" -#: lib/commit.tcl:309 lib/commit.tcl:353 lib/commit.tcl:373 +#: lib/commit.tcl:317 lib/commit.tcl:361 lib/commit.tcl:382 msgid "Commit failed." msgstr "Impossibile creare una nuova revisione." -#: lib/commit.tcl:326 +#: lib/commit.tcl:334 #, tcl-format msgid "Commit %s appears to be corrupt" msgstr "La revisione %s sembra essere danneggiata" -#: lib/commit.tcl:331 +#: lib/commit.tcl:339 msgid "" "No changes to commit.\n" "\n" @@ -1448,19 +1487,19 @@ msgstr "" "\n" "Si procederà subito ad una nuova analisi.\n" -#: lib/commit.tcl:338 +#: lib/commit.tcl:346 msgid "No changes to commit." msgstr "Nessuna modifica per la nuova revisione." -#: lib/commit.tcl:352 +#: lib/commit.tcl:360 msgid "commit-tree failed:" msgstr "commit-tree non riuscito:" -#: lib/commit.tcl:372 +#: lib/commit.tcl:381 msgid "update-ref failed:" msgstr "update-ref non riuscito:" -#: lib/commit.tcl:460 +#: lib/commit.tcl:469 #, tcl-format msgid "Created commit %s: %s" msgstr "Creata revisione %s: %s" @@ -1513,20 +1552,19 @@ msgstr "Compressione dell'archivio in corso" msgid "Verifying the object database with fsck-objects" msgstr "Verifica dell'archivio con fsck-objects in corso" -#: lib/database.tcl:108 +#: lib/database.tcl:107 #, tcl-format msgid "" "This repository currently has approximately %i loose objects.\n" "\n" "To maintain optimal performance it is strongly recommended that you compress " -"the database when more than %i loose objects exist.\n" +"the database.\n" "\n" "Compress the database now?" msgstr "" "Questo archivio attualmente ha circa %i oggetti slegati.\n" "\n" -"Per mantenere buone prestazioni si raccomanda di comprimere l'archivio " -"quando sono presenti più di %i oggetti slegati.\n" +"Per mantenere buone prestazioni si raccomanda di comprimere l'archivio.\n" "\n" "Comprimere l'archivio ora?" @@ -1535,7 +1573,7 @@ msgstr "" msgid "Invalid date from Git: %s" msgstr "Git ha restituito una data non valida: %s" -#: lib/diff.tcl:59 +#: lib/diff.tcl:64 #, tcl-format msgid "" "No differences detected.\n" @@ -1558,12 +1596,12 @@ msgstr "" "Si procederà automaticamente ad una nuova analisi per trovare altri file che " "potrebbero avere lo stesso stato." -#: lib/diff.tcl:99 +#: lib/diff.tcl:104 #, tcl-format msgid "Loading diff of %s..." msgstr "Caricamento delle differenze di %s..." -#: lib/diff.tcl:120 +#: lib/diff.tcl:125 msgid "" "LOCAL: deleted\n" "REMOTE:\n" @@ -1571,7 +1609,7 @@ msgstr "" "LOCALE: cancellato\n" "REMOTO:\n" -#: lib/diff.tcl:125 +#: lib/diff.tcl:130 msgid "" "REMOTE: deleted\n" "LOCAL:\n" @@ -1579,32 +1617,32 @@ msgstr "" "REMOTO: cancellato\n" "LOCALE:\n" -#: lib/diff.tcl:132 +#: lib/diff.tcl:137 msgid "LOCAL:\n" msgstr "LOCALE:\n" -#: lib/diff.tcl:135 +#: lib/diff.tcl:140 msgid "REMOTE:\n" msgstr "REMOTO:\n" -#: lib/diff.tcl:197 lib/diff.tcl:296 +#: lib/diff.tcl:202 lib/diff.tcl:319 #, tcl-format msgid "Unable to display %s" msgstr "Impossibile visualizzare %s" -#: lib/diff.tcl:198 +#: lib/diff.tcl:203 msgid "Error loading file:" msgstr "Errore nel caricamento del file:" -#: lib/diff.tcl:205 +#: lib/diff.tcl:210 msgid "Git Repository (subproject)" msgstr "Archivio Git (sottoprogetto)" -#: lib/diff.tcl:217 +#: lib/diff.tcl:222 msgid "* Binary file (not showing content)." msgstr "* File binario (il contenuto non sarà mostrato)." -#: lib/diff.tcl:222 +#: lib/diff.tcl:227 #, tcl-format msgid "" "* Untracked file is %d bytes.\n" @@ -1613,7 +1651,7 @@ msgstr "" "* Il file non tracciato è di %d byte.\n" "* Saranno visualizzati solo i primi %d byte.\n" -#: lib/diff.tcl:228 +#: lib/diff.tcl:233 #, tcl-format msgid "" "\n" @@ -1624,19 +1662,19 @@ msgstr "" "* %s non visualizza completamente questo file non tracciato.\n" "* Per visualizzare il file completo, usare un programma esterno.\n" -#: lib/diff.tcl:436 +#: lib/diff.tcl:482 msgid "Failed to unstage selected hunk." msgstr "Impossibile rimuovere la sezione scelta dalla nuova revisione." -#: lib/diff.tcl:443 +#: lib/diff.tcl:489 msgid "Failed to stage selected hunk." msgstr "Impossibile preparare la sezione scelta per una nuova revisione." -#: lib/diff.tcl:509 +#: lib/diff.tcl:568 msgid "Failed to unstage selected line." msgstr "Impossibile rimuovere la riga scelta dalla nuova revisione." -#: lib/diff.tcl:517 +#: lib/diff.tcl:576 msgid "Failed to stage selected line." msgstr "Impossibile preparare la riga scelta per una nuova revisione." @@ -1674,7 +1712,7 @@ msgstr "Impossibile sbloccare l'accesso all'indice" msgid "Index Error" msgstr "Errore nell'indice" -#: lib/index.tcl:21 +#: lib/index.tcl:17 msgid "" "Updating the Git index failed. A rescan will be automatically started to " "resynchronize git-gui." @@ -1682,7 +1720,7 @@ msgstr "" "Impossibile aggiornare l'indice. Ora sarà avviata una nuova analisi che " "aggiornerà git-gui." -#: lib/index.tcl:27 +#: lib/index.tcl:28 msgid "Continue" msgstr "Continua" @@ -1690,45 +1728,45 @@ msgstr "Continua" msgid "Unlock Index" msgstr "Sblocca l'accesso all'indice" -#: lib/index.tcl:287 +#: lib/index.tcl:289 #, tcl-format msgid "Unstaging %s from commit" msgstr "%s non farà parte della prossima revisione" -#: lib/index.tcl:326 +#: lib/index.tcl:328 msgid "Ready to commit." msgstr "Pronto per creare una nuova revisione." -#: lib/index.tcl:339 +#: lib/index.tcl:341 #, tcl-format msgid "Adding %s" msgstr "Aggiunta di %s in corso" -#: lib/index.tcl:396 +#: lib/index.tcl:398 #, tcl-format msgid "Revert changes in file %s?" msgstr "Annullare le modifiche nel file %s?" -#: lib/index.tcl:398 +#: lib/index.tcl:400 #, tcl-format msgid "Revert changes in these %i files?" msgstr "Annullare le modifiche in questi %i file?" -#: lib/index.tcl:406 +#: lib/index.tcl:408 msgid "Any unstaged changes will be permanently lost by the revert." msgstr "" "Tutte le modifiche non preparate per una nuova revisione saranno perse per " "sempre." -#: lib/index.tcl:409 +#: lib/index.tcl:411 msgid "Do Nothing" msgstr "Non fare niente" -#: lib/index.tcl:427 +#: lib/index.tcl:429 msgid "Reverting selected files" msgstr "Annullo le modifiche nei file selezionati" -#: lib/index.tcl:431 +#: lib/index.tcl:433 #, tcl-format msgid "Reverting %s" msgstr "Annullo le modifiche in %s" @@ -2215,10 +2253,6 @@ msgstr "Elimina solo se" msgid "Merged Into:" msgstr "Fuso in:" -#: lib/remote_branch_delete.tcl:119 -msgid "Always (Do not perform merge checks)" -msgstr "Sempre (non verificare le fusioni)" - #: lib/remote_branch_delete.tcl:152 msgid "A branch is required for 'Merged Into'." msgstr "Si richiede un ramo per 'Fuso in'." @@ -2247,26 +2281,16 @@ msgstr "" msgid "Please select one or more branches to delete." msgstr "Scegliere uno o più rami da cancellare." -#: lib/remote_branch_delete.tcl:216 -msgid "" -"Recovering deleted branches is difficult.\n" -"\n" -"Delete the selected branches?" -msgstr "" -"Ricomporre rami cancellati è difficile.\n" -"\n" -"Cancellare i rami selezionati?" - #: lib/remote_branch_delete.tcl:226 #, tcl-format msgid "Deleting branches from %s" msgstr "Cancellazione rami da %s" -#: lib/remote_branch_delete.tcl:286 +#: lib/remote_branch_delete.tcl:292 msgid "No repository selected." msgstr "Nessun archivio selezionato." -#: lib/remote_branch_delete.tcl:291 +#: lib/remote_branch_delete.tcl:297 #, tcl-format msgid "Scanning %s..." msgstr "Analisi in corso %s..." @@ -2287,11 +2311,11 @@ msgstr "Prec" msgid "Case-Sensitive" msgstr "Distingui maiuscole" -#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +#: lib/shortcut.tcl:21 lib/shortcut.tcl:62 msgid "Cannot write shortcut:" msgstr "Impossibile scrivere shortcut:" -#: lib/shortcut.tcl:136 +#: lib/shortcut.tcl:137 msgid "Cannot write icon:" msgstr "Impossibile scrivere icona:" @@ -2399,7 +2423,7 @@ msgstr "Vuoi davvero eseguire %s?" #: lib/tools.tcl:110 #, tcl-format msgid "Tool: %s" -msgstr "Strumento: %s" +msgstr "Accessorio: %s" #: lib/tools.tcl:111 #, tcl-format @@ -2418,7 +2442,7 @@ msgstr "Il programma esterno ha riportato un errore: %s" #: lib/tools_dlg.tcl:22 msgid "Add Tool" -msgstr "Aggiungi strumento" +msgstr "Aggiungi accessorio" #: lib/tools_dlg.tcl:28 msgid "Add New Tool Command" @@ -2430,7 +2454,7 @@ msgstr "Aggiungi per tutti gli archivi" #: lib/tools_dlg.tcl:45 msgid "Tool Details" -msgstr "Dettagli sullo strumento" +msgstr "Dettagli sull'accessorio" #: lib/tools_dlg.tcl:48 msgid "Use '/' separators to create a submenu tree:" @@ -2462,12 +2486,12 @@ msgstr "Avvia solo se è selezionata una differenza ($FILENAME non è vuoto)" #: lib/tools_dlg.tcl:121 msgid "Please supply a name for the tool." -msgstr "Bisogna dare un nome allo strumento." +msgstr "Bisogna dare un nome all'accessorio." #: lib/tools_dlg.tcl:129 #, tcl-format msgid "Tool '%s' already exists." -msgstr "Lo strumento '%s' esiste già." +msgstr "L'accessorio '%s' esiste già." #: lib/tools_dlg.tcl:151 #, tcl-format @@ -2475,17 +2499,17 @@ msgid "" "Could not add tool:\n" "%s" msgstr "" -"Impossibile aggiungere lo strumento:\n" +"Impossibile aggiungere l'accessorio:\n" "\n" "%s" #: lib/tools_dlg.tcl:190 msgid "Remove Tool" -msgstr "Rimuovi strumento" +msgstr "Rimuovi accessorio" #: lib/tools_dlg.tcl:196 msgid "Remove Tool Commands" -msgstr "Rimuovi i comandi dello strumento" +msgstr "Rimuovi i comandi accessori" #: lib/tools_dlg.tcl:200 msgid "Remove" @@ -2493,7 +2517,7 @@ msgstr "Rimuovi" #: lib/tools_dlg.tcl:236 msgid "(Blue denotes repository-local tools)" -msgstr "(Il colore blu indica strumenti per l'archivio locale)" +msgstr "(Il colore blu indica accessori per l'archivio locale)" #: lib/tools_dlg.tcl:297 #, tcl-format diff --git a/git-gui/po/ja.po b/git-gui/po/ja.po index 63c4695103..15017985e5 100644 --- a/git-gui/po/ja.po +++ b/git-gui/po/ja.po @@ -3,46 +3,45 @@ # This file is distributed under the same license as the git-gui package. # しらいし ななこ <nanako3@bluebottle.com>, 2007. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: git-gui\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-12-08 08:31-0800\n" -"PO-Revision-Date: 2008-12-09 06:27+0900\n" +"POT-Creation-Date: 2010-01-26 15:47-0800\n" +"PO-Revision-Date: 2010-02-02 19:03+0900\n" "Last-Translator: しらいし ななこ <nanako3@lavabit.com>\n" "Language-Team: Japanese\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: git-gui.sh:41 git-gui.sh:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 -#: git-gui.sh:866 +#: git-gui.sh:41 git-gui.sh:793 git-gui.sh:807 git-gui.sh:820 git-gui.sh:903 +#: git-gui.sh:922 msgid "git-gui: fatal error" msgstr "git-gui: 致命的なエラー" -#: git-gui.sh:689 +#: git-gui.sh:743 #, tcl-format msgid "Invalid font specified in %s:" msgstr "%s に無効なフォントが指定されています:" -#: git-gui.sh:723 +#: git-gui.sh:779 msgid "Main Font" msgstr "主フォント" -#: git-gui.sh:724 +#: git-gui.sh:780 msgid "Diff/Console Font" msgstr "diff/コンソール・フォント" -#: git-gui.sh:738 +#: git-gui.sh:794 msgid "Cannot find git in PATH." msgstr "PATH 中に git が見つかりません" -#: git-gui.sh:765 +#: git-gui.sh:821 msgid "Cannot parse Git version string:" msgstr "Git バージョン名が理解できません:" -#: git-gui.sh:783 +#: git-gui.sh:839 #, tcl-format msgid "" "Git version cannot be determined.\n" @@ -61,446 +60,475 @@ msgstr "" "\n" "'%s' はバージョン 1.5.0 と思って良いですか?\n" -#: git-gui.sh:1062 +#: git-gui.sh:1128 msgid "Git directory not found:" msgstr "Git ディレクトリが見つかりません:" -#: git-gui.sh:1069 +#: git-gui.sh:1146 msgid "Cannot move to top of working directory:" msgstr "作業ディレクトリの最上位に移動できません" -#: git-gui.sh:1076 -msgid "Cannot use funny .git directory:" -msgstr "変な .git ディレクトリは使えません" +#: git-gui.sh:1154 +msgid "Cannot use bare repository:" +msgstr "裸のリポジトリは使えません:" -#: git-gui.sh:1081 +#: git-gui.sh:1162 msgid "No working directory" msgstr "作業ディレクトリがありません" -#: git-gui.sh:1247 lib/checkout_op.tcl:305 +#: git-gui.sh:1334 lib/checkout_op.tcl:306 msgid "Refreshing file status..." msgstr "ファイル状態を更新しています…" -#: git-gui.sh:1303 +#: git-gui.sh:1390 msgid "Scanning for modified files ..." msgstr "変更されたファイルをスキャンしています…" -#: git-gui.sh:1367 +#: git-gui.sh:1454 msgid "Calling prepare-commit-msg hook..." msgstr "prepare-commit-msg フックを実行中・・・" -#: git-gui.sh:1384 +#: git-gui.sh:1471 msgid "Commit declined by prepare-commit-msg hook." msgstr "prepare-commit-msg フックがコミットを拒否しました" -#: git-gui.sh:1542 lib/browser.tcl:246 +#: git-gui.sh:1629 lib/browser.tcl:246 msgid "Ready." msgstr "準備完了" -#: git-gui.sh:1819 +#: git-gui.sh:1787 +#, tcl-format +msgid "Displaying only %s of %s files." +msgstr "全体で%s個の内の%sファイルだけ表示しています" + +#: git-gui.sh:1913 msgid "Unmodified" msgstr "変更無し" -#: git-gui.sh:1821 +#: git-gui.sh:1915 msgid "Modified, not staged" msgstr "変更あり、コミット未予定" -#: git-gui.sh:1822 git-gui.sh:1830 +#: git-gui.sh:1916 git-gui.sh:1924 msgid "Staged for commit" msgstr "コミット予定済" -#: git-gui.sh:1823 git-gui.sh:1831 +#: git-gui.sh:1917 git-gui.sh:1925 msgid "Portions staged for commit" msgstr "部分的にコミット予定済" -#: git-gui.sh:1824 git-gui.sh:1832 +#: git-gui.sh:1918 git-gui.sh:1926 msgid "Staged for commit, missing" msgstr "コミット予定済、ファイル無し" -#: git-gui.sh:1826 +#: git-gui.sh:1920 msgid "File type changed, not staged" msgstr "ファイル型変更、コミット未予定" -#: git-gui.sh:1827 +#: git-gui.sh:1921 msgid "File type changed, staged" msgstr "ファイル型変更、コミット予定済" -#: git-gui.sh:1829 +#: git-gui.sh:1923 msgid "Untracked, not staged" msgstr "管理外、コミット未予定" -#: git-gui.sh:1834 +#: git-gui.sh:1928 msgid "Missing" msgstr "ファイル無し" -#: git-gui.sh:1835 +#: git-gui.sh:1929 msgid "Staged for removal" msgstr "削除予定済" -#: git-gui.sh:1836 +#: git-gui.sh:1930 msgid "Staged for removal, still present" msgstr "削除予定済、ファイル未削除" -#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 -#: git-gui.sh:1842 git-gui.sh:1843 +#: git-gui.sh:1932 git-gui.sh:1933 git-gui.sh:1934 git-gui.sh:1935 +#: git-gui.sh:1936 git-gui.sh:1937 msgid "Requires merge resolution" msgstr "要マージ解決" -#: git-gui.sh:1878 +#: git-gui.sh:1972 msgid "Starting gitk... please wait..." msgstr "gitk を起動中…お待ち下さい…" -#: git-gui.sh:1887 +#: git-gui.sh:1984 msgid "Couldn't find gitk in PATH" msgstr "PATH 中に gitk が見つかりません" -#: git-gui.sh:2280 lib/choose_repository.tcl:36 +#: git-gui.sh:2043 +msgid "Couldn't find git gui in PATH" +msgstr "PATH 中に git gui が見つかりません" + +#: git-gui.sh:2455 lib/choose_repository.tcl:36 msgid "Repository" msgstr "リポジトリ" -#: git-gui.sh:2281 +#: git-gui.sh:2456 msgid "Edit" msgstr "編集" -#: git-gui.sh:2283 lib/choose_rev.tcl:561 +#: git-gui.sh:2458 lib/choose_rev.tcl:561 msgid "Branch" msgstr "ブランチ" -#: git-gui.sh:2286 lib/choose_rev.tcl:548 +#: git-gui.sh:2461 lib/choose_rev.tcl:548 msgid "Commit@@noun" msgstr "コミット" -#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +#: git-gui.sh:2464 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 msgid "Merge" msgstr "マージ" -#: git-gui.sh:2290 lib/choose_rev.tcl:557 +#: git-gui.sh:2465 lib/choose_rev.tcl:557 msgid "Remote" msgstr "リモート" -#: git-gui.sh:2293 +#: git-gui.sh:2468 msgid "Tools" msgstr "ツール" -#: git-gui.sh:2302 +#: git-gui.sh:2477 msgid "Explore Working Copy" msgstr "ワーキングコピーをブラウズ" -#: git-gui.sh:2307 +#: git-gui.sh:2483 msgid "Browse Current Branch's Files" msgstr "現在のブランチのファイルを見る" -#: git-gui.sh:2311 +#: git-gui.sh:2487 msgid "Browse Branch Files..." msgstr "ブランチのファイルを見る…" -#: git-gui.sh:2316 +#: git-gui.sh:2492 msgid "Visualize Current Branch's History" msgstr "現在のブランチの履歴を見る" -#: git-gui.sh:2320 +#: git-gui.sh:2496 msgid "Visualize All Branch History" msgstr "全てのブランチの履歴を見る" -#: git-gui.sh:2327 +#: git-gui.sh:2503 #, tcl-format msgid "Browse %s's Files" msgstr "ブランチ %s のファイルを見る" -#: git-gui.sh:2329 +#: git-gui.sh:2505 #, tcl-format msgid "Visualize %s's History" msgstr "ブランチ %s の履歴を見る" -#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +#: git-gui.sh:2510 lib/database.tcl:27 lib/database.tcl:67 msgid "Database Statistics" msgstr "データベース統計" -#: git-gui.sh:2337 lib/database.tcl:34 +#: git-gui.sh:2513 lib/database.tcl:34 msgid "Compress Database" msgstr "データベース圧縮" -#: git-gui.sh:2340 +#: git-gui.sh:2516 msgid "Verify Database" msgstr "データベース検証" -#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 -#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +#: git-gui.sh:2523 git-gui.sh:2527 git-gui.sh:2531 lib/shortcut.tcl:8 +#: lib/shortcut.tcl:40 lib/shortcut.tcl:72 msgid "Create Desktop Icon" msgstr "デスクトップ・アイコンを作る" -#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +#: git-gui.sh:2539 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 msgid "Quit" msgstr "終了" -#: git-gui.sh:2371 +#: git-gui.sh:2547 msgid "Undo" msgstr "元に戻す" -#: git-gui.sh:2374 +#: git-gui.sh:2550 msgid "Redo" msgstr "やり直し" -#: git-gui.sh:2378 git-gui.sh:2923 +#: git-gui.sh:2554 git-gui.sh:3109 msgid "Cut" msgstr "切り取り" -#: git-gui.sh:2381 git-gui.sh:2926 git-gui.sh:3000 git-gui.sh:3082 +#: git-gui.sh:2557 git-gui.sh:3112 git-gui.sh:3186 git-gui.sh:3259 #: lib/console.tcl:69 msgid "Copy" msgstr "コピー" -#: git-gui.sh:2384 git-gui.sh:2929 +#: git-gui.sh:2560 git-gui.sh:3115 msgid "Paste" msgstr "貼り付け" -#: git-gui.sh:2387 git-gui.sh:2932 lib/branch_delete.tcl:26 +#: git-gui.sh:2563 git-gui.sh:3118 lib/branch_delete.tcl:26 #: lib/remote_branch_delete.tcl:38 msgid "Delete" msgstr "削除" -#: git-gui.sh:2391 git-gui.sh:2936 git-gui.sh:3086 lib/console.tcl:71 +#: git-gui.sh:2567 git-gui.sh:3122 git-gui.sh:3263 lib/console.tcl:71 msgid "Select All" msgstr "全て選択" -#: git-gui.sh:2400 +#: git-gui.sh:2576 msgid "Create..." msgstr "作成…" -#: git-gui.sh:2406 +#: git-gui.sh:2582 msgid "Checkout..." msgstr "チェックアウト" -#: git-gui.sh:2412 +#: git-gui.sh:2588 msgid "Rename..." msgstr "名前変更…" -#: git-gui.sh:2417 +#: git-gui.sh:2593 msgid "Delete..." msgstr "削除…" -#: git-gui.sh:2422 +#: git-gui.sh:2598 msgid "Reset..." msgstr "リセット…" -#: git-gui.sh:2432 +#: git-gui.sh:2608 msgid "Done" msgstr "完了" -#: git-gui.sh:2434 +#: git-gui.sh:2610 msgid "Commit@@verb" msgstr "コミット" -#: git-gui.sh:2443 git-gui.sh:2864 +#: git-gui.sh:2619 git-gui.sh:3050 msgid "New Commit" msgstr "新規コミット" -#: git-gui.sh:2451 git-gui.sh:2871 +#: git-gui.sh:2627 git-gui.sh:3057 msgid "Amend Last Commit" msgstr "最新コミットを訂正" -#: git-gui.sh:2461 git-gui.sh:2825 lib/remote_branch_delete.tcl:99 +#: git-gui.sh:2637 git-gui.sh:3011 lib/remote_branch_delete.tcl:99 msgid "Rescan" msgstr "再スキャン" -#: git-gui.sh:2467 +#: git-gui.sh:2643 msgid "Stage To Commit" msgstr "コミット予定する" -#: git-gui.sh:2473 +#: git-gui.sh:2649 msgid "Stage Changed Files To Commit" msgstr "変更されたファイルをコミット予定" -#: git-gui.sh:2479 +#: git-gui.sh:2655 msgid "Unstage From Commit" msgstr "コミットから降ろす" -#: git-gui.sh:2484 lib/index.tcl:410 +#: git-gui.sh:2661 lib/index.tcl:412 msgid "Revert Changes" msgstr "変更を元に戻す" -#: git-gui.sh:2491 git-gui.sh:3069 +#: git-gui.sh:2669 git-gui.sh:3310 git-gui.sh:3341 msgid "Show Less Context" msgstr "文脈を少なく" -#: git-gui.sh:2495 git-gui.sh:3073 +#: git-gui.sh:2673 git-gui.sh:3314 git-gui.sh:3345 msgid "Show More Context" msgstr "文脈を多く" -#: git-gui.sh:2502 git-gui.sh:2838 git-gui.sh:2947 +#: git-gui.sh:2680 git-gui.sh:3024 git-gui.sh:3133 msgid "Sign Off" msgstr "署名" -#: git-gui.sh:2518 +#: git-gui.sh:2696 msgid "Local Merge..." msgstr "ローカル・マージ…" -#: git-gui.sh:2523 +#: git-gui.sh:2701 msgid "Abort Merge..." msgstr "マージ中止…" -#: git-gui.sh:2535 git-gui.sh:2575 +#: git-gui.sh:2713 git-gui.sh:2741 msgid "Add..." msgstr "追加" -#: git-gui.sh:2539 +#: git-gui.sh:2717 msgid "Push..." msgstr "プッシュ…" -#: git-gui.sh:2543 +#: git-gui.sh:2721 msgid "Delete Branch..." msgstr "ブランチ削除..." -#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 -#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 -#, tcl-format -msgid "About %s" -msgstr "%s について" - -#: git-gui.sh:2557 -msgid "Preferences..." -msgstr "設定…" - -#: git-gui.sh:2565 git-gui.sh:3115 +#: git-gui.sh:2731 git-gui.sh:3292 msgid "Options..." msgstr "オプション…" -#: git-gui.sh:2576 +#: git-gui.sh:2742 msgid "Remove..." msgstr "削除..." -#: git-gui.sh:2585 lib/choose_repository.tcl:50 +#: git-gui.sh:2751 lib/choose_repository.tcl:50 msgid "Help" msgstr "ヘルプ" -#: git-gui.sh:2611 +#: git-gui.sh:2755 git-gui.sh:2759 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "%s について" + +#: git-gui.sh:2783 msgid "Online Documentation" msgstr "オンライン・ドキュメント" -#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +#: git-gui.sh:2786 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 msgid "Show SSH Key" msgstr "SSH キーを表示" -#: git-gui.sh:2707 +#: git-gui.sh:2893 #, tcl-format msgid "fatal: cannot stat path %s: No such file or directory" msgstr "" "致命的: パス %s が stat できません。そのようなファイルやディレクトリはありま" "せん" -#: git-gui.sh:2740 +#: git-gui.sh:2926 msgid "Current Branch:" msgstr "現在のブランチ" -#: git-gui.sh:2761 +#: git-gui.sh:2947 msgid "Staged Changes (Will Commit)" msgstr "ステージングされた(コミット予定済の)変更" -#: git-gui.sh:2781 +#: git-gui.sh:2967 msgid "Unstaged Changes" msgstr "コミット予定に入っていない変更" -#: git-gui.sh:2831 +#: git-gui.sh:3017 msgid "Stage Changed" msgstr "変更をコミット予定に入れる" -#: git-gui.sh:2850 lib/transport.tcl:93 lib/transport.tcl:182 +#: git-gui.sh:3036 lib/transport.tcl:104 lib/transport.tcl:193 msgid "Push" msgstr "プッシュ" -#: git-gui.sh:2885 +#: git-gui.sh:3071 msgid "Initial Commit Message:" msgstr "最初のコミットメッセージ:" -#: git-gui.sh:2886 +#: git-gui.sh:3072 msgid "Amended Commit Message:" msgstr "訂正したコミットメッセージ:" -#: git-gui.sh:2887 +#: git-gui.sh:3073 msgid "Amended Initial Commit Message:" msgstr "訂正した最初のコミットメッセージ:" -#: git-gui.sh:2888 +#: git-gui.sh:3074 msgid "Amended Merge Commit Message:" msgstr "訂正したマージコミットメッセージ:" -#: git-gui.sh:2889 +#: git-gui.sh:3075 msgid "Merge Commit Message:" msgstr "マージコミットメッセージ:" -#: git-gui.sh:2890 +#: git-gui.sh:3076 msgid "Commit Message:" msgstr "コミットメッセージ:" -#: git-gui.sh:2939 git-gui.sh:3090 lib/console.tcl:73 +#: git-gui.sh:3125 git-gui.sh:3267 lib/console.tcl:73 msgid "Copy All" msgstr "全てコピー" -#: git-gui.sh:2963 lib/blame.tcl:104 +#: git-gui.sh:3149 lib/blame.tcl:104 msgid "File:" msgstr "ファイル:" -#: git-gui.sh:3078 +#: git-gui.sh:3255 msgid "Refresh" msgstr "再読み込み" -#: git-gui.sh:3099 +#: git-gui.sh:3276 msgid "Decrease Font Size" msgstr "フォントを小さく" -#: git-gui.sh:3103 +#: git-gui.sh:3280 msgid "Increase Font Size" msgstr "フォントを大きく" -#: git-gui.sh:3111 lib/blame.tcl:281 +#: git-gui.sh:3288 lib/blame.tcl:281 msgid "Encoding" msgstr "エンコーディング" -#: git-gui.sh:3122 +#: git-gui.sh:3299 msgid "Apply/Reverse Hunk" msgstr "パッチを適用/取り消す" -#: git-gui.sh:3127 +#: git-gui.sh:3304 msgid "Apply/Reverse Line" msgstr "パッチ行を適用/取り消す" -#: git-gui.sh:3137 +#: git-gui.sh:3323 msgid "Run Merge Tool" msgstr "マージツールを起動" -#: git-gui.sh:3142 +#: git-gui.sh:3328 msgid "Use Remote Version" msgstr "リモートの方を採用" -#: git-gui.sh:3146 +#: git-gui.sh:3332 msgid "Use Local Version" msgstr "ローカルの方を採用" -#: git-gui.sh:3150 +#: git-gui.sh:3336 msgid "Revert To Base" msgstr "ベース版を採用" -#: git-gui.sh:3169 +#: git-gui.sh:3354 +msgid "Visualize These Changes In The Submodule" +msgstr "サブモジュール内のこれらの変更を見る" + +#: git-gui.sh:3358 +msgid "Visualize Current Branch History In The Submodule" +msgstr "サブモジュール内で現在のブランチの履歴を見る" + +#: git-gui.sh:3362 +msgid "Visualize All Branch History In The Submodule" +msgstr "サブモジュール内で全てのブランチの履歴を見る" + +#: git-gui.sh:3367 +msgid "Start git gui In The Submodule" +msgstr "サブモジュール内でgit guiを起動する" + +#: git-gui.sh:3389 msgid "Unstage Hunk From Commit" msgstr "パッチをコミット予定から外す" -#: git-gui.sh:3170 +#: git-gui.sh:3391 +msgid "Unstage Lines From Commit" +msgstr "コミット予定から行を外す" + +#: git-gui.sh:3393 msgid "Unstage Line From Commit" msgstr "コミット予定から行を外す" -#: git-gui.sh:3172 +#: git-gui.sh:3396 msgid "Stage Hunk For Commit" msgstr "パッチをコミット予定に加える" -#: git-gui.sh:3173 +#: git-gui.sh:3398 +msgid "Stage Lines For Commit" +msgstr "パッチ行をコミット予定に加える" + +#: git-gui.sh:3400 msgid "Stage Line For Commit" msgstr "パッチ行をコミット予定に加える" -#: git-gui.sh:3196 +#: git-gui.sh:3424 msgid "Initializing..." msgstr "初期化しています…" -#: git-gui.sh:3301 +#: git-gui.sh:3541 #, tcl-format msgid "" "Possible environment issues exist.\n" @@ -515,7 +543,7 @@ msgstr "" "以下の環境変数は %s が起動する Git サブプロセスによって無視されるでしょう:\n" "\n" -#: git-gui.sh:3331 +#: git-gui.sh:3570 msgid "" "\n" "This is due to a known issue with the\n" @@ -525,7 +553,7 @@ msgstr "" "これは Cygwin で配布されている Tcl バイナリに\n" "関しての既知の問題によります" -#: git-gui.sh:3336 +#: git-gui.sh:3575 #, tcl-format msgid "" "\n" @@ -609,43 +637,43 @@ msgstr "コピー検知を実行中…" msgid "Loading annotation..." msgstr "注釈を読み込んでいます…" -#: lib/blame.tcl:964 +#: lib/blame.tcl:963 msgid "Author:" msgstr "作者:" -#: lib/blame.tcl:968 +#: lib/blame.tcl:967 msgid "Committer:" msgstr "コミット者:" -#: lib/blame.tcl:973 +#: lib/blame.tcl:972 msgid "Original File:" msgstr "元ファイル" -#: lib/blame.tcl:1021 +#: lib/blame.tcl:1020 msgid "Cannot find HEAD commit:" msgstr "HEAD コミットが見つかりません" -#: lib/blame.tcl:1076 +#: lib/blame.tcl:1075 msgid "Cannot find parent commit:" msgstr "親コミットが見つかりません:" -#: lib/blame.tcl:1091 +#: lib/blame.tcl:1090 msgid "Unable to display parent" msgstr "親を表示できません" -#: lib/blame.tcl:1092 lib/diff.tcl:297 +#: lib/blame.tcl:1091 lib/diff.tcl:320 msgid "Error loading diff:" msgstr "diff を読む際のエラーです:" -#: lib/blame.tcl:1232 +#: lib/blame.tcl:1231 msgid "Originally By:" msgstr "原作者:" -#: lib/blame.tcl:1238 +#: lib/blame.tcl:1237 msgid "In File:" msgstr "ファイル:" -#: lib/blame.tcl:1243 +#: lib/blame.tcl:1242 msgid "Copied Or Moved Here By:" msgstr "複写・移動者:" @@ -659,10 +687,10 @@ msgstr "チェックアウト" #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282 -#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/checkout_op.tcl:579 lib/choose_font.tcl:43 lib/merge.tcl:172 #: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 #: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 -#: lib/transport.tcl:97 +#: lib/transport.tcl:108 msgid "Cancel" msgstr "中止" @@ -690,7 +718,7 @@ msgstr "ブランチを作成" msgid "Create New Branch" msgstr "ブランチを新規作成" -#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377 +#: lib/branch_create.tcl:31 lib/choose_repository.tcl:381 msgid "Create" msgstr "作成" @@ -722,7 +750,7 @@ msgstr "いいえ" msgid "Fast Forward Only" msgstr "早送りのみ" -#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536 +#: lib/branch_create.tcl:85 lib/checkout_op.tcl:571 msgid "Reset" msgstr "リセット" @@ -764,15 +792,25 @@ msgstr "ローカル・ブランチ" msgid "Delete Only If Merged Into" msgstr "マージ済みの時のみ削除" -#: lib/branch_delete.tcl:54 -msgid "Always (Do not perform merge test.)" -msgstr "無条件(マージテストしない)" +#: lib/branch_delete.tcl:54 lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" +msgstr "無条件(マージ検査をしない)" #: lib/branch_delete.tcl:103 #, tcl-format msgid "The following branches are not completely merged into %s:" msgstr "以下のブランチは %s に完全にマージされていません:" +#: lib/branch_delete.tcl:115 lib/remote_branch_delete.tcl:217 +msgid "" +"Recovering deleted branches is difficult.\n" +"\n" +"Delete the selected branches?" +msgstr "" +"削除したブランチを回復するのは困難です。\n" +"\n" +"選択したブランチを削除して良いですか?" + #: lib/branch_delete.tcl:141 #, tcl-format msgid "" @@ -802,7 +840,7 @@ msgstr "新しい名前:" msgid "Please select a branch to rename." msgstr "名前を変更するブランチを選んで下さい。" -#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:201 +#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:202 #, tcl-format msgid "Branch '%s' already exists." msgstr "'%s'というブランチは既に存在します。" @@ -833,38 +871,38 @@ msgstr "[上位フォルダへ]" msgid "Browse Branch Files" msgstr "現在のブランチのファイルを見る" -#: lib/browser.tcl:278 lib/choose_repository.tcl:394 -#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 -#: lib/choose_repository.tcl:995 +#: lib/browser.tcl:278 lib/choose_repository.tcl:398 +#: lib/choose_repository.tcl:486 lib/choose_repository.tcl:497 +#: lib/choose_repository.tcl:1028 msgid "Browse" msgstr "ブラウズ" -#: lib/checkout_op.tcl:84 +#: lib/checkout_op.tcl:85 #, tcl-format msgid "Fetching %s from %s" msgstr "%s から %s をフェッチしています" -#: lib/checkout_op.tcl:132 +#: lib/checkout_op.tcl:133 #, tcl-format msgid "fatal: Cannot resolve %s" msgstr "致命的エラー: %s を解決できません" -#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/checkout_op.tcl:146 lib/console.tcl:81 lib/database.tcl:31 #: lib/sshkey.tcl:53 msgid "Close" msgstr "閉じる" -#: lib/checkout_op.tcl:174 +#: lib/checkout_op.tcl:175 #, tcl-format msgid "Branch '%s' does not exist." msgstr "ブランチ'%s'は存在しません。" -#: lib/checkout_op.tcl:193 +#: lib/checkout_op.tcl:194 #, tcl-format msgid "Failed to configure simplified git-pull for '%s'." msgstr "'%s' に簡易 git-pull を設定できませんでした" -#: lib/checkout_op.tcl:228 +#: lib/checkout_op.tcl:229 #, tcl-format msgid "" "Branch '%s' already exists.\n" @@ -877,21 +915,21 @@ msgstr "" "%s に早送りできません。\n" "マージが必要です。" -#: lib/checkout_op.tcl:242 +#: lib/checkout_op.tcl:243 #, tcl-format msgid "Merge strategy '%s' not supported." msgstr "'%s' マージ戦略はサポートされていません。" -#: lib/checkout_op.tcl:261 +#: lib/checkout_op.tcl:262 #, tcl-format msgid "Failed to update '%s'." msgstr "'%s' の更新に失敗しました。" -#: lib/checkout_op.tcl:273 +#: lib/checkout_op.tcl:274 msgid "Staging area (index) is already locked." msgstr "インデックスは既にロックされています。" -#: lib/checkout_op.tcl:288 +#: lib/checkout_op.tcl:289 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -907,30 +945,30 @@ msgstr "" "\n" "自動的に再スキャンを開始します。\n" -#: lib/checkout_op.tcl:344 +#: lib/checkout_op.tcl:345 #, tcl-format msgid "Updating working directory to '%s'..." msgstr "作業ディレクトリを '%s' に更新しています…" -#: lib/checkout_op.tcl:345 +#: lib/checkout_op.tcl:346 msgid "files checked out" msgstr "チェックアウトされたファイル" -#: lib/checkout_op.tcl:375 +#: lib/checkout_op.tcl:376 #, tcl-format msgid "Aborted checkout of '%s' (file level merging is required)." msgstr "'%s' のチェックアウトを中止しました(ファイル毎のマージが必要です)。" -#: lib/checkout_op.tcl:376 +#: lib/checkout_op.tcl:377 msgid "File level merge required." msgstr "ファイル毎のマージが必要です。" -#: lib/checkout_op.tcl:380 +#: lib/checkout_op.tcl:381 #, tcl-format msgid "Staying on branch '%s'." msgstr "ブランチ '%s' に滞まります。" -#: lib/checkout_op.tcl:451 +#: lib/checkout_op.tcl:452 msgid "" "You are no longer on a local branch.\n" "\n" @@ -942,30 +980,30 @@ msgstr "" "ブランチ上に滞まりたいときは、この「分離されたチェックアウト」から新規ブラン" "チを開始してください。" -#: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472 +#: lib/checkout_op.tcl:503 lib/checkout_op.tcl:507 #, tcl-format msgid "Checked out '%s'." msgstr "'%s' をチェックアウトしました" -#: lib/checkout_op.tcl:500 +#: lib/checkout_op.tcl:535 #, tcl-format msgid "Resetting '%s' to '%s' will lose the following commits:" msgstr "'%s' を '%s' にリセットすると、以下のコミットが失なわれます:" -#: lib/checkout_op.tcl:522 +#: lib/checkout_op.tcl:557 msgid "Recovering lost commits may not be easy." msgstr "失なわれたコミットを回復するのは簡単ではありません。" -#: lib/checkout_op.tcl:527 +#: lib/checkout_op.tcl:562 #, tcl-format msgid "Reset '%s'?" msgstr "'%s' をリセットしますか?" -#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +#: lib/checkout_op.tcl:567 lib/merge.tcl:164 lib/tools_dlg.tcl:343 msgid "Visualize" msgstr "可視化" -#: lib/checkout_op.tcl:600 +#: lib/checkout_op.tcl:635 #, tcl-format msgid "" "Failed to set current branch.\n" @@ -1009,7 +1047,7 @@ msgstr "" msgid "Git Gui" msgstr "Git GUI" -#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:386 msgid "Create New Repository" msgstr "新しいリポジトリを作る" @@ -1017,7 +1055,7 @@ msgstr "新しいリポジトリを作る" msgid "New..." msgstr "新規…" -#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:471 msgid "Clone Existing Repository" msgstr "既存リポジトリを複製する" @@ -1025,7 +1063,7 @@ msgstr "既存リポジトリを複製する" msgid "Clone..." msgstr "複製…" -#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:1016 msgid "Open Existing Repository" msgstr "既存リポジトリを開く" @@ -1041,193 +1079,193 @@ msgstr "最近使ったリポジトリ" msgid "Open Recent Repository:" msgstr "最近使ったリポジトリを開く" -#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 -#: lib/choose_repository.tcl:316 +#: lib/choose_repository.tcl:306 lib/choose_repository.tcl:313 +#: lib/choose_repository.tcl:320 #, tcl-format msgid "Failed to create repository %s:" msgstr "リポジトリ %s を作製できません:" -#: lib/choose_repository.tcl:387 +#: lib/choose_repository.tcl:391 msgid "Directory:" msgstr "ディレクトリ:" -#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 -#: lib/choose_repository.tcl:1017 +#: lib/choose_repository.tcl:423 lib/choose_repository.tcl:550 +#: lib/choose_repository.tcl:1052 msgid "Git Repository" msgstr "GIT リポジトリ" -#: lib/choose_repository.tcl:442 +#: lib/choose_repository.tcl:448 #, tcl-format msgid "Directory %s already exists." msgstr "ディレクトリ '%s' は既に存在します。" -#: lib/choose_repository.tcl:446 +#: lib/choose_repository.tcl:452 #, tcl-format msgid "File %s already exists." msgstr "ファイル '%s' は既に存在します。" -#: lib/choose_repository.tcl:460 +#: lib/choose_repository.tcl:466 msgid "Clone" msgstr "複製" -#: lib/choose_repository.tcl:473 +#: lib/choose_repository.tcl:479 msgid "Source Location:" msgstr "ソースの位置" -#: lib/choose_repository.tcl:484 +#: lib/choose_repository.tcl:490 msgid "Target Directory:" msgstr "先ディレクトリ:" -#: lib/choose_repository.tcl:496 +#: lib/choose_repository.tcl:502 msgid "Clone Type:" msgstr "複製方式:" -#: lib/choose_repository.tcl:502 +#: lib/choose_repository.tcl:508 msgid "Standard (Fast, Semi-Redundant, Hardlinks)" msgstr "標準(高速・中冗長度・ハードリンク)" -#: lib/choose_repository.tcl:508 +#: lib/choose_repository.tcl:514 msgid "Full Copy (Slower, Redundant Backup)" msgstr "全複写(低速・冗長バックアップ)" -#: lib/choose_repository.tcl:514 +#: lib/choose_repository.tcl:520 msgid "Shared (Fastest, Not Recommended, No Backup)" msgstr "共有(最高速・非推奨・バックアップ無し)" -#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 -#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 -#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#: lib/choose_repository.tcl:556 lib/choose_repository.tcl:603 +#: lib/choose_repository.tcl:749 lib/choose_repository.tcl:819 +#: lib/choose_repository.tcl:1058 lib/choose_repository.tcl:1066 #, tcl-format msgid "Not a Git repository: %s" msgstr "Git リポジトリではありません: %s" -#: lib/choose_repository.tcl:586 +#: lib/choose_repository.tcl:592 msgid "Standard only available for local repository." msgstr "標準方式は同一計算機上のリポジトリにのみ使えます。" -#: lib/choose_repository.tcl:590 +#: lib/choose_repository.tcl:596 msgid "Shared only available for local repository." msgstr "共有方式は同一計算機上のリポジトリにのみ使えます。" -#: lib/choose_repository.tcl:611 +#: lib/choose_repository.tcl:617 #, tcl-format msgid "Location %s already exists." msgstr "'%s' は既に存在します。" -#: lib/choose_repository.tcl:622 +#: lib/choose_repository.tcl:628 msgid "Failed to configure origin" msgstr "origin を設定できませんでした" -#: lib/choose_repository.tcl:634 +#: lib/choose_repository.tcl:640 msgid "Counting objects" msgstr "オブジェクトを数えています" -#: lib/choose_repository.tcl:635 +#: lib/choose_repository.tcl:641 msgid "buckets" msgstr "バケツ" -#: lib/choose_repository.tcl:659 +#: lib/choose_repository.tcl:665 #, tcl-format msgid "Unable to copy objects/info/alternates: %s" msgstr "objects/info/alternates を複写できません: %s" -#: lib/choose_repository.tcl:695 +#: lib/choose_repository.tcl:701 #, tcl-format msgid "Nothing to clone from %s." msgstr "%s から複製する内容はありません" -#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 -#: lib/choose_repository.tcl:923 +#: lib/choose_repository.tcl:703 lib/choose_repository.tcl:917 +#: lib/choose_repository.tcl:929 msgid "The 'master' branch has not been initialized." msgstr "'master' ブランチが初期化されていません" -#: lib/choose_repository.tcl:710 +#: lib/choose_repository.tcl:716 msgid "Hardlinks are unavailable. Falling back to copying." msgstr "ハードリンクが作れないので、コピーします" -#: lib/choose_repository.tcl:722 +#: lib/choose_repository.tcl:728 #, tcl-format msgid "Cloning from %s" msgstr "%s から複製しています" -#: lib/choose_repository.tcl:753 +#: lib/choose_repository.tcl:759 msgid "Copying objects" msgstr "オブジェクトを複写しています" -#: lib/choose_repository.tcl:754 +#: lib/choose_repository.tcl:760 msgid "KiB" msgstr "KiB" -#: lib/choose_repository.tcl:778 +#: lib/choose_repository.tcl:784 #, tcl-format msgid "Unable to copy object: %s" msgstr "オブジェクトを複写できません: %s" -#: lib/choose_repository.tcl:788 +#: lib/choose_repository.tcl:794 msgid "Linking objects" msgstr "オブジェクトを連結しています" -#: lib/choose_repository.tcl:789 +#: lib/choose_repository.tcl:795 msgid "objects" msgstr "オブジェクト" -#: lib/choose_repository.tcl:797 +#: lib/choose_repository.tcl:803 #, tcl-format msgid "Unable to hardlink object: %s" msgstr "オブジェクトをハードリンクできません: %s" -#: lib/choose_repository.tcl:852 +#: lib/choose_repository.tcl:858 msgid "Cannot fetch branches and objects. See console output for details." msgstr "ブランチやオブジェクトを取得できません。コンソール出力を見て下さい" -#: lib/choose_repository.tcl:863 +#: lib/choose_repository.tcl:869 msgid "Cannot fetch tags. See console output for details." msgstr "タグを取得できません。コンソール出力を見て下さい" -#: lib/choose_repository.tcl:887 +#: lib/choose_repository.tcl:893 msgid "Cannot determine HEAD. See console output for details." msgstr "HEAD を確定できません。コンソール出力を見て下さい" -#: lib/choose_repository.tcl:896 +#: lib/choose_repository.tcl:902 #, tcl-format msgid "Unable to cleanup %s" msgstr "%s を掃除できません" -#: lib/choose_repository.tcl:902 +#: lib/choose_repository.tcl:908 msgid "Clone failed." msgstr "複写に失敗しました。" -#: lib/choose_repository.tcl:909 +#: lib/choose_repository.tcl:915 msgid "No default branch obtained." msgstr "デフォールト・ブランチが取得されませんでした" -#: lib/choose_repository.tcl:920 +#: lib/choose_repository.tcl:926 #, tcl-format msgid "Cannot resolve %s as a commit." msgstr "%s をコミットとして解釈できません" -#: lib/choose_repository.tcl:932 +#: lib/choose_repository.tcl:938 msgid "Creating working directory" msgstr "作業ディレクトリを作成しています" -#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 -#: lib/index.tcl:196 +#: lib/choose_repository.tcl:939 lib/index.tcl:67 lib/index.tcl:130 +#: lib/index.tcl:198 msgid "files" msgstr "ファイル" -#: lib/choose_repository.tcl:962 +#: lib/choose_repository.tcl:968 msgid "Initial file checkout failed." msgstr "初期チェックアウトに失敗しました" -#: lib/choose_repository.tcl:978 +#: lib/choose_repository.tcl:1011 msgid "Open" msgstr "開く" -#: lib/choose_repository.tcl:988 +#: lib/choose_repository.tcl:1021 msgid "Repository:" msgstr "リポジトリ:" -#: lib/choose_repository.tcl:1037 +#: lib/choose_repository.tcl:1072 #, tcl-format msgid "Failed to open repository %s:" msgstr "リポジトリ %s を開けません:" @@ -1298,19 +1336,24 @@ msgstr "" "現在はまだマージの途中です。先にこのマージを中止しないと、前のコミットの訂正" "はできません\n" -#: lib/commit.tcl:49 +#: lib/commit.tcl:48 msgid "Error loading commit data for amend:" msgstr "訂正するコミットのデータを読めません:" -#: lib/commit.tcl:76 +#: lib/commit.tcl:75 msgid "Unable to obtain your identity:" msgstr "ユーザの正体を確認できません:" -#: lib/commit.tcl:81 +#: lib/commit.tcl:80 msgid "Invalid GIT_COMMITTER_IDENT:" msgstr "GIT_COMMITTER_IDENT が無効です:" -#: lib/commit.tcl:133 +#: lib/commit.tcl:129 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "警告: Tcl はエンコーディング '%s' をサポートしていません" + +#: lib/commit.tcl:149 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -1326,7 +1369,7 @@ msgstr "" "\n" "自動的に再スキャンを開始します。\n" -#: lib/commit.tcl:156 +#: lib/commit.tcl:172 #, tcl-format msgid "" "Unmerged files cannot be committed.\n" @@ -1339,7 +1382,7 @@ msgstr "" "ファイル %s にはマージ衝突が残っています。まず解決してコミット予定に加える必" "要があります。\n" -#: lib/commit.tcl:164 +#: lib/commit.tcl:180 #, tcl-format msgid "" "Unknown file state %s detected.\n" @@ -1350,7 +1393,7 @@ msgstr "" "\n" "ファイル %s は本プログラムではコミットできません。\n" -#: lib/commit.tcl:172 +#: lib/commit.tcl:188 msgid "" "No changes to commit.\n" "\n" @@ -1360,7 +1403,7 @@ msgstr "" "\n" "最低一つの変更をコミット予定に加えてからコミットして下さい。\n" -#: lib/commit.tcl:187 +#: lib/commit.tcl:203 msgid "" "Please supply a commit message.\n" "\n" @@ -1378,45 +1421,40 @@ msgstr "" "- 第2行: 空白\n" "- 残りの行: なぜ、この変更が良い変更か、の説明。\n" -#: lib/commit.tcl:211 -#, tcl-format -msgid "warning: Tcl does not support encoding '%s'." -msgstr "警告: Tcl はエンコーディング '%s' をサポートしていません" - -#: lib/commit.tcl:227 +#: lib/commit.tcl:234 msgid "Calling pre-commit hook..." msgstr "コミット前フックを実行中・・・" -#: lib/commit.tcl:242 +#: lib/commit.tcl:249 msgid "Commit declined by pre-commit hook." msgstr "コミット前フックがコミットを拒否しました" -#: lib/commit.tcl:265 +#: lib/commit.tcl:272 msgid "Calling commit-msg hook..." msgstr "コミット・メッセージ・フックを実行中・・・" -#: lib/commit.tcl:280 +#: lib/commit.tcl:287 msgid "Commit declined by commit-msg hook." msgstr "コミット・メッセージ・フックがコミットを拒否しました" -#: lib/commit.tcl:293 +#: lib/commit.tcl:300 msgid "Committing changes..." msgstr "変更点をコミット中・・・" -#: lib/commit.tcl:309 +#: lib/commit.tcl:316 msgid "write-tree failed:" msgstr "write-tree が失敗しました:" -#: lib/commit.tcl:310 lib/commit.tcl:354 lib/commit.tcl:374 +#: lib/commit.tcl:317 lib/commit.tcl:361 lib/commit.tcl:382 msgid "Commit failed." msgstr "コミットに失敗しました。" -#: lib/commit.tcl:327 +#: lib/commit.tcl:334 #, tcl-format msgid "Commit %s appears to be corrupt" msgstr "コミット %s は壊れています" -#: lib/commit.tcl:332 +#: lib/commit.tcl:339 msgid "" "No changes to commit.\n" "\n" @@ -1430,19 +1468,19 @@ msgstr "" "\n" "自動的に再スキャンを開始します。\n" -#: lib/commit.tcl:339 +#: lib/commit.tcl:346 msgid "No changes to commit." msgstr "コミットする変更がありません。" -#: lib/commit.tcl:353 +#: lib/commit.tcl:360 msgid "commit-tree failed:" msgstr "commit-tree が失敗しました:" -#: lib/commit.tcl:373 +#: lib/commit.tcl:381 msgid "update-ref failed:" msgstr "update-ref が失敗しました:" -#: lib/commit.tcl:461 +#: lib/commit.tcl:469 #, tcl-format msgid "Created commit %s: %s" msgstr "コミット %s を作成しました: %s" @@ -1495,20 +1533,19 @@ msgstr "データベース圧縮" msgid "Verifying the object database with fsck-objects" msgstr "fsck-objects でオブジェクト・データベースを検証しています" -#: lib/database.tcl:108 +#: lib/database.tcl:107 #, tcl-format msgid "" "This repository currently has approximately %i loose objects.\n" "\n" "To maintain optimal performance it is strongly recommended that you compress " -"the database when more than %i loose objects exist.\n" +"the database.\n" "\n" "Compress the database now?" msgstr "" "このリポジトリにはおおよそ %i 個の個別オブジェクトがあります\n" "\n" -"最適な性能を保つために、%i 個以上の個別オブジェクトを作る毎にデータベースを圧" -"縮することを推奨します\n" +"最適な性能を保つために、データベースを圧縮することを推奨します\n" "\n" "データベースを圧縮しますか?" @@ -1517,7 +1554,7 @@ msgstr "" msgid "Invalid date from Git: %s" msgstr "Git から出た無効な日付: %s" -#: lib/diff.tcl:59 +#: lib/diff.tcl:64 #, tcl-format msgid "" "No differences detected.\n" @@ -1539,12 +1576,12 @@ msgstr "" "\n" "同様な状態のファイルを探すために、自動的に再スキャンを開始します。" -#: lib/diff.tcl:99 +#: lib/diff.tcl:104 #, tcl-format msgid "Loading diff of %s..." msgstr "%s の変更点をロード中…" -#: lib/diff.tcl:120 +#: lib/diff.tcl:125 msgid "" "LOCAL: deleted\n" "REMOTE:\n" @@ -1552,7 +1589,7 @@ msgstr "" "LOCAL: 削除\n" "Remote:\n" -#: lib/diff.tcl:125 +#: lib/diff.tcl:130 msgid "" "REMOTE: deleted\n" "LOCAL:\n" @@ -1560,32 +1597,32 @@ msgstr "" "REMOTE: 削除\n" "LOCAL:\n" -#: lib/diff.tcl:132 +#: lib/diff.tcl:137 msgid "LOCAL:\n" msgstr "LOCAL:\n" -#: lib/diff.tcl:135 +#: lib/diff.tcl:140 msgid "REMOTE:\n" msgstr "REMOTE\n" -#: lib/diff.tcl:197 lib/diff.tcl:296 +#: lib/diff.tcl:202 lib/diff.tcl:319 #, tcl-format msgid "Unable to display %s" msgstr "%s を表示できません" -#: lib/diff.tcl:198 +#: lib/diff.tcl:203 msgid "Error loading file:" msgstr "ファイルを読む際のエラーです:" -#: lib/diff.tcl:205 +#: lib/diff.tcl:210 msgid "Git Repository (subproject)" msgstr "Git リポジトリ(サブプロジェクト)" -#: lib/diff.tcl:217 +#: lib/diff.tcl:222 msgid "* Binary file (not showing content)." msgstr "* バイナリファイル(内容は表示しません)" -#: lib/diff.tcl:222 +#: lib/diff.tcl:227 #, tcl-format msgid "" "* Untracked file is %d bytes.\n" @@ -1594,7 +1631,7 @@ msgstr "" "* 管理外のファイルの大きさは %d バイトです。\n" "* 最初の %d バイトだけ表示しています。\n" -#: lib/diff.tcl:228 +#: lib/diff.tcl:233 #, tcl-format msgid "" "\n" @@ -1606,19 +1643,19 @@ msgstr "" "* %s は管理外のファイルをここで切りおとしました。\n" "* 全体を見るには外部エディタを使ってください。\n" -#: lib/diff.tcl:436 +#: lib/diff.tcl:482 msgid "Failed to unstage selected hunk." msgstr "選択されたパッチをコミット予定から外せません。" -#: lib/diff.tcl:443 +#: lib/diff.tcl:489 msgid "Failed to stage selected hunk." msgstr "選択されたパッチをコミット予定に加えられません。" -#: lib/diff.tcl:509 +#: lib/diff.tcl:568 msgid "Failed to unstage selected line." msgstr "選択されたパッチ行をコミット予定から外せません。" -#: lib/diff.tcl:517 +#: lib/diff.tcl:576 msgid "Failed to stage selected line." msgstr "選択されたパッチ行をコミット予定に加えられません。" @@ -1655,7 +1692,7 @@ msgstr "インデックスをロックできません" msgid "Index Error" msgstr "索引エラー" -#: lib/index.tcl:21 +#: lib/index.tcl:17 msgid "" "Updating the Git index failed. A rescan will be automatically started to " "resynchronize git-gui." @@ -1663,7 +1700,7 @@ msgstr "" "GIT インデックスの更新が失敗しました。git-gui と同期をとるために再スキャンし" "ます。" -#: lib/index.tcl:27 +#: lib/index.tcl:28 msgid "Continue" msgstr "続行" @@ -1671,43 +1708,43 @@ msgstr "続行" msgid "Unlock Index" msgstr "インデックスのロック解除" -#: lib/index.tcl:287 +#: lib/index.tcl:289 #, tcl-format msgid "Unstaging %s from commit" msgstr "コミットから '%s' を降ろす" -#: lib/index.tcl:326 +#: lib/index.tcl:328 msgid "Ready to commit." msgstr "コミット準備完了" -#: lib/index.tcl:339 +#: lib/index.tcl:341 #, tcl-format msgid "Adding %s" msgstr "コミットに %s を加えています" -#: lib/index.tcl:396 +#: lib/index.tcl:398 #, tcl-format msgid "Revert changes in file %s?" msgstr "ファイル %s にした変更を元に戻しますか?" -#: lib/index.tcl:398 +#: lib/index.tcl:400 #, tcl-format msgid "Revert changes in these %i files?" msgstr "これら %i 個のファイルにした変更を元に戻しますか?" -#: lib/index.tcl:406 +#: lib/index.tcl:408 msgid "Any unstaged changes will be permanently lost by the revert." msgstr "変更を元に戻すとコミット予定していない変更は全て失われます。" -#: lib/index.tcl:409 +#: lib/index.tcl:411 msgid "Do Nothing" msgstr "何もしない" -#: lib/index.tcl:427 +#: lib/index.tcl:429 msgid "Reverting selected files" msgstr "選択されたファイルにした変更を元に戻します" -#: lib/index.tcl:431 +#: lib/index.tcl:433 #, tcl-format msgid "Reverting %s" msgstr "%s にした変更を元に戻します" @@ -1883,7 +1920,8 @@ msgstr "" #: lib/mergetool.tcl:45 #, tcl-format msgid "File %s seems to have unresolved conflicts, still stage?" -msgstr "ファイル %s には解決していない競合部分がまだあるようですが、いいですか?" +msgstr "" +"ファイル %s には解決していない競合部分がまだあるようですが、いいですか?" #: lib/mergetool.tcl:60 #, tcl-format @@ -2141,7 +2179,8 @@ msgstr "%s からフェッチしています" msgid "Do not know how to initialize repository at location '%s'." msgstr "リポジトリ '%s' を初期化できません。" -#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:71 +#: lib/remote_add.tcl:163 lib/transport.tcl:25 lib/transport.tcl:63 +#: lib/transport.tcl:81 #, tcl-format msgid "push %s" msgstr "%s をプッシュ" @@ -2159,11 +2198,11 @@ msgstr "遠隔でブランチ削除" msgid "From Repository" msgstr "元のリポジトリ" -#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:123 +#: lib/remote_branch_delete.tcl:50 lib/transport.tcl:134 msgid "Remote:" msgstr "リモート:" -#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:138 +#: lib/remote_branch_delete.tcl:66 lib/transport.tcl:149 msgid "Arbitrary Location:" msgstr "任意の位置:" @@ -2179,10 +2218,6 @@ msgstr "条件付で削除" msgid "Merged Into:" msgstr "マージ先:" -#: lib/remote_branch_delete.tcl:119 -msgid "Always (Do not perform merge checks)" -msgstr "無条件(マージ検査をしない)" - #: lib/remote_branch_delete.tcl:152 msgid "A branch is required for 'Merged Into'." msgstr "'マージ先' にはブランチが必要です。" @@ -2211,26 +2246,16 @@ msgstr "" msgid "Please select one or more branches to delete." msgstr "削除するブランチを選択して下さい。" -#: lib/remote_branch_delete.tcl:216 -msgid "" -"Recovering deleted branches is difficult.\n" -"\n" -"Delete the selected branches?" -msgstr "" -"削除したブランチを回復するのは困難です。\n" -"\n" -"選択したブランチを削除して良いですか?" - #: lib/remote_branch_delete.tcl:226 #, tcl-format msgid "Deleting branches from %s" msgstr "%s からブランチを削除しています。" -#: lib/remote_branch_delete.tcl:286 +#: lib/remote_branch_delete.tcl:292 msgid "No repository selected." msgstr "リポジトリが選択されていません。" -#: lib/remote_branch_delete.tcl:291 +#: lib/remote_branch_delete.tcl:297 #, tcl-format msgid "Scanning %s..." msgstr "%s をスキャンしています…" @@ -2251,11 +2276,11 @@ msgstr "前" msgid "Case-Sensitive" msgstr "大文字小文字を区別" -#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +#: lib/shortcut.tcl:21 lib/shortcut.tcl:62 msgid "Cannot write shortcut:" msgstr "ショートカットが書けません:" -#: lib/shortcut.tcl:136 +#: lib/shortcut.tcl:137 msgid "Cannot write icon:" msgstr "アイコンが書けません:" @@ -2501,30 +2526,30 @@ msgstr "%s へミラーしています" msgid "Pushing %s %s to %s" msgstr "%3$s へ %1$s %2$s をプッシュしています" -#: lib/transport.tcl:89 +#: lib/transport.tcl:100 msgid "Push Branches" msgstr "ブランチをプッシュ" -#: lib/transport.tcl:103 +#: lib/transport.tcl:114 msgid "Source Branches" msgstr "元のブランチ" -#: lib/transport.tcl:120 +#: lib/transport.tcl:131 msgid "Destination Repository" msgstr "送り先リポジトリ" -#: lib/transport.tcl:158 +#: lib/transport.tcl:169 msgid "Transfer Options" msgstr "通信オプション" -#: lib/transport.tcl:160 +#: lib/transport.tcl:171 msgid "Force overwrite existing branch (may discard changes)" msgstr "既存ブランチを上書き(変更を破棄する可能性があります)" -#: lib/transport.tcl:164 +#: lib/transport.tcl:175 msgid "Use thin pack (for slow network connections)" msgstr "Thin Pack を使う(遅いネットワーク接続)" -#: lib/transport.tcl:168 +#: lib/transport.tcl:179 msgid "Include tags" msgstr "タグを含める" diff --git a/git-gui/po/sv.po b/git-gui/po/sv.po index c1535f94e8..d8d73acf2c 100644 --- a/git-gui/po/sv.po +++ b/git-gui/po/sv.po @@ -8,41 +8,41 @@ msgid "" msgstr "" "Project-Id-Version: sv\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2008-12-08 08:31-0800\n" -"PO-Revision-Date: 2008-12-10 09:49+0100\n" +"POT-Creation-Date: 2010-01-26 15:47-0800\n" +"PO-Revision-Date: 2010-01-28 13:57+0100\n" "Last-Translator: Peter Krefting <peter@softwolves.pp.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" +"Content-Transfer-Encoding: 8bit" -#: git-gui.sh:41 git-gui.sh:737 git-gui.sh:751 git-gui.sh:764 git-gui.sh:847 -#: git-gui.sh:866 +#: git-gui.sh:41 git-gui.sh:793 git-gui.sh:807 git-gui.sh:820 git-gui.sh:903 +#: git-gui.sh:922 msgid "git-gui: fatal error" msgstr "git-gui: ödesdigert fel" -#: git-gui.sh:689 +#: git-gui.sh:743 #, tcl-format msgid "Invalid font specified in %s:" msgstr "Ogiltigt teckensnitt angivet i %s:" -#: git-gui.sh:723 +#: git-gui.sh:779 msgid "Main Font" msgstr "Huvudteckensnitt" -#: git-gui.sh:724 +#: git-gui.sh:780 msgid "Diff/Console Font" msgstr "Diff/konsolteckensnitt" -#: git-gui.sh:738 +#: git-gui.sh:794 msgid "Cannot find git in PATH." msgstr "Hittar inte git i PATH." -#: git-gui.sh:765 +#: git-gui.sh:821 msgid "Cannot parse Git version string:" msgstr "Kan inte tolka versionssträng från Git:" -#: git-gui.sh:783 +#: git-gui.sh:839 #, tcl-format msgid "" "Git version cannot be determined.\n" @@ -61,449 +61,478 @@ msgstr "" "\n" "Anta att \"%s\" är version 1.5.0?\n" -#: git-gui.sh:1062 +#: git-gui.sh:1128 msgid "Git directory not found:" msgstr "Git-katalogen hittades inte:" -#: git-gui.sh:1069 +#: git-gui.sh:1146 msgid "Cannot move to top of working directory:" msgstr "Kan inte gå till början på arbetskatalogen:" -#: git-gui.sh:1076 -msgid "Cannot use funny .git directory:" -msgstr "Kan inte använda underlig .git-katalog:" +#: git-gui.sh:1154 +msgid "Cannot use bare repository:" +msgstr "Kan inte använda naket arkiv:" -#: git-gui.sh:1081 +#: git-gui.sh:1162 msgid "No working directory" msgstr "Ingen arbetskatalog" -#: git-gui.sh:1247 lib/checkout_op.tcl:305 +#: git-gui.sh:1334 lib/checkout_op.tcl:306 msgid "Refreshing file status..." msgstr "Uppdaterar filstatus..." -#: git-gui.sh:1303 +#: git-gui.sh:1390 msgid "Scanning for modified files ..." msgstr "Söker efter ändrade filer..." -#: git-gui.sh:1367 +#: git-gui.sh:1454 msgid "Calling prepare-commit-msg hook..." msgstr "" "Anropar kroken för förberedelse av incheckningsmeddelande (prepare-commit-" "msg)..." -#: git-gui.sh:1384 +#: git-gui.sh:1471 msgid "Commit declined by prepare-commit-msg hook." msgstr "" "Incheckningen avvisades av kroken för förberedelse av incheckningsmeddelande " "(prepare-commit-msg)." -#: git-gui.sh:1542 lib/browser.tcl:246 +#: git-gui.sh:1629 lib/browser.tcl:246 msgid "Ready." msgstr "Klar." -#: git-gui.sh:1819 +#: git-gui.sh:1787 +#, tcl-format +msgid "Displaying only %s of %s files." +msgstr "Visar endast %s av %s filer." + +#: git-gui.sh:1913 msgid "Unmodified" msgstr "Oförändrade" -#: git-gui.sh:1821 +#: git-gui.sh:1915 msgid "Modified, not staged" msgstr "Förändrade, ej köade" -#: git-gui.sh:1822 git-gui.sh:1830 +#: git-gui.sh:1916 git-gui.sh:1924 msgid "Staged for commit" msgstr "Köade för incheckning" -#: git-gui.sh:1823 git-gui.sh:1831 +#: git-gui.sh:1917 git-gui.sh:1925 msgid "Portions staged for commit" msgstr "Delar köade för incheckning" -#: git-gui.sh:1824 git-gui.sh:1832 +#: git-gui.sh:1918 git-gui.sh:1926 msgid "Staged for commit, missing" msgstr "Köade för incheckning, saknade" -#: git-gui.sh:1826 +#: git-gui.sh:1920 msgid "File type changed, not staged" msgstr "Filtyp ändrad, ej köade" -#: git-gui.sh:1827 +#: git-gui.sh:1921 msgid "File type changed, staged" msgstr "Filtyp ändrad, köade" -#: git-gui.sh:1829 +#: git-gui.sh:1923 msgid "Untracked, not staged" msgstr "Ej spårade, ej köade" -#: git-gui.sh:1834 +#: git-gui.sh:1928 msgid "Missing" msgstr "Saknade" -#: git-gui.sh:1835 +#: git-gui.sh:1929 msgid "Staged for removal" msgstr "Köade för borttagning" -#: git-gui.sh:1836 +#: git-gui.sh:1930 msgid "Staged for removal, still present" msgstr "Köade för borttagning, fortfarande närvarande" -#: git-gui.sh:1838 git-gui.sh:1839 git-gui.sh:1840 git-gui.sh:1841 -#: git-gui.sh:1842 git-gui.sh:1843 +#: git-gui.sh:1932 git-gui.sh:1933 git-gui.sh:1934 git-gui.sh:1935 +#: git-gui.sh:1936 git-gui.sh:1937 msgid "Requires merge resolution" msgstr "Kräver konflikthantering efter sammanslagning" -#: git-gui.sh:1878 +#: git-gui.sh:1972 msgid "Starting gitk... please wait..." msgstr "Startar gitk... vänta..." -#: git-gui.sh:1887 +#: git-gui.sh:1984 msgid "Couldn't find gitk in PATH" -msgstr "Hittar inte gitk i PATH." +msgstr "Hittade inte gitk i PATH." + +#: git-gui.sh:2043 +msgid "Couldn't find git gui in PATH" +msgstr "Hittade inte git gui i PATH." -#: git-gui.sh:2280 lib/choose_repository.tcl:36 +#: git-gui.sh:2455 lib/choose_repository.tcl:36 msgid "Repository" msgstr "Arkiv" -#: git-gui.sh:2281 +#: git-gui.sh:2456 msgid "Edit" msgstr "Redigera" -#: git-gui.sh:2283 lib/choose_rev.tcl:561 +#: git-gui.sh:2458 lib/choose_rev.tcl:561 msgid "Branch" msgstr "Gren" -#: git-gui.sh:2286 lib/choose_rev.tcl:548 +#: git-gui.sh:2461 lib/choose_rev.tcl:548 msgid "Commit@@noun" msgstr "Incheckning" -#: git-gui.sh:2289 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 +#: git-gui.sh:2464 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168 msgid "Merge" msgstr "Slå ihop" -#: git-gui.sh:2290 lib/choose_rev.tcl:557 +#: git-gui.sh:2465 lib/choose_rev.tcl:557 msgid "Remote" msgstr "Fjärrarkiv" -#: git-gui.sh:2293 +#: git-gui.sh:2468 msgid "Tools" msgstr "Verktyg" -#: git-gui.sh:2302 +#: git-gui.sh:2477 msgid "Explore Working Copy" msgstr "Utforska arbetskopia" -#: git-gui.sh:2307 +#: git-gui.sh:2483 msgid "Browse Current Branch's Files" msgstr "Bläddra i grenens filer" -#: git-gui.sh:2311 +#: git-gui.sh:2487 msgid "Browse Branch Files..." msgstr "Bläddra filer på gren..." -#: git-gui.sh:2316 +#: git-gui.sh:2492 msgid "Visualize Current Branch's History" msgstr "Visualisera grenens historik" -#: git-gui.sh:2320 +#: git-gui.sh:2496 msgid "Visualize All Branch History" msgstr "Visualisera alla grenars historik" -#: git-gui.sh:2327 +#: git-gui.sh:2503 #, tcl-format msgid "Browse %s's Files" msgstr "Bläddra i filer för %s" -#: git-gui.sh:2329 +#: git-gui.sh:2505 #, tcl-format msgid "Visualize %s's History" msgstr "Visualisera historik för %s" -#: git-gui.sh:2334 lib/database.tcl:27 lib/database.tcl:67 +#: git-gui.sh:2510 lib/database.tcl:27 lib/database.tcl:67 msgid "Database Statistics" msgstr "Databasstatistik" -#: git-gui.sh:2337 lib/database.tcl:34 +#: git-gui.sh:2513 lib/database.tcl:34 msgid "Compress Database" msgstr "Komprimera databas" -#: git-gui.sh:2340 +#: git-gui.sh:2516 msgid "Verify Database" msgstr "Verifiera databas" -#: git-gui.sh:2347 git-gui.sh:2351 git-gui.sh:2355 lib/shortcut.tcl:7 -#: lib/shortcut.tcl:39 lib/shortcut.tcl:71 +#: git-gui.sh:2523 git-gui.sh:2527 git-gui.sh:2531 lib/shortcut.tcl:8 +#: lib/shortcut.tcl:40 lib/shortcut.tcl:72 msgid "Create Desktop Icon" msgstr "Skapa skrivbordsikon" -#: git-gui.sh:2363 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 +#: git-gui.sh:2539 lib/choose_repository.tcl:183 lib/choose_repository.tcl:191 msgid "Quit" msgstr "Avsluta" -#: git-gui.sh:2371 +#: git-gui.sh:2547 msgid "Undo" msgstr "Ångra" -#: git-gui.sh:2374 +#: git-gui.sh:2550 msgid "Redo" msgstr "Gör om" -#: git-gui.sh:2378 git-gui.sh:2937 +#: git-gui.sh:2554 git-gui.sh:3109 msgid "Cut" msgstr "Klipp ut" -#: git-gui.sh:2381 git-gui.sh:2940 git-gui.sh:3014 git-gui.sh:3096 +#: git-gui.sh:2557 git-gui.sh:3112 git-gui.sh:3186 git-gui.sh:3259 #: lib/console.tcl:69 msgid "Copy" msgstr "Kopiera" -#: git-gui.sh:2384 git-gui.sh:2943 +#: git-gui.sh:2560 git-gui.sh:3115 msgid "Paste" msgstr "Klistra in" -#: git-gui.sh:2387 git-gui.sh:2946 lib/branch_delete.tcl:26 +#: git-gui.sh:2563 git-gui.sh:3118 lib/branch_delete.tcl:26 #: lib/remote_branch_delete.tcl:38 msgid "Delete" msgstr "Ta bort" -#: git-gui.sh:2391 git-gui.sh:2950 git-gui.sh:3100 lib/console.tcl:71 +#: git-gui.sh:2567 git-gui.sh:3122 git-gui.sh:3263 lib/console.tcl:71 msgid "Select All" msgstr "Markera alla" -#: git-gui.sh:2400 +#: git-gui.sh:2576 msgid "Create..." msgstr "Skapa..." -#: git-gui.sh:2406 +#: git-gui.sh:2582 msgid "Checkout..." msgstr "Checka ut..." -#: git-gui.sh:2412 +#: git-gui.sh:2588 msgid "Rename..." msgstr "Byt namn..." -#: git-gui.sh:2417 +#: git-gui.sh:2593 msgid "Delete..." msgstr "Ta bort..." -#: git-gui.sh:2422 +#: git-gui.sh:2598 msgid "Reset..." msgstr "Återställ..." -#: git-gui.sh:2432 +#: git-gui.sh:2608 msgid "Done" msgstr "Färdig" -#: git-gui.sh:2434 +#: git-gui.sh:2610 msgid "Commit@@verb" msgstr "Checka in" -#: git-gui.sh:2443 git-gui.sh:2878 +#: git-gui.sh:2619 git-gui.sh:3050 msgid "New Commit" msgstr "Ny incheckning" -#: git-gui.sh:2451 git-gui.sh:2885 +#: git-gui.sh:2627 git-gui.sh:3057 msgid "Amend Last Commit" msgstr "Lägg till föregående incheckning" -#: git-gui.sh:2461 git-gui.sh:2839 lib/remote_branch_delete.tcl:99 +#: git-gui.sh:2637 git-gui.sh:3011 lib/remote_branch_delete.tcl:99 msgid "Rescan" msgstr "Sök på nytt" -#: git-gui.sh:2467 +#: git-gui.sh:2643 msgid "Stage To Commit" msgstr "Köa för incheckning" -#: git-gui.sh:2473 +#: git-gui.sh:2649 msgid "Stage Changed Files To Commit" msgstr "Köa ändrade filer för incheckning" -#: git-gui.sh:2479 +#: git-gui.sh:2655 msgid "Unstage From Commit" msgstr "Ta bort från incheckningskö" -#: git-gui.sh:2484 lib/index.tcl:410 +#: git-gui.sh:2661 lib/index.tcl:412 msgid "Revert Changes" msgstr "Återställ ändringar" -#: git-gui.sh:2491 git-gui.sh:3083 +#: git-gui.sh:2669 git-gui.sh:3310 git-gui.sh:3341 msgid "Show Less Context" msgstr "Visa mindre sammanhang" -#: git-gui.sh:2495 git-gui.sh:3087 +#: git-gui.sh:2673 git-gui.sh:3314 git-gui.sh:3345 msgid "Show More Context" msgstr "Visa mer sammanhang" -#: git-gui.sh:2502 git-gui.sh:2852 git-gui.sh:2961 +#: git-gui.sh:2680 git-gui.sh:3024 git-gui.sh:3133 msgid "Sign Off" msgstr "Skriv under" -#: git-gui.sh:2518 +#: git-gui.sh:2696 msgid "Local Merge..." msgstr "Lokal sammanslagning..." -#: git-gui.sh:2523 +#: git-gui.sh:2701 msgid "Abort Merge..." msgstr "Avbryt sammanslagning..." -#: git-gui.sh:2535 git-gui.sh:2575 +#: git-gui.sh:2713 git-gui.sh:2741 msgid "Add..." msgstr "Lägg till..." -#: git-gui.sh:2539 +#: git-gui.sh:2717 msgid "Push..." msgstr "Sänd..." -#: git-gui.sh:2543 +#: git-gui.sh:2721 msgid "Delete Branch..." msgstr "Ta bort gren..." -#: git-gui.sh:2553 git-gui.sh:2589 lib/about.tcl:14 -#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 -#, tcl-format -msgid "About %s" -msgstr "Om %s" - -#: git-gui.sh:2557 -msgid "Preferences..." -msgstr "Inställningar..." - -#: git-gui.sh:2565 git-gui.sh:3129 +#: git-gui.sh:2731 git-gui.sh:3292 msgid "Options..." msgstr "Alternativ..." -#: git-gui.sh:2576 +#: git-gui.sh:2742 msgid "Remove..." msgstr "Ta bort..." -#: git-gui.sh:2585 lib/choose_repository.tcl:50 +#: git-gui.sh:2751 lib/choose_repository.tcl:50 msgid "Help" msgstr "Hjälp" -#: git-gui.sh:2611 +#: git-gui.sh:2755 git-gui.sh:2759 lib/about.tcl:14 +#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:53 +#, tcl-format +msgid "About %s" +msgstr "Om %s" + +#: git-gui.sh:2783 msgid "Online Documentation" msgstr "Webbdokumentation" -#: git-gui.sh:2614 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 +#: git-gui.sh:2786 lib/choose_repository.tcl:47 lib/choose_repository.tcl:56 msgid "Show SSH Key" msgstr "Visa SSH-nyckel" -#: git-gui.sh:2721 +#: git-gui.sh:2893 #, tcl-format msgid "fatal: cannot stat path %s: No such file or directory" msgstr "" "ödesdigert: kunde inte ta status på sökvägen %s: Fil eller katalog saknas" -#: git-gui.sh:2754 +#: git-gui.sh:2926 msgid "Current Branch:" msgstr "Aktuell gren:" -#: git-gui.sh:2775 +#: git-gui.sh:2947 msgid "Staged Changes (Will Commit)" msgstr "Köade ändringar (kommer att checkas in)" -#: git-gui.sh:2795 +#: git-gui.sh:2967 msgid "Unstaged Changes" msgstr "Oköade ändringar" -#: git-gui.sh:2845 +#: git-gui.sh:3017 msgid "Stage Changed" msgstr "Köa ändrade" -#: git-gui.sh:2864 lib/transport.tcl:104 lib/transport.tcl:193 +#: git-gui.sh:3036 lib/transport.tcl:104 lib/transport.tcl:193 msgid "Push" msgstr "Sänd" -#: git-gui.sh:2899 +#: git-gui.sh:3071 msgid "Initial Commit Message:" msgstr "Inledande incheckningsmeddelande:" -#: git-gui.sh:2900 +#: git-gui.sh:3072 msgid "Amended Commit Message:" msgstr "Utökat incheckningsmeddelande:" -#: git-gui.sh:2901 +#: git-gui.sh:3073 msgid "Amended Initial Commit Message:" msgstr "Utökat inledande incheckningsmeddelande:" -#: git-gui.sh:2902 +#: git-gui.sh:3074 msgid "Amended Merge Commit Message:" msgstr "Utökat incheckningsmeddelande för sammanslagning:" -#: git-gui.sh:2903 +#: git-gui.sh:3075 msgid "Merge Commit Message:" msgstr "Incheckningsmeddelande för sammanslagning:" -#: git-gui.sh:2904 +#: git-gui.sh:3076 msgid "Commit Message:" msgstr "Incheckningsmeddelande:" -#: git-gui.sh:2953 git-gui.sh:3104 lib/console.tcl:73 +#: git-gui.sh:3125 git-gui.sh:3267 lib/console.tcl:73 msgid "Copy All" msgstr "Kopiera alla" -#: git-gui.sh:2977 lib/blame.tcl:104 +#: git-gui.sh:3149 lib/blame.tcl:104 msgid "File:" msgstr "Fil:" -#: git-gui.sh:3092 +#: git-gui.sh:3255 msgid "Refresh" msgstr "Uppdatera" -#: git-gui.sh:3113 +#: git-gui.sh:3276 msgid "Decrease Font Size" msgstr "Minska teckensnittsstorlek" -#: git-gui.sh:3117 +#: git-gui.sh:3280 msgid "Increase Font Size" msgstr "Öka teckensnittsstorlek" -#: git-gui.sh:3125 lib/blame.tcl:281 +#: git-gui.sh:3288 lib/blame.tcl:281 msgid "Encoding" msgstr "Teckenkodning" -#: git-gui.sh:3136 +#: git-gui.sh:3299 msgid "Apply/Reverse Hunk" msgstr "Använd/återställ del" -#: git-gui.sh:3141 +#: git-gui.sh:3304 msgid "Apply/Reverse Line" msgstr "Använd/återställ rad" -#: git-gui.sh:3151 +#: git-gui.sh:3323 msgid "Run Merge Tool" msgstr "Starta verktyg för sammanslagning" -#: git-gui.sh:3156 +#: git-gui.sh:3328 msgid "Use Remote Version" msgstr "Använd versionen från fjärrarkivet" -#: git-gui.sh:3160 +#: git-gui.sh:3332 msgid "Use Local Version" msgstr "Använd lokala versionen" -#: git-gui.sh:3164 +#: git-gui.sh:3336 msgid "Revert To Base" msgstr "Återställ till basversionen" -#: git-gui.sh:3183 +#: git-gui.sh:3354 +msgid "Visualize These Changes In The Submodule" +msgstr "Visualisera ändringarna i undermodulen" + +#: git-gui.sh:3358 +msgid "Visualize Current Branch History In The Submodule" +msgstr "Visualisera grenens historik i undermodulen" + +#: git-gui.sh:3362 +msgid "Visualize All Branch History In The Submodule" +msgstr "Visualisera alla grenars historik i undermodulen" + +#: git-gui.sh:3367 +msgid "Start git gui In The Submodule" +msgstr "Starta git gui i undermodulen" + +#: git-gui.sh:3389 msgid "Unstage Hunk From Commit" msgstr "Ta bort del ur incheckningskö" -#: git-gui.sh:3184 +#: git-gui.sh:3391 +msgid "Unstage Lines From Commit" +msgstr "Ta bort rader ur incheckningskö" + +#: git-gui.sh:3393 msgid "Unstage Line From Commit" msgstr "Ta bort rad ur incheckningskö" -#: git-gui.sh:3186 +#: git-gui.sh:3396 msgid "Stage Hunk For Commit" msgstr "Ställ del i incheckningskö" -#: git-gui.sh:3187 +#: git-gui.sh:3398 +msgid "Stage Lines For Commit" +msgstr "Ställ rader i incheckningskö" + +#: git-gui.sh:3400 msgid "Stage Line For Commit" msgstr "Ställ rad i incheckningskö" -#: git-gui.sh:3210 +#: git-gui.sh:3424 msgid "Initializing..." msgstr "Initierar..." -#: git-gui.sh:3315 +#: git-gui.sh:3541 #, tcl-format msgid "" "Possible environment issues exist.\n" @@ -520,7 +549,7 @@ msgstr "" "av %s:\n" "\n" -#: git-gui.sh:3345 +#: git-gui.sh:3570 msgid "" "\n" "This is due to a known issue with the\n" @@ -530,7 +559,7 @@ msgstr "" "Detta beror på ett känt problem med\n" "Tcl-binären som följer med Cygwin." -#: git-gui.sh:3350 +#: git-gui.sh:3575 #, tcl-format msgid "" "\n" @@ -640,7 +669,7 @@ msgstr "Hittar inte föräldraincheckning:" msgid "Unable to display parent" msgstr "Kan inte visa förälder" -#: lib/blame.tcl:1091 lib/diff.tcl:297 +#: lib/blame.tcl:1091 lib/diff.tcl:320 msgid "Error loading diff:" msgstr "Fel vid inläsning av differens:" @@ -666,7 +695,7 @@ msgstr "Checka ut" #: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35 #: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282 -#: lib/checkout_op.tcl:544 lib/choose_font.tcl:43 lib/merge.tcl:172 +#: lib/checkout_op.tcl:579 lib/choose_font.tcl:43 lib/merge.tcl:172 #: lib/option.tcl:125 lib/remote_add.tcl:32 lib/remote_branch_delete.tcl:42 #: lib/tools_dlg.tcl:40 lib/tools_dlg.tcl:204 lib/tools_dlg.tcl:352 #: lib/transport.tcl:108 @@ -697,7 +726,7 @@ msgstr "Skapa gren" msgid "Create New Branch" msgstr "Skapa ny gren" -#: lib/branch_create.tcl:31 lib/choose_repository.tcl:377 +#: lib/branch_create.tcl:31 lib/choose_repository.tcl:381 msgid "Create" msgstr "Skapa" @@ -729,7 +758,7 @@ msgstr "Nej" msgid "Fast Forward Only" msgstr "Endast snabbspolning" -#: lib/branch_create.tcl:85 lib/checkout_op.tcl:536 +#: lib/branch_create.tcl:85 lib/checkout_op.tcl:571 msgid "Reset" msgstr "Återställ" @@ -771,15 +800,25 @@ msgstr "Lokala grenar" msgid "Delete Only If Merged Into" msgstr "Ta bara bort om sammanslagen med" -#: lib/branch_delete.tcl:54 -msgid "Always (Do not perform merge test.)" -msgstr "Alltid (utför inte sammanslagningstest)." +#: lib/branch_delete.tcl:54 lib/remote_branch_delete.tcl:119 +msgid "Always (Do not perform merge checks)" +msgstr "Alltid (utför inte sammanslagningstest)" #: lib/branch_delete.tcl:103 #, tcl-format msgid "The following branches are not completely merged into %s:" msgstr "Följande grenar är inte till fullo sammanslagna med %s:" +#: lib/branch_delete.tcl:115 lib/remote_branch_delete.tcl:217 +msgid "" +"Recovering deleted branches is difficult.\n" +"\n" +"Delete the selected branches?" +msgstr "" +"Det kan vara svårt att återställa borttagna grenar.\n" +"\n" +"Ta bort de valda grenarna?" + #: lib/branch_delete.tcl:141 #, tcl-format msgid "" @@ -809,7 +848,7 @@ msgstr "Nytt namn:" msgid "Please select a branch to rename." msgstr "Välj en gren att byta namn på." -#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:201 +#: lib/branch_rename.tcl:96 lib/checkout_op.tcl:202 #, tcl-format msgid "Branch '%s' already exists." msgstr "Grenen \"%s\" finns redan." @@ -840,38 +879,38 @@ msgstr "[Upp till förälder]" msgid "Browse Branch Files" msgstr "Bläddra filer på grenen" -#: lib/browser.tcl:278 lib/choose_repository.tcl:394 -#: lib/choose_repository.tcl:480 lib/choose_repository.tcl:491 -#: lib/choose_repository.tcl:995 +#: lib/browser.tcl:278 lib/choose_repository.tcl:398 +#: lib/choose_repository.tcl:486 lib/choose_repository.tcl:497 +#: lib/choose_repository.tcl:1028 msgid "Browse" msgstr "Bläddra" -#: lib/checkout_op.tcl:84 +#: lib/checkout_op.tcl:85 #, tcl-format msgid "Fetching %s from %s" msgstr "Hämtar %s från %s" -#: lib/checkout_op.tcl:132 +#: lib/checkout_op.tcl:133 #, tcl-format msgid "fatal: Cannot resolve %s" msgstr "ödesdigert: Kunde inte slå upp %s" -#: lib/checkout_op.tcl:145 lib/console.tcl:81 lib/database.tcl:31 +#: lib/checkout_op.tcl:146 lib/console.tcl:81 lib/database.tcl:31 #: lib/sshkey.tcl:53 msgid "Close" msgstr "Stäng" -#: lib/checkout_op.tcl:174 +#: lib/checkout_op.tcl:175 #, tcl-format msgid "Branch '%s' does not exist." msgstr "Grenen \"%s\" finns inte." -#: lib/checkout_op.tcl:193 +#: lib/checkout_op.tcl:194 #, tcl-format msgid "Failed to configure simplified git-pull for '%s'." msgstr "Kunde inte konfigurera förenklad git-pull för '%s'." -#: lib/checkout_op.tcl:228 +#: lib/checkout_op.tcl:229 #, tcl-format msgid "" "Branch '%s' already exists.\n" @@ -884,21 +923,21 @@ msgstr "" "Den kan inte snabbspolas till %s.\n" "En sammanslagning krävs." -#: lib/checkout_op.tcl:242 +#: lib/checkout_op.tcl:243 #, tcl-format msgid "Merge strategy '%s' not supported." msgstr "Sammanslagningsstrategin \"%s\" stöds inte." -#: lib/checkout_op.tcl:261 +#: lib/checkout_op.tcl:262 #, tcl-format msgid "Failed to update '%s'." msgstr "Misslyckades med att uppdatera \"%s\"." -#: lib/checkout_op.tcl:273 +#: lib/checkout_op.tcl:274 msgid "Staging area (index) is already locked." msgstr "Köområdet (index) är redan låst." -#: lib/checkout_op.tcl:288 +#: lib/checkout_op.tcl:289 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -914,30 +953,30 @@ msgstr "" "\n" "Sökningen kommer att startas automatiskt nu.\n" -#: lib/checkout_op.tcl:344 +#: lib/checkout_op.tcl:345 #, tcl-format msgid "Updating working directory to '%s'..." msgstr "Uppdaterar arbetskatalogen till \"%s\"..." -#: lib/checkout_op.tcl:345 +#: lib/checkout_op.tcl:346 msgid "files checked out" msgstr "filer utcheckade" -#: lib/checkout_op.tcl:375 +#: lib/checkout_op.tcl:376 #, tcl-format msgid "Aborted checkout of '%s' (file level merging is required)." msgstr "Avbryter utcheckning av \"%s\" (sammanslagning på filnivå krävs)." -#: lib/checkout_op.tcl:376 +#: lib/checkout_op.tcl:377 msgid "File level merge required." msgstr "Sammanslagning på filnivå krävs." -#: lib/checkout_op.tcl:380 +#: lib/checkout_op.tcl:381 #, tcl-format msgid "Staying on branch '%s'." msgstr "Stannar på grenen \"%s\"." -#: lib/checkout_op.tcl:451 +#: lib/checkout_op.tcl:452 msgid "" "You are no longer on a local branch.\n" "\n" @@ -949,31 +988,31 @@ msgstr "" "Om du ville vara på en gren skapar du en nu, baserad på \"Denna frånkopplade " "utcheckning\"." -#: lib/checkout_op.tcl:468 lib/checkout_op.tcl:472 +#: lib/checkout_op.tcl:503 lib/checkout_op.tcl:507 #, tcl-format msgid "Checked out '%s'." msgstr "Checkade ut \"%s\"." -#: lib/checkout_op.tcl:500 +#: lib/checkout_op.tcl:535 #, tcl-format msgid "Resetting '%s' to '%s' will lose the following commits:" msgstr "" "Om du återställer \"%s\" till \"%s\" går följande incheckningar förlorade:" -#: lib/checkout_op.tcl:522 +#: lib/checkout_op.tcl:557 msgid "Recovering lost commits may not be easy." msgstr "Det kanske inte är så enkelt att återskapa förlorade incheckningar." -#: lib/checkout_op.tcl:527 +#: lib/checkout_op.tcl:562 #, tcl-format msgid "Reset '%s'?" msgstr "Återställa \"%s\"?" -#: lib/checkout_op.tcl:532 lib/merge.tcl:164 lib/tools_dlg.tcl:343 +#: lib/checkout_op.tcl:567 lib/merge.tcl:164 lib/tools_dlg.tcl:343 msgid "Visualize" msgstr "Visualisera" -#: lib/checkout_op.tcl:600 +#: lib/checkout_op.tcl:635 #, tcl-format msgid "" "Failed to set current branch.\n" @@ -1018,7 +1057,7 @@ msgstr "" msgid "Git Gui" msgstr "Git Gui" -#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:382 +#: lib/choose_repository.tcl:87 lib/choose_repository.tcl:386 msgid "Create New Repository" msgstr "Skapa nytt arkiv" @@ -1026,7 +1065,7 @@ msgstr "Skapa nytt arkiv" msgid "New..." msgstr "Nytt..." -#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:465 +#: lib/choose_repository.tcl:100 lib/choose_repository.tcl:471 msgid "Clone Existing Repository" msgstr "Klona befintligt arkiv" @@ -1034,7 +1073,7 @@ msgstr "Klona befintligt arkiv" msgid "Clone..." msgstr "Klona..." -#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:983 +#: lib/choose_repository.tcl:113 lib/choose_repository.tcl:1016 msgid "Open Existing Repository" msgstr "Öppna befintligt arkiv" @@ -1050,193 +1089,193 @@ msgstr "Senaste arkiven" msgid "Open Recent Repository:" msgstr "Öppna tidigare arkiv:" -#: lib/choose_repository.tcl:302 lib/choose_repository.tcl:309 -#: lib/choose_repository.tcl:316 +#: lib/choose_repository.tcl:306 lib/choose_repository.tcl:313 +#: lib/choose_repository.tcl:320 #, tcl-format msgid "Failed to create repository %s:" msgstr "Kunde inte skapa arkivet %s:" -#: lib/choose_repository.tcl:387 +#: lib/choose_repository.tcl:391 msgid "Directory:" msgstr "Katalog:" -#: lib/choose_repository.tcl:417 lib/choose_repository.tcl:544 -#: lib/choose_repository.tcl:1017 +#: lib/choose_repository.tcl:423 lib/choose_repository.tcl:550 +#: lib/choose_repository.tcl:1052 msgid "Git Repository" msgstr "Gitarkiv" -#: lib/choose_repository.tcl:442 +#: lib/choose_repository.tcl:448 #, tcl-format msgid "Directory %s already exists." msgstr "Katalogen %s finns redan." -#: lib/choose_repository.tcl:446 +#: lib/choose_repository.tcl:452 #, tcl-format msgid "File %s already exists." msgstr "Filen %s finns redan." -#: lib/choose_repository.tcl:460 +#: lib/choose_repository.tcl:466 msgid "Clone" msgstr "Klona" -#: lib/choose_repository.tcl:473 +#: lib/choose_repository.tcl:479 msgid "Source Location:" msgstr "Plats för källkod:" -#: lib/choose_repository.tcl:484 +#: lib/choose_repository.tcl:490 msgid "Target Directory:" msgstr "Målkatalog:" -#: lib/choose_repository.tcl:496 +#: lib/choose_repository.tcl:502 msgid "Clone Type:" msgstr "Typ av klon:" -#: lib/choose_repository.tcl:502 +#: lib/choose_repository.tcl:508 msgid "Standard (Fast, Semi-Redundant, Hardlinks)" msgstr "Standard (snabb, semiredundant, hårda länkar)" -#: lib/choose_repository.tcl:508 +#: lib/choose_repository.tcl:514 msgid "Full Copy (Slower, Redundant Backup)" msgstr "Full kopia (långsammare, redundant säkerhetskopia)" -#: lib/choose_repository.tcl:514 +#: lib/choose_repository.tcl:520 msgid "Shared (Fastest, Not Recommended, No Backup)" msgstr "Delad (snabbast, rekommenderas ej, ingen säkerhetskopia)" -#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597 -#: lib/choose_repository.tcl:743 lib/choose_repository.tcl:813 -#: lib/choose_repository.tcl:1023 lib/choose_repository.tcl:1031 +#: lib/choose_repository.tcl:556 lib/choose_repository.tcl:603 +#: lib/choose_repository.tcl:749 lib/choose_repository.tcl:819 +#: lib/choose_repository.tcl:1058 lib/choose_repository.tcl:1066 #, tcl-format msgid "Not a Git repository: %s" msgstr "Inte ett Gitarkiv: %s" -#: lib/choose_repository.tcl:586 +#: lib/choose_repository.tcl:592 msgid "Standard only available for local repository." msgstr "Standard är endast tillgängligt för lokala arkiv." -#: lib/choose_repository.tcl:590 +#: lib/choose_repository.tcl:596 msgid "Shared only available for local repository." msgstr "Delat är endast tillgängligt för lokala arkiv." -#: lib/choose_repository.tcl:611 +#: lib/choose_repository.tcl:617 #, tcl-format msgid "Location %s already exists." msgstr "Platsen %s finns redan." -#: lib/choose_repository.tcl:622 +#: lib/choose_repository.tcl:628 msgid "Failed to configure origin" msgstr "Kunde inte konfigurera ursprung" -#: lib/choose_repository.tcl:634 +#: lib/choose_repository.tcl:640 msgid "Counting objects" msgstr "Räknar objekt" -#: lib/choose_repository.tcl:635 +#: lib/choose_repository.tcl:641 msgid "buckets" msgstr "hinkar" -#: lib/choose_repository.tcl:659 +#: lib/choose_repository.tcl:665 #, tcl-format msgid "Unable to copy objects/info/alternates: %s" msgstr "Kunde inte kopiera objekt/info/alternativ: %s" -#: lib/choose_repository.tcl:695 +#: lib/choose_repository.tcl:701 #, tcl-format msgid "Nothing to clone from %s." msgstr "Ingenting att klona från %s." -#: lib/choose_repository.tcl:697 lib/choose_repository.tcl:911 -#: lib/choose_repository.tcl:923 +#: lib/choose_repository.tcl:703 lib/choose_repository.tcl:917 +#: lib/choose_repository.tcl:929 msgid "The 'master' branch has not been initialized." msgstr "Grenen \"master\" har inte initierats." -#: lib/choose_repository.tcl:710 +#: lib/choose_repository.tcl:716 msgid "Hardlinks are unavailable. Falling back to copying." msgstr "Hårda länkar är inte tillgängliga. Faller tillbaka på kopiering." -#: lib/choose_repository.tcl:722 +#: lib/choose_repository.tcl:728 #, tcl-format msgid "Cloning from %s" msgstr "Klonar från %s" -#: lib/choose_repository.tcl:753 +#: lib/choose_repository.tcl:759 msgid "Copying objects" msgstr "Kopierar objekt" -#: lib/choose_repository.tcl:754 +#: lib/choose_repository.tcl:760 msgid "KiB" msgstr "KiB" -#: lib/choose_repository.tcl:778 +#: lib/choose_repository.tcl:784 #, tcl-format msgid "Unable to copy object: %s" msgstr "Kunde inte kopiera objekt: %s" -#: lib/choose_repository.tcl:788 +#: lib/choose_repository.tcl:794 msgid "Linking objects" msgstr "Länkar objekt" -#: lib/choose_repository.tcl:789 +#: lib/choose_repository.tcl:795 msgid "objects" msgstr "objekt" -#: lib/choose_repository.tcl:797 +#: lib/choose_repository.tcl:803 #, tcl-format msgid "Unable to hardlink object: %s" msgstr "Kunde inte hårdlänka objekt: %s" -#: lib/choose_repository.tcl:852 +#: lib/choose_repository.tcl:858 msgid "Cannot fetch branches and objects. See console output for details." msgstr "Kunde inte hämta grenar och objekt. Se konsolutdata för detaljer." -#: lib/choose_repository.tcl:863 +#: lib/choose_repository.tcl:869 msgid "Cannot fetch tags. See console output for details." msgstr "Kunde inte hämta taggar. Se konsolutdata för detaljer." -#: lib/choose_repository.tcl:887 +#: lib/choose_repository.tcl:893 msgid "Cannot determine HEAD. See console output for details." msgstr "Kunde inte avgöra HEAD. Se konsolutdata för detaljer." -#: lib/choose_repository.tcl:896 +#: lib/choose_repository.tcl:902 #, tcl-format msgid "Unable to cleanup %s" msgstr "Kunde inte städa upp %s" -#: lib/choose_repository.tcl:902 +#: lib/choose_repository.tcl:908 msgid "Clone failed." msgstr "Kloning misslyckades." -#: lib/choose_repository.tcl:909 +#: lib/choose_repository.tcl:915 msgid "No default branch obtained." msgstr "Hämtade ingen standardgren." -#: lib/choose_repository.tcl:920 +#: lib/choose_repository.tcl:926 #, tcl-format msgid "Cannot resolve %s as a commit." msgstr "Kunde inte slå upp %s till någon incheckning." -#: lib/choose_repository.tcl:932 +#: lib/choose_repository.tcl:938 msgid "Creating working directory" msgstr "Skapar arbetskatalog" -#: lib/choose_repository.tcl:933 lib/index.tcl:65 lib/index.tcl:128 -#: lib/index.tcl:196 +#: lib/choose_repository.tcl:939 lib/index.tcl:67 lib/index.tcl:130 +#: lib/index.tcl:198 msgid "files" msgstr "filer" -#: lib/choose_repository.tcl:962 +#: lib/choose_repository.tcl:968 msgid "Initial file checkout failed." msgstr "Inledande filutcheckning misslyckades." -#: lib/choose_repository.tcl:978 +#: lib/choose_repository.tcl:1011 msgid "Open" msgstr "Öppna" -#: lib/choose_repository.tcl:988 +#: lib/choose_repository.tcl:1021 msgid "Repository:" msgstr "Arkiv:" -#: lib/choose_repository.tcl:1037 +#: lib/choose_repository.tcl:1072 #, tcl-format msgid "Failed to open repository %s:" msgstr "Kunde inte öppna arkivet %s:" @@ -1320,7 +1359,12 @@ msgstr "Kunde inte hämta din identitet:" msgid "Invalid GIT_COMMITTER_IDENT:" msgstr "Felaktig GIT_COMMITTER_IDENT:" -#: lib/commit.tcl:132 +#: lib/commit.tcl:129 +#, tcl-format +msgid "warning: Tcl does not support encoding '%s'." +msgstr "varning: Tcl stöder inte teckenkodningen \"%s\"." + +#: lib/commit.tcl:149 msgid "" "Last scanned state does not match repository state.\n" "\n" @@ -1336,7 +1380,7 @@ msgstr "" "\n" "Sökningen kommer att startas automatiskt nu.\n" -#: lib/commit.tcl:155 +#: lib/commit.tcl:172 #, tcl-format msgid "" "Unmerged files cannot be committed.\n" @@ -1349,7 +1393,7 @@ msgstr "" "Filen %s har sammanslagningskonflikter. Du måste lösa dem och köa filen " "innan du checkar in den.\n" -#: lib/commit.tcl:163 +#: lib/commit.tcl:180 #, tcl-format msgid "" "Unknown file state %s detected.\n" @@ -1360,7 +1404,7 @@ msgstr "" "\n" "Filen %s kan inte checkas in av programmet.\n" -#: lib/commit.tcl:171 +#: lib/commit.tcl:188 msgid "" "No changes to commit.\n" "\n" @@ -1370,7 +1414,7 @@ msgstr "" "\n" "Du måste köa åtminstone en fil innan du kan checka in.\n" -#: lib/commit.tcl:186 +#: lib/commit.tcl:203 msgid "" "Please supply a commit message.\n" "\n" @@ -1388,45 +1432,40 @@ msgstr "" "- Andra raden: Tom\n" "- Följande rader: Beskriv varför det här är en bra ändring.\n" -#: lib/commit.tcl:210 -#, tcl-format -msgid "warning: Tcl does not support encoding '%s'." -msgstr "varning: Tcl stöder inte teckenkodningen \"%s\"." - -#: lib/commit.tcl:226 +#: lib/commit.tcl:234 msgid "Calling pre-commit hook..." msgstr "Anropar kroken före incheckning (pre-commit)..." -#: lib/commit.tcl:241 +#: lib/commit.tcl:249 msgid "Commit declined by pre-commit hook." msgstr "Incheckningen avvisades av kroken före incheckning (pre-commit)." -#: lib/commit.tcl:264 +#: lib/commit.tcl:272 msgid "Calling commit-msg hook..." msgstr "Anropar kroken för incheckningsmeddelande (commit-msg)..." -#: lib/commit.tcl:279 +#: lib/commit.tcl:287 msgid "Commit declined by commit-msg hook." msgstr "Incheckning avvisad av kroken för incheckningsmeddelande (commit-msg)." -#: lib/commit.tcl:292 +#: lib/commit.tcl:300 msgid "Committing changes..." msgstr "Checkar in ändringar..." -#: lib/commit.tcl:308 +#: lib/commit.tcl:316 msgid "write-tree failed:" msgstr "write-tree misslyckades:" -#: lib/commit.tcl:309 lib/commit.tcl:353 lib/commit.tcl:373 +#: lib/commit.tcl:317 lib/commit.tcl:361 lib/commit.tcl:382 msgid "Commit failed." msgstr "Incheckningen misslyckades." -#: lib/commit.tcl:326 +#: lib/commit.tcl:334 #, tcl-format msgid "Commit %s appears to be corrupt" msgstr "Incheckningen %s verkar vara trasig" -#: lib/commit.tcl:331 +#: lib/commit.tcl:339 msgid "" "No changes to commit.\n" "\n" @@ -1440,19 +1479,19 @@ msgstr "" "\n" "En sökning kommer att startas automatiskt nu.\n" -#: lib/commit.tcl:338 +#: lib/commit.tcl:346 msgid "No changes to commit." msgstr "Inga ändringar att checka in." -#: lib/commit.tcl:352 +#: lib/commit.tcl:360 msgid "commit-tree failed:" msgstr "commit-tree misslyckades:" -#: lib/commit.tcl:372 +#: lib/commit.tcl:381 msgid "update-ref failed:" msgstr "update-ref misslyckades:" -#: lib/commit.tcl:460 +#: lib/commit.tcl:469 #, tcl-format msgid "Created commit %s: %s" msgstr "Skapade incheckningen %s: %s" @@ -1505,20 +1544,20 @@ msgstr "Komprimerar objektdatabasen" msgid "Verifying the object database with fsck-objects" msgstr "Verifierar objektdatabasen med fsck-objects" -#: lib/database.tcl:108 +#: lib/database.tcl:107 #, tcl-format msgid "" "This repository currently has approximately %i loose objects.\n" "\n" "To maintain optimal performance it is strongly recommended that you compress " -"the database when more than %i loose objects exist.\n" +"the database.\n" "\n" "Compress the database now?" msgstr "" "Arkivet har för närvarande omkring %i lösa objekt.\n" "\n" "För att bibehålla optimal prestanda rekommenderas det å det bestämdaste att " -"du komprimerar databasen när den innehåller mer än %i lösa objekt.\n" +"du komprimerar databasen.\n" "\n" "Komprimera databasen nu?" @@ -1527,7 +1566,7 @@ msgstr "" msgid "Invalid date from Git: %s" msgstr "Ogiltigt datum från Git: %s" -#: lib/diff.tcl:59 +#: lib/diff.tcl:64 #, tcl-format msgid "" "No differences detected.\n" @@ -1550,12 +1589,12 @@ msgstr "" "En sökning kommer automatiskt att startas för att hitta andra filer som kan " "vara i samma tillstånd." -#: lib/diff.tcl:99 +#: lib/diff.tcl:104 #, tcl-format msgid "Loading diff of %s..." msgstr "Läser differens för %s..." -#: lib/diff.tcl:120 +#: lib/diff.tcl:125 msgid "" "LOCAL: deleted\n" "REMOTE:\n" @@ -1563,7 +1602,7 @@ msgstr "" "LOKAL: borttagen\n" "FJÄRR:\n" -#: lib/diff.tcl:125 +#: lib/diff.tcl:130 msgid "" "REMOTE: deleted\n" "LOCAL:\n" @@ -1571,32 +1610,32 @@ msgstr "" "FJÄRR: borttagen\n" "LOKAL:\n" -#: lib/diff.tcl:132 +#: lib/diff.tcl:137 msgid "LOCAL:\n" msgstr "LOKAL:\n" -#: lib/diff.tcl:135 +#: lib/diff.tcl:140 msgid "REMOTE:\n" msgstr "FJÄRR:\n" -#: lib/diff.tcl:197 lib/diff.tcl:296 +#: lib/diff.tcl:202 lib/diff.tcl:319 #, tcl-format msgid "Unable to display %s" msgstr "Kan inte visa %s" -#: lib/diff.tcl:198 +#: lib/diff.tcl:203 msgid "Error loading file:" msgstr "Fel vid läsning av fil:" -#: lib/diff.tcl:205 +#: lib/diff.tcl:210 msgid "Git Repository (subproject)" msgstr "Gitarkiv (underprojekt)" -#: lib/diff.tcl:217 +#: lib/diff.tcl:222 msgid "* Binary file (not showing content)." msgstr "* Binärfil (visar inte innehållet)." -#: lib/diff.tcl:222 +#: lib/diff.tcl:227 #, tcl-format msgid "" "* Untracked file is %d bytes.\n" @@ -1605,7 +1644,7 @@ msgstr "" "* Den ospårade filen är %d byte.\n" "* Visar endast inledande %d byte.\n" -#: lib/diff.tcl:228 +#: lib/diff.tcl:233 #, tcl-format msgid "" "\n" @@ -1616,19 +1655,19 @@ msgstr "" "* Den ospårade filen klipptes här av %s.\n" "* För att se hela filen, använd ett externt redigeringsprogram.\n" -#: lib/diff.tcl:436 +#: lib/diff.tcl:482 msgid "Failed to unstage selected hunk." msgstr "Kunde inte ta bort den valda delen från kön." -#: lib/diff.tcl:443 +#: lib/diff.tcl:489 msgid "Failed to stage selected hunk." msgstr "Kunde inte lägga till den valda delen till kön." -#: lib/diff.tcl:509 +#: lib/diff.tcl:568 msgid "Failed to unstage selected line." msgstr "Kunde inte ta bort den valda raden från kön." -#: lib/diff.tcl:517 +#: lib/diff.tcl:576 msgid "Failed to stage selected line." msgstr "Kunde inte lägga till den valda raden till kön." @@ -1665,7 +1704,7 @@ msgstr "Kunde inte låsa upp indexet." msgid "Index Error" msgstr "Indexfel" -#: lib/index.tcl:21 +#: lib/index.tcl:17 msgid "" "Updating the Git index failed. A rescan will be automatically started to " "resynchronize git-gui." @@ -1673,7 +1712,7 @@ msgstr "" "Misslyckades med att uppdatera Gitindexet. En omsökning kommer att startas " "automatiskt för att synkronisera om git-gui." -#: lib/index.tcl:27 +#: lib/index.tcl:28 msgid "Continue" msgstr "Forstätt" @@ -1681,44 +1720,44 @@ msgstr "Forstätt" msgid "Unlock Index" msgstr "Lås upp index" -#: lib/index.tcl:287 +#: lib/index.tcl:289 #, tcl-format msgid "Unstaging %s from commit" msgstr "Tar bort %s för incheckningskön" -#: lib/index.tcl:326 +#: lib/index.tcl:328 msgid "Ready to commit." msgstr "Redo att checka in." -#: lib/index.tcl:339 +#: lib/index.tcl:341 #, tcl-format msgid "Adding %s" msgstr "Lägger till %s" -#: lib/index.tcl:396 +#: lib/index.tcl:398 #, tcl-format msgid "Revert changes in file %s?" msgstr "Återställ ändringarna i filen %s?" -#: lib/index.tcl:398 +#: lib/index.tcl:400 #, tcl-format msgid "Revert changes in these %i files?" msgstr "Återställ ändringarna i dessa %i filer?" -#: lib/index.tcl:406 +#: lib/index.tcl:408 msgid "Any unstaged changes will be permanently lost by the revert." msgstr "" "Alla oköade ändringar kommer permanent gå förlorade vid återställningen." -#: lib/index.tcl:409 +#: lib/index.tcl:411 msgid "Do Nothing" msgstr "Gör ingenting" -#: lib/index.tcl:427 +#: lib/index.tcl:429 msgid "Reverting selected files" msgstr "Återställer valda filer" -#: lib/index.tcl:431 +#: lib/index.tcl:433 #, tcl-format msgid "Reverting %s" msgstr "Återställer %s" @@ -2195,10 +2234,6 @@ msgstr "Ta endast bort om" msgid "Merged Into:" msgstr "Sammanslagen i:" -#: lib/remote_branch_delete.tcl:119 -msgid "Always (Do not perform merge checks)" -msgstr "Alltid (utför inte sammanslagningstest)" - #: lib/remote_branch_delete.tcl:152 msgid "A branch is required for 'Merged Into'." msgstr "En gren krävs för \"Sammanslagen i\"." @@ -2227,26 +2262,16 @@ msgstr "" msgid "Please select one or more branches to delete." msgstr "Välj en eller flera grenar att ta bort." -#: lib/remote_branch_delete.tcl:216 -msgid "" -"Recovering deleted branches is difficult.\n" -"\n" -"Delete the selected branches?" -msgstr "" -"Det kan vara svårt att återställa borttagna grenar.\n" -"\n" -"Ta bort de valda grenarna?" - #: lib/remote_branch_delete.tcl:226 #, tcl-format msgid "Deleting branches from %s" msgstr "Tar bort grenar från %s" -#: lib/remote_branch_delete.tcl:286 +#: lib/remote_branch_delete.tcl:292 msgid "No repository selected." msgstr "Inget arkiv markerat." -#: lib/remote_branch_delete.tcl:291 +#: lib/remote_branch_delete.tcl:297 #, tcl-format msgid "Scanning %s..." msgstr "Söker %s..." @@ -2267,11 +2292,11 @@ msgstr "Föreg" msgid "Case-Sensitive" msgstr "Skilj på VERSALER/gemener" -#: lib/shortcut.tcl:20 lib/shortcut.tcl:61 +#: lib/shortcut.tcl:21 lib/shortcut.tcl:62 msgid "Cannot write shortcut:" msgstr "Kan inte skriva genväg:" -#: lib/shortcut.tcl:136 +#: lib/shortcut.tcl:137 msgid "Cannot write icon:" msgstr "Kan inte skriva ikon:" @@ -2545,6 +2570,15 @@ msgstr "Använd tunt paket (för långsamma nätverksanslutningar)" msgid "Include tags" msgstr "Ta med taggar" +#~ msgid "Cannot use funny .git directory:" +#~ msgstr "Kan inte använda underlig .git-katalog:" + +#~ msgid "Preferences..." +#~ msgstr "Inställningar..." + +#~ msgid "Always (Do not perform merge test.)" +#~ msgstr "Alltid (utför inte sammanslagningstest)." + #~ msgid "URL:" #~ msgstr "Webbadress:" diff --git a/git-stash.sh b/git-stash.sh index 3a0685f189..2d69196393 100755 --- a/git-stash.sh +++ b/git-stash.sh @@ -221,6 +221,7 @@ show_stash () { } apply_stash () { + applied_stash= unstash_index= while test $# != 0 @@ -242,6 +243,9 @@ apply_stash () { if test $# = 0 then have_stash || die 'Nothing to apply' + applied_stash="$ref_stash@{0}" + else + applied_stash="$*" fi # stash records the work tree, and is a merge between the @@ -415,8 +419,7 @@ pop) shift if apply_stash "$@" then - test -z "$unstash_index" || shift - drop_stash "$@" + drop_stash "$applied_stash" fi ;; branch) diff --git a/git-svn.perl b/git-svn.perl index 4f7dc2b73b..265852f459 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -1656,6 +1656,7 @@ use File::Path qw/mkpath/; use File::Copy qw/copy/; use IPC::Open3; use Memoize; # core since 5.8.0, Jul 2002 +use Memoize::Storable; my ($_gc_nr, $_gc_period); @@ -3116,10 +3117,39 @@ sub has_no_changes { command_oneline("rev-parse", "$commit~1^{tree}")); } -BEGIN { - memoize 'lookup_svn_merge'; - memoize 'check_cherry_pick'; - memoize 'has_no_changes'; +# The GIT_DIR environment variable is not always set until after the command +# line arguments are processed, so we can't memoize in a BEGIN block. +{ + my $memoized = 0; + + sub memoize_svn_mergeinfo_functions { + return if $memoized; + $memoized = 1; + + my $cache_path = "$ENV{GIT_DIR}/svn/.caches/"; + mkpath([$cache_path]) unless -d $cache_path; + + tie my %lookup_svn_merge_cache => 'Memoize::Storable', + "$cache_path/lookup_svn_merge.db", 'nstore'; + memoize 'lookup_svn_merge', + SCALAR_CACHE => 'FAULT', + LIST_CACHE => ['HASH' => \%lookup_svn_merge_cache], + ; + + tie my %check_cherry_pick_cache => 'Memoize::Storable', + "$cache_path/check_cherry_pick.db", 'nstore'; + memoize 'check_cherry_pick', + SCALAR_CACHE => 'FAULT', + LIST_CACHE => ['HASH' => \%check_cherry_pick_cache], + ; + + tie my %has_no_changes_cache => 'Memoize::Storable', + "$cache_path/has_no_changes.db", 'nstore'; + memoize 'has_no_changes', + SCALAR_CACHE => ['HASH' => \%has_no_changes_cache], + LIST_CACHE => 'FAULT', + ; + } } sub parents_exclude { @@ -3163,6 +3193,8 @@ sub find_extra_svn_parents { my ($self, $ed, $mergeinfo, $parents) = @_; # aha! svk:merge property changed... + memoize_svn_mergeinfo_functions(); + # We first search for merged tips which are not in our # history. Then, we figure out which git revisions are in # that tip, but not this revision. If all of those revisions @@ -527,7 +527,7 @@ int main(int argc, const char **argv) break; if (was_alias) { fprintf(stderr, "Expansion of alias '%s' failed; " - "'%s' is not a git-command\n", + "'%s' is not a git command\n", cmd, argv[0]); exit(1); } diff --git a/gitk-git/gitk b/gitk-git/gitk index 48cfce3a0e..1f36a3e815 100644 --- a/gitk-git/gitk +++ b/gitk-git/gitk @@ -2782,7 +2782,7 @@ proc about {} { message $w.m -text [mc " Gitk - a commit viewer for git -Copyright \u00a9 2005-2009 Paul Mackerras +Copyright © 2005-2009 Paul Mackerras Use and redistribute under the terms of the GNU General Public License"] \ -justify center -aspect 400 -border 2 -bg white -relief groove diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index d0c3ff258d..1f6978ac1f 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1330,7 +1330,6 @@ sub chop_str { $str =~ m/^(.*?)($begre)$/; my ($lead, $body) = ($1, $2); if (length($lead) > 4) { - $body =~ s/^[^;]*;// if ($lead =~ m/&[^;]*$/); $lead = " ..."; } return "$lead$body"; @@ -1341,8 +1340,6 @@ sub chop_str { $str =~ m/^(.*?)($begre)$/; my ($mid, $right) = ($1, $2); if (length($mid) > 5) { - $left =~ s/&[^;]*$//; - $right =~ s/^[^;]*;// if ($mid =~ m/&[^;]*$/); $mid = " ... "; } return "$left$mid$right"; @@ -1352,7 +1349,6 @@ sub chop_str { my $body = $1; my $tail = $2; if (length($tail) > 4) { - $body =~ s/&[^;]*$//; $tail = "... "; } return "$body$tail"; @@ -57,11 +57,8 @@ static void compile_regexp(struct grep_pat *p, struct grep_opt *opt) p->word_regexp = opt->word_regexp; p->ignore_case = opt->ignore_case; + p->fixed = opt->fixed; - if (opt->fixed) - p->fixed = 1; - if (opt->regflags & REG_ICASE) - p->fixed = 0; if (p->fixed) return; @@ -350,7 +350,7 @@ const char *help_unknown_cmd(const char *cmd) return assumed; } - fprintf(stderr, "git: '%s' is not a git-command. See 'git --help'.\n", cmd); + fprintf(stderr, "git: '%s' is not a git command. See 'git --help'.\n", cmd); if (SIMILAR_ENOUGH(best_similarity)) { fprintf(stderr, "\nDid you mean %s?\n", diff --git a/imap-send.c b/imap-send.c index 51f371ba9f..ba72fa4b6e 100644 --- a/imap-send.c +++ b/imap-send.c @@ -1331,11 +1331,16 @@ static int git_imap_config(const char *key, const char *val, void *cb) if (strncmp(key, imap_key, sizeof imap_key - 1)) return 0; - if (!val) - return config_error_nonbool(key); - key += sizeof imap_key - 1; + /* check booleans first, and barf on others */ + if (!strcmp("sslverify", key)) + server.ssl_verify = git_config_bool(key, val); + else if (!strcmp("preformattedhtml", key)) + server.use_html = git_config_bool(key, val); + else if (!val) + return config_error_nonbool(key); + if (!strcmp("folder", key)) { imap_folder = xstrdup(val); } else if (!strcmp("host", key)) { @@ -1356,10 +1361,6 @@ static int git_imap_config(const char *key, const char *val, void *cb) server.port = git_config_int(key, val); else if (!strcmp("tunnel", key)) server.tunnel = xstrdup(val); - else if (!strcmp("sslverify", key)) - server.ssl_verify = git_config_bool(key, val); - else if (!strcmp("preformattedHTML", key)) - server.use_html = git_config_bool(key, val); return 0; } @@ -336,7 +336,7 @@ char *enter_repo(char *path, int strict) if (access("objects", X_OK) == 0 && access("refs", X_OK) == 0 && validate_headref("HEAD") == 0) { - setenv(GIT_DIR_ENVIRONMENT, ".", 1); + set_git_dir("."); check_repository_format(); return path; } @@ -213,7 +213,7 @@ static size_t quote_c_style_counted(const char *name, ssize_t maxlen, int ch; len = next_quote_pos(p, maxlen); - if (len == maxlen || !p[len]) + if (len == maxlen || (maxlen < 0 && !p[len])) break; if (!no_dq && p == name) @@ -223,6 +223,8 @@ static size_t quote_c_style_counted(const char *name, ssize_t maxlen, EMIT('\\'); p += len; ch = (unsigned char)*p++; + if (maxlen >= 0) + maxlen -= len + 1; if (sq_lookup[ch] >= ' ') { EMIT(sq_lookup[ch]); } else { @@ -404,9 +404,9 @@ const char *setup_git_directory_gently(int *nongit_ok) inside_work_tree = 0; if (offset != len) { cwd[offset] = '\0'; - setenv(GIT_DIR_ENVIRONMENT, cwd, 1); + set_git_dir(cwd); } else - setenv(GIT_DIR_ENVIRONMENT, ".", 1); + set_git_dir("."); check_repository_format_gently(nongit_ok); return NULL; } diff --git a/sha1_name.c b/sha1_name.c index 77299257bf..43884c69b3 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -280,8 +280,7 @@ int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref) *ref = xstrdup(r); if (!warn_ambiguous_refs) break; - } else if ((flag & REF_ISSYMREF) && - (len != 4 || strcmp(str, "HEAD"))) + } else if ((flag & REF_ISSYMREF) && strcmp(fullref, "HEAD")) warning("ignoring dangling symref %s.", fullref); } free(last_branch); diff --git a/t/t3902-quoted.sh b/t/t3902-quoted.sh index 5868052425..29103f65dc 100755 --- a/t/t3902-quoted.sh +++ b/t/t3902-quoted.sh @@ -25,7 +25,7 @@ for_each_name () { for name in \ Name "Name and a${LF}LF" "Name and an${HT}HT" "Name${DQ}" \ "$FN$HT$GN" "$FN$LF$GN" "$FN $GN" "$FN$GN" "$FN$DQ$GN" \ - "With SP in it" + "With SP in it" "$FN/file" do eval "$1" done @@ -33,6 +33,7 @@ for_each_name () { test_expect_success setup ' + mkdir "$FN" && for_each_name "echo initial >\"\$name\"" git add . && git commit -q -m Initial && @@ -54,6 +55,7 @@ With SP in it "\346\277\261\351\207\216\n\347\264\224" "\346\277\261\351\207\216 \347\264\224" "\346\277\261\351\207\216\"\347\264\224" +"\346\277\261\351\207\216/file" "\346\277\261\351\207\216\347\264\224" EOF @@ -67,6 +69,7 @@ With SP in it "濱野\n純" 濱野 純 "濱野\"純" +濱野/file 濱野純 EOF @@ -97,6 +100,13 @@ test_expect_success 'check fully quoted output from diff-tree' ' ' +test_expect_success 'check fully quoted output from ls-tree' ' + + git ls-tree --name-only -r HEAD >current && + test_cmp expect.quoted current + +' + test_expect_success 'setting core.quotepath' ' git config --bool core.quotepath false @@ -130,4 +140,11 @@ test_expect_success 'check fully quoted output from diff-tree' ' ' +test_expect_success 'check fully quoted output from ls-tree' ' + + git ls-tree --name-only -r HEAD >current && + test_cmp expect.raw current + +' + test_done diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh index 5514f74b30..476e5ec038 100755 --- a/t/t3903-stash.sh +++ b/t/t3903-stash.sh @@ -194,6 +194,15 @@ test_expect_success 'pop -q is quiet' ' test ! -s output.out ' +test_expect_success 'pop -q --index works and is quiet' ' + echo foo > file && + git add file && + git stash save --quiet && + git stash pop -q --index > output.out 2>&1 && + test foo = "$(git show :file)" && + test ! -s output.out +' + test_expect_success 'drop -q is quiet' ' git stash && git stash drop -q > output.out 2>&1 && diff --git a/t/t5000-tar-tree.sh b/t/t5000-tar-tree.sh index 0037f63d91..27bfba55bd 100755 --- a/t/t5000-tar-tree.sh +++ b/t/t5000-tar-tree.sh @@ -189,6 +189,16 @@ test_expect_success 'git archive --format=zip with --output' \ 'git archive --format=zip --output=d2.zip HEAD && test_cmp d.zip d2.zip' +test_expect_success 'git archive with --output, inferring format' ' + git archive --output=d3.zip HEAD && + test_cmp d.zip d3.zip +' + +test_expect_success 'git archive with --output, override inferred format' ' + git archive --format=tar --output=d4.zip HEAD && + test_cmp b.tar d4.zip +' + $UNZIP -v >/dev/null 2>&1 if [ $? -eq 127 ]; then say "Skipping ZIP tests, because unzip was not found" diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh index e2aa254eae..7649b810b1 100755 --- a/t/t5300-pack-object.sh +++ b/t/t5300-pack-object.sh @@ -16,7 +16,9 @@ test_expect_success \ perl -e "print \"a\" x 4096;" > a && perl -e "print \"b\" x 4096;" > b && perl -e "print \"c\" x 4096;" > c && - git update-index --add a b c && + test-genrandom "seed a" 2097152 > a_big && + test-genrandom "seed b" 2097152 > b_big && + git update-index --add a a_big b b_big c && cat c >d && echo foo >>d && git update-index --add d && tree=`git write-tree` && commit=`git commit-tree $tree </dev/null` && { @@ -280,26 +282,8 @@ test_expect_success \ :' -test_expect_success \ - 'fake a SHA1 hash collision' \ - 'test -f .git/objects/c8/2de19312b6c3695c0c18f70709a6c535682a67 && - cp -f .git/objects/9d/235ed07cd19811a6ceb342de82f190e49c9f68 \ - .git/objects/c8/2de19312b6c3695c0c18f70709a6c535682a67' - -test_expect_success \ - 'make sure index-pack detects the SHA1 collision' \ - 'test_must_fail git index-pack -o bad.idx test-3.pack 2>msg && - grep "SHA1 COLLISION FOUND" msg' - -test_expect_success \ - 'honor pack.packSizeLimit' \ - 'git config pack.packSizeLimit 200 && - packname_4=$(git pack-objects test-4 <obj-list) && - test 3 = $(ls test-4-*.pack | wc -l)' - test_expect_success 'unpacking with --strict' ' - git config --unset pack.packsizelimit && for j in a b c d e f g do for i in 0 1 2 3 4 5 6 7 8 9 @@ -392,10 +376,42 @@ test_expect_success 'index-pack with --strict' ' ) ' -test_expect_success 'tolerate absurdly small packsizelimit' ' - git config pack.packSizeLimit 2 && - packname_9=$(git pack-objects test-9 <obj-list) && - test $(wc -l <obj-list) = $(ls test-9-*.pack | wc -l) +test_expect_success 'honor pack.packSizeLimit' ' + git config pack.packSizeLimit 3m && + packname_10=$(git pack-objects test-10 <obj-list) && + test 2 = $(ls test-10-*.pack | wc -l) +' + +test_expect_success 'verify resulting packs' ' + git verify-pack test-10-*.pack +' + +test_expect_success 'tolerate packsizelimit smaller than biggest object' ' + git config pack.packSizeLimit 1 && + packname_11=$(git pack-objects test-11 <obj-list) && + test 5 = $(ls test-11-*.pack | wc -l) ' +test_expect_success 'verify resulting packs' ' + git verify-pack test-11-*.pack +' + +# +# WARNING! +# +# The following test is destructive. Please keep the next +# two tests at the end of this file. +# + +test_expect_success \ + 'fake a SHA1 hash collision' \ + 'test -f .git/objects/c8/2de19312b6c3695c0c18f70709a6c535682a67 && + cp -f .git/objects/9d/235ed07cd19811a6ceb342de82f190e49c9f68 \ + .git/objects/c8/2de19312b6c3695c0c18f70709a6c535682a67' + +test_expect_success \ + 'make sure index-pack detects the SHA1 collision' \ + 'test_must_fail git index-pack -o bad.idx test-3.pack 2>msg && + grep "SHA1 COLLISION FOUND" msg' + test_done diff --git a/t/t7002-grep.sh b/t/t7002-grep.sh index bf4d4dcb2b..ebae1522c8 100755 --- a/t/t7002-grep.sh +++ b/t/t7002-grep.sh @@ -486,4 +486,37 @@ test_expect_success 'inside git repository but with --no-index' ' ) ' +test_expect_success 'setup double-dash tests' ' +cat >double-dash <<EOF && +-- +-> +other +EOF +git add double-dash +' + +cat >expected <<EOF +double-dash:-> +EOF +test_expect_success 'grep -- pattern' ' + git grep -- "->" >actual && + test_cmp expected actual +' +test_expect_success 'grep -- pattern -- pathspec' ' + git grep -- "->" -- double-dash >actual && + test_cmp expected actual +' +test_expect_success 'grep -e pattern -- path' ' + git grep -e "->" -- double-dash >actual && + test_cmp expected actual +' + +cat >expected <<EOF +double-dash:-- +EOF +test_expect_success 'grep -e -- -- path' ' + git grep -e -- -- double-dash >actual && + test_cmp expected actual +' + test_done diff --git a/t/t8003-blame.sh b/t/t8003-blame.sh index ad834f200a..3bbddd03cb 100755 --- a/t/t8003-blame.sh +++ b/t/t8003-blame.sh @@ -157,4 +157,14 @@ EOF git --no-pager blame $COMMIT -- uno >/dev/null ' +test_expect_success 'blame -L with invalid start' ' + test_must_fail git blame -L5 tres 2>errors && + grep "has only 2 lines" errors +' + +test_expect_success 'blame -L with invalid end' ' + test_must_fail git blame -L1,5 tres 2>errors && + grep "has only 2 lines" errors +' + test_done diff --git a/t/t9501-gitweb-standalone-http-status.sh b/t/t9501-gitweb-standalone-http-status.sh index 7590f10b66..d196cc5ca9 100755 --- a/t/t9501-gitweb-standalone-http-status.sh +++ b/t/t9501-gitweb-standalone-http-status.sh @@ -117,7 +117,7 @@ test_debug 'cat gitweb.output' # always hit the load limit cat >>gitweb_config.perl <<\EOF -our $maxload = 0; +our $maxload = -1; EOF test_expect_success 'load checking: load too high (default action)' ' diff --git a/tree-walk.c b/tree-walk.c index 08796c2322..67a9a0c5a5 100644 --- a/tree-walk.c +++ b/tree-walk.c @@ -441,6 +441,7 @@ int get_tree_entry(const unsigned char *tree_sha1, const char *name, unsigned ch if (name[0] == '\0') { hashcpy(sha1, root); + free(tree); return 0; } |