#
Aneesh Kumar K.V <aneesh.kumar@gmail.com>
+Brian M. Carlson <sandals@crustytoothpaste.ath.cx>
Chris Shoemaker <c.shoemaker@cox.net>
Dana L. How <danahow@gmail.com>
Dana L. How <how@deathvalley.cswitch.com>
MAKEINFO=makeinfo
INSTALL_INFO=install-info
DOCBOOK2X_TEXI=docbook2x-texi
+ifndef PERL_PATH
+ PERL_PATH = /usr/bin/perl
+endif
-include ../config.mak.autogen
-include ../config.mak
#
doc.dep : $(wildcard *.txt) build-docdep.perl
$(RM) $@+ $@
- perl ./build-docdep.perl >$@+
+ $(PERL_PATH) ./build-docdep.perl >$@+
mv $@+ $@
-include doc.dep
cmd-list.made: cmd-list.perl ../command-list.txt $(MAN1_TXT)
$(RM) $@
- perl ./cmd-list.perl ../command-list.txt
+ $(PERL_PATH) ./cmd-list.perl ../command-list.txt
date >$@
git.7 git.html: git.txt
git.info: user-manual.xml
$(RM) $@ $*.texi $*.texi+
$(DOCBOOK2X_TEXI) user-manual.xml --to-stdout >$*.texi+
- perl fix-texi.perl <$*.texi+ >$*.texi
+ $(PERL_PATH) fix-texi.perl <$*.texi+ >$*.texi
$(MAKEINFO) --no-split $*.texi
$(RM) $*.texi $*.texi+
* "git cvsserver" can be run via "git shell".
+ * "git cvsserver" acts more like receive-pack by running post-receive
+ and post-update hooks.
+
* "git am" and "git rebase" are far less verbose.
* "git pull" learned to pass --[no-]ff option to underlying "git
* "git fast-export" produces datastream that can be fed to fast-import
to reproduce the history recorded in a git repository.
+ * "git add -i" takes pathspecs to limit the set of files to work on.
+
+ * "git add -p" is a short-hand to go directly to the selective patch
+ subcommand in the interactive command loop and to exit when done.
+
+ * "git add -i" UI has been colorized.
+
* "git commit --allow-empty" allows you to create a single-parent
commit that records the same tree as its parent, overriding the usual
safety valve.
* "git commit --amend" can amend a merge that does not change the tree
from its first parent.
+ * "git commit" has been rewritten in C.
+
* "git stash random-text" does not create a new stash anymore. It was
a UI mistake. Use "git stash save random-text", or "git stash"
(without extra args) for that.
* "git svn" talking with the SVN over http will correctly quote branch
and project names.
+ * "git config" did not work correctly on platforms that define
+ REG_NOMATCH to an even number.
+
--
exec >/var/tmp/1
-O=v1.5.3.7-1003-gf38ca7c
+O=v1.5.3.7-1111-gd9f4059
echo O=`git describe refs/heads/master`
git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
- the first line of the commit message should be a short
description and should skip the full stop
- if you want your work included in git.git, add a
- "Signed-off-by: Your Name <your@email.com>" line to the
+ "Signed-off-by: Your Name <you@example.com>" line to the
commit message (or just use the option "-s" when
committing) to confirm that you agree to the Developer's
Certificate of Origin
whitespace). The values of these variables may be specified as
in color.branch.<slot>.
+color.interactive::
+ When set to `always`, always use colors in `git add --interactive`.
+ When false (or `never`), never. When set to `true` or `auto`, use
+ colors only when the output is to the terminal. Defaults to false.
+
+color.interactive.<slot>::
+ Use customized color for `git add --interactive`
+ output. `<slot>` may be `prompt`, `header`, or `help`, for
+ three distinct types of normal output from interactive
+ programs. The values of these variables may be specified as
+ in color.branch.<slot>.
+
color.pager::
A boolean to enable/disable colored output when the pager is in
use (default is true).
The default set of branches for gitlink:git-show-branch[1].
See gitlink:git-show-branch[1].
+status.relativePaths::
+ By default, gitlink:git-status[1] shows paths relative to the
+ current directory. Setting this variable to `false` shows paths
+ relative to the repository root (this was the default for git
+ prior to v1.5.4).
+
tar.umask::
This variable can be used to restrict the permission bits of
tar archive entries. The default is 0002, which turns off the
all parents.
-Generating patches with -p
---------------------------
-
-When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
-with a '-p' option, or "git diff" without the '--raw' option, they
-do not produce the output described above; instead they produce a
-patch file. You can customize the creation of such patches via the
-GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.
-
-What the -p option produces is slightly different from the traditional
-diff format.
-
-1. It is preceded with a "git diff" header, that looks like
- this:
-
- diff --git a/file1 b/file2
-+
-The `a/` and `b/` filenames are the same unless rename/copy is
-involved. Especially, even for a creation or a deletion,
-`/dev/null` is _not_ used in place of `a/` or `b/` filenames.
-+
-When rename/copy is involved, `file1` and `file2` show the
-name of the source file of the rename/copy and the name of
-the file that rename/copy produces, respectively.
-
-2. It is followed by one or more extended header lines:
-
- old mode <mode>
- new mode <mode>
- deleted file mode <mode>
- new file mode <mode>
- copy from <path>
- copy to <path>
- rename from <path>
- rename to <path>
- similarity index <number>
- dissimilarity index <number>
- index <hash>..<hash> <mode>
-
-3. TAB, LF, double quote and backslash characters in pathnames
- are represented as `\t`, `\n`, `\"` and `\\`, respectively.
- If there is need for such substitution then the whole
- pathname is put in double quotes.
-
-The similarity index is the percentage of unchanged lines, and
-the dissimilarity index is the percentage of changed lines. It
-is a rounded down integer, followed by a percent sign. The
-similarity index value of 100% is thus reserved for two equal
-files, while 100% dissimilarity means that no line from the old
-file made it into the new one.
-
-
-combined diff format
---------------------
-
-"git-diff-tree", "git-diff-files" and "git-diff" can take '-c' or
-'--cc' option to produce 'combined diff', which looks like this:
-
-------------
-diff --combined describe.c
-index fabadb8,cc95eb0..4866510
---- a/describe.c
-+++ b/describe.c
-@@@ -98,20 -98,12 +98,20 @@@
- return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
- }
-
-- static void describe(char *arg)
- -static void describe(struct commit *cmit, int last_one)
-++static void describe(char *arg, int last_one)
- {
- + unsigned char sha1[20];
- + struct commit *cmit;
- struct commit_list *list;
- static int initialized = 0;
- struct commit_name *n;
-
- + if (get_sha1(arg, sha1) < 0)
- + usage(describe_usage);
- + cmit = lookup_commit_reference(sha1);
- + if (!cmit)
- + usage(describe_usage);
- +
- if (!initialized) {
- initialized = 1;
- for_each_ref(get_name);
-------------
-
-1. It is preceded with a "git diff" header, that looks like
- this (when '-c' option is used):
-
- diff --combined file
-+
-or like this (when '--cc' option is used):
-
- diff --c file
-
-2. It is followed by one or more extended header lines
- (this example shows a merge with two parents):
-
- index <hash>,<hash>..<hash>
- mode <mode>,<mode>..<mode>
- new file mode <mode>
- deleted file mode <mode>,<mode>
-+
-The `mode <mode>,<mode>..<mode>` line appears only if at least one of
-the <mode> is different from the rest. Extended headers with
-information about detected contents movement (renames and
-copying detection) are designed to work with diff of two
-<tree-ish> and are not used by combined diff format.
-
-3. It is followed by two-line from-file/to-file header
-
- --- a/file
- +++ b/file
-+
-Similar to two-line header for traditional 'unified' diff
-format, `/dev/null` is used to signal created or deleted
-files.
-
-4. Chunk header format is modified to prevent people from
- accidentally feeding it to `patch -p1`. Combined diff format
- was created for review of merge commit changes, and was not
- meant for apply. The change is similar to the change in the
- extended 'index' header:
-
- @@@ <from-file-range> <from-file-range> <to-file-range> @@@
-+
-There are (number of parents + 1) `@` characters in the chunk
-header for combined diff format.
-
-Unlike the traditional 'unified' diff format, which shows two
-files A and B with a single column that has `-` (minus --
-appears in A but removed in B), `+` (plus -- missing in A but
-added to B), or `" "` (space -- unchanged) prefix, this format
-compares two or more files file1, file2,... with one file X, and
-shows how X differs from each of fileN. One column for each of
-fileN is prepended to the output line to note how X's line is
-different from it.
-
-A `-` character in the column N means that the line appears in
-fileN but it does not appear in the result. A `+` character
-in the column N means that the line appears in the last file,
-and fileN does not have that line (in other words, the line was
-added, from the point of view of that parent).
-
-In the above example output, the function signature was changed
-from both files (hence two `-` removals from both file1 and
-file2, plus `++` to mean one line that was added does not appear
-in either file1 nor file2). Also two other lines are the same
-from file1 but do not appear in file2 (hence prefixed with ` +`).
-
-When shown by `git diff-tree -c`, it compares the parents of a
-merge commit with the merge result (i.e. file1..fileN are the
-parents). When shown by `git diff-files -c`, it compares the
-two unresolved merge parents with the working tree file
-(i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka
-"their version").
+include::diff-generate-patch.txt[]
--- /dev/null
+Generating patches with -p
+--------------------------
+
+When "git-diff-index", "git-diff-tree", or "git-diff-files" are run
+with a '-p' option, "git diff" without the '--raw' option, or
+"git log" with the "-p" option, they
+do not produce the output described above; instead they produce a
+patch file. You can customize the creation of such patches via the
+GIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.
+
+What the -p option produces is slightly different from the traditional
+diff format.
+
+1. It is preceded with a "git diff" header, that looks like
+ this:
+
+ diff --git a/file1 b/file2
++
+The `a/` and `b/` filenames are the same unless rename/copy is
+involved. Especially, even for a creation or a deletion,
+`/dev/null` is _not_ used in place of `a/` or `b/` filenames.
++
+When rename/copy is involved, `file1` and `file2` show the
+name of the source file of the rename/copy and the name of
+the file that rename/copy produces, respectively.
+
+2. It is followed by one or more extended header lines:
+
+ old mode <mode>
+ new mode <mode>
+ deleted file mode <mode>
+ new file mode <mode>
+ copy from <path>
+ copy to <path>
+ rename from <path>
+ rename to <path>
+ similarity index <number>
+ dissimilarity index <number>
+ index <hash>..<hash> <mode>
+
+3. TAB, LF, double quote and backslash characters in pathnames
+ are represented as `\t`, `\n`, `\"` and `\\`, respectively.
+ If there is need for such substitution then the whole
+ pathname is put in double quotes.
+
+The similarity index is the percentage of unchanged lines, and
+the dissimilarity index is the percentage of changed lines. It
+is a rounded down integer, followed by a percent sign. The
+similarity index value of 100% is thus reserved for two equal
+files, while 100% dissimilarity means that no line from the old
+file made it into the new one.
+
+
+combined diff format
+--------------------
+
+"git-diff-tree", "git-diff-files" and "git-diff" can take '-c' or
+'--cc' option to produce 'combined diff'. For showing a merge commit
+with "git log -p", this is the default format.
+A 'combined diff' format looks like this:
+
+------------
+diff --combined describe.c
+index fabadb8,cc95eb0..4866510
+--- a/describe.c
++++ b/describe.c
+@@@ -98,20 -98,12 +98,20 @@@
+ return (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;
+ }
+
+- static void describe(char *arg)
+ -static void describe(struct commit *cmit, int last_one)
+++static void describe(char *arg, int last_one)
+ {
+ + unsigned char sha1[20];
+ + struct commit *cmit;
+ struct commit_list *list;
+ static int initialized = 0;
+ struct commit_name *n;
+
+ + if (get_sha1(arg, sha1) < 0)
+ + usage(describe_usage);
+ + cmit = lookup_commit_reference(sha1);
+ + if (!cmit)
+ + usage(describe_usage);
+ +
+ if (!initialized) {
+ initialized = 1;
+ for_each_ref(get_name);
+------------
+
+1. It is preceded with a "git diff" header, that looks like
+ this (when '-c' option is used):
+
+ diff --combined file
++
+or like this (when '--cc' option is used):
+
+ diff --c file
+
+2. It is followed by one or more extended header lines
+ (this example shows a merge with two parents):
+
+ index <hash>,<hash>..<hash>
+ mode <mode>,<mode>..<mode>
+ new file mode <mode>
+ deleted file mode <mode>,<mode>
++
+The `mode <mode>,<mode>..<mode>` line appears only if at least one of
+the <mode> is different from the rest. Extended headers with
+information about detected contents movement (renames and
+copying detection) are designed to work with diff of two
+<tree-ish> and are not used by combined diff format.
+
+3. It is followed by two-line from-file/to-file header
+
+ --- a/file
+ +++ b/file
++
+Similar to two-line header for traditional 'unified' diff
+format, `/dev/null` is used to signal created or deleted
+files.
+
+4. Chunk header format is modified to prevent people from
+ accidentally feeding it to `patch -p1`. Combined diff format
+ was created for review of merge commit changes, and was not
+ meant for apply. The change is similar to the change in the
+ extended 'index' header:
+
+ @@@ <from-file-range> <from-file-range> <to-file-range> @@@
++
+There are (number of parents + 1) `@` characters in the chunk
+header for combined diff format.
+
+Unlike the traditional 'unified' diff format, which shows two
+files A and B with a single column that has `-` (minus --
+appears in A but removed in B), `+` (plus -- missing in A but
+added to B), or `" "` (space -- unchanged) prefix, this format
+compares two or more files file1, file2,... with one file X, and
+shows how X differs from each of fileN. One column for each of
+fileN is prepended to the output line to note how X's line is
+different from it.
+
+A `-` character in the column N means that the line appears in
+fileN but it does not appear in the result. A `+` character
+in the column N means that the line appears in the last file,
+and fileN does not have that line (in other words, the line was
+added, from the point of view of that parent).
+
+In the above example output, the function signature was changed
+from both files (hence two `-` removals from both file1 and
+file2, plus `++` to mean one line that was added does not appear
+in either file1 nor file2). Also two other lines are the same
+from file1 but do not appear in file2 (hence prefixed with ` +`).
+
+When shown by `git diff-tree -c`, it compares the parents of a
+merge commit with the merge result (i.e. file1..fileN are the
+parents). When shown by `git diff-files -c`, it compares the
+two unresolved merge parents with the working tree file
+(i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka
+"their version").
ifndef::git-format-patch[]
ifndef::git-diff[]
+ifndef::git-log[]
:git-diff-core: 1
+endif::git-log[]
endif::git-diff[]
endif::git-format-patch[]
$ git bisect visualize
------------
-to see the currently remaining suspects in `gitk`.
+to see the currently remaining suspects in `gitk`. `visualize` is a bit
+too long to type and `view` is provided as a synonym.
+
+If `DISPLAY` environment variable is not set, `git log` is used
+instead. You can even give command line options such as `-p` and
+`--stat`.
+
+------------
+$ git bisect view --stat
+------------
Bisect log and bisect replay
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Add Signed-off-by line at the end of the commit message.
--no-verify::
- This option bypasses the pre-commit hook.
+ This option bypasses the pre-commit and commit-msg hooks.
See also link:hooks.html[hooks].
--allow-empty::
'git-config' [<file-option>] --remove-section name
'git-config' [<file-option>] [-z|--null] -l | --list
'git-config' [<file-option>] --get-color name [default]
+'git-config' [<file-option>] --get-colorbool name [stdout-is-tty]
DESCRIPTION
-----------
output without getting confused e.g. by values that
contain line breaks.
+--get-colorbool name [stdout-is-tty]::
+
+ Find the color setting for `name` (e.g. `color.diff`) and output
+ "true" or "false". `stdout-is-tty` should be either "true" or
+ "false", and is taken into account when configuration says
+ "auto". If `stdout-is-tty` is missing, then checks the standard
+ output of the command itself, and exits with status 0 if color
+ is to be used, or exits with status 1 otherwise.
+
--get-color name default::
Find the color configured for `name` (e.g. `color.diff.new`) and
include::pretty-options.txt[]
+:git-log: 1
+include::diff-options.txt[]
+
-<n>::
Limits the number of commits to show.
commit. This option gives a better overview of the
evolution of a particular branch.
--p::
- Show the change the commit introduces in a patch form.
-
-g, \--walk-reflogs::
Show commits as they were recorded in the reflog. The log contains
a record about how the tip of a reference was changed.
include::pretty-formats.txt[]
+include::diff-generate-patch.txt[]
Examples
--------
DESCRIPTION
-----------
-Examines paths in the working tree that has changes unrecorded
-to the index file, and changes between the index file and the
-current HEAD commit. The former paths are what you _could_
-commit by running 'git add' before running 'git
-commit', and the latter paths are what you _would_ commit by
-running 'git commit'.
-
-If there is no path that is different between the index file and
-the current HEAD commit, the command exits with non-zero
-status.
+Displays paths that have differences between the index file and the
+current HEAD commit, paths that have differences between the working
+tree and the index file, and paths in the working tree that are not
+tracked by git (and are not ignored by gitlink:gitignore[5]). The first
+are what you _would_ commit by running `git commit`; the second and
+third are what you _could_ commit by running `git add` before running
+`git commit`.
The command takes the same set of options as `git-commit`; it
shows what would be committed if the same options are given to
`git-commit`.
+If there is no path that is different between the index file and
+the current HEAD commit (i.e., there is nothing to commit by running
+`git-commit`), the command exits with non-zero status.
+
If any paths have been touched in the working tree (that is,
their modification times have changed) but their contents and
permissions are identical to those in the index file, the command
OUTPUT
------
The output from this command is designed to be used as a commit
-template comments, and all the output lines are prefixed with '#'.
+template comment, and all the output lines are prefixed with '#'.
+
+The paths mentioned in the output, unlike many other git commands, are
+made relative to the current directory if you are working in a
+subdirectory (this is on purpose, to help cutting and pasting). See
+the status.relativePaths config option below.
CONFIGURATION
compatibility) and `color.status.<slot>` configuration variables
to colorize its output.
+If the config variable `status.relativePaths` is set to false, then all
+paths shown are relative to the repository root, not to the current
+directory.
+
See Also
--------
gitlink:gitignore[5]
prefix = $(HOME)
bindir = $(prefix)/bin
+mandir = $(prefix)/share/man
gitexecdir = $(bindir)
sharedir = $(prefix)/share
template_dir = $(sharedir)/git-core/templates
ifeq ($(uname_S),Darwin)
NEEDS_SSL_WITH_CRYPTO = YesPlease
NEEDS_LIBICONV = YesPlease
- OLD_ICONV = UnfortunatelyYes
+ ifneq ($(shell expr "$(uname_R)" : '9\.'),2)
+ OLD_ICONV = UnfortunatelyYes
+ endif
NO_STRLCPY = YesPlease
NO_MEMMEM = YesPlease
endif
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
bindir_SQ = $(subst ','\'',$(bindir))
+mandir_SQ = $(subst ','\'',$(mandir))
gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
template_dir_SQ = $(subst ','\'',$(template_dir))
prefix_SQ = $(subst ','\'',$(prefix))
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \
$(BUILTIN_OBJS) $(ALL_LDFLAGS) $(LIBS)
-help.o: common-cmds.h
+help.o: help.c common-cmds.h GIT-CFLAGS
+ $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) '-DGIT_MAN_PATH="$(mandir_SQ)"' $<
git-merge-subtree$X: git-merge-recursive$X
$(QUIET_BUILT_IN)$(RM) $@ && ln git-merge-recursive$X $@
static int git_branch_config(const char *var, const char *value)
{
if (!strcmp(var, "color.branch")) {
- branch_use_color = git_config_colorbool(var, value);
+ branch_use_color = git_config_colorbool(var, value, -1);
return 0;
}
if (!prefixcmp(var, "color.branch.")) {
int cmd_clean(int argc, const char **argv, const char *prefix)
{
- int j;
+ int i;
int show_only = 0, remove_directories = 0, quiet = 0, ignored = 0;
int ignored_only = 0, baselen = 0, config_set = 0;
struct strbuf directory;
struct dir_struct dir;
const char *path, *base;
static const char **pathspec;
+ char *seen = NULL;
struct option options[] = {
OPT__QUIET(&quiet),
OPT__DRY_RUN(&show_only),
read_directory(&dir, path, base, baselen, pathspec);
strbuf_init(&directory, 0);
- for (j = 0; j < dir.nr; ++j) {
- struct dir_entry *ent = dir.entries[j];
- int len, pos, specs;
+ if (pathspec)
+ seen = xmalloc(argc);
+
+ for (i = 0; i < dir.nr; i++) {
+ struct dir_entry *ent = dir.entries[i];
+ int len, pos, matches;
struct cache_entry *ce;
struct stat st;
- char *seen;
/*
* Remove the '/' at the end that directory
continue; /* Yup, this one exists unmerged */
}
- if (!lstat(ent->name, &st) && (S_ISDIR(st.st_mode))) {
- int matched_path = 0;
+ /*
+ * we might have removed this as part of earlier
+ * recursive directory removal, so lstat() here could
+ * fail with ENOENT.
+ */
+ if (lstat(ent->name, &st))
+ continue;
+
+ if (pathspec) {
+ memset(seen, 0, argc);
+ matches = match_pathspec(pathspec, ent->name, ent->len,
+ baselen, seen);
+ } else {
+ matches = 0;
+ }
+
+ if (S_ISDIR(st.st_mode)) {
strbuf_addstr(&directory, ent->name);
- if (pathspec) {
- for (specs =0; pathspec[specs]; ++specs)
- /* nothing */;
- seen = xcalloc(specs, 1);
- /* Check if directory was explictly passed as
- * pathspec. If so we want to remove it */
- if (match_pathspec(pathspec, ent->name, ent->len,
- baselen, seen))
- matched_path = 1;
- free(seen);
- }
- if (show_only && (remove_directories || matched_path)) {
+ if (show_only && (remove_directories || matches)) {
printf("Would remove %s\n", directory.buf);
- } else if (quiet && (remove_directories || matched_path)) {
+ } else if (quiet && (remove_directories || matches)) {
remove_dir_recursively(&directory, 0);
- } else if (remove_directories || matched_path) {
+ } else if (remove_directories || matches) {
printf("Removing %s\n", directory.buf);
remove_dir_recursively(&directory, 0);
} else if (show_only) {
}
strbuf_reset(&directory);
} else {
+ if (pathspec && !matches)
+ continue;
if (show_only) {
printf("Would remove %s\n", ent->name);
continue;
unlink(ent->name);
}
}
+ free(seen);
strbuf_release(&directory);
return 0;
strbuf_addf(&buffer, "parent %s\n", sha1_to_hex(parent_sha1[i]));
/* Person/date information */
- strbuf_addf(&buffer, "author %s\n", git_author_info(1));
- strbuf_addf(&buffer, "committer %s\n", git_committer_info(1));
+ strbuf_addf(&buffer, "author %s\n", git_author_info(IDENT_ERROR_ON_NO_NAME));
+ strbuf_addf(&buffer, "committer %s\n", git_committer_info(IDENT_ERROR_ON_NO_NAME));
if (!encoding_is_utf8)
strbuf_addf(&buffer, "encoding %s\n", git_commit_encoding);
strbuf_addch(&buffer, '\n');
struct wt_status s;
wt_status_prepare(&s);
- s.prefix = prefix;
+ if (wt_status_relative_paths)
+ s.prefix = prefix;
if (amend) {
s.amend = 1;
email = xstrndup(lb + 2, rb - (lb + 2));
}
- strbuf_addf(sb, "author %s\n", fmt_ident(name, email, date, 1));
+ strbuf_addf(sb, "author %s\n", fmt_ident(name, email, date, IDENT_ERROR_ON_NO_NAME));
}
static int parse_and_validate_options(int argc, const char *argv[],
}
determine_author_info(&sb);
- strbuf_addf(&sb, "committer %s\n", git_committer_info(1));
+ strbuf_addf(&sb, "committer %s\n", git_committer_info(IDENT_ERROR_ON_NO_NAME));
if (!is_encoding_utf8(git_commit_encoding))
strbuf_addf(&sb, "encoding %s\n", git_commit_encoding);
strbuf_addch(&sb, '\n');
char index[PATH_MAX];
const char *env[2] = { index, NULL };
snprintf(index, sizeof(index), "GIT_INDEX_FILE=%s", index_file);
- launch_editor(git_path(commit_editmsg), &sb, env);
- } else if (strbuf_read_file(&sb, git_path(commit_editmsg), 0) < 0) {
- rollback_index_files();
- die("could not read commit message");
+ launch_editor(git_path(commit_editmsg), NULL, env);
}
- if (run_hook(index_file, "commit-msg", git_path(commit_editmsg))) {
+ if (!no_verify &&
+ run_hook(index_file, "commit-msg", git_path(commit_editmsg))) {
rollback_index_files();
exit(1);
}
+ if (strbuf_read_file(&sb, git_path(commit_editmsg), 0) < 0) {
+ rollback_index_files();
+ die("could not read commit message");
+ }
/* Truncate the message just before the diff, if any. */
p = strstr(sb.buf, "\ndiff --git a/");
#include "color.h"
static const char git_config_set_usage[] =
-"git-config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list | --get-color var [default]";
+"git-config [ --global | --system | [ -f | --file ] config-file ] [ --bool | --int ] [ -z | --null ] [--get | --get-all | --get-regexp | --replace-all | --add | --unset | --unset-all] name [value [value_regex]] | --rename-section old_name new_name | --remove-section name | --list | --get-color var [default] | --get-colorbool name [stdout-is-tty]";
static char *key;
static regex_t *key_regexp;
return 0;
}
+static int stdout_is_tty;
+static int get_colorbool_found;
+static int get_diff_color_found;
+static int git_get_colorbool_config(const char *var, const char *value)
+{
+ if (!strcmp(var, get_color_slot)) {
+ get_colorbool_found =
+ git_config_colorbool(var, value, stdout_is_tty);
+ }
+ if (!strcmp(var, "diff.color")) {
+ get_diff_color_found =
+ git_config_colorbool(var, value, stdout_is_tty);
+ }
+ return 0;
+}
+
+static int get_colorbool(int argc, const char **argv)
+{
+ /*
+ * git config --get-colorbool <slot> [<stdout-is-tty>]
+ *
+ * returns "true" or "false" depending on how <slot>
+ * is configured.
+ */
+
+ if (argc == 2)
+ stdout_is_tty = git_config_bool("command line", argv[1]);
+ else if (argc == 1)
+ stdout_is_tty = isatty(1);
+ else
+ usage(git_config_set_usage);
+ get_colorbool_found = -1;
+ get_diff_color_found = -1;
+ get_color_slot = argv[0];
+ git_config(git_get_colorbool_config);
+
+ if (get_colorbool_found < 0) {
+ if (!strcmp(get_color_slot, "color.diff"))
+ get_colorbool_found = get_diff_color_found;
+ if (get_colorbool_found < 0)
+ get_colorbool_found = 0;
+ }
+
+ if (argc == 1) {
+ return get_colorbool_found ? 0 : 1;
+ } else {
+ printf("%s\n", get_colorbool_found ? "true" : "false");
+ return 0;
+ }
+}
+
int cmd_config(int argc, const char **argv, const char *prefix)
{
int nongit = 0;
return 0;
} else if (!strcmp(argv[1], "--get-color")) {
return get_color(argc-2, argv+2);
+ } else if (!strcmp(argv[1], "--get-colorbool")) {
+ return get_colorbool(argc-2, argv+2);
} else
break;
argc--;
#include "remote.h"
#include "transport.h"
#include "run-command.h"
+#include "parse-options.h"
-static const char fetch_usage[] = "git-fetch [-a | --append] [--upload-pack <upload-pack>] [-f | --force] [--no-tags] [-t | --tags] [-k | --keep] [-u | --update-head-ok] [--depth <depth>] [-v | --verbose] [<repository> <refspec>...]";
+static const char * const builtin_fetch_usage[] = {
+ "git-fetch [options] [<repository> <refspec>...]",
+ NULL
+};
-static int append, force, tags, no_tags, update_head_ok, verbose, quiet;
+enum {
+ TAGS_UNSET = 0,
+ TAGS_DEFAULT = 1,
+ TAGS_SET = 2
+};
+
+static int append, force, keep, update_head_ok, verbose, quiet;
+static int tags = TAGS_DEFAULT;
static const char *depth;
+static const char *upload_pack;
static struct strbuf default_rla = STRBUF_INIT;
static struct transport *transport;
+static struct option builtin_fetch_options[] = {
+ OPT__QUIET(&quiet),
+ OPT__VERBOSE(&verbose),
+ OPT_BOOLEAN('a', "append", &append,
+ "append to .git/FETCH_HEAD instead of overwriting"),
+ OPT_STRING(0, "upload-pack", &upload_pack, "PATH",
+ "path to upload pack on remote end"),
+ OPT_BOOLEAN('f', "force", &force,
+ "force overwrite of local branch"),
+ OPT_SET_INT('t', "tags", &tags,
+ "fetch all tags and associated objects", TAGS_SET),
+ OPT_BOOLEAN('k', "keep", &keep, "keep downloaded pack"),
+ OPT_BOOLEAN('u', "update-head-ok", &update_head_ok,
+ "allow updating of HEAD ref"),
+ OPT_STRING(0, "depth", &depth, "DEPTH",
+ "deepen history of shallow clone"),
+ OPT_END()
+};
+
static void unlock_pack(void)
{
if (transport)
const struct ref *remote_refs = transport_get_remote_refs(transport);
- if (ref_count || tags) {
+ if (ref_count || tags == TAGS_SET) {
for (i = 0; i < ref_count; i++) {
get_fetch_map(remote_refs, &refs[i], &tail, 0);
if (refs[i].dst && refs[i].dst[0])
/* Merge everything on the command line, but not --tags */
for (rm = ref_map; rm; rm = rm->next)
rm->merge = 1;
- if (tags) {
+ if (tags == TAGS_SET) {
struct refspec refspec;
refspec.src = "refs/tags/";
refspec.dst = "refs/tags/";
struct ref *ref_map, *fetch_map;
struct ref *rm;
int autotags = (transport->remote->fetch_tags == 1);
- if (transport->remote->fetch_tags == 2 && !no_tags)
- tags = 1;
+ if (transport->remote->fetch_tags == 2 && tags != TAGS_UNSET)
+ tags = TAGS_SET;
if (transport->remote->fetch_tags == -1)
- no_tags = 1;
+ tags = TAGS_UNSET;
if (!transport->get_refs_list || !transport->fetch)
die("Don't know how to fetch from %s", transport->url);
/* if neither --no-tags nor --tags was specified, do automated tag
* following ... */
- if (!(tags || no_tags) && autotags) {
+ if (tags == TAGS_DEFAULT && autotags) {
ref_map = find_non_local_tags(transport, fetch_map);
if (ref_map) {
transport_set_option(transport, TRANS_OPT_DEPTH, "0");
int i;
static const char **refs = NULL;
int ref_nr = 0;
- const char *upload_pack = NULL;
- int keep = 0;
/* Record the command line for the reflog */
strbuf_addstr(&default_rla, "fetch");
for (i = 1; i < argc; i++)
strbuf_addf(&default_rla, " %s", argv[i]);
- for (i = 1; i < argc; i++) {
- const char *arg = argv[i];
-
- if (arg[0] != '-')
- break;
- if (!strcmp(arg, "--append") || !strcmp(arg, "-a")) {
- append = 1;
- continue;
- }
- if (!prefixcmp(arg, "--upload-pack=")) {
- upload_pack = arg + 14;
- continue;
- }
- if (!strcmp(arg, "--upload-pack")) {
- i++;
- if (i == argc)
- usage(fetch_usage);
- upload_pack = argv[i];
- continue;
- }
- if (!strcmp(arg, "--force") || !strcmp(arg, "-f")) {
- force = 1;
- continue;
- }
- if (!strcmp(arg, "--no-tags")) {
- no_tags = 1;
- continue;
- }
- if (!strcmp(arg, "--tags") || !strcmp(arg, "-t")) {
- tags = 1;
- continue;
- }
- if (!strcmp(arg, "--keep") || !strcmp(arg, "-k")) {
- keep = 1;
- continue;
- }
- if (!strcmp(arg, "--update-head-ok") || !strcmp(arg, "-u")) {
- update_head_ok = 1;
- continue;
- }
- if (!prefixcmp(arg, "--depth=")) {
- depth = arg + 8;
- continue;
- }
- if (!strcmp(arg, "--depth")) {
- i++;
- if (i == argc)
- usage(fetch_usage);
- depth = argv[i];
- continue;
- }
- if (!strcmp(arg, "--quiet") || !strcmp(arg, "-q")) {
- quiet = 1;
- continue;
- }
- if (!strcmp(arg, "--verbose") || !strcmp(arg, "-v")) {
- verbose++;
- continue;
- }
- usage(fetch_usage);
- }
+ argc = parse_options(argc, argv,
+ builtin_fetch_options, builtin_fetch_usage, 0);
- if (i == argc)
+ if (argc == 0)
remote = remote_get(NULL);
else
- remote = remote_get(argv[i++]);
+ remote = remote_get(argv[0]);
transport = transport_get(remote, remote->url[0]);
if (verbose >= 2)
if (!transport->url)
die("Where do you want to fetch from today?");
- if (i < argc) {
+ if (argc > 1) {
int j = 0;
- refs = xcalloc(argc - i + 1, sizeof(const char *));
- while (i < argc) {
+ refs = xcalloc(argc + 1, sizeof(const char *));
+ for (i = 1; i < argc; i++) {
if (!strcmp(argv[i], "tag")) {
char *ref;
i++;
refs[j++] = ref;
} else
refs[j++] = argv[i];
- i++;
}
refs[j] = NULL;
ref_nr = j;
#define QUOTE_NONE 0
#define QUOTE_SHELL 1
#define QUOTE_PERL 2
-#define QUOTE_PYTHON 3
-#define QUOTE_TCL 4
+#define QUOTE_PYTHON 4
+#define QUOTE_TCL 8
typedef enum { FIELD_STR, FIELD_ULONG, FIELD_TIME } cmp_type;
usage_with_options(for_each_ref_usage, opts);
}
if (HAS_MULTI_BITS(quote_style)) {
- error("more than one quoting style ?");
+ error("more than one quoting style?");
usage_with_options(for_each_ref_usage, opts);
}
if (verify_format(format))
static void gen_message_id(char *dest, unsigned int length, char *base)
{
- const char *committer = git_committer_info(-1);
+ const char *committer = git_committer_info(IDENT_WARN_ON_NO_NAME);
const char *email_start = strrchr(committer, '<');
const char *email_end = strrchr(committer, '>');
if(!email_start || !email_end || email_start > email_end - 1)
!strcmp(argv[i], "-s")) {
const char *committer;
const char *endpos;
- committer = git_committer_info(1);
+ committer = git_committer_info(IDENT_ERROR_ON_NO_NAME);
endpos = strchr(committer, '>');
if (!endpos)
die("bogos committer info %s\n", committer);
static const char ls_remote_usage[] =
"git-ls-remote [--upload-pack=<git-upload-pack>] [<host>:]<directory>";
+/*
+ * pattern is a list of tail-part of accepted refnames. Is there one
+ * among them that is a suffix of the path? Directory boundary must
+ * be honored when checking this match. IOW, patterns "master" and
+ * "sa/master" both match path "refs/hold/sa/master". On the other
+ * hand, path "refs/hold/foosa/master" is matched by "master" but not
+ * by "sa/master".
+ */
+
+static int tail_match(const char **pattern, const char *path)
+{
+ int pathlen;
+ const char *p;
+
+ if (!*pattern)
+ return 1; /* no restriction */
+
+ for (pathlen = strlen(path); (p = *pattern); pattern++) {
+ int pfxlen = pathlen - strlen(p);
+ if (pfxlen < 0)
+ continue; /* pattern is longer, will never match */
+ if (strcmp(path + pfxlen, p))
+ continue; /* no tail match */
+ if (!pfxlen || path[pfxlen - 1] == '/')
+ return 1; /* fully match at directory boundary */
+ }
+ return 0;
+}
+
int cmd_ls_remote(int argc, const char **argv, const char *prefix)
{
int i;
int nongit = 0;
unsigned flags = 0;
const char *uploadpack = NULL;
+ const char **pattern = NULL;
struct remote *remote;
struct transport *transport;
break;
}
- if (!dest || i != argc - 1)
+ if (!dest)
usage(ls_remote_usage);
-
+ pattern = argv + i + 1;
remote = nongit ? NULL : remote_get(dest);
if (remote && !remote->url_nr)
die("remote %s has no configured URL", dest);
if (!ref)
return 1;
- while (ref) {
- if (check_ref_type(ref, flags))
- printf("%s %s\n", sha1_to_hex(ref->old_sha1), ref->name);
- ref = ref->next;
+ for ( ; ref; ref = ref->next) {
+ if (!check_ref_type(ref, flags))
+ continue;
+ if (!tail_match(pattern, ref->name))
+ continue;
+ printf("%s %s\n", sha1_to_hex(ref->old_sha1), ref->name);
}
return 0;
}
free(sorted_by_offset);
}
+/*
+ * We search for deltas in a list sorted by type, by filename hash, and then
+ * by size, so that we see progressively smaller and smaller files.
+ * That's because we prefer deltas to be from the bigger file
+ * to the smaller -- deletes are potentially cheaper, but perhaps
+ * more importantly, the bigger file is likely the more recent
+ * one. The deepest deltas are therefore the oldest objects which are
+ * less susceptible to be accessed often.
+ */
static int type_size_sort(const void *_a, const void *_b)
{
const struct object_entry *a = *(struct object_entry **)_a;
const struct object_entry *b = *(struct object_entry **)_b;
- if (a->type < b->type)
- return -1;
if (a->type > b->type)
- return 1;
- if (a->hash < b->hash)
return -1;
- if (a->hash > b->hash)
+ if (a->type < b->type)
return 1;
- if (a->preferred_base < b->preferred_base)
+ if (a->hash > b->hash)
return -1;
- if (a->preferred_base > b->preferred_base)
+ if (a->hash < b->hash)
return 1;
- if (a->size < b->size)
+ if (a->preferred_base > b->preferred_base)
return -1;
+ if (a->preferred_base < b->preferred_base)
+ return 1;
if (a->size > b->size)
+ return -1;
+ if (a->size < b->size)
return 1;
- return a > b ? -1 : (a < b); /* newest last */
+ return a < b ? -1 : (a > b); /* newest first */
}
struct unpacked {
#endif
-/*
- * We search for deltas _backwards_ in a list sorted by type and
- * by size, so that we see progressively smaller and smaller files.
- * That's because we prefer deltas to be from the bigger file
- * to the smaller - deletes are potentially cheaper, but perhaps
- * more importantly, the bigger file is likely the more recent
- * one.
- */
static int try_delta(struct unpacked *trg, struct unpacked *src,
unsigned max_depth, unsigned long *mem_usage)
{
}
}
- trg_entry->delta = src_entry;
- trg_entry->delta_size = delta_size;
- trg->depth = src->depth + 1;
-
/*
* Handle memory allocation outside of the cache
* accounting lock. Compiler will optimize the strangeness
trg_entry->delta_data = NULL;
}
if (delta_cacheable(src_size, trg_size, delta_size)) {
- delta_cache_size += trg_entry->delta_size;
+ delta_cache_size += delta_size;
cache_unlock();
trg_entry->delta_data = xrealloc(delta_buf, delta_size);
} else {
free(delta_buf);
}
+ trg_entry->delta = src_entry;
+ trg_entry->delta_size = delta_size;
+ trg->depth = src->depth + 1;
+
return 1;
}
return freed_mem;
}
-static void find_deltas(struct object_entry **list, unsigned list_size,
+static void find_deltas(struct object_entry **list, unsigned *list_size,
int window, int depth, unsigned *processed)
{
- uint32_t i = list_size, idx = 0, count = 0;
+ uint32_t i, idx = 0, count = 0;
unsigned int array_size = window * sizeof(struct unpacked);
struct unpacked *array;
unsigned long mem_usage = 0;
array = xmalloc(array_size);
memset(array, 0, array_size);
- do {
- struct object_entry *entry = list[--i];
+ for (;;) {
+ struct object_entry *entry = *list++;
struct unpacked *n = array + idx;
int j, max_depth, best_base = -1;
+ progress_lock();
+ if (!*list_size) {
+ progress_unlock();
+ break;
+ }
+ (*list_size)--;
+ if (!entry->preferred_base) {
+ (*processed)++;
+ display_progress(progress_state, *processed);
+ }
+ progress_unlock();
+
mem_usage -= free_unpacked(n);
n->entry = entry;
if (entry->preferred_base)
goto next;
- progress_lock();
- (*processed)++;
- display_progress(progress_state, *processed);
- progress_unlock();
-
/*
* If the current object is at pack edge, take the depth the
* objects that depend on the current object into account
count++;
if (idx >= window)
idx = 0;
- } while (i > 0);
+ }
for (i = 0; i < window; ++i) {
free_delta_index(array[i].index);
pthread_t thread;
struct object_entry **list;
unsigned list_size;
+ unsigned remaining;
int window;
int depth;
unsigned *processed;
pthread_mutex_lock(&data_ready);
pthread_mutex_unlock(&data_request);
- if (!me->list_size)
+ if (!me->remaining)
return NULL;
- find_deltas(me->list, me->list_size,
+ find_deltas(me->list, &me->remaining,
me->window, me->depth, me->processed);
}
}
int window, int depth, unsigned *processed)
{
struct thread_params *target, p[delta_search_threads];
- int i, ret;
- unsigned chunk_size;
+ int i, ret, active_threads = 0;
if (delta_search_threads <= 1) {
- find_deltas(list, list_size, window, depth, processed);
+ find_deltas(list, &list_size, window, depth, processed);
return;
}
pthread_mutex_lock(&data_provider);
pthread_mutex_lock(&data_ready);
+ /* Start work threads. */
for (i = 0; i < delta_search_threads; i++) {
p[i].window = window;
p[i].depth = depth;
p[i].processed = processed;
+ p[i].remaining = 0;
ret = pthread_create(&p[i].thread, NULL,
threaded_find_deltas, &p[i]);
if (ret)
die("unable to create thread: %s", strerror(ret));
+ active_threads++;
}
- /* this should be auto-tuned somehow */
- chunk_size = window * 1000;
+ /* Then partition the work amongst them. */
+ for (i = 0; i < delta_search_threads; i++) {
+ unsigned sub_size = list_size / (delta_search_threads - i);
- do {
- unsigned sublist_size = chunk_size;
- if (sublist_size > list_size)
- sublist_size = list_size;
+ pthread_mutex_lock(&data_provider);
+ target = data_requester;
+ if (!sub_size) {
+ pthread_mutex_unlock(&data_ready);
+ pthread_join(target->thread, NULL);
+ active_threads--;
+ continue;
+ }
/* try to split chunks on "path" boundaries */
- while (sublist_size < list_size && list[sublist_size]->hash &&
- list[sublist_size]->hash == list[sublist_size-1]->hash)
- sublist_size++;
+ while (sub_size < list_size && list[sub_size]->hash &&
+ list[sub_size]->hash == list[sub_size-1]->hash)
+ sub_size++;
+
+ target->list = list;
+ target->list_size = sub_size;
+ target->remaining = sub_size;
+ pthread_mutex_unlock(&data_ready);
+ list += sub_size;
+ list_size -= sub_size;
+ }
+
+ /*
+ * Now let's wait for work completion. Each time a thread is done
+ * with its work, we steal half of the remaining work from the
+ * thread with the largest number of unprocessed objects and give
+ * it to that newly idle thread. This ensure good load balancing
+ * until the remaining object list segments are simply too short
+ * to be worth splitting anymore.
+ */
+ do {
+ struct thread_params *victim = NULL;
+ unsigned sub_size = 0;
pthread_mutex_lock(&data_provider);
target = data_requester;
- target->list = list;
- target->list_size = sublist_size;
+
+ progress_lock();
+ for (i = 0; i < delta_search_threads; i++)
+ if (p[i].remaining > 2*window &&
+ (!victim || victim->remaining < p[i].remaining))
+ victim = &p[i];
+ if (victim) {
+ sub_size = victim->remaining / 2;
+ list = victim->list + victim->list_size - sub_size;
+ while (sub_size && list[0]->hash &&
+ list[0]->hash == list[-1]->hash) {
+ list++;
+ sub_size--;
+ }
+ target->list = list;
+ victim->list_size -= sub_size;
+ victim->remaining -= sub_size;
+ }
+ progress_unlock();
+
+ target->list_size = sub_size;
+ target->remaining = sub_size;
pthread_mutex_unlock(&data_ready);
- list += sublist_size;
- list_size -= sublist_size;
- if (!sublist_size) {
+ if (!sub_size) {
pthread_join(target->thread, NULL);
- i--;
+ active_threads--;
}
- } while (i);
+ } while (active_threads);
}
#else
-#define ll_find_deltas find_deltas
+#define ll_find_deltas(l, s, w, d, p) find_deltas(l, &s, w, d, p)
#endif
static void prepare_pack(int window, int depth)
static struct path_list mailmap = {NULL, 0, 0, 0};
-static void insert_author_oneline(struct path_list *list,
- const char *author, int authorlen,
- const char *oneline, int onelinelen)
+static void insert_one_record(struct path_list *list,
+ const char *author,
+ const char *oneline)
{
const char *dot3 = common_repo_prefix;
char *buffer, *p;
struct path_list_item *item;
struct path_list *onelines;
+ char namebuf[1024];
+ size_t len;
+ const char *eol;
+ const char *boemail, *eoemail;
+
+ boemail = strchr(author, '<');
+ if (!boemail)
+ return;
+ eoemail = strchr(boemail, '>');
+ if (!eoemail)
+ return;
+ if (!map_email(&mailmap, boemail+1, namebuf, sizeof(namebuf))) {
+ while (author < boemail && isspace(*author))
+ author++;
+ for (len = 0;
+ len < sizeof(namebuf) - 1 && author + len < boemail;
+ len++)
+ namebuf[len] = author[len];
+ while (0 < len && isspace(namebuf[len-1]))
+ len--;
+ namebuf[len] = '\0';
+ }
- while (authorlen > 0 && isspace(author[authorlen - 1]))
- authorlen--;
-
- buffer = xmemdupz(author, authorlen);
+ buffer = xstrdup(namebuf);
item = path_list_insert(buffer, list);
if (item->util == NULL)
item->util = xcalloc(1, sizeof(struct path_list));
else
free(buffer);
+ eol = strchr(oneline, '\n');
+ if (!eol)
+ eol = oneline + strlen(oneline);
+ while (*oneline && isspace(*oneline) && *oneline != '\n')
+ oneline++;
if (!prefixcmp(oneline, "[PATCH")) {
char *eob = strchr(oneline, ']');
-
- if (eob) {
- while (isspace(eob[1]) && eob[1] != '\n')
- eob++;
- if (eob - oneline < onelinelen) {
- onelinelen -= eob - oneline;
- oneline = eob;
- }
- }
+ if (eob && (!eol || eob < eol))
+ oneline = eob + 1;
}
-
- while (onelinelen > 0 && isspace(oneline[0])) {
+ while (*oneline && isspace(*oneline) && *oneline != '\n')
oneline++;
- onelinelen--;
- }
- while (onelinelen > 0 && isspace(oneline[onelinelen - 1]))
- onelinelen--;
- buffer = xmemdupz(oneline, onelinelen);
+ len = eol - oneline;
+ while (len && isspace(oneline[len-1]))
+ len--;
+ buffer = xmemdupz(oneline, len);
if (dot3) {
int dot3len = strlen(dot3);
static void read_from_stdin(struct path_list *list)
{
- char buffer[1024];
-
- while (fgets(buffer, sizeof(buffer), stdin) != NULL) {
- char *bob;
- if ((buffer[0] == 'A' || buffer[0] == 'a') &&
- !prefixcmp(buffer + 1, "uthor: ") &&
- (bob = strchr(buffer + 7, '<')) != NULL) {
- char buffer2[1024], offset = 0;
-
- if (map_email(&mailmap, bob + 1, buffer, sizeof(buffer)))
- bob = buffer + strlen(buffer);
- else {
- offset = 8;
- while (buffer + offset < bob &&
- isspace(bob[-1]))
- bob--;
- }
-
- while (fgets(buffer2, sizeof(buffer2), stdin) &&
- buffer2[0] != '\n')
- ; /* chomp input */
- if (fgets(buffer2, sizeof(buffer2), stdin)) {
- int l2 = strlen(buffer2);
- int i;
- for (i = 0; i < l2; i++)
- if (!isspace(buffer2[i]))
- break;
- insert_author_oneline(list,
- buffer + offset,
- bob - buffer - offset,
- buffer2 + i, l2 - i);
- }
- }
+ char author[1024], oneline[1024];
+
+ while (fgets(author, sizeof(author), stdin) != NULL) {
+ if (!(author[0] == 'A' || author[0] == 'a') ||
+ prefixcmp(author + 1, "uthor: "))
+ continue;
+ while (fgets(oneline, sizeof(oneline), stdin) &&
+ oneline[0] != '\n')
+ ; /* discard headers */
+ while (fgets(oneline, sizeof(oneline), stdin) &&
+ oneline[0] == '\n')
+ ; /* discard blanks */
+ insert_one_record(list, author + 8, oneline);
}
}
static void get_from_rev(struct rev_info *rev, struct path_list *list)
{
- char scratch[1024];
struct commit *commit;
prepare_revision_walk(rev);
while ((commit = get_revision(rev)) != NULL) {
- const char *author = NULL, *oneline, *buffer;
- int authorlen = authorlen, onelinelen;
+ const char *author = NULL, *buffer;
- /* get author and oneline */
- for (buffer = commit->buffer; buffer && *buffer != '\0' &&
- *buffer != '\n'; ) {
+ buffer = commit->buffer;
+ while (*buffer && *buffer != '\n') {
const char *eol = strchr(buffer, '\n');
if (eol == NULL)
else
eol++;
- if (!prefixcmp(buffer, "author ")) {
- char *bracket = strchr(buffer, '<');
-
- if (bracket == NULL || bracket > eol)
- die("Invalid commit buffer: %s",
- sha1_to_hex(commit->object.sha1));
-
- if (map_email(&mailmap, bracket + 1, scratch,
- sizeof(scratch))) {
- author = scratch;
- authorlen = strlen(scratch);
- } else {
- if (bracket[-1] == ' ')
- bracket--;
-
- author = buffer + 7;
- authorlen = bracket - buffer - 7;
- }
- }
+ if (!prefixcmp(buffer, "author "))
+ author = buffer + 7;
buffer = eol;
}
-
- if (author == NULL)
- die ("Missing author: %s",
- sha1_to_hex(commit->object.sha1));
-
- if (buffer == NULL || *buffer == '\0') {
- oneline = "<none>";
- onelinelen = sizeof(oneline) + 1;
- } else {
- char *eol;
-
- oneline = buffer + 1;
- eol = strchr(oneline, '\n');
- if (eol == NULL)
- onelinelen = strlen(oneline);
- else
- onelinelen = eol - oneline;
- }
-
- insert_author_oneline(list,
- author, authorlen, oneline, onelinelen);
+ if (!author)
+ die("Missing author: %s",
+ sha1_to_hex(commit->object.sha1));
+ if (*buffer)
+ buffer++;
+ insert_one_record(list, author, !*buffer ? "<none>" : buffer);
}
-
}
static int parse_uint(char const **arg, int comma)
die("There was a problem with the editor %s.", editor);
}
+ if (!buffer)
+ return;
if (strbuf_read_file(buffer, path, 0) < 0)
die("could not read message file '%s': %s",
path, strerror(errno));
int len;
if (!*signingkey) {
- if (strlcpy(signingkey, git_committer_info(1),
+ if (strlcpy(signingkey, git_committer_info(IDENT_ERROR_ON_NO_NAME),
sizeof(signingkey)) > sizeof(signingkey) - 1)
return error("committer info too long.");
bracket = strchr(signingkey, '>');
sha1_to_hex(object),
typename(type),
tag,
- git_committer_info(1));
+ git_committer_info(IDENT_ERROR_ON_NO_NAME));
if (header_len > sizeof(header_buf) - 1)
die("tag header too big.");
unsigned long approxidate(const char *);
enum date_mode parse_date_format(const char *format);
+#define IDENT_WARN_ON_NO_NAME 1
+#define IDENT_ERROR_ON_NO_NAME 2
+#define IDENT_NO_DATE 4
extern const char *git_author_info(int);
extern const char *git_committer_info(int);
extern const char *fmt_ident(const char *name, const char *email, const char *date_str, int);
die("bad config value '%s' for variable '%s'", value, var);
}
-int git_config_colorbool(const char *var, const char *value)
+int git_config_colorbool(const char *var, const char *value, int stdout_is_tty)
{
if (value) {
if (!strcasecmp(value, "never"))
/* any normal truth value defaults to 'auto' */
auto_color:
- if (isatty(1) || (pager_in_use && pager_use_color)) {
+ if (stdout_is_tty < 0)
+ stdout_is_tty = isatty(1);
+ if (stdout_is_tty || (pager_in_use && pager_use_color)) {
char *term = getenv("TERM");
if (term && strcmp(term, "dumb"))
return 1;
/* "\033[1;38;5;2xx;48;5;2xxm\0" is 23 bytes */
#define COLOR_MAXLEN 24
-int git_config_colorbool(const char *var, const char *value);
+int git_config_colorbool(const char *var, const char *value, int stdout_is_tty);
void color_parse(const char *var, const char *value, char *dst);
int color_fprintf(FILE *fp, const char *color, const char *fmt, ...);
int color_fprintf_ln(FILE *fp, const char *color, const char *fmt, ...);
int length = strlen(key+store.baselen+1);
int quote = 0;
- /* Check to see if the value needs to be quoted. */
+ /*
+ * Check to see if the value needs to be surrounded with a dq pair.
+ * Note that problematic characters are always backslash-quoted; this
+ * check is about not losing leading or trailing SP and strings that
+ * follow beginning-of-comment characters (i.e. ';' and '#') by the
+ * configuration parser.
+ */
if (value[0] == ' ')
quote = 1;
for (i = 0; value[i]; i++)
if (value[i] == ';' || value[i] == '#')
quote = 1;
- if (value[i-1] == ' ')
+ if (i && value[i-1] == ' ')
quote = 1;
if (write_in_full(fd, "\t", 1) != 1 ||
NO_SETENV=@NO_SETENV@
NO_MKDTEMP=@NO_MKDTEMP@
NO_ICONV=@NO_ICONV@
+OLD_ICONV=@OLD_ICONV@
NO_DEFLATE_BOUND=@NO_DEFLATE_BOUND@
## Checks for header files.
+AC_MSG_NOTICE([CHECKS for header files])
+#
+# Define OLD_ICONV if your library has an old iconv(), where the second
+# (input buffer pointer) parameter is declared with type (const char **).
+AC_DEFUN([OLDICONVTEST_SRC], [[
+#include <iconv.h>
+
+extern size_t iconv(iconv_t cd,
+ char **inbuf, size_t *inbytesleft,
+ char **outbuf, size_t *outbytesleft);
+
+int main(void)
+{
+ return 0;
+}
+]])
+AC_MSG_CHECKING([for old iconv()])
+AC_COMPILE_IFELSE(OLDICONVTEST_SRC,
+ [AC_MSG_RESULT([no])],
+ [AC_MSG_RESULT([yes])
+ OLD_ICONV=UnfortunatelyYes])
+AC_SUBST(OLD_ICONV)
## Checks for typedefs, structures, and compiler characteristics.
os.system('git-ls-files -x .hg --deleted | git-update-index --remove --stdin')
# commit
- os.system(getgitenv(user, date) + 'git-commit -a -F %s' % filecomment)
+ os.system(getgitenv(user, date) + 'git commit --allow-empty -a -F %s' % filecomment)
os.unlink(filecomment)
# tag
return 0;
}
if (!strcmp(var, "diff.color") || !strcmp(var, "color.diff")) {
- diff_use_color_default = git_config_colorbool(var, value);
+ diff_use_color_default = git_config_colorbool(var, value, -1);
return 0;
}
if (!strcmp(var, "diff.renames")) {
#!/usr/bin/perl -w
use strict;
+use Git;
+
+# Prompt colors:
+my ($prompt_color, $header_color, $help_color, $normal_color);
+# Diff colors:
+my ($new_color, $old_color, $fraginfo_color, $metainfo_color, $whitespace_color);
+
+my ($use_color, $diff_use_color);
+my $repo = Git->repository();
+
+$use_color = $repo->get_colorbool('color.interactive');
+
+if ($use_color) {
+ # Set interactive colors:
+
+ # Grab the 3 main colors in git color string format, with sane
+ # (visible) defaults:
+ $prompt_color = $repo->get_color("color.interactive.prompt", "bold blue");
+ $header_color = $repo->get_color("color.interactive.header", "bold");
+ $help_color = $repo->get_color("color.interactive.help", "red bold");
+ $normal_color = $repo->get_color("", "reset");
+
+ # Do we also set diff colors?
+ $diff_use_color = $repo->get_colorbool('color.diff');
+ if ($diff_use_color) {
+ $new_color = $repo->get_color("color.diff.new", "green");
+ $old_color = $repo->get_color("color.diff.old", "red");
+ $fraginfo_color = $repo->get_color("color.diff.frag", "cyan");
+ $metainfo_color = $repo->get_color("color.diff.meta", "bold");
+ $whitespace_color = $repo->get_color("color.diff.whitespace", "normal red");
+ }
+}
+
+sub colored {
+ my $color = shift;
+ my $string = join("", @_);
+
+ if ($use_color) {
+ # Put a color code at the beginning of each line, a reset at the end
+ # color after newlines that are not at the end of the string
+ $string =~ s/(\n+)(.)/$1$color$2/g;
+ # reset before newlines
+ $string =~ s/(\n+)/$normal_color$1/g;
+ # codes at beginning and end (if necessary):
+ $string =~ s/^/$color/;
+ $string =~ s/$/$normal_color/ unless $string =~ /\n$/;
+ }
+ return $string;
+}
# command line options
my $patch_mode;
sub highlight_prefix {
my $prefix = shift;
my $remainder = shift;
- return $remainder unless defined $prefix;
- return is_valid_prefix($prefix) ?
- "[$prefix]$remainder" :
- "$prefix$remainder";
+
+ if (!defined $prefix) {
+ return $remainder;
+ }
+
+ if (!is_valid_prefix($prefix)) {
+ return "$prefix$remainder";
+ }
+
+ if (!$use_color) {
+ return "[$prefix]$remainder";
+ }
+
+ return "$prompt_color$prefix$normal_color$remainder";
}
sub list_and_choose {
if (!$opts->{LIST_FLAT}) {
print " ";
}
- print "$opts->{HEADER}\n";
+ print colored $header_color, "$opts->{HEADER}\n";
}
for ($i = 0; $i < @stuff; $i++) {
my $chosen = $chosen[$i] ? '*' : ' ';
return if ($opts->{LIST_ONLY});
- print $opts->{PROMPT};
+ print colored $prompt_color, $opts->{PROMPT};
if ($opts->{SINGLETON}) {
print "> ";
}
}
sub singleton_prompt_help_cmd {
- print <<\EOF ;
+ print colored $help_color, <<\EOF ;
Prompt help:
1 - select a numbered item
foo - select item based on unique prefix
}
sub prompt_help_cmd {
- print <<\EOF ;
+ print colored $help_color, <<\EOF ;
Prompt help:
1 - select a single item
3-5 - select a range of items
sub parse_diff {
my ($path) = @_;
my @diff = run_cmd_pipe(qw(git diff-files -p --), $path);
- my (@hunk) = { TEXT => [] };
+ my @colored = ();
+ if ($diff_use_color) {
+ @colored = run_cmd_pipe(qw(git diff-files -p --color --), $path);
+ }
+ my (@hunk) = { TEXT => [], DISPLAY => [] };
- for (@diff) {
- if (/^@@ /) {
- push @hunk, { TEXT => [] };
+ for (my $i = 0; $i < @diff; $i++) {
+ if ($diff[$i] =~ /^@@ /) {
+ push @hunk, { TEXT => [], DISPLAY => [] };
}
- push @{$hunk[-1]{TEXT}}, $_;
+ push @{$hunk[-1]{TEXT}}, $diff[$i];
+ push @{$hunk[-1]{DISPLAY}},
+ ($diff_use_color ? $colored[$i] : $diff[$i]);
}
return @hunk;
}
}
sub split_hunk {
- my ($text) = @_;
+ my ($text, $display) = @_;
my @split = ();
-
+ if (!defined $display) {
+ $display = $text;
+ }
# If there are context lines in the middle of a hunk,
# it can be split, but we would need to take care of
# overlaps later.
my $i = $hunk_start - 1;
my $this = +{
TEXT => [],
+ DISPLAY => [],
OLD => $o_ofs,
NEW => $n_ofs,
OCNT => 0,
NCNT => 0,
ADDDEL => 0,
POSTCTX => 0,
+ USE => undef,
};
while (++$i < @$text) {
my $line = $text->[$i];
+ my $display = $display->[$i];
if ($line =~ /^ /) {
if ($this->{ADDDEL} &&
!defined $next_hunk_start) {
$next_hunk_start = $i;
}
push @{$this->{TEXT}}, $line;
+ push @{$this->{DISPLAY}}, $display;
$this->{OCNT}++;
$this->{NCNT}++;
if (defined $next_hunk_start) {
redo OUTER;
}
push @{$this->{TEXT}}, $line;
+ push @{$this->{DISPLAY}}, $display;
$this->{ADDDEL}++;
if ($line =~ /^-/) {
$this->{OCNT}++;
" +$n_ofs" .
(($n_cnt != 1) ? ",$n_cnt" : '') .
" @@\n");
+ my $display_head = $head;
unshift @{$hunk->{TEXT}}, $head;
+ if ($diff_use_color) {
+ $display_head = colored($fraginfo_color, $head);
+ }
+ unshift @{$hunk->{DISPLAY}}, $display_head;
}
- return map { $_->{TEXT} } @split;
+ return @split;
}
sub find_last_o_ctx {
}
sub help_patch_cmd {
- print <<\EOF ;
+ print colored $help_color, <<\EOF ;
y - stage this hunk
n - do not stage this hunk
a - stage this and all the remaining hunks in the file
my ($ix, $num);
my $path = shift;
my ($head, @hunk) = parse_diff($path);
- for (@{$head->{TEXT}}) {
+ for (@{$head->{DISPLAY}}) {
print;
}
$num = scalar @hunk;
if (hunk_splittable($hunk[$ix]{TEXT})) {
$other .= '/s';
}
- for (@{$hunk[$ix]{TEXT}}) {
+ for (@{$hunk[$ix]{DISPLAY}}) {
print;
}
- print "Stage this hunk [y/n/a/d$other/?]? ";
+ print colored $prompt_color, "Stage this hunk [y/n/a/d$other/?]? ";
my $line = <STDIN>;
if ($line) {
if ($line =~ /^y/i) {
next;
}
elsif ($other =~ /s/ && $line =~ /^s/) {
- my @split = split_hunk($hunk[$ix]{TEXT});
+ my @split = split_hunk($hunk[$ix]{TEXT}, $hunk[$ix]{DISPLAY});
if (1 < @split) {
- print "Split into ",
+ print colored $header_color, "Split into ",
scalar(@split), " hunks.\n";
}
- splice(@hunk, $ix, 1,
- map { +{ TEXT => $_, USE => undef } }
- @split);
+ splice (@hunk, $ix, 1, @split);
$num = scalar @hunk;
next;
}
HEADER => $status_head, },
@mods);
return if (!@them);
- system(qw(git diff-index -p --cached HEAD --),
- map { $_->{VALUE} } @them);
+ system(qw(git diff -p --cached HEAD --), map { $_->{VALUE} } @them);
}
sub quit_cmd {
}
sub help_cmd {
- print <<\EOF ;
+ print colored $help_color, <<\EOF ;
status - show paths with changes
update - add working tree state to the staged set of changes
revert - revert staged set of changes back to the HEAD version
bisect_visualize() {
bisect_next_check fail
+
+ if test $# = 0
+ then
+ case "${DISPLAY+set}" in
+ '') set git log ;;
+ set) set gitk ;;
+ esac
+ else
+ case "$1" in
+ git*|tig) ;;
+ -*) set git log "$@" ;;
+ *) set git "$@" ;;
+ esac
+ fi
+
not=$(git for-each-ref --format='%(refname)' "refs/bisect/good-*")
- eval gitk refs/bisect/bad --not $not -- $(cat "$GIT_DIR/BISECT_NAMES")
+ eval '"$@"' refs/bisect/bad --not $not -- $(cat "$GIT_DIR/BISECT_NAMES")
}
bisect_reset() {
next)
# Not sure we want "next" at the UI level anymore.
bisect_next "$@" ;;
- visualize)
+ visualize|view)
bisect_visualize "$@" ;;
reset)
bisect_reset "$@" ;;
chdir $tmpdir;
- # populate the temporary index based
+ # populate the temporary index
system("git-read-tree", $parenthash);
unless ($? == 0)
{
die "Error running git-read-tree $state->{module} $file_index $!";
}
- $log->info("Created index '$file_index' with for head $state->{module} - exit status $?");
+ $log->info("Created index '$file_index' for head $state->{module} - exit status $?");
my @committedfiles = ();
my %oldmeta;
my ( $filepart, $dirpart ) = filenamesplit($filename);
- # do a checkout of the file if it part of this tree
+ # do a checkout of the file if it is part of this tree
if ($wrev) {
system('git-checkout-index', '-f', '-u', $filename);
unless ($? == 0) {
exit;
}
- # Check that this is allowed, just as we would with a receive-pack
- my @cmd = ( $ENV{GIT_DIR}.'hooks/update', "refs/heads/$state->{module}",
+ ### Emulate git-receive-pack by running hooks/update
+ my @hook = ( $ENV{GIT_DIR}.'hooks/update', "refs/heads/$state->{module}",
$parenthash, $commithash );
- if( -x $cmd[0] ) {
- unless( system( @cmd ) == 0 )
+ if( -x $hook[0] ) {
+ unless( system( @hook ) == 0 )
{
$log->warn("Commit failed (update hook declined to update ref)");
print "error 1 Commit failed (update hook declined)\n";
}
}
+ ### Update the ref
if (system(qw(git update-ref -m), "cvsserver ci",
"refs/heads/$state->{module}", $commithash, $parenthash)) {
$log->warn("update-ref for $state->{module} failed.");
exit;
}
+ ### Emulate git-receive-pack by running hooks/post-receive
+ my $hook = $ENV{GIT_DIR}.'hooks/post-receive';
+ if( -x $hook ) {
+ open(my $pipe, "| $hook") || die "can't fork $!";
+
+ local $SIG{PIPE} = sub { die 'pipe broke' };
+
+ print $pipe "$parenthash $commithash refs/heads/$state->{module}\n";
+
+ close $pipe || die "bad pipe: $! $?";
+ }
+
+ ### Then hooks/post-update
+ $hook = $ENV{GIT_DIR}.'hooks/post-update';
+ if (-x $hook) {
+ system($hook, "refs/heads/$state->{module}");
+ }
+
$updater->update();
# foreach file specified on the command line ...
RM_RF ?= rm -rf
RMDIR ?= rmdir
-INSTALL_D0 = $(INSTALL) -d -m755 # space is required here
+INSTALL_D0 = $(INSTALL) -d -m 755 # space is required here
INSTALL_D1 =
-INSTALL_R0 = $(INSTALL) -m644 # space is required here
+INSTALL_R0 = $(INSTALL) -m 644 # space is required here
INSTALL_R1 =
-INSTALL_X0 = $(INSTALL) -m755 # space is required here
+INSTALL_X0 = $(INSTALL) -m 755 # space is required here
INSTALL_X1 =
INSTALL_A0 = find # space is required here
INSTALL_A1 = | cpio -pud
QUIET_2DEVNULL = 2>/dev/null
INSTALL_D0 = dir=
- INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m755 "$$dir"
+ INSTALL_D1 = && echo ' ' DEST $$dir && $(INSTALL) -d -m 755 "$$dir"
INSTALL_R0 = src=
- INSTALL_R1 = && echo ' ' INSTALL 644 `basename $$src` && $(INSTALL) -m644 $$src
+ INSTALL_R1 = && echo ' ' INSTALL 644 `basename $$src` && $(INSTALL) -m 644 $$src
INSTALL_X0 = src=
- INSTALL_X1 = && echo ' ' INSTALL 755 `basename $$src` && $(INSTALL) -m755 $$src
+ INSTALL_X1 = && echo ' ' INSTALL 755 `basename $$src` && $(INSTALL) -m 755 $$src
INSTALL_A0 = src=
INSTALL_A1 = && echo ' ' INSTALL ' ' `basename "$$src"` && find "$$src" | cpio -pud
update-po:: $(PO_TEMPLATE)
$(foreach p, $(ALL_POFILES), echo Updating $p ; msgmerge -U $p $(PO_TEMPLATE) ; )
$(ALL_MSGFILES): %.msg : %.po
- $(QUIET_MSGFMT0)$(MSGFMT) --statistics --tcl $< -l $(basename $(notdir $<)) -d $(dir $@) $(QUIET_MSGFMT1)
+ $(QUIET_MSGFMT0)$(MSGFMT) --statistics --tcl -l $(basename $(notdir $<)) -d $(dir $@) $< $(QUIET_MSGFMT1)
lib/tclIndex: $(ALL_LIBFILES) GIT-GUI-VARS
$(QUIET_INDEX)if echo \
A good commit message has the following format:
-- First line: Describe in one sentance what you did.
+- First line: Describe in one sentence what you did.
- Second line: Blank
- Remaining lines: Describe why this change is good.
"]
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-19 21:10+0200\n"
-"PO-Revision-Date: 2007-10-20 15:28+0200\n"
+"POT-Creation-Date: 2007-11-24 10:36+0100\n"
+"PO-Revision-Date: 2007-11-24 10:55+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:590 git-gui.sh:604 git-gui.sh:617 git-gui.sh:700
-#: git-gui.sh:719
+#: git-gui.sh:41 git-gui.sh:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
+#: git-gui.sh:733
msgid "git-gui: fatal error"
msgstr "git-gui: Programmfehler"
-#: git-gui.sh:551
+#: git-gui.sh:565
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "Ungültige Zeichensatz-Angabe in %s:"
-#: git-gui.sh:576
+#: git-gui.sh:590
msgid "Main Font"
msgstr "Programmschriftart"
-#: git-gui.sh:577
+#: git-gui.sh:591
msgid "Diff/Console Font"
msgstr "Vergleich-Schriftart"
-#: git-gui.sh:591
+#: git-gui.sh:605
msgid "Cannot find git in PATH."
msgstr "Git kann im PATH nicht gefunden werden."
-#: git-gui.sh:618
+#: git-gui.sh:632
msgid "Cannot parse Git version string:"
msgstr "Git Versionsangabe kann nicht erkannt werden:"
-#: git-gui.sh:636
+#: git-gui.sh:650
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
"\n"
"Soll angenommen werden, »%s« sei Version 1.5.0?\n"
-#: git-gui.sh:874
+#: git-gui.sh:888
msgid "Git directory not found:"
msgstr "Git-Verzeichnis nicht gefunden:"
-#: git-gui.sh:881
+#: git-gui.sh:895
msgid "Cannot move to top of working directory:"
msgstr ""
"Es konnte nicht in das oberste Verzeichnis der Arbeitskopie gewechselt "
"werden:"
-#: git-gui.sh:888
+#: git-gui.sh:902
msgid "Cannot use funny .git directory:"
msgstr "Unerwartete Struktur des .git Verzeichnis:"
-#: git-gui.sh:893
+#: git-gui.sh:907
msgid "No working directory"
msgstr "Kein Arbeitsverzeichnis"
-#: git-gui.sh:1040
+#: git-gui.sh:1054
msgid "Refreshing file status..."
msgstr "Dateistatus aktualisieren..."
-#: git-gui.sh:1105
+#: git-gui.sh:1119
msgid "Scanning for modified files ..."
msgstr "Nach geänderten Dateien suchen..."
-#: git-gui.sh:1280 lib/browser.tcl:245
+#: git-gui.sh:1294 lib/browser.tcl:245
msgid "Ready."
msgstr "Bereit."
-#: git-gui.sh:1546
+#: git-gui.sh:1560
msgid "Unmodified"
msgstr "Unverändert"
-#: git-gui.sh:1548
+#: git-gui.sh:1562
msgid "Modified, not staged"
msgstr "Verändert, nicht bereitgestellt"
-#: git-gui.sh:1549 git-gui.sh:1554
+#: git-gui.sh:1563 git-gui.sh:1568
msgid "Staged for commit"
msgstr "Bereitgestellt zum Eintragen"
-#: git-gui.sh:1550 git-gui.sh:1555
+#: git-gui.sh:1564 git-gui.sh:1569
msgid "Portions staged for commit"
msgstr "Teilweise bereitgestellt zum Eintragen"
-#: git-gui.sh:1551 git-gui.sh:1556
+#: git-gui.sh:1565 git-gui.sh:1570
msgid "Staged for commit, missing"
msgstr "Bereitgestellt zum Eintragen, fehlend"
-#: git-gui.sh:1553
+#: git-gui.sh:1567
msgid "Untracked, not staged"
msgstr "Nicht unter Versionskontrolle, nicht bereitgestellt"
-#: git-gui.sh:1558
+#: git-gui.sh:1572
msgid "Missing"
msgstr "Fehlend"
-#: git-gui.sh:1559
+#: git-gui.sh:1573
msgid "Staged for removal"
msgstr "Bereitgestellt zum Löschen"
-#: git-gui.sh:1560
+#: git-gui.sh:1574
msgid "Staged for removal, still present"
msgstr "Bereitgestellt zum Löschen, trotzdem vorhanden"
-#: git-gui.sh:1562 git-gui.sh:1563 git-gui.sh:1564 git-gui.sh:1565
+#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
msgid "Requires merge resolution"
msgstr "Konfliktauflösung nötig"
-#: git-gui.sh:1600
+#: git-gui.sh:1614
msgid "Starting gitk... please wait..."
msgstr "Gitk wird gestartet... bitte warten."
-#: git-gui.sh:1609
+#: git-gui.sh:1623
#, tcl-format
msgid ""
"Unable to start gitk:\n"
"\n"
"%s existiert nicht"
-#: git-gui.sh:1809 lib/choose_repository.tcl:35
+#: git-gui.sh:1823 lib/choose_repository.tcl:35
msgid "Repository"
msgstr "Projektarchiv"
-#: git-gui.sh:1810
+#: git-gui.sh:1824
msgid "Edit"
msgstr "Bearbeiten"
-#: git-gui.sh:1812 lib/choose_rev.tcl:560
+#: git-gui.sh:1826 lib/choose_rev.tcl:560
msgid "Branch"
msgstr "Zweig"
-#: git-gui.sh:1815 lib/choose_rev.tcl:547
+#: git-gui.sh:1829 lib/choose_rev.tcl:547
msgid "Commit@@noun"
msgstr "Version"
-#: git-gui.sh:1818 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
msgid "Merge"
msgstr "Zusammenführen"
-#: git-gui.sh:1819 lib/choose_rev.tcl:556
+#: git-gui.sh:1833 lib/choose_rev.tcl:556
msgid "Remote"
msgstr "Andere Archive"
-#: git-gui.sh:1828
+#: git-gui.sh:1842
msgid "Browse Current Branch's Files"
msgstr "Aktuellen Zweig durchblättern"
-#: git-gui.sh:1832
+#: git-gui.sh:1846
msgid "Browse Branch Files..."
msgstr "Einen Zweig durchblättern..."
-#: git-gui.sh:1837
+#: git-gui.sh:1851
msgid "Visualize Current Branch's History"
msgstr "Aktuellen Zweig darstellen"
-#: git-gui.sh:1841
+#: git-gui.sh:1855
msgid "Visualize All Branch History"
msgstr "Alle Zweige darstellen"
-#: git-gui.sh:1848
+#: git-gui.sh:1862
#, tcl-format
msgid "Browse %s's Files"
msgstr "Zweig »%s« durchblättern"
-#: git-gui.sh:1850
+#: git-gui.sh:1864
#, tcl-format
msgid "Visualize %s's History"
msgstr "Historie von »%s« darstellen"
-#: git-gui.sh:1855 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "Datenbankstatistik"
-#: git-gui.sh:1858 lib/database.tcl:34
+#: git-gui.sh:1872 lib/database.tcl:34
msgid "Compress Database"
msgstr "Datenbank komprimieren"
-#: git-gui.sh:1861
+#: git-gui.sh:1875
msgid "Verify Database"
msgstr "Datenbank überprüfen"
-#: git-gui.sh:1868 git-gui.sh:1872 git-gui.sh:1876 lib/shortcut.tcl:7
+#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "Desktop-Icon erstellen"
-#: git-gui.sh:1881 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
msgid "Quit"
msgstr "Beenden"
-#: git-gui.sh:1888
+#: git-gui.sh:1902
msgid "Undo"
msgstr "Rückgängig"
-#: git-gui.sh:1891
+#: git-gui.sh:1905
msgid "Redo"
msgstr "Wiederholen"
-#: git-gui.sh:1895 git-gui.sh:2388
+#: git-gui.sh:1909 git-gui.sh:2403
msgid "Cut"
msgstr "Ausschneiden"
-#: git-gui.sh:1898 git-gui.sh:2391 git-gui.sh:2462 git-gui.sh:2534
+#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
#: lib/console.tcl:67
msgid "Copy"
msgstr "Kopieren"
-#: git-gui.sh:1901 git-gui.sh:2394
+#: git-gui.sh:1915 git-gui.sh:2409
msgid "Paste"
msgstr "Einfügen"
-#: git-gui.sh:1904 git-gui.sh:2397 lib/branch_delete.tcl:26
+#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "Löschen"
-#: git-gui.sh:1908 git-gui.sh:2401 git-gui.sh:2538 lib/console.tcl:69
+#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
msgid "Select All"
msgstr "Alle auswählen"
-#: git-gui.sh:1917
+#: git-gui.sh:1931
msgid "Create..."
msgstr "Erstellen..."
-#: git-gui.sh:1923
+#: git-gui.sh:1937
msgid "Checkout..."
msgstr "Umstellen..."
-#: git-gui.sh:1929
+#: git-gui.sh:1943
msgid "Rename..."
msgstr "Umbenennen..."
-#: git-gui.sh:1934 git-gui.sh:2033
+#: git-gui.sh:1948 git-gui.sh:2048
msgid "Delete..."
msgstr "Löschen..."
-#: git-gui.sh:1939
+#: git-gui.sh:1953
msgid "Reset..."
msgstr "Zurücksetzen..."
-#: git-gui.sh:1951 git-gui.sh:2335
+#: git-gui.sh:1965 git-gui.sh:2350
msgid "New Commit"
msgstr "Neue Version"
-#: git-gui.sh:1959 git-gui.sh:2342
+#: git-gui.sh:1973 git-gui.sh:2357
msgid "Amend Last Commit"
msgstr "Letzte Version nachbessern"
-#: git-gui.sh:1968 git-gui.sh:2302 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "Neu laden"
-#: git-gui.sh:1974
+#: git-gui.sh:1988
msgid "Stage To Commit"
msgstr "Zum Eintragen bereitstellen"
-#: git-gui.sh:1979
+#: git-gui.sh:1994
msgid "Stage Changed Files To Commit"
msgstr "Geänderte Dateien zum Eintragen bereitstellen"
-#: git-gui.sh:1985
+#: git-gui.sh:2000
msgid "Unstage From Commit"
msgstr "Aus der Bereitstellung herausnehmen"
-#: git-gui.sh:1990 lib/index.tcl:352
+#: git-gui.sh:2005 lib/index.tcl:393
msgid "Revert Changes"
msgstr "Änderungen revidieren"
-#: git-gui.sh:1997 git-gui.sh:2314 git-gui.sh:2412
+#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
msgid "Sign Off"
msgstr "Abzeichnen"
-#: git-gui.sh:2001 git-gui.sh:2318
+#: git-gui.sh:2016 git-gui.sh:2333
msgid "Commit@@verb"
msgstr "Eintragen"
-#: git-gui.sh:2012
+#: git-gui.sh:2027
msgid "Local Merge..."
msgstr "Lokales Zusammenführen..."
-#: git-gui.sh:2017
+#: git-gui.sh:2032
msgid "Abort Merge..."
msgstr "Zusammenführen abbrechen..."
-#: git-gui.sh:2029
+#: git-gui.sh:2044
msgid "Push..."
msgstr "Versenden..."
-#: git-gui.sh:2040 lib/choose_repository.tcl:40
+#: git-gui.sh:2055 lib/choose_repository.tcl:40
msgid "Apple"
msgstr "Apple"
-#: git-gui.sh:2043 git-gui.sh:2065 lib/about.tcl:13
+#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
#, tcl-format
msgid "About %s"
msgstr "Über %s"
-#: git-gui.sh:2047
+#: git-gui.sh:2062
msgid "Preferences..."
msgstr "Einstellungen..."
-#: git-gui.sh:2055 git-gui.sh:2580
+#: git-gui.sh:2070 git-gui.sh:2595
msgid "Options..."
msgstr "Optionen..."
-#: git-gui.sh:2061 lib/choose_repository.tcl:46
+#: git-gui.sh:2076 lib/choose_repository.tcl:46
msgid "Help"
msgstr "Hilfe"
-#: git-gui.sh:2102
+#: git-gui.sh:2117
msgid "Online Documentation"
msgstr "Online-Dokumentation"
-#: git-gui.sh:2186
+#: git-gui.sh:2201
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
-msgstr ""
+msgstr "Fehler: Verzeichnis »%s« kann nicht gelesen werden: Datei oder Verzeichnis nicht gefunden"
-#: git-gui.sh:2219
+#: git-gui.sh:2234
msgid "Current Branch:"
msgstr "Aktueller Zweig:"
-#: git-gui.sh:2240
+#: git-gui.sh:2255
msgid "Staged Changes (Will Commit)"
msgstr "Bereitgestellte Änderungen (zum Eintragen)"
-#: git-gui.sh:2259
+#: git-gui.sh:2274
msgid "Unstaged Changes"
msgstr "Nicht bereitgestellte Änderungen"
-#: git-gui.sh:2308
+#: git-gui.sh:2323
msgid "Stage Changed"
msgstr "Alles bereitstellen"
-#: git-gui.sh:2324 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "Versenden"
-#: git-gui.sh:2354
+#: git-gui.sh:2369
msgid "Initial Commit Message:"
msgstr "Erste Versionsbeschreibung:"
-#: git-gui.sh:2355
+#: git-gui.sh:2370
msgid "Amended Commit Message:"
msgstr "Nachgebesserte Versionsbeschreibung:"
-#: git-gui.sh:2356
+#: git-gui.sh:2371
msgid "Amended Initial Commit Message:"
msgstr "Nachgebesserte erste Versionsbeschreibung:"
-#: git-gui.sh:2357
+#: git-gui.sh:2372
msgid "Amended Merge Commit Message:"
msgstr "Nachgebesserte Zusammenführungs-Versionsbeschreibung:"
-#: git-gui.sh:2358
+#: git-gui.sh:2373
msgid "Merge Commit Message:"
msgstr "Zusammenführungs-Versionsbeschreibung:"
-#: git-gui.sh:2359
+#: git-gui.sh:2374
msgid "Commit Message:"
msgstr "Versionsbeschreibung:"
-#: git-gui.sh:2404 git-gui.sh:2542 lib/console.tcl:71
+#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
msgid "Copy All"
msgstr "Alle kopieren"
-#: git-gui.sh:2428 lib/blame.tcl:104
+#: git-gui.sh:2443 lib/blame.tcl:104
msgid "File:"
msgstr "Datei:"
-#: git-gui.sh:2530
+#: git-gui.sh:2545
msgid "Refresh"
msgstr "Aktualisieren"
-#: git-gui.sh:2551
+#: git-gui.sh:2566
msgid "Apply/Reverse Hunk"
msgstr "Änderung anwenden/umkehren"
-#: git-gui.sh:2557
+#: git-gui.sh:2572
msgid "Decrease Font Size"
msgstr "Schriftgröße verkleinern"
-#: git-gui.sh:2561
+#: git-gui.sh:2576
msgid "Increase Font Size"
msgstr "Schriftgröße vergrößern"
-#: git-gui.sh:2566
+#: git-gui.sh:2581
msgid "Show Less Context"
msgstr "Weniger Kontext anzeigen"
-#: git-gui.sh:2573
+#: git-gui.sh:2588
msgid "Show More Context"
msgstr "Mehr Kontext anzeigen"
-#: git-gui.sh:2587
+#: git-gui.sh:2602
msgid "Unstage Hunk From Commit"
msgstr "Aus der Bereitstellung herausnehmen"
-#: git-gui.sh:2589
+#: git-gui.sh:2604
msgid "Stage Hunk For Commit"
msgstr "In die Bereitstellung hinzufügen"
-#: git-gui.sh:2608
+#: git-gui.sh:2623
msgid "Initializing..."
msgstr "Initialisieren..."
-#: git-gui.sh:2699
+#: git-gui.sh:2718
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
"by %s:\n"
"\n"
msgstr ""
+"Möglicherweise gibt es Probleme mit manchen Umgebungsvariablen.\n"
+"\n"
+"Die folgenden Umgebungsvariablen können vermutlich nicht \n"
+"von %s an Git weitergegeben werden:\n"
+"\n"
-#: git-gui.sh:2729
+#: git-gui.sh:2748
msgid ""
"\n"
"This is due to a known issue with the\n"
"Tcl binary distributed by Cygwin."
msgstr ""
+"\n"
+"Dies ist ein bekanntes Problem der Tcl-Version, die\n"
+"in Cygwin mitgeliefert wird."
-#: git-gui.sh:2734
+#: git-gui.sh:2753
#, tcl-format
msgid ""
"\n"
"user.email settings into your personal\n"
"~/.gitconfig file.\n"
msgstr ""
+"\n"
+"\n"
+"Um den Namen »%s« zu ändern, sollten Sie die \n"
+"gewünschten Werte für die Einstellung user.name und \n"
+"user.email in Ihre Datei ~/.gitconfig einfügen.\n"
#: lib/about.tcl:25
msgid "git-gui - a graphical user interface for Git."
#: lib/blame.tcl:473
msgid "Loading copy/move tracking annotations..."
-msgstr ""
+msgstr "Annotierungen für Kopieren/Verschieben werden geladen..."
#: lib/blame.tcl:493
msgid "lines annotated"
-msgstr ""
+msgstr "Zeilen annotiert"
#: lib/blame.tcl:674
msgid "Loading original location annotations..."
-msgstr ""
+msgstr "Annotierungen für ursprünglichen Ort werden geladen..."
#: lib/blame.tcl:677
msgid "Annotation complete."
-msgstr ""
+msgstr "Annotierung vollständig."
#: lib/blame.tcl:731
msgid "Loading annotation..."
#: lib/checkout_op.tcl:127
#, tcl-format
msgid "fatal: Cannot resolve %s"
-msgstr ""
+msgstr "Fehler: »%s« kann nicht als Zweig oder Version erkannt werden"
#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
msgid "Close"
#: lib/choose_repository.tcl:617
msgid "Failed to configure origin"
-msgstr ""
+msgstr "Der Ursprungsort konnte nicht eingerichtet werden"
#: lib/choose_repository.tcl:629
msgid "Counting objects"
-msgstr ""
+msgstr "Objekte werden gezählt"
#: lib/choose_repository.tcl:630
msgid "buckets"
-msgstr ""
+msgstr "Buckets"
#: lib/choose_repository.tcl:654
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
-msgstr ""
+msgstr "Kopien von Objekten/Info/Alternates konnten nicht erstellt werden: %s"
#: lib/choose_repository.tcl:690
#, tcl-format
#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
#: lib/choose_repository.tcl:918
msgid "The 'master' branch has not been initialized."
-msgstr ""
+msgstr "Der »master«-Zweig wurde noch nicht initialisiert."
#: lib/choose_repository.tcl:705
msgid "Hardlinks are unavailable. Falling back to copying."
-msgstr ""
+msgstr "Hardlinks nicht verfügbar. Stattdessen wird kopiert."
#: lib/choose_repository.tcl:717
#, tcl-format
#: lib/choose_repository.tcl:792
#, tcl-format
msgid "Unable to hardlink object: %s"
-msgstr "Objekt kann nicht hartverlinkt werden: %s"
+msgstr "Für Objekt konnte kein Hardlink erstellt werden: %s"
#: lib/choose_repository.tcl:847
msgid "Cannot fetch branches and objects. See console output for details."
-msgstr ""
+msgstr "Zweige und Objekte konnten nicht angefordert werden. Kontrollieren Sie die Ausgaben auf der Konsole für weitere Angaben."
#: lib/choose_repository.tcl:858
msgid "Cannot fetch tags. See console output for details."
-msgstr ""
+msgstr "Markierungen konnten nicht angefordert werden. Kontrollieren Sie die Ausgaben auf der Konsole für weitere Angaben."
#: lib/choose_repository.tcl:882
msgid "Cannot determine HEAD. See console output for details."
-msgstr ""
+msgstr "Die Zweigspitze (HEAD) konnte nicht gefunden werden. Kontrollieren Sie die Ausgaben auf der Konsole für weitere Angaben."
#: lib/choose_repository.tcl:891
#, tcl-format
msgid "Unable to cleanup %s"
-msgstr ""
+msgstr "Verzeichnis »%s« kann nicht aufgeräumt werden."
#: lib/choose_repository.tcl:897
msgid "Clone failed."
#: lib/choose_repository.tcl:904
msgid "No default branch obtained."
-msgstr ""
+msgstr "Kein voreingestellter Zweig gefunden."
#: lib/choose_repository.tcl:915
#, tcl-format
msgid "Cannot resolve %s as a commit."
-msgstr ""
+msgstr "»%s« wurde nicht als Version gefunden."
#: lib/choose_repository.tcl:927
msgid "Creating working directory"
msgstr "Arbeitskopie erstellen"
-#: lib/choose_repository.tcl:928 lib/index.tcl:15 lib/index.tcl:80
-#: lib/index.tcl:149
+#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/index.tcl:193
msgid "files"
msgstr "Dateien"
#: lib/choose_repository.tcl:957
msgid "Initial file checkout failed."
-msgstr ""
+msgstr "Erstellen der Arbeitskopie fehlgeschlagen."
#: lib/choose_repository.tcl:973
msgid "Open"
"\n"
"A good commit message has the following format:\n"
"\n"
-"- First line: Describe in one sentance what you did.\n"
+"- First line: Describe in one sentence what you did.\n"
"- Second line: Blank\n"
"- Remaining lines: Describe why this change is good.\n"
msgstr ""
#: lib/commit.tcl:303
#, tcl-format
msgid "warning: Tcl does not support encoding '%s'."
-msgstr ""
+msgstr "Warning: Tcl/Tk unterstützt die Zeichencodierung »%s« nicht."
#: lib/commit.tcl:317
msgid "commit-tree failed:"
msgstr ""
"Sie müssen die obigen Fehler zuerst beheben, bevor Sie eintragen können."
-#: lib/index.tcl:241
+#: lib/index.tcl:6
+msgid "Unable to unlock the index."
+msgstr "Bereitstellung kann nicht wieder freigegeben werden."
+
+#: lib/index.tcl:15
+msgid "Index Error"
+msgstr "Fehler in Bereitstellung"
+
+#: lib/index.tcl:21
+msgid ""
+"Updating the Git index failed. A rescan will be automatically started to "
+"resynchronize git-gui."
+msgstr "Das Aktualisieren der Git-Bereitstellung ist fehlgeschlagen. Eine allgemeine Git-Aktualisierung wird jetzt gestartet, um git-gui wieder mit git zu synchronisieren."
+
+#: lib/index.tcl:27
+msgid "Continue"
+msgstr "Fortsetzen"
+
+#: lib/index.tcl:31
+msgid "Unlock Index"
+msgstr "Bereitstellung freigeben"
+
+#: lib/index.tcl:282
#, tcl-format
msgid "Unstaging %s from commit"
msgstr "Datei »%s« aus der Bereitstellung herausnehmen"
-#: lib/index.tcl:285
+#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
msgstr "»%s« hinzufügen..."
-#: lib/index.tcl:340
+#: lib/index.tcl:381
#, tcl-format
msgid "Revert changes in file %s?"
msgstr "Änderungen in Datei »%s« revidieren?"
-#: lib/index.tcl:342
+#: lib/index.tcl:383
#, tcl-format
msgid "Revert changes in these %i files?"
msgstr "Änderungen in den gewählten %i Dateien revidieren?"
-#: lib/index.tcl:348
+#: lib/index.tcl:389
msgid "Any unstaged changes will be permanently lost by the revert."
msgstr ""
"Alle nicht bereitgestellten Änderungen werden beim Revidieren verloren gehen."
-#: lib/index.tcl:351
+#: lib/index.tcl:392
msgid "Do Nothing"
msgstr "Nichts tun"
#: lib/transport.tcl:168
msgid "Include tags"
msgstr "Mit Markierungen übertragen"
-
-#~ msgid "Next >"
-#~ msgstr "Weiter >"
-
-#~ msgid "Fetch"
-#~ msgstr "Anfordern"
-
-#~ msgid "Unstaged Changes (Will Not Be Committed)"
-#~ msgstr "Nicht bereitgestellte Änderungen (werden nicht eingetragen)"
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-10 04:04-0400\n"
+"POT-Creation-Date: 2007-11-24 10:36+0100\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"
"Content-Type: text/plain; charset=CHARSET\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:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
+#: git-gui.sh:733
msgid "git-gui: fatal error"
msgstr ""
-#: git-gui.sh:595
+#: git-gui.sh:565
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr ""
-#: git-gui.sh:620
+#: git-gui.sh:590
msgid "Main Font"
msgstr ""
-#: git-gui.sh:621
+#: git-gui.sh:591
msgid "Diff/Console Font"
msgstr ""
-#: git-gui.sh:635
+#: git-gui.sh:605
msgid "Cannot find git in PATH."
msgstr ""
-#: git-gui.sh:662
+#: git-gui.sh:632
msgid "Cannot parse Git version string:"
msgstr ""
-#: git-gui.sh:680
+#: git-gui.sh:650
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
"Assume '%s' is version 1.5.0?\n"
msgstr ""
-#: git-gui.sh:853
+#: git-gui.sh:888
msgid "Git directory not found:"
msgstr ""
-#: git-gui.sh:860
+#: git-gui.sh:895
msgid "Cannot move to top of working directory:"
msgstr ""
-#: git-gui.sh:867
+#: git-gui.sh:902
msgid "Cannot use funny .git directory:"
msgstr ""
-#: git-gui.sh:872
+#: git-gui.sh:907
msgid "No working directory"
msgstr ""
-#: git-gui.sh:1019
+#: git-gui.sh:1054
msgid "Refreshing file status..."
msgstr ""
-#: git-gui.sh:1084
+#: git-gui.sh:1119
msgid "Scanning for modified files ..."
msgstr ""
-#: git-gui.sh:1259 lib/browser.tcl:245
+#: git-gui.sh:1294 lib/browser.tcl:245
msgid "Ready."
msgstr ""
-#: git-gui.sh:1525
+#: git-gui.sh:1560
msgid "Unmodified"
msgstr ""
-#: git-gui.sh:1527
+#: git-gui.sh:1562
msgid "Modified, not staged"
msgstr ""
-#: git-gui.sh:1528 git-gui.sh:1533
+#: git-gui.sh:1563 git-gui.sh:1568
msgid "Staged for commit"
msgstr ""
-#: git-gui.sh:1529 git-gui.sh:1534
+#: git-gui.sh:1564 git-gui.sh:1569
msgid "Portions staged for commit"
msgstr ""
-#: git-gui.sh:1530 git-gui.sh:1535
+#: git-gui.sh:1565 git-gui.sh:1570
msgid "Staged for commit, missing"
msgstr ""
-#: git-gui.sh:1532
+#: git-gui.sh:1567
msgid "Untracked, not staged"
msgstr ""
-#: git-gui.sh:1537
+#: git-gui.sh:1572
msgid "Missing"
msgstr ""
-#: git-gui.sh:1538
+#: git-gui.sh:1573
msgid "Staged for removal"
msgstr ""
-#: git-gui.sh:1539
+#: git-gui.sh:1574
msgid "Staged for removal, still present"
msgstr ""
-#: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544
+#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
msgid "Requires merge resolution"
msgstr ""
-#: git-gui.sh:1579
+#: git-gui.sh:1614
msgid "Starting gitk... please wait..."
msgstr ""
-#: git-gui.sh:1588
+#: git-gui.sh:1623
#, tcl-format
msgid ""
"Unable to start gitk:\n"
"%s does not exist"
msgstr ""
-#: git-gui.sh:1788 lib/choose_repository.tcl:32
+#: git-gui.sh:1823 lib/choose_repository.tcl:35
msgid "Repository"
msgstr ""
-#: git-gui.sh:1789
+#: git-gui.sh:1824
msgid "Edit"
msgstr ""
-#: git-gui.sh:1791 lib/choose_rev.tcl:560
+#: git-gui.sh:1826 lib/choose_rev.tcl:560
msgid "Branch"
msgstr ""
-#: git-gui.sh:1794 lib/choose_rev.tcl:547
+#: git-gui.sh:1829 lib/choose_rev.tcl:547
msgid "Commit@@noun"
msgstr ""
-#: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
msgid "Merge"
msgstr ""
-#: git-gui.sh:1798 lib/choose_rev.tcl:556
+#: git-gui.sh:1833 lib/choose_rev.tcl:556
msgid "Remote"
msgstr ""
-#: git-gui.sh:1807
+#: git-gui.sh:1842
msgid "Browse Current Branch's Files"
msgstr ""
-#: git-gui.sh:1811
+#: git-gui.sh:1846
msgid "Browse Branch Files..."
msgstr ""
-#: git-gui.sh:1816
+#: git-gui.sh:1851
msgid "Visualize Current Branch's History"
msgstr ""
-#: git-gui.sh:1820
+#: git-gui.sh:1855
msgid "Visualize All Branch History"
msgstr ""
-#: git-gui.sh:1827
+#: git-gui.sh:1862
#, tcl-format
msgid "Browse %s's Files"
msgstr ""
-#: git-gui.sh:1829
+#: git-gui.sh:1864
#, tcl-format
msgid "Visualize %s's History"
msgstr ""
-#: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr ""
-#: git-gui.sh:1837 lib/database.tcl:34
+#: git-gui.sh:1872 lib/database.tcl:34
msgid "Compress Database"
msgstr ""
-#: git-gui.sh:1840
+#: git-gui.sh:1875
msgid "Verify Database"
msgstr ""
-#: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9
-#: lib/shortcut.tcl:45 lib/shortcut.tcl:84
+#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr ""
-#: git-gui.sh:1860 lib/choose_repository.tcl:36 lib/choose_repository.tcl:95
+#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
msgid "Quit"
msgstr ""
-#: git-gui.sh:1867
+#: git-gui.sh:1902
msgid "Undo"
msgstr ""
-#: git-gui.sh:1870
+#: git-gui.sh:1905
msgid "Redo"
msgstr ""
-#: git-gui.sh:1874 git-gui.sh:2366
+#: git-gui.sh:1909 git-gui.sh:2403
msgid "Cut"
msgstr ""
-#: git-gui.sh:1877 git-gui.sh:2369 git-gui.sh:2440 git-gui.sh:2512
+#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
#: lib/console.tcl:67
msgid "Copy"
msgstr ""
-#: git-gui.sh:1880 git-gui.sh:2372
+#: git-gui.sh:1915 git-gui.sh:2409
msgid "Paste"
msgstr ""
-#: git-gui.sh:1883 git-gui.sh:2375 lib/branch_delete.tcl:26
+#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr ""
-#: git-gui.sh:1887 git-gui.sh:2379 git-gui.sh:2516 lib/console.tcl:69
+#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
msgid "Select All"
msgstr ""
-#: git-gui.sh:1896
+#: git-gui.sh:1931
msgid "Create..."
msgstr ""
-#: git-gui.sh:1902
+#: git-gui.sh:1937
msgid "Checkout..."
msgstr ""
-#: git-gui.sh:1908
+#: git-gui.sh:1943
msgid "Rename..."
msgstr ""
-#: git-gui.sh:1913 git-gui.sh:2012
+#: git-gui.sh:1948 git-gui.sh:2048
msgid "Delete..."
msgstr ""
-#: git-gui.sh:1918
+#: git-gui.sh:1953
msgid "Reset..."
msgstr ""
-#: git-gui.sh:1930 git-gui.sh:2313
+#: git-gui.sh:1965 git-gui.sh:2350
msgid "New Commit"
msgstr ""
-#: git-gui.sh:1938 git-gui.sh:2320
+#: git-gui.sh:1973 git-gui.sh:2357
msgid "Amend Last Commit"
msgstr ""
-#: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr ""
-#: git-gui.sh:1953
+#: git-gui.sh:1988
msgid "Stage To Commit"
msgstr ""
-#: git-gui.sh:1958
+#: git-gui.sh:1994
msgid "Stage Changed Files To Commit"
msgstr ""
-#: git-gui.sh:1964
+#: git-gui.sh:2000
msgid "Unstage From Commit"
msgstr ""
-#: git-gui.sh:1969 lib/index.tcl:352
+#: git-gui.sh:2005 lib/index.tcl:393
msgid "Revert Changes"
msgstr ""
-#: git-gui.sh:1976 git-gui.sh:2292 git-gui.sh:2390
+#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
msgid "Sign Off"
msgstr ""
-#: git-gui.sh:1980 git-gui.sh:2296
+#: git-gui.sh:2016 git-gui.sh:2333
msgid "Commit@@verb"
msgstr ""
-#: git-gui.sh:1991
+#: git-gui.sh:2027
msgid "Local Merge..."
msgstr ""
-#: git-gui.sh:1996
+#: git-gui.sh:2032
msgid "Abort Merge..."
msgstr ""
-#: git-gui.sh:2008
+#: git-gui.sh:2044
msgid "Push..."
msgstr ""
-#: git-gui.sh:2019 lib/choose_repository.tcl:41
+#: git-gui.sh:2055 lib/choose_repository.tcl:40
msgid "Apple"
msgstr ""
-#: git-gui.sh:2022 git-gui.sh:2044 lib/about.tcl:13
-#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
+#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
+#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
#, tcl-format
msgid "About %s"
msgstr ""
-#: git-gui.sh:2026
+#: git-gui.sh:2062
msgid "Preferences..."
msgstr ""
-#: git-gui.sh:2034 git-gui.sh:2558
+#: git-gui.sh:2070 git-gui.sh:2595
msgid "Options..."
msgstr ""
-#: git-gui.sh:2040 lib/choose_repository.tcl:47
+#: git-gui.sh:2076 lib/choose_repository.tcl:46
msgid "Help"
msgstr ""
-#: git-gui.sh:2081
+#: git-gui.sh:2117
msgid "Online Documentation"
msgstr ""
-#: git-gui.sh:2165
+#: git-gui.sh:2201
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
msgstr ""
-#: git-gui.sh:2198
+#: git-gui.sh:2234
msgid "Current Branch:"
msgstr ""
-#: git-gui.sh:2219
+#: git-gui.sh:2255
msgid "Staged Changes (Will Commit)"
msgstr ""
-#: git-gui.sh:2239
+#: git-gui.sh:2274
msgid "Unstaged Changes"
msgstr ""
-#: git-gui.sh:2286
+#: git-gui.sh:2323
msgid "Stage Changed"
msgstr ""
-#: git-gui.sh:2302 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr ""
-#: git-gui.sh:2332
+#: git-gui.sh:2369
msgid "Initial Commit Message:"
msgstr ""
-#: git-gui.sh:2333
+#: git-gui.sh:2370
msgid "Amended Commit Message:"
msgstr ""
-#: git-gui.sh:2334
+#: git-gui.sh:2371
msgid "Amended Initial Commit Message:"
msgstr ""
-#: git-gui.sh:2335
+#: git-gui.sh:2372
msgid "Amended Merge Commit Message:"
msgstr ""
-#: git-gui.sh:2336
+#: git-gui.sh:2373
msgid "Merge Commit Message:"
msgstr ""
-#: git-gui.sh:2337
+#: git-gui.sh:2374
msgid "Commit Message:"
msgstr ""
-#: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71
+#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
msgid "Copy All"
msgstr ""
-#: git-gui.sh:2406 lib/blame.tcl:104
+#: git-gui.sh:2443 lib/blame.tcl:104
msgid "File:"
msgstr ""
-#: git-gui.sh:2508
+#: git-gui.sh:2545
msgid "Refresh"
msgstr ""
-#: git-gui.sh:2529
+#: git-gui.sh:2566
msgid "Apply/Reverse Hunk"
msgstr ""
-#: git-gui.sh:2535
+#: git-gui.sh:2572
msgid "Decrease Font Size"
msgstr ""
-#: git-gui.sh:2539
+#: git-gui.sh:2576
msgid "Increase Font Size"
msgstr ""
-#: git-gui.sh:2544
+#: git-gui.sh:2581
msgid "Show Less Context"
msgstr ""
-#: git-gui.sh:2551
+#: git-gui.sh:2588
msgid "Show More Context"
msgstr ""
-#: git-gui.sh:2565
+#: git-gui.sh:2602
msgid "Unstage Hunk From Commit"
msgstr ""
-#: git-gui.sh:2567
+#: git-gui.sh:2604
msgid "Stage Hunk For Commit"
msgstr ""
-#: git-gui.sh:2586
+#: git-gui.sh:2623
msgid "Initializing..."
msgstr ""
-#: git-gui.sh:2677
+#: git-gui.sh:2718
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
"\n"
msgstr ""
-#: git-gui.sh:2707
+#: git-gui.sh:2748
msgid ""
"\n"
"This is due to a known issue with the\n"
"Tcl binary distributed by Cygwin."
msgstr ""
-#: git-gui.sh:2712
+#: git-gui.sh:2753
#, tcl-format
msgid ""
"\n"
msgid "Create New Branch"
msgstr ""
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:199
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
msgid "Create"
msgstr ""
msgid "Browse Branch Files"
msgstr ""
-#: lib/browser.tcl:277 lib/choose_repository.tcl:215
-#: lib/choose_repository.tcl:305 lib/choose_repository.tcl:315
-#: lib/choose_repository.tcl:811
+#: lib/browser.tcl:277 lib/choose_repository.tcl:391
+#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
+#: lib/choose_repository.tcl:989
msgid "Browse"
msgstr ""
"If you like this text, it can be your font."
msgstr ""
-#: lib/choose_repository.tcl:25
+#: lib/choose_repository.tcl:27
msgid "Git Gui"
msgstr ""
-#: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204
+#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
msgid "Create New Repository"
msgstr ""
-#: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291
+#: lib/choose_repository.tcl:86
+msgid "New..."
+msgstr ""
+
+#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
msgid "Clone Existing Repository"
msgstr ""
-#: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800
+#: lib/choose_repository.tcl:99
+msgid "Clone..."
+msgstr ""
+
+#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
msgid "Open Existing Repository"
msgstr ""
-#: lib/choose_repository.tcl:91
-msgid "Next >"
+#: lib/choose_repository.tcl:112
+msgid "Open..."
+msgstr ""
+
+#: lib/choose_repository.tcl:125
+msgid "Recent Repositories"
msgstr ""
-#: lib/choose_repository.tcl:152
+#: lib/choose_repository.tcl:131
+msgid "Open Recent Repository:"
+msgstr ""
+
+#: lib/choose_repository.tcl:294
#, tcl-format
msgid "Location %s already exists."
msgstr ""
-#: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165
-#: lib/choose_repository.tcl:172
+#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
+#: lib/choose_repository.tcl:314
#, tcl-format
msgid "Failed to create repository %s:"
msgstr ""
-#: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309
+#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
msgid "Directory:"
msgstr ""
-#: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363
-#: lib/choose_repository.tcl:834
+#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
+#: lib/choose_repository.tcl:1013
msgid "Git Repository"
msgstr ""
-#: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260
+#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr ""
-#: lib/choose_repository.tcl:265
+#: lib/choose_repository.tcl:442
#, tcl-format
msgid "File %s already exists."
msgstr ""
-#: lib/choose_repository.tcl:286
+#: lib/choose_repository.tcl:463
msgid "Clone"
msgstr ""
-#: lib/choose_repository.tcl:299
+#: lib/choose_repository.tcl:476
msgid "URL:"
msgstr ""
-#: lib/choose_repository.tcl:319
+#: lib/choose_repository.tcl:496
msgid "Clone Type:"
msgstr ""
-#: lib/choose_repository.tcl:325
+#: lib/choose_repository.tcl:502
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr ""
-#: lib/choose_repository.tcl:331
+#: lib/choose_repository.tcl:508
msgid "Full Copy (Slower, Redundant Backup)"
msgstr ""
-#: lib/choose_repository.tcl:337
+#: lib/choose_repository.tcl:514
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr ""
-#: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418
-#: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630
-#: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848
+#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597
+#: lib/choose_repository.tcl:738 lib/choose_repository.tcl:808
+#: lib/choose_repository.tcl:1019 lib/choose_repository.tcl:1027
#, tcl-format
msgid "Not a Git repository: %s"
msgstr ""
-#: lib/choose_repository.tcl:405
+#: lib/choose_repository.tcl:586
msgid "Standard only available for local repository."
msgstr ""
-#: lib/choose_repository.tcl:409
+#: lib/choose_repository.tcl:590
msgid "Shared only available for local repository."
msgstr ""
-#: lib/choose_repository.tcl:439
+#: lib/choose_repository.tcl:617
msgid "Failed to configure origin"
msgstr ""
-#: lib/choose_repository.tcl:451
+#: lib/choose_repository.tcl:629
msgid "Counting objects"
msgstr ""
-#: lib/choose_repository.tcl:452
+#: lib/choose_repository.tcl:630
msgid "buckets"
msgstr ""
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:654
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr ""
-#: lib/choose_repository.tcl:512
+#: lib/choose_repository.tcl:690
#, tcl-format
msgid "Nothing to clone from %s."
msgstr ""
-#: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728
-#: lib/choose_repository.tcl:740
+#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
+#: lib/choose_repository.tcl:918
msgid "The 'master' branch has not been initialized."
msgstr ""
-#: lib/choose_repository.tcl:527
+#: lib/choose_repository.tcl:705
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr ""
-#: lib/choose_repository.tcl:539
+#: lib/choose_repository.tcl:717
#, tcl-format
msgid "Cloning from %s"
msgstr ""
-#: lib/choose_repository.tcl:570
+#: lib/choose_repository.tcl:748
msgid "Copying objects"
msgstr ""
-#: lib/choose_repository.tcl:571
+#: lib/choose_repository.tcl:749
msgid "KiB"
msgstr ""
-#: lib/choose_repository.tcl:595
+#: lib/choose_repository.tcl:773
#, tcl-format
msgid "Unable to copy object: %s"
msgstr ""
-#: lib/choose_repository.tcl:605
+#: lib/choose_repository.tcl:783
msgid "Linking objects"
msgstr ""
-#: lib/choose_repository.tcl:606
+#: lib/choose_repository.tcl:784
msgid "objects"
msgstr ""
-#: lib/choose_repository.tcl:614
+#: lib/choose_repository.tcl:792
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr ""
-#: lib/choose_repository.tcl:669
+#: lib/choose_repository.tcl:847
msgid "Cannot fetch branches and objects. See console output for details."
msgstr ""
-#: lib/choose_repository.tcl:680
+#: lib/choose_repository.tcl:858
msgid "Cannot fetch tags. See console output for details."
msgstr ""
-#: lib/choose_repository.tcl:704
+#: lib/choose_repository.tcl:882
msgid "Cannot determine HEAD. See console output for details."
msgstr ""
-#: lib/choose_repository.tcl:713
+#: lib/choose_repository.tcl:891
#, tcl-format
msgid "Unable to cleanup %s"
msgstr ""
-#: lib/choose_repository.tcl:719
+#: lib/choose_repository.tcl:897
msgid "Clone failed."
msgstr ""
-#: lib/choose_repository.tcl:726
+#: lib/choose_repository.tcl:904
msgid "No default branch obtained."
msgstr ""
-#: lib/choose_repository.tcl:737
+#: lib/choose_repository.tcl:915
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr ""
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:927
msgid "Creating working directory"
msgstr ""
-#: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80
-#: lib/index.tcl:149
+#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/index.tcl:193
msgid "files"
msgstr ""
-#: lib/choose_repository.tcl:779
+#: lib/choose_repository.tcl:957
msgid "Initial file checkout failed."
msgstr ""
-#: lib/choose_repository.tcl:795
+#: lib/choose_repository.tcl:973
msgid "Open"
msgstr ""
-#: lib/choose_repository.tcl:805
+#: lib/choose_repository.tcl:983
msgid "Repository:"
msgstr ""
-#: lib/choose_repository.tcl:854
+#: lib/choose_repository.tcl:1033
#, tcl-format
msgid "Failed to open repository %s:"
msgstr ""
"\n"
"A good commit message has the following format:\n"
"\n"
-"- First line: Describe in one sentance what you did.\n"
+"- First line: Describe in one sentence what you did.\n"
"- Second line: Blank\n"
"- Remaining lines: Describe why this change is good.\n"
msgstr ""
msgid "You must correct the above errors before committing."
msgstr ""
-#: lib/index.tcl:241
+#: lib/index.tcl:6
+msgid "Unable to unlock the index."
+msgstr ""
+
+#: lib/index.tcl:15
+msgid "Index Error"
+msgstr ""
+
+#: lib/index.tcl:21
+msgid ""
+"Updating the Git index failed. A rescan will be automatically started to "
+"resynchronize git-gui."
+msgstr ""
+
+#: lib/index.tcl:27
+msgid "Continue"
+msgstr ""
+
+#: lib/index.tcl:31
+msgid "Unlock Index"
+msgstr ""
+
+#: lib/index.tcl:282
#, tcl-format
msgid "Unstaging %s from commit"
msgstr ""
-#: lib/index.tcl:285
+#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
msgstr ""
-#: lib/index.tcl:340
+#: lib/index.tcl:381
#, tcl-format
msgid "Revert changes in file %s?"
msgstr ""
-#: lib/index.tcl:342
+#: lib/index.tcl:383
#, tcl-format
msgid "Revert changes in these %i files?"
msgstr ""
-#: lib/index.tcl:348
+#: lib/index.tcl:389
msgid "Any unstaged changes will be permanently lost by the revert."
msgstr ""
-#: lib/index.tcl:351
+#: lib/index.tcl:392
msgid "Do Nothing"
msgstr ""
msgid "Failed to completely save options:"
msgstr ""
-#: lib/remote.tcl:165
-msgid "Prune from"
-msgstr ""
-
-#: lib/remote.tcl:170
-msgid "Fetch from"
-msgstr ""
-
-#: lib/remote.tcl:213
-msgid "Push to"
-msgstr ""
-
#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
msgid "Delete Remote Branch"
msgstr ""
msgid "Scanning %s..."
msgstr ""
-#: lib/shortcut.tcl:26 lib/shortcut.tcl:74
-msgid "Cannot write script:"
+#: lib/remote.tcl:165
+msgid "Prune from"
+msgstr ""
+
+#: lib/remote.tcl:170
+msgid "Fetch from"
+msgstr ""
+
+#: lib/remote.tcl:213
+msgid "Push to"
+msgstr ""
+
+#: lib/shortcut.tcl:20 lib/shortcut.tcl:61
+msgid "Cannot write shortcut:"
msgstr ""
-#: lib/shortcut.tcl:149
+#: lib/shortcut.tcl:136
msgid "Cannot write icon:"
msgstr ""
msgid ""
msgstr ""
"Project-Id-Version: git-gui glossary\n"
-"POT-Creation-Date: 2007-10-05 22:30+0200\n"
+"POT-Creation-Date: 2007-10-19 21:43+0200\n"
"PO-Revision-Date: 2007-10-10 15:24+0200\n"
"Last-Translator: Michele Ballabio <barra_cuda@katamail.com>\n"
"Language-Team: Italian \n"
#. "The action of updating the working tree to a revision which was stored in the object database."
msgid "checkout [verb]"
msgstr ""
-"attivare, effettuare un checkout, attivare revisione, prelevare (TortoiseCVS), "
-"ritirare (TSVN)?"
+"attivare, effettuare un checkout, attivare revisione, prelevare "
+"(TortoiseCVS), ritirare (TSVN)?"
#. ""
msgid "clone [verb]"
msgid "message"
msgstr "messaggio, commento"
-#. ""
+#. "Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in 'remotes/<name>'."
msgid "prune"
msgstr "potatura"
msgid "redo"
msgstr "ripeti, rifai"
+#. "An other repository ('remote'). One might have a set of remotes whose branches one tracks."
+msgid "remote"
+msgstr "remoto"
+
#. "A collection of refs (?) together with an object database containing all objects which are reachable from the refs... (oops, you've lost me here. Again, please an explanation for mere mortals?)"
msgid "repository"
msgstr "archivio, repository, database? deposito (rapidsvn)?"
#. "A regular git branch that is used to follow changes from another repository."
msgid "tracking branch"
msgstr ""
-"duplicato locale di ramo remoto, ramo in 'tracking', ramo inseguitore? ramo di {inseguimento,allineamento,"
-"rilevamento,puntamento}?"
+"duplicato locale di ramo remoto, ramo in 'tracking', ramo inseguitore? ramo "
+"di {inseguimento,allineamento,rilevamento,puntamento}?"
#. ""
msgid "undo"
msgstr ""
"Project-Id-Version: git-gui-i 18n\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-10 04:04-0400\n"
-"PO-Revision-Date: 2007-07-27 13:15+0200\n"
+"POT-Creation-Date: 2007-11-24 10:36+0100\n"
+"PO-Revision-Date: 2007-12-04 01:15+0100\n"
"Last-Translator: Miklos Vajna <vmiklos@frugalware.org>\n"
"Language-Team: Hungarian\n"
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
+#: git-gui.sh:733
msgid "git-gui: fatal error"
-msgstr ""
+msgstr "git-gui: végzetes hiba"
-#: git-gui.sh:595
-#, fuzzy, tcl-format
+#: git-gui.sh:565
+#, tcl-format
msgid "Invalid font specified in %s:"
-msgstr "Érvénytelen font lett megadva a grafikus felületben.%s:"
+msgstr "Érvénytelen font lett megadva itt: %s:"
-#: git-gui.sh:620
+#: git-gui.sh:590
msgid "Main Font"
msgstr "Fő betűtípus"
-#: git-gui.sh:621
+#: git-gui.sh:591
msgid "Diff/Console Font"
msgstr "Diff/konzol betűtípus"
-#: git-gui.sh:635
+#: git-gui.sh:605
msgid "Cannot find git in PATH."
msgstr "A git nem található a PATH-ban."
-#: git-gui.sh:662
+#: git-gui.sh:632
msgid "Cannot parse Git version string:"
msgstr "Nem értelmezhető a Git verzió sztring:"
-#: git-gui.sh:680
+#: git-gui.sh:650
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
"\n"
"Feltételezhetjük, hogy a(z) '%s' verziója legalább 1.5.0?\n"
-#: git-gui.sh:853
+#: git-gui.sh:888
msgid "Git directory not found:"
msgstr "A Git könyvtár nem található:"
-#: git-gui.sh:860
-#, fuzzy
+#: git-gui.sh:895
msgid "Cannot move to top of working directory:"
-msgstr "Nem használható vicces .git könyvtár:"
+msgstr "Nem lehet a munkakönyvtár tetejére lépni:"
-#: git-gui.sh:867
+#: git-gui.sh:902
msgid "Cannot use funny .git directory:"
msgstr "Nem használható vicces .git könyvtár:"
-#: git-gui.sh:872
+#: git-gui.sh:907
msgid "No working directory"
msgstr "Nincs munkakönyvtár"
-#: git-gui.sh:1019
+#: git-gui.sh:1054
msgid "Refreshing file status..."
msgstr "A fájlok státuszának frissítése..."
-#: git-gui.sh:1084
+#: git-gui.sh:1119
msgid "Scanning for modified files ..."
msgstr "Módosított fájlok keresése ..."
-#: git-gui.sh:1259 lib/browser.tcl:245
+#: git-gui.sh:1294 lib/browser.tcl:245
msgid "Ready."
msgstr "Kész."
-#: git-gui.sh:1525
+#: git-gui.sh:1560
msgid "Unmodified"
msgstr "Nem módosított"
-#: git-gui.sh:1527
+#: git-gui.sh:1562
msgid "Modified, not staged"
msgstr "Módosított, de nem kiválasztott"
-#: git-gui.sh:1528 git-gui.sh:1533
+#: git-gui.sh:1563 git-gui.sh:1568
msgid "Staged for commit"
msgstr "Kiválasztva commitolásra"
-#: git-gui.sh:1529 git-gui.sh:1534
+#: git-gui.sh:1564 git-gui.sh:1569
msgid "Portions staged for commit"
msgstr "Részek kiválasztva commitolásra"
-#: git-gui.sh:1530 git-gui.sh:1535
+#: git-gui.sh:1565 git-gui.sh:1570
msgid "Staged for commit, missing"
msgstr "Kiválasztva commitolásra, hiányzó"
-#: git-gui.sh:1532
+#: git-gui.sh:1567
msgid "Untracked, not staged"
msgstr "Nem követett, nem kiválasztott"
-#: git-gui.sh:1537
+#: git-gui.sh:1572
msgid "Missing"
msgstr "Hiányzó"
-#: git-gui.sh:1538
+#: git-gui.sh:1573
msgid "Staged for removal"
msgstr "Kiválasztva eltávolításra"
-#: git-gui.sh:1539
+#: git-gui.sh:1574
msgid "Staged for removal, still present"
msgstr "Kiválasztva eltávolításra, jelenleg is elérhető"
-#: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544
+#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
msgid "Requires merge resolution"
msgstr "Merge feloldás szükséges"
-#: git-gui.sh:1579
+#: git-gui.sh:1614
msgid "Starting gitk... please wait..."
msgstr "A gitk indítása... várjunk..."
-#: git-gui.sh:1588
+#: git-gui.sh:1623
#, tcl-format
msgid ""
"Unable to start gitk:\n"
"\n"
"A(z) %s nem létezik"
-#: git-gui.sh:1788 lib/choose_repository.tcl:32
+#: git-gui.sh:1823 lib/choose_repository.tcl:35
msgid "Repository"
msgstr "Repó"
-#: git-gui.sh:1789
+#: git-gui.sh:1824
msgid "Edit"
msgstr "Szerkesztés"
-#: git-gui.sh:1791 lib/choose_rev.tcl:560
+#: git-gui.sh:1826 lib/choose_rev.tcl:560
msgid "Branch"
msgstr "Branch"
-#: git-gui.sh:1794 lib/choose_rev.tcl:547
-#, fuzzy
+#: git-gui.sh:1829 lib/choose_rev.tcl:547
msgid "Commit@@noun"
-msgstr "Commit"
+msgstr "Commit@@főnév"
-#: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
msgid "Merge"
msgstr "Merge"
-#: git-gui.sh:1798 lib/choose_rev.tcl:556
-#, fuzzy
+#: git-gui.sh:1833 lib/choose_rev.tcl:556
msgid "Remote"
-msgstr "Távoli:"
+msgstr "Távoli"
-#: git-gui.sh:1807
+#: git-gui.sh:1842
msgid "Browse Current Branch's Files"
msgstr "A jelenlegi branch fájljainak böngészése"
-#: git-gui.sh:1811
+#: git-gui.sh:1846
msgid "Browse Branch Files..."
msgstr "A branch fájljainak böngészése..."
-#: git-gui.sh:1816
+#: git-gui.sh:1851
msgid "Visualize Current Branch's History"
msgstr "A jelenlegi branch történetének vizualizálása"
-#: git-gui.sh:1820
+#: git-gui.sh:1855
msgid "Visualize All Branch History"
msgstr "Az összes branch történetének vizualizálása"
-#: git-gui.sh:1827
+#: git-gui.sh:1862
#, tcl-format
msgid "Browse %s's Files"
msgstr "A(z) %s branch fájljainak böngészése"
-#: git-gui.sh:1829
+#: git-gui.sh:1864
#, tcl-format
msgid "Visualize %s's History"
msgstr "A(z) %s branch történetének vizualizálása"
-#: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "Adatbázis statisztikák"
-#: git-gui.sh:1837 lib/database.tcl:34
+#: git-gui.sh:1872 lib/database.tcl:34
msgid "Compress Database"
msgstr "Adatbázis tömörítése"
-#: git-gui.sh:1840
+#: git-gui.sh:1875
msgid "Verify Database"
msgstr "Adatbázis ellenőrzése"
-#: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9
-#: lib/shortcut.tcl:45 lib/shortcut.tcl:84
+#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "Asztal ikon létrehozása"
-#: git-gui.sh:1860 lib/choose_repository.tcl:36 lib/choose_repository.tcl:95
+#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
msgid "Quit"
msgstr "Kilépés"
-#: git-gui.sh:1867
+#: git-gui.sh:1902
msgid "Undo"
msgstr "Visszavonás"
-#: git-gui.sh:1870
+#: git-gui.sh:1905
msgid "Redo"
msgstr "Mégis"
-#: git-gui.sh:1874 git-gui.sh:2366
+#: git-gui.sh:1909 git-gui.sh:2403
msgid "Cut"
msgstr "Kivágás"
-#: git-gui.sh:1877 git-gui.sh:2369 git-gui.sh:2440 git-gui.sh:2512
+#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
#: lib/console.tcl:67
msgid "Copy"
msgstr "Másolás"
-#: git-gui.sh:1880 git-gui.sh:2372
+#: git-gui.sh:1915 git-gui.sh:2409
msgid "Paste"
msgstr "Beillesztés"
-#: git-gui.sh:1883 git-gui.sh:2375 lib/branch_delete.tcl:26
+#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "Törlés"
-#: git-gui.sh:1887 git-gui.sh:2379 git-gui.sh:2516 lib/console.tcl:69
+#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
msgid "Select All"
msgstr "Mindent kiválaszt"
-#: git-gui.sh:1896
+#: git-gui.sh:1931
msgid "Create..."
msgstr "Létrehozás..."
-#: git-gui.sh:1902
+#: git-gui.sh:1937
msgid "Checkout..."
msgstr "Checkout..."
-#: git-gui.sh:1908
+#: git-gui.sh:1943
msgid "Rename..."
msgstr "Átnevezés..."
-#: git-gui.sh:1913 git-gui.sh:2012
+#: git-gui.sh:1948 git-gui.sh:2048
msgid "Delete..."
msgstr "Törlés..."
-#: git-gui.sh:1918
+#: git-gui.sh:1953
msgid "Reset..."
msgstr "Visszaállítás..."
-#: git-gui.sh:1930 git-gui.sh:2313
+#: git-gui.sh:1965 git-gui.sh:2350
msgid "New Commit"
msgstr "Új commit"
-#: git-gui.sh:1938 git-gui.sh:2320
+#: git-gui.sh:1973 git-gui.sh:2357
msgid "Amend Last Commit"
msgstr "Utolsó commit javítása"
-#: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "Keresés újra"
-#: git-gui.sh:1953
+#: git-gui.sh:1988
msgid "Stage To Commit"
msgstr "Kiválasztás commitolásra"
-#: git-gui.sh:1958
+#: git-gui.sh:1994
msgid "Stage Changed Files To Commit"
msgstr "Módosított fájlok kiválasztása commitolásra"
-#: git-gui.sh:1964
+#: git-gui.sh:2000
msgid "Unstage From Commit"
msgstr "Commitba való kiválasztás visszavonása"
-#: git-gui.sh:1969 lib/index.tcl:352
+#: git-gui.sh:2005 lib/index.tcl:393
msgid "Revert Changes"
msgstr "Változtatások visszaállítása"
-#: git-gui.sh:1976 git-gui.sh:2292 git-gui.sh:2390
+#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
msgid "Sign Off"
msgstr "Aláír"
-#: git-gui.sh:1980 git-gui.sh:2296
-#, fuzzy
+#: git-gui.sh:2016 git-gui.sh:2333
msgid "Commit@@verb"
-msgstr "Commit"
+msgstr "Commit@@ige"
-#: git-gui.sh:1991
+#: git-gui.sh:2027
msgid "Local Merge..."
msgstr "Helyi merge..."
-#: git-gui.sh:1996
+#: git-gui.sh:2032
msgid "Abort Merge..."
msgstr "Merge megszakítása..."
-#: git-gui.sh:2008
+#: git-gui.sh:2044
msgid "Push..."
msgstr "Push..."
-#: git-gui.sh:2019 lib/choose_repository.tcl:41
+#: git-gui.sh:2055 lib/choose_repository.tcl:40
msgid "Apple"
msgstr "Apple"
-#: git-gui.sh:2022 git-gui.sh:2044 lib/about.tcl:13
-#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
+#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
+#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
#, tcl-format
msgid "About %s"
msgstr "Névjegy: %s"
-#: git-gui.sh:2026
+#: git-gui.sh:2062
msgid "Preferences..."
-msgstr ""
+msgstr "Beállítások..."
-#: git-gui.sh:2034 git-gui.sh:2558
+#: git-gui.sh:2070 git-gui.sh:2595
msgid "Options..."
msgstr "Opciók..."
-#: git-gui.sh:2040 lib/choose_repository.tcl:47
+#: git-gui.sh:2076 lib/choose_repository.tcl:46
msgid "Help"
msgstr "Segítség"
-#: git-gui.sh:2081
+#: git-gui.sh:2117
msgid "Online Documentation"
msgstr "Online dokumentáció"
-#: git-gui.sh:2165
+#: git-gui.sh:2201
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
-msgstr ""
+msgstr "végzetes hiba: nem érhető el a(z) %s útvonal: Nincs ilyen fájl vagy könyvtár"
-#: git-gui.sh:2198
+#: git-gui.sh:2234
msgid "Current Branch:"
msgstr "Jelenlegi branch:"
-#: git-gui.sh:2219
-#, fuzzy
+#: git-gui.sh:2255
msgid "Staged Changes (Will Commit)"
msgstr "Kiválasztott változtatások (commitolva lesz)"
-#: git-gui.sh:2239
-#, fuzzy
+#: git-gui.sh:2274
msgid "Unstaged Changes"
-msgstr "Változtatások kiválasztása"
+msgstr "Kiválasztatlan változtatások"
-#: git-gui.sh:2286
+#: git-gui.sh:2323
msgid "Stage Changed"
msgstr "Változtatások kiválasztása"
-#: git-gui.sh:2302 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "Push"
-#: git-gui.sh:2332
+#: git-gui.sh:2369
msgid "Initial Commit Message:"
msgstr "Kezdeti commit üzenet:"
-#: git-gui.sh:2333
+#: git-gui.sh:2370
msgid "Amended Commit Message:"
msgstr "Javító commit üzenet:"
-#: git-gui.sh:2334
+#: git-gui.sh:2371
msgid "Amended Initial Commit Message:"
msgstr "Kezdeti javító commit üzenet:"
-#: git-gui.sh:2335
+#: git-gui.sh:2372
msgid "Amended Merge Commit Message:"
msgstr "Javító merge commit üzenet:"
-#: git-gui.sh:2336
+#: git-gui.sh:2373
msgid "Merge Commit Message:"
msgstr "Merge commit üzenet:"
-#: git-gui.sh:2337
+#: git-gui.sh:2374
msgid "Commit Message:"
msgstr "Commit üzenet:"
-#: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71
+#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
msgid "Copy All"
msgstr "Összes másolása"
-#: git-gui.sh:2406 lib/blame.tcl:104
+#: git-gui.sh:2443 lib/blame.tcl:104
msgid "File:"
msgstr "Fájl:"
-#: git-gui.sh:2508
+#: git-gui.sh:2545
msgid "Refresh"
msgstr "Frissítés"
-#: git-gui.sh:2529
+#: git-gui.sh:2566
msgid "Apply/Reverse Hunk"
msgstr "Hunk alkalmazása/visszaállítása"
-#: git-gui.sh:2535
+#: git-gui.sh:2572
msgid "Decrease Font Size"
msgstr "Font méret csökkentése"
-#: git-gui.sh:2539
+#: git-gui.sh:2576
msgid "Increase Font Size"
msgstr "Fönt méret növelése"
-#: git-gui.sh:2544
+#: git-gui.sh:2581
msgid "Show Less Context"
msgstr "Kevesebb környezet mutatása"
-#: git-gui.sh:2551
+#: git-gui.sh:2588
msgid "Show More Context"
msgstr "Több környezet mutatása"
-#: git-gui.sh:2565
+#: git-gui.sh:2602
msgid "Unstage Hunk From Commit"
msgstr "Hunk törlése commitból"
-#: git-gui.sh:2567
+#: git-gui.sh:2604
msgid "Stage Hunk For Commit"
msgstr "Hunk kiválasztása commitba"
-#: git-gui.sh:2586
+#: git-gui.sh:2623
msgid "Initializing..."
msgstr "Inicializálás..."
-#: git-gui.sh:2677
+#: git-gui.sh:2718
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
"by %s:\n"
"\n"
msgstr ""
+"Lehetséges, hogy környezeti problémák vannak.\n"
+"\n"
+"A következő környezeti változók valószínűleg\n"
+"figyelmen kívül lesznek hagyva a(z) %s által\n"
+"indított folyamatok által:\n"
+"\n"
-#: git-gui.sh:2707
+#: git-gui.sh:2748
msgid ""
"\n"
"This is due to a known issue with the\n"
"Tcl binary distributed by Cygwin."
msgstr ""
+"\n"
+"Ez a Cygwin által terjesztett Tcl binárisban\n"
+"lévő ismert hiba miatt van."
-#: git-gui.sh:2712
+#: git-gui.sh:2753
#, tcl-format
msgid ""
"\n"
"user.email settings into your personal\n"
"~/.gitconfig file.\n"
msgstr ""
+"\n"
+"\n"
+"Egy jó helyettesítés a(z) %s számára\n"
+"a user.name és user.email beállítások\n"
+"elhelyezése a személyes\n"
+"~/.gitconfig fájlba.\n"
#: lib/about.tcl:25
msgid "git-gui - a graphical user interface for Git."
#: lib/blame.tcl:473
msgid "Loading copy/move tracking annotations..."
-msgstr ""
+msgstr "A másolást/átnevezést követő annotációk betöltése..."
#: lib/blame.tcl:493
msgid "lines annotated"
-msgstr ""
+msgstr "sor annotálva"
#: lib/blame.tcl:674
msgid "Loading original location annotations..."
-msgstr ""
+msgstr "Az eredeti hely annotációk betöltése..."
#: lib/blame.tcl:677
msgid "Annotation complete."
-msgstr ""
+msgstr "Az annotáció kész."
#: lib/blame.tcl:731
-#, fuzzy
msgid "Loading annotation..."
-msgstr "A(z) %s betöltése..."
+msgstr "Az annotáció betöltése..."
#: lib/blame.tcl:787
msgid "Author:"
-msgstr ""
+msgstr "Szerző:"
#: lib/blame.tcl:791
-#, fuzzy
msgid "Committer:"
-msgstr "Commit:"
+msgstr "Commiter:"
#: lib/blame.tcl:796
msgid "Original File:"
-msgstr ""
+msgstr "Eredeti fájl:"
#: lib/blame.tcl:910
msgid "Originally By:"
-msgstr ""
+msgstr "Eredeti szerző:"
#: lib/blame.tcl:916
-#, fuzzy
msgid "In File:"
-msgstr "Fájl:"
+msgstr "Ebben a fájlban:"
#: lib/blame.tcl:921
msgid "Copied Or Moved Here By:"
-msgstr ""
+msgstr "Ide másolta vagy helyezte:"
#: lib/branch_checkout.tcl:14 lib/branch_checkout.tcl:19
msgid "Checkout Branch"
msgid "Create New Branch"
msgstr "Új branch létrehozása"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:199
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
msgid "Create"
msgstr "Létrehozás"
msgid "Browse Branch Files"
msgstr "A branch fájljainak böngészése"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:215
-#: lib/choose_repository.tcl:305 lib/choose_repository.tcl:315
-#: lib/choose_repository.tcl:811
+#: lib/browser.tcl:277 lib/choose_repository.tcl:391
+#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
+#: lib/choose_repository.tcl:989
msgid "Browse"
msgstr "Böngészés"
#: lib/checkout_op.tcl:127
#, tcl-format
msgid "fatal: Cannot resolve %s"
-msgstr ""
+msgstr "végzetes: Nem lehet feloldani a következőt: %s"
#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
msgid "Close"
"Az újrakeresés most automatikusan el fog indulni.\n"
#: lib/checkout_op.tcl:322
-#, fuzzy, tcl-format
+#, tcl-format
msgid "Updating working directory to '%s'..."
-msgstr "Nincs munkakönyvtár"
+msgstr "A munkkönyvtár frissiítése a következőre: '%s'..."
#: lib/checkout_op.tcl:353
#, tcl-format
"checkout'-ból."
#: lib/checkout_op.tcl:446
-#, fuzzy, tcl-format
+#, tcl-format
msgid "Checked out '%s'."
-msgstr "Checkout..."
+msgstr "'%s' kifejtve."
#: lib/checkout_op.tcl:478
#, tcl-format
"Ennek nem szabad megtörténnie. A(z) %s most kilép és feladja."
#: lib/choose_font.tcl:39
-#, fuzzy
msgid "Select"
-msgstr "Mindent kiválaszt"
+msgstr "Kiválaszt"
#: lib/choose_font.tcl:53
msgid "Font Family"
-msgstr ""
+msgstr "Font család"
#: lib/choose_font.tcl:73
-#, fuzzy
msgid "Font Size"
-msgstr "Font méret csökkentése"
+msgstr "Font méret"
#: lib/choose_font.tcl:90
msgid "Font Example"
-msgstr ""
+msgstr "Font példa"
#: lib/choose_font.tcl:101
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
msgstr ""
+"Ez egy példa szöveg.\n"
+"Ha ez megfelel, ez lehet a betűtípus."
-#: lib/choose_repository.tcl:25
+#: lib/choose_repository.tcl:27
msgid "Git Gui"
-msgstr ""
+msgstr "Git Gui"
-#: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204
-#, fuzzy
+#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
msgid "Create New Repository"
-msgstr "Forrás repó"
+msgstr "Új repó létrehozása"
+
+#: lib/choose_repository.tcl:86
+msgid "New..."
+msgstr "Új..."
-#: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291
-#, fuzzy
+#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
msgid "Clone Existing Repository"
-msgstr "Cél repó"
+msgstr "Létező repó másolása"
+
+#: lib/choose_repository.tcl:99
+msgid "Clone..."
+msgstr "Másolás..."
-#: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800
-#, fuzzy
+#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
msgid "Open Existing Repository"
-msgstr "Cél repó"
+msgstr "Létező könyvtár megnyitása"
-#: lib/choose_repository.tcl:91
-msgid "Next >"
-msgstr ""
+#: lib/choose_repository.tcl:112
+msgid "Open..."
+msgstr "Meggyitás..."
+
+#: lib/choose_repository.tcl:125
+msgid "Recent Repositories"
+msgstr "Legutóbbi repók"
-#: lib/choose_repository.tcl:152
-#, fuzzy, tcl-format
+#: lib/choose_repository.tcl:131
+msgid "Open Recent Repository:"
+msgstr "Legutóbbi repók megnyitása:"
+
+#: lib/choose_repository.tcl:294
+#, tcl-format
msgid "Location %s already exists."
-msgstr "A(z) '%s' branch már létezik."
+msgstr "A(z) '%s' hely már létezik."
-#: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165
-#: lib/choose_repository.tcl:172
-#, fuzzy, tcl-format
+#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
+#: lib/choose_repository.tcl:314
+#, tcl-format
msgid "Failed to create repository %s:"
-msgstr "Nem sikerült teljesen elmenteni a beállításokat:"
+msgstr "Nem sikerült letrehozni a(z) %s repót:"
-#: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309
+#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
msgid "Directory:"
-msgstr ""
+msgstr "Könyvtár:"
-#: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363
-#: lib/choose_repository.tcl:834
-#, fuzzy
+#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
+#: lib/choose_repository.tcl:1013
msgid "Git Repository"
-msgstr "Repó"
+msgstr "Git repó"
-#: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260
-#, fuzzy, tcl-format
+#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#, tcl-format
msgid "Directory %s already exists."
-msgstr "A(z) '%s' branch már létezik."
+msgstr "A(z) '%s' könyvtár már létezik."
-#: lib/choose_repository.tcl:265
-#, fuzzy, tcl-format
+#: lib/choose_repository.tcl:442
+#, tcl-format
msgid "File %s already exists."
-msgstr "A(z) '%s' branch már létezik."
+msgstr "A(z) '%s' fájl már létezik."
-#: lib/choose_repository.tcl:286
-#, fuzzy
+#: lib/choose_repository.tcl:463
msgid "Clone"
msgstr "Bezárás"
-#: lib/choose_repository.tcl:299
+#: lib/choose_repository.tcl:476
msgid "URL:"
-msgstr ""
+msgstr "URL:"
-#: lib/choose_repository.tcl:319
+#: lib/choose_repository.tcl:496
msgid "Clone Type:"
-msgstr ""
+msgstr "Másolás típusa:"
-#: lib/choose_repository.tcl:325
+#: lib/choose_repository.tcl:502
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
-msgstr ""
+msgstr "Általános (Gyors, félig-redundáns, hardlinkek)"
-#: lib/choose_repository.tcl:331
+#: lib/choose_repository.tcl:508
msgid "Full Copy (Slower, Redundant Backup)"
-msgstr ""
+msgstr "Teljes másolás (Lassabb, redundáns biztonsági mentés)"
-#: lib/choose_repository.tcl:337
+#: lib/choose_repository.tcl:514
msgid "Shared (Fastest, Not Recommended, No Backup)"
-msgstr ""
+msgstr "Megosztott (Leggyorsabb, nem ajánlott, nincs mentés)"
-#: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418
-#: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630
-#: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848
-#, fuzzy, tcl-format
+#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597
+#: lib/choose_repository.tcl:738 lib/choose_repository.tcl:808
+#: lib/choose_repository.tcl:1019 lib/choose_repository.tcl:1027
+#, tcl-format
msgid "Not a Git repository: %s"
-msgstr "Nincs kiválasztott repó."
+msgstr "Nem Git repó: %s"
-#: lib/choose_repository.tcl:405
+#: lib/choose_repository.tcl:586
msgid "Standard only available for local repository."
-msgstr ""
+msgstr "A standard csak helyi repókra érhető el."
-#: lib/choose_repository.tcl:409
+#: lib/choose_repository.tcl:590
msgid "Shared only available for local repository."
-msgstr ""
+msgstr "A megosztott csak helyi repókra érhető el."
-#: lib/choose_repository.tcl:439
+#: lib/choose_repository.tcl:617
msgid "Failed to configure origin"
-msgstr ""
+msgstr "Nem sikerült beállítani az origint"
-#: lib/choose_repository.tcl:451
+#: lib/choose_repository.tcl:629
msgid "Counting objects"
-msgstr ""
+msgstr "Objektumok számolása"
-#: lib/choose_repository.tcl:452
+#: lib/choose_repository.tcl:630
msgid "buckets"
-msgstr ""
+msgstr "vödrök"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:654
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
-msgstr ""
+msgstr "Nem sikerült másolni az objects/info/alternates-t: %s"
-#: lib/choose_repository.tcl:512
-#, fuzzy, tcl-format
+#: lib/choose_repository.tcl:690
+#, tcl-format
msgid "Nothing to clone from %s."
-msgstr "Új változások letöltése innen: %s"
+msgstr "Semmi másolni való nincs innen: %s"
-#: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728
-#: lib/choose_repository.tcl:740
+#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
+#: lib/choose_repository.tcl:918
msgid "The 'master' branch has not been initialized."
-msgstr ""
+msgstr "A 'master' branch nincs inicializálva."
-#: lib/choose_repository.tcl:527
+#: lib/choose_repository.tcl:705
msgid "Hardlinks are unavailable. Falling back to copying."
-msgstr ""
+msgstr "Nem érhetőek el hardlinkek. Másolás használata."
-#: lib/choose_repository.tcl:539
-#, fuzzy, tcl-format
+#: lib/choose_repository.tcl:717
+#, tcl-format
msgid "Cloning from %s"
-msgstr "A(z) %s letöltése innen: %s"
+msgstr "Másolás innen: %s"
-#: lib/choose_repository.tcl:570
-#, fuzzy
+#: lib/choose_repository.tcl:748
msgid "Copying objects"
-msgstr "Az objektum adatbázis tömörítése"
+msgstr "Objektumok másolása"
-#: lib/choose_repository.tcl:571
+#: lib/choose_repository.tcl:749
msgid "KiB"
-msgstr ""
+msgstr "KiB"
-#: lib/choose_repository.tcl:595
+#: lib/choose_repository.tcl:773
#, tcl-format
msgid "Unable to copy object: %s"
-msgstr ""
+msgstr "Nem sikerült másolni az objektumot: %s"
-#: lib/choose_repository.tcl:605
+#: lib/choose_repository.tcl:783
msgid "Linking objects"
-msgstr ""
+msgstr "Objektumok összefűzése"
-#: lib/choose_repository.tcl:606
+#: lib/choose_repository.tcl:784
msgid "objects"
-msgstr ""
+msgstr "objektum"
-#: lib/choose_repository.tcl:614
+#: lib/choose_repository.tcl:792
#, tcl-format
msgid "Unable to hardlink object: %s"
-msgstr ""
+msgstr "Nem sikerült hardlinkelni az objektumot: %s"
-#: lib/choose_repository.tcl:669
+#: lib/choose_repository.tcl:847
msgid "Cannot fetch branches and objects. See console output for details."
-msgstr ""
+msgstr "Nem sikerült letölteni a branch-eket és az objektumokat. Bővebben a konzolos kimenetben."
-#: lib/choose_repository.tcl:680
+#: lib/choose_repository.tcl:858
msgid "Cannot fetch tags. See console output for details."
-msgstr ""
+msgstr "Nem sikerült letölteni a tageket. Bővebben a konzolos kimenetben."
-#: lib/choose_repository.tcl:704
+#: lib/choose_repository.tcl:882
msgid "Cannot determine HEAD. See console output for details."
-msgstr ""
+msgstr "Nem sikerült megállapítani a HEAD-et. Bővebben a konzolos kimenetben."
-#: lib/choose_repository.tcl:713
+#: lib/choose_repository.tcl:891
#, tcl-format
msgid "Unable to cleanup %s"
-msgstr ""
+msgstr "Nem sikerült tiszítani: %s."
-#: lib/choose_repository.tcl:719
-#, fuzzy
+#: lib/choose_repository.tcl:897
msgid "Clone failed."
-msgstr "A félbeszakítás nem sikerült."
+msgstr "A másolás nem sikerült."
-#: lib/choose_repository.tcl:726
+#: lib/choose_repository.tcl:904
msgid "No default branch obtained."
-msgstr ""
+msgstr "Nincs alapértelmezett branch."
-#: lib/choose_repository.tcl:737
+#: lib/choose_repository.tcl:915
#, tcl-format
msgid "Cannot resolve %s as a commit."
-msgstr ""
+msgstr "Nem sikerült felöldani a(z) %s objektumot commitként."
-#: lib/choose_repository.tcl:749
-#, fuzzy
+#: lib/choose_repository.tcl:927
msgid "Creating working directory"
-msgstr "Nincs munkakönyvtár"
+msgstr "Munkakönyvtár létrehozása"
-#: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80
-#: lib/index.tcl:149
+#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/index.tcl:193
msgid "files"
-msgstr ""
+msgstr "fájl"
-#: lib/choose_repository.tcl:779
+#: lib/choose_repository.tcl:957
msgid "Initial file checkout failed."
-msgstr ""
+msgstr "A kezdeti fájl-kibontás sikertelen."
-#: lib/choose_repository.tcl:795
+#: lib/choose_repository.tcl:973
msgid "Open"
-msgstr ""
+msgstr "Megnyitás"
-#: lib/choose_repository.tcl:805
-#, fuzzy
+#: lib/choose_repository.tcl:983
msgid "Repository:"
-msgstr "Repó"
+msgstr "Repó:"
-#: lib/choose_repository.tcl:854
-#, fuzzy, tcl-format
+#: lib/choose_repository.tcl:1033
+#, tcl-format
msgid "Failed to open repository %s:"
-msgstr "Nem sikerült teljesen elmenteni a beállításokat:"
+msgstr "Nem sikerült megnyitni a(z) %s repót:"
#: lib/choose_rev.tcl:53
msgid "This Detached Checkout"
#: lib/choose_rev.tcl:530
msgid "Updated"
-msgstr ""
+msgstr "Frissítve"
#: lib/choose_rev.tcl:558
msgid "URL"
-msgstr ""
+msgstr "URL"
#: lib/commit.tcl:9
msgid ""
"\n"
"A good commit message has the following format:\n"
"\n"
-"- First line: Describe in one sentance what you did.\n"
+"- First line: Describe in one sentence what you did.\n"
"- Second line: Blank\n"
"- Remaining lines: Describe why this change is good.\n"
msgstr ""
#: lib/commit.tcl:275
#, tcl-format
msgid "Commit %s appears to be corrupt"
-msgstr ""
+msgstr "A(z) %s commit sérültnek tűnik"
#: lib/commit.tcl:279
msgid ""
#: lib/commit.tcl:303
#, tcl-format
msgid "warning: Tcl does not support encoding '%s'."
-msgstr ""
+msgstr "figyelmeztetés: a Tcl nem támogatja a(z) '%s' kódolást."
#: lib/commit.tcl:317
msgid "commit-tree failed:"
"\n"
"Compress the database now?"
msgstr ""
+"Ennek a repónak jelenleg %i különálló objektuma van.\n"
+"\n"
+"Az optimális teljesítményhez erősen ajánlott az adatbázis tömörítése, ha "
+"több mint %i objektum létezik.\n"
+"\n"
+"Lehet most tömöríteni az adatbázist?"
#: lib/date.tcl:25
-#, fuzzy, tcl-format
+#, tcl-format
msgid "Invalid date from Git: %s"
-msgstr "Érvénytelen revízió: %s"
+msgstr "Érvénytelen dátum a Git-től: %s"
#: lib/diff.tcl:42
#, tcl-format
"Egy újrakeresés fog indulni a hasonló állapotú fájlok megtalálása érdekében."
#: lib/diff.tcl:81
-#, fuzzy, tcl-format
+#, tcl-format
msgid "Loading diff of %s..."
-msgstr "A(z) %s betöltése..."
+msgstr "A(z) %s diff-jének betöltése..."
#: lib/diff.tcl:114 lib/diff.tcl:184
#, tcl-format
msgid "Unable to display %s"
-msgstr ""
+msgstr "Nem lehet megjeleníteni a következőt: %s"
#: lib/diff.tcl:115
msgid "Error loading file:"
#: lib/diff.tcl:122
msgid "Git Repository (subproject)"
-msgstr ""
+msgstr "Git repó (alprojekt)"
#: lib/diff.tcl:134
msgid "* Binary file (not showing content)."
-msgstr ""
+msgstr "* Bináris fájl (tartalom elrejtése)."
#: lib/diff.tcl:185
msgid "Error loading diff:"
msgid "You must correct the above errors before committing."
msgstr "Ki kell javítanunk a fenti hibákat commit előtt."
-#: lib/index.tcl:241
-#, fuzzy, tcl-format
+#: lib/index.tcl:6
+msgid "Unable to unlock the index."
+msgstr "Nem sikerült az index zárolásának feloldása."
+
+#: lib/index.tcl:15
+msgid "Index Error"
+msgstr "Index hiba"
+
+#: lib/index.tcl:21
+msgid ""
+"Updating the Git index failed. A rescan will be automatically started to "
+"resynchronize git-gui."
+msgstr ""
+"A Git index frissítése sikertelen volt. Egy újraolvasás automatikusan elindult, hogy "
+"a git-gui újra szinkonban legyen."
+
+#: lib/index.tcl:27
+msgid "Continue"
+msgstr "Folytatás"
+
+#: lib/index.tcl:31
+msgid "Unlock Index"
+msgstr "Index zárolásának feloldása"
+
+#: lib/index.tcl:282
+#, tcl-format
msgid "Unstaging %s from commit"
-msgstr "Commitba való kiválasztás visszavonása"
+msgstr "A(z) %s commitba való kiválasztásának visszavonása"
-#: lib/index.tcl:285
-#, fuzzy, tcl-format
+#: lib/index.tcl:326
+#, tcl-format
msgid "Adding %s"
-msgstr "A(z) %s olvasása..."
+msgstr "A(z) %s hozzáadása..."
-#: lib/index.tcl:340
+#: lib/index.tcl:381
#, tcl-format
msgid "Revert changes in file %s?"
msgstr "Visszaállítja a változtatásokat a(z) %s fájlban?"
-#: lib/index.tcl:342
+#: lib/index.tcl:383
#, tcl-format
msgid "Revert changes in these %i files?"
msgstr "Visszaállítja a változtatásokat ebben e %i fájlban?"
-#: lib/index.tcl:348
+#: lib/index.tcl:389
msgid "Any unstaged changes will be permanently lost by the revert."
msgstr ""
"Minden nem kiválasztott változtatás el fog veszni ezáltal a visszaállítás "
"által."
-#: lib/index.tcl:351
+#: lib/index.tcl:392
msgid "Do Nothing"
msgstr "Ne csináljunk semmit"
msgstr "Új branch név sablon"
#: lib/option.tcl:176
-#, fuzzy
msgid "Change Font"
-msgstr "Fő betűtípus"
+msgstr "Betűtípus megváltoztatása"
#: lib/option.tcl:180
#, tcl-format
msgid "Choose %s"
-msgstr ""
+msgstr "%s választása"
#: lib/option.tcl:186
msgid "pt."
-msgstr ""
+msgstr "pt."
#: lib/option.tcl:200
msgid "Preferences"
-msgstr ""
+msgstr "Beállítások"
#: lib/option.tcl:235
msgid "Failed to completely save options:"
msgstr "Nem sikerült teljesen elmenteni a beállításokat:"
-#: lib/remote.tcl:165
-#, fuzzy
-msgid "Prune from"
-msgstr "Törlés innen: %s..."
-
-# tcl-format
-#: lib/remote.tcl:170
-#, fuzzy
-msgid "Fetch from"
-msgstr "Letöltés innen: %s..."
-
-#: lib/remote.tcl:213
-#, fuzzy
-msgid "Push to"
-msgstr "Push"
-
#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
msgid "Delete Remote Branch"
msgstr "Távoli branch törlése"
msgstr "Egy branch szükséges a 'Merge-ölt a következőbe'-hez."
#: lib/remote_branch_delete.tcl:184
-#, fuzzy, tcl-format
+#, tcl-format
msgid ""
"The following branches are not completely merged into %s:\n"
"\n"
" - %s"
-msgstr "A következő branchek nem teljesen lettek merge-ölve ebbe: %s:"
+msgstr ""
+"A következő branchek nem teljesen lettek merge-ölve ebbe: %s:"
+"\n"
+" - %s"
#: lib/remote_branch_delete.tcl:189
#, tcl-format
msgid "Scanning %s..."
msgstr "Keresés itt: %s..."
-#: lib/shortcut.tcl:26 lib/shortcut.tcl:74
-msgid "Cannot write script:"
-msgstr "Nem sikerült írni a scriptet:"
+#: lib/remote.tcl:165
+msgid "Prune from"
+msgstr "Törlés innen"
-#: lib/shortcut.tcl:149
+# tcl-format
+#: lib/remote.tcl:170
+msgid "Fetch from"
+msgstr "Letöltés innen"
+
+#: lib/remote.tcl:213
+msgid "Push to"
+msgstr "Push ide"
+
+#: lib/shortcut.tcl:20 lib/shortcut.tcl:61
+msgid "Cannot write shortcut:"
+msgstr "Nem sikerült írni a gyorsbillentyűt:"
+
+#: lib/shortcut.tcl:136
msgid "Cannot write icon:"
msgstr "Nem sikerült írni az ikont:"
msgstr "%s ... %*i / %*i %s (%3i%%)"
#: lib/transport.tcl:6
-#, fuzzy, tcl-format
+#, tcl-format
msgid "fetch %s"
-msgstr "Letöltés"
+msgstr "a(z) %s letöltése"
#: lib/transport.tcl:7
#, tcl-format
#: lib/transport.tcl:18
#, tcl-format
msgid "remote prune %s"
-msgstr ""
+msgstr "a(z) %s távoli törlése"
#: lib/transport.tcl:19
#, tcl-format
#: lib/transport.tcl:25 lib/transport.tcl:71
#, tcl-format
msgid "push %s"
-msgstr ""
+msgstr "%s push-olása"
#: lib/transport.tcl:26
#, tcl-format
#: lib/transport.tcl:160
msgid "Force overwrite existing branch (may discard changes)"
-msgstr ""
+msgstr "Létező branch felülírásának erőltetése (lehet, hogy el fog dobni változtatásokat)"
#: lib/transport.tcl:164
msgid "Use thin pack (for slow network connections)"
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-10 14:42+0200\n"
-"PO-Revision-Date: 2007-10-10 15:27+0200\n"
-"Last-Translator: Paolo Ciarrocchi <paolo.ciarrocchi@gmail.com>\n"
+"POT-Creation-Date: 2007-11-09 11:18+0100\n"
+"PO-Revision-Date: 2007-11-01 21:05+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:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
-#: git-gui.sh:763
+#: git-gui.sh:41 git-gui.sh:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
+#: git-gui.sh:733
msgid "git-gui: fatal error"
msgstr "git-gui: errore grave"
-#: git-gui.sh:595
+#: git-gui.sh:565
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "Caratteri non validi specificati in %s:"
-#: git-gui.sh:620
+#: git-gui.sh:590
msgid "Main Font"
msgstr "Caratteri principali"
-#: git-gui.sh:621
+#: git-gui.sh:591
msgid "Diff/Console Font"
msgstr "Caratteri per confronti e terminale"
-#: git-gui.sh:635
+#: git-gui.sh:605
msgid "Cannot find git in PATH."
msgstr "Impossibile trovare git nel PATH"
-#: git-gui.sh:662
+#: git-gui.sh:632
msgid "Cannot parse Git version string:"
msgstr "Impossibile determinare la versione di Git:"
-#: git-gui.sh:680
+#: git-gui.sh:650
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
"\n"
"Assume '%s' is version 1.5.0?\n"
msgstr ""
-"La versione di GIT non può essere determinata.\n"
+"La versione di Git non può essere determinata.\n"
"\n"
"%s riporta che la versione è '%s'.\n"
"\n"
"\n"
"Assumere che '%s' sia alla versione 1.5.0?\n"
-#: git-gui.sh:853
+#: git-gui.sh:888
msgid "Git directory not found:"
msgstr "Non trovo la directory di git: "
-#: git-gui.sh:860
+#: git-gui.sh:895
msgid "Cannot move to top of working directory:"
msgstr "Impossibile spostarsi sulla directory principale del progetto:"
-#: git-gui.sh:867
+#: git-gui.sh:902
msgid "Cannot use funny .git directory:"
msgstr "Impossibile usare una .git directory strana:"
-#: git-gui.sh:872
+#: git-gui.sh:907
msgid "No working directory"
msgstr "Nessuna directory di lavoro"
-#: git-gui.sh:1019
+#: git-gui.sh:1054
msgid "Refreshing file status..."
msgstr "Controllo dello stato dei file in corso..."
-#: git-gui.sh:1084
+#: git-gui.sh:1119
msgid "Scanning for modified files ..."
msgstr "Ricerca di file modificati in corso..."
-#: git-gui.sh:1259 lib/browser.tcl:245
+#: git-gui.sh:1294 lib/browser.tcl:245
msgid "Ready."
msgstr "Pronto."
-#: git-gui.sh:1525
+#: git-gui.sh:1560
msgid "Unmodified"
msgstr "Non modificato"
-#: git-gui.sh:1527
+#: git-gui.sh:1562
msgid "Modified, not staged"
msgstr "Modificato, non preparato per una nuova revisione"
-#: git-gui.sh:1528 git-gui.sh:1533
+#: git-gui.sh:1563 git-gui.sh:1568
msgid "Staged for commit"
msgstr "Preparato per una nuova revisione"
-#: git-gui.sh:1529 git-gui.sh:1534
+#: git-gui.sh:1564 git-gui.sh:1569
msgid "Portions staged for commit"
msgstr "Parti preparate per una nuova revisione"
-#: git-gui.sh:1530 git-gui.sh:1535
+#: git-gui.sh:1565 git-gui.sh:1570
msgid "Staged for commit, missing"
msgstr "Preparato per una nuova revisione, mancante"
-#: git-gui.sh:1532
+#: git-gui.sh:1567
msgid "Untracked, not staged"
msgstr "Non tracciato, non preparato per una nuova revisione"
-#: git-gui.sh:1537
+#: git-gui.sh:1572
msgid "Missing"
msgstr "Mancante"
-#: git-gui.sh:1538
+#: git-gui.sh:1573
msgid "Staged for removal"
msgstr "Preparato per la rimozione"
-#: git-gui.sh:1539
+#: git-gui.sh:1574
msgid "Staged for removal, still present"
msgstr "Preparato alla rimozione, ancora presente"
-#: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544
+#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
msgid "Requires merge resolution"
msgstr "Richiede risoluzione dei conflitti"
-#: git-gui.sh:1579
+#: git-gui.sh:1614
msgid "Starting gitk... please wait..."
msgstr "Avvio di gitk... attendere..."
-#: git-gui.sh:1588
+#: git-gui.sh:1623
#, tcl-format
msgid ""
"Unable to start gitk:\n"
"\n"
"%s non esiste"
-#: git-gui.sh:1788 lib/choose_repository.tcl:32
+#: git-gui.sh:1823 lib/choose_repository.tcl:35
msgid "Repository"
msgstr "Archivio"
-#: git-gui.sh:1789
+#: git-gui.sh:1824
msgid "Edit"
msgstr "Modifica"
-#: git-gui.sh:1791 lib/choose_rev.tcl:560
+#: git-gui.sh:1826 lib/choose_rev.tcl:560
msgid "Branch"
msgstr "Ramo"
-#: git-gui.sh:1794 lib/choose_rev.tcl:547
+#: git-gui.sh:1829 lib/choose_rev.tcl:547
msgid "Commit@@noun"
msgstr "Revisione"
-#: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
msgid "Merge"
msgstr "Fusione (Merge)"
-#: git-gui.sh:1798 lib/choose_rev.tcl:556
+#: git-gui.sh:1833 lib/choose_rev.tcl:556
msgid "Remote"
msgstr "Remoto"
-#: git-gui.sh:1807
+#: git-gui.sh:1842
msgid "Browse Current Branch's Files"
-msgstr "Esplora i file del ramo corrente"
+msgstr "Esplora i file del ramo attuale"
-#: git-gui.sh:1811
+#: git-gui.sh:1846
msgid "Browse Branch Files..."
msgstr "Esplora i file del ramo..."
-#: git-gui.sh:1816
+#: git-gui.sh:1851
msgid "Visualize Current Branch's History"
-msgstr "Visualizza la cronologia del ramo corrente"
+msgstr "Visualizza la cronologia del ramo attuale"
-#: git-gui.sh:1820
+#: git-gui.sh:1855
msgid "Visualize All Branch History"
msgstr "Visualizza la cronologia di tutti i rami"
-#: git-gui.sh:1827
+#: git-gui.sh:1862
#, tcl-format
msgid "Browse %s's Files"
msgstr "Esplora i file di %s"
-#: git-gui.sh:1829
+#: git-gui.sh:1864
#, tcl-format
msgid "Visualize %s's History"
msgstr "Visualizza la cronologia di %s"
-#: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "Statistiche dell'archivio"
-#: git-gui.sh:1837 lib/database.tcl:34
+#: git-gui.sh:1872 lib/database.tcl:34
msgid "Compress Database"
msgstr "Comprimi l'archivio"
-#: git-gui.sh:1840
+#: git-gui.sh:1875
msgid "Verify Database"
msgstr "Verifica l'archivio"
-#: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9
-#: lib/shortcut.tcl:45 lib/shortcut.tcl:84
+#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "Crea icona desktop"
-#: git-gui.sh:1860 lib/choose_repository.tcl:36 lib/choose_repository.tcl:95
+#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
msgid "Quit"
msgstr "Esci"
-#: git-gui.sh:1867
+#: git-gui.sh:1902
msgid "Undo"
msgstr "Annulla"
-#: git-gui.sh:1870
+#: git-gui.sh:1905
msgid "Redo"
msgstr "Ripeti"
-#: git-gui.sh:1874 git-gui.sh:2366
+#: git-gui.sh:1909 git-gui.sh:2403
msgid "Cut"
msgstr "Taglia"
-#: git-gui.sh:1877 git-gui.sh:2369 git-gui.sh:2440 git-gui.sh:2512
+#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
#: lib/console.tcl:67
msgid "Copy"
msgstr "Copia"
-#: git-gui.sh:1880 git-gui.sh:2372
+#: git-gui.sh:1915 git-gui.sh:2409
msgid "Paste"
msgstr "Incolla"
-#: git-gui.sh:1883 git-gui.sh:2375 lib/branch_delete.tcl:26
+#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "Elimina"
-#: git-gui.sh:1887 git-gui.sh:2379 git-gui.sh:2516 lib/console.tcl:69
+#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
msgid "Select All"
msgstr "Seleziona tutto"
-#: git-gui.sh:1896
+#: git-gui.sh:1931
msgid "Create..."
msgstr "Crea..."
-#: git-gui.sh:1902
+#: git-gui.sh:1937
msgid "Checkout..."
msgstr "Attiva..."
-#: git-gui.sh:1908
+#: git-gui.sh:1943
msgid "Rename..."
msgstr "Rinomina"
-#: git-gui.sh:1913 git-gui.sh:2012
+#: git-gui.sh:1948 git-gui.sh:2048
msgid "Delete..."
msgstr "Elimina..."
-#: git-gui.sh:1918
+#: git-gui.sh:1953
msgid "Reset..."
msgstr "Ripristina..."
-#: git-gui.sh:1930 git-gui.sh:2313
+#: git-gui.sh:1965 git-gui.sh:2350
msgid "New Commit"
msgstr "Nuova revisione"
-#: git-gui.sh:1938 git-gui.sh:2320
+#: git-gui.sh:1973 git-gui.sh:2357
msgid "Amend Last Commit"
msgstr "Correggi l'ultima revisione"
-#: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "Analizza nuovamente"
-#: git-gui.sh:1953
+#: git-gui.sh:1988
msgid "Stage To Commit"
msgstr "Prepara per una nuova revisione"
-#: git-gui.sh:1958
+#: git-gui.sh:1994
msgid "Stage Changed Files To Commit"
msgstr "Prepara i file modificati per una nuova revisione"
-#: git-gui.sh:1964
+#: git-gui.sh:2000
msgid "Unstage From Commit"
msgstr "Annulla preparazione"
-#: git-gui.sh:1969 lib/index.tcl:352
+#: git-gui.sh:2005 lib/index.tcl:393
msgid "Revert Changes"
msgstr "Annulla modifiche"
-#: git-gui.sh:1976 git-gui.sh:2292 git-gui.sh:2390
+#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
msgid "Sign Off"
msgstr "Sign Off"
-#: git-gui.sh:1980 git-gui.sh:2296
+#: git-gui.sh:2016 git-gui.sh:2333
msgid "Commit@@verb"
msgstr "Nuova revisione"
-#: git-gui.sh:1991
+#: git-gui.sh:2027
msgid "Local Merge..."
msgstr "Fusione locale..."
-#: git-gui.sh:1996
+#: git-gui.sh:2032
msgid "Abort Merge..."
msgstr "Interrompi fusione..."
-#: git-gui.sh:2008
+#: git-gui.sh:2044
msgid "Push..."
msgstr "Propaga..."
-#: git-gui.sh:2019 lib/choose_repository.tcl:41
+#: git-gui.sh:2055 lib/choose_repository.tcl:40
msgid "Apple"
msgstr "Apple"
-#: git-gui.sh:2022 git-gui.sh:2044 lib/about.tcl:13
-#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
+#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
+#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
#, tcl-format
msgid "About %s"
msgstr "Informazioni su %s"
-#: git-gui.sh:2026
+#: git-gui.sh:2062
msgid "Preferences..."
msgstr "Preferenze..."
-#: git-gui.sh:2034 git-gui.sh:2558
+#: git-gui.sh:2070 git-gui.sh:2595
msgid "Options..."
msgstr "Opzioni..."
-#: git-gui.sh:2040 lib/choose_repository.tcl:47
+#: git-gui.sh:2076 lib/choose_repository.tcl:46
msgid "Help"
msgstr "Aiuto"
-#: git-gui.sh:2081
+#: git-gui.sh:2117
msgid "Online Documentation"
msgstr "Documentazione sul web"
-#: git-gui.sh:2165
+#: git-gui.sh:2201
#, 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:2198
+#: git-gui.sh:2234
msgid "Current Branch:"
msgstr "Ramo attuale:"
-#: git-gui.sh:2219
+#: git-gui.sh:2255
msgid "Staged Changes (Will Commit)"
msgstr "Modifiche preparate (saranno nella nuova revisione)"
-#: git-gui.sh:2239
+#: git-gui.sh:2274
msgid "Unstaged Changes"
msgstr "Modifiche non preparate"
-#: git-gui.sh:2286
+#: git-gui.sh:2323
msgid "Stage Changed"
msgstr "Prepara modificati"
-#: git-gui.sh:2302 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "Propaga (Push)"
-#: git-gui.sh:2332
+#: git-gui.sh:2369
msgid "Initial Commit Message:"
msgstr "Messaggio di revisione iniziale:"
-#: git-gui.sh:2333
+#: git-gui.sh:2370
msgid "Amended Commit Message:"
msgstr "Messaggio di revisione corretto:"
-#: git-gui.sh:2334
+#: git-gui.sh:2371
msgid "Amended Initial Commit Message:"
msgstr "Messaggio iniziale di revisione corretto:"
-#: git-gui.sh:2335
+#: git-gui.sh:2372
msgid "Amended Merge Commit Message:"
msgstr "Messaggio di fusione corretto:"
-#: git-gui.sh:2336
+#: git-gui.sh:2373
msgid "Merge Commit Message:"
msgstr "Messaggio di fusione:"
-#: git-gui.sh:2337
+#: git-gui.sh:2374
msgid "Commit Message:"
msgstr "Messaggio di revisione:"
-#: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71
+#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
msgid "Copy All"
msgstr "Copia tutto"
-#: git-gui.sh:2406 lib/blame.tcl:104
+#: git-gui.sh:2443 lib/blame.tcl:104
msgid "File:"
msgstr "File:"
-#: git-gui.sh:2508
+#: git-gui.sh:2545
msgid "Refresh"
msgstr "Rinfresca"
-#: git-gui.sh:2529
+#: git-gui.sh:2566
msgid "Apply/Reverse Hunk"
msgstr "Applica/Inverti sezione"
-#: git-gui.sh:2535
+#: git-gui.sh:2572
msgid "Decrease Font Size"
msgstr "Diminuisci dimensione caratteri"
-#: git-gui.sh:2539
+#: git-gui.sh:2576
msgid "Increase Font Size"
msgstr "Aumenta dimensione caratteri"
-#: git-gui.sh:2544
+#: git-gui.sh:2581
msgid "Show Less Context"
msgstr "Mostra meno contesto"
-#: git-gui.sh:2551
+#: git-gui.sh:2588
msgid "Show More Context"
msgstr "Mostra più contesto"
-#: git-gui.sh:2565
+#: git-gui.sh:2602
msgid "Unstage Hunk From Commit"
msgstr "Sezione non preparata per una nuova revisione"
-#: git-gui.sh:2567
+#: git-gui.sh:2604
msgid "Stage Hunk For Commit"
msgstr "Prepara sezione per una nuova revisione"
-#: git-gui.sh:2586
+#: git-gui.sh:2623
msgid "Initializing..."
msgstr "Inizializzazione..."
-#: git-gui.sh:2677
+#: git-gui.sh:2718
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
"da %s:\n"
"\n"
-#: git-gui.sh:2707
+#: git-gui.sh:2748
msgid ""
"\n"
"This is due to a known issue with the\n"
"Ciò è dovuto a un problema conosciuto\n"
"causato dall'eseguibile Tcl distribuito da Cygwin."
-#: git-gui.sh:2712
+#: git-gui.sh:2753
#, tcl-format
msgid ""
"\n"
msgid "Create New Branch"
msgstr "Crea nuovo ramo"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:199
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
msgid "Create"
msgstr "Crea"
"Failed to delete branches:\n"
"%s"
msgstr ""
-"Cancellazione rami fallita:\n"
+"Impossibile cancellare i rami:\n"
"%s"
#: lib/branch_rename.tcl:14 lib/branch_rename.tcl:22
msgid "Browse Branch Files"
msgstr "Esplora i file del ramo"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:215
-#: lib/choose_repository.tcl:305 lib/choose_repository.tcl:315
-#: lib/choose_repository.tcl:811
+#: lib/browser.tcl:277 lib/choose_repository.tcl:391
+#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
+#: lib/choose_repository.tcl:989
msgid "Browse"
msgstr "Sfoglia"
#: lib/checkout_op.tcl:239
#, tcl-format
msgid "Failed to update '%s'."
-msgstr "Aggiornamento di '%s' fallito."
+msgstr "Impossibile aggiornare '%s'."
#: lib/checkout_op.tcl:251
msgid "Staging area (index) is already locked."
-msgstr "L'area di preparazione per una nuova revisione (indice) è già bloccata."
+msgstr ""
+"L'area di preparazione per una nuova revisione (indice) è già bloccata."
#: lib/checkout_op.tcl:266
msgid ""
"\n"
"Un altro programma Git ha modificato questo archivio dall'ultima analisi. "
"Bisogna effettuare una nuova analisi prima di poter cambiare il ramo "
-"corrente.\n"
+"attuale.\n"
"\n"
"La nuova analisi comincerà ora.\n"
"\n"
"This should not have occurred. %s will now close and give up."
msgstr ""
-"Preparazione ramo corrente fallita.\n"
+"Impossibile preparare il ramo attuale.\n"
"\n"
"Questa directory di lavoro è stata convertita solo parzialmente. I file sono "
"stati aggiornati correttamente, ma l'aggiornamento di un file di Git ha "
"Questo è un testo d'esempio.\n"
"Se ti piace questo testo, può essere il carattere giusto."
-#: lib/choose_repository.tcl:25
+#: lib/choose_repository.tcl:27
msgid "Git Gui"
msgstr "Git Gui"
-#: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204
+#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
msgid "Create New Repository"
msgstr "Crea nuovo archivio"
-#: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291
+#: lib/choose_repository.tcl:86
+msgid "New..."
+msgstr "Nuovo..."
+
+#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
msgid "Clone Existing Repository"
msgstr "Clona archivio esistente"
-#: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800
+#: lib/choose_repository.tcl:99
+msgid "Clone..."
+msgstr "Clona..."
+
+#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
msgid "Open Existing Repository"
msgstr "Apri archivio esistente"
-#: lib/choose_repository.tcl:91
-msgid "Next >"
-msgstr "Successivo >"
+#: lib/choose_repository.tcl:112
+msgid "Open..."
+msgstr "Apri..."
+
+#: lib/choose_repository.tcl:125
+msgid "Recent Repositories"
+msgstr "Archivi recenti"
+
+#: lib/choose_repository.tcl:131
+msgid "Open Recent Repository:"
+msgstr "Apri archivio recente:"
-#: lib/choose_repository.tcl:152
+#: lib/choose_repository.tcl:294
#, tcl-format
msgid "Location %s already exists."
msgstr "La posizione %s esiste già."
-#: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165
-#: lib/choose_repository.tcl:172
+#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
+#: lib/choose_repository.tcl:314
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "Impossibile creare l'archivio %s:"
-#: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309
+#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
msgid "Directory:"
msgstr "Directory:"
-#: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363
-#: lib/choose_repository.tcl:834
+#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
+#: lib/choose_repository.tcl:1013
msgid "Git Repository"
msgstr "Archivio Git"
-#: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260
+#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "La directory %s esiste già."
-#: lib/choose_repository.tcl:265
+#: lib/choose_repository.tcl:442
#, tcl-format
msgid "File %s already exists."
msgstr "Il file %s esiste già."
-#: lib/choose_repository.tcl:286
+#: lib/choose_repository.tcl:463
msgid "Clone"
msgstr "Clona"
-#: lib/choose_repository.tcl:299
+#: lib/choose_repository.tcl:476
msgid "URL:"
msgstr "URL:"
-#: lib/choose_repository.tcl:319
+#: lib/choose_repository.tcl:496
msgid "Clone Type:"
msgstr "Tipo di clone:"
-#: lib/choose_repository.tcl:325
+#: lib/choose_repository.tcl:502
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "Standard (veloce, semi-ridondante, con hardlink)"
-#: lib/choose_repository.tcl:331
+#: lib/choose_repository.tcl:508
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "Copia completa (più lento, backup ridondante)"
-#: lib/choose_repository.tcl:337
+#: lib/choose_repository.tcl:514
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "Shared (il più veloce, non raccomandato, nessun backup)"
-#: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418
-#: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630
-#: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848
+#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597
+#: lib/choose_repository.tcl:738 lib/choose_repository.tcl:808
+#: lib/choose_repository.tcl:1019 lib/choose_repository.tcl:1027
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "%s non è un archivio Git."
-#: lib/choose_repository.tcl:405
+#: lib/choose_repository.tcl:586
msgid "Standard only available for local repository."
msgstr "Standard è disponibile solo per archivi locali."
-#: lib/choose_repository.tcl:409
+#: lib/choose_repository.tcl:590
msgid "Shared only available for local repository."
msgstr "Shared è disponibile solo per archivi locali."
-#: lib/choose_repository.tcl:439
+#: lib/choose_repository.tcl:617
msgid "Failed to configure origin"
msgstr "Impossibile configurare origin"
-#: lib/choose_repository.tcl:451
+#: lib/choose_repository.tcl:629
msgid "Counting objects"
msgstr "Calcolo oggetti"
-#: lib/choose_repository.tcl:452
+#: lib/choose_repository.tcl:630
msgid "buckets"
msgstr ""
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:654
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "Impossibile copiare oggetti/info/alternate: %s"
-#: lib/choose_repository.tcl:512
+#: lib/choose_repository.tcl:690
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "Niente da clonare da %s."
-#: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728
-#: lib/choose_repository.tcl:740
+#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
+#: lib/choose_repository.tcl:918
msgid "The 'master' branch has not been initialized."
msgstr "Il ramo 'master' non è stato inizializzato."
-#: lib/choose_repository.tcl:527
+#: lib/choose_repository.tcl:705
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "Impossibile utilizzare gli hardlink. Si ricorrerà alla copia."
-#: lib/choose_repository.tcl:539
+#: lib/choose_repository.tcl:717
#, tcl-format
msgid "Cloning from %s"
msgstr "Clonazione da %s"
-#: lib/choose_repository.tcl:570
+#: lib/choose_repository.tcl:748
msgid "Copying objects"
msgstr "Copia degli oggetti"
-#: lib/choose_repository.tcl:571
+#: lib/choose_repository.tcl:749
msgid "KiB"
msgstr "KiB"
-#: lib/choose_repository.tcl:595
+#: lib/choose_repository.tcl:773
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "Impossibile copiare oggetto: %s"
-#: lib/choose_repository.tcl:605
+#: lib/choose_repository.tcl:783
msgid "Linking objects"
msgstr "Collegamento oggetti"
-#: lib/choose_repository.tcl:606
+#: lib/choose_repository.tcl:784
msgid "objects"
msgstr "oggetti"
-#: lib/choose_repository.tcl:614
+#: lib/choose_repository.tcl:792
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "Hardlink impossibile sull'oggetto: %s"
-#: lib/choose_repository.tcl:669
+#: lib/choose_repository.tcl:847
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:680
+#: lib/choose_repository.tcl:858
msgid "Cannot fetch tags. See console output for details."
msgstr ""
"Impossibile recuperare le etichette. Controllare i dettagli forniti dalla "
"console."
-#: lib/choose_repository.tcl:704
+#: lib/choose_repository.tcl:882
msgid "Cannot determine HEAD. See console output for details."
msgstr ""
"Impossibile determinare HEAD. Controllare i dettagli forniti dalla console."
-#: lib/choose_repository.tcl:713
+#: lib/choose_repository.tcl:891
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "Impossibile ripulire %s"
-#: lib/choose_repository.tcl:719
+#: lib/choose_repository.tcl:897
msgid "Clone failed."
-msgstr "Clonazione fallita."
+msgstr "Clonazione non riuscita."
-#: lib/choose_repository.tcl:726
+#: lib/choose_repository.tcl:904
msgid "No default branch obtained."
msgstr "Non è stato trovato un ramo predefinito."
-#: lib/choose_repository.tcl:737
+#: lib/choose_repository.tcl:915
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "Impossibile risolvere %s come una revisione."
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:927
msgid "Creating working directory"
msgstr "Creazione directory di lavoro"
-#: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80
-#: lib/index.tcl:149
+#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/index.tcl:193
msgid "files"
msgstr "file"
-#: lib/choose_repository.tcl:779
+#: lib/choose_repository.tcl:957
msgid "Initial file checkout failed."
-msgstr "Attivazione iniziale impossibile."
+msgstr "Attivazione iniziale non riuscita."
-#: lib/choose_repository.tcl:795
+#: lib/choose_repository.tcl:973
msgid "Open"
msgstr "Apri"
-#: lib/choose_repository.tcl:805
+#: lib/choose_repository.tcl:983
msgid "Repository:"
msgstr "Archivio:"
-#: lib/choose_repository.tcl:854
+#: lib/choose_repository.tcl:1033
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "Impossibile accedere all'archivio %s:"
msgstr ""
"Non c'è niente da correggere.\n"
"\n"
-"Stai per creare la revisione iniziale. Non esiste una revisione "
-"precedente da correggere.\n"
+"Stai per creare la revisione iniziale. Non esiste una revisione precedente "
+"da correggere.\n"
#: lib/commit.tcl:18
msgid ""
msgstr ""
"Nessuna modifica per la nuova revisione.\n"
"\n"
-"Devi preparare per una nuova revisione almeno 1 file prima di effettuare questa "
-"operazione.\n"
+"Devi preparare per una nuova revisione almeno 1 file prima di effettuare "
+"questa operazione.\n"
#: lib/commit.tcl:183
msgid ""
#: lib/commit.tcl:257
msgid "write-tree failed:"
-msgstr "write-tree fallito:"
+msgstr "write-tree non riuscito:"
#: lib/commit.tcl:275
#, tcl-format
msgid "Commit %s appears to be corrupt"
-msgstr "La revisione %s sembra essere corrotta"
+msgstr "La revisione %s sembra essere danneggiata"
#: lib/commit.tcl:279
msgid ""
#: lib/commit.tcl:317
msgid "commit-tree failed:"
-msgstr "commit-tree fallito:"
+msgstr "commit-tree non riuscito:"
#: lib/commit.tcl:339
msgid "update-ref failed:"
-msgstr "update-ref fallito:"
+msgstr "update-ref non riuscito:"
#: lib/commit.tcl:430
#, tcl-format
#: lib/console.tcl:196
msgid "Error: Command Failed"
-msgstr "Errore: comando fallito"
+msgstr "Errore: comando non riuscito"
#: lib/database.tcl:43
msgid "Number of loose objects"
#: lib/diff.tcl:302
msgid "Failed to unstage selected hunk."
-msgstr "La sezione scelta è ancora pronta per una nuova revisione."
+msgstr "Impossibile rimuovere la sezione scelta dalla nuova revisione."
#: lib/diff.tcl:309
msgid "Failed to stage selected hunk."
#: lib/error.tcl:81
msgid "You must correct the above errors before committing."
-msgstr "Bisogna correggere gli errori suddetti prima di creare una nuova revisione."
+msgstr ""
+"Bisogna correggere gli errori suddetti prima di creare una nuova revisione."
-#: lib/index.tcl:241
+#: lib/index.tcl:6
+msgid "Unable to unlock the index."
+msgstr "Impossibile sbloccare l'accesso all'indice"
+
+#: lib/index.tcl:15
+msgid "Index Error"
+msgstr "Errore nell'indice"
+
+#: lib/index.tcl:21
+msgid ""
+"Updating the Git index failed. A rescan will be automatically started to "
+"resynchronize git-gui."
+msgstr ""
+"Impossibile aggiornare l'indice. Ora sarà avviata una nuova analisi che "
+"aggiornerà git-gui."
+
+#: lib/index.tcl:27
+msgid "Continue"
+msgstr "Continua"
+
+#: lib/index.tcl:31
+msgid "Unlock Index"
+msgstr "Sblocca l'accesso all'indice"
+
+#: lib/index.tcl:282
#, tcl-format
msgid "Unstaging %s from commit"
msgstr "%s non farà parte della prossima revisione"
-#: lib/index.tcl:285
+#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
msgstr "Aggiunta di %s in corso"
-#: lib/index.tcl:340
+#: lib/index.tcl:381
#, tcl-format
msgid "Revert changes in file %s?"
msgstr "Annullare le modifiche nel file %s?"
-#: lib/index.tcl:342
+#: lib/index.tcl:383
#, tcl-format
msgid "Revert changes in these %i files?"
msgstr "Annullare le modifiche in questi %i file?"
-#: lib/index.tcl:348
+#: lib/index.tcl:389
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:351
+#: lib/index.tcl:392
msgid "Do Nothing"
msgstr "Non fare niente"
"Il file %s ha dei conflitti.\n"
"\n"
"Bisogna risolvere i conflitti, preparare il file per una nuova revisione ed "
-"infine crearla per completare la fusione corrente. Solo a questo punto "
-"potrai iniziare un'altra fusione.\n"
+"infine crearla per completare la fusione attuale. Solo a questo punto potrai "
+"iniziare un'altra fusione.\n"
#: lib/merge.tcl:54
#, tcl-format
"\n"
"Il file %s è stato modificato.\n"
"\n"
-"Bisogna completare la creazione della revisione corrente prima di iniziare una fusione. "
-"In questo modo sarà più facile interrompere una fusione non riuscita, nel "
-"caso ce ne fosse bisogno.\n"
+"Bisogna completare la creazione della revisione attuale prima di iniziare "
+"una fusione. In questo modo sarà più facile interrompere una fusione non "
+"riuscita, nel caso ce ne fosse bisogno.\n"
#: lib/merge.tcl:106
#, tcl-format
#: lib/merge.tcl:133
msgid "Merge failed. Conflict resolution is required."
-msgstr "Fusione fallita. Bisogna risolvere i conflitti."
+msgstr "Fusione non riuscita. Bisogna risolvere i conflitti."
#: lib/merge.tcl:158
#, tcl-format
msgstr ""
"Interrompere fusione?\n"
"\n"
-"L'interruzione della fusione corrente causerà la perdita di *TUTTE* le "
+"L'interruzione della fusione attuale causerà la perdita di *TUTTE* le "
"modifiche non ancora presenti nell'archivio.\n"
"\n"
-"Continuare con l'interruzione della fusione corrente?"
+"Continuare con l'interruzione della fusione attuale?"
#: lib/merge.tcl:228
msgid ""
"L'annullamento delle modifiche causerà la perdita di *TUTTE* le modifiche "
"non ancora presenti nell'archivio.\n"
"\n"
-"Continuare con l'annullamento delle modifiche correnti?"
+"Continuare con l'annullamento delle modifiche attuali?"
#: lib/merge.tcl:239
msgid "Aborting"
#: lib/merge.tcl:266
msgid "Abort failed."
-msgstr "Interruzione fallita."
+msgstr "Interruzione non riuscita."
#: lib/merge.tcl:268
msgid "Abort completed. Ready."
#: lib/option.tcl:82
msgid "Restore Defaults"
-msgstr "Ripristina predefiniti"
+msgstr "Ripristina valori predefiniti"
#: lib/option.tcl:86
msgid "Save"
"One or more of the merge tests failed because you have not fetched the "
"necessary commits. Try fetching from %s first."
msgstr ""
-"Una o più verifiche di fusione sono fallite perché mancano le revisioni "
-"necessarie. Prova prima a recuperarle da %s."
+"Impossibile verificare una o più fusioni: mancano le revisioni necessarie. "
+"Prova prima a recuperarle da %s."
#: lib/remote_branch_delete.tcl:207
msgid "Please select one or more branches to delete."
msgid "Scanning %s..."
msgstr "Analisi in corso %s..."
-#: lib/shortcut.tcl:26 lib/shortcut.tcl:74
-msgid "Cannot write script:"
-msgstr "Impossibile scrivere script:"
+#: lib/shortcut.tcl:20 lib/shortcut.tcl:61
+msgid "Cannot write shortcut:"
+msgstr "Impossibile scrivere shortcut:"
-#: lib/shortcut.tcl:149
+#: lib/shortcut.tcl:136
msgid "Cannot write icon:"
msgstr "Impossibile scrivere icona:"
#: lib/status_bar.tcl:83
#, tcl-format
msgid "%s ... %*i of %*i %s (%3i%%)"
-msgstr "%s ... %*i di %*i %s (%3i%%)"
+msgstr "%1$s ... %6$s: %2$*i di %4$*i (%7$3i%%)"
#: lib/transport.tcl:6
#, tcl-format
#: lib/transport.tcl:168
msgid "Include tags"
msgstr "Includi etichette"
-
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-10 04:04-0400\n"
-"PO-Revision-Date: 2007-10-31 16:23+0900\n"
+"POT-Creation-Date: 2007-11-24 10:36+0100\n"
+"PO-Revision-Date: 2007-12-05 06:12+0900\n"
"Last-Translator: しらいし ななこ <nanako3@bluebottle.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:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
-#: git-gui.sh:763
+#: git-gui.sh:41 git-gui.sh:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
+#: git-gui.sh:733
msgid "git-gui: fatal error"
msgstr "git-gui: 致命的なエラー"
-#: git-gui.sh:595
+#: git-gui.sh:565
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "%s に無効なフォントが指定されています:"
-#: git-gui.sh:620
+#: git-gui.sh:590
msgid "Main Font"
msgstr "主フォント"
-#: git-gui.sh:621
+#: git-gui.sh:591
msgid "Diff/Console Font"
msgstr "diff/コンソール・フォント"
-#: git-gui.sh:635
+#: git-gui.sh:605
msgid "Cannot find git in PATH."
msgstr "PATH 中に git が見つかりません"
-#: git-gui.sh:662
+#: git-gui.sh:632
msgid "Cannot parse Git version string:"
msgstr "Git バージョン名が理解できません:"
-#: git-gui.sh:680
+#: git-gui.sh:650
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
"\n"
"'%s' はバージョン 1.5.0 と思って良いですか?\n"
-#: git-gui.sh:853
+#: git-gui.sh:888
msgid "Git directory not found:"
msgstr "Git ディレクトリが見つかりません:"
-#: git-gui.sh:860
+#: git-gui.sh:895
msgid "Cannot move to top of working directory:"
msgstr "作業ディレクトリの最上位に移動できません"
-#: git-gui.sh:867
+#: git-gui.sh:902
msgid "Cannot use funny .git directory:"
msgstr "変な .git ディレクトリは使えません"
-#: git-gui.sh:872
+#: git-gui.sh:907
msgid "No working directory"
msgstr "作業ディレクトリがありません"
-#: git-gui.sh:1019
+#: git-gui.sh:1054
msgid "Refreshing file status..."
msgstr "ファイル状態を更新しています…"
-#: git-gui.sh:1084
+#: git-gui.sh:1119
msgid "Scanning for modified files ..."
msgstr "変更されたファイルをスキャンしています…"
-#: git-gui.sh:1259 lib/browser.tcl:245
+#: git-gui.sh:1294 lib/browser.tcl:245
msgid "Ready."
msgstr "準備完了"
-#: git-gui.sh:1525
+#: git-gui.sh:1560
msgid "Unmodified"
msgstr "変更無し"
-#: git-gui.sh:1527
+#: git-gui.sh:1562
msgid "Modified, not staged"
msgstr "変更あり、コミット未予定"
-#: git-gui.sh:1528 git-gui.sh:1533
+#: git-gui.sh:1563 git-gui.sh:1568
msgid "Staged for commit"
msgstr "コミット予定済"
-#: git-gui.sh:1529 git-gui.sh:1534
+#: git-gui.sh:1564 git-gui.sh:1569
msgid "Portions staged for commit"
msgstr "部分的にコミット予定済"
-#: git-gui.sh:1530 git-gui.sh:1535
+#: git-gui.sh:1565 git-gui.sh:1570
msgid "Staged for commit, missing"
msgstr "コミット予定済、ファイル無し"
-#: git-gui.sh:1532
+#: git-gui.sh:1567
msgid "Untracked, not staged"
msgstr "管理外、コミット未予定"
-#: git-gui.sh:1537
+#: git-gui.sh:1572
msgid "Missing"
msgstr "ファイル無し"
-#: git-gui.sh:1538
+#: git-gui.sh:1573
msgid "Staged for removal"
msgstr "削除予定済"
-#: git-gui.sh:1539
+#: git-gui.sh:1574
msgid "Staged for removal, still present"
msgstr "削除予定済、ファイル未削除"
-#: git-gui.sh:1541 git-gui.sh:1542 git-gui.sh:1543 git-gui.sh:1544
+#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
msgid "Requires merge resolution"
msgstr "要マージ解決"
-#: git-gui.sh:1579
+#: git-gui.sh:1614
msgid "Starting gitk... please wait..."
msgstr "gitk を起動中…お待ち下さい…"
-#: git-gui.sh:1588
+#: git-gui.sh:1623
#, tcl-format
msgid ""
"Unable to start gitk:\n"
"\n"
"%s がありません"
-#: git-gui.sh:1788 lib/choose_repository.tcl:32
+#: git-gui.sh:1823 lib/choose_repository.tcl:35
msgid "Repository"
msgstr "リポジトリ"
-#: git-gui.sh:1789
+#: git-gui.sh:1824
msgid "Edit"
msgstr "編集"
-#: git-gui.sh:1791 lib/choose_rev.tcl:560
+#: git-gui.sh:1826 lib/choose_rev.tcl:560
msgid "Branch"
msgstr "ブランチ"
-#: git-gui.sh:1794 lib/choose_rev.tcl:547
+#: git-gui.sh:1829 lib/choose_rev.tcl:547
msgid "Commit@@noun"
msgstr "コミット"
-#: git-gui.sh:1797 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
msgid "Merge"
msgstr "マージ"
-#: git-gui.sh:1798 lib/choose_rev.tcl:556
+#: git-gui.sh:1833 lib/choose_rev.tcl:556
msgid "Remote"
msgstr "リモート"
-#: git-gui.sh:1807
+#: git-gui.sh:1842
msgid "Browse Current Branch's Files"
msgstr "現在のブランチのファイルを見る"
-#: git-gui.sh:1811
+#: git-gui.sh:1846
msgid "Browse Branch Files..."
msgstr "ブランチのファイルを見る…"
-#: git-gui.sh:1816
+#: git-gui.sh:1851
msgid "Visualize Current Branch's History"
msgstr "現在のブランチの履歴を見る"
-#: git-gui.sh:1820
+#: git-gui.sh:1855
msgid "Visualize All Branch History"
msgstr "全てのブランチの履歴を見る"
-#: git-gui.sh:1827
+#: git-gui.sh:1862
#, tcl-format
msgid "Browse %s's Files"
msgstr "ブランチ %s のファイルを見る"
-#: git-gui.sh:1829
+#: git-gui.sh:1864
#, tcl-format
msgid "Visualize %s's History"
msgstr "ブランチ %s の履歴を見る"
-#: git-gui.sh:1834 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "データベース統計"
-#: git-gui.sh:1837 lib/database.tcl:34
+#: git-gui.sh:1872 lib/database.tcl:34
msgid "Compress Database"
msgstr "データベース圧縮"
-#: git-gui.sh:1840
+#: git-gui.sh:1875
msgid "Verify Database"
msgstr "データベース検証"
-#: git-gui.sh:1847 git-gui.sh:1851 git-gui.sh:1855 lib/shortcut.tcl:9
-#: lib/shortcut.tcl:45 lib/shortcut.tcl:84
+#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "デスクトップ・アイコンを作る"
-#: git-gui.sh:1860 lib/choose_repository.tcl:36 lib/choose_repository.tcl:95
+#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
msgid "Quit"
msgstr "終了"
-#: git-gui.sh:1867
+#: git-gui.sh:1902
msgid "Undo"
msgstr "元に戻す"
-#: git-gui.sh:1870
+#: git-gui.sh:1905
msgid "Redo"
msgstr "やり直し"
-#: git-gui.sh:1874 git-gui.sh:2366
+#: git-gui.sh:1909 git-gui.sh:2403
msgid "Cut"
msgstr "切り取り"
-#: git-gui.sh:1877 git-gui.sh:2369 git-gui.sh:2440 git-gui.sh:2512
+#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
#: lib/console.tcl:67
msgid "Copy"
msgstr "コピー"
-#: git-gui.sh:1880 git-gui.sh:2372
+#: git-gui.sh:1915 git-gui.sh:2409
msgid "Paste"
msgstr "貼り付け"
-#: git-gui.sh:1883 git-gui.sh:2375 lib/branch_delete.tcl:26
+#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "削除"
-#: git-gui.sh:1887 git-gui.sh:2379 git-gui.sh:2516 lib/console.tcl:69
+#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
msgid "Select All"
msgstr "全て選択"
-#: git-gui.sh:1896
+#: git-gui.sh:1931
msgid "Create..."
msgstr "作成…"
-#: git-gui.sh:1902
+#: git-gui.sh:1937
msgid "Checkout..."
msgstr "チェックアウト"
-#: git-gui.sh:1908
+#: git-gui.sh:1943
msgid "Rename..."
msgstr "名前変更…"
-#: git-gui.sh:1913 git-gui.sh:2012
+#: git-gui.sh:1948 git-gui.sh:2048
msgid "Delete..."
msgstr "削除…"
-#: git-gui.sh:1918
+#: git-gui.sh:1953
msgid "Reset..."
msgstr "リセット…"
-#: git-gui.sh:1930 git-gui.sh:2313
+#: git-gui.sh:1965 git-gui.sh:2350
msgid "New Commit"
msgstr "新規コミット"
-#: git-gui.sh:1938 git-gui.sh:2320
+#: git-gui.sh:1973 git-gui.sh:2357
msgid "Amend Last Commit"
msgstr "最新コミットを訂正"
-#: git-gui.sh:1947 git-gui.sh:2280 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "再スキャン"
-#: git-gui.sh:1953
+#: git-gui.sh:1988
msgid "Stage To Commit"
msgstr "コミット予定する"
-#: git-gui.sh:1958
+#: git-gui.sh:1994
msgid "Stage Changed Files To Commit"
msgstr "変更されたファイルをコミット予定"
-#: git-gui.sh:1964
+#: git-gui.sh:2000
msgid "Unstage From Commit"
msgstr "コミットから降ろす"
-#: git-gui.sh:1969 lib/index.tcl:352
+#: git-gui.sh:2005 lib/index.tcl:393
msgid "Revert Changes"
msgstr "変更を元に戻す"
-#: git-gui.sh:1976 git-gui.sh:2292 git-gui.sh:2390
+#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
msgid "Sign Off"
msgstr "署名"
-#: git-gui.sh:1980 git-gui.sh:2296
+#: git-gui.sh:2016 git-gui.sh:2333
msgid "Commit@@verb"
msgstr "コミット"
-#: git-gui.sh:1991
+#: git-gui.sh:2027
msgid "Local Merge..."
msgstr "ローカル・マージ…"
-#: git-gui.sh:1996
+#: git-gui.sh:2032
msgid "Abort Merge..."
msgstr "マージ中止…"
-#: git-gui.sh:2008
+#: git-gui.sh:2044
msgid "Push..."
msgstr "プッシュ…"
-#: git-gui.sh:2019 lib/choose_repository.tcl:41
+#: git-gui.sh:2055 lib/choose_repository.tcl:40
msgid "Apple"
msgstr "りんご"
-#: git-gui.sh:2022 git-gui.sh:2044 lib/about.tcl:13
-#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
+#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
+#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
#, tcl-format
msgid "About %s"
msgstr "%s について"
-#: git-gui.sh:2026
+#: git-gui.sh:2062
msgid "Preferences..."
msgstr "設定…"
-#: git-gui.sh:2034 git-gui.sh:2558
+#: git-gui.sh:2070 git-gui.sh:2595
msgid "Options..."
msgstr "オプション…"
-#: git-gui.sh:2040 lib/choose_repository.tcl:47
+#: git-gui.sh:2076 lib/choose_repository.tcl:46
msgid "Help"
msgstr "ヘルプ"
-#: git-gui.sh:2081
+#: git-gui.sh:2117
msgid "Online Documentation"
msgstr "オンライン・ドキュメント"
-#: git-gui.sh:2165
+#: git-gui.sh:2201
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
-msgstr "致命的: パス %s が stat できません。そのようなファイルやディレクトリはありません"
+msgstr ""
+"致命的: パス %s が stat できません。そのようなファイルやディレクトリはありま"
+"せん"
-#: git-gui.sh:2198
+#: git-gui.sh:2234
msgid "Current Branch:"
msgstr "現在のブランチ"
-#: git-gui.sh:2219
+#: git-gui.sh:2255
msgid "Staged Changes (Will Commit)"
msgstr "ステージングされた(コミット予定済の)変更"
-#: git-gui.sh:2239
+#: git-gui.sh:2274
msgid "Unstaged Changes"
msgstr "コミット予定に入っていない変更"
-#: git-gui.sh:2286
+#: git-gui.sh:2323
msgid "Stage Changed"
msgstr "変更をコミット予定に入れる"
-#: git-gui.sh:2302 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "プッシュ"
-#: git-gui.sh:2332
+#: git-gui.sh:2369
msgid "Initial Commit Message:"
msgstr "最初のコミットメッセージ:"
-#: git-gui.sh:2333
+#: git-gui.sh:2370
msgid "Amended Commit Message:"
msgstr "訂正したコミットメッセージ:"
-#: git-gui.sh:2334
+#: git-gui.sh:2371
msgid "Amended Initial Commit Message:"
msgstr "訂正した最初のコミットメッセージ:"
-#: git-gui.sh:2335
+#: git-gui.sh:2372
msgid "Amended Merge Commit Message:"
msgstr "訂正したマージコミットメッセージ:"
-#: git-gui.sh:2336
+#: git-gui.sh:2373
msgid "Merge Commit Message:"
msgstr "マージコミットメッセージ:"
-#: git-gui.sh:2337
+#: git-gui.sh:2374
msgid "Commit Message:"
msgstr "コミットメッセージ:"
-#: git-gui.sh:2382 git-gui.sh:2520 lib/console.tcl:71
+#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
msgid "Copy All"
msgstr "全てコピー"
-#: git-gui.sh:2406 lib/blame.tcl:104
+#: git-gui.sh:2443 lib/blame.tcl:104
msgid "File:"
msgstr "ファイル:"
-#: git-gui.sh:2508
+#: git-gui.sh:2545
msgid "Refresh"
msgstr "再読み込み"
-#: git-gui.sh:2529
+#: git-gui.sh:2566
msgid "Apply/Reverse Hunk"
msgstr "パッチを適用/取り消す"
-#: git-gui.sh:2535
+#: git-gui.sh:2572
msgid "Decrease Font Size"
msgstr "フォントを小さく"
-#: git-gui.sh:2539
+#: git-gui.sh:2576
msgid "Increase Font Size"
msgstr "フォントを大きく"
-#: git-gui.sh:2544
+#: git-gui.sh:2581
msgid "Show Less Context"
msgstr "文脈を少なく"
-#: git-gui.sh:2551
+#: git-gui.sh:2588
msgid "Show More Context"
msgstr "文脈を多く"
-#: git-gui.sh:2565
+#: git-gui.sh:2602
msgid "Unstage Hunk From Commit"
msgstr "パッチをコミット予定から外す"
-#: git-gui.sh:2567
+#: git-gui.sh:2604
msgid "Stage Hunk For Commit"
msgstr "パッチをコミット予定に加える"
-#: git-gui.sh:2586
+#: git-gui.sh:2623
msgid "Initializing..."
msgstr "初期化しています…"
-#: git-gui.sh:2677
+#: git-gui.sh:2718
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
"以下の環境変数は %s が起動する Git サブプロセスによって無視されるでしょう:\n"
"\n"
-#: git-gui.sh:2707
+#: git-gui.sh:2748
msgid ""
"\n"
"This is due to a known issue with the\n"
"これは Cygwin で配布されている Tcl バイナリに\n"
"関しての既知の問題によります"
-#: git-gui.sh:2712
+#: git-gui.sh:2753
#, tcl-format
msgid ""
"\n"
msgid "Create New Branch"
msgstr "ブランチを新規作成"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:199
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
msgid "Create"
msgstr "作成"
msgid "Browse Branch Files"
msgstr "現在のブランチのファイルを見る"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:215
-#: lib/choose_repository.tcl:305 lib/choose_repository.tcl:315
-#: lib/choose_repository.tcl:811
+#: lib/browser.tcl:277 lib/choose_repository.tcl:391
+#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
+#: lib/choose_repository.tcl:989
msgid "Browse"
msgstr "ブラウズ"
"これはサンプル文です。\n"
"このフォントが気に入ればお使いになれます。"
-#: lib/choose_repository.tcl:25
+#: lib/choose_repository.tcl:27
msgid "Git Gui"
msgstr "Git GUI"
-#: lib/choose_repository.tcl:69 lib/choose_repository.tcl:204
+#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
msgid "Create New Repository"
msgstr "新しいリポジトリを作る"
-#: lib/choose_repository.tcl:74 lib/choose_repository.tcl:291
+#: lib/choose_repository.tcl:86
+msgid "New..."
+msgstr "新規…"
+
+#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
msgid "Clone Existing Repository"
msgstr "既存リポジトリを複製する"
-#: lib/choose_repository.tcl:79 lib/choose_repository.tcl:800
+#: lib/choose_repository.tcl:99
+msgid "Clone..."
+msgstr "複製…"
+
+#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
msgid "Open Existing Repository"
msgstr "既存リポジトリを開く"
-#: lib/choose_repository.tcl:91
-msgid "Next >"
-msgstr "次 >"
+#: lib/choose_repository.tcl:112
+msgid "Open..."
+msgstr "開く…"
+
+#: lib/choose_repository.tcl:125
+msgid "Recent Repositories"
+msgstr "最近使ったリポジトリ"
+
+#: lib/choose_repository.tcl:131
+msgid "Open Recent Repository:"
+msgstr "最近使ったリポジトリを開く"
-#: lib/choose_repository.tcl:152
+#: lib/choose_repository.tcl:294
#, tcl-format
msgid "Location %s already exists."
msgstr "'%s' は既に存在します。"
-#: lib/choose_repository.tcl:158 lib/choose_repository.tcl:165
-#: lib/choose_repository.tcl:172
+#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
+#: lib/choose_repository.tcl:314
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "リポジトリ %s を作製できません:"
-#: lib/choose_repository.tcl:209 lib/choose_repository.tcl:309
+#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
msgid "Directory:"
msgstr "ディレクトリ:"
-#: lib/choose_repository.tcl:238 lib/choose_repository.tcl:363
-#: lib/choose_repository.tcl:834
+#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
+#: lib/choose_repository.tcl:1013
msgid "Git Repository"
msgstr "GIT リポジトリ"
-#: lib/choose_repository.tcl:253 lib/choose_repository.tcl:260
+#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "ディレクトリ '%s' は既に存在します。"
-#: lib/choose_repository.tcl:265
+#: lib/choose_repository.tcl:442
#, tcl-format
msgid "File %s already exists."
msgstr "ファイル '%s' は既に存在します。"
-#: lib/choose_repository.tcl:286
+#: lib/choose_repository.tcl:463
msgid "Clone"
msgstr "複製"
-#: lib/choose_repository.tcl:299
+#: lib/choose_repository.tcl:476
msgid "URL:"
msgstr "URL:"
-#: lib/choose_repository.tcl:319
+#: lib/choose_repository.tcl:496
msgid "Clone Type:"
msgstr "複製方式:"
-#: lib/choose_repository.tcl:325
+#: lib/choose_repository.tcl:502
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "標準(高速・中冗長度・ハードリンク)"
-#: lib/choose_repository.tcl:331
+#: lib/choose_repository.tcl:508
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "全複写(低速・冗長バックアップ)"
-#: lib/choose_repository.tcl:337
+#: lib/choose_repository.tcl:514
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "共有(最高速・非推奨・バックアップ無し)"
-#: lib/choose_repository.tcl:369 lib/choose_repository.tcl:418
-#: lib/choose_repository.tcl:560 lib/choose_repository.tcl:630
-#: lib/choose_repository.tcl:840 lib/choose_repository.tcl:848
+#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597
+#: lib/choose_repository.tcl:738 lib/choose_repository.tcl:808
+#: lib/choose_repository.tcl:1019 lib/choose_repository.tcl:1027
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "Git リポジトリではありません: %s"
-#: lib/choose_repository.tcl:405
+#: lib/choose_repository.tcl:586
msgid "Standard only available for local repository."
msgstr "標準方式は同一計算機上のリポジトリにのみ使えます。"
-#: lib/choose_repository.tcl:409
+#: lib/choose_repository.tcl:590
msgid "Shared only available for local repository."
msgstr "共有方式は同一計算機上のリポジトリにのみ使えます。"
-#: lib/choose_repository.tcl:439
+#: lib/choose_repository.tcl:617
msgid "Failed to configure origin"
msgstr "origin を設定できませんでした"
-#: lib/choose_repository.tcl:451
+#: lib/choose_repository.tcl:629
msgid "Counting objects"
msgstr "オブジェクトを数えています"
-#: lib/choose_repository.tcl:452
+#: lib/choose_repository.tcl:630
msgid "buckets"
msgstr "バケツ"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:654
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "objects/info/alternates を複写できません: %s"
-#: lib/choose_repository.tcl:512
+#: lib/choose_repository.tcl:690
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "%s から複製する内容はありません"
-#: lib/choose_repository.tcl:514 lib/choose_repository.tcl:728
-#: lib/choose_repository.tcl:740
+#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
+#: lib/choose_repository.tcl:918
msgid "The 'master' branch has not been initialized."
msgstr "'master' ブランチが初期化されていません"
-#: lib/choose_repository.tcl:527
+#: lib/choose_repository.tcl:705
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "ハードリンクが作れないので、コピーします"
-#: lib/choose_repository.tcl:539
+#: lib/choose_repository.tcl:717
#, tcl-format
msgid "Cloning from %s"
msgstr "%s から複製しています"
-#: lib/choose_repository.tcl:570
+#: lib/choose_repository.tcl:748
msgid "Copying objects"
msgstr "オブジェクトを複写しています"
-#: lib/choose_repository.tcl:571
+#: lib/choose_repository.tcl:749
msgid "KiB"
msgstr "KiB"
-#: lib/choose_repository.tcl:595
+#: lib/choose_repository.tcl:773
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "オブジェクトを複写できません: %s"
-#: lib/choose_repository.tcl:605
+#: lib/choose_repository.tcl:783
msgid "Linking objects"
msgstr "オブジェクトを連結しています"
-#: lib/choose_repository.tcl:606
+#: lib/choose_repository.tcl:784
msgid "objects"
msgstr "オブジェクト"
-#: lib/choose_repository.tcl:614
+#: lib/choose_repository.tcl:792
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "オブジェクトをハードリンクできません: %s"
-#: lib/choose_repository.tcl:669
+#: lib/choose_repository.tcl:847
msgid "Cannot fetch branches and objects. See console output for details."
msgstr "ブランチやオブジェクトを取得できません。コンソール出力を見て下さい"
-#: lib/choose_repository.tcl:680
+#: lib/choose_repository.tcl:858
msgid "Cannot fetch tags. See console output for details."
msgstr "タグを取得できません。コンソール出力を見て下さい"
-#: lib/choose_repository.tcl:704
+#: lib/choose_repository.tcl:882
msgid "Cannot determine HEAD. See console output for details."
msgstr "HEAD を確定できません。コンソール出力を見て下さい"
-#: lib/choose_repository.tcl:713
+#: lib/choose_repository.tcl:891
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "%s を掃除できません"
-#: lib/choose_repository.tcl:719
+#: lib/choose_repository.tcl:897
msgid "Clone failed."
msgstr "複写に失敗しました。"
-#: lib/choose_repository.tcl:726
+#: lib/choose_repository.tcl:904
msgid "No default branch obtained."
msgstr "デフォールト・ブランチが取得されませんでした"
-#: lib/choose_repository.tcl:737
+#: lib/choose_repository.tcl:915
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "%s をコミットとして解釈できません"
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:927
msgid "Creating working directory"
msgstr "作業ディレクトリを作成しています"
-#: lib/choose_repository.tcl:750 lib/index.tcl:15 lib/index.tcl:80
-#: lib/index.tcl:149
+#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/index.tcl:193
msgid "files"
msgstr "ファイル"
-#: lib/choose_repository.tcl:779
+#: lib/choose_repository.tcl:957
msgid "Initial file checkout failed."
msgstr "初期チェックアウトに失敗しました"
-#: lib/choose_repository.tcl:795
+#: lib/choose_repository.tcl:973
msgid "Open"
msgstr "開く"
-#: lib/choose_repository.tcl:805
+#: lib/choose_repository.tcl:983
msgid "Repository:"
msgstr "リポジトリ:"
-#: lib/choose_repository.tcl:854
+#: lib/choose_repository.tcl:1033
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "リポジトリ %s を開けません:"
"\n"
"A good commit message has the following format:\n"
"\n"
-"- First line: Describe in one sentance what you did.\n"
+"- First line: Describe in one sentence what you did.\n"
"- Second line: Blank\n"
"- Remaining lines: Describe why this change is good.\n"
msgstr ""
msgstr ""
"このリポジトリにはおおよそ %i 個の個別オブジェクトがあります\n"
"\n"
-"最適な性能を保つために、%i 個以上の個別オブジェクトを作る毎にデータベースを圧縮することを推奨します\n"
+"最適な性能を保つために、%i 個以上の個別オブジェクトを作る毎にデータベースを圧"
+"縮することを推奨します\n"
"\n"
"データベースを圧縮しますか?"
msgid "You must correct the above errors before committing."
msgstr "コミットする前に、以上のエラーを修正して下さい"
-#: lib/index.tcl:241
+#: lib/index.tcl:6
+msgid "Unable to unlock the index."
+msgstr "インデックスをロックできません"
+
+#: lib/index.tcl:15
+msgid "Index Error"
+msgstr "索引エラー"
+
+#: lib/index.tcl:21
+msgid ""
+"Updating the Git index failed. A rescan will be automatically started to "
+"resynchronize git-gui."
+msgstr "GIT インデックスの更新が失敗しました。git-gui と同期をとるために再スキャンします。"
+
+#: lib/index.tcl:27
+msgid "Continue"
+msgstr "続行"
+
+#: lib/index.tcl:31
+msgid "Unlock Index"
+msgstr "インデックスのロック解除"
+
+#: lib/index.tcl:282
#, tcl-format
msgid "Unstaging %s from commit"
msgstr "コミットから '%s' を降ろす"
-#: lib/index.tcl:285
+#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
msgstr "コミットに %s を加えています"
-#: lib/index.tcl:340
+#: lib/index.tcl:381
#, tcl-format
msgid "Revert changes in file %s?"
msgstr "ファイル %s にした変更を元に戻しますか?"
-#: lib/index.tcl:342
+#: lib/index.tcl:383
#, tcl-format
msgid "Revert changes in these %i files?"
msgstr "これら %i 個のファイルにした変更を元に戻しますか?"
-#: lib/index.tcl:348
+#: lib/index.tcl:389
msgid "Any unstaged changes will be permanently lost by the revert."
msgstr "変更を元に戻すとコミット予定していない変更は全て失われます。"
-#: lib/index.tcl:351
+#: lib/index.tcl:392
msgid "Do Nothing"
msgstr "何もしない"
msgid "Failed to completely save options:"
msgstr "完全にオプションを保存できません:"
-#: lib/remote.tcl:165
-msgid "Prune from"
-msgstr "から刈込む…"
-
-#: lib/remote.tcl:170
-msgid "Fetch from"
-msgstr "取得元"
-
-#: lib/remote.tcl:213
-msgid "Push to"
-msgstr "プッシュ先"
-
#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
msgid "Delete Remote Branch"
msgstr "リモート・ブランチを削除"
msgid "Scanning %s..."
msgstr "%s をスキャンしています…"
-#: lib/shortcut.tcl:26 lib/shortcut.tcl:74
-msgid "Cannot write script:"
-msgstr "スクリプトが書けません:"
+#: lib/remote.tcl:165
+msgid "Prune from"
+msgstr "から刈込む…"
+
+#: lib/remote.tcl:170
+msgid "Fetch from"
+msgstr "取得元"
-#: lib/shortcut.tcl:149
+#: lib/remote.tcl:213
+msgid "Push to"
+msgstr "プッシュ先"
+
+#: lib/shortcut.tcl:20 lib/shortcut.tcl:61
+msgid "Cannot write shortcut:"
+msgstr "ショートカットが書けません:"
+
+#: lib/shortcut.tcl:136
msgid "Cannot write icon:"
msgstr "アイコンが書けません:"
#: lib/transport.tcl:168
msgid "Include tags"
msgstr "タグを含める"
-
}
}
+static void setup_man_path(void)
+{
+ struct strbuf new_path;
+ const char *old_path = getenv("MANPATH");
+
+ strbuf_init(&new_path, 0);
+
+ /* We should always put ':' after our path. If there is no
+ * old_path, the ':' at the end will let 'man' to try
+ * system-wide paths after ours to find the manual page. If
+ * there is old_path, we need ':' as delimiter. */
+ strbuf_addstr(&new_path, GIT_MAN_PATH);
+ strbuf_addch(&new_path, ':');
+ if (old_path)
+ strbuf_addstr(&new_path, old_path);
+
+ setenv("MANPATH", new_path.buf, 1);
+
+ strbuf_release(&new_path);
+}
+
static void show_man_page(const char *git_cmd)
{
const char *page;
page = p;
}
+ setup_man_path();
execlp("man", "man", page, NULL);
}
"\n"
"Run\n"
"\n"
-" git config --global user.email \"you@email.com\"\n"
+" git config --global user.email \"you@example.com\"\n"
" git config --global user.name \"Your Name\"\n"
"\n"
"to set your account\'s default identity.\n"
"Omit --global to set the identity only in this repository.\n"
"\n";
-static const char *fmt_ident_1(const char *name, const char *email,
- const char *date_str, int flag)
+const char *fmt_ident(const char *name, const char *email,
+ const char *date_str, int flag)
{
static char buffer[1000];
char date[50];
int i;
- int error_on_no_name = !!(flag & 01);
- int name_addr_only = !!(flag & 02);
+ int error_on_no_name = (flag & IDENT_ERROR_ON_NO_NAME);
+ int warn_on_no_name = (flag & IDENT_WARN_ON_NO_NAME);
+ int name_addr_only = (flag & IDENT_NO_DATE);
setup_ident();
if (!name)
if (!*name) {
struct passwd *pw;
- if (0 <= error_on_no_name &&
+ if ((warn_on_no_name || error_on_no_name) &&
name == git_default_name && env_hint) {
fprintf(stderr, env_hint, au_env, co_env);
env_hint = NULL; /* warn only once, for "git-var -l" */
}
- if (0 < error_on_no_name)
+ if (error_on_no_name)
die("empty ident %s <%s> not allowed", name, email);
pw = getpwuid(getuid());
if (!pw)
return buffer;
}
-const char *fmt_ident(const char *name, const char *email,
- const char *date_str, int error_on_no_name)
-{
- int flag = (error_on_no_name ? 01 : 0);
- return fmt_ident_1(name, email, date_str, flag);
-}
-
const char *fmt_name(const char *name, const char *email)
{
- return fmt_ident_1(name, email, NULL, 03);
+ return fmt_ident(name, email, NULL, IDENT_ERROR_ON_NO_NAME | IDENT_NO_DATE);
}
-const char *git_author_info(int error_on_no_name)
+const char *git_author_info(int flag)
{
return fmt_ident(getenv("GIT_AUTHOR_NAME"),
getenv("GIT_AUTHOR_EMAIL"),
getenv("GIT_AUTHOR_DATE"),
- error_on_no_name);
+ flag);
}
-const char *git_committer_info(int error_on_no_name)
+const char *git_committer_info(int flag)
{
return fmt_ident(getenv("GIT_COMMITTER_NAME"),
getenv("GIT_COMMITTER_EMAIL"),
getenv("GIT_COMMITTER_DATE"),
- error_on_no_name);
+ flag);
}
continue;
if (right_bracket == left_bracket + 1)
continue;
- for (end_of_name = left_bracket; end_of_name != buffer
- && isspace(end_of_name[-1]); end_of_name--)
- /* keep on looking */
+ for (end_of_name = left_bracket;
+ end_of_name != buffer && isspace(end_of_name[-1]);
+ end_of_name--)
+ ; /* keep on looking */
if (end_of_name == buffer)
continue;
name = xmalloc(end_of_name - buffer + 1);
};
}
+=item get_colorbool ( NAME )
+
+Finds if color should be used for NAMEd operation from the configuration,
+and returns boolean (true for "use color", false for "do not use color").
+
+=cut
+
+sub get_colorbool {
+ my ($self, $var) = @_;
+ my $stdout_to_tty = (-t STDOUT) ? "true" : "false";
+ my $use_color = $self->command_oneline('config', '--get-colorbool',
+ $var, $stdout_to_tty);
+ return ($use_color eq 'true');
+}
+
+=item get_color ( SLOT, COLOR )
+
+Finds color for SLOT from the configuration, while defaulting to COLOR,
+and returns the ANSI color escape sequence:
+
+ print $repo->get_color("color.interactive.prompt", "underline blue white");
+ print "some text";
+ print $repo->get_color("", "normal");
+
+=cut
+
+sub get_color {
+ my ($self, $slot, $default) = @_;
+ my $color = $self->command_oneline('config', '--get-color', $slot, $default);
+ if (!defined $color) {
+ $color = "";
+ }
+ return $color;
+}
+
=item ident ( TYPE | IDENTSTR )
=item ident_person ( TYPE | IDENTSTR | IDENTARRAY )
adjust_shared_perm(log_file);
msglen = msg ? strlen(msg) : 0;
- committer = git_committer_info(-1);
+ committer = git_committer_info(0);
maxlen = strlen(committer) + msglen + 100;
logrec = xmalloc(maxlen);
len = sprintf(logrec, "%s %s %s\n",
git diff expected actual
'
+cat >expected <<\EOF
+'refs/heads/master'
+'refs/tags/testtag'
+EOF
+
+test_expect_success 'Quoting style: shell' '
+ git for-each-ref --shell --format="%(refname)" >actual &&
+ git diff expected actual
+'
+
+test_expect_success 'Quoting style: perl' '
+ git for-each-ref --perl --format="%(refname)" >actual &&
+ git diff expected actual
+'
+
+test_expect_success 'Quoting style: python' '
+ git for-each-ref --python --format="%(refname)" >actual &&
+ git diff expected actual
+'
+
+cat >expected <<\EOF
+"refs/heads/master"
+"refs/tags/testtag"
+EOF
+
+test_expect_success 'Quoting style: tcl' '
+ git for-each-ref --tcl --format="%(refname)" >actual &&
+ git diff expected actual
+'
+
+for i in "--perl --shell" "-s --python" "--python --tcl" "--tcl --perl"; do
+ test_expect_success "more than one quoting style: $i" "
+ git for-each-ref $i 2>&1 | (read line &&
+ case \$line in
+ \"error: more than one quoting style\"*) : happy;;
+ *) false
+ esac)
+ "
+done
test_done
'
+test_expect_success 'git-clean with wildcard' '
+
+ touch a.clean b.clean other.c &&
+ git-clean "*.clean" &&
+ test -f Makefile &&
+ test -f README &&
+ test -f src/part1.c &&
+ test -f src/part2.c &&
+ test ! -f a.clean &&
+ test ! -f b.clean &&
+ test -f other.c
+
+'
+
test_expect_success 'git-clean -n' '
mkdir -p build docs &&
#
# FIXME: Test the various index usages, -i and -o, test reflog,
-# signoff, hooks
+# signoff
test_description='git-commit'
. ./test-lib.sh
'
+cat > expect << \EOF
+# On branch master
+# Changes to be committed:
+# (use "git reset HEAD <file>..." to unstage)
+#
+# new file: dir2/added
+#
+# Changed but not updated:
+# (use "git add <file>..." to update what will be committed)
+#
+# modified: dir1/modified
+#
+# Untracked files:
+# (use "git add <file>..." to include in what will be committed)
+#
+# dir1/untracked
+# dir2/modified
+# dir2/untracked
+# expect
+# output
+# untracked
+EOF
+
+test_expect_success 'status without relative paths' '
+
+ git config status.relativePaths false
+ (cd dir1 && git status) > output &&
+ git diff expect output
+
+'
+
test_done
--- /dev/null
+#!/bin/sh
+
+test_description='pre-commit hook'
+
+. ./test-lib.sh
+
+test_expect_success "with no hook" \
+ "echo 'foo' > file &&
+ git add file &&
+ git commit -m 'first'"
+
+test_expect_success "--no-verify with no hook" \
+ "echo 'bar' > file &&
+ git add file &&
+ git commit --no-verify -m 'bar'"
+
+# now install hook that always succeeds
+HOOKDIR="$(git rev-parse --git-dir)/hooks"
+HOOK="$HOOKDIR/pre-commit"
+mkdir -p "$HOOKDIR"
+cat > "$HOOK" <<EOF
+#!/bin/sh
+exit 0
+EOF
+chmod +x "$HOOK"
+
+test_expect_success "with succeeding hook" \
+ "echo 'more' >> file &&
+ git add file &&
+ git commit -m 'more'"
+
+test_expect_success "--no-verify with succeeding hook" \
+ "echo 'even more' >> file &&
+ git add file &&
+ git commit --no-verify -m 'even more'"
+
+# now a hook that fails
+cat > "$HOOK" <<EOF
+#!/bin/sh
+exit 1
+EOF
+
+test_expect_failure "with failing hook" \
+ "echo 'another' >> file &&
+ git add file &&
+ git commit -m 'another'"
+
+test_expect_success "--no-verify with failing hook" \
+ "echo 'stuff' >> file &&
+ git add file &&
+ git commit --no-verify -m 'stuff'"
+
+chmod -x "$HOOK"
+test_expect_success "with non-executable hook" \
+ "echo 'content' >> file &&
+ git add file &&
+ git commit -m 'content'"
+
+test_expect_success "--no-verify with non-executable hook" \
+ "echo 'more content' >> file &&
+ git add file &&
+ git commit --no-verify -m 'more content'"
+
+test_done
--- /dev/null
+#!/bin/sh
+
+test_description='commit-msg hook'
+
+. ./test-lib.sh
+
+test_expect_success "with no hook" \
+ "echo 'foo' > file &&
+ git add file &&
+ git commit -m 'first'"
+
+test_expect_success "--no-verify with no hook" \
+ "echo 'bar' > file &&
+ git add file &&
+ git commit --no-verify -m 'bar'"
+
+# now install hook that always succeeds
+HOOKDIR="$(git rev-parse --git-dir)/hooks"
+HOOK="$HOOKDIR/commit-msg"
+mkdir -p "$HOOKDIR"
+cat > "$HOOK" <<EOF
+#!/bin/sh
+exit 0
+EOF
+chmod +x "$HOOK"
+
+test_expect_success "with succeeding hook" \
+ "echo 'more' >> file &&
+ git add file &&
+ git commit -m 'more'"
+
+test_expect_success "--no-verify with succeeding hook" \
+ "echo 'even more' >> file &&
+ git add file &&
+ git commit --no-verify -m 'even more'"
+
+# now a hook that fails
+cat > "$HOOK" <<EOF
+#!/bin/sh
+exit 1
+EOF
+
+test_expect_failure "with failing hook" \
+ "echo 'another' >> file &&
+ git add file &&
+ git commit -m 'another'"
+
+test_expect_success "--no-verify with failing hook" \
+ "echo 'stuff' >> file &&
+ git add file &&
+ git commit --no-verify -m 'stuff'"
+
+chmod -x "$HOOK"
+test_expect_success "with non-executable hook" \
+ "echo 'content' >> file &&
+ git add file &&
+ git commit -m 'content'"
+
+test_expect_success "--no-verify with non-executable hook" \
+ "echo 'more content' >> file &&
+ git add file &&
+ git commit --no-verify -m 'more content'"
+
+# now a hook that edits the commit message
+cat > "$HOOK" <<'EOF'
+#!/bin/sh
+echo "new message" > "$1"
+exit 0
+EOF
+chmod +x "$HOOK"
+
+commit_msg_is () {
+ test "`git log --pretty=format:%s%b -1`" = "$1"
+}
+
+test_expect_success "hook edits commit message" \
+ "echo 'additional' >> file &&
+ git add file &&
+ git commit -m 'additional' &&
+ commit_msg_is 'new message'"
+
+test_expect_success "hook doesn't edit commit message" \
+ "echo 'plus' >> file &&
+ git add file &&
+ git commit --no-verify -m 'plus' &&
+ commit_msg_is 'plus'"
+
+test_done
free(heads);
free_refs(refs);
free(dest);
- return 0;
+ return (refs ? 0 : -1);
}
static int git_transport_push(struct transport *transport, int refspec_nr, const char **refspec, int flags)
{
struct git_var *ptr;
for(ptr = git_vars; ptr->read; ptr++) {
- printf("%s=%s\n", ptr->name, ptr->read(0));
+ printf("%s=%s\n", ptr->name, ptr->read(IDENT_WARN_ON_NO_NAME));
}
}
val = NULL;
for(ptr = git_vars; ptr->read; ptr++) {
if (strcmp(var, ptr->name) == 0) {
- val = ptr->read(1);
+ val = ptr->read(IDENT_ERROR_ON_NO_NAME);
break;
}
}
#include "revision.h"
#include "diffcore.h"
+int wt_status_relative_paths = 1;
int wt_status_use_color = 0;
static char wt_status_colors[][COLOR_MAXLEN] = {
"", /* WT_STATUS_HEADER: normal */
}
}
+ if (!out->len)
+ strbuf_addstr(out, "./");
+
return out->buf;
}
int git_status_config(const char *k, const char *v)
{
if (!strcmp(k, "status.color") || !strcmp(k, "color.status")) {
- wt_status_use_color = git_config_colorbool(k, v);
+ wt_status_use_color = git_config_colorbool(k, v, -1);
return 0;
}
if (!prefixcmp(k, "status.color.") || !prefixcmp(k, "color.status.")) {
int slot = parse_status_slot(k, 13);
color_parse(v, k, wt_status_colors[slot]);
+ return 0;
+ }
+ if (!strcmp(k, "status.relativepaths")) {
+ wt_status_relative_paths = git_config_bool(k, v);
+ return 0;
}
return git_default_config(k, v);
}
int git_status_config(const char *var, const char *value);
int wt_status_use_color;
+int wt_status_relative_paths;
void wt_status_prepare(struct wt_status *s);
void wt_status_print(struct wt_status *s);