Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/RelNotes-1.5.4.5.txt53
-rw-r--r--Documentation/RelNotes-1.5.5.txt51
-rw-r--r--Documentation/config.txt15
-rw-r--r--Documentation/git-add.txt18
-rw-r--r--Documentation/git-fast-import.txt11
-rw-r--r--Documentation/git-filter-branch.txt23
-rw-r--r--Documentation/git-gc.txt28
-rw-r--r--Documentation/git-help.txt59
-rw-r--r--Documentation/git-send-email.txt3
-rw-r--r--Documentation/git-submodule.txt19
-rw-r--r--Documentation/git-web--browse.txt21
-rw-r--r--Documentation/manpage-1.72.xsl6
-rw-r--r--Documentation/merge-strategies.txt7
-rw-r--r--Makefile433
-rw-r--r--builtin-fetch-pack.c16
-rw-r--r--builtin-fetch.c5
-rw-r--r--builtin-gc.c23
-rw-r--r--builtin-grep.c12
-rw-r--r--builtin-log.c6
-rw-r--r--builtin-merge-file.c3
-rw-r--r--builtin-merge-recursive.c15
-rw-r--r--builtin-pack-objects.c26
-rw-r--r--builtin-read-tree.c9
-rw-r--r--builtin-remote.c5
-rw-r--r--builtin-rev-list.c1
-rw-r--r--builtin-send-pack.c2
-rw-r--r--builtin-shortlog.c4
-rw-r--r--commit.h4
-rw-r--r--config.mak.in1
-rw-r--r--configure.ac20
-rwxr-xr-xcontrib/examples/git-rerere.perl284
-rwxr-xr-xcontrib/workdir/git-new-workdir2
-rw-r--r--diff.c306
-rw-r--r--diff.h3
-rw-r--r--entry.c4
-rw-r--r--fast-import.c2
-rwxr-xr-xgit-am.sh2
-rwxr-xr-xgit-bisect.sh4
-rw-r--r--git-compat-util.h1
-rwxr-xr-xgit-cvsimport.perl2
-rwxr-xr-xgit-filter-branch.sh8
-rwxr-xr-xgit-gui/git-gui.sh2
-rw-r--r--git-gui/lib/choose_repository.tcl2
-rw-r--r--git-gui/po/README62
-rw-r--r--git-gui/po/de.po531
-rw-r--r--git-gui/po/fr.po717
-rw-r--r--git-gui/po/git-gui.pot517
-rw-r--r--git-gui/po/hu.po624
-rw-r--r--git-gui/po/it.po635
-rw-r--r--git-gui/po/ja.po610
-rw-r--r--git-gui/po/ru.po610
-rw-r--r--git-gui/po/sv.po665
-rw-r--r--git-gui/po/zh_cn.po611
-rwxr-xr-xgit-merge-one-file.sh5
-rwxr-xr-xgit-quiltimport.sh22
-rwxr-xr-xgit-rebase--interactive.sh8
-rwxr-xr-xgit-rebase.sh2
-rwxr-xr-xgit-submodule.sh186
-rwxr-xr-xgit-svn.perl5
-rwxr-xr-xgit-web--browse.sh15
-rw-r--r--git.c2
-rw-r--r--gitk-git/Makefile4
-rw-r--r--gitk-git/gitk112
-rw-r--r--gitk-git/po/it.po890
-rw-r--r--help.c116
-rw-r--r--log-tree.c15
-rw-r--r--log-tree.h4
-rw-r--r--pretty.c24
-rw-r--r--remote.c172
-rw-r--r--remote.h3
-rw-r--r--revision.c48
-rw-r--r--sha1_name.c28
-rw-r--r--t/diff-lib.sh4
-rw-r--r--t/lib-git-svn.sh25
-rwxr-xr-xt/t0003-attributes.sh2
-rwxr-xr-xt/t0020-crlf.sh2
-rwxr-xr-xt/t0022-crlf-rename.sh2
-rwxr-xr-xt/t0030-stripspace.sh34
-rwxr-xr-xt/t0050-filesystem.sh4
-rwxr-xr-xt/t1000-read-tree-m-3way.sh36
-rwxr-xr-xt/t1004-read-tree-m-u-wf.sh122
-rwxr-xr-xt/t1005-read-tree-reset.sh2
-rwxr-xr-xt/t1300-repo-config.sh4
-rwxr-xr-xt/t1410-reflog.sh18
-rwxr-xr-xt/t2200-add-update.sh2
-rwxr-xr-xt/t3001-ls-files-others-exclude.sh2
-rwxr-xr-xt/t3050-subprojects-fetch.sh4
-rwxr-xr-xt/t3060-ls-files-with-tree.sh2
-rwxr-xr-xt/t3200-branch.sh20
-rwxr-xr-xt/t3201-branch-contains.sh6
-rwxr-xr-xt/t3300-funny-names.sh6
-rwxr-xr-xt/t3404-rebase-interactive.sh11
-rwxr-xr-xt/t3405-rebase-malformed.sh4
-rwxr-xr-xt/t3406-rebase-message.sh2
-rwxr-xr-xt/t3701-add-interactive.sh4
-rwxr-xr-xt/t3800-mktag.sh2
-rwxr-xr-xt/t3902-quoted.sh16
-rwxr-xr-xt/t3903-stash.sh2
-rwxr-xr-xt/t4020-diff-external.sh5
-rw-r--r--t/t4020/diff.NULbin0 -> 116 bytes
-rwxr-xr-xt/t4021-format-patch-signer-mime.sh10
-rwxr-xr-xt/t4022-diff-rewrite.sh5
-rwxr-xr-xt/t4023-diff-rename-typechange.sh6
-rwxr-xr-xt/t4024-diff-optimize-common.sh2
-rwxr-xr-xt/t4025-hunk-header.sh2
-rwxr-xr-xt/t4027-diff-submodule.sh6
-rwxr-xr-xt/t4028-format-patch-mime-headers.sh30
-rwxr-xr-xt/t4103-apply-binary.sh4
-rwxr-xr-xt/t4105-apply-fuzz.sh2
-rwxr-xr-xt/t4116-apply-reverse.sh4
-rwxr-xr-xt/t4125-apply-ws-fuzz.sh8
-rwxr-xr-xt/t4150-am-subdir.sh10
-rwxr-xr-xt/t4200-rerere.sh2
-rwxr-xr-xt/t4201-shortlog.sh7
-rwxr-xr-xt/t5300-pack-object.sh2
-rwxr-xr-xt/t5302-pack-index.sh4
-rw-r--r--t/t5304-prune.sh49
-rwxr-xr-xt/t5400-send-pack.sh2
-rwxr-xr-xt/t5505-remote.sh16
-rwxr-xr-xt/t5510-fetch.sh2
-rwxr-xr-xt/t5511-refspec.sh72
-rwxr-xr-xt/t5512-ls-remote.sh8
-rwxr-xr-xt/t6000lib.sh8
-rwxr-xr-xt/t6004-rev-list-path-optim.sh2
-rwxr-xr-xt/t6009-rev-list-parent.sh4
-rwxr-xr-xt/t6027-merge-binary.sh4
-rwxr-xr-xt/t6029-merge-subtree.sh2
-rwxr-xr-xt/t6030-bisect-porcelain.sh6
-rwxr-xr-xt/t6031-merge-recursive.sh49
-rwxr-xr-xt/t7003-filter-branch.sh14
-rwxr-xr-xt/t7010-setup.sh18
-rwxr-xr-xt/t7201-co.sh18
-rwxr-xr-xt/t7401-submodule-summary.sh195
-rwxr-xr-xt/t7501-commit.sh14
-rwxr-xr-xt/t7502-commit.sh14
-rwxr-xr-xt/t7502-status.sh4
-rwxr-xr-xt/t7505-prepare-commit-msg-hook.sh5
-rwxr-xr-xt/t7600-merge.sh8
-rwxr-xr-xt/t8003-blame.sh4
-rwxr-xr-xt/t9001-send-email.sh2
-rwxr-xr-xt/t9112-git-svn-md5less-file.sh2
-rwxr-xr-xt/t9116-git-svn-log.sh24
-rwxr-xr-xt/t9120-git-svn-clone-with-percent-escapes.sh31
-rwxr-xr-xt/t9200-git-cvsexportcommit.sh14
-rwxr-xr-xt/t9400-git-cvsserver-server.sh28
-rw-r--r--t/test-lib.sh25
-rwxr-xr-xtest-sha1.sh4
-rw-r--r--unpack-trees.c26
-rw-r--r--unpack-trees.h2
-rw-r--r--wt-status.c17
-rw-r--r--xdiff-interface.c4
151 files changed, 6692 insertions, 3216 deletions
diff --git a/Documentation/RelNotes-1.5.4.5.txt b/Documentation/RelNotes-1.5.4.5.txt
new file mode 100644
index 0000000000..fe768d497f
--- /dev/null
+++ b/Documentation/RelNotes-1.5.4.5.txt
@@ -0,0 +1,53 @@
+GIT v1.5.4.5 Release Notes
+==========================
+
+Fixes since v1.5.4.4
+--------------------
+
+ * You couldn't specify a custom editor whose path contains a whitespace
+ via GIT_EDITOR (and core.editor).
+
+ * The subdirectory filter to "git filter-branch" mishandled a history
+ where the subdirectory becomes empty and then later becomes non-empty.
+
+ * "git shortlog" gave an empty line if the original commit message was
+ malformed (e.g. a botched import from foreign SCM). Now it finds the
+ first non-empty line and uses it for better information.
+
+ * When the user fails to give a revision parameter to "git svn", an error
+ from the Perl interpreter was issued because the script lacked proper
+ error checking.
+
+ * After "git rebase" stopped due to conflicts, if the user played with
+ "git reset" and friends, "git rebase --abort" failed to go back to the
+ correct commit.
+
+ * Additional work trees prepared with git-new-workdir (in contrib/) did
+ not share git-svn metadata directory .git/svn with the original.
+
+ * "git-merge-recursive" did not mark addition of the same path with
+ different filemodes correctly as a conflict.
+
+ * "gitweb" gave malformed URL when pathinfo stype paths are in use.
+
+ * "-n" stands for "--no-tags" again for "git fetch".
+
+ * "git format-patch" did not detect the need to add 8-bit MIME header
+ when the user used format.header configuration.
+
+ * "rev~" revision specifier used to mean "rev", which was inconsistent
+ with how "rev^" worked. Now "rev~" is the same as "rev~1" (hence it
+ also is the same as "rev^1"), and "rev~0" is the same as "rev^0"
+ (i.e. it has to be a commit).
+
+ * "git quiltimport" did not grok empty lines, lines in "file -pNNN"
+ format to specify the prefix levels and lines with trailing comments.
+
+ * "git rebase -m" triggered pre-commit verification, which made
+ "rebase --continue" impossible.
+
+--
+exec >/var/tmp/1
+echo O=$(git describe maint)
+O=v1.5.4.4-25-ga6f7728
+git shortlog --no-merges $O..maint
diff --git a/Documentation/RelNotes-1.5.5.txt b/Documentation/RelNotes-1.5.5.txt
index 874dad9a4f..e31ae6a293 100644
--- a/Documentation/RelNotes-1.5.5.txt
+++ b/Documentation/RelNotes-1.5.5.txt
@@ -6,7 +6,16 @@ Updates since v1.5.4
(subsystems)
- * Comes with git-gui 0.9.3
+ * Comes with git-gui 0.9.3.
+
+(portability)
+
+ * We shouldn't ask for BSD group ownership semantics by setting g+s bit
+ on directories on older BSD systems that refuses chmod() by non root
+ users. BSD semantics is the default there anyway.
+
+ * Bunch of portability improvement patches coming from an effort to port
+ to Solaris has been applied.
(performance)
@@ -27,6 +36,9 @@ Updates since v1.5.4
(usability, bells and whistles)
+ * Bash completion script (in contrib) are aware of more commands and
+ options.
+
* You can be warned when core.autocrlf conversion is applied in
such a way that results in an irreversible conversion.
@@ -54,11 +66,6 @@ Updates since v1.5.4
used to tell "git-fetch" and "git-push" to use different URL than what
is given from the command line.
- * "git push <somewhere> HEAD" and "git push <somewhere> +HEAD" works as
- expected; they push the current branch (and only the current branch).
- In addition, HEAD can be written as the value of "remote.<there>.push"
- configuration variable.
-
* "git add -i" behaves better even before you make an initial commit.
* "git am" refused to run from a subdirectory without a good reason.
@@ -114,24 +121,46 @@ Updates since v1.5.4
* "git gc" learned --quiet option.
+ * "git gc" now automatically prunes unreachable objects that are two
+ weeks old or older.
+
* "git grep" now knows "--name-only" is a synonym for the "-l" option.
* "git help <alias>" now reports "'git <alias>' is alias to <what>",
instead of saying "No manual entry for git-<alias>".
+ * "git help" can use different backends to show manual pages and this can
+ be configured using "man.viewer" configuration.
+
+ * "gitk" does not restore window position from $HOME/.gitk anymore (it
+ still restores the size).
+
* "git log --grep=<what>" learned "--fixed-strings" option to look for
<what> without treating it as a regular expression.
* "git gui" learned an auto-spell checking.
+ * "git push <somewhere> HEAD" and "git push <somewhere> +HEAD" works as
+ expected; they push the current branch (and only the current branch).
+ In addition, HEAD can be written as the value of "remote.<there>.push"
+ configuration variable.
+
+ * When the configuration variable "pack.threads" is set to 0, "git
+ repack" auto detects the number of CPUs and uses that many threads.
+
* "git send-email" learned to prompt for passwords
interactively.
* "git send-email" learned an easier way to suppress CC
recipients.
- * When the configuration variable "pack.threads" is set to 0, "git
- repack" auto detects the number of CPUs and uses that many threads.
+ * "git stash" learned "pop" command, that applies the latest stash and
+ removes it from the stash, and "drop" command to discard the named
+ stash entry.
+
+ * "git submodule" learned a new subcommand "summary" to show the
+ symmetric difference between the HEAD version and the work tree version
+ of the submodule commits.
* Various "git cvsimport", "git cvsexportcommit", "git svn" and
"git p4" improvements.
@@ -146,6 +175,8 @@ Updates since v1.5.4
* "git checkout" is rewritten in C.
+ * "git remote" is rewritten in C.
+
* Two conflict hunks that are separated by a very short span of common
lines are now coalesced into one larger hunk, to make the result easier
to read.
@@ -153,6 +184,8 @@ Updates since v1.5.4
* Run-command API's use of file descriptors is documented clearer and
is more consistent now.
+ * diff output can be sent to FILE * that is different from stdout. This
+ will help reimplementing more things in C.
Fixes since v1.5.4
------------------
@@ -168,6 +201,6 @@ this release, unless otherwise noted.
---
exec >/var/tmp/1
-O=v1.5.4.3-428-g6b48990
+O=v1.5.4.4-620-gc817faa
echo O=`git describe refs/heads/master`
git shortlog --no-merges $O..refs/heads/master ^refs/heads/maint
diff --git a/Documentation/config.txt b/Documentation/config.txt
index c5e094a9c4..0865f4e01a 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -420,6 +420,11 @@ branch.<name>.rebase::
it unless you understand the implications (see linkgit:git-rebase[1]
for details).
+browser.<tool>.cmd::
+ Specify the command to invoke the specified browser. The
+ specified command is evaluated in shell with the URLs passed
+ as arguments. (See linkgit:git-web--browse[1].)
+
browser.<tool>.path::
Override the path for the given tool that may be used to
browse HTML help (see '-w' option in linkgit:git-help[1]) or a
@@ -590,6 +595,10 @@ gc.packrefs::
at some stage, and setting this to `false` will continue to
prevent `git pack-refs` from being run from `git gc`.
+gc.pruneexpire::
+ When `git gc` is run, it will call `prune --expire 2.weeks.ago`.
+ Override the grace period with this config variable.
+
gc.reflogexpire::
`git reflog expire` removes reflog entries older than
this time; defaults to 90 days.
@@ -748,6 +757,10 @@ log.showroot::
Tools like linkgit:git-log[1] or linkgit:git-whatchanged[1], which
normally hide the root commit will now show it. True by default.
+man.viewer::
+ Specify the programs that may be used to display help in the
+ 'man' format. See linkgit:git-help[1].
+
merge.summary::
Whether to include summaries of merged commits in newly created
merge commit messages. False by default.
@@ -860,7 +873,7 @@ pack.indexVersion::
whenever the corresponding pack is larger than 2 GB. Otherwise
the default is 1.
-pack.packSizeLimit:
+pack.packSizeLimit::
The default maximum size of a pack. This setting only affects
packing to a file, i.e. the git:// protocol is unaffected. It
can be overridden by the `\--max-pack-size` option of
diff --git a/Documentation/git-add.txt b/Documentation/git-add.txt
index 47799097ce..c751a17d07 100644
--- a/Documentation/git-add.txt
+++ b/Documentation/git-add.txt
@@ -207,16 +207,14 @@ patch::
and the working tree file and asks you if you want to stage
the change of each hunk. You can say:
- y - add the change from that hunk to index
- n - do not add the change from that hunk to index
- a - add the change from that hunk and all the rest to index
- d - do not the change from that hunk nor any of the rest to index
- j - do not decide on this hunk now, and view the next
- undecided hunk
- J - do not decide on this hunk now, and view the next hunk
- k - do not decide on this hunk now, and view the previous
- undecided hunk
- K - do not decide on this hunk now, and view the previous hunk
+ y - stage this hunk
+ n - do not stage this hunk
+ a - stage this and all the remaining hunks in the file
+ d - do not stage this hunk nor any of the remaining hunks in the file
+ j - leave this hunk undecided, see next undecided hunk
+ J - leave this hunk undecided, see next hunk
+ k - leave this hunk undecided, see previous undecided hunk
+ K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
? - print help
+
diff --git a/Documentation/git-fast-import.txt b/Documentation/git-fast-import.txt
index 96f6767075..c29a4f8126 100644
--- a/Documentation/git-fast-import.txt
+++ b/Documentation/git-fast-import.txt
@@ -385,6 +385,9 @@ new commit.
Omitting the `from` command in the first commit of a new branch
will cause fast-import to create that commit with no ancestor. This
tends to be desired only for the initial commit of a project.
+If the frontend creates all files from scratch when making a new
+branch, a `merge` command may be used instead of `from` to start
+the commit with an empty tree.
Omitting the `from` command on existing branches is usually desired,
as the current commit on that branch is automatically assumed to
be the first ancestor of the new commit.
@@ -427,13 +430,15 @@ existing value of the branch.
`merge`
^^^^^^^
-Includes one additional ancestor commit, and makes the current
-commit a merge commit. An unlimited number of `merge` commands per
+Includes one additional ancestor commit. If the `from` command is
+omitted when creating a new branch, the first `merge` commit will be
+the first ancestor of the current commit, and the branch will start
+out with no files. An unlimited number of `merge` commands per
commit are permitted by fast-import, thereby establishing an n-way merge.
However Git's other tools never create commits with more than 15
additional ancestors (forming a 16-way merge). For this reason
it is suggested that frontends do not use more than 15 `merge`
-commands per commit.
+commands per commit; 16, if starting a new, empty branch.
Here `<committish>` is any of the commit specification expressions
also accepted by `from` (see above).
diff --git a/Documentation/git-filter-branch.txt b/Documentation/git-filter-branch.txt
index 543a1cf105..2a78549be5 100644
--- a/Documentation/git-filter-branch.txt
+++ b/Documentation/git-filter-branch.txt
@@ -25,7 +25,7 @@ Otherwise, all information (including original commit times or merge
information) will be preserved.
The command will only rewrite the _positive_ refs mentioned in the
-command line (i.e. if you pass 'a..b', only 'b' will be rewritten).
+command line (e.g. if you pass 'a..b', only 'b' will be rewritten).
If you specify no filters, the commits will be recommitted without any
changes, which would normally have no effect. Nevertheless, this may be
useful in the future for compensating for some git bugs or such,
@@ -42,7 +42,7 @@ Always verify that the rewritten version is correct: The original refs,
if different from the rewritten ones, will be stored in the namespace
'refs/original/'.
-Note that since this operation is extensively I/O expensive, it might
+Note that since this operation is very I/O expensive, it might
be a good idea to redirect the temporary directory off-disk with the
'-d' option, e.g. on tmpfs. Reportedly the speedup is very noticeable.
@@ -51,14 +51,15 @@ Filters
~~~~~~~
The filters are applied in the order as listed below. The <command>
-argument is always evaluated in shell using the 'eval' command (with the
-notable exception of the commit filter, for technical reasons).
+argument is always evaluated in the shell context using the 'eval' command
+(with the notable exception of the commit filter, for technical reasons).
Prior to that, the $GIT_COMMIT environment variable will be set to contain
the id of the commit being rewritten. Also, GIT_AUTHOR_NAME,
GIT_AUTHOR_EMAIL, GIT_AUTHOR_DATE, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL,
-and GIT_COMMITTER_DATE are set according to the current commit. If any
-evaluation of <command> returns a non-zero exit status, the whole operation
-will be aborted.
+and GIT_COMMITTER_DATE are set according to the current commit. The values
+of these variables after the filters have run, are used for the new commit.
+If any evaluation of <command> returns a non-zero exit status, the whole
+operation will be aborted.
A 'map' function is available that takes an "original sha1 id" argument
and outputs a "rewritten sha1 id" if the commit has been already
@@ -71,9 +72,9 @@ OPTIONS
-------
--env-filter <command>::
- This is the filter for modifying the environment in which
- the commit will be performed. Specifically, you might want
- to rewrite the author/committer name/email/time environment
+ This filter may be used if you only need to modify the environment
+ in which the commit will be performed. Specifically, you might
+ want to rewrite the author/committer name/email/time environment
variables (see linkgit:git-commit[1] for details). Do not forget
to re-export the variables.
@@ -149,7 +150,7 @@ definition impossible to preserve signatures at any rate.)
-d <directory>::
Use this option to set the path to the temporary directory used for
rewriting. When applying a tree filter, the command needs to
- temporary checkout the tree to some directory, which may consume
+ temporarily check out the tree to some directory, which may consume
considerable space in case of large projects. By default it
does this in the '.git-rewrite/' directory but you can override
that choice by this parameter.
diff --git a/Documentation/git-gc.txt b/Documentation/git-gc.txt
index 2e7be916aa..d424a4ecbe 100644
--- a/Documentation/git-gc.txt
+++ b/Documentation/git-gc.txt
@@ -8,7 +8,7 @@ git-gc - Cleanup unnecessary files and optimize the local repository
SYNOPSIS
--------
-'git-gc' [--prune] [--aggressive] [--auto] [--quiet]
+'git-gc' [--aggressive] [--auto] [--quiet]
DESCRIPTION
-----------
@@ -19,23 +19,19 @@ created from prior invocations of linkgit:git-add[1].
Users are encouraged to run this task on a regular basis within
each repository to maintain good disk space utilization and good
-operating performance. Some git commands may automatically run
-`git-gc`; see the `--auto` flag below for details.
+operating performance.
+
+Some git commands may automatically run `git-gc`; see the `--auto` flag
+below for details. If you know what you're doing and all you want is to
+disable this behavior permanently without further considerations, just do:
+
+----------------------
+$ git config --global gc.auto 0
+----------------------
OPTIONS
-------
---prune::
- Usually `git-gc` packs refs, expires old reflog entries,
- packs loose objects,
- and removes old 'rerere' records. Removal
- of unreferenced loose objects is an unsafe operation
- while other git operations are in progress, so it is not
- done by default. Pass this option if you want it, and only
- when you know nobody else is creating new objects in the
- repository at the same time (e.g. never use this option
- in a cron script).
-
--aggressive::
Usually 'git-gc' runs very quickly while providing good disk
space utilization and performance. This option will cause
@@ -104,6 +100,10 @@ the value, the more time is spent optimizing the delta compression. See
the documentation for the --window' option in linkgit:git-repack[1] for
more details. This defaults to 10.
+The optional configuration variable 'gc.pruneExpire' controls how old
+the unreferenced loose objects have to be before they are pruned. The
+default is "2 weeks ago".
+
See Also
--------
linkgit:git-prune[1]
diff --git a/Documentation/git-help.txt b/Documentation/git-help.txt
index 0926dc12ba..be2ae53b90 100644
--- a/Documentation/git-help.txt
+++ b/Documentation/git-help.txt
@@ -33,17 +33,21 @@ OPTIONS
option supersedes any other option.
-i|--info::
- Use the 'info' program to display the manual page, instead of
- the 'man' program that is used by default.
+ Display manual page for the command in the 'info' format. The
+ 'info' program will be used for that purpose.
-m|--man::
- Use the 'man' program to display the manual page. This may be
- used to override a value set in the 'help.format'
- configuration variable.
+ Display manual page for the command in the 'man' format. This
+ option may be used to override a value set in the
+ 'help.format' configuration variable.
++
+By default the 'man' program will be used to display the manual page,
+but the 'man.viewer' configuration variable may be used to choose
+other display programs (see below).
-w|--web::
- Use a web browser to display the HTML manual page, instead of
- the 'man' program that is used by default.
+ Display manual page for the command in the 'web' (HTML)
+ format. A web browser will be used for that purpose.
+
The web browser can be specified using the configuration variable
'help.browser', or 'web.browser' if the former is not set. If none of
@@ -54,6 +58,9 @@ linkgit:git-web--browse[1] for more information about this.
CONFIGURATION VARIABLES
-----------------------
+help.format
+~~~~~~~~~~~
+
If no command line option is passed, the 'help.format' configuration
variable will be checked. The following values are supported for this
variable; they make 'git-help' behave as their corresponding command
@@ -61,15 +68,47 @@ line option:
* "man" corresponds to '-m|--man',
* "info" corresponds to '-i|--info',
-* "web" or "html" correspond to '-w|--web',
+* "web" or "html" correspond to '-w|--web'.
+
+help.browser, web.browser and browser.<tool>.path
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The 'help.browser', 'web.browser' and 'browser.<tool>.path' will also
be checked if the 'web' format is chosen (either by command line
option or configuration variable). See '-w|--web' in the OPTIONS
section above and linkgit:git-web--browse[1].
-Note that these configuration variables should probably be set using
-the '--global' flag, for example like this:
+man.viewer
+~~~~~~~~~~
+
+The 'man.viewer' config variable will be checked if the 'man' format
+is chosen. Only the following values are currently supported:
+
+* "man": use the 'man' program as usual,
+* "woman": use 'emacsclient' to launch the "woman" mode in emacs
+(this only works starting with emacsclient versions 22),
+* "konqueror": use a man KIO slave in konqueror.
+
+Multiple values may be given to this configuration variable. Their
+corresponding programs will be tried in the order listed in the
+configuration file.
+
+For example, this configuration:
+
+ [man]
+ viewer = konqueror
+ viewer = woman
+
+will try to use konqueror first. But this may fail (for example if
+DISPLAY is not set) and in that case emacs' woman mode will be tried.
+
+If everything fails the 'man' program will be tried anyway.
+
+Note about git config --global
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Note that all these configuration variables should probably be set
+using the '--global' flag, for example like this:
------------------------------------------------
$ git config --global help.format web
diff --git a/Documentation/git-send-email.txt b/Documentation/git-send-email.txt
index 336d797e80..9d0a10c562 100644
--- a/Documentation/git-send-email.txt
+++ b/Documentation/git-send-email.txt
@@ -216,6 +216,9 @@ sendemail.chainreplyto::
sendemail.smtpserver::
Default SMTP server to use.
+sendemail.smtpserverport::
+ Default SMTP server port to use.
+
sendemail.smtpuser::
Default SMTP-AUTH username.
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index b4d01605a5..41f9f63566 100644
--- a/Documentation/git-submodule.txt
+++ b/Documentation/git-submodule.txt
@@ -12,6 +12,7 @@ SYNOPSIS
'git-submodule' [--quiet] add [-b branch] [--] <repository> [<path>]
'git-submodule' [--quiet] status [--cached] [--] [<path>...]
'git-submodule' [--quiet] [init|update] [--] [<path>...]
+'git-submodule' [--quiet] summary [--summary-limit <n>] [commit] [--] [<path>...]
COMMANDS
@@ -47,6 +48,11 @@ update::
checkout the commit specified in the index of the containing repository.
This will make the submodules HEAD be detached.
+summary::
+ Show commit summary between the given commit (defaults to HEAD) and
+ working tree/index. For a submodule in question, a series of commits
+ in the submodule between the given super project commit and the
+ index or working tree (switched by --cached) are shown.
OPTIONS
-------
@@ -57,9 +63,16 @@ OPTIONS
Branch of repository to add as submodule.
--cached::
- Display the SHA-1 stored in the index, not the SHA-1 of the currently
- checked out submodule commit. This option is only valid for the
- status command.
+ This option is only valid for status and summary commands. These
+ commands typically use the commit found in the submodule HEAD, but
+ with this option, the commit stored in the index is used instead.
+
+-n, --summary-limit::
+ This option is only valid for the summary command.
+ Limit the summary size (number of commits shown in total).
+ Giving 0 will disable the summary; a negative number means unlimted
+ (the default). This limit only applies to modified submodules. The
+ size is always limited to 1 for added/deleted/typechanged submodules.
<path>::
Path to submodule(s). When specified this will restrict the command
diff --git a/Documentation/git-web--browse.txt b/Documentation/git-web--browse.txt
index df57d010e5..ddbae5b194 100644
--- a/Documentation/git-web--browse.txt
+++ b/Documentation/git-web--browse.txt
@@ -27,6 +27,8 @@ The following browsers (or commands) are currently supported:
* dillo
* open (this is the default under Mac OS X GUI)
+Custom commands may also be specified.
+
OPTIONS
-------
-b BROWSER|--browser=BROWSER::
@@ -43,16 +45,35 @@ OPTIONS
CONFIGURATION VARIABLES
-----------------------
+CONF.VAR (from -c option) and web.browser
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
The web browser can be specified using a configuration variable passed
with the -c (or --config) command line option, or the 'web.browser'
configuration variable if the former is not used.
+browser.<tool>.path
+~~~~~~~~~~~~~~~~~~~
+
You can explicitly provide a full path to your preferred browser by
setting the configuration variable 'browser.<tool>.path'. For example,
you can configure the absolute path to firefox by setting
'browser.firefox.path'. Otherwise, 'git-web--browse' assumes the tool
is available in PATH.
+browser.<tool>.cmd
+~~~~~~~~~~~~~~~~~~
+
+When the browser, specified by options or configuration variables, is
+not among the supported ones, then the corresponding
+'browser.<tool>.cmd' configuration variable will be looked up. If this
+variable exists then "git web--browse" will treat the specified tool
+as a custom command and will use a shell eval to run the command with
+the URLs passed as arguments.
+
+Note about git config --global
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
Note that these configuration variables should probably be set using
the '--global' flag, for example like this:
diff --git a/Documentation/manpage-1.72.xsl b/Documentation/manpage-1.72.xsl
index fe3cd72d6f..4065a3a27a 100644
--- a/Documentation/manpage-1.72.xsl
+++ b/Documentation/manpage-1.72.xsl
@@ -1,5 +1,9 @@
-<!-- callout.xsl: converts asciidoc callouts to man page format -->
+<!-- Based on callouts.xsl. Fixes man page callouts for DocBook 1.72 XSL -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+
+<xsl:param name="man.output.quietly" select="1"/>
+<xsl:param name="refentry.meta.get.quietly" select="1"/>
+
<xsl:template match="co">
<xsl:value-of select="concat('&#x2593;fB(',substring-after(@id,'-'),')&#x2593;fR')"/>
</xsl:template>
diff --git a/Documentation/merge-strategies.txt b/Documentation/merge-strategies.txt
index 7df0266ba8..1276f858ad 100644
--- a/Documentation/merge-strategies.txt
+++ b/Documentation/merge-strategies.txt
@@ -33,3 +33,10 @@ ours::
merge is always the current branch head. It is meant to
be used to supersede old development history of side
branches.
+
+subtree::
+ This is a modified recursive strategy. When merging trees A and
+ B, if B corresponds to a subtree of A, B is first adjusted to
+ match the tree structure of A, instead of reading the trees at
+ the same level. This adjustment is also done to the common
+ ancestor tree.
diff --git a/Makefile b/Makefile
index e3eaa6a543..7c70b00b82 100644
--- a/Makefile
+++ b/Makefile
@@ -148,6 +148,9 @@ all::
# is a simplified version of the merge sort used in glibc. This is
# recommended if Git triggers O(n^2) behavior in your platform's qsort().
#
+# Define NO_EXTERNAL_GREP if you don't want "git grep" to ever call
+# your external grep (e.g., if your system lacks grep, if its grep is
+# broken, or spawning external process is slower than built-in grep git has).
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
@$(SHELL_PATH) ./GIT-VERSION-GEN
@@ -229,59 +232,84 @@ SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
BASIC_CFLAGS =
BASIC_LDFLAGS =
-SCRIPT_SH = \
- git-bisect.sh \
- git-clone.sh \
- git-merge-one-file.sh git-mergetool.sh git-parse-remote.sh \
- git-pull.sh git-rebase.sh git-rebase--interactive.sh \
- git-repack.sh git-request-pull.sh \
- git-sh-setup.sh \
- git-am.sh \
- git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
- git-merge-resolve.sh \
- git-lost-found.sh git-quiltimport.sh git-submodule.sh \
- git-filter-branch.sh \
- git-stash.sh \
- git-web--browse.sh
-
-SCRIPT_PERL = \
- git-add--interactive.perl \
- git-archimport.perl git-cvsimport.perl git-relink.perl \
- git-cvsserver.perl git-cvsexportcommit.perl \
- git-send-email.perl git-svn.perl
+SCRIPT_SH += git-am.sh
+SCRIPT_SH += git-bisect.sh
+SCRIPT_SH += git-clone.sh
+SCRIPT_SH += git-filter-branch.sh
+SCRIPT_SH += git-lost-found.sh
+SCRIPT_SH += git-merge-octopus.sh
+SCRIPT_SH += git-merge-one-file.sh
+SCRIPT_SH += git-merge-resolve.sh
+SCRIPT_SH += git-merge.sh
+SCRIPT_SH += git-merge-stupid.sh
+SCRIPT_SH += git-mergetool.sh
+SCRIPT_SH += git-parse-remote.sh
+SCRIPT_SH += git-pull.sh
+SCRIPT_SH += git-quiltimport.sh
+SCRIPT_SH += git-rebase--interactive.sh
+SCRIPT_SH += git-rebase.sh
+SCRIPT_SH += git-repack.sh
+SCRIPT_SH += git-request-pull.sh
+SCRIPT_SH += git-sh-setup.sh
+SCRIPT_SH += git-stash.sh
+SCRIPT_SH += git-submodule.sh
+SCRIPT_SH += git-web--browse.sh
+
+SCRIPT_PERL += git-add--interactive.perl
+SCRIPT_PERL += git-archimport.perl
+SCRIPT_PERL += git-cvsexportcommit.perl
+SCRIPT_PERL += git-cvsimport.perl
+SCRIPT_PERL += git-cvsserver.perl
+SCRIPT_PERL += git-relink.perl
+SCRIPT_PERL += git-send-email.perl
+SCRIPT_PERL += git-svn.perl
SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
$(patsubst %.perl,%,$(SCRIPT_PERL)) \
git-instaweb
-# ... and all the rest that could be moved out of bindir to gitexecdir
-PROGRAMS = \
- git-fetch-pack$X \
- git-hash-object$X git-index-pack$X \
- git-fast-import$X \
- git-daemon$X \
- git-merge-index$X git-mktag$X git-mktree$X git-patch-id$X \
- git-receive-pack$X \
- git-send-pack$X git-shell$X \
- git-show-index$X \
- git-unpack-file$X \
- git-update-server-info$X \
- git-upload-pack$X \
- git-pack-redundant$X git-var$X \
- git-merge-tree$X git-imap-send$X \
- $(EXTRA_PROGRAMS)
-
# Empty...
EXTRA_PROGRAMS =
+# ... and all the rest that could be moved out of bindir to gitexecdir
+PROGRAMS += $(EXTRA_PROGRAMS)
+PROGRAMS += git-daemon$X
+PROGRAMS += git-fast-import$X
+PROGRAMS += git-fetch-pack$X
+PROGRAMS += git-hash-object$X
+PROGRAMS += git-imap-send$X
+PROGRAMS += git-index-pack$X
+PROGRAMS += git-merge-index$X
+PROGRAMS += git-merge-tree$X
+PROGRAMS += git-mktag$X
+PROGRAMS += git-mktree$X
+PROGRAMS += git-pack-redundant$X
+PROGRAMS += git-patch-id$X
+PROGRAMS += git-receive-pack$X
+PROGRAMS += git-send-pack$X
+PROGRAMS += git-shell$X
+PROGRAMS += git-show-index$X
+PROGRAMS += git-unpack-file$X
+PROGRAMS += git-update-server-info$X
+PROGRAMS += git-upload-pack$X
+PROGRAMS += git-var$X
+
# List built-in command $C whose implementation cmd_$C() is not in
# builtin-$C.o but is linked in as part of some other command.
-BUILT_INS = \
- git-format-patch$X git-show$X git-whatchanged$X git-cherry$X \
- git-get-tar-commit-id$X git-init$X git-repo-config$X \
- git-fsck-objects$X git-cherry-pick$X git-peek-remote$X git-status$X \
- git-merge-subtree$X \
- $(patsubst builtin-%.o,git-%$X,$(BUILTIN_OBJS))
+BUILT_INS += $(patsubst builtin-%.o,git-%$X,$(BUILTIN_OBJS))
+
+BUILT_INS += git-cherry-pick$X
+BUILT_INS += git-cherry$X
+BUILT_INS += git-format-patch$X
+BUILT_INS += git-fsck-objects$X
+BUILT_INS += git-get-tar-commit-id$X
+BUILT_INS += git-init$X
+BUILT_INS += git-merge-subtree$X
+BUILT_INS += git-peek-remote$X
+BUILT_INS += git-repo-config$X
+BUILT_INS += git-show$X
+BUILT_INS += git-status$X
+BUILT_INS += git-whatchanged$X
# what 'all' will build and 'install' will install, in gitexecdir
ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
@@ -302,113 +330,214 @@ export PERL_PATH
LIB_FILE=libgit.a
XDIFF_LIB=xdiff/lib.a
-LIB_H = \
- archive.h blob.h cache.h cache-tree.h commit.h csum-file.h delta.h grep.h \
- diff.h object.h pack.h pkt-line.h quote.h refs.h list-objects.h sideband.h \
- run-command.h strbuf.h tag.h tree.h git-compat-util.h revision.h \
- tree-walk.h log-tree.h dir.h path-list.h unpack-trees.h builtin.h \
- utf8.h reflog-walk.h patch-ids.h attr.h decorate.h progress.h \
- mailmap.h remote.h parse-options.h transport.h diffcore.h hash.h ll-merge.h fsck.h \
- pack-revindex.h
-
-DIFF_OBJS = \
- diff.o diff-lib.o diffcore-break.o diffcore-order.o \
- diffcore-pickaxe.o diffcore-rename.o tree-diff.o combine-diff.o \
- diffcore-delta.o log-tree.o
-
-LIB_OBJS = \
- blob.o commit.o connect.o csum-file.o cache-tree.o base85.o \
- date.o diff-delta.o entry.o exec_cmd.o ident.o \
- pretty.o interpolate.o hash.o \
- lockfile.o \
- patch-ids.o \
- object.o pack-check.o pack-write.o patch-delta.o path.o pkt-line.o \
- sideband.o reachable.o reflog-walk.o \
- quote.o read-cache.o refs.o run-command.o dir.o \
- server-info.o setup.o sha1_file.o sha1_name.o strbuf.o \
- tag.o tree.o usage.o config.o environment.o ctype.o copy.o \
- revision.o pager.o tree-walk.o xdiff-interface.o \
- write_or_die.o trace.o list-objects.o grep.o match-trees.o \
- alloc.o merge-file.o path-list.o help.o unpack-trees.o $(DIFF_OBJS) \
- color.o wt-status.o archive-zip.o archive-tar.o shallow.o utf8.o \
- convert.o attr.o decorate.o progress.o mailmap.o symlinks.o remote.o \
- transport.o bundle.o walker.o parse-options.o ws.o archive.o branch.o \
- ll-merge.o alias.o fsck.o pack-revindex.o
-
-BUILTIN_OBJS = \
- builtin-add.o \
- builtin-annotate.o \
- builtin-apply.o \
- builtin-archive.o \
- builtin-blame.o \
- builtin-branch.o \
- builtin-bundle.o \
- builtin-cat-file.o \
- builtin-check-attr.o \
- builtin-checkout.o \
- builtin-checkout-index.o \
- builtin-check-ref-format.o \
- builtin-clean.o \
- builtin-commit.o \
- builtin-commit-tree.o \
- builtin-count-objects.o \
- builtin-describe.o \
- builtin-diff.o \
- builtin-diff-files.o \
- builtin-diff-index.o \
- builtin-diff-tree.o \
- builtin-fast-export.o \
- builtin-fetch.o \
- builtin-fetch-pack.o \
- builtin-fetch--tool.o \
- builtin-fmt-merge-msg.o \
- builtin-for-each-ref.o \
- builtin-fsck.o \
- builtin-gc.o \
- builtin-grep.o \
- builtin-init-db.o \
- builtin-log.o \
- builtin-ls-files.o \
- builtin-ls-tree.o \
- builtin-ls-remote.o \
- builtin-mailinfo.o \
- builtin-mailsplit.o \
- builtin-merge-base.o \
- builtin-merge-file.o \
- builtin-merge-ours.o \
- builtin-merge-recursive.o \
- builtin-mv.o \
- builtin-name-rev.o \
- builtin-pack-objects.o \
- builtin-prune.o \
- builtin-prune-packed.o \
- builtin-push.o \
- builtin-read-tree.o \
- builtin-reflog.o \
- builtin-remote.o \
- builtin-send-pack.o \
- builtin-config.o \
- builtin-rerere.o \
- builtin-reset.o \
- builtin-rev-list.o \
- builtin-rev-parse.o \
- builtin-revert.o \
- builtin-rm.o \
- builtin-shortlog.o \
- builtin-show-branch.o \
- builtin-stripspace.o \
- builtin-symbolic-ref.o \
- builtin-tag.o \
- builtin-tar-tree.o \
- builtin-unpack-objects.o \
- builtin-update-index.o \
- builtin-update-ref.o \
- builtin-upload-archive.o \
- builtin-verify-pack.o \
- builtin-verify-tag.o \
- builtin-write-tree.o \
- builtin-show-ref.o \
- builtin-pack-refs.o
+LIB_H += archive.h
+LIB_H += attr.h
+LIB_H += blob.h
+LIB_H += builtin.h
+LIB_H += cache.h
+LIB_H += cache-tree.h
+LIB_H += commit.h
+LIB_H += csum-file.h
+LIB_H += decorate.h
+LIB_H += delta.h
+LIB_H += diffcore.h
+LIB_H += diff.h
+LIB_H += dir.h
+LIB_H += fsck.h
+LIB_H += git-compat-util.h
+LIB_H += grep.h
+LIB_H += hash.h
+LIB_H += list-objects.h
+LIB_H += ll-merge.h
+LIB_H += log-tree.h
+LIB_H += mailmap.h
+LIB_H += object.h
+LIB_H += pack.h
+LIB_H += pack-revindex.h
+LIB_H += parse-options.h
+LIB_H += patch-ids.h
+LIB_H += path-list.h
+LIB_H += pkt-line.h
+LIB_H += progress.h
+LIB_H += quote.h
+LIB_H += reflog-walk.h
+LIB_H += refs.h
+LIB_H += remote.h
+LIB_H += revision.h
+LIB_H += run-command.h
+LIB_H += sideband.h
+LIB_H += strbuf.h
+LIB_H += tag.h
+LIB_H += transport.h
+LIB_H += tree.h
+LIB_H += tree-walk.h
+LIB_H += unpack-trees.h
+LIB_H += utf8.h
+
+LIB_OBJS += alias.o
+LIB_OBJS += alloc.o
+LIB_OBJS += archive.o
+LIB_OBJS += archive-tar.o
+LIB_OBJS += archive-zip.o
+LIB_OBJS += attr.o
+LIB_OBJS += base85.o
+LIB_OBJS += blob.o
+LIB_OBJS += branch.o
+LIB_OBJS += bundle.o
+LIB_OBJS += cache-tree.o
+LIB_OBJS += color.o
+LIB_OBJS += combine-diff.o
+LIB_OBJS += commit.o
+LIB_OBJS += config.o
+LIB_OBJS += connect.o
+LIB_OBJS += convert.o
+LIB_OBJS += copy.o
+LIB_OBJS += csum-file.o
+LIB_OBJS += ctype.o
+LIB_OBJS += date.o
+LIB_OBJS += decorate.o
+LIB_OBJS += diffcore-break.o
+LIB_OBJS += diffcore-delta.o
+LIB_OBJS += diffcore-order.o
+LIB_OBJS += diffcore-pickaxe.o
+LIB_OBJS += diffcore-rename.o
+LIB_OBJS += diff-delta.o
+LIB_OBJS += diff-lib.o
+LIB_OBJS += diff.o
+LIB_OBJS += dir.o
+LIB_OBJS += entry.o
+LIB_OBJS += environment.o
+LIB_OBJS += exec_cmd.o
+LIB_OBJS += fsck.o
+LIB_OBJS += grep.o
+LIB_OBJS += hash.o
+LIB_OBJS += help.o
+LIB_OBJS += ident.o
+LIB_OBJS += interpolate.o
+LIB_OBJS += list-objects.o
+LIB_OBJS += ll-merge.o
+LIB_OBJS += lockfile.o
+LIB_OBJS += log-tree.o
+LIB_OBJS += mailmap.o
+LIB_OBJS += match-trees.o
+LIB_OBJS += merge-file.o
+LIB_OBJS += object.o
+LIB_OBJS += pack-check.o
+LIB_OBJS += pack-revindex.o
+LIB_OBJS += pack-write.o
+LIB_OBJS += pager.o
+LIB_OBJS += parse-options.o
+LIB_OBJS += patch-delta.o
+LIB_OBJS += patch-ids.o
+LIB_OBJS += path-list.o
+LIB_OBJS += path.o
+LIB_OBJS += pkt-line.o
+LIB_OBJS += pretty.o
+LIB_OBJS += progress.o
+LIB_OBJS += quote.o
+LIB_OBJS += reachable.o
+LIB_OBJS += read-cache.o
+LIB_OBJS += reflog-walk.o
+LIB_OBJS += refs.o
+LIB_OBJS += remote.o
+LIB_OBJS += revision.o
+LIB_OBJS += run-command.o
+LIB_OBJS += server-info.o
+LIB_OBJS += setup.o
+LIB_OBJS += sha1_file.o
+LIB_OBJS += sha1_name.o
+LIB_OBJS += shallow.o
+LIB_OBJS += sideband.o
+LIB_OBJS += strbuf.o
+LIB_OBJS += symlinks.o
+LIB_OBJS += tag.o
+LIB_OBJS += trace.o
+LIB_OBJS += transport.o
+LIB_OBJS += tree-diff.o
+LIB_OBJS += tree.o
+LIB_OBJS += tree-walk.o
+LIB_OBJS += unpack-trees.o
+LIB_OBJS += usage.o
+LIB_OBJS += utf8.o
+LIB_OBJS += walker.o
+LIB_OBJS += write_or_die.o
+LIB_OBJS += ws.o
+LIB_OBJS += wt-status.o
+LIB_OBJS += xdiff-interface.o
+
+BUILTIN_OBJS += builtin-add.o
+BUILTIN_OBJS += builtin-annotate.o
+BUILTIN_OBJS += builtin-apply.o
+BUILTIN_OBJS += builtin-archive.o
+BUILTIN_OBJS += builtin-blame.o
+BUILTIN_OBJS += builtin-branch.o
+BUILTIN_OBJS += builtin-bundle.o
+BUILTIN_OBJS += builtin-cat-file.o
+BUILTIN_OBJS += builtin-check-attr.o
+BUILTIN_OBJS += builtin-check-ref-format.o
+BUILTIN_OBJS += builtin-checkout-index.o
+BUILTIN_OBJS += builtin-checkout.o
+BUILTIN_OBJS += builtin-clean.o
+BUILTIN_OBJS += builtin-commit-tree.o
+BUILTIN_OBJS += builtin-commit.o
+BUILTIN_OBJS += builtin-config.o
+BUILTIN_OBJS += builtin-count-objects.o
+BUILTIN_OBJS += builtin-describe.o
+BUILTIN_OBJS += builtin-diff-files.o
+BUILTIN_OBJS += builtin-diff-index.o
+BUILTIN_OBJS += builtin-diff-tree.o
+BUILTIN_OBJS += builtin-diff.o
+BUILTIN_OBJS += builtin-fast-export.o
+BUILTIN_OBJS += builtin-fetch--tool.o
+BUILTIN_OBJS += builtin-fetch-pack.o
+BUILTIN_OBJS += builtin-fetch.o
+BUILTIN_OBJS += builtin-fmt-merge-msg.o
+BUILTIN_OBJS += builtin-for-each-ref.o
+BUILTIN_OBJS += builtin-fsck.o
+BUILTIN_OBJS += builtin-gc.o
+BUILTIN_OBJS += builtin-grep.o
+BUILTIN_OBJS += builtin-init-db.o
+BUILTIN_OBJS += builtin-log.o
+BUILTIN_OBJS += builtin-ls-files.o
+BUILTIN_OBJS += builtin-ls-remote.o
+BUILTIN_OBJS += builtin-ls-tree.o
+BUILTIN_OBJS += builtin-mailinfo.o
+BUILTIN_OBJS += builtin-mailsplit.o
+BUILTIN_OBJS += builtin-merge-base.o
+BUILTIN_OBJS += builtin-merge-file.o
+BUILTIN_OBJS += builtin-merge-ours.o
+BUILTIN_OBJS += builtin-merge-recursive.o
+BUILTIN_OBJS += builtin-mv.o
+BUILTIN_OBJS += builtin-name-rev.o
+BUILTIN_OBJS += builtin-pack-objects.o
+BUILTIN_OBJS += builtin-pack-refs.o
+BUILTIN_OBJS += builtin-prune-packed.o
+BUILTIN_OBJS += builtin-prune.o
+BUILTIN_OBJS += builtin-push.o
+BUILTIN_OBJS += builtin-read-tree.o
+BUILTIN_OBJS += builtin-reflog.o
+BUILTIN_OBJS += builtin-remote.o
+BUILTIN_OBJS += builtin-rerere.o
+BUILTIN_OBJS += builtin-reset.o
+BUILTIN_OBJS += builtin-rev-list.o
+BUILTIN_OBJS += builtin-rev-parse.o
+BUILTIN_OBJS += builtin-revert.o
+BUILTIN_OBJS += builtin-rm.o
+BUILTIN_OBJS += builtin-send-pack.o
+BUILTIN_OBJS += builtin-shortlog.o
+BUILTIN_OBJS += builtin-show-branch.o
+BUILTIN_OBJS += builtin-show-ref.o
+BUILTIN_OBJS += builtin-stripspace.o
+BUILTIN_OBJS += builtin-symbolic-ref.o
+BUILTIN_OBJS += builtin-tag.o
+BUILTIN_OBJS += builtin-tar-tree.o
+BUILTIN_OBJS += builtin-unpack-objects.o
+BUILTIN_OBJS += builtin-update-index.o
+BUILTIN_OBJS += builtin-update-ref.o
+BUILTIN_OBJS += builtin-upload-archive.o
+BUILTIN_OBJS += builtin-verify-pack.o
+BUILTIN_OBJS += builtin-verify-tag.o
+BUILTIN_OBJS += builtin-write-tree.o
GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
EXTLIBS =
@@ -760,6 +889,9 @@ endif
ifdef DIR_HAS_BSD_GROUP_SEMANTICS
COMPAT_CFLAGS += -DDIR_HAS_BSD_GROUP_SEMANTICS
endif
+ifdef NO_EXTERNAL_GREP
+ BASIC_CFLAGS += -DNO_EXTERNAL_GREP
+endif
ifeq ($(TCLTK_PATH),)
NO_TCLTK=NoThanks
@@ -867,6 +999,7 @@ common-cmds.h: $(wildcard Documentation/git-*.txt)
$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
$(QUIET_GEN)$(RM) $@ $@+ && \
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
+ -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
-e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
-e 's/@@NO_CURL@@/$(NO_CURL)/g' \
diff --git a/builtin-fetch-pack.c b/builtin-fetch-pack.c
index 7b28024224..65350ca522 100644
--- a/builtin-fetch-pack.c
+++ b/builtin-fetch-pack.c
@@ -26,6 +26,8 @@ static const char fetch_pack_usage[] =
#define SEEN (1U << 3)
#define POPPED (1U << 4)
+static int marked;
+
/*
* After sending this many "have"s if we do not get any new ACK , we
* give up traversing our history.
@@ -61,6 +63,16 @@ static int rev_list_insert_ref(const char *path, const unsigned char *sha1, int
return 0;
}
+static int clear_marks(const char *path, const unsigned char *sha1, int flag, void *cb_data)
+{
+ struct object *o = deref_tag(parse_object(sha1), path, 0);
+
+ if (o && o->type == OBJ_COMMIT)
+ clear_commit_marks((struct commit *)o,
+ COMMON | COMMON_REF | SEEN | POPPED);
+ return 0;
+}
+
/*
This function marks a rev and its ancestors as common.
In some cases, it is desirable to mark only the ancestors (for example
@@ -153,6 +165,10 @@ static int find_common(int fd[2], unsigned char *result_sha1,
unsigned in_vain = 0;
int got_continue = 0;
+ if (marked)
+ for_each_ref(clear_marks, NULL);
+ marked = 1;
+
for_each_ref(rev_list_insert_ref, NULL);
fetching = 0;
diff --git a/builtin-fetch.c b/builtin-fetch.c
index 55f611e3c2..a11548c894 100644
--- a/builtin-fetch.c
+++ b/builtin-fetch.c
@@ -40,6 +40,8 @@ static struct option builtin_fetch_options[] = {
"force overwrite of local branch"),
OPT_SET_INT('t', "tags", &tags,
"fetch all tags and associated objects", TAGS_SET),
+ OPT_SET_INT('n', NULL, &tags,
+ "do not fetch all tags (--no-tags)", TAGS_UNSET),
OPT_BOOLEAN('k', "keep", &keep, "keep downloaded pack"),
OPT_BOOLEAN('u', "update-head-ok", &update_head_ok,
"allow updating of HEAD ref"),
@@ -650,5 +652,6 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
signal(SIGINT, unlock_pack_on_signal);
atexit(unlock_pack);
- return do_fetch(transport, parse_ref_spec(ref_nr, refs), ref_nr);
+ return do_fetch(transport,
+ parse_fetch_refspec(ref_nr, refs), ref_nr);
}
diff --git a/builtin-gc.c b/builtin-gc.c
index 045bf0e487..509bb9c6b3 100644
--- a/builtin-gc.c
+++ b/builtin-gc.c
@@ -26,12 +26,13 @@ static int pack_refs = 1;
static int aggressive_window = -1;
static int gc_auto_threshold = 6700;
static int gc_auto_pack_limit = 20;
+static char *prune_expire = "2.weeks.ago";
#define MAX_ADD 10
static const char *argv_pack_refs[] = {"pack-refs", "--all", "--prune", NULL};
static const char *argv_reflog[] = {"reflog", "expire", "--all", NULL};
static const char *argv_repack[MAX_ADD] = {"repack", "-d", "-l", NULL};
-static const char *argv_prune[] = {"prune", NULL};
+static const char *argv_prune[] = {"prune", "--expire", NULL, NULL};
static const char *argv_rerere[] = {"rerere", "gc", NULL};
static int gc_config(const char *var, const char *value)
@@ -55,6 +56,17 @@ static int gc_config(const char *var, const char *value)
gc_auto_pack_limit = git_config_int(var, value);
return 0;
}
+ if (!strcmp(var, "gc.pruneexpire")) {
+ if (!value)
+ return config_error_nonbool(var);
+ if (strcmp(value, "now")) {
+ unsigned long now = approxidate("now");
+ if (approxidate(value) >= now)
+ return error("Invalid %s: '%s'", var, value);
+ }
+ prune_expire = xstrdup(value);
+ return 0;
+ }
return git_default_config(var, value);
}
@@ -148,10 +160,10 @@ static int too_many_packs(void)
static int need_to_gc(void)
{
/*
- * Setting gc.auto and gc.autopacklimit to 0 or negative can
- * disable the automatic gc.
+ * Setting gc.auto to 0 or negative can disable the
+ * automatic gc.
*/
- if (gc_auto_threshold <= 0 && gc_auto_pack_limit <= 0)
+ if (gc_auto_threshold <= 0)
return 0;
/*
@@ -234,7 +246,8 @@ int cmd_gc(int argc, const char **argv, const char *prefix)
if (run_command_v_opt(argv_repack, RUN_GIT_CMD))
return error(FAILED_RUN, argv_repack[0]);
- if (prune && run_command_v_opt(argv_prune, RUN_GIT_CMD))
+ argv_prune[2] = prune_expire;
+ if (run_command_v_opt(argv_prune, RUN_GIT_CMD))
return error(FAILED_RUN, argv_prune[0]);
if (run_command_v_opt(argv_rerere, RUN_GIT_CMD))
diff --git a/builtin-grep.c b/builtin-grep.c
index f4f4ecb11b..ef299108f5 100644
--- a/builtin-grep.c
+++ b/builtin-grep.c
@@ -12,6 +12,14 @@
#include "builtin.h"
#include "grep.h"
+#ifndef NO_EXTERNAL_GREP
+#ifdef __unix__
+#define NO_EXTERNAL_GREP 0
+#else
+#define NO_EXTERNAL_GREP 1
+#endif
+#endif
+
/*
* git grep pathspecs are somewhat different from diff-tree pathspecs;
* pathname wildcards are allowed.
@@ -153,7 +161,7 @@ static int grep_file(struct grep_opt *opt, const char *filename)
return i;
}
-#ifdef __unix__
+#if !NO_EXTERNAL_GREP
static int exec_grep(int argc, const char **argv)
{
pid_t pid;
@@ -372,7 +380,7 @@ static int grep_cache(struct grep_opt *opt, const char **paths, int cached)
int nr;
read_cache();
-#ifdef __unix__
+#if !NO_EXTERNAL_GREP
/*
* Use the external "grep" command for the case where
* we grep through the checked-out files. It tends to
diff --git a/builtin-log.c b/builtin-log.c
index d983cbc7bc..5c00725f03 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -662,6 +662,7 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
int i;
const char *encoding = "utf-8";
struct diff_options opts;
+ int need_8bit_cte = 0;
if (rev->commit_format != CMIT_FMT_EMAIL)
die("Cover letter needs email format");
@@ -672,7 +673,8 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
head_sha1 = sha1_to_hex(head->object.sha1);
- log_write_email_headers(rev, head_sha1, &subject_start, &extra_headers);
+ log_write_email_headers(rev, head_sha1, &subject_start, &extra_headers,
+ &need_8bit_cte);
committer = git_committer_info(0);
@@ -681,7 +683,7 @@ static void make_cover_letter(struct rev_info *rev, int use_stdout,
pp_user_info(NULL, CMIT_FMT_EMAIL, &sb, committer, DATE_RFC2822,
encoding);
pp_title_line(CMIT_FMT_EMAIL, &msg, &sb, subject_start, extra_headers,
- encoding, 0);
+ encoding, need_8bit_cte);
pp_remainder(CMIT_FMT_EMAIL, &msg, &sb, 0);
printf("%s\n", sb.buf);
diff --git a/builtin-merge-file.c b/builtin-merge-file.c
index adce6d4635..3605960c2d 100644
--- a/builtin-merge-file.c
+++ b/builtin-merge-file.c
@@ -57,7 +57,8 @@ int cmd_merge_file(int argc, const char **argv, const char *prefix)
if (!f)
ret = error("Could not open %s for writing", filename);
- else if (fwrite(result.ptr, result.size, 1, f) != 1)
+ else if (result.size &&
+ fwrite(result.ptr, result.size, 1, f) != 1)
ret = error("Could not write to %s", filename);
else if (fclose(f))
ret = error("Could not close %s", filename);
diff --git a/builtin-merge-recursive.c b/builtin-merge-recursive.c
index 5c7fbb2599..910c0d20e7 100644
--- a/builtin-merge-recursive.c
+++ b/builtin-merge-recursive.c
@@ -668,9 +668,20 @@ static struct merge_file_info merge_file(struct diff_filespec *o,
if (!sha_eq(a->sha1, o->sha1) && !sha_eq(b->sha1, o->sha1))
result.merge = 1;
- result.mode = a->mode == o->mode ? b->mode: a->mode;
+ /*
+ * Merge modes
+ */
+ if (a->mode == b->mode || a->mode == o->mode)
+ result.mode = b->mode;
+ else {
+ result.mode = a->mode;
+ if (b->mode != o->mode) {
+ result.clean = 0;
+ result.merge = 1;
+ }
+ }
- if (sha_eq(a->sha1, o->sha1))
+ if (sha_eq(a->sha1, b->sha1) || sha_eq(a->sha1, o->sha1))
hashcpy(result.sha, b->sha1);
else if (sha_eq(b->sha1, o->sha1))
hashcpy(result.sha, a->sha1);
diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index f504cff756..777f272668 100644
--- a/builtin-pack-objects.c
+++ b/builtin-pack-objects.c
@@ -454,6 +454,7 @@ static void write_pack_file(void)
struct pack_header hdr;
int do_progress = progress >> pack_to_stdout;
uint32_t nr_remaining = nr_result;
+ time_t last_mtime = 0;
if (do_progress)
progress_state = start_progress("Writing objects", nr_result);
@@ -504,6 +505,7 @@ static void write_pack_file(void)
if (!pack_to_stdout) {
mode_t mode = umask(0);
+ struct stat st;
char *idx_tmp_name, tmpname[PATH_MAX];
umask(mode);
@@ -511,6 +513,7 @@ static void write_pack_file(void)
idx_tmp_name = write_idx_file(NULL, written_list,
nr_written, sha1);
+
snprintf(tmpname, sizeof(tmpname), "%s-%s.pack",
base_name, sha1_to_hex(sha1));
if (adjust_perm(pack_tmp_name, mode))
@@ -519,6 +522,28 @@ static void write_pack_file(void)
if (rename(pack_tmp_name, tmpname))
die("unable to rename temporary pack file: %s",
strerror(errno));
+
+ /*
+ * Packs are runtime accessed in their mtime
+ * order since newer packs are more likely to contain
+ * younger objects. So if we are creating multiple
+ * packs then we should modify the mtime of later ones
+ * to preserve this property.
+ */
+ if (stat(tmpname, &st) < 0) {
+ warning("failed to stat %s: %s",
+ tmpname, strerror(errno));
+ } else if (!last_mtime) {
+ last_mtime = st.st_mtime;
+ } else {
+ struct utimbuf utb;
+ utb.actime = st.st_atime;
+ utb.modtime = --last_mtime;
+ if (utime(tmpname, &utb) < 0)
+ warning("failed utime() on %s: %s",
+ tmpname, strerror(errno));
+ }
+
snprintf(tmpname, sizeof(tmpname), "%s-%s.idx",
base_name, sha1_to_hex(sha1));
if (adjust_perm(idx_tmp_name, mode))
@@ -527,6 +552,7 @@ static void write_pack_file(void)
if (rename(idx_tmp_name, tmpname))
die("unable to rename temporary index file: %s",
strerror(errno));
+
free(idx_tmp_name);
free(pack_tmp_name);
puts(sha1_to_hex(sha1));
diff --git a/builtin-read-tree.c b/builtin-read-tree.c
index 160456dad1..e9cfd2bbc5 100644
--- a/builtin-read-tree.c
+++ b/builtin-read-tree.c
@@ -13,16 +13,15 @@
#include "dir.h"
#include "builtin.h"
-#define MAX_TREES 8
static int nr_trees;
-static struct tree *trees[MAX_TREES];
+static struct tree *trees[MAX_UNPACK_TREES];
static int list_tree(unsigned char *sha1)
{
struct tree *tree;
- if (nr_trees >= MAX_TREES)
- die("I cannot read more than %d trees", MAX_TREES);
+ if (nr_trees >= MAX_UNPACK_TREES)
+ die("I cannot read more than %d trees", MAX_UNPACK_TREES);
tree = parse_tree_indirect(sha1);
if (!tree)
return -1;
@@ -97,7 +96,7 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
{
int i, newfd, stage = 0;
unsigned char sha1[20];
- struct tree_desc t[MAX_TREES];
+ struct tree_desc t[MAX_UNPACK_TREES];
struct unpack_trees_options opts;
memset(&opts, 0, sizeof(opts));
diff --git a/builtin-remote.c b/builtin-remote.c
index 24e692953b..9c15173032 100644
--- a/builtin-remote.c
+++ b/builtin-remote.c
@@ -207,7 +207,10 @@ static int handle_one_branch(const char *refname,
if (!remote_find_tracking(states->remote, &refspec)) {
struct path_list_item *item;
const char *name = skip_prefix(refspec.src, "refs/heads/");
- if (unsorted_path_list_has_path(&states->tracked, name) ||
+ /* symbolic refs pointing nowhere were handled already */
+ if ((flags & REF_ISSYMREF) ||
+ unsorted_path_list_has_path(&states->tracked,
+ name) ||
unsorted_path_list_has_path(&states->new,
name))
return 0;
diff --git a/builtin-rev-list.c b/builtin-rev-list.c
index d0a1416921..edc0bd35bb 100644
--- a/builtin-rev-list.c
+++ b/builtin-rev-list.c
@@ -33,6 +33,7 @@ static const char rev_list_usage[] =
" ordering output:\n"
" --topo-order\n"
" --date-order\n"
+" --reverse\n"
" formatting output:\n"
" --parents\n"
" --objects | --objects-edge\n"
diff --git a/builtin-send-pack.c b/builtin-send-pack.c
index 930e0fb3fd..bb9c33a650 100644
--- a/builtin-send-pack.c
+++ b/builtin-send-pack.c
@@ -537,7 +537,7 @@ static void verify_remote_names(int nr_heads, const char **heads)
int i;
for (i = 0; i < nr_heads; i++) {
- const char *remote = strchr(heads[i], ':');
+ const char *remote = strrchr(heads[i], ':');
remote = remote ? (remote + 1) : heads[i];
switch (check_ref_format(remote)) {
diff --git a/builtin-shortlog.c b/builtin-shortlog.c
index b22b0edd65..bd795b1db7 100644
--- a/builtin-shortlog.c
+++ b/builtin-shortlog.c
@@ -229,7 +229,9 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
{
struct shortlog log;
struct rev_info rev;
+ int nongit;
+ prefix = setup_git_directory_gently(&nongit);
shortlog_init(&log);
/* since -n is a shadowed rev argument, parse our args first */
@@ -259,7 +261,7 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
die ("unrecognized argument: %s", argv[1]);
/* assume HEAD if from a tty */
- if (!rev.pending.nr && isatty(0))
+ if (!nongit && !rev.pending.nr && isatty(0))
add_head_to_pending(&rev);
if (rev.pending.nr == 0) {
read_from_stdin(&log);
diff --git a/commit.h b/commit.h
index a1e9591426..2f63bc8b2f 100644
--- a/commit.h
+++ b/commit.h
@@ -70,7 +70,7 @@ extern void pretty_print_commit(enum cmit_fmt fmt, const struct commit*,
struct strbuf *,
int abbrev, const char *subject,
const char *after_subject, enum date_mode,
- int non_ascii_present);
+ int need_8bit_cte);
void pp_user_info(const char *what, enum cmit_fmt fmt, struct strbuf *sb,
const char *line, enum date_mode dmode,
const char *encoding);
@@ -80,7 +80,7 @@ void pp_title_line(enum cmit_fmt fmt,
const char *subject,
const char *after_subject,
const char *encoding,
- int plain_non_ascii);
+ int need_8bit_cte);
void pp_remainder(enum cmit_fmt fmt,
const char **msg_p,
struct strbuf *sb,
diff --git a/config.mak.in b/config.mak.in
index 8e1cd5f03d..7868dfd93a 100644
--- a/config.mak.in
+++ b/config.mak.in
@@ -46,4 +46,5 @@ NO_MKDTEMP=@NO_MKDTEMP@
NO_ICONV=@NO_ICONV@
OLD_ICONV=@OLD_ICONV@
NO_DEFLATE_BOUND=@NO_DEFLATE_BOUND@
+FREAD_READS_DIRECTORIES=@FREAD_READS_DIRECTORIES@
SNPRINTF_RETURNS_BOGUS=@SNPRINTF_RETURNS_BOGUS@
diff --git a/configure.ac b/configure.ac
index 287149d304..82584e9153 100644
--- a/configure.ac
+++ b/configure.ac
@@ -327,6 +327,26 @@ else
fi
AC_SUBST(NO_C99_FORMAT)
#
+# Define FREAD_READS_DIRECTORIES if your are on a system which succeeds
+# when attempting to read from an fopen'ed directory.
+AC_CACHE_CHECK([whether system succeeds to read fopen'ed directory],
+ [ac_cv_fread_reads_directories],
+[
+AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
+ [[char c;
+ FILE *f = fopen(".", "r");
+ return f && fread(&c, 1, 1, f)]])],
+ [ac_cv_fread_reads_directories=no],
+ [ac_cv_fread_reads_directories=yes])
+])
+if test $ac_cv_fread_reads_directories = yes; then
+ FREAD_READS_DIRECTORIES=UnfortunatelyYes
+else
+ FREAD_READS_DIRECTORIES=
+fi
+AC_SUBST(FREAD_READS_DIRECTORIES)
+#
# Define SNPRINTF_RETURNS_BOGUS if your are on a system which snprintf()
# or vsnprintf() return -1 instead of number of characters which would
# have been written to the final string if enough space had been available.
diff --git a/contrib/examples/git-rerere.perl b/contrib/examples/git-rerere.perl
new file mode 100755
index 0000000000..4f692091e7
--- /dev/null
+++ b/contrib/examples/git-rerere.perl
@@ -0,0 +1,284 @@
+#!/usr/bin/perl
+#
+# REuse REcorded REsolve. This tool records a conflicted automerge
+# result and its hand resolution, and helps to resolve future
+# automerge that results in the same conflict.
+#
+# To enable this feature, create a directory 'rr-cache' under your
+# .git/ directory.
+
+use Digest;
+use File::Path;
+use File::Copy;
+
+my $git_dir = $::ENV{GIT_DIR} || ".git";
+my $rr_dir = "$git_dir/rr-cache";
+my $merge_rr = "$git_dir/rr-cache/MERGE_RR";
+
+my %merge_rr = ();
+
+sub read_rr {
+ if (!-f $merge_rr) {
+ %merge_rr = ();
+ return;
+ }
+ my $in;
+ local $/ = "\0";
+ open $in, "<$merge_rr" or die "$!: $merge_rr";
+ while (<$in>) {
+ chomp;
+ my ($name, $path) = /^([0-9a-f]{40})\t(.*)$/s;
+ $merge_rr{$path} = $name;
+ }
+ close $in;
+}
+
+sub write_rr {
+ my $out;
+ open $out, ">$merge_rr" or die "$!: $merge_rr";
+ for my $path (sort keys %merge_rr) {
+ my $name = $merge_rr{$path};
+ print $out "$name\t$path\0";
+ }
+ close $out;
+}
+
+sub compute_conflict_name {
+ my ($path) = @_;
+ my @side = ();
+ my $in;
+ open $in, "<$path" or die "$!: $path";
+
+ my $sha1 = Digest->new("SHA-1");
+ my $hunk = 0;
+ while (<$in>) {
+ if (/^<<<<<<< .*/) {
+ $hunk++;
+ @side = ([], undef);
+ }
+ elsif (/^=======$/) {
+ $side[1] = [];
+ }
+ elsif (/^>>>>>>> .*/) {
+ my ($one, $two);
+ $one = join('', @{$side[0]});
+ $two = join('', @{$side[1]});
+ if ($two le $one) {
+ ($one, $two) = ($two, $one);
+ }
+ $sha1->add($one);
+ $sha1->add("\0");
+ $sha1->add($two);
+ $sha1->add("\0");
+ @side = ();
+ }
+ elsif (@side == 0) {
+ next;
+ }
+ elsif (defined $side[1]) {
+ push @{$side[1]}, $_;
+ }
+ else {
+ push @{$side[0]}, $_;
+ }
+ }
+ close $in;
+ return ($sha1->hexdigest, $hunk);
+}
+
+sub record_preimage {
+ my ($path, $name) = @_;
+ my @side = ();
+ my ($in, $out);
+ open $in, "<$path" or die "$!: $path";
+ open $out, ">$name" or die "$!: $name";
+
+ while (<$in>) {
+ if (/^<<<<<<< .*/) {
+ @side = ([], undef);
+ }
+ elsif (/^=======$/) {
+ $side[1] = [];
+ }
+ elsif (/^>>>>>>> .*/) {
+ my ($one, $two);
+ $one = join('', @{$side[0]});
+ $two = join('', @{$side[1]});
+ if ($two le $one) {
+ ($one, $two) = ($two, $one);
+ }
+ print $out "<<<<<<<\n";
+ print $out $one;
+ print $out "=======\n";
+ print $out $two;
+ print $out ">>>>>>>\n";
+ @side = ();
+ }
+ elsif (@side == 0) {
+ print $out $_;
+ }
+ elsif (defined $side[1]) {
+ push @{$side[1]}, $_;
+ }
+ else {
+ push @{$side[0]}, $_;
+ }
+ }
+ close $out;
+ close $in;
+}
+
+sub find_conflict {
+ my $in;
+ local $/ = "\0";
+ my $pid = open($in, '-|');
+ die "$!" unless defined $pid;
+ if (!$pid) {
+ exec(qw(git ls-files -z -u)) or die "$!: ls-files";
+ }
+ my %path = ();
+ my @path = ();
+ while (<$in>) {
+ chomp;
+ my ($mode, $sha1, $stage, $path) =
+ /^([0-7]+) ([0-9a-f]{40}) ([123])\t(.*)$/s;
+ $path{$path} |= (1 << $stage);
+ }
+ close $in;
+ while (my ($path, $status) = each %path) {
+ if ($status == 14) { push @path, $path; }
+ }
+ return @path;
+}
+
+sub merge {
+ my ($name, $path) = @_;
+ record_preimage($path, "$rr_dir/$name/thisimage");
+ unless (system('git', 'merge-file', map { "$rr_dir/$name/${_}image" }
+ qw(this pre post))) {
+ my $in;
+ open $in, "<$rr_dir/$name/thisimage" or
+ die "$!: $name/thisimage";
+ my $out;
+ open $out, ">$path" or die "$!: $path";
+ while (<$in>) { print $out $_; }
+ close $in;
+ close $out;
+ return 1;
+ }
+ return 0;
+}
+
+sub garbage_collect_rerere {
+ # We should allow specifying these from the command line and
+ # that is why the caller gives @ARGV to us, but I am lazy.
+
+ my $cutoff_noresolve = 15; # two weeks
+ my $cutoff_resolve = 60; # two months
+ my @to_remove;
+ while (<$rr_dir/*/preimage>) {
+ my ($dir) = /^(.*)\/preimage$/;
+ my $cutoff = ((-f "$dir/postimage")
+ ? $cutoff_resolve
+ : $cutoff_noresolve);
+ my $age = -M "$_";
+ if ($cutoff <= $age) {
+ push @to_remove, $dir;
+ }
+ }
+ if (@to_remove) {
+ rmtree(\@to_remove);
+ }
+}
+
+-d "$rr_dir" || exit(0);
+
+read_rr();
+
+if (@ARGV) {
+ my $arg = shift @ARGV;
+ if ($arg eq 'clear') {
+ for my $path (keys %merge_rr) {
+ my $name = $merge_rr{$path};
+ if (-d "$rr_dir/$name" &&
+ ! -f "$rr_dir/$name/postimage") {
+ rmtree(["$rr_dir/$name"]);
+ }
+ }
+ unlink $merge_rr;
+ }
+ elsif ($arg eq 'status') {
+ for my $path (keys %merge_rr) {
+ print $path, "\n";
+ }
+ }
+ elsif ($arg eq 'diff') {
+ for my $path (keys %merge_rr) {
+ my $name = $merge_rr{$path};
+ system('diff', ((@ARGV == 0) ? ('-u') : @ARGV),
+ '-L', "a/$path", '-L', "b/$path",
+ "$rr_dir/$name/preimage", $path);
+ }
+ }
+ elsif ($arg eq 'gc') {
+ garbage_collect_rerere(@ARGV);
+ }
+ else {
+ die "$0 unknown command: $arg\n";
+ }
+ exit 0;
+}
+
+my %conflict = map { $_ => 1 } find_conflict();
+
+# MERGE_RR records paths with conflicts immediately after merge
+# failed. Some of the conflicted paths might have been hand resolved
+# in the working tree since then, but the initial run would catch all
+# and register their preimages.
+
+for my $path (keys %conflict) {
+ # This path has conflict. If it is not recorded yet,
+ # record the pre-image.
+ if (!exists $merge_rr{$path}) {
+ my ($name, $hunk) = compute_conflict_name($path);
+ next unless ($hunk);
+ $merge_rr{$path} = $name;
+ if (! -d "$rr_dir/$name") {
+ mkpath("$rr_dir/$name", 0, 0777);
+ print STDERR "Recorded preimage for '$path'\n";
+ record_preimage($path, "$rr_dir/$name/preimage");
+ }
+ }
+}
+
+# Now some of the paths that had conflicts earlier might have been
+# hand resolved. Others may be similar to a conflict already that
+# was resolved before.
+
+for my $path (keys %merge_rr) {
+ my $name = $merge_rr{$path};
+
+ # We could resolve this automatically if we have images.
+ if (-f "$rr_dir/$name/preimage" &&
+ -f "$rr_dir/$name/postimage") {
+ if (merge($name, $path)) {
+ print STDERR "Resolved '$path' using previous resolution.\n";
+ # Then we do not have to worry about this path
+ # anymore.
+ delete $merge_rr{$path};
+ next;
+ }
+ }
+
+ # Let's see if we have resolved it.
+ (undef, my $hunk) = compute_conflict_name($path);
+ next if ($hunk);
+
+ print STDERR "Recorded resolution for '$path'.\n";
+ copy($path, "$rr_dir/$name/postimage");
+ # And we do not have to worry about this path anymore.
+ delete $merge_rr{$path};
+}
+
+# Write out the rest.
+write_rr();
diff --git a/contrib/workdir/git-new-workdir b/contrib/workdir/git-new-workdir
index 2838546d16..7959eab902 100755
--- a/contrib/workdir/git-new-workdir
+++ b/contrib/workdir/git-new-workdir
@@ -63,7 +63,7 @@ mkdir -p "$new_workdir/.git" || die "unable to create \"$new_workdir\"!"
# create the links to the original repo. explictly exclude index, HEAD and
# logs/HEAD from the list since they are purely related to the current working
# directory, and should not be shared.
-for x in config refs logs/refs objects info hooks packed-refs remotes rr-cache
+for x in config refs logs/refs objects info hooks packed-refs remotes rr-cache svn
do
case $x in
*/*)
diff --git a/diff.c b/diff.c
index 00e1590c6e..8022e678d1 100644
--- a/diff.c
+++ b/diff.c
@@ -256,40 +256,41 @@ static int count_lines(const char *data, int size)
return count;
}
-static void print_line_count(int count)
+static void print_line_count(FILE *file, int count)
{
switch (count) {
case 0:
- printf("0,0");
+ fprintf(file, "0,0");
break;
case 1:
- printf("1");
+ fprintf(file, "1");
break;
default:
- printf("1,%d", count);
+ fprintf(file, "1,%d", count);
break;
}
}
-static void copy_file_with_prefix(int prefix, const char *data, int size,
+static void copy_file_with_prefix(FILE *file,
+ int prefix, const char *data, int size,
const char *set, const char *reset)
{
int ch, nl_just_seen = 1;
while (0 < size--) {
ch = *data++;
if (nl_just_seen) {
- fputs(set, stdout);
- putchar(prefix);
+ fputs(set, file);
+ putc(prefix, file);
}
if (ch == '\n') {
nl_just_seen = 1;
- fputs(reset, stdout);
+ fputs(reset, file);
} else
nl_just_seen = 0;
- putchar(ch);
+ putc(ch, file);
}
if (!nl_just_seen)
- printf("%s\n\\ No newline at end of file\n", reset);
+ fprintf(file, "%s\n\\ No newline at end of file\n", reset);
}
static void emit_rewrite_diff(const char *name_a,
@@ -322,17 +323,18 @@ static void emit_rewrite_diff(const char *name_a,
diff_populate_filespec(two, 0);
lc_a = count_lines(one->data, one->size);
lc_b = count_lines(two->data, two->size);
- printf("%s--- %s%s%s\n%s+++ %s%s%s\n%s@@ -",
- metainfo, a_name.buf, name_a_tab, reset,
- metainfo, b_name.buf, name_b_tab, reset, fraginfo);
- print_line_count(lc_a);
- printf(" +");
- print_line_count(lc_b);
- printf(" @@%s\n", reset);
+ fprintf(o->file,
+ "%s--- %s%s%s\n%s+++ %s%s%s\n%s@@ -",
+ metainfo, a_name.buf, name_a_tab, reset,
+ metainfo, b_name.buf, name_b_tab, reset, fraginfo);
+ print_line_count(o->file, lc_a);
+ fprintf(o->file, " +");
+ print_line_count(o->file, lc_b);
+ fprintf(o->file, " @@%s\n", reset);
if (lc_a)
- copy_file_with_prefix('-', one->data, one->size, old, reset);
+ copy_file_with_prefix(o->file, '-', one->data, one->size, old, reset);
if (lc_b)
- copy_file_with_prefix('+', two->data, two->size, new, reset);
+ copy_file_with_prefix(o->file, '+', two->data, two->size, new, reset);
}
static int fill_mmfile(mmfile_t *mf, struct diff_filespec *one)
@@ -372,9 +374,10 @@ static void diff_words_append(char *line, unsigned long len,
struct diff_words_data {
struct xdiff_emit_state xm;
struct diff_words_buffer minus, plus;
+ FILE *file;
};
-static void print_word(struct diff_words_buffer *buffer, int len, int color,
+static void print_word(FILE *file, struct diff_words_buffer *buffer, int len, int color,
int suppress_newline)
{
const char *ptr;
@@ -391,15 +394,15 @@ static void print_word(struct diff_words_buffer *buffer, int len, int color,
len--;
}
- fputs(diff_get_color(1, color), stdout);
- fwrite(ptr, len, 1, stdout);
- fputs(diff_get_color(1, DIFF_RESET), stdout);
+ fputs(diff_get_color(1, color), file);
+ fwrite(ptr, len, 1, file);
+ fputs(diff_get_color(1, DIFF_RESET), file);
if (eol) {
if (suppress_newline)
buffer->suppressed_newline = 1;
else
- putchar('\n');
+ putc('\n', file);
}
}
@@ -409,20 +412,23 @@ static void fn_out_diff_words_aux(void *priv, char *line, unsigned long len)
if (diff_words->minus.suppressed_newline) {
if (line[0] != '+')
- putchar('\n');
+ putc('\n', diff_words->file);
diff_words->minus.suppressed_newline = 0;
}
len--;
switch (line[0]) {
case '-':
- print_word(&diff_words->minus, len, DIFF_FILE_OLD, 1);
+ print_word(diff_words->file,
+ &diff_words->minus, len, DIFF_FILE_OLD, 1);
break;
case '+':
- print_word(&diff_words->plus, len, DIFF_FILE_NEW, 0);
+ print_word(diff_words->file,
+ &diff_words->plus, len, DIFF_FILE_NEW, 0);
break;
case ' ':
- print_word(&diff_words->plus, len, DIFF_PLAIN, 0);
+ print_word(diff_words->file,
+ &diff_words->plus, len, DIFF_PLAIN, 0);
diff_words->minus.current += len;
break;
}
@@ -466,7 +472,7 @@ static void diff_words_show(struct diff_words_data *diff_words)
diff_words->minus.text.size = diff_words->plus.text.size = 0;
if (diff_words->minus.suppressed_newline) {
- putchar('\n');
+ putc('\n', diff_words->file);
diff_words->minus.suppressed_newline = 0;
}
}
@@ -481,6 +487,7 @@ struct emit_callback {
const char **label_path;
struct diff_words_data *diff_words;
int *found_changesp;
+ FILE *file;
};
static void free_diff_words_data(struct emit_callback *ecbdata)
@@ -505,11 +512,11 @@ const char *diff_get_color(int diff_use_color, enum color_diff ix)
return "";
}
-static void emit_line(const char *set, const char *reset, const char *line, int len)
+static void emit_line(FILE *file, const char *set, const char *reset, const char *line, int len)
{
- fputs(set, stdout);
- fwrite(line, len, 1, stdout);
- fputs(reset, stdout);
+ fputs(set, file);
+ fwrite(line, len, 1, file);
+ fputs(reset, file);
}
static void emit_add_line(const char *reset, struct emit_callback *ecbdata, const char *line, int len)
@@ -518,13 +525,13 @@ static void emit_add_line(const char *reset, struct emit_callback *ecbdata, cons
const char *set = diff_get_color(ecbdata->color_diff, DIFF_FILE_NEW);
if (!*ws)
- emit_line(set, reset, line, len);
+ emit_line(ecbdata->file, set, reset, line, len);
else {
/* Emit just the prefix, then the rest. */
- emit_line(set, reset, line, ecbdata->nparents);
+ emit_line(ecbdata->file, set, reset, line, ecbdata->nparents);
(void)check_and_emit_line(line + ecbdata->nparents,
len - ecbdata->nparents, ecbdata->ws_rule,
- stdout, set, reset, ws);
+ ecbdata->file, set, reset, ws);
}
}
@@ -563,10 +570,10 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
name_a_tab = strchr(ecbdata->label_path[0], ' ') ? "\t" : "";
name_b_tab = strchr(ecbdata->label_path[1], ' ') ? "\t" : "";
- printf("%s--- %s%s%s\n",
- meta, ecbdata->label_path[0], reset, name_a_tab);
- printf("%s+++ %s%s%s\n",
- meta, ecbdata->label_path[1], reset, name_b_tab);
+ fprintf(ecbdata->file, "%s--- %s%s%s\n",
+ meta, ecbdata->label_path[0], reset, name_a_tab);
+ fprintf(ecbdata->file, "%s+++ %s%s%s\n",
+ meta, ecbdata->label_path[1], reset, name_b_tab);
ecbdata->label_path[0] = ecbdata->label_path[1] = NULL;
}
@@ -578,15 +585,16 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
if (2 <= i && i < len && line[i] == ' ') {
ecbdata->nparents = i - 1;
len = sane_truncate_line(ecbdata, line, len);
- emit_line(diff_get_color(ecbdata->color_diff, DIFF_FRAGINFO),
+ emit_line(ecbdata->file,
+ diff_get_color(ecbdata->color_diff, DIFF_FRAGINFO),
reset, line, len);
if (line[len-1] != '\n')
- putchar('\n');
+ putc('\n', ecbdata->file);
return;
}
if (len < ecbdata->nparents) {
- emit_line(reset, reset, line, len);
+ emit_line(ecbdata->file, reset, reset, line, len);
return;
}
@@ -609,7 +617,7 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
diff_words_show(ecbdata->diff_words);
line++;
len--;
- emit_line(plain, reset, line, len);
+ emit_line(ecbdata->file, plain, reset, line, len);
return;
}
for (i = 0; i < ecbdata->nparents && len; i++) {
@@ -620,7 +628,8 @@ static void fn_out_consume(void *priv, char *line, unsigned long len)
}
if (color != DIFF_FILE_NEW) {
- emit_line(diff_get_color(ecbdata->color_diff, color),
+ emit_line(ecbdata->file,
+ diff_get_color(ecbdata->color_diff, color),
reset, line, len);
return;
}
@@ -759,20 +768,21 @@ static int scale_linear(int it, int width, int max_change)
return ((it - 1) * (width - 1) + max_change - 1) / (max_change - 1);
}
-static void show_name(const char *prefix, const char *name, int len,
+static void show_name(FILE *file,
+ const char *prefix, const char *name, int len,
const char *reset, const char *set)
{
- printf(" %s%s%-*s%s |", set, prefix, len, name, reset);
+ fprintf(file, " %s%s%-*s%s |", set, prefix, len, name, reset);
}
-static void show_graph(char ch, int cnt, const char *set, const char *reset)
+static void show_graph(FILE *file, char ch, int cnt, const char *set, const char *reset)
{
if (cnt <= 0)
return;
- printf("%s", set);
+ fprintf(file, "%s", set);
while (cnt--)
- putchar(ch);
- printf("%s", reset);
+ putc(ch, file);
+ fprintf(file, "%s", reset);
}
static void fill_print_name(struct diffstat_file *file)
@@ -877,18 +887,18 @@ static void show_stats(struct diffstat_t* data, struct diff_options *options)
}
if (data->files[i]->is_binary) {
- show_name(prefix, name, len, reset, set);
- printf(" Bin ");
- printf("%s%d%s", del_c, deleted, reset);
- printf(" -> ");
- printf("%s%d%s", add_c, added, reset);
- printf(" bytes");
- printf("\n");
+ show_name(options->file, prefix, name, len, reset, set);
+ fprintf(options->file, " Bin ");
+ fprintf(options->file, "%s%d%s", del_c, deleted, reset);
+ fprintf(options->file, " -> ");
+ fprintf(options->file, "%s%d%s", add_c, added, reset);
+ fprintf(options->file, " bytes");
+ fprintf(options->file, "\n");
continue;
}
else if (data->files[i]->is_unmerged) {
- show_name(prefix, name, len, reset, set);
- printf(" Unmerged\n");
+ show_name(options->file, prefix, name, len, reset, set);
+ fprintf(options->file, " Unmerged\n");
continue;
}
else if (!data->files[i]->is_renamed &&
@@ -911,17 +921,18 @@ static void show_stats(struct diffstat_t* data, struct diff_options *options)
del = scale_linear(del, width, max_change);
total = add + del;
}
- show_name(prefix, name, len, reset, set);
- printf("%5d ", added + deleted);
- show_graph('+', add, add_c, reset);
- show_graph('-', del, del_c, reset);
- putchar('\n');
- }
- printf("%s %d files changed, %d insertions(+), %d deletions(-)%s\n",
+ show_name(options->file, prefix, name, len, reset, set);
+ fprintf(options->file, "%5d ", added + deleted);
+ show_graph(options->file, '+', add, add_c, reset);
+ show_graph(options->file, '-', del, del_c, reset);
+ fprintf(options->file, "\n");
+ }
+ fprintf(options->file,
+ "%s %d files changed, %d insertions(+), %d deletions(-)%s\n",
set, total_files, adds, dels, reset);
}
-static void show_shortstats(struct diffstat_t* data)
+static void show_shortstats(struct diffstat_t* data, struct diff_options *options)
{
int i, adds = 0, dels = 0, total_files = data->nr;
@@ -942,7 +953,7 @@ static void show_shortstats(struct diffstat_t* data)
}
}
}
- printf(" %d files changed, %d insertions(+), %d deletions(-)\n",
+ fprintf(options->file, " %d files changed, %d insertions(+), %d deletions(-)\n",
total_files, adds, dels);
}
@@ -957,24 +968,25 @@ static void show_numstat(struct diffstat_t* data, struct diff_options *options)
struct diffstat_file *file = data->files[i];
if (file->is_binary)
- printf("-\t-\t");
+ fprintf(options->file, "-\t-\t");
else
- printf("%d\t%d\t", file->added, file->deleted);
+ fprintf(options->file,
+ "%d\t%d\t", file->added, file->deleted);
if (options->line_termination) {
fill_print_name(file);
if (!file->is_renamed)
- write_name_quoted(file->name, stdout,
+ write_name_quoted(file->name, options->file,
options->line_termination);
else {
- fputs(file->print_name, stdout);
- putchar(options->line_termination);
+ fputs(file->print_name, options->file);
+ putc(options->line_termination, options->file);
}
} else {
if (file->is_renamed) {
- putchar('\0');
- write_name_quoted(file->from_name, stdout, '\0');
+ putc('\0', options->file);
+ write_name_quoted(file->from_name, options->file, '\0');
}
- write_name_quoted(file->name, stdout, '\0');
+ write_name_quoted(file->name, options->file, '\0');
}
}
}
@@ -984,7 +996,7 @@ struct diffstat_dir {
int nr, percent, cumulative;
};
-static long gather_dirstat(struct diffstat_dir *dir, unsigned long changed, const char *base, int baselen)
+static long gather_dirstat(FILE *file, struct diffstat_dir *dir, unsigned long changed, const char *base, int baselen)
{
unsigned long this_dir = 0;
unsigned int sources = 0;
@@ -1002,7 +1014,7 @@ static long gather_dirstat(struct diffstat_dir *dir, unsigned long changed, cons
slash = strchr(f->name + baselen, '/');
if (slash) {
int newbaselen = slash + 1 - f->name;
- this = gather_dirstat(dir, changed, f->name, newbaselen);
+ this = gather_dirstat(file, dir, changed, f->name, newbaselen);
sources++;
} else {
if (f->is_unmerged || f->is_binary)
@@ -1027,7 +1039,7 @@ static long gather_dirstat(struct diffstat_dir *dir, unsigned long changed, cons
if (permille) {
int percent = permille / 10;
if (percent >= dir->percent) {
- printf("%4d.%01d%% %.*s\n", percent, permille % 10, baselen, base);
+ fprintf(file, "%4d.%01d%% %.*s\n", percent, permille % 10, baselen, base);
if (!dir->cumulative)
return 0;
}
@@ -1060,7 +1072,7 @@ static void show_dirstat(struct diffstat_t *data, struct diff_options *options)
dir.nr = data->nr;
dir.percent = options->dirstat_percent;
dir.cumulative = options->output_format & DIFF_FORMAT_CUMULATIVE;
- gather_dirstat(&dir, changed, "", 0);
+ gather_dirstat(options->file, &dir, changed, "", 0);
}
static void free_diffstat_info(struct diffstat_t *diffstat)
@@ -1083,6 +1095,7 @@ struct checkdiff_t {
int lineno, color_diff;
unsigned ws_rule;
unsigned status;
+ FILE *file;
};
static void checkdiff_consume(void *priv, char *line, unsigned long len)
@@ -1100,11 +1113,11 @@ static void checkdiff_consume(void *priv, char *line, unsigned long len)
if (!data->status)
return;
err = whitespace_error_string(data->status);
- printf("%s:%d: %s.\n", data->filename, data->lineno, err);
+ fprintf(data->file, "%s:%d: %s.\n", data->filename, data->lineno, err);
free(err);
- emit_line(set, reset, line, 1);
+ emit_line(data->file, set, reset, line, 1);
(void)check_and_emit_line(line + 1, len - 1, data->ws_rule,
- stdout, set, reset, ws);
+ data->file, set, reset, ws);
} else if (line[0] == ' ')
data->lineno++;
else if (line[0] == '@') {
@@ -1140,7 +1153,7 @@ static unsigned char *deflate_it(char *data,
return deflated;
}
-static void emit_binary_diff_body(mmfile_t *one, mmfile_t *two)
+static void emit_binary_diff_body(FILE *file, mmfile_t *one, mmfile_t *two)
{
void *cp;
void *delta;
@@ -1169,13 +1182,13 @@ static void emit_binary_diff_body(mmfile_t *one, mmfile_t *two)
}
if (delta && delta_size < deflate_size) {
- printf("delta %lu\n", orig_size);
+ fprintf(file, "delta %lu\n", orig_size);
free(deflated);
data = delta;
data_size = delta_size;
}
else {
- printf("literal %lu\n", two->size);
+ fprintf(file, "literal %lu\n", two->size);
free(delta);
data = deflated;
data_size = deflate_size;
@@ -1193,17 +1206,18 @@ static void emit_binary_diff_body(mmfile_t *one, mmfile_t *two)
line[0] = bytes - 26 + 'a' - 1;
encode_85(line + 1, cp, bytes);
cp = (char *) cp + bytes;
- puts(line);
+ fputs(line, file);
+ fputc('\n', file);
}
- printf("\n");
+ fprintf(file, "\n");
free(data);
}
-static void emit_binary_diff(mmfile_t *one, mmfile_t *two)
+static void emit_binary_diff(FILE *file, mmfile_t *one, mmfile_t *two)
{
- printf("GIT binary patch\n");
- emit_binary_diff_body(one, two);
- emit_binary_diff_body(two, one);
+ fprintf(file, "GIT binary patch\n");
+ emit_binary_diff_body(file, one, two);
+ emit_binary_diff_body(file, two, one);
}
static void setup_diff_attr_check(struct git_attr_check *check)
@@ -1334,25 +1348,25 @@ static void builtin_diff(const char *name_a,
b_two = quote_two(o->b_prefix, name_b + (*name_b == '/'));
lbl[0] = DIFF_FILE_VALID(one) ? a_one : "/dev/null";
lbl[1] = DIFF_FILE_VALID(two) ? b_two : "/dev/null";
- printf("%sdiff --git %s %s%s\n", set, a_one, b_two, reset);
+ fprintf(o->file, "%sdiff --git %s %s%s\n", set, a_one, b_two, reset);
if (lbl[0][0] == '/') {
/* /dev/null */
- printf("%snew file mode %06o%s\n", set, two->mode, reset);
+ fprintf(o->file, "%snew file mode %06o%s\n", set, two->mode, reset);
if (xfrm_msg && xfrm_msg[0])
- printf("%s%s%s\n", set, xfrm_msg, reset);
+ fprintf(o->file, "%s%s%s\n", set, xfrm_msg, reset);
}
else if (lbl[1][0] == '/') {
- printf("%sdeleted file mode %06o%s\n", set, one->mode, reset);
+ fprintf(o->file, "%sdeleted file mode %06o%s\n", set, one->mode, reset);
if (xfrm_msg && xfrm_msg[0])
- printf("%s%s%s\n", set, xfrm_msg, reset);
+ fprintf(o->file, "%s%s%s\n", set, xfrm_msg, reset);
}
else {
if (one->mode != two->mode) {
- printf("%sold mode %06o%s\n", set, one->mode, reset);
- printf("%snew mode %06o%s\n", set, two->mode, reset);
+ fprintf(o->file, "%sold mode %06o%s\n", set, one->mode, reset);
+ fprintf(o->file, "%snew mode %06o%s\n", set, two->mode, reset);
}
if (xfrm_msg && xfrm_msg[0])
- printf("%s%s%s\n", set, xfrm_msg, reset);
+ fprintf(o->file, "%s%s%s\n", set, xfrm_msg, reset);
/*
* we do not run diff between different kind
* of objects.
@@ -1376,10 +1390,10 @@ static void builtin_diff(const char *name_a,
!memcmp(mf1.ptr, mf2.ptr, mf1.size))
goto free_ab_and_return;
if (DIFF_OPT_TST(o, BINARY))
- emit_binary_diff(&mf1, &mf2);
+ emit_binary_diff(o->file, &mf1, &mf2);
else
- printf("Binary files %s and %s differ\n",
- lbl[0], lbl[1]);
+ fprintf(o->file, "Binary files %s and %s differ\n",
+ lbl[0], lbl[1]);
o->found_changes = 1;
}
else {
@@ -1401,6 +1415,7 @@ static void builtin_diff(const char *name_a,
ecbdata.color_diff = DIFF_OPT_TST(o, COLOR_DIFF);
ecbdata.found_changesp = &o->found_changes;
ecbdata.ws_rule = whitespace_rule(name_b ? name_b : name_a);
+ ecbdata.file = o->file;
xpp.flags = XDF_NEED_MINIMAL | o->xdl_opts;
xecfg.ctxlen = o->context;
xecfg.flags = XDL_EMIT_FUNCNAMES;
@@ -1415,9 +1430,11 @@ static void builtin_diff(const char *name_a,
ecb.outf = xdiff_outf;
ecb.priv = &ecbdata;
ecbdata.xm.consume = fn_out_consume;
- if (DIFF_OPT_TST(o, COLOR_DIFF_WORDS))
+ if (DIFF_OPT_TST(o, COLOR_DIFF_WORDS)) {
ecbdata.diff_words =
xcalloc(1, sizeof(struct diff_words_data));
+ ecbdata.diff_words->file = o->file;
+ }
xdi_diff(&mf1, &mf2, &xpp, &xecfg, &ecb);
if (DIFF_OPT_TST(o, COLOR_DIFF_WORDS))
free_diff_words_data(&ecbdata);
@@ -1496,6 +1513,7 @@ static void builtin_checkdiff(const char *name_a, const char *name_b,
data.lineno = 0;
data.color_diff = DIFF_OPT_TST(o, COLOR_DIFF);
data.ws_rule = whitespace_rule(attr_path);
+ data.file = o->file;
if (fill_mmfile(&mf1, one) < 0 || fill_mmfile(&mf2, two) < 0)
die("unable to read files to diff");
@@ -1966,7 +1984,7 @@ static void run_diff_cmd(const char *pgm,
builtin_diff(name, other ? other : name,
one, two, xfrm_msg, o, complete_rewrite);
else
- printf("* Unmerged path %s\n", name);
+ fprintf(o->file, "* Unmerged path %s\n", name);
}
static void diff_fill_sha1_info(struct diff_filespec *one)
@@ -2157,6 +2175,9 @@ static void run_checkdiff(struct diff_filepair *p, struct diff_options *o)
void diff_setup(struct diff_options *options)
{
memset(options, 0, sizeof(*options));
+
+ options->file = stdout;
+
options->line_termination = '\n';
options->break_opt = -1;
options->rename_limit = -1;
@@ -2470,7 +2491,10 @@ int diff_opt_parse(struct diff_options *options, const char **av, int ac)
options->b_prefix = arg + 13;
else if (!strcmp(arg, "--no-prefix"))
options->a_prefix = options->b_prefix = "";
- else
+ else if (!prefixcmp(arg, "--output=")) {
+ options->file = fopen(arg + strlen("--output="), "w");
+ options->close_file = 1;
+ } else
return 0;
return 1;
}
@@ -2599,15 +2623,15 @@ static void diff_flush_raw(struct diff_filepair *p, struct diff_options *opt)
int inter_name_termination = line_termination ? '\t' : '\0';
if (!(opt->output_format & DIFF_FORMAT_NAME_STATUS)) {
- printf(":%06o %06o %s ", p->one->mode, p->two->mode,
- diff_unique_abbrev(p->one->sha1, opt->abbrev));
- printf("%s ", diff_unique_abbrev(p->two->sha1, opt->abbrev));
+ fprintf(opt->file, ":%06o %06o %s ", p->one->mode, p->two->mode,
+ diff_unique_abbrev(p->one->sha1, opt->abbrev));
+ fprintf(opt->file, "%s ", diff_unique_abbrev(p->two->sha1, opt->abbrev));
}
if (p->score) {
- printf("%c%03d%c", p->status, similarity_index(p),
- inter_name_termination);
+ fprintf(opt->file, "%c%03d%c", p->status, similarity_index(p),
+ inter_name_termination);
} else {
- printf("%c%c", p->status, inter_name_termination);
+ fprintf(opt->file, "%c%c", p->status, inter_name_termination);
}
if (p->status == DIFF_STATUS_COPIED ||
@@ -2616,14 +2640,14 @@ static void diff_flush_raw(struct diff_filepair *p, struct diff_options *opt)
name_a = p->one->path;
name_b = p->two->path;
strip_prefix(opt->prefix_length, &name_a, &name_b);
- write_name_quoted(name_a, stdout, inter_name_termination);
- write_name_quoted(name_b, stdout, line_termination);
+ write_name_quoted(name_a, opt->file, inter_name_termination);
+ write_name_quoted(name_b, opt->file, line_termination);
} else {
const char *name_a, *name_b;
name_a = p->one->mode ? p->one->path : p->two->path;
name_b = NULL;
strip_prefix(opt->prefix_length, &name_a, &name_b);
- write_name_quoted(name_a, stdout, line_termination);
+ write_name_quoted(name_a, opt->file, line_termination);
}
}
@@ -2825,62 +2849,62 @@ static void flush_one_pair(struct diff_filepair *p, struct diff_options *opt)
name_a = p->two->path;
name_b = NULL;
strip_prefix(opt->prefix_length, &name_a, &name_b);
- write_name_quoted(name_a, stdout, opt->line_termination);
+ write_name_quoted(name_a, opt->file, opt->line_termination);
}
}
-static void show_file_mode_name(const char *newdelete, struct diff_filespec *fs)
+static void show_file_mode_name(FILE *file, const char *newdelete, struct diff_filespec *fs)
{
if (fs->mode)
- printf(" %s mode %06o ", newdelete, fs->mode);
+ fprintf(file, " %s mode %06o ", newdelete, fs->mode);
else
- printf(" %s ", newdelete);
- write_name_quoted(fs->path, stdout, '\n');
+ fprintf(file, " %s ", newdelete);
+ write_name_quoted(fs->path, file, '\n');
}
-static void show_mode_change(struct diff_filepair *p, int show_name)
+static void show_mode_change(FILE *file, struct diff_filepair *p, int show_name)
{
if (p->one->mode && p->two->mode && p->one->mode != p->two->mode) {
- printf(" mode change %06o => %06o%c", p->one->mode, p->two->mode,
+ fprintf(file, " mode change %06o => %06o%c", p->one->mode, p->two->mode,
show_name ? ' ' : '\n');
if (show_name) {
- write_name_quoted(p->two->path, stdout, '\n');
+ write_name_quoted(p->two->path, file, '\n');
}
}
}
-static void show_rename_copy(const char *renamecopy, struct diff_filepair *p)
+static void show_rename_copy(FILE *file, const char *renamecopy, struct diff_filepair *p)
{
char *names = pprint_rename(p->one->path, p->two->path);
- printf(" %s %s (%d%%)\n", renamecopy, names, similarity_index(p));
+ fprintf(file, " %s %s (%d%%)\n", renamecopy, names, similarity_index(p));
free(names);
- show_mode_change(p, 0);
+ show_mode_change(file, p, 0);
}
-static void diff_summary(struct diff_filepair *p)
+static void diff_summary(FILE *file, struct diff_filepair *p)
{
switch(p->status) {
case DIFF_STATUS_DELETED:
- show_file_mode_name("delete", p->one);
+ show_file_mode_name(file, "delete", p->one);
break;
case DIFF_STATUS_ADDED:
- show_file_mode_name("create", p->two);
+ show_file_mode_name(file, "create", p->two);
break;
case DIFF_STATUS_COPIED:
- show_rename_copy("copy", p);
+ show_rename_copy(file, "copy", p);
break;
case DIFF_STATUS_RENAMED:
- show_rename_copy("rename", p);
+ show_rename_copy(file, "rename", p);
break;
default:
if (p->score) {
- fputs(" rewrite ", stdout);
- write_name_quoted(p->two->path, stdout, ' ');
- printf("(%d%%)\n", similarity_index(p));
+ fputs(" rewrite ", file);
+ write_name_quoted(p->two->path, file, ' ');
+ fprintf(file, "(%d%%)\n", similarity_index(p));
}
- show_mode_change(p, !p->score);
+ show_mode_change(file, p, !p->score);
break;
}
}
@@ -3088,14 +3112,14 @@ void diff_flush(struct diff_options *options)
if (output_format & DIFF_FORMAT_DIFFSTAT)
show_stats(&diffstat, options);
if (output_format & DIFF_FORMAT_SHORTSTAT)
- show_shortstats(&diffstat);
+ show_shortstats(&diffstat, options);
free_diffstat_info(&diffstat);
separator++;
}
if (output_format & DIFF_FORMAT_SUMMARY && !is_summary_empty(q)) {
for (i = 0; i < q->nr; i++)
- diff_summary(q->queue[i]);
+ diff_summary(options->file, q->queue[i]);
separator++;
}
@@ -3103,9 +3127,9 @@ void diff_flush(struct diff_options *options)
if (separator) {
if (options->stat_sep) {
/* attach patch instead of inline */
- fputs(options->stat_sep, stdout);
+ fputs(options->stat_sep, options->file);
} else {
- putchar(options->line_termination);
+ putc(options->line_termination, options->file);
}
}
@@ -3125,6 +3149,8 @@ free_queue:
free(q->queue);
q->queue = NULL;
q->nr = q->alloc = 0;
+ if (options->close_file)
+ fclose(options->file);
}
static void diffcore_apply_filter(const char *filter)
diff --git a/diff.h b/diff.h
index 9a652e7f38..f2c77391a9 100644
--- a/diff.h
+++ b/diff.h
@@ -98,6 +98,9 @@ struct diff_options {
/* this is set by diffcore for DIFF_FORMAT_PATCH */
int found_changes;
+ FILE *file;
+ int close_file;
+
int nr_paths;
const char **paths;
int *pathlens;
diff --git a/entry.c b/entry.c
index 44f4b897d4..222aaa374b 100644
--- a/entry.c
+++ b/entry.c
@@ -218,7 +218,6 @@ int checkout_entry(struct cache_entry *ce, const struct checkout *state, char *t
* to emulate by hand - much easier to let the system
* just do the right thing)
*/
- unlink(path);
if (S_ISDIR(st.st_mode)) {
/* If it is a gitlink, leave it alone! */
if (S_ISGITLINK(ce->ce_mode))
@@ -226,7 +225,8 @@ int checkout_entry(struct cache_entry *ce, const struct checkout *state, char *t
if (!state->force)
return error("%s is a directory", path);
remove_subtree(path);
- }
+ } else if (unlink(path))
+ return error("unable to unlink old '%s' (%s)", path, strerror(errno));
} else if (state->not_new)
return 0;
create_directories(path, state);
diff --git a/fast-import.c b/fast-import.c
index 655913ddb2..73e5439d97 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -1516,6 +1516,8 @@ static int update_branch(struct branch *b)
struct ref_lock *lock;
unsigned char old_sha1[20];
+ if (is_null_sha1(b->sha1))
+ return 0;
if (read_ref(b->name, old_sha1))
hashclr(old_sha1);
lock = lock_any_ref_for_update(b->name, old_sha1, 0);
diff --git a/git-am.sh b/git-am.sh
index 1f6b5e02c5..ac5c388060 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -357,7 +357,7 @@ do
LAST_SIGNED_OFF_BY=`
sed -ne '/^Signed-off-by: /p' \
"$dotest/msg-clean" |
- tail -n 1
+ sed -ne '$p'
`
ADD_SIGNOFF=`
test "$LAST_SIGNED_OFF_BY" = "$SIGNOFF" || {
diff --git a/git-bisect.sh b/git-bisect.sh
index 2c32d0b9eb..48fb92d612 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -293,14 +293,14 @@ bisect_next() {
bisect_next_check good
skip=$(git for-each-ref --format='%(objectname)' \
- "refs/bisect/skip-*" | tr '[\012]' ' ') || exit
+ "refs/bisect/skip-*" | tr '\012' ' ') || exit
BISECT_OPT=''
test -n "$skip" && BISECT_OPT='--bisect-all'
bad=$(git rev-parse --verify refs/bisect/bad) &&
good=$(git for-each-ref --format='^%(objectname)' \
- "refs/bisect/good-*" | tr '[\012]' ' ') &&
+ "refs/bisect/good-*" | tr '\012' ' ') &&
eval="git rev-list --bisect-vars $BISECT_OPT $good $bad --" &&
eval="$eval $(cat "$GIT_DIR/BISECT_NAMES")" &&
eval=$(filter_skipped "$eval" "$skip") &&
diff --git a/git-compat-util.h b/git-compat-util.h
index 73968e02b0..a18235e6d0 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -68,6 +68,7 @@
#include <sys/poll.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
+#include <utime.h>
#ifndef NO_SYS_SELECT_H
#include <sys/select.h>
#endif
diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index 47f116f37e..95c5eec51e 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -735,7 +735,7 @@ sub commit {
next unless $logmsg =~ $rx && $1;
my $mparent = $1 eq 'HEAD' ? $opt_o : $1;
if (my $sha1 = get_headref("$remote/$mparent")) {
- push @commit_args, '-p', $mparent;
+ push @commit_args, '-p', "$remote/$mparent";
print "Merge parent branch: $mparent\n" if $opt_v;
}
}
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index 010353ad82..22b6ed4a78 100755
--- a/git-filter-branch.sh
+++ b/git-filter-branch.sh
@@ -58,8 +58,8 @@ eval "$functions"
# "author" or "committer
set_ident () {
- lid="$(echo "$1" | tr "A-Z" "a-z")"
- uid="$(echo "$1" | tr "a-z" "A-Z")"
+ lid="$(echo "$1" | tr "[A-Z]" "[a-z]")"
+ uid="$(echo "$1" | tr "[a-z]" "[A-Z]")"
pick_id_script='
/^'$lid' /{
s/'\''/'\''\\'\'\''/g
@@ -281,7 +281,7 @@ while read commit parents; do
die "Could not checkout the index"
# files that $commit removed are now still in the working tree;
# remove them, else they would be added again
- git ls-files -z --others | xargs -0 rm -f
+ git clean -q -f -x
eval "$filter_tree" < /dev/null ||
die "tree filter failed: $filter_tree"
@@ -309,7 +309,7 @@ while read commit parents; do
sed -e '1,/^$/d' <../commit | \
eval "$filter_msg" > ../message ||
die "msg filter failed: $filter_msg"
- sh -c "$filter_commit" "git commit-tree" \
+ @SHELL_PATH@ -c "$filter_commit" "git commit-tree" \
$(git write-tree) $parentstr < ../message > ../map/$commit
done <../revs
diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
index 3a58cd2c6b..5e97fbf03e 100755
--- a/git-gui/git-gui.sh
+++ b/git-gui/git-gui.sh
@@ -2089,7 +2089,7 @@ if {[is_enabled transport]} {
if {[is_MacOSX]} {
# -- Apple Menu (Mac OS X only)
#
- .mbar add cascade -label [mc Apple] -menu .mbar.apple
+ .mbar add cascade -label Apple -menu .mbar.apple
menu .mbar.apple
.mbar.apple add command -label [mc "About %s" [appname]] \
diff --git a/git-gui/lib/choose_repository.tcl b/git-gui/lib/choose_repository.tcl
index 0adcf9d958..ae4a4cd0a8 100644
--- a/git-gui/lib/choose_repository.tcl
+++ b/git-gui/lib/choose_repository.tcl
@@ -38,7 +38,7 @@ constructor pick {} {
menu $m_repo
if {[is_MacOSX]} {
- $w.mbar add cascade -label [mc Apple] -menu .mbar.apple
+ $w.mbar add cascade -label Apple -menu .mbar.apple
menu $w.mbar.apple
$w.mbar.apple add command \
-label [mc "About %s" [appname]] \
diff --git a/git-gui/po/README b/git-gui/po/README
index 9d8b7364fd..5e77a7d7d2 100644
--- a/git-gui/po/README
+++ b/git-gui/po/README
@@ -178,18 +178,6 @@ step.
$ msgmerge -U po/af.po po/git-gui.pot
-[NEEDSWORK: who is responsible for updating po/git-gui.pot file by
-running xgettext? IIRC, Christian recommended against running it
-nilly-willy because it can become a source of unnecessary merge
-conflicts. Perhaps we should mention something like "
-
-The po/git-gui.pot file is updated by the internationalization
-coordinator from time to time. You _could_ update it yourself, but
-translators are discouraged from doing so because we would want all
-language teams to be working off of the same version of git-gui.pot.
-
-" here?]
-
This updates po/af.po (again, replace "af" with your language
code) so that it contains msgid lines (i.e. the original) that
your translation did not have before. There are a few things to
@@ -207,3 +195,53 @@ watch out for:
- New messages added to the software will have msgstr lines with empty
strings. You would need to translate them.
+
+The po/git-gui.pot file is updated by the internationalization
+coordinator from time to time. You _could_ update it yourself, but
+translators are discouraged from doing so because we would want all
+language teams to be working off of the same version of git-gui.pot.
+
+****************************************************************
+
+This section is a note to the internationalization coordinator, and
+translators do not have to worry about it too much.
+
+The message template file po/git-gui.pot needs to be kept up to date
+relative to the software the translations apply to, and it is the
+responsibility of the internationalization coordinator.
+
+When updating po/git-gui.pot file, however, _never_ run "msgmerge -U
+po/xx.po" for individual language translations, unless you are absolutely
+sure that there is no outstanding work on translation for language xx.
+Doing so will create unnecessary merge conflicts and force needless
+re-translation on translators. The translator however may not have access
+to the msgmerge tool, in which case the coordinator may run it for the
+translator as a service.
+
+But mistakes do happen. Suppose a translation was based on an older
+version X, the POT file was updated at version Y and then msgmerge was run
+at version Z for the language, and the translator sent in a patch based on
+version X:
+
+ ? translated
+ /
+ ---X---Y---Z (master)
+
+The coordinator could recover from such a mistake by first applying the
+patch to X, replace the translated file in Z, and then running msgmerge
+again based on the updated POT file and commit the result. The sequence
+would look like this:
+
+ $ git checkout X
+ $ git am -s xx.patch
+ $ git checkout master
+ $ git checkout HEAD@{1} po/xx.po
+ $ msgmerge -U po/xx.po po/git-gui.pot
+ $ git commit -c HEAD@{1} po/xx.po
+
+State in the message that the translated messages are based on a slightly
+older version, and msgmerge was run to incorporate changes to message
+templates from the updated POT file. The result needs to be further
+translated, but at least the messages that were updated by the patch that
+were not changed by the POT update will survive the process and do not
+need to be re-translated.
diff --git a/git-gui/po/de.po b/git-gui/po/de.po
index e84e1c7e08..022b816ae1 100644
--- a/git-gui/po/de.po
+++ b/git-gui/po/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-02-16 21:24+0100\n"
+"POT-Creation-Date: 2008-03-14 07:18+0100\n"
"PO-Revision-Date: 2008-02-16 21:52+0100\n"
"Last-Translator: Christian Stimming <stimming@tuhh.de>\n"
"Language-Team: German\n"
@@ -15,33 +15,33 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: git-gui.sh:41 git-gui.sh:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
-#: git-gui.sh:733
+#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+#: git-gui.sh:763
msgid "git-gui: fatal error"
msgstr "git-gui: Programmfehler"
-#: git-gui.sh:565
+#: git-gui.sh:593
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "Ungültige Zeichensatz-Angabe in %s:"
-#: git-gui.sh:590
+#: git-gui.sh:620
msgid "Main Font"
msgstr "Programmschriftart"
-#: git-gui.sh:591
+#: git-gui.sh:621
msgid "Diff/Console Font"
msgstr "Vergleich-Schriftart"
-#: git-gui.sh:605
+#: git-gui.sh:635
msgid "Cannot find git in PATH."
msgstr "Git kann im PATH nicht gefunden werden."
-#: git-gui.sh:632
+#: git-gui.sh:662
msgid "Cannot parse Git version string:"
msgstr "Git Versionsangabe kann nicht erkannt werden:"
-#: git-gui.sh:650
+#: git-gui.sh:680
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
@@ -60,81 +60,81 @@ msgstr ""
"\n"
"Soll angenommen werden, »%s« sei Version 1.5.0?\n"
-#: git-gui.sh:888
+#: git-gui.sh:918
msgid "Git directory not found:"
msgstr "Git-Verzeichnis nicht gefunden:"
-#: git-gui.sh:895
+#: git-gui.sh:925
msgid "Cannot move to top of working directory:"
msgstr ""
"Es konnte nicht in das oberste Verzeichnis der Arbeitskopie gewechselt "
"werden:"
-#: git-gui.sh:902
+#: git-gui.sh:932
msgid "Cannot use funny .git directory:"
msgstr "Unerwartete Struktur des .git Verzeichnis:"
-#: git-gui.sh:907
+#: git-gui.sh:937
msgid "No working directory"
msgstr "Kein Arbeitsverzeichnis"
-#: git-gui.sh:1054
+#: git-gui.sh:1084 lib/checkout_op.tcl:283
msgid "Refreshing file status..."
msgstr "Dateistatus aktualisieren..."
-#: git-gui.sh:1119
+#: git-gui.sh:1149
msgid "Scanning for modified files ..."
msgstr "Nach geänderten Dateien suchen..."
-#: git-gui.sh:1294 lib/browser.tcl:245
+#: git-gui.sh:1324 lib/browser.tcl:246
msgid "Ready."
msgstr "Bereit."
-#: git-gui.sh:1560
+#: git-gui.sh:1590
msgid "Unmodified"
msgstr "Unverändert"
-#: git-gui.sh:1562
+#: git-gui.sh:1592
msgid "Modified, not staged"
msgstr "Verändert, nicht bereitgestellt"
-#: git-gui.sh:1563 git-gui.sh:1568
+#: git-gui.sh:1593 git-gui.sh:1598
msgid "Staged for commit"
msgstr "Bereitgestellt zum Eintragen"
-#: git-gui.sh:1564 git-gui.sh:1569
+#: git-gui.sh:1594 git-gui.sh:1599
msgid "Portions staged for commit"
msgstr "Teilweise bereitgestellt zum Eintragen"
-#: git-gui.sh:1565 git-gui.sh:1570
+#: git-gui.sh:1595 git-gui.sh:1600
msgid "Staged for commit, missing"
msgstr "Bereitgestellt zum Eintragen, fehlend"
-#: git-gui.sh:1567
+#: git-gui.sh:1597
msgid "Untracked, not staged"
msgstr "Nicht unter Versionskontrolle, nicht bereitgestellt"
-#: git-gui.sh:1572
+#: git-gui.sh:1602
msgid "Missing"
msgstr "Fehlend"
-#: git-gui.sh:1573
+#: git-gui.sh:1603
msgid "Staged for removal"
msgstr "Bereitgestellt zum Löschen"
-#: git-gui.sh:1574
+#: git-gui.sh:1604
msgid "Staged for removal, still present"
msgstr "Bereitgestellt zum Löschen, trotzdem vorhanden"
-#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
+#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609
msgid "Requires merge resolution"
msgstr "Konfliktauflösung nötig"
-#: git-gui.sh:1614
+#: git-gui.sh:1644
msgid "Starting gitk... please wait..."
msgstr "Gitk wird gestartet... bitte warten."
-#: git-gui.sh:1623
+#: git-gui.sh:1653
#, tcl-format
msgid ""
"Unable to start gitk:\n"
@@ -145,297 +145,297 @@ msgstr ""
"\n"
"%s existiert nicht"
-#: git-gui.sh:1823 lib/choose_repository.tcl:35
+#: git-gui.sh:1860 lib/choose_repository.tcl:36
msgid "Repository"
msgstr "Projektarchiv"
-#: git-gui.sh:1824
+#: git-gui.sh:1861
msgid "Edit"
msgstr "Bearbeiten"
-#: git-gui.sh:1826 lib/choose_rev.tcl:560
+#: git-gui.sh:1863 lib/choose_rev.tcl:561
msgid "Branch"
msgstr "Zweig"
-#: git-gui.sh:1829 lib/choose_rev.tcl:547
+#: git-gui.sh:1866 lib/choose_rev.tcl:548
msgid "Commit@@noun"
msgstr "Version"
-#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167
msgid "Merge"
msgstr "Zusammenführen"
-#: git-gui.sh:1833 lib/choose_rev.tcl:556
+#: git-gui.sh:1870 lib/choose_rev.tcl:557
msgid "Remote"
msgstr "Andere Archive"
-#: git-gui.sh:1842
+#: git-gui.sh:1879
msgid "Browse Current Branch's Files"
msgstr "Aktuellen Zweig durchblättern"
-#: git-gui.sh:1846
+#: git-gui.sh:1883
msgid "Browse Branch Files..."
msgstr "Einen Zweig durchblättern..."
-#: git-gui.sh:1851
+#: git-gui.sh:1888
msgid "Visualize Current Branch's History"
msgstr "Aktuellen Zweig darstellen"
-#: git-gui.sh:1855
+#: git-gui.sh:1892
msgid "Visualize All Branch History"
msgstr "Alle Zweige darstellen"
-#: git-gui.sh:1862
+#: git-gui.sh:1899
#, tcl-format
msgid "Browse %s's Files"
msgstr "Zweig »%s« durchblättern"
-#: git-gui.sh:1864
+#: git-gui.sh:1901
#, tcl-format
msgid "Visualize %s's History"
msgstr "Historie von »%s« darstellen"
-#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "Datenbankstatistik"
-#: git-gui.sh:1872 lib/database.tcl:34
+#: git-gui.sh:1909 lib/database.tcl:34
msgid "Compress Database"
msgstr "Datenbank komprimieren"
-#: git-gui.sh:1875
+#: git-gui.sh:1912
msgid "Verify Database"
msgstr "Datenbank überprüfen"
-#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "Desktop-Icon erstellen"
-#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185
msgid "Quit"
msgstr "Beenden"
-#: git-gui.sh:1902
+#: git-gui.sh:1939
msgid "Undo"
msgstr "Rückgängig"
-#: git-gui.sh:1905
+#: git-gui.sh:1942
msgid "Redo"
msgstr "Wiederholen"
-#: git-gui.sh:1909 git-gui.sh:2403
+#: git-gui.sh:1946 git-gui.sh:2443
msgid "Cut"
msgstr "Ausschneiden"
-#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
-#: lib/console.tcl:67
+#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614
+#: lib/console.tcl:69
msgid "Copy"
msgstr "Kopieren"
-#: git-gui.sh:1915 git-gui.sh:2409
+#: git-gui.sh:1952 git-gui.sh:2449
msgid "Paste"
msgstr "Einfügen"
-#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
+#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "Löschen"
-#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
+#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71
msgid "Select All"
msgstr "Alle auswählen"
-#: git-gui.sh:1931
+#: git-gui.sh:1968
msgid "Create..."
msgstr "Erstellen..."
-#: git-gui.sh:1937
+#: git-gui.sh:1974
msgid "Checkout..."
msgstr "Umstellen..."
-#: git-gui.sh:1943
+#: git-gui.sh:1980
msgid "Rename..."
msgstr "Umbenennen..."
-#: git-gui.sh:1948 git-gui.sh:2048
+#: git-gui.sh:1985 git-gui.sh:2085
msgid "Delete..."
msgstr "Löschen..."
-#: git-gui.sh:1953
+#: git-gui.sh:1990
msgid "Reset..."
msgstr "Zurücksetzen..."
-#: git-gui.sh:1965 git-gui.sh:2350
+#: git-gui.sh:2002 git-gui.sh:2389
msgid "New Commit"
msgstr "Neue Version"
-#: git-gui.sh:1973 git-gui.sh:2357
+#: git-gui.sh:2010 git-gui.sh:2396
msgid "Amend Last Commit"
msgstr "Letzte nachbessern"
-#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "Neu laden"
-#: git-gui.sh:1988
+#: git-gui.sh:2025
msgid "Stage To Commit"
msgstr "Zum Eintragen bereitstellen"
-#: git-gui.sh:1994
+#: git-gui.sh:2031
msgid "Stage Changed Files To Commit"
msgstr "Geänderte Dateien bereitstellen"
-#: git-gui.sh:2000
+#: git-gui.sh:2037
msgid "Unstage From Commit"
msgstr "Aus der Bereitstellung herausnehmen"
-#: git-gui.sh:2005 lib/index.tcl:393
+#: git-gui.sh:2042 lib/index.tcl:395
msgid "Revert Changes"
msgstr "Änderungen verwerfen"
-#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
+#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467
msgid "Sign Off"
msgstr "Abzeichnen"
-#: git-gui.sh:2016 git-gui.sh:2333
+#: git-gui.sh:2053 git-gui.sh:2372
msgid "Commit@@verb"
msgstr "Eintragen"
-#: git-gui.sh:2027
+#: git-gui.sh:2064
msgid "Local Merge..."
msgstr "Lokales Zusammenführen..."
-#: git-gui.sh:2032
+#: git-gui.sh:2069
msgid "Abort Merge..."
msgstr "Zusammenführen abbrechen..."
-#: git-gui.sh:2044
+#: git-gui.sh:2081
msgid "Push..."
msgstr "Versenden..."
-#: git-gui.sh:2055 lib/choose_repository.tcl:40
+#: git-gui.sh:2092 lib/choose_repository.tcl:41
msgid "Apple"
msgstr "Apple"
-#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
-#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14
+#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
#, tcl-format
msgid "About %s"
msgstr "Ãœber %s"
-#: git-gui.sh:2062
+#: git-gui.sh:2099
msgid "Preferences..."
msgstr "Einstellungen..."
-#: git-gui.sh:2070 git-gui.sh:2595
+#: git-gui.sh:2107 git-gui.sh:2639
msgid "Options..."
msgstr "Optionen..."
-#: git-gui.sh:2076 lib/choose_repository.tcl:46
+#: git-gui.sh:2113 lib/choose_repository.tcl:47
msgid "Help"
msgstr "Hilfe"
-#: git-gui.sh:2117
+#: git-gui.sh:2154
msgid "Online Documentation"
msgstr "Online-Dokumentation"
-#: git-gui.sh:2201
+#: git-gui.sh:2238
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
msgstr ""
"Fehler: Verzeichnis »%s« kann nicht gelesen werden: Datei oder Verzeichnis "
"nicht gefunden"
-#: git-gui.sh:2234
+#: git-gui.sh:2271
msgid "Current Branch:"
msgstr "Aktueller Zweig:"
-#: git-gui.sh:2255
+#: git-gui.sh:2292
msgid "Staged Changes (Will Commit)"
msgstr "Bereitstellung (zum Eintragen)"
-#: git-gui.sh:2274
+#: git-gui.sh:2312
msgid "Unstaged Changes"
msgstr "Nicht bereitgestellte Änderungen"
-#: git-gui.sh:2323
+#: git-gui.sh:2362
msgid "Stage Changed"
msgstr "Alles bereitstellen"
-#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "Versenden"
-#: git-gui.sh:2369
+#: git-gui.sh:2408
msgid "Initial Commit Message:"
msgstr "Erste Versionsbeschreibung:"
-#: git-gui.sh:2370
+#: git-gui.sh:2409
msgid "Amended Commit Message:"
msgstr "Nachgebesserte Beschreibung:"
-#: git-gui.sh:2371
+#: git-gui.sh:2410
msgid "Amended Initial Commit Message:"
msgstr "Nachgebesserte erste Beschreibung:"
-#: git-gui.sh:2372
+#: git-gui.sh:2411
msgid "Amended Merge Commit Message:"
msgstr "Nachgebesserte Zusammenführungs-Beschreibung:"
-#: git-gui.sh:2373
+#: git-gui.sh:2412
msgid "Merge Commit Message:"
msgstr "Zusammenführungs-Beschreibung:"
-#: git-gui.sh:2374
+#: git-gui.sh:2413
msgid "Commit Message:"
msgstr "Versionsbeschreibung:"
-#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
+#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73
msgid "Copy All"
msgstr "Alle kopieren"
-#: git-gui.sh:2443 lib/blame.tcl:104
+#: git-gui.sh:2483 lib/blame.tcl:107
msgid "File:"
msgstr "Datei:"
-#: git-gui.sh:2573
+#: git-gui.sh:2589
msgid "Apply/Reverse Hunk"
msgstr "Kontext anwenden/umkehren"
-#: git-gui.sh:2579
+#: git-gui.sh:2595
msgid "Show Less Context"
msgstr "Weniger Zeilen anzeigen"
-#: git-gui.sh:2586
+#: git-gui.sh:2602
msgid "Show More Context"
msgstr "Mehr Zeilen anzeigen"
-#: git-gui.sh:2594
+#: git-gui.sh:2610
msgid "Refresh"
msgstr "Aktualisieren"
-#: git-gui.sh:2615
+#: git-gui.sh:2631
msgid "Decrease Font Size"
msgstr "Schriftgröße verkleinern"
-#: git-gui.sh:2619
+#: git-gui.sh:2635
msgid "Increase Font Size"
msgstr "Schriftgröße vergrößern"
-#: git-gui.sh:2630
+#: git-gui.sh:2646
msgid "Unstage Hunk From Commit"
msgstr "Kontext aus Bereitstellung herausnehmen"
-#: git-gui.sh:2604
+#: git-gui.sh:2648
msgid "Stage Hunk For Commit"
msgstr "Kontext zur Bereitstellung hinzufügen"
-#: git-gui.sh:2623
+#: git-gui.sh:2667
msgid "Initializing..."
msgstr "Initialisieren..."
-#: git-gui.sh:2718
+#: git-gui.sh:2762
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
@@ -451,7 +451,7 @@ msgstr ""
"von %s an Git weitergegeben werden:\n"
"\n"
-#: git-gui.sh:2748
+#: git-gui.sh:2792
msgid ""
"\n"
"This is due to a known issue with the\n"
@@ -461,7 +461,7 @@ msgstr ""
"Dies ist ein bekanntes Problem der Tcl-Version, die\n"
"in Cygwin mitgeliefert wird."
-#: git-gui.sh:2753
+#: git-gui.sh:2797
#, tcl-format
msgid ""
"\n"
@@ -477,7 +477,7 @@ msgstr ""
"gewünschten Werte für die Einstellung user.name und \n"
"user.email in Ihre Datei ~/.gitconfig einfügen.\n"
-#: lib/about.tcl:25
+#: lib/about.tcl:26
msgid "git-gui - a graphical user interface for Git."
msgstr "git-gui - eine grafische Oberfläche für Git."
@@ -489,56 +489,56 @@ msgstr "Datei-Browser"
msgid "Commit:"
msgstr "Version:"
-#: lib/blame.tcl:249
+#: lib/blame.tcl:264
msgid "Copy Commit"
msgstr "Version kopieren"
-#: lib/blame.tcl:369
+#: lib/blame.tcl:384
#, tcl-format
msgid "Reading %s..."
msgstr "%s lesen..."
-#: lib/blame.tcl:473
+#: lib/blame.tcl:488
msgid "Loading copy/move tracking annotations..."
msgstr "Annotierungen für Kopieren/Verschieben werden geladen..."
-#: lib/blame.tcl:493
+#: lib/blame.tcl:508
msgid "lines annotated"
msgstr "Zeilen annotiert"
-#: lib/blame.tcl:674
+#: lib/blame.tcl:689
msgid "Loading original location annotations..."
msgstr "Annotierungen für ursprünglichen Ort werden geladen..."
-#: lib/blame.tcl:677
+#: lib/blame.tcl:692
msgid "Annotation complete."
msgstr "Annotierung vollständig."
-#: lib/blame.tcl:731
+#: lib/blame.tcl:746
msgid "Loading annotation..."
msgstr "Annotierung laden..."
-#: lib/blame.tcl:787
+#: lib/blame.tcl:802
msgid "Author:"
msgstr "Autor:"
-#: lib/blame.tcl:791
+#: lib/blame.tcl:806
msgid "Committer:"
msgstr "Eintragender:"
-#: lib/blame.tcl:796
+#: lib/blame.tcl:811
msgid "Original File:"
msgstr "Ursprüngliche Datei:"
-#: lib/blame.tcl:910
+#: lib/blame.tcl:925
msgid "Originally By:"
msgstr "Ursprünglich von:"
-#: lib/blame.tcl:916
+#: lib/blame.tcl:931
msgid "In File:"
msgstr "In Datei:"
-#: lib/blame.tcl:921
+#: lib/blame.tcl:936
msgid "Copied Or Moved Here By:"
msgstr "Kopiert oder verschoben durch:"
@@ -551,17 +551,17 @@ msgid "Checkout"
msgstr "Umstellen"
#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
-#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
-#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
-#: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282
+#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171
+#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
msgid "Cancel"
msgstr "Abbrechen"
-#: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+#: lib/branch_checkout.tcl:32 lib/browser.tcl:287
msgid "Revision"
msgstr "Version"
-#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242
msgid "Options"
msgstr "Optionen"
@@ -581,7 +581,7 @@ msgstr "Zweig erstellen"
msgid "Create New Branch"
msgstr "Neuen Zweig erstellen"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371
msgid "Create"
msgstr "Erstellen"
@@ -721,22 +721,22 @@ msgstr "Starten..."
msgid "File Browser"
msgstr "Datei-Browser"
-#: lib/browser.tcl:125 lib/browser.tcl:142
+#: lib/browser.tcl:126 lib/browser.tcl:143
#, tcl-format
msgid "Loading %s..."
msgstr "%s laden..."
-#: lib/browser.tcl:186
+#: lib/browser.tcl:187
msgid "[Up To Parent]"
msgstr "[Nach oben]"
-#: lib/browser.tcl:266 lib/browser.tcl:272
+#: lib/browser.tcl:267 lib/browser.tcl:273
msgid "Browse Branch Files"
msgstr "Dateien des Zweigs durchblättern"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:391
-#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
-#: lib/choose_repository.tcl:989
+#: lib/browser.tcl:278 lib/choose_repository.tcl:387
+#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484
+#: lib/choose_repository.tcl:987
msgid "Browse"
msgstr "Blättern"
@@ -750,7 +750,7 @@ msgstr "Änderungen »%s« von »%s« anfordern"
msgid "fatal: Cannot resolve %s"
msgstr "Fehler: »%s« kann nicht als Zweig oder Version erkannt werden"
-#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
msgstr "Schließen"
@@ -839,7 +839,7 @@ msgstr ""
"Wenn Sie auf einem Zweig arbeiten möchten, erstellen Sie bitte jetzt einen "
"Zweig mit der Auswahl »Abgetrennte Arbeitskopie-Version«."
-#: lib/checkout_op.tcl:446
+#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450
#, tcl-format
msgid "Checked out '%s'."
msgstr "Umgestellt auf »%s«."
@@ -860,7 +860,7 @@ msgstr ""
msgid "Reset '%s'?"
msgstr "»%s« zurücksetzen?"
-#: lib/checkout_op.tcl:510 lib/merge.tcl:164
+#: lib/checkout_op.tcl:510 lib/merge.tcl:163
msgid "Visualize"
msgstr "Darstellen"
@@ -890,15 +890,15 @@ msgstr "Auswählen"
msgid "Font Family"
msgstr "Schriftfamilie"
-#: lib/choose_font.tcl:73
+#: lib/choose_font.tcl:74
msgid "Font Size"
msgstr "Schriftgröße"
-#: lib/choose_font.tcl:90
+#: lib/choose_font.tcl:91
msgid "Font Example"
msgstr "Schriftbeispiel"
-#: lib/choose_font.tcl:101
+#: lib/choose_font.tcl:103
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
@@ -906,231 +906,231 @@ msgstr ""
"Dies ist ein Beispieltext.\n"
"Wenn Ihnen dieser Text gefällt, sollten Sie diese Schriftart wählen."
-#: lib/choose_repository.tcl:27
+#: lib/choose_repository.tcl:28
msgid "Git Gui"
msgstr "Git Gui"
-#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376
msgid "Create New Repository"
msgstr "Neues Projektarchiv"
-#: lib/choose_repository.tcl:86
+#: lib/choose_repository.tcl:87
msgid "New..."
msgstr "Neu..."
-#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460
msgid "Clone Existing Repository"
msgstr "Projektarchiv klonen"
-#: lib/choose_repository.tcl:99
+#: lib/choose_repository.tcl:100
msgid "Clone..."
msgstr "Klonen..."
-#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976
msgid "Open Existing Repository"
msgstr "Projektarchiv öffnen"
-#: lib/choose_repository.tcl:112
+#: lib/choose_repository.tcl:113
msgid "Open..."
msgstr "Öffnen..."
-#: lib/choose_repository.tcl:125
+#: lib/choose_repository.tcl:126
msgid "Recent Repositories"
msgstr "Zuletzt benutzte Projektarchive"
-#: lib/choose_repository.tcl:131
+#: lib/choose_repository.tcl:132
msgid "Open Recent Repository:"
msgstr "Zuletzt benutztes Projektarchiv öffnen:"
-#: lib/choose_repository.tcl:294
-#, tcl-format
-msgid "Location %s already exists."
-msgstr "Projektarchiv »%s« existiert bereits."
-
-#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
-#: lib/choose_repository.tcl:314
+#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303
+#: lib/choose_repository.tcl:310
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "Projektarchiv »%s« konnte nicht erstellt werden:"
-#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478
msgid "Directory:"
msgstr "Verzeichnis:"
-#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
-#: lib/choose_repository.tcl:1013
+#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537
+#: lib/choose_repository.tcl:1011
msgid "Git Repository"
msgstr "Git Projektarchiv"
-#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#: lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "Verzeichnis »%s« existiert bereits."
-#: lib/choose_repository.tcl:442
+#: lib/choose_repository.tcl:441
#, tcl-format
msgid "File %s already exists."
msgstr "Datei »%s« existiert bereits."
-#: lib/choose_repository.tcl:463
+#: lib/choose_repository.tcl:455
msgid "Clone"
msgstr "Klonen"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:468
msgid "URL:"
msgstr "URL:"
-#: lib/choose_repository.tcl:496
+#: lib/choose_repository.tcl:489
msgid "Clone Type:"
msgstr "Art des Klonens:"
-#: lib/choose_repository.tcl:502
+#: lib/choose_repository.tcl:495
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "Standard (schnell, teilweise redundant, Hardlinks)"
-#: lib/choose_repository.tcl:508
+#: lib/choose_repository.tcl:501
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "Alles kopieren (langsamer, volle Redundanz)"
-#: lib/choose_repository.tcl:514
+#: lib/choose_repository.tcl:507
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "Verknüpft (schnell, nicht empfohlen, kein Backup)"
-#: 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
+#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806
+#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "Kein Git-Projektarchiv in »%s« gefunden."
-#: lib/choose_repository.tcl:586
+#: lib/choose_repository.tcl:579
msgid "Standard only available for local repository."
msgstr "Standard ist nur für lokale Projektarchive verfügbar."
-#: lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:583
msgid "Shared only available for local repository."
msgstr "Verknüpft ist nur für lokale Projektarchive verfügbar."
-#: lib/choose_repository.tcl:617
+#: lib/choose_repository.tcl:604
+#, tcl-format
+msgid "Location %s already exists."
+msgstr "Projektarchiv »%s« existiert bereits."
+
+#: lib/choose_repository.tcl:615
msgid "Failed to configure origin"
msgstr "Der Ursprungsort konnte nicht eingerichtet werden"
-#: lib/choose_repository.tcl:629
+#: lib/choose_repository.tcl:627
msgid "Counting objects"
msgstr "Objekte werden gezählt"
-#: lib/choose_repository.tcl:630
+#: lib/choose_repository.tcl:628
msgid "buckets"
msgstr "Buckets"
-#: lib/choose_repository.tcl:654
+#: lib/choose_repository.tcl:652
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "Kopien von Objekten/Info/Alternates konnten nicht erstellt werden: %s"
-#: lib/choose_repository.tcl:690
+#: lib/choose_repository.tcl:688
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "Von »%s« konnte nichts geklont werden."
-#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
-#: lib/choose_repository.tcl:918
+#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:916
msgid "The 'master' branch has not been initialized."
msgstr "Der »master«-Zweig wurde noch nicht initialisiert."
-#: lib/choose_repository.tcl:705
+#: lib/choose_repository.tcl:703
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "Hardlinks nicht verfügbar. Stattdessen wird kopiert."
-#: lib/choose_repository.tcl:717
+#: lib/choose_repository.tcl:715
#, tcl-format
msgid "Cloning from %s"
msgstr "Kopieren von »%s«"
-#: lib/choose_repository.tcl:748
+#: lib/choose_repository.tcl:746
msgid "Copying objects"
msgstr "Objektdatenbank kopieren"
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:747
msgid "KiB"
msgstr "KB"
-#: lib/choose_repository.tcl:773
+#: lib/choose_repository.tcl:771
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "Objekt kann nicht kopiert werden: %s"
-#: lib/choose_repository.tcl:783
+#: lib/choose_repository.tcl:781
msgid "Linking objects"
msgstr "Objekte verlinken"
-#: lib/choose_repository.tcl:784
+#: lib/choose_repository.tcl:782
msgid "objects"
msgstr "Objekte"
-#: lib/choose_repository.tcl:792
+#: lib/choose_repository.tcl:790
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "Für Objekt konnte kein Hardlink erstellt werden: %s"
-#: lib/choose_repository.tcl:847
+#: lib/choose_repository.tcl:845
msgid "Cannot fetch branches and objects. See console output for details."
msgstr ""
"Zweige und Objekte konnten nicht angefordert werden. Kontrollieren Sie die "
"Ausgaben auf der Konsole für weitere Angaben."
-#: lib/choose_repository.tcl:858
+#: lib/choose_repository.tcl:856
msgid "Cannot fetch tags. See console output for details."
msgstr ""
"Markierungen konnten nicht angefordert werden. Kontrollieren Sie die "
"Ausgaben auf der Konsole für weitere Angaben."
-#: lib/choose_repository.tcl:882
+#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
msgstr ""
"Die Zweigspitze (HEAD) konnte nicht gefunden werden. Kontrollieren Sie die "
"Ausgaben auf der Konsole für weitere Angaben."
-#: lib/choose_repository.tcl:891
+#: lib/choose_repository.tcl:889
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "Verzeichnis »%s« kann nicht aufgeräumt werden."
-#: lib/choose_repository.tcl:897
+#: lib/choose_repository.tcl:895
msgid "Clone failed."
msgstr "Klonen fehlgeschlagen."
-#: lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:902
msgid "No default branch obtained."
msgstr "Kein voreingestellter Zweig gefunden."
-#: lib/choose_repository.tcl:915
+#: lib/choose_repository.tcl:913
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "»%s« wurde nicht als Version gefunden."
-#: lib/choose_repository.tcl:927
+#: lib/choose_repository.tcl:925
msgid "Creating working directory"
msgstr "Arbeitskopie erstellen"
-#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127
#: lib/index.tcl:193
msgid "files"
msgstr "Dateien"
-#: lib/choose_repository.tcl:957
+#: lib/choose_repository.tcl:955
msgid "Initial file checkout failed."
msgstr "Erstellen der Arbeitskopie fehlgeschlagen."
-#: lib/choose_repository.tcl:973
+#: lib/choose_repository.tcl:971
msgid "Open"
msgstr "Öffnen"
-#: lib/choose_repository.tcl:983
+#: lib/choose_repository.tcl:981
msgid "Repository:"
msgstr "Projektarchiv:"
-#: lib/choose_repository.tcl:1033
+#: lib/choose_repository.tcl:1031
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "Projektarchiv »%s« konnte nicht geöffnet werden."
@@ -1151,7 +1151,7 @@ msgstr "Lokaler Zweig"
msgid "Tracking Branch"
msgstr "Ãœbernahmezweig"
-#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538
msgid "Tag"
msgstr "Markierung"
@@ -1168,11 +1168,11 @@ msgstr "Keine Version ausgewählt."
msgid "Revision expression is empty."
msgstr "Versions-Ausdruck ist leer."
-#: lib/choose_rev.tcl:530
+#: lib/choose_rev.tcl:531
msgid "Updated"
msgstr "Aktualisiert"
-#: lib/choose_rev.tcl:558
+#: lib/choose_rev.tcl:559
msgid "URL"
msgstr "URL"
@@ -1304,7 +1304,9 @@ msgstr "Aufrufen der Versionsbeschreibungs-Kontrolle..."
#: lib/commit.tcl:274
msgid "Commit declined by commit-msg hook."
-msgstr "Eintragen abgelehnt durch Versionsbeschreibungs-Kontrolle (»commit-message hook«)."
+msgstr ""
+"Eintragen abgelehnt durch Versionsbeschreibungs-Kontrolle (»commit-message "
+"hook«)."
#: lib/commit.tcl:287
msgid "Committing changes..."
@@ -1323,7 +1325,7 @@ msgstr "Eintragen fehlgeschlagen."
msgid "Commit %s appears to be corrupt"
msgstr "Version »%s« scheint beschädigt zu sein"
-#: lib/commit.tcl:279
+#: lib/commit.tcl:326
msgid ""
"No changes to commit.\n"
"\n"
@@ -1338,7 +1340,7 @@ msgstr ""
"\n"
"Das Arbeitsverzeichnis wird daher jetzt neu geladen.\n"
-#: lib/commit.tcl:286
+#: lib/commit.tcl:333
msgid "No changes to commit."
msgstr "Keine Änderungen, die eingetragen werden können."
@@ -1346,24 +1348,24 @@ msgstr "Keine Änderungen, die eingetragen werden können."
msgid "commit-tree failed:"
msgstr "commit-tree fehlgeschlagen:"
-#: lib/commit.tcl:339
+#: lib/commit.tcl:367
msgid "update-ref failed:"
msgstr "update-ref fehlgeschlagen:"
-#: lib/commit.tcl:430
+#: lib/commit.tcl:454
#, tcl-format
msgid "Created commit %s: %s"
msgstr "Version %s übertragen: %s"
-#: lib/console.tcl:57
+#: lib/console.tcl:59
msgid "Working... please wait..."
msgstr "Verarbeitung. Bitte warten..."
-#: lib/console.tcl:183
+#: lib/console.tcl:186
msgid "Success"
msgstr "Erfolgreich"
-#: lib/console.tcl:196
+#: lib/console.tcl:200
msgid "Error: Command Failed"
msgstr "Fehler: Kommando fehlgeschlagen"
@@ -1474,24 +1476,24 @@ msgstr "* Binärdatei (Inhalt wird nicht angezeigt)"
msgid "Error loading diff:"
msgstr "Fehler beim Laden des Vergleichs:"
-#: lib/diff.tcl:302
+#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
msgstr ""
"Fehler beim Herausnehmen des gewählten Kontexts aus der Bereitstellung."
-#: lib/diff.tcl:309
+#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
msgstr "Fehler beim Bereitstellen des gewählten Kontexts."
-#: lib/error.tcl:12 lib/error.tcl:102
+#: lib/error.tcl:20 lib/error.tcl:114
msgid "error"
msgstr "Fehler"
-#: lib/error.tcl:28
+#: lib/error.tcl:36
msgid "warning"
msgstr "Warnung"
-#: lib/error.tcl:81
+#: lib/error.tcl:94
msgid "You must correct the above errors before committing."
msgstr ""
"Sie müssen die obigen Fehler zuerst beheben, bevor Sie eintragen können."
@@ -1545,12 +1547,12 @@ msgstr "Änderungen in Datei »%s« verwerfen?"
msgid "Revert changes in these %i files?"
msgstr "Änderungen in den gewählten %i Dateien verwerfen?"
-#: lib/index.tcl:389
+#: lib/index.tcl:391
msgid "Any unstaged changes will be permanently lost by the revert."
msgstr ""
"Alle nicht bereitgestellten Änderungen werden beim Verwerfen verloren gehen."
-#: lib/index.tcl:392
+#: lib/index.tcl:394
msgid "Do Nothing"
msgstr "Nichts tun"
@@ -1629,20 +1631,20 @@ msgstr "Zusammenführen von %s und %s..."
msgid "Merge completed successfully."
msgstr "Zusammenführen erfolgreich abgeschlossen."
-#: lib/merge.tcl:133
+#: lib/merge.tcl:132
msgid "Merge failed. Conflict resolution is required."
msgstr "Zusammenführen fehlgeschlagen. Konfliktauflösung ist notwendig."
-#: lib/merge.tcl:158
+#: lib/merge.tcl:157
#, tcl-format
msgid "Merge Into %s"
msgstr "Zusammenführen in »%s«"
-#: lib/merge.tcl:177
+#: lib/merge.tcl:176
msgid "Revision To Merge"
msgstr "Zusammenzuführende Version"
-#: lib/merge.tcl:212
+#: lib/merge.tcl:211
msgid ""
"Cannot abort while amending.\n"
"\n"
@@ -1652,7 +1654,7 @@ msgstr ""
"\n"
"Sie müssen die Nachbesserung der Version abschließen.\n"
-#: lib/merge.tcl:222
+#: lib/merge.tcl:221
msgid ""
"Abort merge?\n"
"\n"
@@ -1667,7 +1669,7 @@ msgstr ""
"\n"
"Zusammenführen jetzt abbrechen?"
-#: lib/merge.tcl:228
+#: lib/merge.tcl:227
msgid ""
"Reset changes?\n"
"\n"
@@ -1682,7 +1684,7 @@ msgstr ""
"\n"
"Änderungen jetzt zurücksetzen?"
-#: lib/merge.tcl:239
+#: lib/merge.tcl:238
msgid "Aborting"
msgstr "Abbruch"
@@ -1694,89 +1696,94 @@ msgstr "Dateien zurückgesetzt"
msgid "Abort failed."
msgstr "Abbruch fehlgeschlagen."
-#: lib/merge.tcl:268
+#: lib/merge.tcl:267
msgid "Abort completed. Ready."
msgstr "Abbruch durchgeführt. Bereit."
-#: lib/option.tcl:82
+#: lib/option.tcl:95
msgid "Restore Defaults"
msgstr "Voreinstellungen wiederherstellen"
-#: lib/option.tcl:86
+#: lib/option.tcl:99
msgid "Save"
msgstr "Speichern"
-#: lib/option.tcl:96
+#: lib/option.tcl:109
#, tcl-format
msgid "%s Repository"
msgstr "Projektarchiv %s"
-#: lib/option.tcl:97
+#: lib/option.tcl:110
msgid "Global (All Repositories)"
msgstr "Global (Alle Projektarchive)"
-#: lib/option.tcl:103
+#: lib/option.tcl:116
msgid "User Name"
msgstr "Benutzername"
-#: lib/option.tcl:104
+#: lib/option.tcl:117
msgid "Email Address"
msgstr "E-Mail-Adresse"
-#: lib/option.tcl:106
+#: lib/option.tcl:119
msgid "Summarize Merge Commits"
msgstr "Zusammenführungs-Versionen zusammenfassen"
-#: lib/option.tcl:107
+#: lib/option.tcl:120
msgid "Merge Verbosity"
msgstr "Ausführlichkeit der Zusammenführen-Meldungen"
-#: lib/option.tcl:108
+#: lib/option.tcl:121
msgid "Show Diffstat After Merge"
msgstr "Vergleichsstatistik nach Zusammenführen anzeigen"
-#: lib/option.tcl:110
+#: lib/option.tcl:123
msgid "Trust File Modification Timestamps"
msgstr "Auf Dateiänderungsdatum verlassen"
-#: lib/option.tcl:111
+#: lib/option.tcl:124
msgid "Prune Tracking Branches During Fetch"
msgstr "Übernahmezweige aufräumen während Anforderung"
-#: lib/option.tcl:112
+#: lib/option.tcl:125
msgid "Match Tracking Branches"
msgstr "Passend zu Ãœbernahmezweig"
-#: lib/option.tcl:113
+#: lib/option.tcl:126
msgid "Number of Diff Context Lines"
msgstr "Anzahl der Kontextzeilen beim Vergleich"
-#: lib/option.tcl:114
+#: lib/option.tcl:127
+#, fuzzy
+msgid "Commit Message Text Width"
+msgstr "Versionsbeschreibung:"
+
+#: lib/option.tcl:128
msgid "New Branch Name Template"
msgstr "Namensvorschlag für neue Zweige"
-#: lib/option.tcl:191
+#: lib/option.tcl:192
msgid "Spelling Dictionary:"
msgstr "Wörterbuch Rechtschreibprüfung:"
-#: lib/option.tcl:215
+#: lib/option.tcl:216
msgid "Change Font"
msgstr "Schriftart ändern"
-#: lib/option.tcl:180
+#: lib/option.tcl:220
#, tcl-format
msgid "Choose %s"
msgstr "%s wählen"
-#: lib/option.tcl:186
+#: lib/option.tcl:226
msgid "pt."
msgstr "pt."
-#: lib/option.tcl:200
+#: lib/option.tcl:240
msgid "Preferences"
msgstr "Einstellungen"
-#: lib/option.tcl:235
+#: lib/option.tcl:275
msgid "Failed to completely save options:"
msgstr "Optionen konnten nicht gespeichert werden:"
@@ -1886,23 +1893,44 @@ msgstr "Fehler beim Schreiben der Verknüpfung:"
msgid "Cannot write icon:"
msgstr "Fehler beim Erstellen des Icons:"
-#: lib/spellcheck.tcl:37
-msgid "Not connected to aspell"
-msgstr "Keine Verbindung zu »aspell«"
+#: lib/spellcheck.tcl:57
+msgid "Unsupported spell checker"
+msgstr ""
+
+#: lib/spellcheck.tcl:65
+#, fuzzy
+msgid "Spell checking is unavailable"
+msgstr "Rechtschreibprüfung fehlgeschlagen"
+
+#: lib/spellcheck.tcl:68
+msgid "Invalid spell checking configuration"
+msgstr ""
+
+#: lib/spellcheck.tcl:70
+#, tcl-format
+msgid "Reverting dictionary to %s."
+msgstr ""
+
+#: lib/spellcheck.tcl:73
+#, fuzzy
+msgid "Spell checker silently failed on startup"
+msgstr "Rechtschreibprüfung fehlgeschlagen"
-#: lib/spellcheck.tcl:41
-msgid "Unrecognized aspell version"
+#: lib/spellcheck.tcl:80
+#, fuzzy
+msgid "Unrecognized spell checker"
msgstr "Unbekannte Version von »aspell«"
-#: lib/spellcheck.tcl:135
+#: lib/spellcheck.tcl:180
msgid "No Suggestions"
msgstr "Keine Vorschläge"
-#: lib/spellcheck.tcl:336
-msgid "Unexpected EOF from aspell"
+#: lib/spellcheck.tcl:381
+#, fuzzy
+msgid "Unexpected EOF from spell checker"
msgstr "Unerwartetes EOF von »aspell«"
-#: lib/spellcheck.tcl:340
+#: lib/spellcheck.tcl:385
msgid "Spell Checker Failed"
msgstr "Rechtschreibprüfung fehlgeschlagen"
@@ -1974,3 +2002,6 @@ msgstr "Kompaktes Datenformat benutzen (für langsame Netzverbindungen)"
#: lib/transport.tcl:168
msgid "Include tags"
msgstr "Mit Markierungen übertragen"
+
+#~ msgid "Not connected to aspell"
+#~ msgstr "Keine Verbindung zu »aspell«"
diff --git a/git-gui/po/fr.po b/git-gui/po/fr.po
index d389bdaca1..d281938e33 100644
--- a/git-gui/po/fr.po
+++ b/git-gui/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: fr\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-11-24 10:36+0100\n"
+"POT-Creation-Date: 2008-03-14 07:18+0100\n"
"PO-Revision-Date: 2008-01-14 21:08+0100\n"
"Last-Translator: Christian Couder <chriscool@tuxfamily.org>\n"
"Language-Team: French\n"
@@ -18,33 +18,33 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-#: git-gui.sh:41 git-gui.sh:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
-#: git-gui.sh:733
+#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+#: git-gui.sh:763
msgid "git-gui: fatal error"
msgstr "git-gui: erreur fatale"
-#: git-gui.sh:565
+#: git-gui.sh:593
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "Invalide fonte spécifiée dans %s :"
-#: git-gui.sh:590
+#: git-gui.sh:620
msgid "Main Font"
msgstr "Fonte principale"
-#: git-gui.sh:591
+#: git-gui.sh:621
msgid "Diff/Console Font"
msgstr "Fonte diff/console"
-#: git-gui.sh:605
+#: git-gui.sh:635
msgid "Cannot find git in PATH."
msgstr "Impossible de trouver git dans PATH."
-#: git-gui.sh:632
+#: git-gui.sh:662
msgid "Cannot parse Git version string:"
msgstr "Impossible de parser la version de Git :"
-#: git-gui.sh:650
+#: git-gui.sh:680
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
@@ -63,79 +63,79 @@ msgstr ""
"\n"
"Peut'on considérer que '%s' est en version 1.5.0 ?\n"
-#: git-gui.sh:888
+#: git-gui.sh:918
msgid "Git directory not found:"
msgstr "Impossible de trouver le répertoire de Git :"
-#: git-gui.sh:895
+#: git-gui.sh:925
msgid "Cannot move to top of working directory:"
msgstr "Impossible d'aller à la racine du répertoire de travail :"
-#: git-gui.sh:902
+#: git-gui.sh:932
msgid "Cannot use funny .git directory:"
msgstr "Impossible d'utiliser un drôle de répertoire git :"
-#: git-gui.sh:907
+#: git-gui.sh:937
msgid "No working directory"
msgstr "Pas de répertoire de travail"
-#: git-gui.sh:1054
+#: git-gui.sh:1084 lib/checkout_op.tcl:283
msgid "Refreshing file status..."
msgstr "Rafraichissement du status des fichiers..."
-#: git-gui.sh:1119
+#: git-gui.sh:1149
msgid "Scanning for modified files ..."
msgstr "Recherche de fichiers modifiés..."
-#: git-gui.sh:1294 lib/browser.tcl:245
+#: git-gui.sh:1324 lib/browser.tcl:246
msgid "Ready."
msgstr "Prêt."
-#: git-gui.sh:1560
+#: git-gui.sh:1590
msgid "Unmodified"
msgstr "Non modifié"
-#: git-gui.sh:1562
+#: git-gui.sh:1592
msgid "Modified, not staged"
msgstr "Modifié, non pré-commité"
-#: git-gui.sh:1563 git-gui.sh:1568
+#: git-gui.sh:1593 git-gui.sh:1598
msgid "Staged for commit"
msgstr "Pré-commité"
-#: git-gui.sh:1564 git-gui.sh:1569
+#: git-gui.sh:1594 git-gui.sh:1599
msgid "Portions staged for commit"
msgstr "En partie pré-commité"
-#: git-gui.sh:1565 git-gui.sh:1570
+#: git-gui.sh:1595 git-gui.sh:1600
msgid "Staged for commit, missing"
msgstr "Pré-commité, manquant"
-#: git-gui.sh:1567
+#: git-gui.sh:1597
msgid "Untracked, not staged"
msgstr "Non suivi, non pré-commité"
-#: git-gui.sh:1572
+#: git-gui.sh:1602
msgid "Missing"
msgstr "Manquant"
-#: git-gui.sh:1573
+#: git-gui.sh:1603
msgid "Staged for removal"
msgstr "Pré-commité pour suppression"
-#: git-gui.sh:1574
+#: git-gui.sh:1604
msgid "Staged for removal, still present"
msgstr "Pré-commité pour suppression, toujours présent"
-#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
+#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609
msgid "Requires merge resolution"
msgstr "Nécessite la résolution d'une fusion"
-#: git-gui.sh:1614
+#: git-gui.sh:1644
msgid "Starting gitk... please wait..."
msgstr "Lancement de gitk... merci de patienter..."
-#: git-gui.sh:1623
+#: git-gui.sh:1653
#, tcl-format
msgid ""
"Unable to start gitk:\n"
@@ -146,295 +146,296 @@ msgstr ""
"\n"
"%s inexistant"
-#: git-gui.sh:1823 lib/choose_repository.tcl:35
+#: git-gui.sh:1860 lib/choose_repository.tcl:36
msgid "Repository"
msgstr "Référentiel"
-#: git-gui.sh:1824
+#: git-gui.sh:1861
msgid "Edit"
msgstr "Editer"
-#: git-gui.sh:1826 lib/choose_rev.tcl:560
+#: git-gui.sh:1863 lib/choose_rev.tcl:561
msgid "Branch"
msgstr "Branche"
-#: git-gui.sh:1829 lib/choose_rev.tcl:547
+#: git-gui.sh:1866 lib/choose_rev.tcl:548
msgid "Commit@@noun"
msgstr "Commit"
-#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167
msgid "Merge"
msgstr "Fusionner"
-#: git-gui.sh:1833 lib/choose_rev.tcl:556
+#: git-gui.sh:1870 lib/choose_rev.tcl:557
msgid "Remote"
msgstr "Référentiel distant"
-#: git-gui.sh:1842
+#: git-gui.sh:1879
msgid "Browse Current Branch's Files"
msgstr "Visionner fichiers dans branche courante"
-#: git-gui.sh:1846
+#: git-gui.sh:1883
msgid "Browse Branch Files..."
msgstr "Visionner fichiers de branche"
-#: git-gui.sh:1851
+#: git-gui.sh:1888
msgid "Visualize Current Branch's History"
msgstr "Visualiser historique branche courante"
-#: git-gui.sh:1855
+#: git-gui.sh:1892
msgid "Visualize All Branch History"
msgstr "Visualiser historique toutes branches"
-#: git-gui.sh:1862
+#: git-gui.sh:1899
#, tcl-format
msgid "Browse %s's Files"
msgstr "Visionner fichiers de %s"
-#: git-gui.sh:1864
+#: git-gui.sh:1901
#, tcl-format
msgid "Visualize %s's History"
msgstr "Visualiser historique de %s"
-#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "Statistiques base de donnée"
-#: git-gui.sh:1872 lib/database.tcl:34
+#: git-gui.sh:1909 lib/database.tcl:34
msgid "Compress Database"
msgstr "Comprimer base de donnée"
-#: git-gui.sh:1875
+#: git-gui.sh:1912
msgid "Verify Database"
msgstr "Vérifier base de donnée"
-#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "Créer icône sur bureau"
-#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185
msgid "Quit"
msgstr "Quitter"
-#: git-gui.sh:1902
+#: git-gui.sh:1939
msgid "Undo"
msgstr "Défaire"
-#: git-gui.sh:1905
+#: git-gui.sh:1942
msgid "Redo"
msgstr "Refaire"
-#: git-gui.sh:1909 git-gui.sh:2403
+#: git-gui.sh:1946 git-gui.sh:2443
msgid "Cut"
msgstr "Couper"
-#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
-#: lib/console.tcl:67
+#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614
+#: lib/console.tcl:69
msgid "Copy"
msgstr "Copier"
-#: git-gui.sh:1915 git-gui.sh:2409
+#: git-gui.sh:1952 git-gui.sh:2449
msgid "Paste"
msgstr "Coller"
-#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
+#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "Supprimer"
-#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
+#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71
msgid "Select All"
msgstr "Tout sélectionner"
-#: git-gui.sh:1931
+#: git-gui.sh:1968
msgid "Create..."
msgstr "Créer..."
-#: git-gui.sh:1937
+#: git-gui.sh:1974
msgid "Checkout..."
msgstr "Emprunter... "
-#: git-gui.sh:1943
+#: git-gui.sh:1980
msgid "Rename..."
msgstr "Renommer..."
-#: git-gui.sh:1948 git-gui.sh:2048
+#: git-gui.sh:1985 git-gui.sh:2085
msgid "Delete..."
msgstr "Supprimer..."
-#: git-gui.sh:1953
+#: git-gui.sh:1990
msgid "Reset..."
msgstr "Réinitialiser..."
-#: git-gui.sh:1965 git-gui.sh:2350
+#: git-gui.sh:2002 git-gui.sh:2389
msgid "New Commit"
msgstr "Nouveau commit"
-#: git-gui.sh:1973 git-gui.sh:2357
+#: git-gui.sh:2010 git-gui.sh:2396
msgid "Amend Last Commit"
msgstr "Corriger dernier commit"
-#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "Resynchroniser"
-#: git-gui.sh:1988
+#: git-gui.sh:2025
msgid "Stage To Commit"
msgstr "Commiter un pré-commit"
-#: git-gui.sh:1994
+#: git-gui.sh:2031
msgid "Stage Changed Files To Commit"
msgstr "Commiter fichiers modifiés dans pré-commit"
-#: git-gui.sh:2000
+#: git-gui.sh:2037
msgid "Unstage From Commit"
msgstr "Commit vers pré-commit"
-#: git-gui.sh:2005 lib/index.tcl:393
+#: git-gui.sh:2042 lib/index.tcl:395
msgid "Revert Changes"
msgstr "Inverser modification"
-#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
+#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467
msgid "Sign Off"
msgstr "Se désinscrire"
-#: git-gui.sh:2016 git-gui.sh:2333
+#: git-gui.sh:2053 git-gui.sh:2372
msgid "Commit@@verb"
msgstr "Commiter"
-#: git-gui.sh:2027
+#: git-gui.sh:2064
msgid "Local Merge..."
msgstr "Fusion locale..."
-#: git-gui.sh:2032
+#: git-gui.sh:2069
msgid "Abort Merge..."
msgstr "Abandonner fusion..."
-#: git-gui.sh:2044
+#: git-gui.sh:2081
msgid "Push..."
msgstr "Pousser..."
-#: git-gui.sh:2055 lib/choose_repository.tcl:40
+#: git-gui.sh:2092 lib/choose_repository.tcl:41
msgid "Apple"
msgstr "Pomme"
-#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
-#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14
+#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
#, tcl-format
msgid "About %s"
msgstr "A propos de %s"
-#: git-gui.sh:2062
+#: git-gui.sh:2099
msgid "Preferences..."
msgstr "Préférences..."
-#: git-gui.sh:2070 git-gui.sh:2595
+#: git-gui.sh:2107 git-gui.sh:2639
msgid "Options..."
msgstr "Options..."
-#: git-gui.sh:2076 lib/choose_repository.tcl:46
+#: git-gui.sh:2113 lib/choose_repository.tcl:47
msgid "Help"
msgstr "Aide"
-#: git-gui.sh:2117
+#: git-gui.sh:2154
msgid "Online Documentation"
msgstr "Documentation en ligne"
-#: git-gui.sh:2201
+#: git-gui.sh:2238
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
-msgstr "fatale : pas d'infos sur le chemin %s : Fichier ou répertoire inexistant"
+msgstr ""
+"fatale : pas d'infos sur le chemin %s : Fichier ou répertoire inexistant"
-#: git-gui.sh:2234
+#: git-gui.sh:2271
msgid "Current Branch:"
msgstr "Branche courante :"
-#: git-gui.sh:2255
+#: git-gui.sh:2292
msgid "Staged Changes (Will Commit)"
msgstr "Modifications pré-commitées"
-#: git-gui.sh:2274
+#: git-gui.sh:2312
msgid "Unstaged Changes"
msgstr "Modifications non pré-commitées"
-#: git-gui.sh:2323
+#: git-gui.sh:2362
msgid "Stage Changed"
msgstr "Pré-commit modifié"
-#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "Pousser"
-#: git-gui.sh:2369
+#: git-gui.sh:2408
msgid "Initial Commit Message:"
msgstr "Message de commit initial :"
-#: git-gui.sh:2370
+#: git-gui.sh:2409
msgid "Amended Commit Message:"
msgstr "Message de commit corrigé :"
-#: git-gui.sh:2371
+#: git-gui.sh:2410
msgid "Amended Initial Commit Message:"
msgstr "Message de commit initial corrigé :"
-#: git-gui.sh:2372
+#: git-gui.sh:2411
msgid "Amended Merge Commit Message:"
msgstr "Message de commit de fusion corrigé :"
-#: git-gui.sh:2373
+#: git-gui.sh:2412
msgid "Merge Commit Message:"
msgstr "Message de commit de fusion :"
-#: git-gui.sh:2374
+#: git-gui.sh:2413
msgid "Commit Message:"
msgstr "Message de commit :"
-#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
+#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73
msgid "Copy All"
msgstr "Copier tout"
-#: git-gui.sh:2443 lib/blame.tcl:104
+#: git-gui.sh:2483 lib/blame.tcl:107
msgid "File:"
msgstr "Fichier :"
-#: git-gui.sh:2545
-msgid "Refresh"
-msgstr "Rafraichir"
-
-#: git-gui.sh:2566
+#: git-gui.sh:2589
msgid "Apply/Reverse Hunk"
msgstr "Appliquer/Inverser section"
-#: git-gui.sh:2572
-msgid "Decrease Font Size"
-msgstr "Réduire fonte"
-
-#: git-gui.sh:2576
-msgid "Increase Font Size"
-msgstr "Agrandir fonte"
-
-#: git-gui.sh:2581
+#: git-gui.sh:2595
msgid "Show Less Context"
msgstr "Montrer moins de contexte"
-#: git-gui.sh:2588
+#: git-gui.sh:2602
msgid "Show More Context"
msgstr "Montrer plus de contexte"
-#: git-gui.sh:2602
+#: git-gui.sh:2610
+msgid "Refresh"
+msgstr "Rafraichir"
+
+#: git-gui.sh:2631
+msgid "Decrease Font Size"
+msgstr "Réduire fonte"
+
+#: git-gui.sh:2635
+msgid "Increase Font Size"
+msgstr "Agrandir fonte"
+
+#: git-gui.sh:2646
msgid "Unstage Hunk From Commit"
msgstr "Enlever section pré-commitée"
-#: git-gui.sh:2604
+#: git-gui.sh:2648
msgid "Stage Hunk For Commit"
msgstr "Pré-commiter section"
-#: git-gui.sh:2623
+#: git-gui.sh:2667
msgid "Initializing..."
msgstr "Initialisation..."
-#: git-gui.sh:2718
+#: git-gui.sh:2762
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
@@ -451,7 +452,7 @@ msgstr ""
"sous-processus de Git lancés par %s\n"
"\n"
-#: git-gui.sh:2748
+#: git-gui.sh:2792
msgid ""
"\n"
"This is due to a known issue with the\n"
@@ -461,7 +462,7 @@ msgstr ""
"Ceci est du à un problème connu avec\n"
"le binaire Tcl distribué par Cygwin."
-#: git-gui.sh:2753
+#: git-gui.sh:2797
#, tcl-format
msgid ""
"\n"
@@ -478,7 +479,7 @@ msgstr ""
"de l'utilisateur) et 'user.email' (addresse email\n"
"de l'utilisateur) dans votre fichier '~/.gitconfig'.\n"
-#: lib/about.tcl:25
+#: lib/about.tcl:26
msgid "git-gui - a graphical user interface for Git."
msgstr "git-gui - une interface graphique utilisateur pour Git"
@@ -490,56 +491,56 @@ msgstr "Visionneur de fichier"
msgid "Commit:"
msgstr "Commit :"
-#: lib/blame.tcl:249
+#: lib/blame.tcl:264
msgid "Copy Commit"
msgstr "Copier commit"
-#: lib/blame.tcl:369
+#: lib/blame.tcl:384
#, tcl-format
msgid "Reading %s..."
msgstr "Lecture de %s..."
-#: lib/blame.tcl:473
+#: lib/blame.tcl:488
msgid "Loading copy/move tracking annotations..."
msgstr "Chargement des annotations de suivi des copies/déplacements..."
-#: lib/blame.tcl:493
+#: lib/blame.tcl:508
msgid "lines annotated"
msgstr "lignes annotées"
-#: lib/blame.tcl:674
+#: lib/blame.tcl:689
msgid "Loading original location annotations..."
msgstr "Chargement des annotations d'emplacement original"
-#: lib/blame.tcl:677
+#: lib/blame.tcl:692
msgid "Annotation complete."
msgstr "Annotation terminée."
-#: lib/blame.tcl:731
+#: lib/blame.tcl:746
msgid "Loading annotation..."
msgstr "Chargement des annotations..."
-#: lib/blame.tcl:787
+#: lib/blame.tcl:802
msgid "Author:"
msgstr "Auteur :"
-#: lib/blame.tcl:791
+#: lib/blame.tcl:806
msgid "Committer:"
msgstr "Commiteur :"
-#: lib/blame.tcl:796
+#: lib/blame.tcl:811
msgid "Original File:"
msgstr "Fichier original :"
-#: lib/blame.tcl:910
+#: lib/blame.tcl:925
msgid "Originally By:"
msgstr "A l'origine par :"
-#: lib/blame.tcl:916
+#: lib/blame.tcl:931
msgid "In File:"
msgstr "Dans le fichier :"
-#: lib/blame.tcl:921
+#: lib/blame.tcl:936
msgid "Copied Or Moved Here By:"
msgstr "Copié ou déplacé ici par :"
@@ -552,17 +553,17 @@ msgid "Checkout"
msgstr "Emprunter"
#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
-#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
-#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
-#: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282
+#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171
+#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
msgid "Cancel"
msgstr "Annuler"
-#: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+#: lib/branch_checkout.tcl:32 lib/browser.tcl:287
msgid "Revision"
msgstr "Révision"
-#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242
msgid "Options"
msgstr "Options"
@@ -582,7 +583,7 @@ msgstr "Créer branche"
msgid "Create New Branch"
msgstr "Créer nouvelle branche"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371
msgid "Create"
msgstr "Créer"
@@ -629,7 +630,8 @@ msgstr "Merci de choisir une branche de suivi"
#: lib/branch_create.tcl:140
#, tcl-format
msgid "Tracking branch %s is not a branch in the remote repository."
-msgstr "La branche de suivi %s n'est pas une branche dans le référentiel distant."
+msgstr ""
+"La branche de suivi %s n'est pas une branche dans le référentiel distant."
#: lib/branch_create.tcl:153 lib/branch_rename.tcl:86
msgid "Please supply a branch name."
@@ -722,22 +724,22 @@ msgstr "Lancement..."
msgid "File Browser"
msgstr "Visionneur de fichier"
-#: lib/browser.tcl:125 lib/browser.tcl:142
+#: lib/browser.tcl:126 lib/browser.tcl:143
#, tcl-format
msgid "Loading %s..."
msgstr "Chargement de %s..."
-#: lib/browser.tcl:186
+#: lib/browser.tcl:187
msgid "[Up To Parent]"
msgstr "[Jusqu'au parent]"
-#: lib/browser.tcl:266 lib/browser.tcl:272
+#: lib/browser.tcl:267 lib/browser.tcl:273
msgid "Browse Branch Files"
msgstr "Visionner fichiers de branches"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:391
-#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
-#: lib/choose_repository.tcl:989
+#: lib/browser.tcl:278 lib/choose_repository.tcl:387
+#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484
+#: lib/choose_repository.tcl:987
msgid "Browse"
msgstr "Visionner"
@@ -751,7 +753,7 @@ msgstr "Récupération de %s à partir de %s"
msgid "fatal: Cannot resolve %s"
msgstr "Erreur fatale : Impossible de résoudre %s"
-#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
msgstr "Fermer"
@@ -796,9 +798,12 @@ msgid ""
"\n"
"The rescan will be automatically started now.\n"
msgstr ""
-"L'état lors de la dernière synchronisation ne correspond plus à l'état du référentiel.\n"
+"L'état lors de la dernière synchronisation ne correspond plus à l'état du "
+"référentiel.\n"
"\n"
-"Un autre programme Git a modifié ce référentiel depuis la dernière synchronisation. Une resynchronisation doit être effectuée avant de pouvoir modifier la branche courante.\n"
+"Un autre programme Git a modifié ce référentiel depuis la dernière "
+"synchronisation. Une resynchronisation doit être effectuée avant de pouvoir "
+"modifier la branche courante.\n"
"\n"
"Cela va être fait tout de suite automatiquement.\n"
@@ -807,10 +812,15 @@ msgstr ""
msgid "Updating working directory to '%s'..."
msgstr "Mise à jour du répertoire courant avec '%s'..."
+#: lib/checkout_op.tcl:323
+msgid "files checked out"
+msgstr ""
+
#: lib/checkout_op.tcl:353
#, tcl-format
msgid "Aborted checkout of '%s' (file level merging is required)."
-msgstr "Emprunt de '%s' abandonné. (Il est nécessaire de fusionner des fichiers.)"
+msgstr ""
+"Emprunt de '%s' abandonné. (Il est nécessaire de fusionner des fichiers.)"
#: lib/checkout_op.tcl:354
msgid "File level merge required."
@@ -830,9 +840,10 @@ msgid ""
msgstr ""
"Vous n'êtes plus ur une branche locale.\n"
"\n"
-"Si vous vouliez être sur une branche, créez en une maintenant en partant de 'Cet emprunt détaché'."
+"Si vous vouliez être sur une branche, créez en une maintenant en partant de "
+"'Cet emprunt détaché'."
-#: lib/checkout_op.tcl:446
+#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450
#, tcl-format
msgid "Checked out '%s'."
msgstr "'%s' emprunté."
@@ -851,7 +862,7 @@ msgstr "Récupérer les commits perdus ne sera peut être pas facile."
msgid "Reset '%s'?"
msgstr "Réinitialiser '%s' ?"
-#: lib/checkout_op.tcl:510 lib/merge.tcl:164
+#: lib/checkout_op.tcl:510 lib/merge.tcl:163
msgid "Visualize"
msgstr "Visualiser"
@@ -867,7 +878,9 @@ msgid ""
msgstr ""
"Le changement de la branche courante a échoué.\n"
"\n"
-"Le répertoire courant n'est que partiellement modifié. Les fichiers ont été mis à jour avec succès, mais la mise à jour d'un fichier interne à Git a échouée.\n"
+"Le répertoire courant n'est que partiellement modifié. Les fichiers ont été "
+"mis à jour avec succès, mais la mise à jour d'un fichier interne à Git a "
+"échouée.\n"
"\n"
"Cela n'aurait pas du se produire. %s va abandonner et se terminer."
@@ -879,15 +892,15 @@ msgstr "Sélectionner"
msgid "Font Family"
msgstr "Famille de fonte"
-#: lib/choose_font.tcl:73
+#: lib/choose_font.tcl:74
msgid "Font Size"
msgstr "Taille de fonte"
-#: lib/choose_font.tcl:90
+#: lib/choose_font.tcl:91
msgid "Font Example"
msgstr "Exemple de fonte"
-#: lib/choose_font.tcl:101
+#: lib/choose_font.tcl:103
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
@@ -895,225 +908,230 @@ msgstr ""
"C'est un texte d'exemple.\n"
"Si vous aimez ce texte, vous pouvez choisir cette fonte."
-#: lib/choose_repository.tcl:27
+#: lib/choose_repository.tcl:28
msgid "Git Gui"
msgstr "Git Gui"
-#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376
msgid "Create New Repository"
msgstr "Créer nouveau référentiel"
-#: lib/choose_repository.tcl:86
+#: lib/choose_repository.tcl:87
msgid "New..."
msgstr "Nouveau..."
-#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460
msgid "Clone Existing Repository"
msgstr "Cloner référentiel existant"
-#: lib/choose_repository.tcl:99
+#: lib/choose_repository.tcl:100
msgid "Clone..."
msgstr "Cloner..."
-#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976
msgid "Open Existing Repository"
msgstr "Ouvrir référentiel existant"
-#: lib/choose_repository.tcl:112
+#: lib/choose_repository.tcl:113
msgid "Open..."
msgstr "Ouvrir..."
-#: lib/choose_repository.tcl:125
+#: lib/choose_repository.tcl:126
msgid "Recent Repositories"
msgstr "Référentiels récents"
-#: lib/choose_repository.tcl:131
+#: lib/choose_repository.tcl:132
msgid "Open Recent Repository:"
msgstr "Ouvrir référentiel récent :"
-#: lib/choose_repository.tcl:294
-#, tcl-format
-msgid "Location %s already exists."
-msgstr "L'emplacement %s existe déjà."
-
-#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
-#: lib/choose_repository.tcl:314
+#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303
+#: lib/choose_repository.tcl:310
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "La création du référentiel %s a échouée :"
-#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478
msgid "Directory:"
msgstr "Répertoire :"
-#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
-#: lib/choose_repository.tcl:1013
+#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537
+#: lib/choose_repository.tcl:1011
msgid "Git Repository"
msgstr "Référentiel Git"
-#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#: lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "Le répertoire %s existe déjà."
-#: lib/choose_repository.tcl:442
+#: lib/choose_repository.tcl:441
#, tcl-format
msgid "File %s already exists."
msgstr "Le fichier %s existe déjà."
-#: lib/choose_repository.tcl:463
+#: lib/choose_repository.tcl:455
msgid "Clone"
msgstr "Cloner"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:468
msgid "URL:"
msgstr "URL :"
-#: lib/choose_repository.tcl:496
+#: lib/choose_repository.tcl:489
msgid "Clone Type:"
msgstr "Type de clonage :"
-#: lib/choose_repository.tcl:502
+#: lib/choose_repository.tcl:495
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "Standard (rapide, semi-redondant, liens durs)"
-#: lib/choose_repository.tcl:508
+#: lib/choose_repository.tcl:501
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "Copy complète (plus lent, sauvegarde redondante)"
-#: lib/choose_repository.tcl:514
+#: lib/choose_repository.tcl:507
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "Partagé (le plus rapide, non recommandé, pas de sauvegarde)"
-#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597
-#: lib/choose_repository.tcl:738 lib/choose_repository.tcl:808
-#: lib/choose_repository.tcl:1019 lib/choose_repository.tcl:1027
+#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806
+#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "'%s' n'est pas un référentiel Git."
-#: lib/choose_repository.tcl:586
+#: lib/choose_repository.tcl:579
msgid "Standard only available for local repository."
msgstr "Standard n'est disponible que pour un référentiel local."
-#: lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:583
msgid "Shared only available for local repository."
msgstr "Partagé n'est disponible que pour un référentiel local."
-#: lib/choose_repository.tcl:617
+#: lib/choose_repository.tcl:604
+#, tcl-format
+msgid "Location %s already exists."
+msgstr "L'emplacement %s existe déjà."
+
+#: lib/choose_repository.tcl:615
msgid "Failed to configure origin"
msgstr "La configuration de l'origine a échouée."
-#: lib/choose_repository.tcl:629
+#: lib/choose_repository.tcl:627
msgid "Counting objects"
msgstr "Comptage des objets"
-#: lib/choose_repository.tcl:630
+#: lib/choose_repository.tcl:628
msgid "buckets"
msgstr "paniers"
-#: lib/choose_repository.tcl:654
+#: lib/choose_repository.tcl:652
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "Impossible de copier 'objects/info/alternates' : %s"
-#: lib/choose_repository.tcl:690
+#: lib/choose_repository.tcl:688
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "Il n'y a rien à cloner depuis %s."
-#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
-#: lib/choose_repository.tcl:918
+#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:916
msgid "The 'master' branch has not been initialized."
msgstr "Cette branche 'master' n'a pas été initialisée."
-#: lib/choose_repository.tcl:705
+#: lib/choose_repository.tcl:703
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "Les liens durs ne sont pas disponibles. On se résoud à copier."
-#: lib/choose_repository.tcl:717
+#: lib/choose_repository.tcl:715
#, tcl-format
msgid "Cloning from %s"
msgstr "Clonage depuis %s"
-#: lib/choose_repository.tcl:748
+#: lib/choose_repository.tcl:746
msgid "Copying objects"
msgstr "Copie des objets"
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:747
msgid "KiB"
msgstr "KiB"
-#: lib/choose_repository.tcl:773
+#: lib/choose_repository.tcl:771
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "Impossible de copier l'objet : %s"
-#: lib/choose_repository.tcl:783
+#: lib/choose_repository.tcl:781
msgid "Linking objects"
msgstr "Liaison des objets"
-#: lib/choose_repository.tcl:784
+#: lib/choose_repository.tcl:782
msgid "objects"
msgstr "objets"
-#: lib/choose_repository.tcl:792
+#: lib/choose_repository.tcl:790
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "Impossible créer un lien dur pour l'objet : %s"
-#: lib/choose_repository.tcl:847
+#: lib/choose_repository.tcl:845
msgid "Cannot fetch branches and objects. See console output for details."
-msgstr "Impossible de récupérer les branches et objets. Voir la sortie console pour plus de détails."
+msgstr ""
+"Impossible de récupérer les branches et objets. Voir la sortie console pour "
+"plus de détails."
-#: lib/choose_repository.tcl:858
+#: lib/choose_repository.tcl:856
msgid "Cannot fetch tags. See console output for details."
-msgstr "Impossible de récupérer les marques. Voir la sortie console pour plus de détails."
+msgstr ""
+"Impossible de récupérer les marques. Voir la sortie console pour plus de "
+"détails."
-#: lib/choose_repository.tcl:882
+#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
-msgstr "Impossible de déterminer HEAD. Voir la sortie console pour plus de détails."
+msgstr ""
+"Impossible de déterminer HEAD. Voir la sortie console pour plus de détails."
-#: lib/choose_repository.tcl:891
+#: lib/choose_repository.tcl:889
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "Impossible de nettoyer %s"
-#: lib/choose_repository.tcl:897
+#: lib/choose_repository.tcl:895
msgid "Clone failed."
msgstr "Le clonage a échoué."
-#: lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:902
msgid "No default branch obtained."
msgstr "Aucune branche par défaut n'a été obtenue."
-#: lib/choose_repository.tcl:915
+#: lib/choose_repository.tcl:913
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "Impossible de résoudre %s comme commit."
-#: lib/choose_repository.tcl:927
+#: lib/choose_repository.tcl:925
msgid "Creating working directory"
msgstr "Création du répertoire de travail"
-#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127
#: lib/index.tcl:193
msgid "files"
msgstr "fichiers"
-#: lib/choose_repository.tcl:957
+#: lib/choose_repository.tcl:955
msgid "Initial file checkout failed."
msgstr "L'emprunt initial de fichier a échoué."
-#: lib/choose_repository.tcl:973
+#: lib/choose_repository.tcl:971
msgid "Open"
msgstr "Ouvrir"
-#: lib/choose_repository.tcl:983
+#: lib/choose_repository.tcl:981
msgid "Repository:"
msgstr "Référentiel :"
-#: lib/choose_repository.tcl:1033
+#: lib/choose_repository.tcl:1031
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "Impossible d'ouvrir le référentiel %s :"
@@ -1134,7 +1152,7 @@ msgstr "Branche locale"
msgid "Tracking Branch"
msgstr "Suivi de branche"
-#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538
msgid "Tag"
msgstr "Marque"
@@ -1151,11 +1169,11 @@ msgstr "Pas de révision selectionnée."
msgid "Revision expression is empty."
msgstr "L'expression de révision est vide."
-#: lib/choose_rev.tcl:530
+#: lib/choose_rev.tcl:531
msgid "Updated"
msgstr "Misa à jour"
-#: lib/choose_rev.tcl:558
+#: lib/choose_rev.tcl:559
msgid "URL"
msgstr "URL"
@@ -1168,7 +1186,8 @@ msgid ""
msgstr ""
"Il n'y a rien à corriger.\n"
"\n"
-"Vous allez créer le commit initial. Il n'y a pas de commit avant celui-ci à corriger.\n"
+"Vous allez créer le commit initial. Il n'y a pas de commit avant celui-ci à "
+"corriger.\n"
#: lib/commit.tcl:18
msgid ""
@@ -1180,7 +1199,9 @@ msgid ""
msgstr ""
"Impossible de corriger pendant une fusion.\n"
"\n"
-"Vous êtes actuellement au milieu d'une fusion qui n'a pas été completement terminée. Vous ne pouvez pas corriger le commit précédant sauf si vous abandonnez la fusion courante.\n"
+"Vous êtes actuellement au milieu d'une fusion qui n'a pas été completement "
+"terminée. Vous ne pouvez pas corriger le commit précédant sauf si vous "
+"abandonnez la fusion courante.\n"
#: lib/commit.tcl:49
msgid "Error loading commit data for amend:"
@@ -1203,9 +1224,12 @@ msgid ""
"\n"
"The rescan will be automatically started now.\n"
msgstr ""
-"L'état lors de la dernière synchronisation ne correspond plus à l'état du référentiel.\n"
+"L'état lors de la dernière synchronisation ne correspond plus à l'état du "
+"référentiel.\n"
"\n"
-"Un autre programme Git a modifié ce référentiel depuis la dernière synchronisation. Une resynshronisation doit être effectuée avant de pouvoir créer un nouveau commit.\n"
+"Un autre programme Git a modifié ce référentiel depuis la dernière "
+"synchronisation. Une resynshronisation doit être effectuée avant de pouvoir "
+"créer un nouveau commit.\n"
"\n"
"Cela va être fait tout de suite automatiquement.\n"
@@ -1219,7 +1243,8 @@ msgid ""
msgstr ""
"Des fichiers non fusionnés ne peuvent être commités.\n"
"\n"
-"Le fichier %s a des conflicts de fusion. Vous devez les résoudre et pré-commiter le fichier avant de pouvoir commiter.\n"
+"Le fichier %s a des conflicts de fusion. Vous devez les résoudre et pré-"
+"commiter le fichier avant de pouvoir commiter.\n"
#: lib/commit.tcl:162
#, tcl-format
@@ -1260,16 +1285,46 @@ msgstr ""
"- Deuxième ligne : rien.\n"
"- Lignes suivantes : Décrire pourquoi ces modifications sont bonnes.\n"
-#: lib/commit.tcl:257
+#: lib/commit.tcl:207
+#, tcl-format
+msgid "warning: Tcl does not support encoding '%s'."
+msgstr "attention : Tcl ne supporte pas l'encodage '%s'."
+
+#: lib/commit.tcl:221
+msgid "Calling pre-commit hook..."
+msgstr ""
+
+#: lib/commit.tcl:236
+msgid "Commit declined by pre-commit hook."
+msgstr ""
+
+#: lib/commit.tcl:259
+msgid "Calling commit-msg hook..."
+msgstr ""
+
+#: lib/commit.tcl:274
+msgid "Commit declined by commit-msg hook."
+msgstr ""
+
+#: lib/commit.tcl:287
+msgid "Committing changes..."
+msgstr ""
+
+#: lib/commit.tcl:303
msgid "write-tree failed:"
msgstr "write-tree a échoué :"
-#: lib/commit.tcl:275
+#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368
+#, fuzzy
+msgid "Commit failed."
+msgstr "Le clonage a échoué."
+
+#: lib/commit.tcl:321
#, tcl-format
msgid "Commit %s appears to be corrupt"
msgstr "Le commit %s semble être corrompu"
-#: lib/commit.tcl:279
+#: lib/commit.tcl:326
msgid ""
"No changes to commit.\n"
"\n"
@@ -1279,41 +1334,37 @@ msgid ""
msgstr ""
"Pas de modification à commiter.\n"
"\n"
-"Aucun fichier n'a été modifié par ce commit et il ne s'agit pas d'un commit de fusion.\n"
+"Aucun fichier n'a été modifié par ce commit et il ne s'agit pas d'un commit "
+"de fusion.\n"
"\n"
"Une resynchronisation va être lancée tout de suite automatiquement.\n"
-#: lib/commit.tcl:286
+#: lib/commit.tcl:333
msgid "No changes to commit."
msgstr "Pas de modifications à commiter."
-#: lib/commit.tcl:303
-#, tcl-format
-msgid "warning: Tcl does not support encoding '%s'."
-msgstr "attention : Tcl ne supporte pas l'encodage '%s'."
-
-#: lib/commit.tcl:317
+#: lib/commit.tcl:347
msgid "commit-tree failed:"
msgstr "commit-tree a échoué :"
-#: lib/commit.tcl:339
+#: lib/commit.tcl:367
msgid "update-ref failed:"
msgstr "update-ref a échoué"
-#: lib/commit.tcl:430
+#: lib/commit.tcl:454
#, tcl-format
msgid "Created commit %s: %s"
msgstr "Commit créé %s : %s"
-#: lib/console.tcl:57
+#: lib/console.tcl:59
msgid "Working... please wait..."
msgstr "Travail en cours... merci de patienter..."
-#: lib/console.tcl:183
+#: lib/console.tcl:186
msgid "Success"
msgstr "Succès"
-#: lib/console.tcl:196
+#: lib/console.tcl:200
msgid "Error: Command Failed"
msgstr "Erreur : échec de la commande"
@@ -1345,7 +1396,7 @@ msgstr "Objets empaquetés attendant d'être supprimés"
msgid "Garbage files"
msgstr "Fichiers poubelle"
-#: lib/database.tcl:72ets
+#: lib/database.tcl:72
msgid "Compressing the object database"
msgstr "Compression de la base des objets"
@@ -1363,9 +1414,12 @@ msgid ""
"\n"
"Compress the database now?"
msgstr ""
-"Ce référentiel comprend actuellement environ %i objets ayant leur fichier particulier.\n"
+"Ce référentiel comprend actuellement environ %i objets ayant leur fichier "
+"particulier.\n"
"\n"
-"Pour conserver une performance optimale, il est fortement recommandé de comprimer la base quand plus de %i objets ayant leur fichier particulier existent.\n"
+"Pour conserver une performance optimale, il est fortement recommandé de "
+"comprimer la base quand plus de %i objets ayant leur fichier particulier "
+"existent.\n"
"\n"
"Comprimer la base maintenant ?"
@@ -1391,9 +1445,11 @@ msgstr ""
"\n"
"%s ne comporte aucune modification.\n"
"\n"
-"La date de modification de ce fichier a été mise à jour par une autre application, mais le contenu du fichier n'a pas changé.\n"
+"La date de modification de ce fichier a été mise à jour par une autre "
+"application, mais le contenu du fichier n'a pas changé.\n"
"\n"
-"Une resynchronisation va être lancée automatiquement pour trouver d'autres fichiers qui pourraient se trouver dans le même état."
+"Une resynchronisation va être lancée automatiquement pour trouver d'autres "
+"fichiers qui pourraient se trouver dans le même état."
#: lib/diff.tcl:81
#, tcl-format
@@ -1421,23 +1477,24 @@ msgstr "* Fichier binaire (pas d'apperçu du contenu)."
msgid "Error loading diff:"
msgstr "Erreur lors du chargement des différences :"
-#: lib/diff.tcl:302
+#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
-msgstr "La suppression dans le pré-commit de la section sélectionnée a échouée."
+msgstr ""
+"La suppression dans le pré-commit de la section sélectionnée a échouée."
-#: lib/diff.tcl:309
+#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
msgstr "Le pré-commit de la section sélectionnée a échoué."
-#: lib/error.tcl:12 lib/error.tcl:102
+#: lib/error.tcl:20 lib/error.tcl:114
msgid "error"
msgstr "erreur"
-#: lib/error.tcl:28
+#: lib/error.tcl:36
msgid "warning"
msgstr "attention"
-#: lib/error.tcl:81
+#: lib/error.tcl:94
msgid "You must correct the above errors before committing."
msgstr "Vous devez corriger les erreurs suivantes avant de pouvoir commiter."
@@ -1453,7 +1510,8 @@ msgstr "Erreur de pré-commit"
msgid ""
"Updating the Git index failed. A rescan will be automatically started to "
"resynchronize git-gui."
-msgstr "Le pré-commit a échoué. Une resynchronisation va être lancée automatiquement."
+msgstr ""
+"Le pré-commit a échoué. Une resynchronisation va être lancée automatiquement."
#: lib/index.tcl:27
msgid "Continue"
@@ -1468,6 +1526,11 @@ msgstr "Dévérouiller le pré-commit"
msgid "Unstaging %s from commit"
msgstr "Supprimer %s du commit"
+#: lib/index.tcl:313
+#, fuzzy
+msgid "Ready to commit."
+msgstr "Pré-commité"
+
#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
@@ -1483,11 +1546,13 @@ msgstr "Inverser les modifications dans le fichier %s ? "
msgid "Revert changes in these %i files?"
msgstr "Inverser les modifications dans ces %i fichiers ?"
-#: lib/index.tcl:389
+#: lib/index.tcl:391
msgid "Any unstaged changes will be permanently lost by the revert."
-msgstr "Toutes les modifications non pré-commitées seront définitivement perdues lors de l'inversion."
+msgstr ""
+"Toutes les modifications non pré-commitées seront définitivement perdues "
+"lors de l'inversion."
-#: lib/index.tcl:392
+#: lib/index.tcl:394
msgid "Do Nothing"
msgstr "Ne rien faire"
@@ -1499,7 +1564,8 @@ msgid ""
msgstr ""
"Impossible de fucionner pendant une correction.\n"
"\n"
-"Vous devez finir de corriger ce commit avant de lancer une quelconque fusion.\n"
+"Vous devez finir de corriger ce commit avant de lancer une quelconque "
+"fusion.\n"
#: lib/merge.tcl:27
msgid ""
@@ -1510,9 +1576,12 @@ msgid ""
"\n"
"The rescan will be automatically started now.\n"
msgstr ""
-"L'état lors de la dernière synchronisation ne correspond plus à l'état du référentiel.\n"
+"L'état lors de la dernière synchronisation ne correspond plus à l'état du "
+"référentiel.\n"
"\n"
-"Un autre programme Git a modifié ce référentiel depuis la dernière synchronisation. Une resynchronisation doit être effectuée avant de pouvoir fusionner de nouveau.\n"
+"Un autre programme Git a modifié ce référentiel depuis la dernière "
+"synchronisation. Une resynchronisation doit être effectuée avant de pouvoir "
+"fusionner de nouveau.\n"
"\n"
"Cela va être fait tout de suite automatiquement\n"
@@ -1530,7 +1599,9 @@ msgstr ""
"\n"
"Le fichier %s a des conflicts de fusion.\n"
"\n"
-"Vous devez les résoudre, puis pré-commiter le fichier, et enfin commiter pour terminer la fusion courante. Seulementà ce moment là, il sera possible d'effectuer une nouvelle fusion.\n"
+"Vous devez les résoudre, puis pré-commiter le fichier, et enfin commiter "
+"pour terminer la fusion courante. Seulementà ce moment là, il sera possible "
+"d'effectuer une nouvelle fusion.\n"
#: lib/merge.tcl:54
#, tcl-format
@@ -1546,7 +1617,9 @@ msgstr ""
"\n"
"Le fichier %s est modifié.\n"
"\n"
-"Vous devriez terminer le commit courant avant de lancer une fusion. En faisait comme cela, vous éviterez de devoir éventuellement abandonner une fusion ayant échouée.\n"
+"Vous devriez terminer le commit courant avant de lancer une fusion. En "
+"faisait comme cela, vous éviterez de devoir éventuellement abandonner une "
+"fusion ayant échouée.\n"
#: lib/merge.tcl:106
#, tcl-format
@@ -1554,28 +1627,28 @@ msgid "%s of %s"
msgstr "%s de %s"
#: lib/merge.tcl:119
-#, tcl-format
-msgid "Merging %s and %s"
+#, fuzzy, tcl-format
+msgid "Merging %s and %s..."
msgstr "Fusion de %s et %s"
-#: lib/merge.tcl:131
+#: lib/merge.tcl:130
msgid "Merge completed successfully."
msgstr "La fusion s'est faite avec succès."
-#: lib/merge.tcl:133
+#: lib/merge.tcl:132
msgid "Merge failed. Conflict resolution is required."
msgstr "La fusion a echouée. Il est nécessaire de résoudre les conflicts."
-#: lib/merge.tcl:158
+#: lib/merge.tcl:157
#, tcl-format
msgid "Merge Into %s"
msgstr "Fusion dans %s"
-#: lib/merge.tcl:177
+#: lib/merge.tcl:176
msgid "Revision To Merge"
msgstr "Révision à fusionner"
-#: lib/merge.tcl:212
+#: lib/merge.tcl:211
msgid ""
"Cannot abort while amending.\n"
"\n"
@@ -1585,7 +1658,7 @@ msgstr ""
"\n"
"Vous devez finir de corriger ce commit.\n"
-#: lib/merge.tcl:222
+#: lib/merge.tcl:221
msgid ""
"Abort merge?\n"
"\n"
@@ -1595,11 +1668,12 @@ msgid ""
msgstr ""
"Abandonner la fusion ?\n"
"\n"
-"Abandonner la fusion courante entrainera la perte de TOUTES les modifications non commitées.\n"
+"Abandonner la fusion courante entrainera la perte de TOUTES les "
+"modifications non commitées.\n"
"\n"
"Abandonner quand même la fusion courante ?"
-#: lib/merge.tcl:228
+#: lib/merge.tcl:227
msgid ""
"Reset changes?\n"
"\n"
@@ -1609,97 +1683,112 @@ msgid ""
msgstr ""
"Réinitialiser les modifications ?\n"
"\n"
-"Réinitialiser les modifications va faire perdre TOUTES les modifications non commitées.\n"
+"Réinitialiser les modifications va faire perdre TOUTES les modifications non "
+"commitées.\n"
"\n"
"Réinitialiser quand même les modifications courantes ?"
-#: lib/merge.tcl:239
+#: lib/merge.tcl:238
msgid "Aborting"
msgstr "Abandon"
-#: lib/merge.tcl:266
+#: lib/merge.tcl:238
+#, fuzzy
+msgid "files reset"
+msgstr "fichiers"
+
+#: lib/merge.tcl:265
msgid "Abort failed."
msgstr "L'abandon a échoué."
-#: lib/merge.tcl:268
+#: lib/merge.tcl:267
msgid "Abort completed. Ready."
msgstr "Abandon teminé. Prêt."
-#: lib/option.tcl:82
+#: lib/option.tcl:95
msgid "Restore Defaults"
msgstr "Remettre les valeurs par défaut"
-#: lib/option.tcl:86
+#: lib/option.tcl:99
msgid "Save"
msgstr "Sauvegarder"
-#: lib/option.tcl:96
+#: lib/option.tcl:109
#, tcl-format
msgid "%s Repository"
msgstr "Référentiel de %s"
-#: lib/option.tcl:97
+#: lib/option.tcl:110
msgid "Global (All Repositories)"
msgstr "Globales (tous les référentiels)"
-#: lib/option.tcl:103
+#: lib/option.tcl:116
msgid "User Name"
msgstr "Nom d'utilisateur"
-#: lib/option.tcl:104
+#: lib/option.tcl:117
msgid "Email Address"
msgstr "Adresse email"
-#: lib/option.tcl:106
+#: lib/option.tcl:119
msgid "Summarize Merge Commits"
msgstr "Résumer les commits de fusion"
-#: lib/option.tcl:107
+#: lib/option.tcl:120
msgid "Merge Verbosity"
msgstr "Fusion bavarde"
-#: lib/option.tcl:108
+#: lib/option.tcl:121
msgid "Show Diffstat After Merge"
msgstr "Montrer statistiques de diff après fusion"
-#: lib/option.tcl:110
+#: lib/option.tcl:123
msgid "Trust File Modification Timestamps"
msgstr "Faire confiance aux dates de modification de fichiers "
-#: lib/option.tcl:111
+#: lib/option.tcl:124
msgid "Prune Tracking Branches During Fetch"
msgstr "Nettoyer les branches de suivi pendant la récupération"
-#: lib/option.tcl:112
+#: lib/option.tcl:125
msgid "Match Tracking Branches"
msgstr "Faire correspondre les branches de suivi"
-#: lib/option.tcl:113
+#: lib/option.tcl:126
msgid "Number of Diff Context Lines"
msgstr "Nombre de lignes de contexte dans les diffs"
-#: lib/option.tcl:114
+#: lib/option.tcl:127
+#, fuzzy
+msgid "Commit Message Text Width"
+msgstr "Message de commit :"
+
+#: lib/option.tcl:128
msgid "New Branch Name Template"
msgstr "Nouveau modèle de nom de branche"
-#: lib/option.tcl:176
+#: lib/option.tcl:192
+msgid "Spelling Dictionary:"
+msgstr ""
+
+#: lib/option.tcl:216
msgid "Change Font"
msgstr "Modifier les fontes"
-#: lib/option.tcl:180
+#: lib/option.tcl:220
#, tcl-format
msgid "Choose %s"
msgstr "Choisir %s"
-#: lib/option.tcl:186
+#: lib/option.tcl:226
msgid "pt."
msgstr "pt."
-#: lib/option.tcl:200
+#: lib/option.tcl:240
msgid "Preferences"
msgstr "Préférences"
-#: lib/option.tcl:235
+#: lib/option.tcl:275
msgid "Failed to completely save options:"
msgstr "La sauvegarde complète des options a échouée :"
@@ -1755,7 +1844,9 @@ msgstr ""
msgid ""
"One or more of the merge tests failed because you have not fetched the "
"necessary commits. Try fetching from %s first."
-msgstr "Une ou plusieurs des tests de fusion ont échoués parce que vous n'avez pas récupéré les commits nécessaires. Essayez de récupéré à partir de %s d'abord."
+msgstr ""
+"Une ou plusieurs des tests de fusion ont échoués parce que vous n'avez pas "
+"récupéré les commits nécessaires. Essayez de récupéré à partir de %s d'abord."
#: lib/remote_branch_delete.tcl:207
msgid "Please select one or more branches to delete."
@@ -1805,6 +1896,43 @@ msgstr "Impossible d'écrire le raccourcis :"
msgid "Cannot write icon:"
msgstr "Impossible d'écrire l'icône :"
+#: lib/spellcheck.tcl:57
+msgid "Unsupported spell checker"
+msgstr ""
+
+#: lib/spellcheck.tcl:65
+msgid "Spell checking is unavailable"
+msgstr ""
+
+#: lib/spellcheck.tcl:68
+msgid "Invalid spell checking configuration"
+msgstr ""
+
+#: lib/spellcheck.tcl:70
+#, tcl-format
+msgid "Reverting dictionary to %s."
+msgstr ""
+
+#: lib/spellcheck.tcl:73
+msgid "Spell checker silently failed on startup"
+msgstr ""
+
+#: lib/spellcheck.tcl:80
+msgid "Unrecognized spell checker"
+msgstr ""
+
+#: lib/spellcheck.tcl:180
+msgid "No Suggestions"
+msgstr ""
+
+#: lib/spellcheck.tcl:381
+msgid "Unexpected EOF from spell checker"
+msgstr ""
+
+#: lib/spellcheck.tcl:385
+msgid "Spell Checker Failed"
+msgstr ""
+
#: lib/status_bar.tcl:83
#, tcl-format
msgid "%s ... %*i of %*i %s (%3i%%)"
@@ -1863,7 +1991,9 @@ msgstr "Transférer options"
#: lib/transport.tcl:160
msgid "Force overwrite existing branch (may discard changes)"
-msgstr "Forcer l'écrasement d'une branche existante (peut supprimer des modifications)"
+msgstr ""
+"Forcer l'écrasement d'une branche existante (peut supprimer des "
+"modifications)"
#: lib/transport.tcl:164
msgid "Use thin pack (for slow network connections)"
@@ -1872,4 +2002,3 @@ msgstr "Utiliser des petits paquets (pour les connexions lentes)"
#: lib/transport.tcl:168
msgid "Include tags"
msgstr "Inclure les marques"
-
diff --git a/git-gui/po/git-gui.pot b/git-gui/po/git-gui.pot
index 2e332849fb..813199f782 100644
--- a/git-gui/po/git-gui.pot
+++ b/git-gui/po/git-gui.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-02-16 21:24+0100\n"
+"POT-Creation-Date: 2008-03-14 07:18+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"
@@ -16,33 +16,33 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: git-gui.sh:41 git-gui.sh:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
-#: git-gui.sh:733
+#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+#: git-gui.sh:763
msgid "git-gui: fatal error"
msgstr ""
-#: git-gui.sh:565
+#: git-gui.sh:593
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr ""
-#: git-gui.sh:590
+#: git-gui.sh:620
msgid "Main Font"
msgstr ""
-#: git-gui.sh:591
+#: git-gui.sh:621
msgid "Diff/Console Font"
msgstr ""
-#: git-gui.sh:605
+#: git-gui.sh:635
msgid "Cannot find git in PATH."
msgstr ""
-#: git-gui.sh:632
+#: git-gui.sh:662
msgid "Cannot parse Git version string:"
msgstr ""
-#: git-gui.sh:650
+#: git-gui.sh:680
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
@@ -54,79 +54,79 @@ msgid ""
"Assume '%s' is version 1.5.0?\n"
msgstr ""
-#: git-gui.sh:888
+#: git-gui.sh:918
msgid "Git directory not found:"
msgstr ""
-#: git-gui.sh:895
+#: git-gui.sh:925
msgid "Cannot move to top of working directory:"
msgstr ""
-#: git-gui.sh:902
+#: git-gui.sh:932
msgid "Cannot use funny .git directory:"
msgstr ""
-#: git-gui.sh:907
+#: git-gui.sh:937
msgid "No working directory"
msgstr ""
-#: git-gui.sh:1054
+#: git-gui.sh:1084 lib/checkout_op.tcl:283
msgid "Refreshing file status..."
msgstr ""
-#: git-gui.sh:1119
+#: git-gui.sh:1149
msgid "Scanning for modified files ..."
msgstr ""
-#: git-gui.sh:1294 lib/browser.tcl:245
+#: git-gui.sh:1324 lib/browser.tcl:246
msgid "Ready."
msgstr ""
-#: git-gui.sh:1560
+#: git-gui.sh:1590
msgid "Unmodified"
msgstr ""
-#: git-gui.sh:1562
+#: git-gui.sh:1592
msgid "Modified, not staged"
msgstr ""
-#: git-gui.sh:1563 git-gui.sh:1568
+#: git-gui.sh:1593 git-gui.sh:1598
msgid "Staged for commit"
msgstr ""
-#: git-gui.sh:1564 git-gui.sh:1569
+#: git-gui.sh:1594 git-gui.sh:1599
msgid "Portions staged for commit"
msgstr ""
-#: git-gui.sh:1565 git-gui.sh:1570
+#: git-gui.sh:1595 git-gui.sh:1600
msgid "Staged for commit, missing"
msgstr ""
-#: git-gui.sh:1567
+#: git-gui.sh:1597
msgid "Untracked, not staged"
msgstr ""
-#: git-gui.sh:1572
+#: git-gui.sh:1602
msgid "Missing"
msgstr ""
-#: git-gui.sh:1573
+#: git-gui.sh:1603
msgid "Staged for removal"
msgstr ""
-#: git-gui.sh:1574
+#: git-gui.sh:1604
msgid "Staged for removal, still present"
msgstr ""
-#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
+#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609
msgid "Requires merge resolution"
msgstr ""
-#: git-gui.sh:1614
+#: git-gui.sh:1644
msgid "Starting gitk... please wait..."
msgstr ""
-#: git-gui.sh:1623
+#: git-gui.sh:1653
#, tcl-format
msgid ""
"Unable to start gitk:\n"
@@ -134,295 +134,295 @@ msgid ""
"%s does not exist"
msgstr ""
-#: git-gui.sh:1823 lib/choose_repository.tcl:35
+#: git-gui.sh:1860 lib/choose_repository.tcl:36
msgid "Repository"
msgstr ""
-#: git-gui.sh:1824
+#: git-gui.sh:1861
msgid "Edit"
msgstr ""
-#: git-gui.sh:1826 lib/choose_rev.tcl:560
+#: git-gui.sh:1863 lib/choose_rev.tcl:561
msgid "Branch"
msgstr ""
-#: git-gui.sh:1829 lib/choose_rev.tcl:547
+#: git-gui.sh:1866 lib/choose_rev.tcl:548
msgid "Commit@@noun"
msgstr ""
-#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167
msgid "Merge"
msgstr ""
-#: git-gui.sh:1833 lib/choose_rev.tcl:556
+#: git-gui.sh:1870 lib/choose_rev.tcl:557
msgid "Remote"
msgstr ""
-#: git-gui.sh:1842
+#: git-gui.sh:1879
msgid "Browse Current Branch's Files"
msgstr ""
-#: git-gui.sh:1846
+#: git-gui.sh:1883
msgid "Browse Branch Files..."
msgstr ""
-#: git-gui.sh:1851
+#: git-gui.sh:1888
msgid "Visualize Current Branch's History"
msgstr ""
-#: git-gui.sh:1855
+#: git-gui.sh:1892
msgid "Visualize All Branch History"
msgstr ""
-#: git-gui.sh:1862
+#: git-gui.sh:1899
#, tcl-format
msgid "Browse %s's Files"
msgstr ""
-#: git-gui.sh:1864
+#: git-gui.sh:1901
#, tcl-format
msgid "Visualize %s's History"
msgstr ""
-#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr ""
-#: git-gui.sh:1872 lib/database.tcl:34
+#: git-gui.sh:1909 lib/database.tcl:34
msgid "Compress Database"
msgstr ""
-#: git-gui.sh:1875
+#: git-gui.sh:1912
msgid "Verify Database"
msgstr ""
-#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr ""
-#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185
msgid "Quit"
msgstr ""
-#: git-gui.sh:1902
+#: git-gui.sh:1939
msgid "Undo"
msgstr ""
-#: git-gui.sh:1905
+#: git-gui.sh:1942
msgid "Redo"
msgstr ""
-#: git-gui.sh:1909 git-gui.sh:2403
+#: git-gui.sh:1946 git-gui.sh:2443
msgid "Cut"
msgstr ""
-#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
-#: lib/console.tcl:67
+#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614
+#: lib/console.tcl:69
msgid "Copy"
msgstr ""
-#: git-gui.sh:1915 git-gui.sh:2409
+#: git-gui.sh:1952 git-gui.sh:2449
msgid "Paste"
msgstr ""
-#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
+#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr ""
-#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
+#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71
msgid "Select All"
msgstr ""
-#: git-gui.sh:1931
+#: git-gui.sh:1968
msgid "Create..."
msgstr ""
-#: git-gui.sh:1937
+#: git-gui.sh:1974
msgid "Checkout..."
msgstr ""
-#: git-gui.sh:1943
+#: git-gui.sh:1980
msgid "Rename..."
msgstr ""
-#: git-gui.sh:1948 git-gui.sh:2048
+#: git-gui.sh:1985 git-gui.sh:2085
msgid "Delete..."
msgstr ""
-#: git-gui.sh:1953
+#: git-gui.sh:1990
msgid "Reset..."
msgstr ""
-#: git-gui.sh:1965 git-gui.sh:2350
+#: git-gui.sh:2002 git-gui.sh:2389
msgid "New Commit"
msgstr ""
-#: git-gui.sh:1973 git-gui.sh:2357
+#: git-gui.sh:2010 git-gui.sh:2396
msgid "Amend Last Commit"
msgstr ""
-#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr ""
-#: git-gui.sh:1988
+#: git-gui.sh:2025
msgid "Stage To Commit"
msgstr ""
-#: git-gui.sh:1994
+#: git-gui.sh:2031
msgid "Stage Changed Files To Commit"
msgstr ""
-#: git-gui.sh:2000
+#: git-gui.sh:2037
msgid "Unstage From Commit"
msgstr ""
-#: git-gui.sh:2005 lib/index.tcl:393
+#: git-gui.sh:2042 lib/index.tcl:395
msgid "Revert Changes"
msgstr ""
-#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
+#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467
msgid "Sign Off"
msgstr ""
-#: git-gui.sh:2016 git-gui.sh:2333
+#: git-gui.sh:2053 git-gui.sh:2372
msgid "Commit@@verb"
msgstr ""
-#: git-gui.sh:2027
+#: git-gui.sh:2064
msgid "Local Merge..."
msgstr ""
-#: git-gui.sh:2032
+#: git-gui.sh:2069
msgid "Abort Merge..."
msgstr ""
-#: git-gui.sh:2044
+#: git-gui.sh:2081
msgid "Push..."
msgstr ""
-#: git-gui.sh:2055 lib/choose_repository.tcl:40
+#: git-gui.sh:2092 lib/choose_repository.tcl:41
msgid "Apple"
msgstr ""
-#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
-#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14
+#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
#, tcl-format
msgid "About %s"
msgstr ""
-#: git-gui.sh:2062
+#: git-gui.sh:2099
msgid "Preferences..."
msgstr ""
-#: git-gui.sh:2070 git-gui.sh:2595
+#: git-gui.sh:2107 git-gui.sh:2639
msgid "Options..."
msgstr ""
-#: git-gui.sh:2076 lib/choose_repository.tcl:46
+#: git-gui.sh:2113 lib/choose_repository.tcl:47
msgid "Help"
msgstr ""
-#: git-gui.sh:2117
+#: git-gui.sh:2154
msgid "Online Documentation"
msgstr ""
-#: git-gui.sh:2201
+#: git-gui.sh:2238
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
msgstr ""
-#: git-gui.sh:2234
+#: git-gui.sh:2271
msgid "Current Branch:"
msgstr ""
-#: git-gui.sh:2255
+#: git-gui.sh:2292
msgid "Staged Changes (Will Commit)"
msgstr ""
-#: git-gui.sh:2274
+#: git-gui.sh:2312
msgid "Unstaged Changes"
msgstr ""
-#: git-gui.sh:2323
+#: git-gui.sh:2362
msgid "Stage Changed"
msgstr ""
-#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr ""
-#: git-gui.sh:2369
+#: git-gui.sh:2408
msgid "Initial Commit Message:"
msgstr ""
-#: git-gui.sh:2370
+#: git-gui.sh:2409
msgid "Amended Commit Message:"
msgstr ""
-#: git-gui.sh:2371
+#: git-gui.sh:2410
msgid "Amended Initial Commit Message:"
msgstr ""
-#: git-gui.sh:2372
+#: git-gui.sh:2411
msgid "Amended Merge Commit Message:"
msgstr ""
-#: git-gui.sh:2373
+#: git-gui.sh:2412
msgid "Merge Commit Message:"
msgstr ""
-#: git-gui.sh:2374
+#: git-gui.sh:2413
msgid "Commit Message:"
msgstr ""
-#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
+#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73
msgid "Copy All"
msgstr ""
-#: git-gui.sh:2443 lib/blame.tcl:104
+#: git-gui.sh:2483 lib/blame.tcl:107
msgid "File:"
msgstr ""
-#: git-gui.sh:2573
+#: git-gui.sh:2589
msgid "Apply/Reverse Hunk"
msgstr ""
-#: git-gui.sh:2579
+#: git-gui.sh:2595
msgid "Show Less Context"
msgstr ""
-#: git-gui.sh:2586
+#: git-gui.sh:2602
msgid "Show More Context"
msgstr ""
-#: git-gui.sh:2594
+#: git-gui.sh:2610
msgid "Refresh"
msgstr ""
-#: git-gui.sh:2615
+#: git-gui.sh:2631
msgid "Decrease Font Size"
msgstr ""
-#: git-gui.sh:2619
+#: git-gui.sh:2635
msgid "Increase Font Size"
msgstr ""
-#: git-gui.sh:2630
+#: git-gui.sh:2646
msgid "Unstage Hunk From Commit"
msgstr ""
-#: git-gui.sh:2604
+#: git-gui.sh:2648
msgid "Stage Hunk For Commit"
msgstr ""
-#: git-gui.sh:2623
+#: git-gui.sh:2667
msgid "Initializing..."
msgstr ""
-#: git-gui.sh:2718
+#: git-gui.sh:2762
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
@@ -433,14 +433,14 @@ msgid ""
"\n"
msgstr ""
-#: git-gui.sh:2748
+#: git-gui.sh:2792
msgid ""
"\n"
"This is due to a known issue with the\n"
"Tcl binary distributed by Cygwin."
msgstr ""
-#: git-gui.sh:2753
+#: git-gui.sh:2797
#, tcl-format
msgid ""
"\n"
@@ -451,7 +451,7 @@ msgid ""
"~/.gitconfig file.\n"
msgstr ""
-#: lib/about.tcl:25
+#: lib/about.tcl:26
msgid "git-gui - a graphical user interface for Git."
msgstr ""
@@ -463,56 +463,56 @@ msgstr ""
msgid "Commit:"
msgstr ""
-#: lib/blame.tcl:249
+#: lib/blame.tcl:264
msgid "Copy Commit"
msgstr ""
-#: lib/blame.tcl:369
+#: lib/blame.tcl:384
#, tcl-format
msgid "Reading %s..."
msgstr ""
-#: lib/blame.tcl:473
+#: lib/blame.tcl:488
msgid "Loading copy/move tracking annotations..."
msgstr ""
-#: lib/blame.tcl:493
+#: lib/blame.tcl:508
msgid "lines annotated"
msgstr ""
-#: lib/blame.tcl:674
+#: lib/blame.tcl:689
msgid "Loading original location annotations..."
msgstr ""
-#: lib/blame.tcl:677
+#: lib/blame.tcl:692
msgid "Annotation complete."
msgstr ""
-#: lib/blame.tcl:731
+#: lib/blame.tcl:746
msgid "Loading annotation..."
msgstr ""
-#: lib/blame.tcl:787
+#: lib/blame.tcl:802
msgid "Author:"
msgstr ""
-#: lib/blame.tcl:791
+#: lib/blame.tcl:806
msgid "Committer:"
msgstr ""
-#: lib/blame.tcl:796
+#: lib/blame.tcl:811
msgid "Original File:"
msgstr ""
-#: lib/blame.tcl:910
+#: lib/blame.tcl:925
msgid "Originally By:"
msgstr ""
-#: lib/blame.tcl:916
+#: lib/blame.tcl:931
msgid "In File:"
msgstr ""
-#: lib/blame.tcl:921
+#: lib/blame.tcl:936
msgid "Copied Or Moved Here By:"
msgstr ""
@@ -525,17 +525,17 @@ msgid "Checkout"
msgstr ""
#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
-#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
-#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
-#: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282
+#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171
+#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
msgid "Cancel"
msgstr ""
-#: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+#: lib/branch_checkout.tcl:32 lib/browser.tcl:287
msgid "Revision"
msgstr ""
-#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242
msgid "Options"
msgstr ""
@@ -555,7 +555,7 @@ msgstr ""
msgid "Create New Branch"
msgstr ""
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371
msgid "Create"
msgstr ""
@@ -690,22 +690,22 @@ msgstr ""
msgid "File Browser"
msgstr ""
-#: lib/browser.tcl:125 lib/browser.tcl:142
+#: lib/browser.tcl:126 lib/browser.tcl:143
#, tcl-format
msgid "Loading %s..."
msgstr ""
-#: lib/browser.tcl:186
+#: lib/browser.tcl:187
msgid "[Up To Parent]"
msgstr ""
-#: lib/browser.tcl:266 lib/browser.tcl:272
+#: lib/browser.tcl:267 lib/browser.tcl:273
msgid "Browse Branch Files"
msgstr ""
-#: lib/browser.tcl:277 lib/choose_repository.tcl:391
-#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
-#: lib/choose_repository.tcl:989
+#: lib/browser.tcl:278 lib/choose_repository.tcl:387
+#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484
+#: lib/choose_repository.tcl:987
msgid "Browse"
msgstr ""
@@ -719,7 +719,7 @@ msgstr ""
msgid "fatal: Cannot resolve %s"
msgstr ""
-#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
msgstr ""
@@ -792,7 +792,7 @@ msgid ""
"Checkout'."
msgstr ""
-#: lib/checkout_op.tcl:446
+#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450
#, tcl-format
msgid "Checked out '%s'."
msgstr ""
@@ -811,7 +811,7 @@ msgstr ""
msgid "Reset '%s'?"
msgstr ""
-#: lib/checkout_op.tcl:510 lib/merge.tcl:164
+#: lib/checkout_op.tcl:510 lib/merge.tcl:163
msgid "Visualize"
msgstr ""
@@ -834,239 +834,239 @@ msgstr ""
msgid "Font Family"
msgstr ""
-#: lib/choose_font.tcl:73
+#: lib/choose_font.tcl:74
msgid "Font Size"
msgstr ""
-#: lib/choose_font.tcl:90
+#: lib/choose_font.tcl:91
msgid "Font Example"
msgstr ""
-#: lib/choose_font.tcl:101
+#: lib/choose_font.tcl:103
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
msgstr ""
-#: lib/choose_repository.tcl:27
+#: lib/choose_repository.tcl:28
msgid "Git Gui"
msgstr ""
-#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376
msgid "Create New Repository"
msgstr ""
-#: lib/choose_repository.tcl:86
+#: lib/choose_repository.tcl:87
msgid "New..."
msgstr ""
-#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460
msgid "Clone Existing Repository"
msgstr ""
-#: lib/choose_repository.tcl:99
+#: lib/choose_repository.tcl:100
msgid "Clone..."
msgstr ""
-#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976
msgid "Open Existing Repository"
msgstr ""
-#: lib/choose_repository.tcl:112
+#: lib/choose_repository.tcl:113
msgid "Open..."
msgstr ""
-#: lib/choose_repository.tcl:125
+#: lib/choose_repository.tcl:126
msgid "Recent Repositories"
msgstr ""
-#: lib/choose_repository.tcl:131
+#: lib/choose_repository.tcl:132
msgid "Open Recent Repository:"
msgstr ""
-#: lib/choose_repository.tcl:294
-#, tcl-format
-msgid "Location %s already exists."
-msgstr ""
-
-#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
-#: lib/choose_repository.tcl:314
+#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303
+#: lib/choose_repository.tcl:310
#, tcl-format
msgid "Failed to create repository %s:"
msgstr ""
-#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478
msgid "Directory:"
msgstr ""
-#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
-#: lib/choose_repository.tcl:1013
+#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537
+#: lib/choose_repository.tcl:1011
msgid "Git Repository"
msgstr ""
-#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#: lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr ""
-#: lib/choose_repository.tcl:442
+#: lib/choose_repository.tcl:441
#, tcl-format
msgid "File %s already exists."
msgstr ""
-#: lib/choose_repository.tcl:463
+#: lib/choose_repository.tcl:455
msgid "Clone"
msgstr ""
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:468
msgid "URL:"
msgstr ""
-#: lib/choose_repository.tcl:496
+#: lib/choose_repository.tcl:489
msgid "Clone Type:"
msgstr ""
-#: lib/choose_repository.tcl:502
+#: lib/choose_repository.tcl:495
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr ""
-#: lib/choose_repository.tcl:508
+#: lib/choose_repository.tcl:501
msgid "Full Copy (Slower, Redundant Backup)"
msgstr ""
-#: lib/choose_repository.tcl:514
+#: lib/choose_repository.tcl:507
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr ""
-#: 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
+#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806
+#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025
#, tcl-format
msgid "Not a Git repository: %s"
msgstr ""
-#: lib/choose_repository.tcl:586
+#: lib/choose_repository.tcl:579
msgid "Standard only available for local repository."
msgstr ""
-#: lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:583
msgid "Shared only available for local repository."
msgstr ""
-#: lib/choose_repository.tcl:617
+#: lib/choose_repository.tcl:604
+#, tcl-format
+msgid "Location %s already exists."
+msgstr ""
+
+#: lib/choose_repository.tcl:615
msgid "Failed to configure origin"
msgstr ""
-#: lib/choose_repository.tcl:629
+#: lib/choose_repository.tcl:627
msgid "Counting objects"
msgstr ""
-#: lib/choose_repository.tcl:630
+#: lib/choose_repository.tcl:628
msgid "buckets"
msgstr ""
-#: lib/choose_repository.tcl:654
+#: lib/choose_repository.tcl:652
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr ""
-#: lib/choose_repository.tcl:690
+#: lib/choose_repository.tcl:688
#, tcl-format
msgid "Nothing to clone from %s."
msgstr ""
-#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
-#: lib/choose_repository.tcl:918
+#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:916
msgid "The 'master' branch has not been initialized."
msgstr ""
-#: lib/choose_repository.tcl:705
+#: lib/choose_repository.tcl:703
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr ""
-#: lib/choose_repository.tcl:717
+#: lib/choose_repository.tcl:715
#, tcl-format
msgid "Cloning from %s"
msgstr ""
-#: lib/choose_repository.tcl:748
+#: lib/choose_repository.tcl:746
msgid "Copying objects"
msgstr ""
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:747
msgid "KiB"
msgstr ""
-#: lib/choose_repository.tcl:773
+#: lib/choose_repository.tcl:771
#, tcl-format
msgid "Unable to copy object: %s"
msgstr ""
-#: lib/choose_repository.tcl:783
+#: lib/choose_repository.tcl:781
msgid "Linking objects"
msgstr ""
-#: lib/choose_repository.tcl:784
+#: lib/choose_repository.tcl:782
msgid "objects"
msgstr ""
-#: lib/choose_repository.tcl:792
+#: lib/choose_repository.tcl:790
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr ""
-#: lib/choose_repository.tcl:847
+#: lib/choose_repository.tcl:845
msgid "Cannot fetch branches and objects. See console output for details."
msgstr ""
-#: lib/choose_repository.tcl:858
+#: lib/choose_repository.tcl:856
msgid "Cannot fetch tags. See console output for details."
msgstr ""
-#: lib/choose_repository.tcl:882
+#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
msgstr ""
-#: lib/choose_repository.tcl:891
+#: lib/choose_repository.tcl:889
#, tcl-format
msgid "Unable to cleanup %s"
msgstr ""
-#: lib/choose_repository.tcl:897
+#: lib/choose_repository.tcl:895
msgid "Clone failed."
msgstr ""
-#: lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:902
msgid "No default branch obtained."
msgstr ""
-#: lib/choose_repository.tcl:915
+#: lib/choose_repository.tcl:913
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr ""
-#: lib/choose_repository.tcl:927
+#: lib/choose_repository.tcl:925
msgid "Creating working directory"
msgstr ""
-#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127
#: lib/index.tcl:193
msgid "files"
msgstr ""
-#: lib/choose_repository.tcl:957
+#: lib/choose_repository.tcl:955
msgid "Initial file checkout failed."
msgstr ""
-#: lib/choose_repository.tcl:973
+#: lib/choose_repository.tcl:971
msgid "Open"
msgstr ""
-#: lib/choose_repository.tcl:983
+#: lib/choose_repository.tcl:981
msgid "Repository:"
msgstr ""
-#: lib/choose_repository.tcl:1033
+#: lib/choose_repository.tcl:1031
#, tcl-format
msgid "Failed to open repository %s:"
msgstr ""
@@ -1087,7 +1087,7 @@ msgstr ""
msgid "Tracking Branch"
msgstr ""
-#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538
msgid "Tag"
msgstr ""
@@ -1104,11 +1104,11 @@ msgstr ""
msgid "Revision expression is empty."
msgstr ""
-#: lib/choose_rev.tcl:530
+#: lib/choose_rev.tcl:531
msgid "Updated"
msgstr ""
-#: lib/choose_rev.tcl:558
+#: lib/choose_rev.tcl:559
msgid "URL"
msgstr ""
@@ -1224,7 +1224,7 @@ msgstr ""
msgid "Commit %s appears to be corrupt"
msgstr ""
-#: lib/commit.tcl:279
+#: lib/commit.tcl:326
msgid ""
"No changes to commit.\n"
"\n"
@@ -1233,7 +1233,7 @@ msgid ""
"A rescan will be automatically started now.\n"
msgstr ""
-#: lib/commit.tcl:286
+#: lib/commit.tcl:333
msgid "No changes to commit."
msgstr ""
@@ -1241,24 +1241,24 @@ msgstr ""
msgid "commit-tree failed:"
msgstr ""
-#: lib/commit.tcl:339
+#: lib/commit.tcl:367
msgid "update-ref failed:"
msgstr ""
-#: lib/commit.tcl:430
+#: lib/commit.tcl:454
#, tcl-format
msgid "Created commit %s: %s"
msgstr ""
-#: lib/console.tcl:57
+#: lib/console.tcl:59
msgid "Working... please wait..."
msgstr ""
-#: lib/console.tcl:183
+#: lib/console.tcl:186
msgid "Success"
msgstr ""
-#: lib/console.tcl:196
+#: lib/console.tcl:200
msgid "Error: Command Failed"
msgstr ""
@@ -1354,23 +1354,23 @@ msgstr ""
msgid "Error loading diff:"
msgstr ""
-#: lib/diff.tcl:302
+#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
msgstr ""
-#: lib/diff.tcl:309
+#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
msgstr ""
-#: lib/error.tcl:12 lib/error.tcl:102
+#: lib/error.tcl:20 lib/error.tcl:114
msgid "error"
msgstr ""
-#: lib/error.tcl:28
+#: lib/error.tcl:36
msgid "warning"
msgstr ""
-#: lib/error.tcl:81
+#: lib/error.tcl:94
msgid "You must correct the above errors before committing."
msgstr ""
@@ -1420,11 +1420,11 @@ msgstr ""
msgid "Revert changes in these %i files?"
msgstr ""
-#: lib/index.tcl:389
+#: lib/index.tcl:391
msgid "Any unstaged changes will be permanently lost by the revert."
msgstr ""
-#: lib/index.tcl:392
+#: lib/index.tcl:394
msgid "Do Nothing"
msgstr ""
@@ -1481,27 +1481,27 @@ msgstr ""
msgid "Merge completed successfully."
msgstr ""
-#: lib/merge.tcl:133
+#: lib/merge.tcl:132
msgid "Merge failed. Conflict resolution is required."
msgstr ""
-#: lib/merge.tcl:158
+#: lib/merge.tcl:157
#, tcl-format
msgid "Merge Into %s"
msgstr ""
-#: lib/merge.tcl:177
+#: lib/merge.tcl:176
msgid "Revision To Merge"
msgstr ""
-#: lib/merge.tcl:212
+#: lib/merge.tcl:211
msgid ""
"Cannot abort while amending.\n"
"\n"
"You must finish amending this commit.\n"
msgstr ""
-#: lib/merge.tcl:222
+#: lib/merge.tcl:221
msgid ""
"Abort merge?\n"
"\n"
@@ -1510,7 +1510,7 @@ msgid ""
"Continue with aborting the current merge?"
msgstr ""
-#: lib/merge.tcl:228
+#: lib/merge.tcl:227
msgid ""
"Reset changes?\n"
"\n"
@@ -1519,7 +1519,7 @@ msgid ""
"Continue with resetting the current changes?"
msgstr ""
-#: lib/merge.tcl:239
+#: lib/merge.tcl:238
msgid "Aborting"
msgstr ""
@@ -1531,89 +1531,93 @@ msgstr ""
msgid "Abort failed."
msgstr ""
-#: lib/merge.tcl:268
+#: lib/merge.tcl:267
msgid "Abort completed. Ready."
msgstr ""
-#: lib/option.tcl:82
+#: lib/option.tcl:95
msgid "Restore Defaults"
msgstr ""
-#: lib/option.tcl:86
+#: lib/option.tcl:99
msgid "Save"
msgstr ""
-#: lib/option.tcl:96
+#: lib/option.tcl:109
#, tcl-format
msgid "%s Repository"
msgstr ""
-#: lib/option.tcl:97
+#: lib/option.tcl:110
msgid "Global (All Repositories)"
msgstr ""
-#: lib/option.tcl:103
+#: lib/option.tcl:116
msgid "User Name"
msgstr ""
-#: lib/option.tcl:104
+#: lib/option.tcl:117
msgid "Email Address"
msgstr ""
-#: lib/option.tcl:106
+#: lib/option.tcl:119
msgid "Summarize Merge Commits"
msgstr ""
-#: lib/option.tcl:107
+#: lib/option.tcl:120
msgid "Merge Verbosity"
msgstr ""
-#: lib/option.tcl:108
+#: lib/option.tcl:121
msgid "Show Diffstat After Merge"
msgstr ""
-#: lib/option.tcl:110
+#: lib/option.tcl:123
msgid "Trust File Modification Timestamps"
msgstr ""
-#: lib/option.tcl:111
+#: lib/option.tcl:124
msgid "Prune Tracking Branches During Fetch"
msgstr ""
-#: lib/option.tcl:112
+#: lib/option.tcl:125
msgid "Match Tracking Branches"
msgstr ""
-#: lib/option.tcl:113
+#: lib/option.tcl:126
msgid "Number of Diff Context Lines"
msgstr ""
-#: lib/option.tcl:114
+#: lib/option.tcl:127
+msgid "Commit Message Text Width"
+msgstr ""
+
+#: lib/option.tcl:128
msgid "New Branch Name Template"
msgstr ""
-#: lib/option.tcl:191
+#: lib/option.tcl:192
msgid "Spelling Dictionary:"
msgstr ""
-#: lib/option.tcl:215
+#: lib/option.tcl:216
msgid "Change Font"
msgstr ""
-#: lib/option.tcl:180
+#: lib/option.tcl:220
#, tcl-format
msgid "Choose %s"
msgstr ""
-#: lib/option.tcl:186
+#: lib/option.tcl:226
msgid "pt."
msgstr ""
-#: lib/option.tcl:200
+#: lib/option.tcl:240
msgid "Preferences"
msgstr ""
-#: lib/option.tcl:235
+#: lib/option.tcl:275
msgid "Failed to completely save options:"
msgstr ""
@@ -1713,23 +1717,40 @@ msgstr ""
msgid "Cannot write icon:"
msgstr ""
-#: lib/spellcheck.tcl:37
-msgid "Not connected to aspell"
+#: lib/spellcheck.tcl:57
+msgid "Unsupported spell checker"
+msgstr ""
+
+#: lib/spellcheck.tcl:65
+msgid "Spell checking is unavailable"
+msgstr ""
+
+#: lib/spellcheck.tcl:68
+msgid "Invalid spell checking configuration"
+msgstr ""
+
+#: lib/spellcheck.tcl:70
+#, tcl-format
+msgid "Reverting dictionary to %s."
+msgstr ""
+
+#: lib/spellcheck.tcl:73
+msgid "Spell checker silently failed on startup"
msgstr ""
-#: lib/spellcheck.tcl:41
-msgid "Unrecognized aspell version"
+#: lib/spellcheck.tcl:80
+msgid "Unrecognized spell checker"
msgstr ""
-#: lib/spellcheck.tcl:135
+#: lib/spellcheck.tcl:180
msgid "No Suggestions"
msgstr ""
-#: lib/spellcheck.tcl:336
-msgid "Unexpected EOF from aspell"
+#: lib/spellcheck.tcl:381
+msgid "Unexpected EOF from spell checker"
msgstr ""
-#: lib/spellcheck.tcl:340
+#: lib/spellcheck.tcl:385
msgid "Spell Checker Failed"
msgstr ""
diff --git a/git-gui/po/hu.po b/git-gui/po/hu.po
index 627c05eb99..28760ed978 100644
--- a/git-gui/po/hu.po
+++ b/git-gui/po/hu.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: git-gui-i 18n\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-11-24 10:36+0100\n"
-"PO-Revision-Date: 2007-12-04 01:15+0100\n"
+"POT-Creation-Date: 2008-03-14 07:18+0100\n"
+"PO-Revision-Date: 2008-03-14 17:24+0100\n"
"Last-Translator: Miklos Vajna <vmiklos@frugalware.org>\n"
"Language-Team: Hungarian\n"
"MIME-Version: 1.0\n"
@@ -16,33 +16,33 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: git-gui.sh:41 git-gui.sh:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
-#: git-gui.sh:733
+#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+#: git-gui.sh:763
msgid "git-gui: fatal error"
msgstr "git-gui: végzetes hiba"
-#: git-gui.sh:565
+#: git-gui.sh:593
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "Érvénytelen font lett megadva itt: %s:"
-#: git-gui.sh:590
+#: git-gui.sh:620
msgid "Main Font"
msgstr "Fő betűtípus"
-#: git-gui.sh:591
+#: git-gui.sh:621
msgid "Diff/Console Font"
msgstr "Diff/konzol betűtípus"
-#: git-gui.sh:605
+#: git-gui.sh:635
msgid "Cannot find git in PATH."
msgstr "A git nem található a PATH-ban."
-#: git-gui.sh:632
+#: git-gui.sh:662
msgid "Cannot parse Git version string:"
msgstr "Nem értelmezhető a Git verzió sztring:"
-#: git-gui.sh:650
+#: git-gui.sh:680
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
@@ -61,79 +61,79 @@ msgstr ""
"\n"
"Feltételezhetjük, hogy a(z) '%s' verziója legalább 1.5.0?\n"
-#: git-gui.sh:888
+#: git-gui.sh:918
msgid "Git directory not found:"
msgstr "A Git könyvtár nem található:"
-#: git-gui.sh:895
+#: git-gui.sh:925
msgid "Cannot move to top of working directory:"
msgstr "Nem lehet a munkakönyvtár tetejére lépni:"
-#: git-gui.sh:902
+#: git-gui.sh:932
msgid "Cannot use funny .git directory:"
msgstr "Nem használható vicces .git könyvtár:"
-#: git-gui.sh:907
+#: git-gui.sh:937
msgid "No working directory"
msgstr "Nincs munkakönyvtár"
-#: git-gui.sh:1054
+#: git-gui.sh:1084 lib/checkout_op.tcl:283
msgid "Refreshing file status..."
msgstr "A fájlok státuszának frissítése..."
-#: git-gui.sh:1119
+#: git-gui.sh:1149
msgid "Scanning for modified files ..."
msgstr "Módosított fájlok keresése ..."
-#: git-gui.sh:1294 lib/browser.tcl:245
+#: git-gui.sh:1324 lib/browser.tcl:246
msgid "Ready."
msgstr "Kész."
-#: git-gui.sh:1560
+#: git-gui.sh:1590
msgid "Unmodified"
msgstr "Nem módosított"
-#: git-gui.sh:1562
+#: git-gui.sh:1592
msgid "Modified, not staged"
msgstr "Módosított, de nem kiválasztott"
-#: git-gui.sh:1563 git-gui.sh:1568
+#: git-gui.sh:1593 git-gui.sh:1598
msgid "Staged for commit"
msgstr "Kiválasztva commitolásra"
-#: git-gui.sh:1564 git-gui.sh:1569
+#: git-gui.sh:1594 git-gui.sh:1599
msgid "Portions staged for commit"
msgstr "Részek kiválasztva commitolásra"
-#: git-gui.sh:1565 git-gui.sh:1570
+#: git-gui.sh:1595 git-gui.sh:1600
msgid "Staged for commit, missing"
msgstr "Kiválasztva commitolásra, hiányzó"
-#: git-gui.sh:1567
+#: git-gui.sh:1597
msgid "Untracked, not staged"
msgstr "Nem követett, nem kiválasztott"
-#: git-gui.sh:1572
+#: git-gui.sh:1602
msgid "Missing"
msgstr "Hiányzó"
-#: git-gui.sh:1573
+#: git-gui.sh:1603
msgid "Staged for removal"
msgstr "Kiválasztva eltávolításra"
-#: git-gui.sh:1574
+#: git-gui.sh:1604
msgid "Staged for removal, still present"
msgstr "Kiválasztva eltávolításra, jelenleg is elérhető"
-#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
+#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609
msgid "Requires merge resolution"
msgstr "Merge feloldás szükséges"
-#: git-gui.sh:1614
+#: git-gui.sh:1644
msgid "Starting gitk... please wait..."
msgstr "A gitk indítása... várjunk..."
-#: git-gui.sh:1623
+#: git-gui.sh:1653
#, tcl-format
msgid ""
"Unable to start gitk:\n"
@@ -144,295 +144,296 @@ msgstr ""
"\n"
"A(z) %s nem létezik"
-#: git-gui.sh:1823 lib/choose_repository.tcl:35
+#: git-gui.sh:1860 lib/choose_repository.tcl:36
msgid "Repository"
msgstr "Repó"
-#: git-gui.sh:1824
+#: git-gui.sh:1861
msgid "Edit"
msgstr "Szerkesztés"
-#: git-gui.sh:1826 lib/choose_rev.tcl:560
+#: git-gui.sh:1863 lib/choose_rev.tcl:561
msgid "Branch"
msgstr "Branch"
-#: git-gui.sh:1829 lib/choose_rev.tcl:547
+#: git-gui.sh:1866 lib/choose_rev.tcl:548
msgid "Commit@@noun"
msgstr "Commit@@főnév"
-#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167
msgid "Merge"
msgstr "Merge"
-#: git-gui.sh:1833 lib/choose_rev.tcl:556
+#: git-gui.sh:1870 lib/choose_rev.tcl:557
msgid "Remote"
msgstr "Távoli"
-#: git-gui.sh:1842
+#: git-gui.sh:1879
msgid "Browse Current Branch's Files"
msgstr "A jelenlegi branch fájljainak böngészése"
-#: git-gui.sh:1846
+#: git-gui.sh:1883
msgid "Browse Branch Files..."
msgstr "A branch fájljainak böngészése..."
-#: git-gui.sh:1851
+#: git-gui.sh:1888
msgid "Visualize Current Branch's History"
msgstr "A jelenlegi branch történetének vizualizálása"
-#: git-gui.sh:1855
+#: git-gui.sh:1892
msgid "Visualize All Branch History"
msgstr "Az összes branch történetének vizualizálása"
-#: git-gui.sh:1862
+#: git-gui.sh:1899
#, tcl-format
msgid "Browse %s's Files"
msgstr "A(z) %s branch fájljainak böngészése"
-#: git-gui.sh:1864
+#: git-gui.sh:1901
#, tcl-format
msgid "Visualize %s's History"
msgstr "A(z) %s branch történetének vizualizálása"
-#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "Adatbázis statisztikák"
-#: git-gui.sh:1872 lib/database.tcl:34
+#: git-gui.sh:1909 lib/database.tcl:34
msgid "Compress Database"
msgstr "Adatbázis tömörítése"
-#: git-gui.sh:1875
+#: git-gui.sh:1912
msgid "Verify Database"
msgstr "Adatbázis ellenőrzése"
-#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 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:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185
msgid "Quit"
msgstr "Kilépés"
-#: git-gui.sh:1902
+#: git-gui.sh:1939
msgid "Undo"
msgstr "Visszavonás"
-#: git-gui.sh:1905
+#: git-gui.sh:1942
msgid "Redo"
msgstr "Mégis"
-#: git-gui.sh:1909 git-gui.sh:2403
+#: git-gui.sh:1946 git-gui.sh:2443
msgid "Cut"
msgstr "Kivágás"
-#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
-#: lib/console.tcl:67
+#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614
+#: lib/console.tcl:69
msgid "Copy"
msgstr "Másolás"
-#: git-gui.sh:1915 git-gui.sh:2409
+#: git-gui.sh:1952 git-gui.sh:2449
msgid "Paste"
msgstr "Beillesztés"
-#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
+#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "Törlés"
-#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
+#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71
msgid "Select All"
msgstr "Mindent kiválaszt"
-#: git-gui.sh:1931
+#: git-gui.sh:1968
msgid "Create..."
msgstr "Létrehozás..."
-#: git-gui.sh:1937
+#: git-gui.sh:1974
msgid "Checkout..."
msgstr "Checkout..."
-#: git-gui.sh:1943
+#: git-gui.sh:1980
msgid "Rename..."
msgstr "Ãtnevezés..."
-#: git-gui.sh:1948 git-gui.sh:2048
+#: git-gui.sh:1985 git-gui.sh:2085
msgid "Delete..."
msgstr "Törlés..."
-#: git-gui.sh:1953
+#: git-gui.sh:1990
msgid "Reset..."
msgstr "Visszaállítás..."
-#: git-gui.sh:1965 git-gui.sh:2350
+#: git-gui.sh:2002 git-gui.sh:2389
msgid "New Commit"
msgstr "Új commit"
-#: git-gui.sh:1973 git-gui.sh:2357
+#: git-gui.sh:2010 git-gui.sh:2396
msgid "Amend Last Commit"
msgstr "Utolsó commit javítása"
-#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "Keresés újra"
-#: git-gui.sh:1988
+#: git-gui.sh:2025
msgid "Stage To Commit"
msgstr "Kiválasztás commitolásra"
-#: git-gui.sh:1994
+#: git-gui.sh:2031
msgid "Stage Changed Files To Commit"
msgstr "Módosított fájlok kiválasztása commitolásra"
-#: git-gui.sh:2000
+#: git-gui.sh:2037
msgid "Unstage From Commit"
msgstr "Commitba való kiválasztás visszavonása"
-#: git-gui.sh:2005 lib/index.tcl:393
+#: git-gui.sh:2042 lib/index.tcl:395
msgid "Revert Changes"
msgstr "Változtatások visszaállítása"
-#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
+#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467
msgid "Sign Off"
msgstr "Aláír"
-#: git-gui.sh:2016 git-gui.sh:2333
+#: git-gui.sh:2053 git-gui.sh:2372
msgid "Commit@@verb"
msgstr "Commit@@ige"
-#: git-gui.sh:2027
+#: git-gui.sh:2064
msgid "Local Merge..."
msgstr "Helyi merge..."
-#: git-gui.sh:2032
+#: git-gui.sh:2069
msgid "Abort Merge..."
msgstr "Merge megszakítása..."
-#: git-gui.sh:2044
+#: git-gui.sh:2081
msgid "Push..."
msgstr "Push..."
-#: git-gui.sh:2055 lib/choose_repository.tcl:40
+#: git-gui.sh:2092 lib/choose_repository.tcl:41
msgid "Apple"
msgstr "Apple"
-#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
-#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14
+#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
#, tcl-format
msgid "About %s"
msgstr "Névjegy: %s"
-#: git-gui.sh:2062
+#: git-gui.sh:2099
msgid "Preferences..."
msgstr "Beállítások..."
-#: git-gui.sh:2070 git-gui.sh:2595
+#: git-gui.sh:2107 git-gui.sh:2639
msgid "Options..."
msgstr "Opciók..."
-#: git-gui.sh:2076 lib/choose_repository.tcl:46
+#: git-gui.sh:2113 lib/choose_repository.tcl:47
msgid "Help"
msgstr "Segítség"
-#: git-gui.sh:2117
+#: git-gui.sh:2154
msgid "Online Documentation"
msgstr "Online dokumentáció"
-#: git-gui.sh:2201
+#: git-gui.sh:2238
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
-msgstr "végzetes hiba: nem érhető el a(z) %s útvonal: Nincs ilyen fájl vagy könyvtár"
+msgstr ""
+"végzetes hiba: nem érhető el a(z) %s útvonal: Nincs ilyen fájl vagy könyvtár"
-#: git-gui.sh:2234
+#: git-gui.sh:2271
msgid "Current Branch:"
msgstr "Jelenlegi branch:"
-#: git-gui.sh:2255
+#: git-gui.sh:2292
msgid "Staged Changes (Will Commit)"
msgstr "Kiválasztott változtatások (commitolva lesz)"
-#: git-gui.sh:2274
+#: git-gui.sh:2312
msgid "Unstaged Changes"
msgstr "Kiválasztatlan változtatások"
-#: git-gui.sh:2323
+#: git-gui.sh:2362
msgid "Stage Changed"
msgstr "Változtatások kiválasztása"
-#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "Push"
-#: git-gui.sh:2369
+#: git-gui.sh:2408
msgid "Initial Commit Message:"
msgstr "Kezdeti commit üzenet:"
-#: git-gui.sh:2370
+#: git-gui.sh:2409
msgid "Amended Commit Message:"
msgstr "Javító commit üzenet:"
-#: git-gui.sh:2371
+#: git-gui.sh:2410
msgid "Amended Initial Commit Message:"
msgstr "Kezdeti javító commit üzenet:"
-#: git-gui.sh:2372
+#: git-gui.sh:2411
msgid "Amended Merge Commit Message:"
msgstr "Javító merge commit üzenet:"
-#: git-gui.sh:2373
+#: git-gui.sh:2412
msgid "Merge Commit Message:"
msgstr "Merge commit üzenet:"
-#: git-gui.sh:2374
+#: git-gui.sh:2413
msgid "Commit Message:"
msgstr "Commit üzenet:"
-#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
+#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73
msgid "Copy All"
msgstr "Összes másolása"
-#: git-gui.sh:2443 lib/blame.tcl:104
+#: git-gui.sh:2483 lib/blame.tcl:107
msgid "File:"
msgstr "Fájl:"
-#: git-gui.sh:2545
-msgid "Refresh"
-msgstr "Frissítés"
-
-#: git-gui.sh:2566
+#: git-gui.sh:2589
msgid "Apply/Reverse Hunk"
msgstr "Hunk alkalmazása/visszaállítása"
-#: git-gui.sh:2572
-msgid "Decrease Font Size"
-msgstr "Font méret csökkentése"
-
-#: git-gui.sh:2576
-msgid "Increase Font Size"
-msgstr "Fönt méret növelése"
-
-#: git-gui.sh:2581
+#: git-gui.sh:2595
msgid "Show Less Context"
msgstr "Kevesebb környezet mutatása"
-#: git-gui.sh:2588
+#: git-gui.sh:2602
msgid "Show More Context"
msgstr "Több környezet mutatása"
-#: git-gui.sh:2602
+#: git-gui.sh:2610
+msgid "Refresh"
+msgstr "Frissítés"
+
+#: git-gui.sh:2631
+msgid "Decrease Font Size"
+msgstr "Font méret csökkentése"
+
+#: git-gui.sh:2635
+msgid "Increase Font Size"
+msgstr "Fönt méret növelése"
+
+#: git-gui.sh:2646
msgid "Unstage Hunk From Commit"
msgstr "Hunk törlése commitból"
-#: git-gui.sh:2604
+#: git-gui.sh:2648
msgid "Stage Hunk For Commit"
msgstr "Hunk kiválasztása commitba"
-#: git-gui.sh:2623
+#: git-gui.sh:2667
msgid "Initializing..."
msgstr "Inicializálás..."
-#: git-gui.sh:2718
+#: git-gui.sh:2762
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
@@ -449,7 +450,7 @@ msgstr ""
"indított folyamatok által:\n"
"\n"
-#: git-gui.sh:2748
+#: git-gui.sh:2792
msgid ""
"\n"
"This is due to a known issue with the\n"
@@ -459,7 +460,7 @@ msgstr ""
"Ez a Cygwin által terjesztett Tcl binárisban\n"
"lévő ismert hiba miatt van."
-#: git-gui.sh:2753
+#: git-gui.sh:2797
#, tcl-format
msgid ""
"\n"
@@ -476,7 +477,7 @@ msgstr ""
"elhelyezése a személyes\n"
"~/.gitconfig fájlba.\n"
-#: lib/about.tcl:25
+#: lib/about.tcl:26
msgid "git-gui - a graphical user interface for Git."
msgstr "git-gui - egy grafikus felület a Githez."
@@ -488,56 +489,56 @@ msgstr "Fájl néző"
msgid "Commit:"
msgstr "Commit:"
-#: lib/blame.tcl:249
+#: lib/blame.tcl:264
msgid "Copy Commit"
msgstr "Commit másolása"
-#: lib/blame.tcl:369
+#: lib/blame.tcl:384
#, tcl-format
msgid "Reading %s..."
msgstr "A(z) %s olvasása..."
-#: lib/blame.tcl:473
+#: lib/blame.tcl:488
msgid "Loading copy/move tracking annotations..."
msgstr "A másolást/átnevezést követő annotációk betöltése..."
-#: lib/blame.tcl:493
+#: lib/blame.tcl:508
msgid "lines annotated"
msgstr "sor annotálva"
-#: lib/blame.tcl:674
+#: lib/blame.tcl:689
msgid "Loading original location annotations..."
msgstr "Az eredeti hely annotációk betöltése..."
-#: lib/blame.tcl:677
+#: lib/blame.tcl:692
msgid "Annotation complete."
msgstr "Az annotáció kész."
-#: lib/blame.tcl:731
+#: lib/blame.tcl:746
msgid "Loading annotation..."
msgstr "Az annotáció betöltése..."
-#: lib/blame.tcl:787
+#: lib/blame.tcl:802
msgid "Author:"
msgstr "Szerző:"
-#: lib/blame.tcl:791
+#: lib/blame.tcl:806
msgid "Committer:"
msgstr "Commiter:"
-#: lib/blame.tcl:796
+#: lib/blame.tcl:811
msgid "Original File:"
msgstr "Eredeti fájl:"
-#: lib/blame.tcl:910
+#: lib/blame.tcl:925
msgid "Originally By:"
msgstr "Eredeti szerző:"
-#: lib/blame.tcl:916
+#: lib/blame.tcl:931
msgid "In File:"
msgstr "Ebben a fájlban:"
-#: lib/blame.tcl:921
+#: lib/blame.tcl:936
msgid "Copied Or Moved Here By:"
msgstr "Ide másolta vagy helyezte:"
@@ -550,17 +551,17 @@ msgid "Checkout"
msgstr "Checkout"
#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
-#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
-#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
-#: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282
+#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171
+#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
msgid "Cancel"
msgstr "Mégsem"
-#: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+#: lib/branch_checkout.tcl:32 lib/browser.tcl:287
msgid "Revision"
msgstr "Revízió"
-#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242
msgid "Options"
msgstr "Opciók"
@@ -580,7 +581,7 @@ msgstr "Branch létrehozása"
msgid "Create New Branch"
msgstr "Új branch létrehozása"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371
msgid "Create"
msgstr "Létrehozás"
@@ -720,22 +721,22 @@ msgstr "Indítás..."
msgid "File Browser"
msgstr "Fájl böngésző"
-#: lib/browser.tcl:125 lib/browser.tcl:142
+#: lib/browser.tcl:126 lib/browser.tcl:143
#, tcl-format
msgid "Loading %s..."
msgstr "A(z) %s betöltése..."
-#: lib/browser.tcl:186
+#: lib/browser.tcl:187
msgid "[Up To Parent]"
msgstr "[Fel a szülőhöz]"
-#: lib/browser.tcl:266 lib/browser.tcl:272
+#: lib/browser.tcl:267 lib/browser.tcl:273
msgid "Browse Branch Files"
msgstr "A branch fájljainak böngészése"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:391
-#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
-#: lib/choose_repository.tcl:989
+#: lib/browser.tcl:278 lib/choose_repository.tcl:387
+#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484
+#: lib/choose_repository.tcl:987
msgid "Browse"
msgstr "Böngészés"
@@ -749,7 +750,7 @@ msgstr "A(z) %s letöltése innen: %s"
msgid "fatal: Cannot resolve %s"
msgstr "végzetes: Nem lehet feloldani a következőt: %s"
-#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
msgstr "Bezárás"
@@ -807,6 +808,10 @@ msgstr ""
msgid "Updating working directory to '%s'..."
msgstr "A munkkönyvtár frissiítése a következőre: '%s'..."
+#: lib/checkout_op.tcl:323
+msgid "files checked out"
+msgstr "fájl frissítve"
+
#: lib/checkout_op.tcl:353
#, tcl-format
msgid "Aborted checkout of '%s' (file level merging is required)."
@@ -833,7 +838,7 @@ msgstr ""
"Ha egy branchen szeretnénk lenni, hozzunk létre egyet az 'Ez a leválasztott "
"checkout'-ból."
-#: lib/checkout_op.tcl:446
+#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450
#, tcl-format
msgid "Checked out '%s'."
msgstr "'%s' kifejtve."
@@ -853,7 +858,7 @@ msgstr "Az elveszett commitok helyreállítása nem biztos, hogy egyszerű."
msgid "Reset '%s'?"
msgstr "Visszaállítjuk a következőt: '%s'?"
-#: lib/checkout_op.tcl:510 lib/merge.tcl:164
+#: lib/checkout_op.tcl:510 lib/merge.tcl:163
msgid "Visualize"
msgstr "Vizualizálás"
@@ -882,15 +887,15 @@ msgstr "Kiválaszt"
msgid "Font Family"
msgstr "Font család"
-#: lib/choose_font.tcl:73
+#: lib/choose_font.tcl:74
msgid "Font Size"
msgstr "Font méret"
-#: lib/choose_font.tcl:90
+#: lib/choose_font.tcl:91
msgid "Font Example"
msgstr "Font példa"
-#: lib/choose_font.tcl:101
+#: lib/choose_font.tcl:103
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
@@ -898,225 +903,227 @@ msgstr ""
"Ez egy példa szöveg.\n"
"Ha ez megfelel, ez lehet a betűtípus."
-#: lib/choose_repository.tcl:27
+#: lib/choose_repository.tcl:28
msgid "Git Gui"
msgstr "Git Gui"
-#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376
msgid "Create New Repository"
msgstr "Új repó létrehozása"
-#: lib/choose_repository.tcl:86
+#: lib/choose_repository.tcl:87
msgid "New..."
msgstr "Új..."
-#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460
msgid "Clone Existing Repository"
msgstr "Létező repó másolása"
-#: lib/choose_repository.tcl:99
+#: lib/choose_repository.tcl:100
msgid "Clone..."
msgstr "Másolás..."
-#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976
msgid "Open Existing Repository"
msgstr "Létező könyvtár megnyitása"
-#: lib/choose_repository.tcl:112
+#: lib/choose_repository.tcl:113
msgid "Open..."
msgstr "Meggyitás..."
-#: lib/choose_repository.tcl:125
+#: lib/choose_repository.tcl:126
msgid "Recent Repositories"
msgstr "Legutóbbi repók"
-#: lib/choose_repository.tcl:131
+#: lib/choose_repository.tcl:132
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' hely már létezik."
-
-#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
-#: lib/choose_repository.tcl:314
+#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303
+#: lib/choose_repository.tcl:310
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "Nem sikerült letrehozni a(z) %s repót:"
-#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478
msgid "Directory:"
msgstr "Könyvtár:"
-#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
-#: lib/choose_repository.tcl:1013
+#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537
+#: lib/choose_repository.tcl:1011
msgid "Git Repository"
msgstr "Git repó"
-#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#: lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "A(z) '%s' könyvtár már létezik."
-#: lib/choose_repository.tcl:442
+#: lib/choose_repository.tcl:441
#, tcl-format
msgid "File %s already exists."
msgstr "A(z) '%s' fájl már létezik."
-#: lib/choose_repository.tcl:463
+#: lib/choose_repository.tcl:455
msgid "Clone"
msgstr "Bezárás"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:468
msgid "URL:"
msgstr "URL:"
-#: lib/choose_repository.tcl:496
+#: lib/choose_repository.tcl:489
msgid "Clone Type:"
msgstr "Másolás típusa:"
-#: lib/choose_repository.tcl:502
+#: lib/choose_repository.tcl:495
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "Ãltalános (Gyors, félig-redundáns, hardlinkek)"
-#: lib/choose_repository.tcl:508
+#: lib/choose_repository.tcl:501
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "Teljes másolás (Lassabb, redundáns biztonsági mentés)"
-#: lib/choose_repository.tcl:514
+#: lib/choose_repository.tcl:507
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "Megosztott (Leggyorsabb, nem ajánlott, nincs mentés)"
-#: 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
+#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806
+#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "Nem Git repó: %s"
-#: lib/choose_repository.tcl:586
+#: lib/choose_repository.tcl:579
msgid "Standard only available for local repository."
msgstr "A standard csak helyi repókra érhető el."
-#: lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:583
msgid "Shared only available for local repository."
msgstr "A megosztott csak helyi repókra érhető el."
-#: lib/choose_repository.tcl:617
+#: lib/choose_repository.tcl:604
+#, tcl-format
+msgid "Location %s already exists."
+msgstr "A(z) '%s' hely már létezik."
+
+#: lib/choose_repository.tcl:615
msgid "Failed to configure origin"
msgstr "Nem sikerült beállítani az origint"
-#: lib/choose_repository.tcl:629
+#: lib/choose_repository.tcl:627
msgid "Counting objects"
msgstr "Objektumok számolása"
-#: lib/choose_repository.tcl:630
+#: lib/choose_repository.tcl:628
msgid "buckets"
msgstr "vödrök"
-#: lib/choose_repository.tcl:654
+#: lib/choose_repository.tcl:652
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "Nem sikerült másolni az objects/info/alternates-t: %s"
-#: lib/choose_repository.tcl:690
+#: lib/choose_repository.tcl:688
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "Semmi másolni való nincs innen: %s"
-#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
-#: lib/choose_repository.tcl:918
+#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:916
msgid "The 'master' branch has not been initialized."
msgstr "A 'master' branch nincs inicializálva."
-#: lib/choose_repository.tcl:705
+#: lib/choose_repository.tcl:703
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "Nem érhetőek el hardlinkek. Másolás használata."
-#: lib/choose_repository.tcl:717
+#: lib/choose_repository.tcl:715
#, tcl-format
msgid "Cloning from %s"
msgstr "Másolás innen: %s"
-#: lib/choose_repository.tcl:748
+#: lib/choose_repository.tcl:746
msgid "Copying objects"
msgstr "Objektumok másolása"
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:747
msgid "KiB"
msgstr "KiB"
-#: lib/choose_repository.tcl:773
+#: lib/choose_repository.tcl:771
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "Nem sikerült másolni az objektumot: %s"
-#: lib/choose_repository.tcl:783
+#: lib/choose_repository.tcl:781
msgid "Linking objects"
msgstr "Objektumok összefűzése"
-#: lib/choose_repository.tcl:784
+#: lib/choose_repository.tcl:782
msgid "objects"
msgstr "objektum"
-#: lib/choose_repository.tcl:792
+#: lib/choose_repository.tcl:790
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "Nem sikerült hardlinkelni az objektumot: %s"
-#: lib/choose_repository.tcl:847
+#: lib/choose_repository.tcl:845
msgid "Cannot fetch branches and objects. See console output for details."
-msgstr "Nem sikerült letölteni a branch-eket és az objektumokat. Bővebben a konzolos kimenetben."
+msgstr ""
+"Nem sikerült letölteni a branch-eket és az objektumokat. Bővebben a "
+"konzolos kimenetben."
-#: lib/choose_repository.tcl:858
+#: lib/choose_repository.tcl:856
msgid "Cannot fetch tags. See console output for details."
msgstr "Nem sikerült letölteni a tageket. Bővebben a konzolos kimenetben."
-#: lib/choose_repository.tcl:882
+#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
msgstr "Nem sikerült megállapítani a HEAD-et. Bővebben a konzolos kimenetben."
-#: lib/choose_repository.tcl:891
+#: lib/choose_repository.tcl:889
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "Nem sikerült tiszítani: %s."
-#: lib/choose_repository.tcl:897
+#: lib/choose_repository.tcl:895
msgid "Clone failed."
msgstr "A másolás nem sikerült."
-#: lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:902
msgid "No default branch obtained."
msgstr "Nincs alapértelmezett branch."
-#: lib/choose_repository.tcl:915
+#: lib/choose_repository.tcl:913
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "Nem sikerült felöldani a(z) %s objektumot commitként."
-#: lib/choose_repository.tcl:927
+#: lib/choose_repository.tcl:925
msgid "Creating working directory"
msgstr "Munkakönyvtár létrehozása"
-#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127
#: lib/index.tcl:193
msgid "files"
msgstr "fájl"
-#: lib/choose_repository.tcl:957
+#: lib/choose_repository.tcl:955
msgid "Initial file checkout failed."
msgstr "A kezdeti fájl-kibontás sikertelen."
-#: lib/choose_repository.tcl:973
+#: lib/choose_repository.tcl:971
msgid "Open"
msgstr "Megnyitás"
-#: lib/choose_repository.tcl:983
+#: lib/choose_repository.tcl:981
msgid "Repository:"
msgstr "Repó:"
-#: lib/choose_repository.tcl:1033
+#: lib/choose_repository.tcl:1031
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "Nem sikerült megnyitni a(z) %s repót:"
@@ -1137,7 +1144,7 @@ msgstr "Helyi branch"
msgid "Tracking Branch"
msgstr "Követő branch"
-#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538
msgid "Tag"
msgstr "Tag"
@@ -1154,11 +1161,11 @@ msgstr "Nincs kiválasztva revízió."
msgid "Revision expression is empty."
msgstr "A revízió kifejezés üres."
-#: lib/choose_rev.tcl:530
+#: lib/choose_rev.tcl:531
msgid "Updated"
msgstr "Frissítve"
-#: lib/choose_rev.tcl:558
+#: lib/choose_rev.tcl:559
msgid "URL"
msgstr "URL"
@@ -1268,16 +1275,45 @@ msgstr ""
"- Második sor: Üres\n"
"- A többi sor: Leírja, hogy miért jó ez a változtatás.\n"
-#: lib/commit.tcl:257
+#: lib/commit.tcl:207
+#, tcl-format
+msgid "warning: Tcl does not support encoding '%s'."
+msgstr "figyelmeztetés: a Tcl nem támogatja a(z) '%s' kódolást."
+
+#: lib/commit.tcl:221
+msgid "Calling pre-commit hook..."
+msgstr "A pre-commit hurok meghívása..."
+
+#: lib/commit.tcl:236
+msgid "Commit declined by pre-commit hook."
+msgstr "A commitot megakadályozta a pre-commit hurok. "
+
+#: lib/commit.tcl:259
+msgid "Calling commit-msg hook..."
+msgstr "A commit-msg hurok meghívása..."
+
+#: lib/commit.tcl:274
+msgid "Commit declined by commit-msg hook."
+msgstr "A commiot megakadályozta a commit-msg hurok."
+
+#: lib/commit.tcl:287
+msgid "Committing changes..."
+msgstr "A változtatások commitolása..."
+
+#: lib/commit.tcl:303
msgid "write-tree failed:"
msgstr "a write-tree sikertelen:"
-#: lib/commit.tcl:275
+#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368
+msgid "Commit failed."
+msgstr "A commit nem sikerült."
+
+#: lib/commit.tcl:321
#, tcl-format
msgid "Commit %s appears to be corrupt"
msgstr "A(z) %s commit sérültnek tűnik"
-#: lib/commit.tcl:279
+#: lib/commit.tcl:326
msgid ""
"No changes to commit.\n"
"\n"
@@ -1291,37 +1327,32 @@ msgstr ""
"\n"
"Az újrakeresés most automatikusan el fog indulni.\n"
-#: lib/commit.tcl:286
+#: lib/commit.tcl:333
msgid "No changes to commit."
msgstr "Nincs commitolandó változtatás."
-#: lib/commit.tcl:303
-#, tcl-format
-msgid "warning: Tcl does not support encoding '%s'."
-msgstr "figyelmeztetés: a Tcl nem támogatja a(z) '%s' kódolást."
-
-#: lib/commit.tcl:317
+#: lib/commit.tcl:347
msgid "commit-tree failed:"
msgstr "a commit-tree sikertelen:"
-#: lib/commit.tcl:339
+#: lib/commit.tcl:367
msgid "update-ref failed:"
msgstr "az update-ref sikertelen:"
-#: lib/commit.tcl:430
+#: lib/commit.tcl:454
#, tcl-format
msgid "Created commit %s: %s"
msgstr "Létrejött a %s commit: %s"
-#: lib/console.tcl:57
+#: lib/console.tcl:59
msgid "Working... please wait..."
msgstr "Munka folyamatban.. Várjunk..."
-#: lib/console.tcl:183
+#: lib/console.tcl:186
msgid "Success"
msgstr "Siker"
-#: lib/console.tcl:196
+#: lib/console.tcl:200
msgid "Error: Command Failed"
msgstr "Hiba: a parancs sikertelen"
@@ -1431,23 +1462,23 @@ msgstr "* Bináris fájl (tartalom elrejtése)."
msgid "Error loading diff:"
msgstr "Hiba a diff betöltése közben:"
-#: lib/diff.tcl:302
+#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
msgstr "Nem visszavonni a hunk kiválasztását."
-#: lib/diff.tcl:309
+#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
msgstr "Nem sikerült kiválasztani a hunkot."
-#: lib/error.tcl:12 lib/error.tcl:102
+#: lib/error.tcl:20 lib/error.tcl:114
msgid "error"
msgstr "hiba"
-#: lib/error.tcl:28
+#: lib/error.tcl:36
msgid "warning"
msgstr "figyelmeztetés"
-#: lib/error.tcl:81
+#: lib/error.tcl:94
msgid "You must correct the above errors before committing."
msgstr "Ki kell javítanunk a fenti hibákat commit előtt."
@@ -1464,8 +1495,8 @@ 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."
+"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"
@@ -1480,6 +1511,10 @@ msgstr "Index zárolásának feloldása"
msgid "Unstaging %s from commit"
msgstr "A(z) %s commitba való kiválasztásának visszavonása"
+#: lib/index.tcl:313
+msgid "Ready to commit."
+msgstr "Commitolásra kész."
+
#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
@@ -1495,13 +1530,13 @@ msgstr "Visszaállítja a változtatásokat a(z) %s fájlban?"
msgid "Revert changes in these %i files?"
msgstr "Visszaállítja a változtatásokat ebben e %i fájlban?"
-#: lib/index.tcl:389
+#: lib/index.tcl:391
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:392
+#: lib/index.tcl:394
msgid "Do Nothing"
msgstr "Ne csináljunk semmit"
@@ -1574,27 +1609,27 @@ msgstr "%s / %s"
#: lib/merge.tcl:119
#, tcl-format
-msgid "Merging %s and %s"
-msgstr "A(z) %s és a(z) %s merge-ölése"
+msgid "Merging %s and %s..."
+msgstr "A(z) %s és a(z) %s merge-ölése..."
-#: lib/merge.tcl:131
+#: lib/merge.tcl:130
msgid "Merge completed successfully."
msgstr "A merge sikeresen befejeződött."
-#: lib/merge.tcl:133
+#: lib/merge.tcl:132
msgid "Merge failed. Conflict resolution is required."
msgstr "A merge sikertelen. Fel kell oldanunk az ütközéseket."
-#: lib/merge.tcl:158
+#: lib/merge.tcl:157
#, tcl-format
msgid "Merge Into %s"
msgstr "Merge-ölés a következőbe: %s"
-#: lib/merge.tcl:177
+#: lib/merge.tcl:176
msgid "Revision To Merge"
msgstr "Merge-ölni szándékozott revízió"
-#: lib/merge.tcl:212
+#: lib/merge.tcl:211
msgid ""
"Cannot abort while amending.\n"
"\n"
@@ -1604,7 +1639,7 @@ msgstr ""
"\n"
"Be kell fejeznünk ennek a commitnak a javítását.\n"
-#: lib/merge.tcl:222
+#: lib/merge.tcl:221
msgid ""
"Abort merge?\n"
"\n"
@@ -1619,7 +1654,7 @@ msgstr ""
"\n"
"Folytatjuk a jelenlegi merge megszakítását?"
-#: lib/merge.tcl:228
+#: lib/merge.tcl:227
msgid ""
"Reset changes?\n"
"\n"
@@ -1634,93 +1669,105 @@ msgstr ""
"\n"
"Folytatjuk a jelenlegi módosítások visszavonását?"
-#: lib/merge.tcl:239
+#: lib/merge.tcl:238
msgid "Aborting"
msgstr "Félbeszakítás"
-#: lib/merge.tcl:266
+#: lib/merge.tcl:238
+msgid "files reset"
+msgstr "fájl visszaállítva"
+
+#: lib/merge.tcl:265
msgid "Abort failed."
msgstr "A félbeszakítás nem sikerült."
-#: lib/merge.tcl:268
+#: lib/merge.tcl:267
msgid "Abort completed. Ready."
msgstr "A megkeszakítás befejeződött. Kész."
-#: lib/option.tcl:82
+#: lib/option.tcl:95
msgid "Restore Defaults"
msgstr "Alapértelmezés visszaállítása"
-#: lib/option.tcl:86
+#: lib/option.tcl:99
msgid "Save"
msgstr "Mentés"
-#: lib/option.tcl:96
+#: lib/option.tcl:109
#, tcl-format
msgid "%s Repository"
msgstr "%s Repó"
-#: lib/option.tcl:97
+#: lib/option.tcl:110
msgid "Global (All Repositories)"
msgstr "Globális (minden repó)"
-#: lib/option.tcl:103
+#: lib/option.tcl:116
msgid "User Name"
msgstr "Felhasználónév"
-#: lib/option.tcl:104
+#: lib/option.tcl:117
msgid "Email Address"
msgstr "Email cím"
-#: lib/option.tcl:106
+#: lib/option.tcl:119
msgid "Summarize Merge Commits"
msgstr "A merge commitok összegzése"
-#: lib/option.tcl:107
+#: lib/option.tcl:120
msgid "Merge Verbosity"
msgstr "Merge beszédesség"
-#: lib/option.tcl:108
+#: lib/option.tcl:121
msgid "Show Diffstat After Merge"
msgstr "Diffstat mutatása merge után"
-#: lib/option.tcl:110
+#: lib/option.tcl:123
msgid "Trust File Modification Timestamps"
msgstr "A fájl módosítási dátumok megbízhatóak"
-#: lib/option.tcl:111
+#: lib/option.tcl:124
msgid "Prune Tracking Branches During Fetch"
msgstr "A követő branchek eltávolítása letöltés alatt"
-#: lib/option.tcl:112
+#: lib/option.tcl:125
msgid "Match Tracking Branches"
msgstr "A követő branchek egyeztetése"
-#: lib/option.tcl:113
+#: lib/option.tcl:126
msgid "Number of Diff Context Lines"
msgstr "A diff környezeti sorok száma"
-#: lib/option.tcl:114
+#: lib/option.tcl:127
+msgid "Commit Message Text Width"
+msgstr "Commit üzenet szövegének szélessége"
+
+#: lib/option.tcl:128
msgid "New Branch Name Template"
msgstr "Új branch név sablon"
-#: lib/option.tcl:176
+#: lib/option.tcl:192
+msgid "Spelling Dictionary:"
+msgstr "Helyesírás-ellenőrző szótár:"
+
+#: lib/option.tcl:216
msgid "Change Font"
msgstr "Betűtípus megváltoztatása"
-#: lib/option.tcl:180
+#: lib/option.tcl:220
#, tcl-format
msgid "Choose %s"
msgstr "%s választása"
-#: lib/option.tcl:186
+#: lib/option.tcl:226
msgid "pt."
msgstr "pt."
-#: lib/option.tcl:200
+#: lib/option.tcl:240
msgid "Preferences"
msgstr "Beállítások"
-#: lib/option.tcl:235
+#: lib/option.tcl:275
msgid "Failed to completely save options:"
msgstr "Nem sikerült teljesen elmenteni a beállításokat:"
@@ -1767,8 +1814,7 @@ msgid ""
"\n"
" - %s"
msgstr ""
-"A következő branchek nem teljesen lettek merge-ölve ebbe: %s:"
-"\n"
+"A következő branchek nem teljesen lettek merge-ölve ebbe: %s:\n"
" - %s"
#: lib/remote_branch_delete.tcl:189
@@ -1829,6 +1875,43 @@ msgstr "Nem sikerült írni a gyorsbillentyűt:"
msgid "Cannot write icon:"
msgstr "Nem sikerült írni az ikont:"
+#: lib/spellcheck.tcl:57
+msgid "Unsupported spell checker"
+msgstr "Nem támogatott helyesírás-ellenőrző"
+
+#: lib/spellcheck.tcl:65
+msgid "Spell checking is unavailable"
+msgstr "A helyesírás-ellenőrzés nem elérhető"
+
+#: lib/spellcheck.tcl:68
+msgid "Invalid spell checking configuration"
+msgstr "Érvénytelen a helyesírás-ellenőrző beállítása"
+
+#: lib/spellcheck.tcl:70
+#, tcl-format
+msgid "Reverting dictionary to %s."
+msgstr "Szótár visszaállítása a következőre: %s."
+
+#: lib/spellcheck.tcl:73
+msgid "Spell checker silently failed on startup"
+msgstr "A helyesírás-ellenőrő indítása sikertelen"
+
+#: lib/spellcheck.tcl:80
+msgid "Unrecognized spell checker"
+msgstr "Ismeretlen helyesírás-ellenőrző"
+
+#: lib/spellcheck.tcl:180
+msgid "No Suggestions"
+msgstr "Nincs javaslat"
+
+#: lib/spellcheck.tcl:381
+msgid "Unexpected EOF from spell checker"
+msgstr "Nem várt EOF a helyesírás-ellenőrzőtől"
+
+#: lib/spellcheck.tcl:385
+msgid "Spell Checker Failed"
+msgstr "A helyesírás-ellenőrzés sikertelen"
+
#: lib/status_bar.tcl:83
#, tcl-format
msgid "%s ... %*i of %*i %s (%3i%%)"
@@ -1887,7 +1970,9 @@ msgstr "Ãtviteli opciók"
#: lib/transport.tcl:160
msgid "Force overwrite existing branch (may discard changes)"
-msgstr "Létező branch felülírásának erőltetése (lehet, hogy el fog dobni változtatásokat)"
+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)"
@@ -1897,6 +1982,9 @@ msgstr "Vékony csomagok használata (lassú hálózati kapcsolatok számára)"
msgid "Include tags"
msgstr "Tageket is"
+#~ msgid "Not connected to aspell"
+#~ msgstr "Nincs kapcsolat az aspellhez"
+
#~ msgid "Cannot find the git directory:"
#~ msgstr "Nem található a git könyvtár:"
diff --git a/git-gui/po/it.po b/git-gui/po/it.po
index 33a8399175..11cc79bb5e 100644
--- a/git-gui/po/it.po
+++ b/git-gui/po/it.po
@@ -9,41 +9,41 @@ msgid ""
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-11-09 11:18+0100\n"
-"PO-Revision-Date: 2007-11-01 21:05+0100\n"
+"POT-Creation-Date: 2008-03-14 07:18+0100\n"
+"PO-Revision-Date: 2008-03-12 22:12+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:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
-#: git-gui.sh:733
+#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+#: git-gui.sh:763
msgid "git-gui: fatal error"
msgstr "git-gui: errore grave"
-#: git-gui.sh:565
+#: git-gui.sh:593
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "Caratteri non validi specificati in %s:"
-#: git-gui.sh:590
+#: git-gui.sh:620
msgid "Main Font"
msgstr "Caratteri principali"
-#: git-gui.sh:591
+#: git-gui.sh:621
msgid "Diff/Console Font"
msgstr "Caratteri per confronti e terminale"
-#: git-gui.sh:605
+#: git-gui.sh:635
msgid "Cannot find git in PATH."
msgstr "Impossibile trovare git nel PATH"
-#: git-gui.sh:632
+#: git-gui.sh:662
msgid "Cannot parse Git version string:"
msgstr "Impossibile determinare la versione di Git:"
-#: git-gui.sh:650
+#: git-gui.sh:680
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
@@ -62,79 +62,79 @@ msgstr ""
"\n"
"Assumere che '%s' sia alla versione 1.5.0?\n"
-#: git-gui.sh:888
+#: git-gui.sh:918
msgid "Git directory not found:"
msgstr "Non trovo la directory di git: "
-#: git-gui.sh:895
+#: git-gui.sh:925
msgid "Cannot move to top of working directory:"
msgstr "Impossibile spostarsi sulla directory principale del progetto:"
-#: git-gui.sh:902
+#: git-gui.sh:932
msgid "Cannot use funny .git directory:"
msgstr "Impossibile usare una .git directory strana:"
-#: git-gui.sh:907
+#: git-gui.sh:937
msgid "No working directory"
msgstr "Nessuna directory di lavoro"
-#: git-gui.sh:1054
+#: git-gui.sh:1084 lib/checkout_op.tcl:283
msgid "Refreshing file status..."
msgstr "Controllo dello stato dei file in corso..."
-#: git-gui.sh:1119
+#: git-gui.sh:1149
msgid "Scanning for modified files ..."
msgstr "Ricerca di file modificati in corso..."
-#: git-gui.sh:1294 lib/browser.tcl:245
+#: git-gui.sh:1324 lib/browser.tcl:246
msgid "Ready."
msgstr "Pronto."
-#: git-gui.sh:1560
+#: git-gui.sh:1590
msgid "Unmodified"
msgstr "Non modificato"
-#: git-gui.sh:1562
+#: git-gui.sh:1592
msgid "Modified, not staged"
msgstr "Modificato, non preparato per una nuova revisione"
-#: git-gui.sh:1563 git-gui.sh:1568
+#: git-gui.sh:1593 git-gui.sh:1598
msgid "Staged for commit"
msgstr "Preparato per una nuova revisione"
-#: git-gui.sh:1564 git-gui.sh:1569
+#: git-gui.sh:1594 git-gui.sh:1599
msgid "Portions staged for commit"
msgstr "Parti preparate per una nuova revisione"
-#: git-gui.sh:1565 git-gui.sh:1570
+#: git-gui.sh:1595 git-gui.sh:1600
msgid "Staged for commit, missing"
msgstr "Preparato per una nuova revisione, mancante"
-#: git-gui.sh:1567
+#: git-gui.sh:1597
msgid "Untracked, not staged"
msgstr "Non tracciato, non preparato per una nuova revisione"
-#: git-gui.sh:1572
+#: git-gui.sh:1602
msgid "Missing"
msgstr "Mancante"
-#: git-gui.sh:1573
+#: git-gui.sh:1603
msgid "Staged for removal"
msgstr "Preparato per la rimozione"
-#: git-gui.sh:1574
+#: git-gui.sh:1604
msgid "Staged for removal, still present"
msgstr "Preparato alla rimozione, ancora presente"
-#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
+#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609
msgid "Requires merge resolution"
msgstr "Richiede risoluzione dei conflitti"
-#: git-gui.sh:1614
+#: git-gui.sh:1644
msgid "Starting gitk... please wait..."
msgstr "Avvio di gitk... attendere..."
-#: git-gui.sh:1623
+#: git-gui.sh:1653
#, tcl-format
msgid ""
"Unable to start gitk:\n"
@@ -145,297 +145,297 @@ msgstr ""
"\n"
"%s non esiste"
-#: git-gui.sh:1823 lib/choose_repository.tcl:35
+#: git-gui.sh:1860 lib/choose_repository.tcl:36
msgid "Repository"
msgstr "Archivio"
-#: git-gui.sh:1824
+#: git-gui.sh:1861
msgid "Edit"
msgstr "Modifica"
-#: git-gui.sh:1826 lib/choose_rev.tcl:560
+#: git-gui.sh:1863 lib/choose_rev.tcl:561
msgid "Branch"
msgstr "Ramo"
-#: git-gui.sh:1829 lib/choose_rev.tcl:547
+#: git-gui.sh:1866 lib/choose_rev.tcl:548
msgid "Commit@@noun"
msgstr "Revisione"
-#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167
msgid "Merge"
msgstr "Fusione (Merge)"
-#: git-gui.sh:1833 lib/choose_rev.tcl:556
+#: git-gui.sh:1870 lib/choose_rev.tcl:557
msgid "Remote"
msgstr "Remoto"
-#: git-gui.sh:1842
+#: git-gui.sh:1879
msgid "Browse Current Branch's Files"
msgstr "Esplora i file del ramo attuale"
-#: git-gui.sh:1846
+#: git-gui.sh:1883
msgid "Browse Branch Files..."
msgstr "Esplora i file del ramo..."
-#: git-gui.sh:1851
+#: git-gui.sh:1888
msgid "Visualize Current Branch's History"
msgstr "Visualizza la cronologia del ramo attuale"
-#: git-gui.sh:1855
+#: git-gui.sh:1892
msgid "Visualize All Branch History"
msgstr "Visualizza la cronologia di tutti i rami"
-#: git-gui.sh:1862
+#: git-gui.sh:1899
#, tcl-format
msgid "Browse %s's Files"
msgstr "Esplora i file di %s"
-#: git-gui.sh:1864
+#: git-gui.sh:1901
#, tcl-format
msgid "Visualize %s's History"
msgstr "Visualizza la cronologia di %s"
-#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "Statistiche dell'archivio"
-#: git-gui.sh:1872 lib/database.tcl:34
+#: git-gui.sh:1909 lib/database.tcl:34
msgid "Compress Database"
msgstr "Comprimi l'archivio"
-#: git-gui.sh:1875
+#: git-gui.sh:1912
msgid "Verify Database"
msgstr "Verifica l'archivio"
-#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "Crea icona desktop"
-#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185
msgid "Quit"
msgstr "Esci"
-#: git-gui.sh:1902
+#: git-gui.sh:1939
msgid "Undo"
msgstr "Annulla"
-#: git-gui.sh:1905
+#: git-gui.sh:1942
msgid "Redo"
msgstr "Ripeti"
-#: git-gui.sh:1909 git-gui.sh:2403
+#: git-gui.sh:1946 git-gui.sh:2443
msgid "Cut"
msgstr "Taglia"
-#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
-#: lib/console.tcl:67
+#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614
+#: lib/console.tcl:69
msgid "Copy"
msgstr "Copia"
-#: git-gui.sh:1915 git-gui.sh:2409
+#: git-gui.sh:1952 git-gui.sh:2449
msgid "Paste"
msgstr "Incolla"
-#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
+#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "Elimina"
-#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
+#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71
msgid "Select All"
msgstr "Seleziona tutto"
-#: git-gui.sh:1931
+#: git-gui.sh:1968
msgid "Create..."
msgstr "Crea..."
-#: git-gui.sh:1937
+#: git-gui.sh:1974
msgid "Checkout..."
msgstr "Attiva..."
-#: git-gui.sh:1943
+#: git-gui.sh:1980
msgid "Rename..."
msgstr "Rinomina"
-#: git-gui.sh:1948 git-gui.sh:2048
+#: git-gui.sh:1985 git-gui.sh:2085
msgid "Delete..."
msgstr "Elimina..."
-#: git-gui.sh:1953
+#: git-gui.sh:1990
msgid "Reset..."
msgstr "Ripristina..."
-#: git-gui.sh:1965 git-gui.sh:2350
+#: git-gui.sh:2002 git-gui.sh:2389
msgid "New Commit"
msgstr "Nuova revisione"
-#: git-gui.sh:1973 git-gui.sh:2357
+#: git-gui.sh:2010 git-gui.sh:2396
msgid "Amend Last Commit"
msgstr "Correggi l'ultima revisione"
-#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "Analizza nuovamente"
-#: git-gui.sh:1988
+#: git-gui.sh:2025
msgid "Stage To Commit"
msgstr "Prepara per una nuova revisione"
-#: git-gui.sh:1994
+#: git-gui.sh:2031
msgid "Stage Changed Files To Commit"
msgstr "Prepara i file modificati per una nuova revisione"
-#: git-gui.sh:2000
+#: git-gui.sh:2037
msgid "Unstage From Commit"
msgstr "Annulla preparazione"
-#: git-gui.sh:2005 lib/index.tcl:393
+#: git-gui.sh:2042 lib/index.tcl:395
msgid "Revert Changes"
msgstr "Annulla modifiche"
-#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
+#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467
msgid "Sign Off"
msgstr "Sign Off"
-#: git-gui.sh:2016 git-gui.sh:2333
+#: git-gui.sh:2053 git-gui.sh:2372
msgid "Commit@@verb"
msgstr "Nuova revisione"
-#: git-gui.sh:2027
+#: git-gui.sh:2064
msgid "Local Merge..."
msgstr "Fusione locale..."
-#: git-gui.sh:2032
+#: git-gui.sh:2069
msgid "Abort Merge..."
msgstr "Interrompi fusione..."
-#: git-gui.sh:2044
+#: git-gui.sh:2081
msgid "Push..."
msgstr "Propaga..."
-#: git-gui.sh:2055 lib/choose_repository.tcl:40
+#: git-gui.sh:2092 lib/choose_repository.tcl:41
msgid "Apple"
msgstr "Apple"
-#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
-#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14
+#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
#, tcl-format
msgid "About %s"
msgstr "Informazioni su %s"
-#: git-gui.sh:2062
+#: git-gui.sh:2099
msgid "Preferences..."
msgstr "Preferenze..."
-#: git-gui.sh:2070 git-gui.sh:2595
+#: git-gui.sh:2107 git-gui.sh:2639
msgid "Options..."
msgstr "Opzioni..."
-#: git-gui.sh:2076 lib/choose_repository.tcl:46
+#: git-gui.sh:2113 lib/choose_repository.tcl:47
msgid "Help"
msgstr "Aiuto"
-#: git-gui.sh:2117
+#: git-gui.sh:2154
msgid "Online Documentation"
msgstr "Documentazione sul web"
-#: git-gui.sh:2201
+#: git-gui.sh:2238
#, 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:2234
+#: git-gui.sh:2271
msgid "Current Branch:"
msgstr "Ramo attuale:"
-#: git-gui.sh:2255
+#: git-gui.sh:2292
msgid "Staged Changes (Will Commit)"
msgstr "Modifiche preparate (saranno nella nuova revisione)"
-#: git-gui.sh:2274
+#: git-gui.sh:2312
msgid "Unstaged Changes"
msgstr "Modifiche non preparate"
-#: git-gui.sh:2323
+#: git-gui.sh:2362
msgid "Stage Changed"
msgstr "Prepara modificati"
-#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "Propaga (Push)"
-#: git-gui.sh:2369
+#: git-gui.sh:2408
msgid "Initial Commit Message:"
msgstr "Messaggio di revisione iniziale:"
-#: git-gui.sh:2370
+#: git-gui.sh:2409
msgid "Amended Commit Message:"
msgstr "Messaggio di revisione corretto:"
-#: git-gui.sh:2371
+#: git-gui.sh:2410
msgid "Amended Initial Commit Message:"
msgstr "Messaggio iniziale di revisione corretto:"
-#: git-gui.sh:2372
+#: git-gui.sh:2411
msgid "Amended Merge Commit Message:"
msgstr "Messaggio di fusione corretto:"
-#: git-gui.sh:2373
+#: git-gui.sh:2412
msgid "Merge Commit Message:"
msgstr "Messaggio di fusione:"
-#: git-gui.sh:2374
+#: git-gui.sh:2413
msgid "Commit Message:"
msgstr "Messaggio di revisione:"
-#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
+#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73
msgid "Copy All"
msgstr "Copia tutto"
-#: git-gui.sh:2443 lib/blame.tcl:104
+#: git-gui.sh:2483 lib/blame.tcl:107
msgid "File:"
msgstr "File:"
-#: git-gui.sh:2545
-msgid "Refresh"
-msgstr "Rinfresca"
-
-#: git-gui.sh:2566
+#: git-gui.sh:2589
msgid "Apply/Reverse Hunk"
msgstr "Applica/Inverti sezione"
-#: git-gui.sh:2572
-msgid "Decrease Font Size"
-msgstr "Diminuisci dimensione caratteri"
-
-#: git-gui.sh:2576
-msgid "Increase Font Size"
-msgstr "Aumenta dimensione caratteri"
-
-#: git-gui.sh:2581
+#: git-gui.sh:2595
msgid "Show Less Context"
msgstr "Mostra meno contesto"
-#: git-gui.sh:2588
+#: git-gui.sh:2602
msgid "Show More Context"
msgstr "Mostra più contesto"
-#: git-gui.sh:2602
+#: git-gui.sh:2610
+msgid "Refresh"
+msgstr "Rinfresca"
+
+#: git-gui.sh:2631
+msgid "Decrease Font Size"
+msgstr "Diminuisci dimensione caratteri"
+
+#: git-gui.sh:2635
+msgid "Increase Font Size"
+msgstr "Aumenta dimensione caratteri"
+
+#: git-gui.sh:2646
msgid "Unstage Hunk From Commit"
msgstr "Sezione non preparata per una nuova revisione"
-#: git-gui.sh:2604
+#: git-gui.sh:2648
msgid "Stage Hunk For Commit"
msgstr "Prepara sezione per una nuova revisione"
-#: git-gui.sh:2623
+#: git-gui.sh:2667
msgid "Initializing..."
msgstr "Inizializzazione..."
-#: git-gui.sh:2718
+#: git-gui.sh:2762
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
@@ -452,7 +452,7 @@ msgstr ""
"da %s:\n"
"\n"
-#: git-gui.sh:2748
+#: git-gui.sh:2792
msgid ""
"\n"
"This is due to a known issue with the\n"
@@ -462,7 +462,7 @@ msgstr ""
"Ciò è dovuto a un problema conosciuto\n"
"causato dall'eseguibile Tcl distribuito da Cygwin."
-#: git-gui.sh:2753
+#: git-gui.sh:2797
#, tcl-format
msgid ""
"\n"
@@ -478,7 +478,7 @@ msgstr ""
"consiste nell'assegnare valori alle variabili di configurazione\n"
"user.name e user.email nel tuo file ~/.gitconfig personale.\n"
-#: lib/about.tcl:25
+#: lib/about.tcl:26
msgid "git-gui - a graphical user interface for Git."
msgstr "git-gui - un'interfaccia grafica per Git."
@@ -490,56 +490,56 @@ msgstr "Mostra file"
msgid "Commit:"
msgstr "Revisione:"
-#: lib/blame.tcl:249
+#: lib/blame.tcl:264
msgid "Copy Commit"
msgstr "Copia revisione"
-#: lib/blame.tcl:369
+#: lib/blame.tcl:384
#, tcl-format
msgid "Reading %s..."
msgstr "Lettura di %s..."
-#: lib/blame.tcl:473
+#: lib/blame.tcl:488
msgid "Loading copy/move tracking annotations..."
msgstr "Caricamento annotazioni per copie/spostamenti..."
-#: lib/blame.tcl:493
+#: lib/blame.tcl:508
msgid "lines annotated"
msgstr "linee annotate"
-#: lib/blame.tcl:674
+#: lib/blame.tcl:689
msgid "Loading original location annotations..."
msgstr "Caricamento annotazioni per posizione originaria..."
-#: lib/blame.tcl:677
+#: lib/blame.tcl:692
msgid "Annotation complete."
msgstr "Annotazione completata."
-#: lib/blame.tcl:731
+#: lib/blame.tcl:746
msgid "Loading annotation..."
msgstr "Caricamento annotazioni..."
-#: lib/blame.tcl:787
+#: lib/blame.tcl:802
msgid "Author:"
msgstr "Autore:"
-#: lib/blame.tcl:791
+#: lib/blame.tcl:806
msgid "Committer:"
msgstr "Revisione creata da:"
-#: lib/blame.tcl:796
+#: lib/blame.tcl:811
msgid "Original File:"
msgstr "File originario:"
-#: lib/blame.tcl:910
+#: lib/blame.tcl:925
msgid "Originally By:"
msgstr "In origine da:"
-#: lib/blame.tcl:916
+#: lib/blame.tcl:931
msgid "In File:"
msgstr "Nel file:"
-#: lib/blame.tcl:921
+#: lib/blame.tcl:936
msgid "Copied Or Moved Here By:"
msgstr "Copiato o spostato qui da:"
@@ -552,17 +552,17 @@ msgid "Checkout"
msgstr "Attiva"
#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
-#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
-#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
-#: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282
+#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171
+#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
msgid "Cancel"
msgstr "Annulla"
-#: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+#: lib/branch_checkout.tcl:32 lib/browser.tcl:287
msgid "Revision"
msgstr "Revisione"
-#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242
msgid "Options"
msgstr "Opzioni"
@@ -582,7 +582,7 @@ msgstr "Crea ramo"
msgid "Create New Branch"
msgstr "Crea nuovo ramo"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371
msgid "Create"
msgstr "Crea"
@@ -723,24 +723,24 @@ msgstr "Avvio in corso..."
msgid "File Browser"
msgstr "File browser"
-#: lib/browser.tcl:125 lib/browser.tcl:142
+#: lib/browser.tcl:126 lib/browser.tcl:143
#, tcl-format
msgid "Loading %s..."
msgstr "Caricamento %s..."
-#: lib/browser.tcl:186
+#: lib/browser.tcl:187
msgid "[Up To Parent]"
msgstr "[Directory superiore]"
-#: lib/browser.tcl:266 lib/browser.tcl:272
+#: lib/browser.tcl:267 lib/browser.tcl:273
msgid "Browse Branch Files"
msgstr "Esplora i file del ramo"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:391
-#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
-#: lib/choose_repository.tcl:989
+#: lib/browser.tcl:278 lib/choose_repository.tcl:387
+#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484
+#: lib/choose_repository.tcl:987
msgid "Browse"
-msgstr "Sfoglia"
+msgstr "Esplora"
#: lib/checkout_op.tcl:79
#, tcl-format
@@ -752,7 +752,7 @@ msgstr "Recupero %s da %s"
msgid "fatal: Cannot resolve %s"
msgstr "errore grave: impossibile risolvere %s"
-#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
msgstr "Chiudi"
@@ -811,6 +811,10 @@ msgstr ""
msgid "Updating working directory to '%s'..."
msgstr "Aggiornamento della directory di lavoro a '%s' in corso..."
+#: lib/checkout_op.tcl:323
+msgid "files checked out"
+msgstr "file presenti nella directory di lavoro"
+
#: lib/checkout_op.tcl:353
#, tcl-format
msgid "Aborted checkout of '%s' (file level merging is required)."
@@ -837,7 +841,7 @@ msgstr ""
"Se si vuole rimanere su un ramo, crearne uno ora a partire da 'Questa "
"revisione attiva staccata'."
-#: lib/checkout_op.tcl:446
+#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450
#, tcl-format
msgid "Checked out '%s'."
msgstr "Attivazione di '%s' completata."
@@ -857,7 +861,7 @@ msgstr "Ricomporre le revisioni perdute potrebbe non essere semplice."
msgid "Reset '%s'?"
msgstr "Ripristinare '%s'?"
-#: lib/checkout_op.tcl:510 lib/merge.tcl:164
+#: lib/checkout_op.tcl:510 lib/merge.tcl:163
msgid "Visualize"
msgstr "Visualizza"
@@ -887,246 +891,246 @@ msgstr "Seleziona"
msgid "Font Family"
msgstr "Famiglia di caratteri"
-#: lib/choose_font.tcl:73
+#: lib/choose_font.tcl:74
msgid "Font Size"
msgstr "Dimensione caratteri"
-#: lib/choose_font.tcl:90
+#: lib/choose_font.tcl:91
msgid "Font Example"
msgstr "Esempio caratteri"
-#: lib/choose_font.tcl:101
+#: lib/choose_font.tcl:103
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
msgstr ""
"Questo è un testo d'esempio.\n"
-"Se ti piace questo testo, può essere il carattere giusto."
+"Se ti piace questo testo, scegli questo carattere."
-#: lib/choose_repository.tcl:27
+#: lib/choose_repository.tcl:28
msgid "Git Gui"
msgstr "Git Gui"
-#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376
msgid "Create New Repository"
msgstr "Crea nuovo archivio"
-#: lib/choose_repository.tcl:86
+#: lib/choose_repository.tcl:87
msgid "New..."
msgstr "Nuovo..."
-#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460
msgid "Clone Existing Repository"
msgstr "Clona archivio esistente"
-#: lib/choose_repository.tcl:99
+#: lib/choose_repository.tcl:100
msgid "Clone..."
msgstr "Clona..."
-#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976
msgid "Open Existing Repository"
msgstr "Apri archivio esistente"
-#: lib/choose_repository.tcl:112
+#: lib/choose_repository.tcl:113
msgid "Open..."
msgstr "Apri..."
-#: lib/choose_repository.tcl:125
+#: lib/choose_repository.tcl:126
msgid "Recent Repositories"
msgstr "Archivi recenti"
-#: lib/choose_repository.tcl:131
+#: lib/choose_repository.tcl:132
msgid "Open Recent Repository:"
msgstr "Apri archivio recente:"
-#: lib/choose_repository.tcl:294
-#, tcl-format
-msgid "Location %s already exists."
-msgstr "La posizione %s esiste già."
-
-#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
-#: lib/choose_repository.tcl:314
+#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303
+#: lib/choose_repository.tcl:310
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "Impossibile creare l'archivio %s:"
-#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478
msgid "Directory:"
msgstr "Directory:"
-#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
-#: lib/choose_repository.tcl:1013
+#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537
+#: lib/choose_repository.tcl:1011
msgid "Git Repository"
msgstr "Archivio Git"
-#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#: lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "La directory %s esiste già."
-#: lib/choose_repository.tcl:442
+#: lib/choose_repository.tcl:441
#, tcl-format
msgid "File %s already exists."
msgstr "Il file %s esiste già."
-#: lib/choose_repository.tcl:463
+#: lib/choose_repository.tcl:455
msgid "Clone"
msgstr "Clona"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:468
msgid "URL:"
msgstr "URL:"
-#: lib/choose_repository.tcl:496
+#: lib/choose_repository.tcl:489
msgid "Clone Type:"
msgstr "Tipo di clone:"
-#: lib/choose_repository.tcl:502
+#: lib/choose_repository.tcl:495
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "Standard (veloce, semi-ridondante, con hardlink)"
-#: lib/choose_repository.tcl:508
+#: lib/choose_repository.tcl:501
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "Copia completa (più lento, backup ridondante)"
-#: lib/choose_repository.tcl:514
+#: lib/choose_repository.tcl:507
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "Shared (il più veloce, non raccomandato, nessun backup)"
-#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597
-#: lib/choose_repository.tcl:738 lib/choose_repository.tcl:808
-#: lib/choose_repository.tcl:1019 lib/choose_repository.tcl:1027
+#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806
+#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "%s non è un archivio Git."
-#: lib/choose_repository.tcl:586
+#: lib/choose_repository.tcl:579
msgid "Standard only available for local repository."
msgstr "Standard è disponibile solo per archivi locali."
-#: lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:583
msgid "Shared only available for local repository."
msgstr "Shared è disponibile solo per archivi locali."
-#: lib/choose_repository.tcl:617
+#: lib/choose_repository.tcl:604
+#, tcl-format
+msgid "Location %s already exists."
+msgstr "Il file/directory %s esiste già."
+
+#: lib/choose_repository.tcl:615
msgid "Failed to configure origin"
msgstr "Impossibile configurare origin"
-#: lib/choose_repository.tcl:629
+#: lib/choose_repository.tcl:627
msgid "Counting objects"
msgstr "Calcolo oggetti"
-#: lib/choose_repository.tcl:630
+#: lib/choose_repository.tcl:628
msgid "buckets"
msgstr ""
-#: lib/choose_repository.tcl:654
+#: lib/choose_repository.tcl:652
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "Impossibile copiare oggetti/info/alternate: %s"
-#: lib/choose_repository.tcl:690
+#: lib/choose_repository.tcl:688
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "Niente da clonare da %s."
-#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
-#: lib/choose_repository.tcl:918
+#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:916
msgid "The 'master' branch has not been initialized."
msgstr "Il ramo 'master' non è stato inizializzato."
-#: lib/choose_repository.tcl:705
+#: lib/choose_repository.tcl:703
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "Impossibile utilizzare gli hardlink. Si ricorrerà alla copia."
-#: lib/choose_repository.tcl:717
+#: lib/choose_repository.tcl:715
#, tcl-format
msgid "Cloning from %s"
msgstr "Clonazione da %s"
-#: lib/choose_repository.tcl:748
+#: lib/choose_repository.tcl:746
msgid "Copying objects"
msgstr "Copia degli oggetti"
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:747
msgid "KiB"
msgstr "KiB"
-#: lib/choose_repository.tcl:773
+#: lib/choose_repository.tcl:771
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "Impossibile copiare oggetto: %s"
-#: lib/choose_repository.tcl:783
+#: lib/choose_repository.tcl:781
msgid "Linking objects"
msgstr "Collegamento oggetti"
-#: lib/choose_repository.tcl:784
+#: lib/choose_repository.tcl:782
msgid "objects"
msgstr "oggetti"
-#: lib/choose_repository.tcl:792
+#: lib/choose_repository.tcl:790
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "Hardlink impossibile sull'oggetto: %s"
-#: lib/choose_repository.tcl:847
+#: lib/choose_repository.tcl:845
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:858
+#: lib/choose_repository.tcl:856
msgid "Cannot fetch tags. See console output for details."
msgstr ""
"Impossibile recuperare le etichette. Controllare i dettagli forniti dalla "
"console."
-#: lib/choose_repository.tcl:882
+#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
msgstr ""
"Impossibile determinare HEAD. Controllare i dettagli forniti dalla console."
-#: lib/choose_repository.tcl:891
+#: lib/choose_repository.tcl:889
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "Impossibile ripulire %s"
-#: lib/choose_repository.tcl:897
+#: lib/choose_repository.tcl:895
msgid "Clone failed."
msgstr "Clonazione non riuscita."
-#: lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:902
msgid "No default branch obtained."
msgstr "Non è stato trovato un ramo predefinito."
-#: lib/choose_repository.tcl:915
+#: lib/choose_repository.tcl:913
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "Impossibile risolvere %s come una revisione."
-#: lib/choose_repository.tcl:927
+#: lib/choose_repository.tcl:925
msgid "Creating working directory"
msgstr "Creazione directory di lavoro"
-#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127
#: lib/index.tcl:193
msgid "files"
msgstr "file"
-#: lib/choose_repository.tcl:957
+#: lib/choose_repository.tcl:955
msgid "Initial file checkout failed."
msgstr "Attivazione iniziale non riuscita."
-#: lib/choose_repository.tcl:973
+#: lib/choose_repository.tcl:971
msgid "Open"
msgstr "Apri"
-#: lib/choose_repository.tcl:983
+#: lib/choose_repository.tcl:981
msgid "Repository:"
msgstr "Archivio:"
-#: lib/choose_repository.tcl:1033
+#: lib/choose_repository.tcl:1031
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "Impossibile accedere all'archivio %s:"
@@ -1147,7 +1151,7 @@ msgstr "Ramo locale"
msgid "Tracking Branch"
msgstr "Duplicato locale di ramo remoto"
-#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538
msgid "Tag"
msgstr "Etichetta"
@@ -1164,11 +1168,11 @@ msgstr "Nessuna revisione selezionata."
msgid "Revision expression is empty."
msgstr "L'espressione di revisione è vuota."
-#: lib/choose_rev.tcl:530
+#: lib/choose_rev.tcl:531
msgid "Updated"
msgstr "Aggiornato"
-#: lib/choose_rev.tcl:558
+#: lib/choose_rev.tcl:559
msgid "URL"
msgstr "URL"
@@ -1268,7 +1272,7 @@ 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 ""
@@ -1280,16 +1284,45 @@ msgstr ""
"- Seconda linea: vuota.\n"
"- Terza linea: spiega a cosa serve la tua modifica.\n"
-#: lib/commit.tcl:257
+#: lib/commit.tcl:207
+#, tcl-format
+msgid "warning: Tcl does not support encoding '%s'."
+msgstr "attenzione: Tcl non supporta la codifica '%s'."
+
+#: lib/commit.tcl:221
+msgid "Calling pre-commit hook..."
+msgstr "Avvio pre-commit hook..."
+
+#: lib/commit.tcl:236
+msgid "Commit declined by pre-commit hook."
+msgstr "Revisione rifiutata dal pre-commit hook."
+
+#: lib/commit.tcl:259
+msgid "Calling commit-msg hook..."
+msgstr "Avvio commit-msg hook..."
+
+#: lib/commit.tcl:274
+msgid "Commit declined by commit-msg hook."
+msgstr "Revisione rifiutata dal commit-msg hook."
+
+#: lib/commit.tcl:287
+msgid "Committing changes..."
+msgstr "Archiviazione modifiche..."
+
+#: lib/commit.tcl:303
msgid "write-tree failed:"
msgstr "write-tree non riuscito:"
-#: lib/commit.tcl:275
+#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368
+msgid "Commit failed."
+msgstr "Impossibile creare una nuova revisione."
+
+#: lib/commit.tcl:321
#, tcl-format
msgid "Commit %s appears to be corrupt"
msgstr "La revisione %s sembra essere danneggiata"
-#: lib/commit.tcl:279
+#: lib/commit.tcl:326
msgid ""
"No changes to commit.\n"
"\n"
@@ -1303,37 +1336,32 @@ msgstr ""
"\n"
"Si procederà subito ad una nuova analisi.\n"
-#: lib/commit.tcl:286
+#: lib/commit.tcl:333
msgid "No changes to commit."
msgstr "Nessuna modifica per la nuova revisione."
-#: lib/commit.tcl:303
-#, tcl-format
-msgid "warning: Tcl does not support encoding '%s'."
-msgstr "attenzione: Tcl non supporta la codifica '%s'."
-
-#: lib/commit.tcl:317
+#: lib/commit.tcl:347
msgid "commit-tree failed:"
msgstr "commit-tree non riuscito:"
-#: lib/commit.tcl:339
+#: lib/commit.tcl:367
msgid "update-ref failed:"
msgstr "update-ref non riuscito:"
-#: lib/commit.tcl:430
+#: lib/commit.tcl:454
#, tcl-format
msgid "Created commit %s: %s"
msgstr "Creata revisione %s: %s"
-#: lib/console.tcl:57
+#: lib/console.tcl:59
msgid "Working... please wait..."
msgstr "Elaborazione in corso... attendere..."
-#: lib/console.tcl:183
+#: lib/console.tcl:186
msgid "Success"
msgstr "Successo"
-#: lib/console.tcl:196
+#: lib/console.tcl:200
msgid "Error: Command Failed"
msgstr "Errore: comando non riuscito"
@@ -1444,23 +1472,23 @@ msgstr "* File binario (il contenuto non sarà mostrato)."
msgid "Error loading diff:"
msgstr "Errore nel caricamento delle differenze:"
-#: lib/diff.tcl:302
+#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
msgstr "Impossibile rimuovere la sezione scelta dalla nuova revisione."
-#: lib/diff.tcl:309
+#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
msgstr "Impossibile preparare la sezione scelta per una nuova revisione."
-#: lib/error.tcl:12 lib/error.tcl:102
+#: lib/error.tcl:20 lib/error.tcl:114
msgid "error"
msgstr "errore"
-#: lib/error.tcl:28
+#: lib/error.tcl:36
msgid "warning"
msgstr "attenzione"
-#: lib/error.tcl:81
+#: lib/error.tcl:94
msgid "You must correct the above errors before committing."
msgstr ""
"Bisogna correggere gli errori suddetti prima di creare una nuova revisione."
@@ -1494,6 +1522,10 @@ msgstr "Sblocca l'accesso all'indice"
msgid "Unstaging %s from commit"
msgstr "%s non farà parte della prossima revisione"
+#: lib/index.tcl:313
+msgid "Ready to commit."
+msgstr "Pronto per creare una nuova revisione."
+
#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
@@ -1509,13 +1541,13 @@ msgstr "Annullare le modifiche nel file %s?"
msgid "Revert changes in these %i files?"
msgstr "Annullare le modifiche in questi %i file?"
-#: lib/index.tcl:389
+#: lib/index.tcl:391
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:392
+#: lib/index.tcl:394
msgid "Do Nothing"
msgstr "Non fare niente"
@@ -1589,27 +1621,27 @@ msgstr "%s di %s"
#: lib/merge.tcl:119
#, tcl-format
-msgid "Merging %s and %s"
-msgstr "Fusione di %s e %s in corso"
+msgid "Merging %s and %s..."
+msgstr "Fusione di %s e %s in corso..."
-#: lib/merge.tcl:131
+#: lib/merge.tcl:130
msgid "Merge completed successfully."
msgstr "Fusione completata con successo."
-#: lib/merge.tcl:133
+#: lib/merge.tcl:132
msgid "Merge failed. Conflict resolution is required."
msgstr "Fusione non riuscita. Bisogna risolvere i conflitti."
-#: lib/merge.tcl:158
+#: lib/merge.tcl:157
#, tcl-format
msgid "Merge Into %s"
msgstr "Fusione in %s"
-#: lib/merge.tcl:177
+#: lib/merge.tcl:176
msgid "Revision To Merge"
msgstr "Revisione da fondere"
-#: lib/merge.tcl:212
+#: lib/merge.tcl:211
msgid ""
"Cannot abort while amending.\n"
"\n"
@@ -1619,7 +1651,7 @@ msgstr ""
"\n"
"Bisogna finire di correggere questa revisione.\n"
-#: lib/merge.tcl:222
+#: lib/merge.tcl:221
msgid ""
"Abort merge?\n"
"\n"
@@ -1634,7 +1666,7 @@ msgstr ""
"\n"
"Continuare con l'interruzione della fusione attuale?"
-#: lib/merge.tcl:228
+#: lib/merge.tcl:227
msgid ""
"Reset changes?\n"
"\n"
@@ -1649,109 +1681,109 @@ msgstr ""
"\n"
"Continuare con l'annullamento delle modifiche attuali?"
-#: lib/merge.tcl:239
+#: lib/merge.tcl:238
msgid "Aborting"
-msgstr "Interruzione in corso"
+msgstr "Interruzione"
+
+#: lib/merge.tcl:238
+msgid "files reset"
+msgstr "ripristino file"
-#: lib/merge.tcl:266
+#: lib/merge.tcl:265
msgid "Abort failed."
msgstr "Interruzione non riuscita."
-#: lib/merge.tcl:268
+#: lib/merge.tcl:267
msgid "Abort completed. Ready."
msgstr "Interruzione completata. Pronto."
-#: lib/option.tcl:82
+#: lib/option.tcl:95
msgid "Restore Defaults"
msgstr "Ripristina valori predefiniti"
-#: lib/option.tcl:86
+#: lib/option.tcl:99
msgid "Save"
msgstr "Salva"
-#: lib/option.tcl:96
+#: lib/option.tcl:109
#, tcl-format
msgid "%s Repository"
msgstr "Archivio di %s"
-#: lib/option.tcl:97
+#: lib/option.tcl:110
msgid "Global (All Repositories)"
msgstr "Tutti gli archivi"
-#: lib/option.tcl:103
+#: lib/option.tcl:116
msgid "User Name"
msgstr "Nome utente"
-#: lib/option.tcl:104
+#: lib/option.tcl:117
msgid "Email Address"
msgstr "Indirizzo Email"
-#: lib/option.tcl:106
+#: lib/option.tcl:119
msgid "Summarize Merge Commits"
msgstr "Riepilogo nelle revisioni di fusione"
-#: lib/option.tcl:107
+#: lib/option.tcl:120
msgid "Merge Verbosity"
msgstr "Prolissità della fusione"
-#: lib/option.tcl:108
+#: lib/option.tcl:121
msgid "Show Diffstat After Merge"
msgstr "Mostra statistiche delle differenze dopo la fusione"
-#: lib/option.tcl:110
+#: lib/option.tcl:123
msgid "Trust File Modification Timestamps"
msgstr "Fidati delle date di modifica dei file"
-#: lib/option.tcl:111
+#: lib/option.tcl:124
msgid "Prune Tracking Branches During Fetch"
msgstr ""
"Effettua potatura dei duplicati locali di rami remoti durante il recupero"
-#: lib/option.tcl:112
+#: lib/option.tcl:125
msgid "Match Tracking Branches"
msgstr "Appaia duplicati locali di rami remoti"
-#: lib/option.tcl:113
+#: lib/option.tcl:126
msgid "Number of Diff Context Lines"
msgstr "Numero di linee di contesto nelle differenze"
-#: lib/option.tcl:114
+#: lib/option.tcl:127
+msgid "Commit Message Text Width"
+msgstr "Larghezza del messaggio di revisione"
+
+#: lib/option.tcl:128
msgid "New Branch Name Template"
msgstr "Modello per il nome di un nuovo ramo"
-#: lib/option.tcl:176
+#: lib/option.tcl:192
+msgid "Spelling Dictionary:"
+msgstr "Lingua dizionario:"
+
+#: lib/option.tcl:216
msgid "Change Font"
msgstr "Cambia caratteri"
-#: lib/option.tcl:180
+#: lib/option.tcl:220
#, tcl-format
msgid "Choose %s"
msgstr "Scegli %s"
-#: lib/option.tcl:186
+#: lib/option.tcl:226
msgid "pt."
msgstr "pt."
-#: lib/option.tcl:200
+#: lib/option.tcl:240
msgid "Preferences"
msgstr "Preferenze"
-#: lib/option.tcl:235
+#: lib/option.tcl:275
msgid "Failed to completely save options:"
msgstr "Impossibile salvare completamente le opzioni:"
-#: lib/remote.tcl:165
-msgid "Prune from"
-msgstr "Effettua potatura da"
-
-#: lib/remote.tcl:170
-msgid "Fetch from"
-msgstr "Recupera da"
-
-#: lib/remote.tcl:213
-msgid "Push to"
-msgstr "Propaga verso"
-
#: lib/remote_branch_delete.tcl:29 lib/remote_branch_delete.tcl:34
msgid "Delete Remote Branch"
msgstr "Cancella ramo remoto"
@@ -1836,6 +1868,18 @@ msgstr "Nessun archivio selezionato."
msgid "Scanning %s..."
msgstr "Analisi in corso %s..."
+#: lib/remote.tcl:165
+msgid "Prune from"
+msgstr "Effettua potatura da"
+
+#: lib/remote.tcl:170
+msgid "Fetch from"
+msgstr "Recupera da"
+
+#: lib/remote.tcl:213
+msgid "Push to"
+msgstr "Propaga verso"
+
#: lib/shortcut.tcl:20 lib/shortcut.tcl:61
msgid "Cannot write shortcut:"
msgstr "Impossibile scrivere shortcut:"
@@ -1844,6 +1888,43 @@ msgstr "Impossibile scrivere shortcut:"
msgid "Cannot write icon:"
msgstr "Impossibile scrivere icona:"
+#: lib/spellcheck.tcl:57
+msgid "Unsupported spell checker"
+msgstr "Correttore ortografico non supportato"
+
+#: lib/spellcheck.tcl:65
+msgid "Spell checking is unavailable"
+msgstr "Correzione ortografica indisponibile"
+
+#: lib/spellcheck.tcl:68
+msgid "Invalid spell checking configuration"
+msgstr "La configurazione del correttore ortografico non è valida"
+
+#: lib/spellcheck.tcl:70
+#, tcl-format
+msgid "Reverting dictionary to %s."
+msgstr "Il dizionario è stato reimpostato su %s."
+
+#: lib/spellcheck.tcl:73
+msgid "Spell checker silently failed on startup"
+msgstr "Il correttore ortografico ha riportato un errore all'avvio"
+
+#: lib/spellcheck.tcl:80
+msgid "Unrecognized spell checker"
+msgstr "Correttore ortografico sconosciuto"
+
+#: lib/spellcheck.tcl:180
+msgid "No Suggestions"
+msgstr "Nessun suggerimento"
+
+#: lib/spellcheck.tcl:381
+msgid "Unexpected EOF from spell checker"
+msgstr "Il correttore ortografico ha mandato un EOF inaspettato"
+
+#: lib/spellcheck.tcl:385
+msgid "Spell Checker Failed"
+msgstr "Errore nel correttore ortografico"
+
#: lib/status_bar.tcl:83
#, tcl-format
msgid "%s ... %*i of %*i %s (%3i%%)"
diff --git a/git-gui/po/ja.po b/git-gui/po/ja.po
index e2cf5bdc06..28e6d6246b 100644
--- a/git-gui/po/ja.po
+++ b/git-gui/po/ja.po
@@ -8,41 +8,41 @@ msgid ""
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-11-24 10:36+0100\n"
-"PO-Revision-Date: 2007-12-05 06:12+0900\n"
+"POT-Creation-Date: 2008-03-14 07:18+0100\n"
+"PO-Revision-Date: 2008-03-15 20: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:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
-#: git-gui.sh:733
+#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+#: git-gui.sh:763
msgid "git-gui: fatal error"
msgstr "git-gui: 致命的ãªã‚¨ãƒ©ãƒ¼"
-#: git-gui.sh:565
+#: git-gui.sh:593
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "%s ã«ç„¡åŠ¹ãªãƒ•ã‚©ãƒ³ãƒˆãŒæŒ‡å®šã•ã‚Œã¦ã„ã¾ã™:"
-#: git-gui.sh:590
+#: git-gui.sh:620
msgid "Main Font"
msgstr "主フォント"
-#: git-gui.sh:591
+#: git-gui.sh:621
msgid "Diff/Console Font"
msgstr "diff/コンソール・フォント"
-#: git-gui.sh:605
+#: git-gui.sh:635
msgid "Cannot find git in PATH."
msgstr "PATH 中㫠git ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“"
-#: git-gui.sh:632
+#: git-gui.sh:662
msgid "Cannot parse Git version string:"
msgstr "Git ãƒãƒ¼ã‚¸ãƒ§ãƒ³åãŒç†è§£ã§ãã¾ã›ã‚“:"
-#: git-gui.sh:650
+#: git-gui.sh:680
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
@@ -61,79 +61,79 @@ msgstr ""
"\n"
"'%s' ã¯ãƒãƒ¼ã‚¸ãƒ§ãƒ³ 1.5.0 ã¨æ€ã£ã¦è‰¯ã„ã§ã™ã‹ï¼Ÿ\n"
-#: git-gui.sh:888
+#: git-gui.sh:918
msgid "Git directory not found:"
msgstr "Git ディレクトリãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“:"
-#: git-gui.sh:895
+#: git-gui.sh:925
msgid "Cannot move to top of working directory:"
msgstr "作業ディレクトリã®æœ€ä¸Šä½ã«ç§»å‹•ã§ãã¾ã›ã‚“"
-#: git-gui.sh:902
+#: git-gui.sh:932
msgid "Cannot use funny .git directory:"
msgstr "変㪠.git ディレクトリã¯ä½¿ãˆã¾ã›ã‚“"
-#: git-gui.sh:907
+#: git-gui.sh:937
msgid "No working directory"
msgstr "作業ディレクトリãŒã‚ã‚Šã¾ã›ã‚“"
-#: git-gui.sh:1054
+#: git-gui.sh:1084 lib/checkout_op.tcl:283
msgid "Refreshing file status..."
msgstr "ファイル状態を更新ã—ã¦ã„ã¾ã™â€¦"
-#: git-gui.sh:1119
+#: git-gui.sh:1149
msgid "Scanning for modified files ..."
msgstr "変更ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’スキャンã—ã¦ã„ã¾ã™â€¦"
-#: git-gui.sh:1294 lib/browser.tcl:245
+#: git-gui.sh:1324 lib/browser.tcl:246
msgid "Ready."
msgstr "準備完了"
-#: git-gui.sh:1560
+#: git-gui.sh:1590
msgid "Unmodified"
msgstr "変更無ã—"
-#: git-gui.sh:1562
+#: git-gui.sh:1592
msgid "Modified, not staged"
msgstr "変更ã‚ã‚Šã€ã‚³ãƒŸãƒƒãƒˆæœªäºˆå®š"
-#: git-gui.sh:1563 git-gui.sh:1568
+#: git-gui.sh:1593 git-gui.sh:1598
msgid "Staged for commit"
msgstr "コミット予定済"
-#: git-gui.sh:1564 git-gui.sh:1569
+#: git-gui.sh:1594 git-gui.sh:1599
msgid "Portions staged for commit"
msgstr "部分的ã«ã‚³ãƒŸãƒƒãƒˆäºˆå®šæ¸ˆ"
-#: git-gui.sh:1565 git-gui.sh:1570
+#: git-gui.sh:1595 git-gui.sh:1600
msgid "Staged for commit, missing"
msgstr "コミット予定済ã€ãƒ•ã‚¡ã‚¤ãƒ«ç„¡ã—"
-#: git-gui.sh:1567
+#: git-gui.sh:1597
msgid "Untracked, not staged"
msgstr "管ç†å¤–ã€ã‚³ãƒŸãƒƒãƒˆæœªäºˆå®š"
-#: git-gui.sh:1572
+#: git-gui.sh:1602
msgid "Missing"
msgstr "ファイル無ã—"
-#: git-gui.sh:1573
+#: git-gui.sh:1603
msgid "Staged for removal"
msgstr "削除予定済"
-#: git-gui.sh:1574
+#: git-gui.sh:1604
msgid "Staged for removal, still present"
msgstr "削除予定済ã€ãƒ•ã‚¡ã‚¤ãƒ«æœªå‰Šé™¤"
-#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
+#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609
msgid "Requires merge resolution"
msgstr "è¦ãƒžãƒ¼ã‚¸è§£æ±º"
-#: git-gui.sh:1614
+#: git-gui.sh:1644
msgid "Starting gitk... please wait..."
msgstr "gitk を起動中…ãŠå¾…ã¡ä¸‹ã•ã„…"
-#: git-gui.sh:1623
+#: git-gui.sh:1653
#, tcl-format
msgid ""
"Unable to start gitk:\n"
@@ -144,297 +144,297 @@ msgstr ""
"\n"
"%s ãŒã‚ã‚Šã¾ã›ã‚“"
-#: git-gui.sh:1823 lib/choose_repository.tcl:35
+#: git-gui.sh:1860 lib/choose_repository.tcl:36
msgid "Repository"
msgstr "リãƒã‚¸ãƒˆãƒª"
-#: git-gui.sh:1824
+#: git-gui.sh:1861
msgid "Edit"
msgstr "編集"
-#: git-gui.sh:1826 lib/choose_rev.tcl:560
+#: git-gui.sh:1863 lib/choose_rev.tcl:561
msgid "Branch"
msgstr "ブランãƒ"
-#: git-gui.sh:1829 lib/choose_rev.tcl:547
+#: git-gui.sh:1866 lib/choose_rev.tcl:548
msgid "Commit@@noun"
msgstr "コミット"
-#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167
msgid "Merge"
msgstr "マージ"
-#: git-gui.sh:1833 lib/choose_rev.tcl:556
+#: git-gui.sh:1870 lib/choose_rev.tcl:557
msgid "Remote"
msgstr "リモート"
-#: git-gui.sh:1842
+#: git-gui.sh:1879
msgid "Browse Current Branch's Files"
msgstr "ç¾åœ¨ã®ãƒ–ランãƒã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’見る"
-#: git-gui.sh:1846
+#: git-gui.sh:1883
msgid "Browse Branch Files..."
msgstr "ブランãƒã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’見る…"
-#: git-gui.sh:1851
+#: git-gui.sh:1888
msgid "Visualize Current Branch's History"
msgstr "ç¾åœ¨ã®ãƒ–ランãƒã®å±¥æ­´ã‚’見る"
-#: git-gui.sh:1855
+#: git-gui.sh:1892
msgid "Visualize All Branch History"
msgstr "å…¨ã¦ã®ãƒ–ランãƒã®å±¥æ­´ã‚’見る"
-#: git-gui.sh:1862
+#: git-gui.sh:1899
#, tcl-format
msgid "Browse %s's Files"
msgstr "ブランム%s ã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’見る"
-#: git-gui.sh:1864
+#: git-gui.sh:1901
#, tcl-format
msgid "Visualize %s's History"
msgstr "ブランム%s ã®å±¥æ­´ã‚’見る"
-#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "データベース統計"
-#: git-gui.sh:1872 lib/database.tcl:34
+#: git-gui.sh:1909 lib/database.tcl:34
msgid "Compress Database"
msgstr "データベース圧縮"
-#: git-gui.sh:1875
+#: git-gui.sh:1912
msgid "Verify Database"
msgstr "データベース検証"
-#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "デスクトップ・アイコンを作る"
-#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185
msgid "Quit"
msgstr "終了"
-#: git-gui.sh:1902
+#: git-gui.sh:1939
msgid "Undo"
msgstr "å…ƒã«æˆ»ã™"
-#: git-gui.sh:1905
+#: git-gui.sh:1942
msgid "Redo"
msgstr "ã‚„ã‚Šç›´ã—"
-#: git-gui.sh:1909 git-gui.sh:2403
+#: git-gui.sh:1946 git-gui.sh:2443
msgid "Cut"
msgstr "切りå–ã‚Š"
-#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
-#: lib/console.tcl:67
+#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614
+#: lib/console.tcl:69
msgid "Copy"
msgstr "コピー"
-#: git-gui.sh:1915 git-gui.sh:2409
+#: git-gui.sh:1952 git-gui.sh:2449
msgid "Paste"
msgstr "貼り付ã‘"
-#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
+#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "削除"
-#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
+#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71
msgid "Select All"
msgstr "å…¨ã¦é¸æŠž"
-#: git-gui.sh:1931
+#: git-gui.sh:1968
msgid "Create..."
msgstr "作æˆâ€¦"
-#: git-gui.sh:1937
+#: git-gui.sh:1974
msgid "Checkout..."
msgstr "ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆ"
-#: git-gui.sh:1943
+#: git-gui.sh:1980
msgid "Rename..."
msgstr "åå‰å¤‰æ›´â€¦"
-#: git-gui.sh:1948 git-gui.sh:2048
+#: git-gui.sh:1985 git-gui.sh:2085
msgid "Delete..."
msgstr "削除…"
-#: git-gui.sh:1953
+#: git-gui.sh:1990
msgid "Reset..."
msgstr "リセット…"
-#: git-gui.sh:1965 git-gui.sh:2350
+#: git-gui.sh:2002 git-gui.sh:2389
msgid "New Commit"
msgstr "æ–°è¦ã‚³ãƒŸãƒƒãƒˆ"
-#: git-gui.sh:1973 git-gui.sh:2357
+#: git-gui.sh:2010 git-gui.sh:2396
msgid "Amend Last Commit"
msgstr "最新コミットを訂正"
-#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "å†ã‚¹ã‚­ãƒ£ãƒ³"
-#: git-gui.sh:1988
+#: git-gui.sh:2025
msgid "Stage To Commit"
msgstr "コミット予定ã™ã‚‹"
-#: git-gui.sh:1994
+#: git-gui.sh:2031
msgid "Stage Changed Files To Commit"
msgstr "変更ã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«ã‚’コミット予定"
-#: git-gui.sh:2000
+#: git-gui.sh:2037
msgid "Unstage From Commit"
msgstr "コミットã‹ã‚‰é™ã‚ã™"
-#: git-gui.sh:2005 lib/index.tcl:393
+#: git-gui.sh:2042 lib/index.tcl:395
msgid "Revert Changes"
msgstr "変更を元ã«æˆ»ã™"
-#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
+#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467
msgid "Sign Off"
msgstr "ç½²å"
-#: git-gui.sh:2016 git-gui.sh:2333
+#: git-gui.sh:2053 git-gui.sh:2372
msgid "Commit@@verb"
msgstr "コミット"
-#: git-gui.sh:2027
+#: git-gui.sh:2064
msgid "Local Merge..."
msgstr "ローカル・マージ…"
-#: git-gui.sh:2032
+#: git-gui.sh:2069
msgid "Abort Merge..."
msgstr "マージ中止…"
-#: git-gui.sh:2044
+#: git-gui.sh:2081
msgid "Push..."
msgstr "プッシュ…"
-#: git-gui.sh:2055 lib/choose_repository.tcl:40
+#: git-gui.sh:2092 lib/choose_repository.tcl:41
msgid "Apple"
msgstr "ã‚Šã‚“ã”"
-#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
-#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14
+#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
#, tcl-format
msgid "About %s"
msgstr "%s ã«ã¤ã„ã¦"
-#: git-gui.sh:2062
+#: git-gui.sh:2099
msgid "Preferences..."
msgstr "設定…"
-#: git-gui.sh:2070 git-gui.sh:2595
+#: git-gui.sh:2107 git-gui.sh:2639
msgid "Options..."
msgstr "オプション…"
-#: git-gui.sh:2076 lib/choose_repository.tcl:46
+#: git-gui.sh:2113 lib/choose_repository.tcl:47
msgid "Help"
msgstr "ヘルプ"
-#: git-gui.sh:2117
+#: git-gui.sh:2154
msgid "Online Documentation"
msgstr "オンライン・ドキュメント"
-#: git-gui.sh:2201
+#: git-gui.sh:2238
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
msgstr ""
"致命的: パス %s ㌠stat ã§ãã¾ã›ã‚“。ãã®ã‚ˆã†ãªãƒ•ã‚¡ã‚¤ãƒ«ã‚„ディレクトリã¯ã‚ã‚Šã¾"
"ã›ã‚“"
-#: git-gui.sh:2234
+#: git-gui.sh:2271
msgid "Current Branch:"
msgstr "ç¾åœ¨ã®ãƒ–ランãƒ"
-#: git-gui.sh:2255
+#: git-gui.sh:2292
msgid "Staged Changes (Will Commit)"
msgstr "ステージングã•ã‚ŒãŸï¼ˆã‚³ãƒŸãƒƒãƒˆäºˆå®šæ¸ˆã®ï¼‰å¤‰æ›´"
-#: git-gui.sh:2274
+#: git-gui.sh:2312
msgid "Unstaged Changes"
msgstr "コミット予定ã«å…¥ã£ã¦ã„ãªã„変更"
-#: git-gui.sh:2323
+#: git-gui.sh:2362
msgid "Stage Changed"
msgstr "変更をコミット予定ã«å…¥ã‚Œã‚‹"
-#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "プッシュ"
-#: git-gui.sh:2369
+#: git-gui.sh:2408
msgid "Initial Commit Message:"
msgstr "最åˆã®ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒƒã‚»ãƒ¼ã‚¸:"
-#: git-gui.sh:2370
+#: git-gui.sh:2409
msgid "Amended Commit Message:"
msgstr "訂正ã—ãŸã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒƒã‚»ãƒ¼ã‚¸:"
-#: git-gui.sh:2371
+#: git-gui.sh:2410
msgid "Amended Initial Commit Message:"
msgstr "訂正ã—ãŸæœ€åˆã®ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒƒã‚»ãƒ¼ã‚¸:"
-#: git-gui.sh:2372
+#: git-gui.sh:2411
msgid "Amended Merge Commit Message:"
msgstr "訂正ã—ãŸãƒžãƒ¼ã‚¸ã‚³ãƒŸãƒƒãƒˆãƒ¡ãƒƒã‚»ãƒ¼ã‚¸:"
-#: git-gui.sh:2373
+#: git-gui.sh:2412
msgid "Merge Commit Message:"
msgstr "マージコミットメッセージ:"
-#: git-gui.sh:2374
+#: git-gui.sh:2413
msgid "Commit Message:"
msgstr "コミットメッセージ:"
-#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
+#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73
msgid "Copy All"
msgstr "å…¨ã¦ã‚³ãƒ”ー"
-#: git-gui.sh:2443 lib/blame.tcl:104
+#: git-gui.sh:2483 lib/blame.tcl:107
msgid "File:"
msgstr "ファイル:"
-#: git-gui.sh:2545
-msgid "Refresh"
-msgstr "å†èª­ã¿è¾¼ã¿"
-
-#: git-gui.sh:2566
+#: git-gui.sh:2589
msgid "Apply/Reverse Hunk"
msgstr "パッãƒã‚’é©ç”¨/å–り消ã™"
-#: git-gui.sh:2572
-msgid "Decrease Font Size"
-msgstr "フォントをå°ã•ã"
-
-#: git-gui.sh:2576
-msgid "Increase Font Size"
-msgstr "フォントを大ãã"
-
-#: git-gui.sh:2581
+#: git-gui.sh:2595
msgid "Show Less Context"
msgstr "文脈を少ãªã"
-#: git-gui.sh:2588
+#: git-gui.sh:2602
msgid "Show More Context"
msgstr "文脈を多ã"
-#: git-gui.sh:2602
+#: git-gui.sh:2610
+msgid "Refresh"
+msgstr "å†èª­ã¿è¾¼ã¿"
+
+#: git-gui.sh:2631
+msgid "Decrease Font Size"
+msgstr "フォントをå°ã•ã"
+
+#: git-gui.sh:2635
+msgid "Increase Font Size"
+msgstr "フォントを大ãã"
+
+#: git-gui.sh:2646
msgid "Unstage Hunk From Commit"
msgstr "パッãƒã‚’コミット予定ã‹ã‚‰å¤–ã™"
-#: git-gui.sh:2604
+#: git-gui.sh:2648
msgid "Stage Hunk For Commit"
msgstr "パッãƒã‚’コミット予定ã«åŠ ãˆã‚‹"
-#: git-gui.sh:2623
+#: git-gui.sh:2667
msgid "Initializing..."
msgstr "åˆæœŸåŒ–ã—ã¦ã„ã¾ã™â€¦"
-#: git-gui.sh:2718
+#: git-gui.sh:2762
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
@@ -449,7 +449,7 @@ msgstr ""
"以下ã®ç’°å¢ƒå¤‰æ•°ã¯ %s ãŒèµ·å‹•ã™ã‚‹ Git サブプロセスã«ã‚ˆã£ã¦ç„¡è¦–ã•ã‚Œã‚‹ã§ã—ょã†:\n"
"\n"
-#: git-gui.sh:2748
+#: git-gui.sh:2792
msgid ""
"\n"
"This is due to a known issue with the\n"
@@ -459,7 +459,7 @@ msgstr ""
"ã“れ㯠Cygwin ã§é…布ã•ã‚Œã¦ã„ã‚‹ Tcl ãƒã‚¤ãƒŠãƒªã«\n"
"é–¢ã—ã¦ã®æ—¢çŸ¥ã®å•é¡Œã«ã‚ˆã‚Šã¾ã™"
-#: git-gui.sh:2753
+#: git-gui.sh:2797
#, tcl-format
msgid ""
"\n"
@@ -474,7 +474,7 @@ msgstr ""
"個人的㪠~/.gitconfig ファイル内㧠user.name 㨠user.email ã®å€¤ã‚’設定\n"
"ã™ã‚‹ã®ãŒã€%s ã®è‰¯ã„代用ã¨ãªã‚Šã¾ã™\n"
-#: lib/about.tcl:25
+#: lib/about.tcl:26
msgid "git-gui - a graphical user interface for Git."
msgstr "Git ã®ã‚°ãƒ©ãƒ•ã‚£ã‚«ãƒ«UI git-gui"
@@ -486,56 +486,56 @@ msgstr "ファイルピューワ"
msgid "Commit:"
msgstr "コミット:"
-#: lib/blame.tcl:249
+#: lib/blame.tcl:264
msgid "Copy Commit"
msgstr "コミットをコピー"
-#: lib/blame.tcl:369
+#: lib/blame.tcl:384
#, tcl-format
msgid "Reading %s..."
msgstr "%s を読んã§ã„ã¾ã™â€¦"
-#: lib/blame.tcl:473
+#: lib/blame.tcl:488
msgid "Loading copy/move tracking annotations..."
msgstr "コピー・移動追跡データを読んã§ã„ã¾ã™â€¦"
-#: lib/blame.tcl:493
+#: lib/blame.tcl:508
msgid "lines annotated"
msgstr "行を注釈ã—ã¾ã—ãŸ"
-#: lib/blame.tcl:674
+#: lib/blame.tcl:689
msgid "Loading original location annotations..."
msgstr "å…ƒä½ç½®è¡Œã®æ³¨é‡ˆãƒ‡ãƒ¼ã‚¿ã‚’読んã§ã„ã¾ã™â€¦"
-#: lib/blame.tcl:677
+#: lib/blame.tcl:692
msgid "Annotation complete."
msgstr "注釈完了ã—ã¾ã—ãŸ"
-#: lib/blame.tcl:731
+#: lib/blame.tcl:746
msgid "Loading annotation..."
msgstr "注釈を読ã¿è¾¼ã‚“ã§ã„ã¾ã™â€¦"
-#: lib/blame.tcl:787
+#: lib/blame.tcl:802
msgid "Author:"
msgstr "作者:"
-#: lib/blame.tcl:791
+#: lib/blame.tcl:806
msgid "Committer:"
msgstr "コミット者:"
-#: lib/blame.tcl:796
+#: lib/blame.tcl:811
msgid "Original File:"
msgstr "元ファイル"
-#: lib/blame.tcl:910
+#: lib/blame.tcl:925
msgid "Originally By:"
msgstr "原作者:"
-#: lib/blame.tcl:916
+#: lib/blame.tcl:931
msgid "In File:"
msgstr "ファイル:"
-#: lib/blame.tcl:921
+#: lib/blame.tcl:936
msgid "Copied Or Moved Here By:"
msgstr "複写・移動者:"
@@ -548,17 +548,17 @@ msgid "Checkout"
msgstr "ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆ"
#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
-#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
-#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
-#: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282
+#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171
+#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
msgid "Cancel"
msgstr "中止"
-#: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+#: lib/branch_checkout.tcl:32 lib/browser.tcl:287
msgid "Revision"
msgstr "リビジョン"
-#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242
msgid "Options"
msgstr "オプション"
@@ -578,7 +578,7 @@ msgstr "ブランãƒã‚’作æˆ"
msgid "Create New Branch"
msgstr "ブランãƒã‚’æ–°è¦ä½œæˆ"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371
msgid "Create"
msgstr "作æˆ"
@@ -718,22 +718,22 @@ msgstr "起動中…"
msgid "File Browser"
msgstr "ファイル・ブラウザ"
-#: lib/browser.tcl:125 lib/browser.tcl:142
+#: lib/browser.tcl:126 lib/browser.tcl:143
#, tcl-format
msgid "Loading %s..."
msgstr "%s をロード中…"
-#: lib/browser.tcl:186
+#: lib/browser.tcl:187
msgid "[Up To Parent]"
msgstr "[上ä½ãƒ•ã‚©ãƒ«ãƒ€ã¸]"
-#: lib/browser.tcl:266 lib/browser.tcl:272
+#: lib/browser.tcl:267 lib/browser.tcl:273
msgid "Browse Branch Files"
msgstr "ç¾åœ¨ã®ãƒ–ランãƒã®ãƒ•ã‚¡ã‚¤ãƒ«ã‚’見る"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:391
-#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
-#: lib/choose_repository.tcl:989
+#: lib/browser.tcl:278 lib/choose_repository.tcl:387
+#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484
+#: lib/choose_repository.tcl:987
msgid "Browse"
msgstr "ブラウズ"
@@ -747,7 +747,7 @@ msgstr "%s ã‹ã‚‰ %s をフェッãƒã—ã¦ã„ã¾ã™"
msgid "fatal: Cannot resolve %s"
msgstr "致命的エラー: %s を解決ã§ãã¾ã›ã‚“"
-#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
msgstr "é–‰ã˜ã‚‹"
@@ -804,6 +804,10 @@ msgstr ""
msgid "Updating working directory to '%s'..."
msgstr "作業ディレクトリを '%s' ã«æ›´æ–°ã—ã¦ã„ã¾ã™â€¦"
+#: lib/checkout_op.tcl:323
+msgid "files checked out"
+msgstr "ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã•ã‚ŒãŸãƒ•ã‚¡ã‚¤ãƒ«"
+
#: lib/checkout_op.tcl:353
#, tcl-format
msgid "Aborted checkout of '%s' (file level merging is required)."
@@ -830,7 +834,7 @@ msgstr ""
"ブランãƒä¸Šã«æ»žã¾ã‚ŠãŸã„ã¨ãã¯ã€ã“ã®ã€Œåˆ†é›¢ã•ã‚ŒãŸãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã€ã‹ã‚‰æ–°è¦ãƒ–ラン"
"ãƒã‚’開始ã—ã¦ãã ã•ã„。"
-#: lib/checkout_op.tcl:446
+#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450
#, tcl-format
msgid "Checked out '%s'."
msgstr "'%s' ã‚’ãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã—ã¾ã—ãŸ"
@@ -849,7 +853,7 @@ msgstr "失ãªã‚ã‚ŒãŸã‚³ãƒŸãƒƒãƒˆã‚’回復ã™ã‚‹ã®ã¯ç°¡å˜ã§ã¯ã‚ã‚Šã¾ã›
msgid "Reset '%s'?"
msgstr "'%s' をリセットã—ã¾ã™ã‹ï¼Ÿ"
-#: lib/checkout_op.tcl:510 lib/merge.tcl:164
+#: lib/checkout_op.tcl:510 lib/merge.tcl:163
msgid "Visualize"
msgstr "å¯è¦–化"
@@ -877,15 +881,15 @@ msgstr "é¸æŠž"
msgid "Font Family"
msgstr "フォント・ファミリー"
-#: lib/choose_font.tcl:73
+#: lib/choose_font.tcl:74
msgid "Font Size"
msgstr "フォントã®å¤§ãã•"
-#: lib/choose_font.tcl:90
+#: lib/choose_font.tcl:91
msgid "Font Example"
msgstr "フォント・サンプル"
-#: lib/choose_font.tcl:101
+#: lib/choose_font.tcl:103
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
@@ -893,225 +897,225 @@ msgstr ""
"ã“ã‚Œã¯ã‚µãƒ³ãƒ—ル文ã§ã™ã€‚\n"
"ã“ã®ãƒ•ã‚©ãƒ³ãƒˆãŒæ°—ã«å…¥ã‚Œã°ãŠä½¿ã„ã«ãªã‚Œã¾ã™ã€‚"
-#: lib/choose_repository.tcl:27
+#: lib/choose_repository.tcl:28
msgid "Git Gui"
msgstr "Git GUI"
-#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376
msgid "Create New Repository"
msgstr "æ–°ã—ã„リãƒã‚¸ãƒˆãƒªã‚’作る"
-#: lib/choose_repository.tcl:86
+#: lib/choose_repository.tcl:87
msgid "New..."
msgstr "æ–°è¦â€¦"
-#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460
msgid "Clone Existing Repository"
msgstr "既存リãƒã‚¸ãƒˆãƒªã‚’複製ã™ã‚‹"
-#: lib/choose_repository.tcl:99
+#: lib/choose_repository.tcl:100
msgid "Clone..."
msgstr "複製…"
-#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976
msgid "Open Existing Repository"
msgstr "既存リãƒã‚¸ãƒˆãƒªã‚’é–‹ã"
-#: lib/choose_repository.tcl:112
+#: lib/choose_repository.tcl:113
msgid "Open..."
msgstr "é–‹ã…"
-#: lib/choose_repository.tcl:125
+#: lib/choose_repository.tcl:126
msgid "Recent Repositories"
msgstr "最近使ã£ãŸãƒªãƒã‚¸ãƒˆãƒª"
-#: lib/choose_repository.tcl:131
+#: lib/choose_repository.tcl:132
msgid "Open Recent Repository:"
msgstr "最近使ã£ãŸãƒªãƒã‚¸ãƒˆãƒªã‚’é–‹ã"
-#: lib/choose_repository.tcl:294
-#, tcl-format
-msgid "Location %s already exists."
-msgstr "'%s' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚"
-
-#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
-#: lib/choose_repository.tcl:314
+#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303
+#: lib/choose_repository.tcl:310
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "リãƒã‚¸ãƒˆãƒª %s を作製ã§ãã¾ã›ã‚“:"
-#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478
msgid "Directory:"
msgstr "ディレクトリ:"
-#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
-#: lib/choose_repository.tcl:1013
+#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537
+#: lib/choose_repository.tcl:1011
msgid "Git Repository"
msgstr "GIT リãƒã‚¸ãƒˆãƒª"
-#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#: lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "ディレクトリ '%s' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚"
-#: lib/choose_repository.tcl:442
+#: lib/choose_repository.tcl:441
#, tcl-format
msgid "File %s already exists."
msgstr "ファイル '%s' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚"
-#: lib/choose_repository.tcl:463
+#: lib/choose_repository.tcl:455
msgid "Clone"
msgstr "複製"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:468
msgid "URL:"
msgstr "URL:"
-#: lib/choose_repository.tcl:496
+#: lib/choose_repository.tcl:489
msgid "Clone Type:"
msgstr "複製方å¼:"
-#: lib/choose_repository.tcl:502
+#: lib/choose_repository.tcl:495
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "標準(高速・中冗長度・ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯)"
-#: lib/choose_repository.tcl:508
+#: lib/choose_repository.tcl:501
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "全複写(低速・冗長ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—)"
-#: lib/choose_repository.tcl:514
+#: lib/choose_repository.tcl:507
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "共有(最高速・éžæŽ¨å¥¨ãƒ»ãƒãƒƒã‚¯ã‚¢ãƒƒãƒ—ç„¡ã—)"
-#: 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
+#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806
+#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "Git リãƒã‚¸ãƒˆãƒªã§ã¯ã‚ã‚Šã¾ã›ã‚“: %s"
-#: lib/choose_repository.tcl:586
+#: lib/choose_repository.tcl:579
msgid "Standard only available for local repository."
msgstr "標準方å¼ã¯åŒä¸€è¨ˆç®—機上ã®ãƒªãƒã‚¸ãƒˆãƒªã«ã®ã¿ä½¿ãˆã¾ã™ã€‚"
-#: lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:583
msgid "Shared only available for local repository."
msgstr "共有方å¼ã¯åŒä¸€è¨ˆç®—機上ã®ãƒªãƒã‚¸ãƒˆãƒªã«ã®ã¿ä½¿ãˆã¾ã™ã€‚"
-#: lib/choose_repository.tcl:617
+#: lib/choose_repository.tcl:604
+#, tcl-format
+msgid "Location %s already exists."
+msgstr "'%s' ã¯æ—¢ã«å­˜åœ¨ã—ã¾ã™ã€‚"
+
+#: lib/choose_repository.tcl:615
msgid "Failed to configure origin"
msgstr "origin を設定ã§ãã¾ã›ã‚“ã§ã—ãŸ"
-#: lib/choose_repository.tcl:629
+#: lib/choose_repository.tcl:627
msgid "Counting objects"
msgstr "オブジェクトを数ãˆã¦ã„ã¾ã™"
-#: lib/choose_repository.tcl:630
+#: lib/choose_repository.tcl:628
msgid "buckets"
msgstr "ãƒã‚±ãƒ„"
-#: lib/choose_repository.tcl:654
+#: lib/choose_repository.tcl:652
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "objects/info/alternates を複写ã§ãã¾ã›ã‚“: %s"
-#: lib/choose_repository.tcl:690
+#: lib/choose_repository.tcl:688
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "%s ã‹ã‚‰è¤‡è£½ã™ã‚‹å†…容ã¯ã‚ã‚Šã¾ã›ã‚“"
-#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
-#: lib/choose_repository.tcl:918
+#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:916
msgid "The 'master' branch has not been initialized."
msgstr "'master' ブランãƒãŒåˆæœŸåŒ–ã•ã‚Œã¦ã„ã¾ã›ã‚“"
-#: lib/choose_repository.tcl:705
+#: lib/choose_repository.tcl:703
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "ãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ãŒä½œã‚Œãªã„ã®ã§ã€ã‚³ãƒ”ーã—ã¾ã™"
-#: lib/choose_repository.tcl:717
+#: lib/choose_repository.tcl:715
#, tcl-format
msgid "Cloning from %s"
msgstr "%s ã‹ã‚‰è¤‡è£½ã—ã¦ã„ã¾ã™"
-#: lib/choose_repository.tcl:748
+#: lib/choose_repository.tcl:746
msgid "Copying objects"
msgstr "オブジェクトを複写ã—ã¦ã„ã¾ã™"
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:747
msgid "KiB"
msgstr "KiB"
-#: lib/choose_repository.tcl:773
+#: lib/choose_repository.tcl:771
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "オブジェクトを複写ã§ãã¾ã›ã‚“: %s"
-#: lib/choose_repository.tcl:783
+#: lib/choose_repository.tcl:781
msgid "Linking objects"
msgstr "オブジェクトを連çµã—ã¦ã„ã¾ã™"
-#: lib/choose_repository.tcl:784
+#: lib/choose_repository.tcl:782
msgid "objects"
msgstr "オブジェクト"
-#: lib/choose_repository.tcl:792
+#: lib/choose_repository.tcl:790
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "オブジェクトをãƒãƒ¼ãƒ‰ãƒªãƒ³ã‚¯ã§ãã¾ã›ã‚“: %s"
-#: lib/choose_repository.tcl:847
+#: lib/choose_repository.tcl:845
msgid "Cannot fetch branches and objects. See console output for details."
msgstr "ブランãƒã‚„オブジェクトをå–å¾—ã§ãã¾ã›ã‚“。コンソール出力を見ã¦ä¸‹ã•ã„"
-#: lib/choose_repository.tcl:858
+#: lib/choose_repository.tcl:856
msgid "Cannot fetch tags. See console output for details."
msgstr "ã‚¿ã‚°ã‚’å–å¾—ã§ãã¾ã›ã‚“。コンソール出力を見ã¦ä¸‹ã•ã„"
-#: lib/choose_repository.tcl:882
+#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
msgstr "HEAD を確定ã§ãã¾ã›ã‚“。コンソール出力を見ã¦ä¸‹ã•ã„"
-#: lib/choose_repository.tcl:891
+#: lib/choose_repository.tcl:889
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "%s を掃除ã§ãã¾ã›ã‚“"
-#: lib/choose_repository.tcl:897
+#: lib/choose_repository.tcl:895
msgid "Clone failed."
msgstr "複写ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:902
msgid "No default branch obtained."
msgstr "デフォールト・ブランãƒãŒå–å¾—ã•ã‚Œã¾ã›ã‚“ã§ã—ãŸ"
-#: lib/choose_repository.tcl:915
+#: lib/choose_repository.tcl:913
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "%s をコミットã¨ã—ã¦è§£é‡ˆã§ãã¾ã›ã‚“"
-#: lib/choose_repository.tcl:927
+#: lib/choose_repository.tcl:925
msgid "Creating working directory"
msgstr "作業ディレクトリを作æˆã—ã¦ã„ã¾ã™"
-#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127
#: lib/index.tcl:193
msgid "files"
msgstr "ファイル"
-#: lib/choose_repository.tcl:957
+#: lib/choose_repository.tcl:955
msgid "Initial file checkout failed."
msgstr "åˆæœŸãƒã‚§ãƒƒã‚¯ã‚¢ã‚¦ãƒˆã«å¤±æ•—ã—ã¾ã—ãŸ"
-#: lib/choose_repository.tcl:973
+#: lib/choose_repository.tcl:971
msgid "Open"
msgstr "é–‹ã"
-#: lib/choose_repository.tcl:983
+#: lib/choose_repository.tcl:981
msgid "Repository:"
msgstr "リãƒã‚¸ãƒˆãƒª:"
-#: lib/choose_repository.tcl:1033
+#: lib/choose_repository.tcl:1031
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "リãƒã‚¸ãƒˆãƒª %s ã‚’é–‹ã‘ã¾ã›ã‚“:"
@@ -1132,7 +1136,7 @@ msgstr "ローカル・ブランãƒ"
msgid "Tracking Branch"
msgstr "トラッキング・ブランãƒ"
-#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538
msgid "Tag"
msgstr "ã‚¿ã‚°"
@@ -1149,11 +1153,11 @@ msgstr "リビジョンãŒæœªé¸æŠžã§ã™ã€‚"
msgid "Revision expression is empty."
msgstr "リビジョンå¼ãŒç©ºã§ã™ã€‚"
-#: lib/choose_rev.tcl:530
+#: lib/choose_rev.tcl:531
msgid "Updated"
msgstr "æ›´æ–°ã—ã¾ã—ãŸ"
-#: lib/choose_rev.tcl:558
+#: lib/choose_rev.tcl:559
msgid "URL"
msgstr "URL"
@@ -1262,16 +1266,45 @@ msgstr ""
"- 第2行: 空白\n"
"- 残りã®è¡Œ: ãªãœã€ã“ã®å¤‰æ›´ãŒè‰¯ã„変更ã‹ã€ã®èª¬æ˜Žã€‚\n"
-#: lib/commit.tcl:257
+#: lib/commit.tcl:207
+#, tcl-format
+msgid "warning: Tcl does not support encoding '%s'."
+msgstr "警告: Tcl ã¯ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚° '%s' をサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“"
+
+#: lib/commit.tcl:221
+msgid "Calling pre-commit hook..."
+msgstr "コミットå‰ãƒ•ãƒƒã‚¯ã‚’実行中・・・"
+
+#: lib/commit.tcl:236
+msgid "Commit declined by pre-commit hook."
+msgstr "コミットå‰ãƒ•ãƒƒã‚¯ãŒã‚³ãƒŸãƒƒãƒˆã‚’æ‹’å¦ã—ã¾ã—ãŸ"
+
+#: lib/commit.tcl:259
+msgid "Calling commit-msg hook..."
+msgstr "コミット・メッセージ・フックを実行中・・・"
+
+#: lib/commit.tcl:274
+msgid "Commit declined by commit-msg hook."
+msgstr "コミット・メッセージ・フックãŒã‚³ãƒŸãƒƒãƒˆã‚’æ‹’å¦ã—ã¾ã—ãŸ"
+
+#: lib/commit.tcl:287
+msgid "Committing changes..."
+msgstr "変更点をコミット中・・・"
+
+#: lib/commit.tcl:303
msgid "write-tree failed:"
msgstr "write-tree ãŒå¤±æ•—ã—ã¾ã—ãŸ:"
-#: lib/commit.tcl:275
+#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368
+msgid "Commit failed."
+msgstr "コミットã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
+
+#: lib/commit.tcl:321
#, tcl-format
msgid "Commit %s appears to be corrupt"
msgstr "コミット %s ã¯å£Šã‚Œã¦ã„ã¾ã™"
-#: lib/commit.tcl:279
+#: lib/commit.tcl:326
msgid ""
"No changes to commit.\n"
"\n"
@@ -1285,37 +1318,32 @@ msgstr ""
"\n"
"自動的ã«å†ã‚¹ã‚­ãƒ£ãƒ³ã‚’開始ã—ã¾ã™ã€‚\n"
-#: lib/commit.tcl:286
+#: lib/commit.tcl:333
msgid "No changes to commit."
msgstr "コミットã™ã‚‹å¤‰æ›´ãŒã‚ã‚Šã¾ã›ã‚“。"
-#: lib/commit.tcl:303
-#, tcl-format
-msgid "warning: Tcl does not support encoding '%s'."
-msgstr "警告: Tcl ã¯ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‡ã‚£ãƒ³ã‚° '%s' をサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã›ã‚“"
-
-#: lib/commit.tcl:317
+#: lib/commit.tcl:347
msgid "commit-tree failed:"
msgstr "commit-tree ãŒå¤±æ•—ã—ã¾ã—ãŸ:"
-#: lib/commit.tcl:339
+#: lib/commit.tcl:367
msgid "update-ref failed:"
msgstr "update-ref ãŒå¤±æ•—ã—ã¾ã—ãŸ:"
-#: lib/commit.tcl:430
+#: lib/commit.tcl:454
#, tcl-format
msgid "Created commit %s: %s"
msgstr "コミット %s を作æˆã—ã¾ã—ãŸ: %s"
-#: lib/console.tcl:57
+#: lib/console.tcl:59
msgid "Working... please wait..."
msgstr "実行中…ãŠå¾…ã¡ä¸‹ã•ã„…"
-#: lib/console.tcl:183
+#: lib/console.tcl:186
msgid "Success"
msgstr "æˆåŠŸ"
-#: lib/console.tcl:196
+#: lib/console.tcl:200
msgid "Error: Command Failed"
msgstr "エラー: コマンドãŒå¤±æ•—ã—ã¾ã—ãŸ"
@@ -1425,23 +1453,23 @@ msgstr "* ãƒã‚¤ãƒŠãƒªãƒ•ã‚¡ã‚¤ãƒ«(内容ã¯è¡¨ç¤ºã—ã¾ã›ã‚“)"
msgid "Error loading diff:"
msgstr "diff を読む際ã®ã‚¨ãƒ©ãƒ¼ã§ã™:"
-#: lib/diff.tcl:302
+#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
msgstr "é¸æŠžã•ã‚ŒãŸãƒ‘ッãƒã‚’コミット予定ã‹ã‚‰å¤–ã›ã¾ã›ã‚“。"
-#: lib/diff.tcl:309
+#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
msgstr "é¸æŠžã•ã‚ŒãŸãƒ‘ッãƒã‚’コミット予定ã«åŠ ãˆã‚‰ã‚Œã¾ã›ã‚“。"
-#: lib/error.tcl:12 lib/error.tcl:102
+#: lib/error.tcl:20 lib/error.tcl:114
msgid "error"
msgstr "エラー"
-#: lib/error.tcl:28
+#: lib/error.tcl:36
msgid "warning"
msgstr "警告"
-#: lib/error.tcl:81
+#: lib/error.tcl:94
msgid "You must correct the above errors before committing."
msgstr "コミットã™ã‚‹å‰ã«ã€ä»¥ä¸Šã®ã‚¨ãƒ©ãƒ¼ã‚’修正ã—ã¦ä¸‹ã•ã„"
@@ -1457,7 +1485,9 @@ msgstr "索引エラー"
msgid ""
"Updating the Git index failed. A rescan will be automatically started to "
"resynchronize git-gui."
-msgstr "GIT インデックスã®æ›´æ–°ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚git-gui ã¨åŒæœŸã‚’ã¨ã‚‹ãŸã‚ã«å†ã‚¹ã‚­ãƒ£ãƒ³ã—ã¾ã™ã€‚"
+msgstr ""
+"GIT インデックスã®æ›´æ–°ãŒå¤±æ•—ã—ã¾ã—ãŸã€‚git-gui ã¨åŒæœŸã‚’ã¨ã‚‹ãŸã‚ã«å†ã‚¹ã‚­ãƒ£ãƒ³ã—"
+"ã¾ã™ã€‚"
#: lib/index.tcl:27
msgid "Continue"
@@ -1472,6 +1502,10 @@ msgstr "インデックスã®ãƒ­ãƒƒã‚¯è§£é™¤"
msgid "Unstaging %s from commit"
msgstr "コミットã‹ã‚‰ '%s' ã‚’é™ã‚ã™"
+#: lib/index.tcl:313
+msgid "Ready to commit."
+msgstr "コミット準備完了"
+
#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
@@ -1487,11 +1521,11 @@ msgstr "ファイル %s ã«ã—ãŸå¤‰æ›´ã‚’å…ƒã«æˆ»ã—ã¾ã™ã‹ï¼Ÿ"
msgid "Revert changes in these %i files?"
msgstr "ã“れら %i 個ã®ãƒ•ã‚¡ã‚¤ãƒ«ã«ã—ãŸå¤‰æ›´ã‚’å…ƒã«æˆ»ã—ã¾ã™ã‹ï¼Ÿ"
-#: lib/index.tcl:389
+#: lib/index.tcl:391
msgid "Any unstaged changes will be permanently lost by the revert."
msgstr "変更を元ã«æˆ»ã™ã¨ã‚³ãƒŸãƒƒãƒˆäºˆå®šã—ã¦ã„ãªã„変更ã¯å…¨ã¦å¤±ã‚ã‚Œã¾ã™ã€‚"
-#: lib/index.tcl:392
+#: lib/index.tcl:394
msgid "Do Nothing"
msgstr "何もã—ãªã„"
@@ -1562,27 +1596,27 @@ msgstr "%s ã® %s ブランãƒ"
#: lib/merge.tcl:119
#, tcl-format
-msgid "Merging %s and %s"
-msgstr "%s 㨠%s をマージã—ã¾ã™"
+msgid "Merging %s and %s..."
+msgstr "%s 㨠%s をマージ中・・・"
-#: lib/merge.tcl:131
+#: lib/merge.tcl:130
msgid "Merge completed successfully."
msgstr "マージãŒå®Œäº†ã—ã¾ã—ãŸ"
-#: lib/merge.tcl:133
+#: lib/merge.tcl:132
msgid "Merge failed. Conflict resolution is required."
msgstr "マージãŒå¤±æ•—ã—ã¾ã—ãŸã€‚è¡çªã®è§£æ±ºãŒå¿…è¦ã§ã™ã€‚"
-#: lib/merge.tcl:158
+#: lib/merge.tcl:157
#, tcl-format
msgid "Merge Into %s"
msgstr "%s ã«ãƒžãƒ¼ã‚¸"
-#: lib/merge.tcl:177
+#: lib/merge.tcl:176
msgid "Revision To Merge"
msgstr "マージã™ã‚‹ãƒªãƒ“ジョン"
-#: lib/merge.tcl:212
+#: lib/merge.tcl:211
msgid ""
"Cannot abort while amending.\n"
"\n"
@@ -1592,7 +1626,7 @@ msgstr ""
"\n"
"ã¾ãšä»Šã®ã‚³ãƒŸãƒƒãƒˆè¨‚正を完了ã•ã›ã¦ä¸‹ã•ã„。\n"
-#: lib/merge.tcl:222
+#: lib/merge.tcl:221
msgid ""
"Abort merge?\n"
"\n"
@@ -1606,7 +1640,7 @@ msgstr ""
"\n"
"マージを中断ã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ"
-#: lib/merge.tcl:228
+#: lib/merge.tcl:227
msgid ""
"Reset changes?\n"
"\n"
@@ -1620,93 +1654,105 @@ msgstr ""
"\n"
"リセットã—ã¦ã‚ˆã‚ã—ã„ã§ã™ã‹ï¼Ÿ"
-#: lib/merge.tcl:239
+#: lib/merge.tcl:238
msgid "Aborting"
msgstr "中断ã—ã¦ã„ã¾ã™"
-#: lib/merge.tcl:266
+#: lib/merge.tcl:238
+msgid "files reset"
+msgstr "リセットã—ãŸãƒ•ã‚¡ã‚¤ãƒ«"
+
+#: lib/merge.tcl:265
msgid "Abort failed."
msgstr "中断ã«å¤±æ•—ã—ã¾ã—ãŸã€‚"
-#: lib/merge.tcl:268
+#: lib/merge.tcl:267
msgid "Abort completed. Ready."
msgstr "中断完了。"
-#: lib/option.tcl:82
+#: lib/option.tcl:95
msgid "Restore Defaults"
msgstr "既定値ã«æˆ»ã™"
-#: lib/option.tcl:86
+#: lib/option.tcl:99
msgid "Save"
msgstr "ä¿å­˜"
-#: lib/option.tcl:96
+#: lib/option.tcl:109
#, tcl-format
msgid "%s Repository"
msgstr "%s リãƒã‚¸ãƒˆãƒª"
-#: lib/option.tcl:97
+#: lib/option.tcl:110
msgid "Global (All Repositories)"
msgstr "大域(全ã¦ã®ãƒªãƒã‚¸ãƒˆãƒªï¼‰"
-#: lib/option.tcl:103
+#: lib/option.tcl:116
msgid "User Name"
msgstr "ユーザå"
-#: lib/option.tcl:104
+#: lib/option.tcl:117
msgid "Email Address"
msgstr "é›»å­ãƒ¡ãƒ¼ãƒ«ã‚¢ãƒ‰ãƒ¬ã‚¹"
-#: lib/option.tcl:106
+#: lib/option.tcl:119
msgid "Summarize Merge Commits"
msgstr "マージコミットã®è¦ç´„"
-#: lib/option.tcl:107
+#: lib/option.tcl:120
msgid "Merge Verbosity"
msgstr "マージã®å†—長度"
-#: lib/option.tcl:108
+#: lib/option.tcl:121
msgid "Show Diffstat After Merge"
msgstr "マージ後㫠diffstat を表示"
-#: lib/option.tcl:110
+#: lib/option.tcl:123
msgid "Trust File Modification Timestamps"
msgstr "ファイル変更時刻を信頼ã™ã‚‹"
-#: lib/option.tcl:111
+#: lib/option.tcl:124
msgid "Prune Tracking Branches During Fetch"
msgstr "フェッãƒä¸­ã«ãƒˆãƒ©ãƒƒã‚­ãƒ³ã‚°ãƒ–ランãƒã‚’刈る"
-#: lib/option.tcl:112
+#: lib/option.tcl:125
msgid "Match Tracking Branches"
msgstr "トラッキングブランãƒã‚’åˆã‚ã›ã‚‹"
-#: lib/option.tcl:113
+#: lib/option.tcl:126
msgid "Number of Diff Context Lines"
msgstr "diff ã®æ–‡è„ˆè¡Œæ•°"
-#: lib/option.tcl:114
+#: lib/option.tcl:127
+msgid "Commit Message Text Width"
+msgstr "コミットメッセージã®ãƒ†ã‚­ã‚¹ãƒˆå¹…"
+
+#: lib/option.tcl:128
msgid "New Branch Name Template"
msgstr "æ–°ã—ã„ブランãƒåã®ãƒ†ãƒ³ãƒ—レート"
-#: lib/option.tcl:176
+#: lib/option.tcl:192
+msgid "Spelling Dictionary:"
+msgstr "スペルãƒã‚§ãƒƒã‚¯è¾žæ›¸"
+
+#: lib/option.tcl:216
msgid "Change Font"
msgstr "フォントを変更"
-#: lib/option.tcl:180
+#: lib/option.tcl:220
#, tcl-format
msgid "Choose %s"
msgstr "%s ã‚’é¸æŠž"
-#: lib/option.tcl:186
+#: lib/option.tcl:226
msgid "pt."
msgstr "ãƒã‚¤ãƒ³ãƒˆ"
-#: lib/option.tcl:200
+#: lib/option.tcl:240
msgid "Preferences"
msgstr "設定"
-#: lib/option.tcl:235
+#: lib/option.tcl:275
msgid "Failed to completely save options:"
msgstr "完全ã«ã‚ªãƒ—ションをä¿å­˜ã§ãã¾ã›ã‚“:"
@@ -1814,6 +1860,43 @@ msgstr "ショートカットãŒæ›¸ã‘ã¾ã›ã‚“:"
msgid "Cannot write icon:"
msgstr "アイコンãŒæ›¸ã‘ã¾ã›ã‚“:"
+#: lib/spellcheck.tcl:57
+msgid "Unsupported spell checker"
+msgstr "サãƒãƒ¼ãƒˆã•ã‚Œã¦ã„ãªã„スペルãƒã‚§ãƒƒã‚«ãƒ¼ã§ã™"
+
+#: lib/spellcheck.tcl:65
+msgid "Spell checking is unavailable"
+msgstr "スペルãƒã‚§ãƒƒã‚¯æ©Ÿèƒ½ã¯ä½¿ãˆã¾ã›ã‚“"
+
+#: lib/spellcheck.tcl:68
+msgid "Invalid spell checking configuration"
+msgstr "スペルãƒã‚§ãƒƒã‚¯ã®è¨­å®šãŒä¸æ­£ã§ã™"
+
+#: lib/spellcheck.tcl:70
+#, tcl-format
+msgid "Reverting dictionary to %s."
+msgstr "辞書を %s ã«å·»ã戻ã—ã¾ã™"
+
+#: lib/spellcheck.tcl:73
+msgid "Spell checker silently failed on startup"
+msgstr "スペルãƒã‚§ãƒƒã‚«ãƒ¼ã®èµ·å‹•ã«å¤±æ•—ã—ã¾ã—ãŸ"
+
+#: lib/spellcheck.tcl:80
+msgid "Unrecognized spell checker"
+msgstr "スペルãƒã‚§ãƒƒã‚«ãƒ¼ãŒåˆ¤åˆ¥ã§ãã¾ã›ã‚“"
+
+#: lib/spellcheck.tcl:180
+msgid "No Suggestions"
+msgstr "æ案ãªã—"
+
+#: lib/spellcheck.tcl:381
+msgid "Unexpected EOF from spell checker"
+msgstr "スペルãƒã‚§ãƒƒã‚«ãƒ¼ãŒäºˆæƒ³å¤–ã® EOF ã‚’è¿”ã—ã¾ã—ãŸ"
+
+#: lib/spellcheck.tcl:385
+msgid "Spell Checker Failed"
+msgstr "スペルãƒã‚§ãƒƒã‚¯å¤±æ•—"
+
#: lib/status_bar.tcl:83
#, tcl-format
msgid "%s ... %*i of %*i %s (%3i%%)"
@@ -1881,3 +1964,6 @@ msgstr "Thin Pack を使ã†ï¼ˆé…ã„ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯æŽ¥ç¶šï¼‰"
#: lib/transport.tcl:168
msgid "Include tags"
msgstr "ã‚¿ã‚°ã‚’å«ã‚ã‚‹"
+
+#~ msgid "Not connected to aspell"
+#~ msgstr "aspell ã«æŽ¥ç¶šã—ã¦ã„ã¾ã›ã‚“"
diff --git a/git-gui/po/ru.po b/git-gui/po/ru.po
index 6727a832ea..db55b3e0a6 100644
--- a/git-gui/po/ru.po
+++ b/git-gui/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-10-31 21:23+0100\n"
+"POT-Creation-Date: 2008-03-14 07:18+0100\n"
"PO-Revision-Date: 2007-10-22 22:30-0200\n"
"Last-Translator: Alex Riesen <raa.lkml@gmail.com>\n"
"Language-Team: Russian Translation <git@vger.kernel.org>\n"
@@ -15,33 +15,33 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: git-gui.sh:41 git-gui.sh:597 git-gui.sh:611 git-gui.sh:624 git-gui.sh:707
-#: git-gui.sh:726
+#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+#: git-gui.sh:763
msgid "git-gui: fatal error"
msgstr "git-gui: критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°"
-#: git-gui.sh:558
+#: git-gui.sh:593
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "Ð’ %s уÑтановлен неверный шрифт:"
-#: git-gui.sh:583
+#: git-gui.sh:620
msgid "Main Font"
msgstr "Шрифт интерфейÑа"
-#: git-gui.sh:584
+#: git-gui.sh:621
msgid "Diff/Console Font"
msgstr "Шрифт конÑоли и изменений (diff)"
-#: git-gui.sh:598
+#: git-gui.sh:635
msgid "Cannot find git in PATH."
msgstr "git не найден в PATH."
-#: git-gui.sh:625
+#: git-gui.sh:662
msgid "Cannot parse Git version string:"
msgstr "Ðевозможно раÑпознать Ñтроку верÑии Git: "
-#: git-gui.sh:643
+#: git-gui.sh:680
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
@@ -59,79 +59,79 @@ msgstr ""
"\n"
"ПринÑÑ‚ÑŒ '%s' как верÑию 1.5.0?\n"
-#: git-gui.sh:881
+#: git-gui.sh:918
msgid "Git directory not found:"
msgstr "Каталог Git не найден:"
-#: git-gui.sh:888
+#: git-gui.sh:925
msgid "Cannot move to top of working directory:"
msgstr "Ðевозможно перейти к корню рабочего каталога репозиториÑ: "
-#: git-gui.sh:895
+#: git-gui.sh:932
msgid "Cannot use funny .git directory:"
msgstr "Каталог.git иÑпорчен: "
-#: git-gui.sh:900
+#: git-gui.sh:937
msgid "No working directory"
msgstr "ОтÑутÑтвует рабочий каталог"
-#: git-gui.sh:1047
+#: git-gui.sh:1084 lib/checkout_op.tcl:283
msgid "Refreshing file status..."
msgstr "Обновление информации о ÑоÑтоÑнии файлов..."
-#: git-gui.sh:1112
+#: git-gui.sh:1149
msgid "Scanning for modified files ..."
msgstr "ПоиÑк измененных файлов..."
-#: git-gui.sh:1287 lib/browser.tcl:245
+#: git-gui.sh:1324 lib/browser.tcl:246
msgid "Ready."
msgstr "Готово."
-#: git-gui.sh:1553
+#: git-gui.sh:1590
msgid "Unmodified"
msgstr "Ðе изменено"
-#: git-gui.sh:1555
+#: git-gui.sh:1592
msgid "Modified, not staged"
msgstr "Изменено, не подготовлено"
-#: git-gui.sh:1556 git-gui.sh:1561
+#: git-gui.sh:1593 git-gui.sh:1598
msgid "Staged for commit"
msgstr "Подготовлено Ð´Ð»Ñ ÑохранениÑ"
-#: git-gui.sh:1557 git-gui.sh:1562
+#: git-gui.sh:1594 git-gui.sh:1599
msgid "Portions staged for commit"
msgstr "ЧаÑти, подготовленные Ð´Ð»Ñ ÑохранениÑ"
-#: git-gui.sh:1558 git-gui.sh:1563
+#: git-gui.sh:1595 git-gui.sh:1600
msgid "Staged for commit, missing"
msgstr "Подготовлено Ð´Ð»Ñ ÑохранениÑ, отÑутÑтвует"
-#: git-gui.sh:1560
+#: git-gui.sh:1597
msgid "Untracked, not staged"
msgstr "Ðе отÑлеживаетÑÑ, не подготовлено"
-#: git-gui.sh:1565
+#: git-gui.sh:1602
msgid "Missing"
msgstr "ОтÑутÑтвует"
-#: git-gui.sh:1566
+#: git-gui.sh:1603
msgid "Staged for removal"
msgstr "Подготовлено Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ"
-#: git-gui.sh:1567
+#: git-gui.sh:1604
msgid "Staged for removal, still present"
msgstr "Подготовлено Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ, еще не удалено"
-#: git-gui.sh:1569 git-gui.sh:1570 git-gui.sh:1571 git-gui.sh:1572
+#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609
msgid "Requires merge resolution"
msgstr "ТребуетÑÑ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ðµ конфликта при объединении"
-#: git-gui.sh:1607
+#: git-gui.sh:1644
msgid "Starting gitk... please wait..."
msgstr "ЗапуÑкаетÑÑ gitk... пожалуйÑта, ждите..."
-#: git-gui.sh:1616
+#: git-gui.sh:1653
#, tcl-format
msgid ""
"Unable to start gitk:\n"
@@ -142,295 +142,295 @@ msgstr ""
"\n"
"%s не ÑущеÑтвует"
-#: git-gui.sh:1816 lib/choose_repository.tcl:35
+#: git-gui.sh:1860 lib/choose_repository.tcl:36
msgid "Repository"
msgstr "Репозиторий"
-#: git-gui.sh:1817
+#: git-gui.sh:1861
msgid "Edit"
msgstr "Редактировать"
-#: git-gui.sh:1819 lib/choose_rev.tcl:560
+#: git-gui.sh:1863 lib/choose_rev.tcl:561
msgid "Branch"
msgstr "Ветвь"
-#: git-gui.sh:1822 lib/choose_rev.tcl:547
+#: git-gui.sh:1866 lib/choose_rev.tcl:548
msgid "Commit@@noun"
msgstr "СоÑтоÑние"
-#: git-gui.sh:1825 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167
msgid "Merge"
msgstr "Объединить"
-#: git-gui.sh:1826 lib/choose_rev.tcl:556
+#: git-gui.sh:1870 lib/choose_rev.tcl:557
msgid "Remote"
msgstr "Внешние репозитории"
-#: git-gui.sh:1835
+#: git-gui.sh:1879
msgid "Browse Current Branch's Files"
msgstr "ПроÑмотреть файлы текущей ветви"
-#: git-gui.sh:1839
+#: git-gui.sh:1883
msgid "Browse Branch Files..."
msgstr "Показать файлы ветви..."
-#: git-gui.sh:1844
+#: git-gui.sh:1888
msgid "Visualize Current Branch's History"
msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ñ‚ÐµÐºÑƒÑ‰ÐµÐ¹ ветви наглÑдно"
-#: git-gui.sh:1848
+#: git-gui.sh:1892
msgid "Visualize All Branch History"
msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð²Ñех ветвей наглÑдно"
-#: git-gui.sh:1855
+#: git-gui.sh:1899
#, tcl-format
msgid "Browse %s's Files"
msgstr "Показать файлы ветви %s"
-#: git-gui.sh:1857
+#: git-gui.sh:1901
#, tcl-format
msgid "Visualize %s's History"
msgstr "ИÑÑ‚Ð¾Ñ€Ð¸Ñ Ð²ÐµÑ‚Ð²Ð¸ %s наглÑдно"
-#: git-gui.sh:1862 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "СтатиÑтика базы данных"
-#: git-gui.sh:1865 lib/database.tcl:34
+#: git-gui.sh:1909 lib/database.tcl:34
msgid "Compress Database"
msgstr "Сжать базу данных"
-#: git-gui.sh:1868
+#: git-gui.sh:1912
msgid "Verify Database"
msgstr "Проверить базу данных"
-#: git-gui.sh:1875 git-gui.sh:1879 git-gui.sh:1883 lib/shortcut.tcl:7
+#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "Создать Ñрлык на рабочем Ñтоле"
-#: git-gui.sh:1888 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185
msgid "Quit"
msgstr "Выход"
-#: git-gui.sh:1895
+#: git-gui.sh:1939
msgid "Undo"
msgstr "Отменить"
-#: git-gui.sh:1898
+#: git-gui.sh:1942
msgid "Redo"
msgstr "Повторить"
-#: git-gui.sh:1902 git-gui.sh:2395
+#: git-gui.sh:1946 git-gui.sh:2443
msgid "Cut"
msgstr "Вырезать"
-#: git-gui.sh:1905 git-gui.sh:2398 git-gui.sh:2469 git-gui.sh:2541
-#: lib/console.tcl:67
+#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614
+#: lib/console.tcl:69
msgid "Copy"
msgstr "Копировать"
-#: git-gui.sh:1908 git-gui.sh:2401
+#: git-gui.sh:1952 git-gui.sh:2449
msgid "Paste"
msgstr "Ð’Ñтавить"
-#: git-gui.sh:1911 git-gui.sh:2404 lib/branch_delete.tcl:26
+#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "Удалить"
-#: git-gui.sh:1915 git-gui.sh:2408 git-gui.sh:2545 lib/console.tcl:69
+#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71
msgid "Select All"
msgstr "Выделить вÑе"
-#: git-gui.sh:1924
+#: git-gui.sh:1968
msgid "Create..."
msgstr "Создать..."
-#: git-gui.sh:1930
+#: git-gui.sh:1974
msgid "Checkout..."
msgstr "Перейти..."
-#: git-gui.sh:1936
+#: git-gui.sh:1980
msgid "Rename..."
msgstr "Переименовать..."
-#: git-gui.sh:1941 git-gui.sh:2040
+#: git-gui.sh:1985 git-gui.sh:2085
msgid "Delete..."
msgstr "Удалить..."
-#: git-gui.sh:1946
+#: git-gui.sh:1990
msgid "Reset..."
msgstr "СброÑить..."
-#: git-gui.sh:1958 git-gui.sh:2342
+#: git-gui.sh:2002 git-gui.sh:2389
msgid "New Commit"
msgstr "Ðовое ÑоÑтоÑние"
-#: git-gui.sh:1966 git-gui.sh:2349
+#: git-gui.sh:2010 git-gui.sh:2396
msgid "Amend Last Commit"
msgstr "ИÑправить поÑледнее ÑоÑтоÑние"
-#: git-gui.sh:1975 git-gui.sh:2309 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "Перечитать"
-#: git-gui.sh:1981
+#: git-gui.sh:2025
msgid "Stage To Commit"
msgstr "Подготовить Ð´Ð»Ñ ÑохранениÑ"
-#: git-gui.sh:1986
+#: git-gui.sh:2031
msgid "Stage Changed Files To Commit"
msgstr "Подготовить измененные файлы Ð´Ð»Ñ ÑохранениÑ"
-#: git-gui.sh:1992
+#: git-gui.sh:2037
msgid "Unstage From Commit"
msgstr "Убрать из подготовленного"
-#: git-gui.sh:1997 lib/index.tcl:393
+#: git-gui.sh:2042 lib/index.tcl:395
msgid "Revert Changes"
msgstr "Отменить изменениÑ"
-#: git-gui.sh:2004 git-gui.sh:2321 git-gui.sh:2419
+#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467
msgid "Sign Off"
msgstr "ПодпиÑать"
-#: git-gui.sh:2008 git-gui.sh:2325
+#: git-gui.sh:2053 git-gui.sh:2372
msgid "Commit@@verb"
msgstr "Сохранить"
-#: git-gui.sh:2019
+#: git-gui.sh:2064
msgid "Local Merge..."
msgstr "Локальное объединение..."
-#: git-gui.sh:2024
+#: git-gui.sh:2069
msgid "Abort Merge..."
msgstr "Прервать объединение..."
-#: git-gui.sh:2036
+#: git-gui.sh:2081
msgid "Push..."
msgstr "Отправить..."
-#: git-gui.sh:2047 lib/choose_repository.tcl:40
+#: git-gui.sh:2092 lib/choose_repository.tcl:41
msgid "Apple"
msgstr ""
-#: git-gui.sh:2050 git-gui.sh:2072 lib/about.tcl:13
-#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14
+#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
#, tcl-format
msgid "About %s"
msgstr "О %s"
-#: git-gui.sh:2054
+#: git-gui.sh:2099
msgid "Preferences..."
msgstr "ÐаÑтройки..."
-#: git-gui.sh:2062 git-gui.sh:2587
+#: git-gui.sh:2107 git-gui.sh:2639
msgid "Options..."
msgstr "ÐаÑтройки..."
-#: git-gui.sh:2068 lib/choose_repository.tcl:46
+#: git-gui.sh:2113 lib/choose_repository.tcl:47
msgid "Help"
msgstr "Помощь"
-#: git-gui.sh:2109
+#: git-gui.sh:2154
msgid "Online Documentation"
msgstr "Ð”Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð² интернете"
-#: git-gui.sh:2193
+#: git-gui.sh:2238
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
msgstr "критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: %s: нет такого файла или каталога"
-#: git-gui.sh:2226
+#: git-gui.sh:2271
msgid "Current Branch:"
msgstr "Ð¢ÐµÐºÑƒÑ‰Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ:"
-#: git-gui.sh:2247
+#: git-gui.sh:2292
msgid "Staged Changes (Will Commit)"
msgstr "Подготовлено (будет Ñохранено)"
-#: git-gui.sh:2266
+#: git-gui.sh:2312
msgid "Unstaged Changes"
msgstr "Изменено (не будет Ñохранено)"
-#: git-gui.sh:2315
+#: git-gui.sh:2362
msgid "Stage Changed"
msgstr "Подготовить вÑе"
-#: git-gui.sh:2331 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "Отправить"
-#: git-gui.sh:2361
+#: git-gui.sh:2408
msgid "Initial Commit Message:"
msgstr "Комментарий к первому ÑоÑтоÑнию:"
-#: git-gui.sh:2362
+#: git-gui.sh:2409
msgid "Amended Commit Message:"
msgstr "Комментарий к иÑправленному ÑоÑтоÑнию:"
-#: git-gui.sh:2363
+#: git-gui.sh:2410
msgid "Amended Initial Commit Message:"
msgstr "Комментарий к иÑправленному первоначальному ÑоÑтоÑнию:"
-#: git-gui.sh:2364
+#: git-gui.sh:2411
msgid "Amended Merge Commit Message:"
msgstr "Комментарий к иÑправленному объединению:"
-#: git-gui.sh:2365
+#: git-gui.sh:2412
msgid "Merge Commit Message:"
msgstr "Комментарий к объединению:"
-#: git-gui.sh:2366
+#: git-gui.sh:2413
msgid "Commit Message:"
msgstr "Комментарий к ÑоÑтоÑнию:"
-#: git-gui.sh:2411 git-gui.sh:2549 lib/console.tcl:71
+#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73
msgid "Copy All"
msgstr "Копировать вÑе"
-#: git-gui.sh:2435 lib/blame.tcl:104
+#: git-gui.sh:2483 lib/blame.tcl:107
msgid "File:"
msgstr "Файл:"
-#: git-gui.sh:2537
-msgid "Refresh"
-msgstr "Обновить"
-
-#: git-gui.sh:2558
+#: git-gui.sh:2589
msgid "Apply/Reverse Hunk"
msgstr "Применить/Убрать изменение"
-#: git-gui.sh:2564
-msgid "Decrease Font Size"
-msgstr "Уменьшить размер шрифта"
-
-#: git-gui.sh:2568
-msgid "Increase Font Size"
-msgstr "Увеличить размер шрифта"
-
-#: git-gui.sh:2573
+#: git-gui.sh:2595
msgid "Show Less Context"
msgstr "Меньше контекÑта"
-#: git-gui.sh:2580
+#: git-gui.sh:2602
msgid "Show More Context"
msgstr "Больше контекÑта"
-#: git-gui.sh:2594
+#: git-gui.sh:2610
+msgid "Refresh"
+msgstr "Обновить"
+
+#: git-gui.sh:2631
+msgid "Decrease Font Size"
+msgstr "Уменьшить размер шрифта"
+
+#: git-gui.sh:2635
+msgid "Increase Font Size"
+msgstr "Увеличить размер шрифта"
+
+#: git-gui.sh:2646
msgid "Unstage Hunk From Commit"
msgstr "Ðе ÑохранÑÑ‚ÑŒ чаÑÑ‚ÑŒ"
-#: git-gui.sh:2596
+#: git-gui.sh:2648
msgid "Stage Hunk For Commit"
msgstr "Подготовить чаÑÑ‚ÑŒ Ð´Ð»Ñ ÑохранениÑ"
-#: git-gui.sh:2615
+#: git-gui.sh:2667
msgid "Initializing..."
msgstr "ИнициализациÑ..."
-#: git-gui.sh:2706
+#: git-gui.sh:2762
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
@@ -447,7 +447,7 @@ msgstr ""
"запущенными из %s\n"
"\n"
-#: git-gui.sh:2736
+#: git-gui.sh:2792
msgid ""
"\n"
"This is due to a known issue with the\n"
@@ -457,7 +457,7 @@ msgstr ""
"Это извеÑÑ‚Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð±Ð»ÐµÐ¼Ð° Ñ Tcl,\n"
"раÑпроÑтранÑемым Cygwin."
-#: git-gui.sh:2741
+#: git-gui.sh:2797
#, tcl-format
msgid ""
"\n"
@@ -474,7 +474,7 @@ msgstr ""
"user.email в Вашем перÑональном\n"
"файле ~/.gitconfig.\n"
-#: lib/about.tcl:25
+#: lib/about.tcl:26
msgid "git-gui - a graphical user interface for Git."
msgstr "git-gui - графичеÑкий пользовательÑкий Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ðº Git."
@@ -486,56 +486,56 @@ msgstr "ПроÑмотр файла"
msgid "Commit:"
msgstr "Сохраненное ÑоÑтоÑние:"
-#: lib/blame.tcl:249
+#: lib/blame.tcl:264
msgid "Copy Commit"
msgstr "Скопировать SHA-1"
-#: lib/blame.tcl:369
+#: lib/blame.tcl:384
#, tcl-format
msgid "Reading %s..."
msgstr "Чтение %s..."
-#: lib/blame.tcl:473
+#: lib/blame.tcl:488
msgid "Loading copy/move tracking annotations..."
msgstr "Загрузка аннотации копирований/переименований..."
-#: lib/blame.tcl:493
+#: lib/blame.tcl:508
msgid "lines annotated"
msgstr "Ñтрок прокомментировано"
-#: lib/blame.tcl:674
+#: lib/blame.tcl:689
msgid "Loading original location annotations..."
msgstr "Загрузка аннотаций первоначального Ð¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°..."
-#: lib/blame.tcl:677
+#: lib/blame.tcl:692
msgid "Annotation complete."
msgstr "ÐÐ½Ð½Ð¾Ñ‚Ð°Ñ†Ð¸Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð°."
-#: lib/blame.tcl:731
+#: lib/blame.tcl:746
msgid "Loading annotation..."
msgstr "Загрузка аннотации..."
-#: lib/blame.tcl:787
+#: lib/blame.tcl:802
msgid "Author:"
msgstr "Ðвтор:"
-#: lib/blame.tcl:791
+#: lib/blame.tcl:806
msgid "Committer:"
msgstr "Сохранил:"
-#: lib/blame.tcl:796
+#: lib/blame.tcl:811
msgid "Original File:"
msgstr "ИÑходный файл:"
-#: lib/blame.tcl:910
+#: lib/blame.tcl:925
msgid "Originally By:"
msgstr "ИÑточник:"
-#: lib/blame.tcl:916
+#: lib/blame.tcl:931
msgid "In File:"
msgstr "Файл:"
-#: lib/blame.tcl:921
+#: lib/blame.tcl:936
msgid "Copied Or Moved Here By:"
msgstr "Скопировано/перемещено в:"
@@ -548,17 +548,17 @@ msgid "Checkout"
msgstr "Перейти"
#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
-#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
-#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
-#: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282
+#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171
+#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
msgid "Cancel"
msgstr "Отменить"
-#: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+#: lib/branch_checkout.tcl:32 lib/browser.tcl:287
msgid "Revision"
msgstr "ВерÑиÑ"
-#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242
msgid "Options"
msgstr "ÐаÑтройки"
@@ -578,7 +578,7 @@ msgstr "Создание ветви"
msgid "Create New Branch"
msgstr "Создать новую ветвь"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371
msgid "Create"
msgstr "Создать"
@@ -718,22 +718,22 @@ msgstr "ЗапуÑк..."
msgid "File Browser"
msgstr "ПроÑмотр ÑпиÑка файлов"
-#: lib/browser.tcl:125 lib/browser.tcl:142
+#: lib/browser.tcl:126 lib/browser.tcl:143
#, tcl-format
msgid "Loading %s..."
msgstr "Загрузка %s..."
-#: lib/browser.tcl:186
+#: lib/browser.tcl:187
msgid "[Up To Parent]"
msgstr "[Ðа уровень выше]"
-#: lib/browser.tcl:266 lib/browser.tcl:272
+#: lib/browser.tcl:267 lib/browser.tcl:273
msgid "Browse Branch Files"
msgstr "Показать файлы ветви"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:391
-#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
-#: lib/choose_repository.tcl:989
+#: lib/browser.tcl:278 lib/choose_repository.tcl:387
+#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484
+#: lib/choose_repository.tcl:987
msgid "Browse"
msgstr "Показать"
@@ -747,7 +747,7 @@ msgstr "Получение %s из %s "
msgid "fatal: Cannot resolve %s"
msgstr "критичеÑÐºÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ°: невозможно разрешить %s"
-#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
msgstr "Закрыть"
@@ -804,6 +804,10 @@ msgstr ""
msgid "Updating working directory to '%s'..."
msgstr "Обновление рабочего каталога из '%s'..."
+#: lib/checkout_op.tcl:323
+msgid "files checked out"
+msgstr "файлы извлечены"
+
#: lib/checkout_op.tcl:353
#, tcl-format
msgid "Aborted checkout of '%s' (file level merging is required)."
@@ -830,7 +834,7 @@ msgstr ""
"ЕÑли вы хотите Ñнова вернутьÑÑ Ðº какой-нибудь ветви, Ñоздайте ее ÑейчаÑ, "
"Ð½Ð°Ñ‡Ð¸Ð½Ð°Ñ Ñ 'Текущего отÑоединенного ÑоÑтоÑниÑ'."
-#: lib/checkout_op.tcl:446
+#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450
#, tcl-format
msgid "Checked out '%s'."
msgstr "Ветвь '%s' Ñделана текущей."
@@ -849,7 +853,7 @@ msgstr "ВоÑÑтановить потерÑнные Ñохраненные ÑÐ
msgid "Reset '%s'?"
msgstr "СброÑить '%s'?"
-#: lib/checkout_op.tcl:510 lib/merge.tcl:164
+#: lib/checkout_op.tcl:510 lib/merge.tcl:163
msgid "Visualize"
msgstr "ÐаглÑдно"
@@ -878,15 +882,15 @@ msgstr "Выбрать"
msgid "Font Family"
msgstr "Шрифт"
-#: lib/choose_font.tcl:73
+#: lib/choose_font.tcl:74
msgid "Font Size"
msgstr "Размер шрифта"
-#: lib/choose_font.tcl:90
+#: lib/choose_font.tcl:91
msgid "Font Example"
msgstr "Пример текÑта"
-#: lib/choose_font.tcl:101
+#: lib/choose_font.tcl:103
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
@@ -894,226 +898,226 @@ msgstr ""
"Это пример текÑта.\n"
"ЕÑли Вам нравитÑÑ Ñтот текÑÑ‚, Ñто может быть Ваш шрифт."
-#: lib/choose_repository.tcl:27
+#: lib/choose_repository.tcl:28
msgid "Git Gui"
msgstr ""
-#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376
msgid "Create New Repository"
msgstr "Создать новый репозиторий"
-#: lib/choose_repository.tcl:86
+#: lib/choose_repository.tcl:87
msgid "New..."
msgstr "Ðовый..."
-#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460
msgid "Clone Existing Repository"
msgstr "Склонировать ÑущеÑтвующий репозиторий"
-#: lib/choose_repository.tcl:99
+#: lib/choose_repository.tcl:100
msgid "Clone..."
msgstr "Склонировать..."
-#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976
msgid "Open Existing Repository"
msgstr "Выбрать ÑущеÑтвующий репозиторий"
-#: lib/choose_repository.tcl:112
+#: lib/choose_repository.tcl:113
msgid "Open..."
msgstr "Открыть..."
-#: lib/choose_repository.tcl:125
+#: lib/choose_repository.tcl:126
msgid "Recent Repositories"
msgstr "Ðедавние репозитории"
-#: lib/choose_repository.tcl:131
+#: lib/choose_repository.tcl:132
msgid "Open Recent Repository:"
msgstr "Открыть поÑледний репозиторий"
-#: lib/choose_repository.tcl:294
-#, tcl-format
-msgid "Location %s already exists."
-msgstr "Путь '%s' уже ÑущеÑтвует."
-
-#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
-#: lib/choose_repository.tcl:314
+#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303
+#: lib/choose_repository.tcl:310
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "Ðе удалоÑÑŒ Ñоздать репозиторий %s:"
-#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478
msgid "Directory:"
msgstr "Каталог:"
-#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
-#: lib/choose_repository.tcl:1013
+#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537
+#: lib/choose_repository.tcl:1011
msgid "Git Repository"
msgstr "Репозиторий"
-#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#: lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "Каталог '%s' уже ÑущеÑтвует."
-#: lib/choose_repository.tcl:442
+#: lib/choose_repository.tcl:441
#, tcl-format
msgid "File %s already exists."
msgstr "Файл '%s' уже ÑущеÑтвует."
-#: lib/choose_repository.tcl:463
+#: lib/choose_repository.tcl:455
msgid "Clone"
msgstr "Склонировать"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:468
msgid "URL:"
msgstr "СÑылка:"
-#: lib/choose_repository.tcl:496
+#: lib/choose_repository.tcl:489
msgid "Clone Type:"
msgstr "Тип клона:"
-#: lib/choose_repository.tcl:502
+#: lib/choose_repository.tcl:495
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "Стандартный (БыÑтрый, полуизбыточный, \"жеÑткие\" ÑÑылки)"
-#: lib/choose_repository.tcl:508
+#: lib/choose_repository.tcl:501
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "ÐŸÐ¾Ð»Ð½Ð°Ñ ÐºÐ¾Ð¿Ð¸Ñ (Медленный, Ñоздает резервную копию)"
-#: lib/choose_repository.tcl:514
+#: lib/choose_repository.tcl:507
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "Общий (Самый быÑтрый, не рекомендуетÑÑ, без резервной копии)"
-#: 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
+#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806
+#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "Каталог не ÑвлÑетÑÑ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸ÐµÐ¼: %s"
-#: lib/choose_repository.tcl:586
+#: lib/choose_repository.tcl:579
msgid "Standard only available for local repository."
msgstr "Стандартный клон возможен только Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ репозиториÑ."
-#: lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:583
msgid "Shared only available for local repository."
msgstr "Общий клон возможен только Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ репозиториÑ."
-#: lib/choose_repository.tcl:617
+#: lib/choose_repository.tcl:604
+#, tcl-format
+msgid "Location %s already exists."
+msgstr "Путь '%s' уже ÑущеÑтвует."
+
+#: lib/choose_repository.tcl:615
msgid "Failed to configure origin"
msgstr "Ðе могу Ñконфигурировать иÑходный репозиторий."
-#: lib/choose_repository.tcl:629
+#: lib/choose_repository.tcl:627
msgid "Counting objects"
msgstr "Считаю объекты"
-#: lib/choose_repository.tcl:630
+#: lib/choose_repository.tcl:628
msgid "buckets"
msgstr ""
-#: lib/choose_repository.tcl:654
+#: lib/choose_repository.tcl:652
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "Ðе могу Ñкопировать objects/info/alternates: %s"
-#: lib/choose_repository.tcl:690
+#: lib/choose_repository.tcl:688
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "Ðечего клонировать Ñ %s."
-#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
-#: lib/choose_repository.tcl:918
+#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:916
msgid "The 'master' branch has not been initialized."
msgstr "Ðе инициализирована ветвь 'master'."
-#: lib/choose_repository.tcl:705
+#: lib/choose_repository.tcl:703
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "\"ЖеÑткие ÑÑылки\" не доÑтупны. Буду иÑпользовать копирование."
-#: lib/choose_repository.tcl:717
+#: lib/choose_repository.tcl:715
#, tcl-format
msgid "Cloning from %s"
msgstr "Клонирование %s"
-#: lib/choose_repository.tcl:748
+#: lib/choose_repository.tcl:746
msgid "Copying objects"
msgstr "Копирование objects"
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:747
msgid "KiB"
msgstr "КБ"
-#: lib/choose_repository.tcl:773
+#: lib/choose_repository.tcl:771
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "Ðе могу Ñкопировать объект: %s"
-#: lib/choose_repository.tcl:783
+#: lib/choose_repository.tcl:781
msgid "Linking objects"
msgstr "Создание ÑÑылок на objects"
-#: lib/choose_repository.tcl:784
+#: lib/choose_repository.tcl:782
msgid "objects"
msgstr "объекты"
-#: lib/choose_repository.tcl:792
+#: lib/choose_repository.tcl:790
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "Ðе могу \"жеÑтко ÑвÑзать\" объект: %s"
-#: lib/choose_repository.tcl:847
+#: lib/choose_repository.tcl:845
msgid "Cannot fetch branches and objects. See console output for details."
msgstr ""
"Ðе могу получить ветви и объекты. Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° конÑоли."
-#: lib/choose_repository.tcl:858
+#: lib/choose_repository.tcl:856
msgid "Cannot fetch tags. See console output for details."
msgstr "Ðе могу получить метки. Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° конÑоли."
-#: lib/choose_repository.tcl:882
+#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
msgstr "Ðе могу определить HEAD. Ð”Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð½Ð° конÑоли."
-#: lib/choose_repository.tcl:891
+#: lib/choose_repository.tcl:889
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "Ðе могу очиÑтить %s"
-#: lib/choose_repository.tcl:897
+#: lib/choose_repository.tcl:895
msgid "Clone failed."
msgstr "Клонирование не удалоÑÑŒ."
-#: lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:902
msgid "No default branch obtained."
msgstr "Ðе было получено ветви по умолчанию."
-#: lib/choose_repository.tcl:915
+#: lib/choose_repository.tcl:913
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "Ðе могу раÑпознать %s как ÑоÑтоÑние."
-#: lib/choose_repository.tcl:927
+#: lib/choose_repository.tcl:925
msgid "Creating working directory"
msgstr "Создаю рабочий каталог"
-#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127
#: lib/index.tcl:193
msgid "files"
msgstr "файлов"
-#: lib/choose_repository.tcl:957
+#: lib/choose_repository.tcl:955
msgid "Initial file checkout failed."
msgstr "Ðе удалоÑÑŒ получить начальное ÑоÑтоÑние файлов репозиториÑ."
-#: lib/choose_repository.tcl:973
+#: lib/choose_repository.tcl:971
msgid "Open"
msgstr "Открыть"
-#: lib/choose_repository.tcl:983
+#: lib/choose_repository.tcl:981
msgid "Repository:"
msgstr "Репозиторий:"
-#: lib/choose_repository.tcl:1033
+#: lib/choose_repository.tcl:1031
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "Ðе удалоÑÑŒ открыть репозиторий %s:"
@@ -1134,7 +1138,7 @@ msgstr "Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð²ÐµÑ‚Ð²ÑŒ:"
msgid "Tracking Branch"
msgstr "Ветвь ÑлежениÑ"
-#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538
msgid "Tag"
msgstr "Таг"
@@ -1151,11 +1155,11 @@ msgstr "ВерÑÐ¸Ñ Ð½Ðµ указана."
msgid "Revision expression is empty."
msgstr "ПуÑтое выражение Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð²ÐµÑ€Ñии."
-#: lib/choose_rev.tcl:530
+#: lib/choose_rev.tcl:531
msgid "Updated"
msgstr "Обновлено"
-#: lib/choose_rev.tcl:558
+#: lib/choose_rev.tcl:559
msgid "URL"
msgstr "СÑылка"
@@ -1251,7 +1255,7 @@ 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 ""
@@ -1263,16 +1267,45 @@ msgstr ""
"- Ð²Ñ‚Ð¾Ñ€Ð°Ñ Ñтрока пуÑтаÑ\n"
"- оÑтавшиеÑÑ Ñтроки: опишите, что дают ваши изменениÑ.\n"
-#: lib/commit.tcl:257
+#: lib/commit.tcl:207
+#, tcl-format
+msgid "warning: Tcl does not support encoding '%s'."
+msgstr "предупреждение: Tcl не поддерживает кодировку '%s'."
+
+#: lib/commit.tcl:221
+msgid "Calling pre-commit hook..."
+msgstr "Вызов программы поддержки Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ pre-commit..."
+
+#: lib/commit.tcl:236
+msgid "Commit declined by pre-commit hook."
+msgstr "Сохранение прервано программой поддержки Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ pre-commit"
+
+#: lib/commit.tcl:259
+msgid "Calling commit-msg hook..."
+msgstr "Вызов программы поддержки Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ commit-msg..."
+
+#: lib/commit.tcl:274
+msgid "Commit declined by commit-msg hook."
+msgstr "Сохранение прервано программой поддержки Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ commit-msg"
+
+#: lib/commit.tcl:287
+msgid "Committing changes..."
+msgstr "Сохранение изменений..."
+
+#: lib/commit.tcl:303
msgid "write-tree failed:"
msgstr "Программа write-tree завершилаÑÑŒ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹:"
-#: lib/commit.tcl:275
+#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368
+msgid "Commit failed."
+msgstr "Сохранить ÑоÑтоÑние не удалоÑÑŒ."
+
+#: lib/commit.tcl:321
#, tcl-format
msgid "Commit %s appears to be corrupt"
msgstr "СоÑтоÑние %s выглÑдит поврежденным"
-#: lib/commit.tcl:279
+#: lib/commit.tcl:326
msgid ""
"No changes to commit.\n"
"\n"
@@ -1286,37 +1319,32 @@ msgstr ""
"\n"
"Ð¡ÐµÐ¹Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки запуÑтитÑÑ Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ðµ репозиториÑ.\n"
-#: lib/commit.tcl:286
+#: lib/commit.tcl:333
msgid "No changes to commit."
msgstr "ОтуÑтвуют Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÑохранениÑ."
-#: lib/commit.tcl:303
-#, tcl-format
-msgid "warning: Tcl does not support encoding '%s'."
-msgstr "предупреждение: Tcl не поддерживает кодировку '%s'."
-
-#: lib/commit.tcl:317
+#: lib/commit.tcl:347
msgid "commit-tree failed:"
msgstr "Программа commit-tree завершилаÑÑŒ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹:"
-#: lib/commit.tcl:339
+#: lib/commit.tcl:367
msgid "update-ref failed:"
msgstr "Программа update-ref завершилаÑÑŒ Ñ Ð¾ÑˆÐ¸Ð±ÐºÐ¾Ð¹:"
-#: lib/commit.tcl:430
+#: lib/commit.tcl:454
#, tcl-format
msgid "Created commit %s: %s"
msgstr "Создано ÑоÑтоÑние %s: %s "
-#: lib/console.tcl:57
+#: lib/console.tcl:59
msgid "Working... please wait..."
msgstr "Ð’ процеÑÑе... пожалуйÑта, ждите..."
-#: lib/console.tcl:183
+#: lib/console.tcl:186
msgid "Success"
msgstr "ПроцеÑÑ ÑƒÑпешно завершен"
-#: lib/console.tcl:196
+#: lib/console.tcl:200
msgid "Error: Command Failed"
msgstr "Ошибка: не удалоÑÑŒ выполнить команду"
@@ -1426,23 +1454,23 @@ msgstr "* Двоичный файл (Ñодержимое не показано)
msgid "Error loading diff:"
msgstr "Ошибка загрузки diff:"
-#: lib/diff.tcl:302
+#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
msgstr "Ðе удалоÑÑŒ иÑключить выбранную чаÑÑ‚ÑŒ."
-#: lib/diff.tcl:309
+#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
msgstr "Ðе удалоÑÑŒ подготовить к Ñохранению выбранную чаÑÑ‚ÑŒ."
-#: lib/error.tcl:12 lib/error.tcl:102
+#: lib/error.tcl:20 lib/error.tcl:114
msgid "error"
msgstr "ошибка"
-#: lib/error.tcl:28
+#: lib/error.tcl:36
msgid "warning"
msgstr "предупреждение"
-#: lib/error.tcl:81
+#: lib/error.tcl:94
msgid "You must correct the above errors before committing."
msgstr "Прежде чем Ñохранить, иÑправьте вышеуказанные ошибки."
@@ -1459,8 +1487,8 @@ msgid ""
"Updating the Git index failed. A rescan will be automatically started to "
"resynchronize git-gui."
msgstr ""
-"Ðе удалоÑÑŒ обновить Ð¸Ð½Ð´ÐµÐºÑ Git. СоÑтоÑние Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚"
-"перечитано автоматичеÑки."
+"Ðе удалоÑÑŒ обновить Ð¸Ð½Ð´ÐµÐºÑ Git. СоÑтоÑние Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ Ð±ÑƒÐ´ÐµÑ‚Ð¿ÐµÑ€ÐµÑ‡Ð¸Ñ‚Ð°Ð½Ð¾ "
+"автоматичеÑки."
#: lib/index.tcl:27
msgid "Continue"
@@ -1475,6 +1503,10 @@ msgstr "Разблокировать индекÑ"
msgid "Unstaging %s from commit"
msgstr "Удаление %s из подготовленного"
+#: lib/index.tcl:313
+msgid "Ready to commit."
+msgstr "Подготовлено Ð´Ð»Ñ ÑохранениÑ"
+
#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
@@ -1490,13 +1522,13 @@ msgstr "Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файле %s?"
msgid "Revert changes in these %i files?"
msgstr "Отменить Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² %i файле(-ах)?"
-#: lib/index.tcl:389
+#: lib/index.tcl:391
msgid "Any unstaged changes will be permanently lost by the revert."
msgstr ""
"Любые изменениÑ, не подготовленные к Ñохранению, будут потерÑны при данной "
"операции."
-#: lib/index.tcl:392
+#: lib/index.tcl:394
msgid "Do Nothing"
msgstr "Ðичего не делать"
@@ -1567,28 +1599,27 @@ msgid "%s of %s"
msgstr "%s из %s"
#: lib/merge.tcl:119
-#, tcl-format
-msgid "Merging %s and %s"
-msgstr "Объединение %s и %s"
+msgid "Merging %s and %s..."
+msgstr "Объединение %s и %s..."
-#: lib/merge.tcl:131
+#: lib/merge.tcl:130
msgid "Merge completed successfully."
msgstr "Объединение уÑпешно завершено."
-#: lib/merge.tcl:133
+#: lib/merge.tcl:132
msgid "Merge failed. Conflict resolution is required."
msgstr "Ðе удалоÑÑŒ завершить объединение. ТребуетÑÑ Ñ€Ð°Ð·Ñ€ÐµÑˆÐµÐ½Ð¸Ðµ конфликта."
-#: lib/merge.tcl:158
+#: lib/merge.tcl:157
#, tcl-format
msgid "Merge Into %s"
msgstr "Объединить Ñ %s"
-#: lib/merge.tcl:177
+#: lib/merge.tcl:176
msgid "Revision To Merge"
msgstr "ВерÑÐ¸Ñ Ð´Ð»Ñ Ð¾Ð±ÑŠÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ"
-#: lib/merge.tcl:212
+#: lib/merge.tcl:211
msgid ""
"Cannot abort while amending.\n"
"\n"
@@ -1598,7 +1629,7 @@ msgstr ""
"\n"
"Завершите текущее иÑправление Ñохраненного ÑоÑтоÑниÑ.\n"
-#: lib/merge.tcl:222
+#: lib/merge.tcl:221
msgid ""
"Abort merge?\n"
"\n"
@@ -1612,7 +1643,7 @@ msgstr ""
"\n"
"Продолжить?"
-#: lib/merge.tcl:228
+#: lib/merge.tcl:227
msgid ""
"Reset changes?\n"
"\n"
@@ -1626,94 +1657,106 @@ msgstr ""
"\n"
"Продолжить?"
-#: lib/merge.tcl:239
+#: lib/merge.tcl:238
msgid "Aborting"
msgstr "Прерываю"
-#: lib/merge.tcl:266
+#: lib/merge.tcl:238
+msgid "files reset"
+msgstr "Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² файлах отменены"
+
+#: lib/merge.tcl:265
msgid "Abort failed."
msgstr "Прервать не удалоÑÑŒ."
-#: lib/merge.tcl:268
+#: lib/merge.tcl:267
msgid "Abort completed. Ready."
msgstr "Прервано."
-#: lib/option.tcl:82
+#: lib/option.tcl:95
msgid "Restore Defaults"
msgstr "ВоÑÑтановить наÑтройки по умолчанию"
-#: lib/option.tcl:86
+#: lib/option.tcl:99
msgid "Save"
msgstr "Сохранить"
-#: lib/option.tcl:96
+#: lib/option.tcl:109
#, tcl-format
msgid "%s Repository"
msgstr "Ð´Ð»Ñ Ñ€ÐµÐ¿Ð¾Ð·Ð¸Ñ‚Ð¾Ñ€Ð¸Ñ %s"
-#: lib/option.tcl:97
+#: lib/option.tcl:110
msgid "Global (All Repositories)"
msgstr "Общие (Ð´Ð»Ñ Ð²Ñех репозиториев)"
-#: lib/option.tcl:103
+#: lib/option.tcl:116
msgid "User Name"
msgstr "Ð˜Ð¼Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ"
-#: lib/option.tcl:104
+#: lib/option.tcl:117
msgid "Email Address"
-msgstr "ÐÐ´ÐµÑ Ñлектронной почты"
+msgstr "ÐÐ´Ñ€ÐµÑ Ñлектронной почты"
-#: lib/option.tcl:106
+#: lib/option.tcl:119
msgid "Summarize Merge Commits"
msgstr "Суммарный комментарий при объединении"
-#: lib/option.tcl:107
+#: lib/option.tcl:120
msgid "Merge Verbosity"
msgstr "Уровень детальноÑти Ñообщений при объединении"
-#: lib/option.tcl:108
+#: lib/option.tcl:121
msgid "Show Diffstat After Merge"
msgstr "Показать отчет об изменениÑÑ… поÑле объединениÑ"
-#: lib/option.tcl:110
+#: lib/option.tcl:123
msgid "Trust File Modification Timestamps"
msgstr "ДоверÑÑ‚ÑŒ времени модификации файла"
-#: lib/option.tcl:111
+#: lib/option.tcl:124
msgid "Prune Tracking Branches During Fetch"
msgstr "ЧиÑтка ветвей ÑÐ»ÐµÐ¶ÐµÐ½Ð¸Ñ Ð¿Ñ€Ð¸ получении изменений"
-#: lib/option.tcl:112
+#: lib/option.tcl:125
msgid "Match Tracking Branches"
msgstr "Ð˜Ð¼Ñ Ð½Ð¾Ð²Ð¾Ð¹ ветви взÑÑ‚ÑŒ из имен ветвей ÑлежениÑ"
-#: lib/option.tcl:113
+#: lib/option.tcl:126
msgid "Number of Diff Context Lines"
msgstr "ЧиÑло Ñтрок в контекÑте diff"
-#: lib/option.tcl:114
+#: lib/option.tcl:127
+msgid "Commit Message Text Width"
+msgstr "Ширина ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ð¸Ñ Ðº ÑоÑтоÑнию:"
+
+#: lib/option.tcl:128
msgid "New Branch Name Template"
msgstr "Шаблон Ð´Ð»Ñ Ð¸Ð¼ÐµÐ½Ð¸ новой ветви"
-#: lib/option.tcl:176
+#: lib/option.tcl:192
+msgid "Spelling Dictionary:"
+msgstr "Словарь Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ правопиÑаниÑ:"
+
+#: lib/option.tcl:216
msgid "Change Font"
msgstr "Изменить шрифт"
-#: lib/option.tcl:180
+#: lib/option.tcl:220
#, tcl-format
msgid "Choose %s"
msgstr "Выберите %s"
# carbon copy
-#: lib/option.tcl:186
+#: lib/option.tcl:226
msgid "pt."
msgstr ""
-#: lib/option.tcl:200
+#: lib/option.tcl:240
msgid "Preferences"
msgstr "ÐаÑтройки"
-#: lib/option.tcl:235
+#: lib/option.tcl:275
msgid "Failed to completely save options:"
msgstr "Ðе удалоÑÑŒ полноÑтью Ñохранить наÑтройки:"
@@ -1820,6 +1863,43 @@ msgstr "Ðевозможно запиÑать ÑÑылку:"
msgid "Cannot write icon:"
msgstr "Ðевозможно запиÑать значок:"
+#: lib/spellcheck.tcl:57
+msgid "Unsupported spell checker"
+msgstr "ÐÐµÐ¿Ð¾Ð´Ð´ÐµÑ€Ð¶Ð¸Ð²Ð°ÐµÐ¼Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° проверки правопиÑаниÑ"
+
+#: lib/spellcheck.tcl:65
+msgid "Spell checking is unavailable"
+msgstr "Проверка правопиÑÐ°Ð½Ð¸Ñ Ð½Ðµ доÑтупна"
+
+#: lib/spellcheck.tcl:68
+msgid "Invalid spell checking configuration"
+msgstr "ÐÐµÐ¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð°Ñ ÐºÐ¾Ð½Ñ„Ð¸Ð³ÑƒÑ€Ð°Ñ†Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ проверки правопиÑаниÑ"
+
+#: lib/spellcheck.tcl:70
+#, tcl-format
+msgid "Reverting dictionary to %s."
+msgstr "Словарь вернут к %s."
+
+#: lib/spellcheck.tcl:73
+msgid "Spell checker silently failed on startup"
+msgstr "Программа проверки правопиÑÐ°Ð½Ð¸Ñ Ð½Ðµ Ñмогла запуÑтитÑÑ"
+
+#: lib/spellcheck.tcl:80
+msgid "Unrecognized spell checker"
+msgstr "ÐераÑÐ¿Ð¾Ð·Ð½Ð°Ð½Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð° проверки правопиÑаниÑ"
+
+#: lib/spellcheck.tcl:180
+msgid "No Suggestions"
+msgstr "ИÑправлений не найдено"
+
+#: lib/spellcheck.tcl:381
+msgid "Unexpected EOF from spell checker"
+msgstr "Программа проверки правопиÑÐ°Ð½Ð¸Ñ Ð¿Ñ€ÐµÑ€Ð²Ð°Ð»Ð° передачу данных"
+
+#: lib/spellcheck.tcl:385
+msgid "Spell Checker Failed"
+msgstr "Ошибка проверки правопиÑаниÑ"
+
#: lib/status_bar.tcl:83
#, tcl-format
msgid "%s ... %*i of %*i %s (%3i%%)"
diff --git a/git-gui/po/sv.po b/git-gui/po/sv.po
index cd3f40b4a8..4da687bb41 100644
--- a/git-gui/po/sv.po
+++ b/git-gui/po/sv.po
@@ -7,42 +7,41 @@ msgid ""
msgstr ""
"Project-Id-Version: sv\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-11-24 10:36+0100\n"
-"PO-Revision-Date: 2008-01-12 09:27+0100\n"
+"POT-Creation-Date: 2008-03-14 07:18+0100\n"
+"PO-Revision-Date: 2008-03-14 07:23+0100\n"
"Last-Translator: Peter Karlsson <peter@softwolves.pp.se>\n"
-"Language-Team: Swedish <sv@li.org>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
+"Content-Transfer-Encoding: 8bit"
-#: git-gui.sh:41 git-gui.sh:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
-#: git-gui.sh:733
+#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+#: git-gui.sh:763
msgid "git-gui: fatal error"
msgstr "git-gui: ödesdigert fel"
-#: git-gui.sh:565
+#: git-gui.sh:593
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "Ogiltigt teckensnitt angivet i %s:"
-#: git-gui.sh:590
+#: git-gui.sh:620
msgid "Main Font"
msgstr "Huvudteckensnitt"
-#: git-gui.sh:591
+#: git-gui.sh:621
msgid "Diff/Console Font"
msgstr "Diff/konsolteckensnitt"
-#: git-gui.sh:605
+#: git-gui.sh:635
msgid "Cannot find git in PATH."
msgstr "Hittar inte git i PATH."
-#: git-gui.sh:632
+#: git-gui.sh:662
msgid "Cannot parse Git version string:"
msgstr "Kan inte tolka versionssträng från Git:"
-#: git-gui.sh:650
+#: git-gui.sh:680
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
@@ -61,79 +60,79 @@ msgstr ""
"\n"
"Anta att \"%s\" är version 1.5.0?\n"
-#: git-gui.sh:888
+#: git-gui.sh:918
msgid "Git directory not found:"
msgstr "Git-katalogen hittades inte:"
-#: git-gui.sh:895
+#: git-gui.sh:925
msgid "Cannot move to top of working directory:"
msgstr "Kan inte gå till början på arbetskatalogen:"
-#: git-gui.sh:902
+#: git-gui.sh:932
msgid "Cannot use funny .git directory:"
msgstr "Kan inte använda underlig .git-katalog:"
-#: git-gui.sh:907
+#: git-gui.sh:937
msgid "No working directory"
msgstr "Ingen arbetskatalog"
-#: git-gui.sh:1054
+#: git-gui.sh:1084 lib/checkout_op.tcl:283
msgid "Refreshing file status..."
msgstr "Uppdaterar filstatus..."
-#: git-gui.sh:1119
+#: git-gui.sh:1149
msgid "Scanning for modified files ..."
msgstr "Söker efter ändrade filer..."
-#: git-gui.sh:1294 lib/browser.tcl:245
+#: git-gui.sh:1324 lib/browser.tcl:246
msgid "Ready."
msgstr "Klar."
-#: git-gui.sh:1560
+#: git-gui.sh:1590
msgid "Unmodified"
msgstr "Oförändrade"
-#: git-gui.sh:1562
+#: git-gui.sh:1592
msgid "Modified, not staged"
msgstr "Förändrade, ej köade"
-#: git-gui.sh:1563 git-gui.sh:1568
+#: git-gui.sh:1593 git-gui.sh:1598
msgid "Staged for commit"
msgstr "Köade för incheckning"
-#: git-gui.sh:1564 git-gui.sh:1569
+#: git-gui.sh:1594 git-gui.sh:1599
msgid "Portions staged for commit"
msgstr "Delar köade för incheckning"
-#: git-gui.sh:1565 git-gui.sh:1570
+#: git-gui.sh:1595 git-gui.sh:1600
msgid "Staged for commit, missing"
msgstr "Köade för incheckning, saknade"
-#: git-gui.sh:1567
+#: git-gui.sh:1597
msgid "Untracked, not staged"
msgstr "Ej spårade, ej köade"
-#: git-gui.sh:1572
+#: git-gui.sh:1602
msgid "Missing"
msgstr "Saknade"
-#: git-gui.sh:1573
+#: git-gui.sh:1603
msgid "Staged for removal"
msgstr "Köade för borttagning"
-#: git-gui.sh:1574
+#: git-gui.sh:1604
msgid "Staged for removal, still present"
msgstr "Köade för borttagning, fortfarande närvarande"
-#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
+#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609
msgid "Requires merge resolution"
msgstr "Kräver konflikthantering efter sammanslagning"
-#: git-gui.sh:1614
+#: git-gui.sh:1644
msgid "Starting gitk... please wait..."
msgstr "Startar gitk... vänta..."
-#: git-gui.sh:1623
+#: git-gui.sh:1653
#, tcl-format
msgid ""
"Unable to start gitk:\n"
@@ -144,295 +143,296 @@ msgstr ""
"\n"
"%s finns inte"
-#: git-gui.sh:1823 lib/choose_repository.tcl:35
+#: git-gui.sh:1860 lib/choose_repository.tcl:36
msgid "Repository"
msgstr "Arkiv"
-#: git-gui.sh:1824
+#: git-gui.sh:1861
msgid "Edit"
msgstr "Redigera"
-#: git-gui.sh:1826 lib/choose_rev.tcl:560
+#: git-gui.sh:1863 lib/choose_rev.tcl:561
msgid "Branch"
msgstr "Gren"
-#: git-gui.sh:1829 lib/choose_rev.tcl:547
+#: git-gui.sh:1866 lib/choose_rev.tcl:548
msgid "Commit@@noun"
msgstr "Incheckning"
-#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167
msgid "Merge"
msgstr "Slå ihop"
-#: git-gui.sh:1833 lib/choose_rev.tcl:556
+#: git-gui.sh:1870 lib/choose_rev.tcl:557
msgid "Remote"
msgstr "Fjärr"
-#: git-gui.sh:1842
+#: git-gui.sh:1879
msgid "Browse Current Branch's Files"
msgstr "Bläddra i grenens filer"
-#: git-gui.sh:1846
+#: git-gui.sh:1883
msgid "Browse Branch Files..."
msgstr "Bläddra filer på gren..."
-#: git-gui.sh:1851
+#: git-gui.sh:1888
msgid "Visualize Current Branch's History"
msgstr "Visualisera grenens historik"
-#: git-gui.sh:1855
+#: git-gui.sh:1892
msgid "Visualize All Branch History"
msgstr "Visualisera alla grenars historik"
-#: git-gui.sh:1862
+#: git-gui.sh:1899
#, tcl-format
msgid "Browse %s's Files"
msgstr "Bläddra i filer för %s"
-#: git-gui.sh:1864
+#: git-gui.sh:1901
#, tcl-format
msgid "Visualize %s's History"
msgstr "Visualisera historik för %s"
-#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "Databasstatistik"
-#: git-gui.sh:1872 lib/database.tcl:34
+#: git-gui.sh:1909 lib/database.tcl:34
msgid "Compress Database"
msgstr "Komprimera databas"
-#: git-gui.sh:1875
+#: git-gui.sh:1912
msgid "Verify Database"
msgstr "Verifiera databas"
-#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "Skapa skrivbordsikon"
-#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185
msgid "Quit"
msgstr "Avsluta"
-#: git-gui.sh:1902
+#: git-gui.sh:1939
msgid "Undo"
msgstr "Ã…ngra"
-#: git-gui.sh:1905
+#: git-gui.sh:1942
msgid "Redo"
msgstr "Gör om"
-#: git-gui.sh:1909 git-gui.sh:2403
+#: git-gui.sh:1946 git-gui.sh:2443
msgid "Cut"
msgstr "Klipp ut"
-#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
-#: lib/console.tcl:67
+#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614
+#: lib/console.tcl:69
msgid "Copy"
msgstr "Kopiera"
-#: git-gui.sh:1915 git-gui.sh:2409
+#: git-gui.sh:1952 git-gui.sh:2449
msgid "Paste"
msgstr "Klistra in"
-#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
+#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "Ta bort"
-#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
+#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71
msgid "Select All"
msgstr "Markera alla"
-#: git-gui.sh:1931
+#: git-gui.sh:1968
msgid "Create..."
msgstr "Skapa..."
-#: git-gui.sh:1937
+#: git-gui.sh:1974
msgid "Checkout..."
msgstr "Checka ut..."
-#: git-gui.sh:1943
+#: git-gui.sh:1980
msgid "Rename..."
msgstr "Byt namn..."
-#: git-gui.sh:1948 git-gui.sh:2048
+#: git-gui.sh:1985 git-gui.sh:2085
msgid "Delete..."
msgstr "Ta bort..."
-#: git-gui.sh:1953
+#: git-gui.sh:1990
msgid "Reset..."
msgstr "Återställ..."
-#: git-gui.sh:1965 git-gui.sh:2350
+#: git-gui.sh:2002 git-gui.sh:2389
msgid "New Commit"
msgstr "Ny incheckning"
-#: git-gui.sh:1973 git-gui.sh:2357
+#: git-gui.sh:2010 git-gui.sh:2396
msgid "Amend Last Commit"
msgstr "Lägg till föregående incheckning"
-#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "Sök på nytt"
-#: git-gui.sh:1988
+#: git-gui.sh:2025
msgid "Stage To Commit"
msgstr "Köa för incheckning"
-#: git-gui.sh:1994
+#: git-gui.sh:2031
msgid "Stage Changed Files To Commit"
msgstr "Köa ändrade filer för incheckning"
-#: git-gui.sh:2000
+#: git-gui.sh:2037
msgid "Unstage From Commit"
msgstr "Ta bort från incheckningskö"
-#: git-gui.sh:2005 lib/index.tcl:393
+#: git-gui.sh:2042 lib/index.tcl:395
msgid "Revert Changes"
msgstr "Återställ ändringar"
-#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
+#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467
msgid "Sign Off"
msgstr "Skriv under"
-#: git-gui.sh:2016 git-gui.sh:2333
+#: git-gui.sh:2053 git-gui.sh:2372
msgid "Commit@@verb"
msgstr "Checka in"
-#: git-gui.sh:2027
+#: git-gui.sh:2064
msgid "Local Merge..."
msgstr "Lokal sammanslagning..."
-#: git-gui.sh:2032
+#: git-gui.sh:2069
msgid "Abort Merge..."
msgstr "Avbryt sammanslagning..."
-#: git-gui.sh:2044
+#: git-gui.sh:2081
msgid "Push..."
msgstr "Sänd..."
-#: git-gui.sh:2055 lib/choose_repository.tcl:40
+#: git-gui.sh:2092 lib/choose_repository.tcl:41
msgid "Apple"
msgstr "Äpple"
-#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
-#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14
+#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
#, tcl-format
msgid "About %s"
msgstr "Om %s"
-#: git-gui.sh:2062
+#: git-gui.sh:2099
msgid "Preferences..."
msgstr "Inställningar..."
-#: git-gui.sh:2070 git-gui.sh:2595
+#: git-gui.sh:2107 git-gui.sh:2639
msgid "Options..."
msgstr "Alternativ..."
-#: git-gui.sh:2076 lib/choose_repository.tcl:46
+#: git-gui.sh:2113 lib/choose_repository.tcl:47
msgid "Help"
msgstr "Hjälp"
-#: git-gui.sh:2117
+#: git-gui.sh:2154
msgid "Online Documentation"
msgstr "Webbdokumentation"
-#: git-gui.sh:2201
+#: git-gui.sh:2238
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
-msgstr "ödesdigert: kunde inte ta status på sökvägen %s: Fil eller katalog saknas"
+msgstr ""
+"ödesdigert: kunde inte ta status på sökvägen %s: Fil eller katalog saknas"
-#: git-gui.sh:2234
+#: git-gui.sh:2271
msgid "Current Branch:"
msgstr "Aktuell gren:"
-#: git-gui.sh:2255
+#: git-gui.sh:2292
msgid "Staged Changes (Will Commit)"
msgstr "Köade ändringar (kommer att checkas in)"
-#: git-gui.sh:2274
+#: git-gui.sh:2312
msgid "Unstaged Changes"
msgstr "Oköade ändringar"
-#: git-gui.sh:2323
+#: git-gui.sh:2362
msgid "Stage Changed"
msgstr "Köa ändrade"
-#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "Sänd"
-#: git-gui.sh:2369
+#: git-gui.sh:2408
msgid "Initial Commit Message:"
msgstr "Inledande incheckningsmeddelande:"
-#: git-gui.sh:2370
+#: git-gui.sh:2409
msgid "Amended Commit Message:"
msgstr "Utökat incheckningsmeddelande:"
-#: git-gui.sh:2371
+#: git-gui.sh:2410
msgid "Amended Initial Commit Message:"
msgstr "Utökat inledande incheckningsmeddelande:"
-#: git-gui.sh:2372
+#: git-gui.sh:2411
msgid "Amended Merge Commit Message:"
msgstr "Utökat incheckningsmeddelande för sammanslagning:"
-#: git-gui.sh:2373
+#: git-gui.sh:2412
msgid "Merge Commit Message:"
msgstr "Incheckningsmeddelande för sammanslagning:"
-#: git-gui.sh:2374
+#: git-gui.sh:2413
msgid "Commit Message:"
msgstr "Incheckningsmeddelande:"
-#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
+#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73
msgid "Copy All"
msgstr "Kopiera alla"
-#: git-gui.sh:2443 lib/blame.tcl:104
+#: git-gui.sh:2483 lib/blame.tcl:107
msgid "File:"
msgstr "Fil:"
-#: git-gui.sh:2545
-msgid "Refresh"
-msgstr "Uppdatera"
-
-#: git-gui.sh:2566
+#: git-gui.sh:2589
msgid "Apply/Reverse Hunk"
msgstr "Använd/återställ del"
-#: git-gui.sh:2572
-msgid "Decrease Font Size"
-msgstr "Minska teckensnittsstorlek"
-
-#: git-gui.sh:2576
-msgid "Increase Font Size"
-msgstr "Öka teckensnittsstorlek"
-
-#: git-gui.sh:2581
+#: git-gui.sh:2595
msgid "Show Less Context"
msgstr "Visa mindre sammanhang"
-#: git-gui.sh:2588
+#: git-gui.sh:2602
msgid "Show More Context"
msgstr "Visa mer sammanhang"
-#: git-gui.sh:2602
+#: git-gui.sh:2610
+msgid "Refresh"
+msgstr "Uppdatera"
+
+#: git-gui.sh:2631
+msgid "Decrease Font Size"
+msgstr "Minska teckensnittsstorlek"
+
+#: git-gui.sh:2635
+msgid "Increase Font Size"
+msgstr "Öka teckensnittsstorlek"
+
+#: git-gui.sh:2646
msgid "Unstage Hunk From Commit"
msgstr "Ta bort del ur incheckningskö"
-#: git-gui.sh:2604
+#: git-gui.sh:2648
msgid "Stage Hunk For Commit"
msgstr "Ställ del i incheckningskö"
-#: git-gui.sh:2623
+#: git-gui.sh:2667
msgid "Initializing..."
msgstr "Initierar..."
-#: git-gui.sh:2718
+#: git-gui.sh:2762
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
@@ -449,7 +449,7 @@ msgstr ""
"av %s:\n"
"\n"
-#: git-gui.sh:2748
+#: git-gui.sh:2792
msgid ""
"\n"
"This is due to a known issue with the\n"
@@ -459,7 +459,7 @@ msgstr ""
"Detta beror på ett känt problem med\n"
"Tcl-binären som följer med Cygwin."
-#: git-gui.sh:2753
+#: git-gui.sh:2797
#, tcl-format
msgid ""
"\n"
@@ -476,7 +476,7 @@ msgstr ""
"user.name och user.email i din personliga\n"
"~/.gitconfig-fil.\n"
-#: lib/about.tcl:25
+#: lib/about.tcl:26
msgid "git-gui - a graphical user interface for Git."
msgstr "git-gui - ett grafiskt användargränssnitt för Git."
@@ -488,56 +488,56 @@ msgstr "Filvisare"
msgid "Commit:"
msgstr "Incheckning:"
-#: lib/blame.tcl:249
+#: lib/blame.tcl:264
msgid "Copy Commit"
msgstr "Kopiera incheckning"
-#: lib/blame.tcl:369
+#: lib/blame.tcl:384
#, tcl-format
msgid "Reading %s..."
msgstr "Läser %s..."
-#: lib/blame.tcl:473
+#: lib/blame.tcl:488
msgid "Loading copy/move tracking annotations..."
msgstr "Läser annoteringar för kopiering/flyttning..."
-#: lib/blame.tcl:493
+#: lib/blame.tcl:508
msgid "lines annotated"
msgstr "rader annoterade"
-#: lib/blame.tcl:674
+#: lib/blame.tcl:689
msgid "Loading original location annotations..."
msgstr "Läser in annotering av originalplacering..."
-#: lib/blame.tcl:677
+#: lib/blame.tcl:692
msgid "Annotation complete."
msgstr "Annotering fullbordad."
-#: lib/blame.tcl:731
+#: lib/blame.tcl:746
msgid "Loading annotation..."
msgstr "Läser in annotering..."
-#: lib/blame.tcl:787
+#: lib/blame.tcl:802
msgid "Author:"
msgstr "Författare:"
-#: lib/blame.tcl:791
+#: lib/blame.tcl:806
msgid "Committer:"
msgstr "Incheckare:"
-#: lib/blame.tcl:796
+#: lib/blame.tcl:811
msgid "Original File:"
msgstr "Ursprunglig fil:"
-#: lib/blame.tcl:910
+#: lib/blame.tcl:925
msgid "Originally By:"
msgstr "Ursprungligen av:"
-#: lib/blame.tcl:916
+#: lib/blame.tcl:931
msgid "In File:"
msgstr "I filen:"
-#: lib/blame.tcl:921
+#: lib/blame.tcl:936
msgid "Copied Or Moved Here By:"
msgstr "Kopierad eller flyttad hit av:"
@@ -550,17 +550,17 @@ msgid "Checkout"
msgstr "Checka ut"
#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
-#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
-#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
-#: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282
+#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171
+#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
msgid "Cancel"
msgstr "Avbryt"
-#: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+#: lib/branch_checkout.tcl:32 lib/browser.tcl:287
msgid "Revision"
msgstr "Revision"
-#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242
msgid "Options"
msgstr "Alternativ"
@@ -580,7 +580,7 @@ msgstr "Skapa gren"
msgid "Create New Branch"
msgstr "Skapa ny gren"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371
msgid "Create"
msgstr "Skapa"
@@ -720,22 +720,22 @@ msgstr "Startar..."
msgid "File Browser"
msgstr "Filbläddrare"
-#: lib/browser.tcl:125 lib/browser.tcl:142
+#: lib/browser.tcl:126 lib/browser.tcl:143
#, tcl-format
msgid "Loading %s..."
msgstr "Läser %s..."
-#: lib/browser.tcl:186
+#: lib/browser.tcl:187
msgid "[Up To Parent]"
msgstr "[Upp till förälder]"
-#: lib/browser.tcl:266 lib/browser.tcl:272
+#: lib/browser.tcl:267 lib/browser.tcl:273
msgid "Browse Branch Files"
msgstr "Bläddra filer på grenen"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:391
-#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
-#: lib/choose_repository.tcl:989
+#: lib/browser.tcl:278 lib/choose_repository.tcl:387
+#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484
+#: lib/choose_repository.tcl:987
msgid "Browse"
msgstr "Bläddra"
@@ -749,7 +749,7 @@ msgstr "Hämtar %s från %s"
msgid "fatal: Cannot resolve %s"
msgstr "ödesdigert: Kunde inte slå upp %s"
-#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
msgstr "Stäng"
@@ -796,8 +796,8 @@ msgid ""
msgstr ""
"Det senaste inlästa tillståndet motsvarar inte tillståndet i arkivet.\n"
"\n"
-"Ett annat Git-program har ändrat arkivet sedan senaste avsökningen. Du "
-"måste utföra en ny sökning innan den aktuella grenen kan ändras.\n"
+"Ett annat Git-program har ändrat arkivet sedan senaste avsökningen. Du måste "
+"utföra en ny sökning innan den aktuella grenen kan ändras.\n"
"\n"
"Sökningen kommer att startas automatiskt nu.\n"
@@ -806,6 +806,10 @@ msgstr ""
msgid "Updating working directory to '%s'..."
msgstr "Uppdaterar arbetskatalogen till \"%s\"..."
+#: lib/checkout_op.tcl:323
+msgid "files checked out"
+msgstr "filer utcheckade"
+
#: lib/checkout_op.tcl:353
#, tcl-format
msgid "Aborted checkout of '%s' (file level merging is required)."
@@ -829,10 +833,10 @@ msgid ""
msgstr ""
"Du är inte längre på en lokal gren.\n"
"\n"
-"Om du ville vara på en gren skapar du en nu, baserad på \"Denna "
-"frånkopplade utcheckning\"."
+"Om du ville vara på en gren skapar du en nu, baserad på \"Denna frånkopplade "
+"utcheckning\"."
-#: lib/checkout_op.tcl:446
+#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450
#, tcl-format
msgid "Checked out '%s'."
msgstr "Checkade ut \"%s\"."
@@ -840,7 +844,8 @@ msgstr "Checkade ut \"%s\"."
#: lib/checkout_op.tcl:478
#, tcl-format
msgid "Resetting '%s' to '%s' will lose the following commits:"
-msgstr "Om du återställer \"%s\" till \"%s\" får följande incheckningar förlorade:"
+msgstr ""
+"Om du återställer \"%s\" till \"%s\" går följande incheckningar förlorade:"
#: lib/checkout_op.tcl:500
msgid "Recovering lost commits may not be easy."
@@ -851,7 +856,7 @@ msgstr "Det kanske inte är så enkelt att återskapa förlorade incheckningar."
msgid "Reset '%s'?"
msgstr "Återställa \"%s\"?"
-#: lib/checkout_op.tcl:510 lib/merge.tcl:164
+#: lib/checkout_op.tcl:510 lib/merge.tcl:163
msgid "Visualize"
msgstr "Visualisera"
@@ -867,8 +872,8 @@ msgid ""
msgstr ""
"Kunde inte ställa in aktuell gren.\n"
"\n"
-"Arbetskatalogen har bara växlats delvis. Vi uppdaterade filerna "
-"utan problem, men kunde inte uppdatera en intern fil i Git.\n"
+"Arbetskatalogen har bara växlats delvis. Vi uppdaterade filerna utan "
+"problem, men kunde inte uppdatera en intern fil i Git.\n"
"\n"
"Detta skulle inte ha hänt. %s kommer nu stängas och ge upp."
@@ -880,15 +885,15 @@ msgstr "Välj"
msgid "Font Family"
msgstr "Teckensnittsfamilj"
-#: lib/choose_font.tcl:73
+#: lib/choose_font.tcl:74
msgid "Font Size"
msgstr "Storlek"
-#: lib/choose_font.tcl:90
+#: lib/choose_font.tcl:91
msgid "Font Example"
msgstr "Exempel"
-#: lib/choose_font.tcl:101
+#: lib/choose_font.tcl:103
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
@@ -896,225 +901,225 @@ msgstr ""
"Detta är en exempeltext.\n"
"Om du tycker om den här texten kan den vara ditt teckensnitt."
-#: lib/choose_repository.tcl:27
+#: lib/choose_repository.tcl:28
msgid "Git Gui"
msgstr "Git Gui"
-#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376
msgid "Create New Repository"
msgstr "Skapa nytt arkiv"
-#: lib/choose_repository.tcl:86
+#: lib/choose_repository.tcl:87
msgid "New..."
msgstr "Nytt..."
-#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460
msgid "Clone Existing Repository"
msgstr "Klona befintligt arkiv"
-#: lib/choose_repository.tcl:99
+#: lib/choose_repository.tcl:100
msgid "Clone..."
msgstr "Klona..."
-#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976
msgid "Open Existing Repository"
msgstr "Öppna befintligt arkiv"
-#: lib/choose_repository.tcl:112
+#: lib/choose_repository.tcl:113
msgid "Open..."
msgstr "Öppna..."
-#: lib/choose_repository.tcl:125
+#: lib/choose_repository.tcl:126
msgid "Recent Repositories"
msgstr "Senaste arkiven"
-#: lib/choose_repository.tcl:131
+#: lib/choose_repository.tcl:132
msgid "Open Recent Repository:"
msgstr "Öppna tidigare arkiv:"
-#: lib/choose_repository.tcl:294
-#, tcl-format
-msgid "Location %s already exists."
-msgstr "Platsen %s finns redan."
-
-#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
-#: lib/choose_repository.tcl:314
+#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303
+#: lib/choose_repository.tcl:310
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "Kunde inte skapa arkivet %s:"
-#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478
msgid "Directory:"
msgstr "Katalog:"
-#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
-#: lib/choose_repository.tcl:1013
+#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537
+#: lib/choose_repository.tcl:1011
msgid "Git Repository"
msgstr "Gitarkiv"
-#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#: lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "Katalogen %s finns redan."
-#: lib/choose_repository.tcl:442
+#: lib/choose_repository.tcl:441
#, tcl-format
msgid "File %s already exists."
msgstr "Filen %s finns redan."
-#: lib/choose_repository.tcl:463
+#: lib/choose_repository.tcl:455
msgid "Clone"
msgstr "Klona"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:468
msgid "URL:"
msgstr "Webbadress:"
-#: lib/choose_repository.tcl:496
+#: lib/choose_repository.tcl:489
msgid "Clone Type:"
msgstr "Typ av klon:"
-#: lib/choose_repository.tcl:502
+#: lib/choose_repository.tcl:495
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "Standard (snabb, semiredundant, hårda länkar)"
-#: lib/choose_repository.tcl:508
+#: lib/choose_repository.tcl:501
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "Full kopia (långsammare, redundant säkerhetskopia)"
-#: lib/choose_repository.tcl:514
+#: lib/choose_repository.tcl:507
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "Delad (snabbast, rekommenderas ej, ingen säkerhetskopia)"
-#: lib/choose_repository.tcl:550 lib/choose_repository.tcl:597
-#: lib/choose_repository.tcl:738 lib/choose_repository.tcl:808
-#: lib/choose_repository.tcl:1019 lib/choose_repository.tcl:1027
+#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806
+#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "Inte ett Gitarkiv: %s"
-#: lib/choose_repository.tcl:586
+#: lib/choose_repository.tcl:579
msgid "Standard only available for local repository."
msgstr "Standard är endast tillgängligt för lokala arkiv."
-#: lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:583
msgid "Shared only available for local repository."
msgstr "Delat är endast tillgängligt för lokala arkiv."
-#: lib/choose_repository.tcl:617
+#: lib/choose_repository.tcl:604
+#, tcl-format
+msgid "Location %s already exists."
+msgstr "Platsen %s finns redan."
+
+#: lib/choose_repository.tcl:615
msgid "Failed to configure origin"
msgstr "Kunde inte konfigurera ursprung"
-#: lib/choose_repository.tcl:629
+#: lib/choose_repository.tcl:627
msgid "Counting objects"
msgstr "Räknar objekt"
-#: lib/choose_repository.tcl:630
+#: lib/choose_repository.tcl:628
msgid "buckets"
msgstr "hinkar"
-#: lib/choose_repository.tcl:654
+#: lib/choose_repository.tcl:652
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "Kunde inte kopiera objekt/info/alternativ: %s"
-#: lib/choose_repository.tcl:690
+#: lib/choose_repository.tcl:688
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "Ingenting att klona från %s."
-#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
-#: lib/choose_repository.tcl:918
+#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:916
msgid "The 'master' branch has not been initialized."
msgstr "Grenen \"master\" har inte initierats."
-#: lib/choose_repository.tcl:705
+#: lib/choose_repository.tcl:703
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "Hårda länkar är inte tillgängliga. Faller tillbaka på kopiering."
-#: lib/choose_repository.tcl:717
+#: lib/choose_repository.tcl:715
#, tcl-format
msgid "Cloning from %s"
msgstr "Klonar från %s"
-#: lib/choose_repository.tcl:748
+#: lib/choose_repository.tcl:746
msgid "Copying objects"
msgstr "Kopierar objekt"
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:747
msgid "KiB"
msgstr "KiB"
-#: lib/choose_repository.tcl:773
+#: lib/choose_repository.tcl:771
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "Kunde inte kopiera objekt: %s"
-#: lib/choose_repository.tcl:783
+#: lib/choose_repository.tcl:781
msgid "Linking objects"
msgstr "Länkar objekt"
-#: lib/choose_repository.tcl:784
+#: lib/choose_repository.tcl:782
msgid "objects"
msgstr "objekt"
-#: lib/choose_repository.tcl:792
+#: lib/choose_repository.tcl:790
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "Kunde inte hårdlänka objekt: %s"
-#: lib/choose_repository.tcl:847
+#: lib/choose_repository.tcl:845
msgid "Cannot fetch branches and objects. See console output for details."
msgstr "Kunde inte hämta grenar och objekt. Se konsolutdata för detaljer."
-#: lib/choose_repository.tcl:858
+#: lib/choose_repository.tcl:856
msgid "Cannot fetch tags. See console output for details."
msgstr "Kunde inte hämta taggar. Se konsolutdata för detaljer."
-#: lib/choose_repository.tcl:882
+#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
msgstr "Kunde inte avgöra HEAD. Se konsolutdata för detaljer."
-#: lib/choose_repository.tcl:891
+#: lib/choose_repository.tcl:889
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "Kunde inte städa upp %s"
-#: lib/choose_repository.tcl:897
+#: lib/choose_repository.tcl:895
msgid "Clone failed."
msgstr "Kloning misslyckades."
-#: lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:902
msgid "No default branch obtained."
msgstr "Hämtade ingen standardgren."
-#: lib/choose_repository.tcl:915
+#: lib/choose_repository.tcl:913
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "Kunde inte slå upp %s till någon incheckning."
-#: lib/choose_repository.tcl:927
+#: lib/choose_repository.tcl:925
msgid "Creating working directory"
msgstr "Skapar arbetskatalog"
-#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127
#: lib/index.tcl:193
msgid "files"
msgstr "filer"
-#: lib/choose_repository.tcl:957
+#: lib/choose_repository.tcl:955
msgid "Initial file checkout failed."
msgstr "Inledande filutcheckning misslyckades."
-#: lib/choose_repository.tcl:973
+#: lib/choose_repository.tcl:971
msgid "Open"
msgstr "Öppna"
-#: lib/choose_repository.tcl:983
+#: lib/choose_repository.tcl:981
msgid "Repository:"
msgstr "Arkiv:"
-#: lib/choose_repository.tcl:1033
+#: lib/choose_repository.tcl:1031
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "Kunde inte öppna arkivet %s:"
@@ -1135,7 +1140,7 @@ msgstr "Lokal gren"
msgid "Tracking Branch"
msgstr "Spårande gren"
-#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538
msgid "Tag"
msgstr "Tagg"
@@ -1152,11 +1157,11 @@ msgstr "Ingen revision vald."
msgid "Revision expression is empty."
msgstr "Revisionsuttrycket är tomt."
-#: lib/choose_rev.tcl:530
+#: lib/choose_rev.tcl:531
msgid "Updated"
msgstr "Uppdaterad"
-#: lib/choose_rev.tcl:558
+#: lib/choose_rev.tcl:559
msgid "URL"
msgstr "Webbadress"
@@ -1182,9 +1187,9 @@ msgid ""
msgstr ""
"Kan inte utöka vid sammanslagning.\n"
"\n"
-"Du är i mitten av en sammanslagning som inte är fullbordad. Du kan "
-"inte utöka tidigare incheckningar om du inte först avbryter den "
-"pågående sammanslagningen.\n"
+"Du är i mitten av en sammanslagning som inte är fullbordad. Du kan inte "
+"utöka tidigare incheckningar om du inte först avbryter den pågående "
+"sammanslagningen.\n"
#: lib/commit.tcl:49
msgid "Error loading commit data for amend:"
@@ -1209,8 +1214,8 @@ msgid ""
msgstr ""
"Det senaste inlästa tillståndet motsvarar inte tillståndet i arkivet.\n"
"\n"
-"Ett annat Git-program har ändrat arkivet sedan senaste avsökningen. Du "
-"måste utföra en ny sökning innan du kan göra en ny incheckning.\n"
+"Ett annat Git-program har ändrat arkivet sedan senaste avsökningen. Du måste "
+"utföra en ny sökning innan du kan göra en ny incheckning.\n"
"\n"
"Sökningen kommer att startas automatiskt nu.\n"
@@ -1266,16 +1271,45 @@ msgstr ""
"- Andra raden: Tom\n"
"- Följande rader: Beskriv varför det här är en bra ändring.\n"
-#: lib/commit.tcl:257
+#: lib/commit.tcl:207
+#, tcl-format
+msgid "warning: Tcl does not support encoding '%s'."
+msgstr "varning: Tcl stöder inte teckenkodningen \"%s\"."
+
+#: lib/commit.tcl:221
+msgid "Calling pre-commit hook..."
+msgstr "Anropar krok före incheckning..."
+
+#: lib/commit.tcl:236
+msgid "Commit declined by pre-commit hook."
+msgstr "Incheckningen avvisades av krok före incheckning."
+
+#: lib/commit.tcl:259
+msgid "Calling commit-msg hook..."
+msgstr "Anropar krok för incheckningsmeddelande..."
+
+#: lib/commit.tcl:274
+msgid "Commit declined by commit-msg hook."
+msgstr "Incheckning avvisad av krok för incheckningsmeddelande."
+
+#: lib/commit.tcl:287
+msgid "Committing changes..."
+msgstr "Checkar in ändringar..."
+
+#: lib/commit.tcl:303
msgid "write-tree failed:"
msgstr "write-tree misslyckades:"
-#: lib/commit.tcl:275
+#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368
+msgid "Commit failed."
+msgstr "Incheckningen misslyckades."
+
+#: lib/commit.tcl:321
#, tcl-format
msgid "Commit %s appears to be corrupt"
msgstr "Incheckningen %s verkar vara trasig"
-#: lib/commit.tcl:279
+#: lib/commit.tcl:326
msgid ""
"No changes to commit.\n"
"\n"
@@ -1289,37 +1323,32 @@ msgstr ""
"\n"
"En sökning kommer att startas automatiskt nu.\n"
-#: lib/commit.tcl:286
+#: lib/commit.tcl:333
msgid "No changes to commit."
msgstr "Inga ändringar att checka in."
-#: lib/commit.tcl:303
-#, tcl-format
-msgid "warning: Tcl does not support encoding '%s'."
-msgstr "varning: Tcl stöder inte teckenkodningen \"%s\"."
-
-#: lib/commit.tcl:317
+#: lib/commit.tcl:347
msgid "commit-tree failed:"
msgstr "commit-tree misslyckades:"
-#: lib/commit.tcl:339
+#: lib/commit.tcl:367
msgid "update-ref failed:"
msgstr "update-ref misslyckades:"
-#: lib/commit.tcl:430
+#: lib/commit.tcl:454
#, tcl-format
msgid "Created commit %s: %s"
msgstr "Skapade incheckningen %s: %s"
-#: lib/console.tcl:57
+#: lib/console.tcl:59
msgid "Working... please wait..."
msgstr "Arbetar... vänta..."
-#: lib/console.tcl:183
+#: lib/console.tcl:186
msgid "Success"
msgstr "Lyckades"
-#: lib/console.tcl:196
+#: lib/console.tcl:200
msgid "Error: Command Failed"
msgstr "Fel: Kommando misslyckades"
@@ -1398,8 +1427,8 @@ msgstr ""
"\n"
"%s innehåller inga ändringar.\n"
"\n"
-"Modifieringsdatum för filen uppdaterades av ett annat program, men innehållet "
-"i filen har inte ändrats.\n"
+"Modifieringsdatum för filen uppdaterades av ett annat program, men "
+"innehållet i filen har inte ändrats.\n"
"\n"
"En sökning kommer automatiskt att startas för att hitta andra filer som kan "
"vara i samma tillstånd."
@@ -1430,23 +1459,23 @@ msgstr "* Binärfil (visar inte innehållet)."
msgid "Error loading diff:"
msgstr "Fel vid inläsning av differens:"
-#: lib/diff.tcl:302
+#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
msgstr "Kunde inte ta bort den valda delen från kön."
-#: lib/diff.tcl:309
+#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
msgstr "Kunde inte lägga till den valda delen till kön."
-#: lib/error.tcl:12 lib/error.tcl:102
+#: lib/error.tcl:20 lib/error.tcl:114
msgid "error"
msgstr "fel"
-#: lib/error.tcl:28
+#: lib/error.tcl:36
msgid "warning"
msgstr "varning"
-#: lib/error.tcl:81
+#: lib/error.tcl:94
msgid "You must correct the above errors before committing."
msgstr "Du måste rätta till felen ovan innan du checkar in."
@@ -1479,6 +1508,10 @@ msgstr "LÃ¥s upp index"
msgid "Unstaging %s from commit"
msgstr "Tar bort %s för incheckningskön"
+#: lib/index.tcl:313
+msgid "Ready to commit."
+msgstr "Redo att checka in."
+
#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
@@ -1494,11 +1527,12 @@ msgstr "Återställ ändringarna i filen %s?"
msgid "Revert changes in these %i files?"
msgstr "Återställ ändringarna i dessa %i filer?"
-#: lib/index.tcl:389
+#: lib/index.tcl:391
msgid "Any unstaged changes will be permanently lost by the revert."
-msgstr "Alla oköade ändringar kommer permanent gå förlorade vid återställningen."
+msgstr ""
+"Alla oköade ändringar kommer permanent gå förlorade vid återställningen."
-#: lib/index.tcl:392
+#: lib/index.tcl:394
msgid "Do Nothing"
msgstr "Gör ingenting"
@@ -1510,7 +1544,7 @@ msgid ""
msgstr ""
"Kan inte slå ihop vid utökning.\n"
"\n"
-"Du måste föra färdig utökningen av incheckningen innan du påbörjar någon "
+"Du måste göra färdig utökningen av incheckningen innan du påbörjar någon "
"slags sammanslagning.\n"
#: lib/merge.tcl:27
@@ -1524,8 +1558,8 @@ msgid ""
msgstr ""
"Det senaste inlästa tillståndet motsvarar inte tillståndet i arkivet.\n"
"\n"
-"Ett annat Git-program har ändrat arkivet sedan senaste avsökningen. Du "
-"måste utföra en ny sökning innan du kan utföra en sammanslagning.\n"
+"Ett annat Git-program har ändrat arkivet sedan senaste avsökningen. Du måste "
+"utföra en ny sökning innan du kan utföra en sammanslagning.\n"
"\n"
"Sökningen kommer att startas automatiskt nu.\n"
@@ -1571,27 +1605,27 @@ msgstr "%s av %s"
#: lib/merge.tcl:119
#, tcl-format
-msgid "Merging %s and %s"
-msgstr "Slår ihop %s och %s"
+msgid "Merging %s and %s..."
+msgstr "Slår ihop %s och %s..."
-#: lib/merge.tcl:131
+#: lib/merge.tcl:130
msgid "Merge completed successfully."
msgstr "Sammanslagningen avslutades framgångsrikt."
-#: lib/merge.tcl:133
+#: lib/merge.tcl:132
msgid "Merge failed. Conflict resolution is required."
msgstr "Sammanslagningen misslyckades. Du måste lösa konflikterna."
-#: lib/merge.tcl:158
+#: lib/merge.tcl:157
#, tcl-format
msgid "Merge Into %s"
msgstr "Slå ihop i %s"
-#: lib/merge.tcl:177
+#: lib/merge.tcl:176
msgid "Revision To Merge"
msgstr "Revisioner att slå ihop"
-#: lib/merge.tcl:212
+#: lib/merge.tcl:211
msgid ""
"Cannot abort while amending.\n"
"\n"
@@ -1601,7 +1635,7 @@ msgstr ""
"\n"
"Du måste göra dig färdig med att utöka incheckningen.\n"
-#: lib/merge.tcl:222
+#: lib/merge.tcl:221
msgid ""
"Abort merge?\n"
"\n"
@@ -1611,12 +1645,12 @@ msgid ""
msgstr ""
"Avbryt sammanslagning?\n"
"\n"
-"Om du avbryter sammanslagningen kommer *ALLA* ej incheckade ändringar att "
-"gå förlorade.\n"
+"Om du avbryter sammanslagningen kommer *ALLA* ej incheckade ändringar att gå "
+"förlorade.\n"
"\n"
"GÃ¥ vidare med att avbryta den aktuella sammanslagningen?"
-#: lib/merge.tcl:228
+#: lib/merge.tcl:227
msgid ""
"Reset changes?\n"
"\n"
@@ -1626,98 +1660,110 @@ msgid ""
msgstr ""
"Återställ ändringar?\n"
"\n"
-"Om du återställer ändringarna kommer *ALLA* ej incheckade ändringar att "
-"gå förlorade.\n"
+"Om du återställer ändringarna kommer *ALLA* ej incheckade ändringar att gå "
+"förlorade.\n"
"\n"
"Gå vidare med att återställa de aktuella ändringarna?"
-#: lib/merge.tcl:239
+#: lib/merge.tcl:238
msgid "Aborting"
msgstr "Avbryter"
-#: lib/merge.tcl:266
+#: lib/merge.tcl:238
+msgid "files reset"
+msgstr "filer återställda"
+
+#: lib/merge.tcl:265
msgid "Abort failed."
msgstr "Misslyckades avbryta."
-#: lib/merge.tcl:268
+#: lib/merge.tcl:267
msgid "Abort completed. Ready."
msgstr "Avbrytning fullbordad. Redo."
-#: lib/option.tcl:82
+#: lib/option.tcl:95
msgid "Restore Defaults"
msgstr "Återställ standardvärden"
-#: lib/option.tcl:86
+#: lib/option.tcl:99
msgid "Save"
msgstr "Spara"
-#: lib/option.tcl:96
+#: lib/option.tcl:109
#, tcl-format
msgid "%s Repository"
msgstr "Arkivet %s"
-#: lib/option.tcl:97
+#: lib/option.tcl:110
msgid "Global (All Repositories)"
msgstr "Globalt (alla arkiv)"
-#: lib/option.tcl:103
+#: lib/option.tcl:116
msgid "User Name"
msgstr "Användarnamn"
-#: lib/option.tcl:104
+#: lib/option.tcl:117
msgid "Email Address"
msgstr "E-postadress"
-#: lib/option.tcl:106
+#: lib/option.tcl:119
msgid "Summarize Merge Commits"
msgstr "Summera sammanslagningsincheckningar"
-#: lib/option.tcl:107
+#: lib/option.tcl:120
msgid "Merge Verbosity"
msgstr "Pratsamhet för sammanslagningar"
-#: lib/option.tcl:108
+#: lib/option.tcl:121
msgid "Show Diffstat After Merge"
msgstr "Visa diffstatistik efter sammanslagning"
-#: lib/option.tcl:110
+#: lib/option.tcl:123
msgid "Trust File Modification Timestamps"
msgstr "Lita på filändringstidsstämplar"
-#: lib/option.tcl:111
+#: lib/option.tcl:124
msgid "Prune Tracking Branches During Fetch"
msgstr "Städa spårade grenar vid hämtning"
-#: lib/option.tcl:112
+#: lib/option.tcl:125
msgid "Match Tracking Branches"
msgstr "Matcha spårade grenar"
-#: lib/option.tcl:113
+#: lib/option.tcl:126
msgid "Number of Diff Context Lines"
msgstr "Antal rader sammanhang i differenser"
-#: lib/option.tcl:114
+#: lib/option.tcl:127
+msgid "Commit Message Text Width"
+msgstr "Textbredd för incheckningsmeddelande"
+
+#: lib/option.tcl:128
msgid "New Branch Name Template"
msgstr "Mall för namn på nya grenar"
-#: lib/option.tcl:176
+#: lib/option.tcl:192
+msgid "Spelling Dictionary:"
+msgstr "Stavningsordlista:"
+
+#: lib/option.tcl:216
msgid "Change Font"
msgstr "Byt teckensnitt"
-#: lib/option.tcl:180
+#: lib/option.tcl:220
#, tcl-format
msgid "Choose %s"
msgstr "Välj %s"
-#: lib/option.tcl:186
+#: lib/option.tcl:226
msgid "pt."
msgstr "p."
-#: lib/option.tcl:200
+#: lib/option.tcl:240
msgid "Preferences"
msgstr "Inställningar"
-#: lib/option.tcl:235
+#: lib/option.tcl:275
msgid "Failed to completely save options:"
msgstr "Misslyckades med att helt spara alternativ:"
@@ -1774,8 +1820,8 @@ msgid ""
"One or more of the merge tests failed because you have not fetched the "
"necessary commits. Try fetching from %s first."
msgstr ""
-"En eller flera av sammanslagningstesterna misslyckades eftersom du inte "
-"har hämtat de nödvändiga incheckningarna. Försök hämta från %s först."
+"En eller flera av sammanslagningstesterna misslyckades eftersom du inte har "
+"hämtat de nödvändiga incheckningarna. Försök hämta från %s först."
#: lib/remote_branch_delete.tcl:207
msgid "Please select one or more branches to delete."
@@ -1787,7 +1833,7 @@ msgid ""
"\n"
"Delete the selected branches?"
msgstr ""
-"Det kan vara svårt att återställa grenar.\n"
+"Det kan vara svårt att återställa borttagna grenar.\n"
"\n"
"Ta bort de valda grenarna?"
@@ -1825,6 +1871,43 @@ msgstr "Kan inte skriva genväg:"
msgid "Cannot write icon:"
msgstr "Kan inte skriva ikon:"
+#: lib/spellcheck.tcl:57
+msgid "Unsupported spell checker"
+msgstr "Stavningskontrollprogrammet stöds inte"
+
+#: lib/spellcheck.tcl:65
+msgid "Spell checking is unavailable"
+msgstr "Stavningskontroll är ej tillgänglig"
+
+#: lib/spellcheck.tcl:68
+msgid "Invalid spell checking configuration"
+msgstr "Ogiltig inställning för stavningskontroll"
+
+#: lib/spellcheck.tcl:70
+#, tcl-format
+msgid "Reverting dictionary to %s."
+msgstr "Återställer ordlistan till %s."
+
+#: lib/spellcheck.tcl:73
+msgid "Spell checker silently failed on startup"
+msgstr "Stavningskontroll misslyckades tyst vid start"
+
+#: lib/spellcheck.tcl:80
+msgid "Unrecognized spell checker"
+msgstr "Stavningskontrollprogrammet känns inte igen"
+
+#: lib/spellcheck.tcl:180
+msgid "No Suggestions"
+msgstr "Inga förslag"
+
+#: lib/spellcheck.tcl:381
+msgid "Unexpected EOF from spell checker"
+msgstr "Oväntat filslut från stavningskontroll"
+
+#: lib/spellcheck.tcl:385
+msgid "Spell Checker Failed"
+msgstr "Stavningskontroll misslyckades"
+
#: lib/status_bar.tcl:83
#, tcl-format
msgid "%s ... %*i of %*i %s (%3i%%)"
@@ -1893,3 +1976,5 @@ msgstr "Använd tunt paket (för långsamma nätverksanslutningar)"
msgid "Include tags"
msgstr "Ta med taggar"
+#~ msgid "Not connected to aspell"
+#~ msgstr "Inte ansluten till aspell"
diff --git a/git-gui/po/zh_cn.po b/git-gui/po/zh_cn.po
index f8697216f7..d2c6866671 100644
--- a/git-gui/po/zh_cn.po
+++ b/git-gui/po/zh_cn.po
@@ -15,7 +15,7 @@
# fast forward 快速åˆå¹¶(??)
# stage 缓存 (译自 index/cache)
# amend 修正
-# reset å¤ä½
+# reset å¤ä½
#
# 2008-01-06 Eric Miao <eric.y.miao@gmail.com>
# FIXME: checkout 的标准翻译
@@ -25,7 +25,7 @@ msgid ""
msgstr ""
"Project-Id-Version: git-gui\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-11-24 10:36+0100\n"
+"POT-Creation-Date: 2008-03-14 07:18+0100\n"
"PO-Revision-Date: 2007-07-21 01:23-0700\n"
"Last-Translator: Eric Miao <eric.y.miao@gmail.com>\n"
"Language-Team: Chinese\n"
@@ -33,33 +33,33 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: git-gui.sh:41 git-gui.sh:604 git-gui.sh:618 git-gui.sh:631 git-gui.sh:714
-#: git-gui.sh:733
+#: git-gui.sh:41 git-gui.sh:634 git-gui.sh:648 git-gui.sh:661 git-gui.sh:744
+#: git-gui.sh:763
msgid "git-gui: fatal error"
msgstr "git-gui: 致命错误"
-#: git-gui.sh:565
+#: git-gui.sh:593
#, tcl-format
msgid "Invalid font specified in %s:"
msgstr "%s 中指定的字体无效:"
-#: git-gui.sh:590
+#: git-gui.sh:620
msgid "Main Font"
msgstr "主è¦å­—体"
-#: git-gui.sh:591
+#: git-gui.sh:621
msgid "Diff/Console Font"
msgstr "Diff/控制终端字体"
-#: git-gui.sh:605
+#: git-gui.sh:635
msgid "Cannot find git in PATH."
msgstr "PATH 中没有找到 git"
-#: git-gui.sh:632
+#: git-gui.sh:662
msgid "Cannot parse Git version string:"
msgstr "æ— æ³•è§£æž Git 的版本信æ¯:"
-#: git-gui.sh:650
+#: git-gui.sh:680
#, tcl-format
msgid ""
"Git version cannot be determined.\n"
@@ -78,79 +78,79 @@ msgstr ""
"\n"
"是å¦å‡å®š '%s' 为版本 1.5.0?\n"
-#: git-gui.sh:888
+#: git-gui.sh:918
msgid "Git directory not found:"
msgstr "Git 目录无法找到:"
-#: git-gui.sh:895
+#: git-gui.sh:925
msgid "Cannot move to top of working directory:"
msgstr "无法移动到工作根目录:"
-#: git-gui.sh:902
+#: git-gui.sh:932
msgid "Cannot use funny .git directory:"
msgstr "无法使用 .git 目录:"
-#: git-gui.sh:907
+#: git-gui.sh:937
msgid "No working directory"
msgstr "没有工作目录"
-#: git-gui.sh:1054
+#: git-gui.sh:1084 lib/checkout_op.tcl:283
msgid "Refreshing file status..."
msgstr "更新文件状æ€..."
-#: git-gui.sh:1119
+#: git-gui.sh:1149
msgid "Scanning for modified files ..."
msgstr "扫æ修改过的文件 ..."
-#: git-gui.sh:1294 lib/browser.tcl:245
+#: git-gui.sh:1324 lib/browser.tcl:246
msgid "Ready."
msgstr "就绪"
-#: git-gui.sh:1560
+#: git-gui.sh:1590
msgid "Unmodified"
msgstr "未修改"
-#: git-gui.sh:1562
+#: git-gui.sh:1592
msgid "Modified, not staged"
msgstr "修改但未缓存"
-#: git-gui.sh:1563 git-gui.sh:1568
+#: git-gui.sh:1593 git-gui.sh:1598
msgid "Staged for commit"
msgstr "缓存为æ交"
-#: git-gui.sh:1564 git-gui.sh:1569
+#: git-gui.sh:1594 git-gui.sh:1599
msgid "Portions staged for commit"
msgstr "部分缓存为æ交"
-#: git-gui.sh:1565 git-gui.sh:1570
+#: git-gui.sh:1595 git-gui.sh:1600
msgid "Staged for commit, missing"
msgstr "缓存为æ交, ä¸å­˜åœ¨"
-#: git-gui.sh:1567
+#: git-gui.sh:1597
msgid "Untracked, not staged"
msgstr "未跟踪, 未缓存"
-#: git-gui.sh:1572
+#: git-gui.sh:1602
msgid "Missing"
msgstr "ä¸å­˜åœ¨"
-#: git-gui.sh:1573
+#: git-gui.sh:1603
msgid "Staged for removal"
msgstr "缓存为删除"
-#: git-gui.sh:1574
+#: git-gui.sh:1604
msgid "Staged for removal, still present"
msgstr "缓存为删除, 但ä»å­˜åœ¨"
-#: git-gui.sh:1576 git-gui.sh:1577 git-gui.sh:1578 git-gui.sh:1579
+#: git-gui.sh:1606 git-gui.sh:1607 git-gui.sh:1608 git-gui.sh:1609
msgid "Requires merge resolution"
msgstr "需è¦è§£å†³åˆå¹¶å†²çª"
-#: git-gui.sh:1614
+#: git-gui.sh:1644
msgid "Starting gitk... please wait..."
msgstr "å¯åŠ¨ gitk... 请等待..."
-#: git-gui.sh:1623
+#: git-gui.sh:1653
#, tcl-format
msgid ""
"Unable to start gitk:\n"
@@ -161,295 +161,295 @@ msgstr ""
"\n"
"%s ä¸å­˜åœ¨"
-#: git-gui.sh:1823 lib/choose_repository.tcl:35
+#: git-gui.sh:1860 lib/choose_repository.tcl:36
msgid "Repository"
msgstr "版本库(repository)"
-#: git-gui.sh:1824
+#: git-gui.sh:1861
msgid "Edit"
msgstr "编辑"
-#: git-gui.sh:1826 lib/choose_rev.tcl:560
+#: git-gui.sh:1863 lib/choose_rev.tcl:561
msgid "Branch"
msgstr "分支(branch)"
-#: git-gui.sh:1829 lib/choose_rev.tcl:547
+#: git-gui.sh:1866 lib/choose_rev.tcl:548
msgid "Commit@@noun"
msgstr "æ交(commit)"
-#: git-gui.sh:1832 lib/merge.tcl:121 lib/merge.tcl:150 lib/merge.tcl:168
+#: git-gui.sh:1869 lib/merge.tcl:120 lib/merge.tcl:149 lib/merge.tcl:167
msgid "Merge"
msgstr "åˆå¹¶(merge)"
-#: git-gui.sh:1833 lib/choose_rev.tcl:556
+#: git-gui.sh:1870 lib/choose_rev.tcl:557
msgid "Remote"
msgstr "远端(remote)"
-#: git-gui.sh:1842
+#: git-gui.sh:1879
msgid "Browse Current Branch's Files"
msgstr "æµè§ˆå½“å‰åˆ†æ”¯ä¸Šçš„文件"
-#: git-gui.sh:1846
+#: git-gui.sh:1883
msgid "Browse Branch Files..."
msgstr "æµè§ˆåˆ†æ”¯ä¸Šçš„文件..."
-#: git-gui.sh:1851
+#: git-gui.sh:1888
msgid "Visualize Current Branch's History"
msgstr "图示当å‰åˆ†æ”¯çš„历å²"
-#: git-gui.sh:1855
+#: git-gui.sh:1892
msgid "Visualize All Branch History"
msgstr "图示所有分支的历å²"
-#: git-gui.sh:1862
+#: git-gui.sh:1899
#, tcl-format
msgid "Browse %s's Files"
msgstr "æµè§ˆ %s 上的文件"
-#: git-gui.sh:1864
+#: git-gui.sh:1901
#, tcl-format
msgid "Visualize %s's History"
msgstr "图示 %s 分支的历å²"
-#: git-gui.sh:1869 lib/database.tcl:27 lib/database.tcl:67
+#: git-gui.sh:1906 lib/database.tcl:27 lib/database.tcl:67
msgid "Database Statistics"
msgstr "æ•°æ®åº“统计信æ¯"
-#: git-gui.sh:1872 lib/database.tcl:34
+#: git-gui.sh:1909 lib/database.tcl:34
msgid "Compress Database"
msgstr "压缩数æ®åº“"
-#: git-gui.sh:1875
+#: git-gui.sh:1912
msgid "Verify Database"
msgstr "验è¯æ•°æ®åº“"
-#: git-gui.sh:1882 git-gui.sh:1886 git-gui.sh:1890 lib/shortcut.tcl:7
+#: git-gui.sh:1919 git-gui.sh:1923 git-gui.sh:1927 lib/shortcut.tcl:7
#: lib/shortcut.tcl:39 lib/shortcut.tcl:71
msgid "Create Desktop Icon"
msgstr "创建桌é¢å›¾æ ‡"
-#: git-gui.sh:1895 lib/choose_repository.tcl:176 lib/choose_repository.tcl:184
+#: git-gui.sh:1932 lib/choose_repository.tcl:177 lib/choose_repository.tcl:185
msgid "Quit"
msgstr "退出"
-#: git-gui.sh:1902
+#: git-gui.sh:1939
msgid "Undo"
msgstr "撤销"
-#: git-gui.sh:1905
+#: git-gui.sh:1942
msgid "Redo"
msgstr "é‡åš"
-#: git-gui.sh:1909 git-gui.sh:2403
+#: git-gui.sh:1946 git-gui.sh:2443
msgid "Cut"
msgstr "剪切"
-#: git-gui.sh:1912 git-gui.sh:2406 git-gui.sh:2477 git-gui.sh:2549
-#: lib/console.tcl:67
+#: git-gui.sh:1949 git-gui.sh:2446 git-gui.sh:2520 git-gui.sh:2614
+#: lib/console.tcl:69
msgid "Copy"
msgstr "å¤åˆ¶"
-#: git-gui.sh:1915 git-gui.sh:2409
+#: git-gui.sh:1952 git-gui.sh:2449
msgid "Paste"
msgstr "粘贴"
-#: git-gui.sh:1918 git-gui.sh:2412 lib/branch_delete.tcl:26
+#: git-gui.sh:1955 git-gui.sh:2452 lib/branch_delete.tcl:26
#: lib/remote_branch_delete.tcl:38
msgid "Delete"
msgstr "删除"
-#: git-gui.sh:1922 git-gui.sh:2416 git-gui.sh:2553 lib/console.tcl:69
+#: git-gui.sh:1959 git-gui.sh:2456 git-gui.sh:2618 lib/console.tcl:71
msgid "Select All"
msgstr "全选"
-#: git-gui.sh:1931
+#: git-gui.sh:1968
msgid "Create..."
msgstr "新建..."
-#: git-gui.sh:1937
+#: git-gui.sh:1974
msgid "Checkout..."
msgstr "Checkout..."
-#: git-gui.sh:1943
+#: git-gui.sh:1980
msgid "Rename..."
msgstr "æ›´å..."
-#: git-gui.sh:1948 git-gui.sh:2048
+#: git-gui.sh:1985 git-gui.sh:2085
msgid "Delete..."
msgstr "删除..."
-#: git-gui.sh:1953
+#: git-gui.sh:1990
msgid "Reset..."
msgstr "å¤ä½(Reset)..."
-#: git-gui.sh:1965 git-gui.sh:2350
+#: git-gui.sh:2002 git-gui.sh:2389
msgid "New Commit"
msgstr "新建æ交"
-#: git-gui.sh:1973 git-gui.sh:2357
+#: git-gui.sh:2010 git-gui.sh:2396
msgid "Amend Last Commit"
msgstr "修正上次æ交"
-#: git-gui.sh:1982 git-gui.sh:2317 lib/remote_branch_delete.tcl:99
+#: git-gui.sh:2019 git-gui.sh:2356 lib/remote_branch_delete.tcl:99
msgid "Rescan"
msgstr "é‡æ–°æ‰«æ"
-#: git-gui.sh:1988
+#: git-gui.sh:2025
msgid "Stage To Commit"
msgstr "缓存为æ交"
-#: git-gui.sh:1994
+#: git-gui.sh:2031
msgid "Stage Changed Files To Commit"
msgstr "缓存修改的文件为æ交"
-#: git-gui.sh:2000
+#: git-gui.sh:2037
msgid "Unstage From Commit"
msgstr "从本次æ交撤除"
-#: git-gui.sh:2005 lib/index.tcl:393
+#: git-gui.sh:2042 lib/index.tcl:395
msgid "Revert Changes"
msgstr "撤销修改"
-#: git-gui.sh:2012 git-gui.sh:2329 git-gui.sh:2427
+#: git-gui.sh:2049 git-gui.sh:2368 git-gui.sh:2467
msgid "Sign Off"
msgstr "ç­¾å(Sign Off)"
-#: git-gui.sh:2016 git-gui.sh:2333
+#: git-gui.sh:2053 git-gui.sh:2372
msgid "Commit@@verb"
msgstr "æ交"
-#: git-gui.sh:2027
+#: git-gui.sh:2064
msgid "Local Merge..."
msgstr "本地åˆå¹¶..."
-#: git-gui.sh:2032
+#: git-gui.sh:2069
msgid "Abort Merge..."
msgstr "中止åˆå¹¶..."
-#: git-gui.sh:2044
+#: git-gui.sh:2081
msgid "Push..."
msgstr "上传..."
-#: git-gui.sh:2055 lib/choose_repository.tcl:40
+#: git-gui.sh:2092 lib/choose_repository.tcl:41
msgid "Apple"
msgstr "苹果"
-#: git-gui.sh:2058 git-gui.sh:2080 lib/about.tcl:13
-#: lib/choose_repository.tcl:43 lib/choose_repository.tcl:49
+#: git-gui.sh:2095 git-gui.sh:2117 lib/about.tcl:14
+#: lib/choose_repository.tcl:44 lib/choose_repository.tcl:50
#, tcl-format
msgid "About %s"
msgstr "关于 %s"
-#: git-gui.sh:2062
+#: git-gui.sh:2099
msgid "Preferences..."
msgstr "首选项..."
-#: git-gui.sh:2070 git-gui.sh:2595
+#: git-gui.sh:2107 git-gui.sh:2639
msgid "Options..."
msgstr "选项..."
-#: git-gui.sh:2076 lib/choose_repository.tcl:46
+#: git-gui.sh:2113 lib/choose_repository.tcl:47
msgid "Help"
msgstr "帮助"
-#: git-gui.sh:2117
+#: git-gui.sh:2154
msgid "Online Documentation"
msgstr "在线文档"
-#: git-gui.sh:2201
+#: git-gui.sh:2238
#, tcl-format
msgid "fatal: cannot stat path %s: No such file or directory"
msgstr "致命错误: 无法获å–路径 %s çš„ä¿¡æ¯: 该文件或目录ä¸å­˜åœ¨"
-#: git-gui.sh:2234
+#: git-gui.sh:2271
msgid "Current Branch:"
msgstr "当å‰åˆ†æ”¯:"
-#: git-gui.sh:2255
+#: git-gui.sh:2292
msgid "Staged Changes (Will Commit)"
msgstr "已缓存的改动 (将被æ交)"
-#: git-gui.sh:2274
+#: git-gui.sh:2312
msgid "Unstaged Changes"
msgstr "未缓存的改动"
-#: git-gui.sh:2323
+#: git-gui.sh:2362
msgid "Stage Changed"
msgstr "缓存改动"
-#: git-gui.sh:2339 lib/transport.tcl:93 lib/transport.tcl:182
+#: git-gui.sh:2378 lib/transport.tcl:93 lib/transport.tcl:182
msgid "Push"
msgstr "上传"
-#: git-gui.sh:2369
+#: git-gui.sh:2408
msgid "Initial Commit Message:"
msgstr "åˆå§‹çš„æ交æè¿°:"
-#: git-gui.sh:2370
+#: git-gui.sh:2409
msgid "Amended Commit Message:"
msgstr "修正的æ交æè¿°:"
-#: git-gui.sh:2371
+#: git-gui.sh:2410
msgid "Amended Initial Commit Message:"
msgstr "修正的åˆå§‹æ交æè¿°:"
-#: git-gui.sh:2372
+#: git-gui.sh:2411
msgid "Amended Merge Commit Message:"
msgstr "修正的åˆå¹¶æ交æè¿°:"
-#: git-gui.sh:2373
+#: git-gui.sh:2412
msgid "Merge Commit Message:"
msgstr "åˆå¹¶æ交æè¿°:"
-#: git-gui.sh:2374
+#: git-gui.sh:2413
msgid "Commit Message:"
msgstr "æ交æè¿°:"
-#: git-gui.sh:2419 git-gui.sh:2557 lib/console.tcl:71
+#: git-gui.sh:2459 git-gui.sh:2622 lib/console.tcl:73
msgid "Copy All"
msgstr "全部å¤åˆ¶"
-#: git-gui.sh:2443 lib/blame.tcl:104
+#: git-gui.sh:2483 lib/blame.tcl:107
msgid "File:"
msgstr "文件:"
-#: git-gui.sh:2545
-msgid "Refresh"
-msgstr "刷新"
-
-#: git-gui.sh:2566
+#: git-gui.sh:2589
msgid "Apply/Reverse Hunk"
msgstr "应用/撤消此修改å—"
-#: git-gui.sh:2572
-msgid "Decrease Font Size"
-msgstr "缩å°å­—体"
-
-#: git-gui.sh:2576
-msgid "Increase Font Size"
-msgstr "放大字体"
-
-#: git-gui.sh:2581
+#: git-gui.sh:2595
msgid "Show Less Context"
msgstr "显示更少上下文"
-#: git-gui.sh:2588
+#: git-gui.sh:2602
msgid "Show More Context"
msgstr "显示更多上下文"
-#: git-gui.sh:2602
+#: git-gui.sh:2610
+msgid "Refresh"
+msgstr "刷新"
+
+#: git-gui.sh:2631
+msgid "Decrease Font Size"
+msgstr "缩å°å­—体"
+
+#: git-gui.sh:2635
+msgid "Increase Font Size"
+msgstr "放大字体"
+
+#: git-gui.sh:2646
msgid "Unstage Hunk From Commit"
msgstr "从æ交中撤除修改å—"
-#: git-gui.sh:2604
+#: git-gui.sh:2648
msgid "Stage Hunk For Commit"
msgstr "缓存修改å—为æ交"
-#: git-gui.sh:2623
+#: git-gui.sh:2667
msgid "Initializing..."
msgstr "åˆå§‹åŒ–..."
-#: git-gui.sh:2718
+#: git-gui.sh:2762
#, tcl-format
msgid ""
"Possible environment issues exist.\n"
@@ -464,7 +464,7 @@ msgstr ""
"ç”± %s 执行的 Git å­è¿›ç¨‹å¯èƒ½å¿½ç•¥ä¸‹åˆ—环境å˜é‡:\n"
"\n"
-#: git-gui.sh:2748
+#: git-gui.sh:2792
msgid ""
"\n"
"This is due to a known issue with the\n"
@@ -474,7 +474,7 @@ msgstr ""
"这是由 Cygwin å‘布的 Tcl 代ç ä¸­ä¸€ä¸ª\n"
"已知问题所引起."
-#: git-gui.sh:2753
+#: git-gui.sh:2797
#, tcl-format
msgid ""
"\n"
@@ -489,7 +489,7 @@ msgstr ""
"%s 的一个很好的替代方案是将 user.name 以åŠ\n"
"user.email 设置放在你的个人 ~/.gitconfig 文件中.\n"
-#: lib/about.tcl:25
+#: lib/about.tcl:26
msgid "git-gui - a graphical user interface for Git."
msgstr "git-gui - Git 的图形化用户界é¢"
@@ -501,56 +501,56 @@ msgstr "文件查看器"
msgid "Commit:"
msgstr "æ交:"
-#: lib/blame.tcl:249
+#: lib/blame.tcl:264
msgid "Copy Commit"
msgstr "å¤åˆ¶æ交"
-#: lib/blame.tcl:369
+#: lib/blame.tcl:384
#, tcl-format
msgid "Reading %s..."
msgstr "è¯»å– %s..."
-#: lib/blame.tcl:473
+#: lib/blame.tcl:488
msgid "Loading copy/move tracking annotations..."
msgstr "装载å¤åˆ¶/移动跟踪标注..."
-#: lib/blame.tcl:493
+#: lib/blame.tcl:508
msgid "lines annotated"
msgstr "标注行"
-#: lib/blame.tcl:674
+#: lib/blame.tcl:689
msgid "Loading original location annotations..."
msgstr "装载原始ä½ç½®æ ‡æ³¨..."
-#: lib/blame.tcl:677
+#: lib/blame.tcl:692
msgid "Annotation complete."
msgstr "标注完æˆ."
-#: lib/blame.tcl:731
+#: lib/blame.tcl:746
msgid "Loading annotation..."
msgstr "è£è¼‰æ ‡æ³¨..."
-#: lib/blame.tcl:787
+#: lib/blame.tcl:802
msgid "Author:"
msgstr "作者:"
-#: lib/blame.tcl:791
+#: lib/blame.tcl:806
msgid "Committer:"
msgstr "æ交者:"
-#: lib/blame.tcl:796
+#: lib/blame.tcl:811
msgid "Original File:"
msgstr "原始文件:"
-#: lib/blame.tcl:910
+#: lib/blame.tcl:925
msgid "Originally By:"
msgstr "最åˆç”±:"
-#: lib/blame.tcl:916
+#: lib/blame.tcl:931
msgid "In File:"
msgstr "在文件:"
-#: lib/blame.tcl:921
+#: lib/blame.tcl:936
msgid "Copied Or Moved Here By:"
msgstr "ç”±å¤åˆ¶æˆ–移动至此:"
@@ -563,17 +563,17 @@ msgid "Checkout"
msgstr "Checkout"
#: lib/branch_checkout.tcl:27 lib/branch_create.tcl:35
-#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:281
-#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:172
-#: lib/option.tcl:90 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
+#: lib/branch_delete.tcl:32 lib/branch_rename.tcl:30 lib/browser.tcl:282
+#: lib/checkout_op.tcl:522 lib/choose_font.tcl:43 lib/merge.tcl:171
+#: lib/option.tcl:103 lib/remote_branch_delete.tcl:42 lib/transport.tcl:97
msgid "Cancel"
msgstr "å–消"
-#: lib/branch_checkout.tcl:32 lib/browser.tcl:286
+#: lib/branch_checkout.tcl:32 lib/browser.tcl:287
msgid "Revision"
msgstr "版本"
-#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:202
+#: lib/branch_checkout.tcl:36 lib/branch_create.tcl:69 lib/option.tcl:242
msgid "Options"
msgstr "选项..."
@@ -593,7 +593,7 @@ msgstr "创建分支"
msgid "Create New Branch"
msgstr "新建分支"
-#: lib/branch_create.tcl:31 lib/choose_repository.tcl:375
+#: lib/branch_create.tcl:31 lib/choose_repository.tcl:371
msgid "Create"
msgstr "新建"
@@ -733,22 +733,22 @@ msgstr "开始..."
msgid "File Browser"
msgstr "文件æµè§ˆå™¨"
-#: lib/browser.tcl:125 lib/browser.tcl:142
+#: lib/browser.tcl:126 lib/browser.tcl:143
#, tcl-format
msgid "Loading %s..."
msgstr "装载 %s..."
-#: lib/browser.tcl:186
+#: lib/browser.tcl:187
msgid "[Up To Parent]"
msgstr "[上层目录]"
-#: lib/browser.tcl:266 lib/browser.tcl:272
+#: lib/browser.tcl:267 lib/browser.tcl:273
msgid "Browse Branch Files"
msgstr "æµè§ˆåˆ†æ”¯æ–‡ä»¶"
-#: lib/browser.tcl:277 lib/choose_repository.tcl:391
-#: lib/choose_repository.tcl:482 lib/choose_repository.tcl:492
-#: lib/choose_repository.tcl:989
+#: lib/browser.tcl:278 lib/choose_repository.tcl:387
+#: lib/choose_repository.tcl:474 lib/choose_repository.tcl:484
+#: lib/choose_repository.tcl:987
msgid "Browse"
msgstr "æµè§ˆ"
@@ -762,7 +762,7 @@ msgstr "èŽ·å– %s 自 %s"
msgid "fatal: Cannot resolve %s"
msgstr "致命错误: 无法解决 %s"
-#: lib/checkout_op.tcl:140 lib/console.tcl:79 lib/database.tcl:31
+#: lib/checkout_op.tcl:140 lib/console.tcl:81 lib/database.tcl:31
msgid "Close"
msgstr "关闭"
@@ -819,6 +819,10 @@ msgstr ""
msgid "Updating working directory to '%s'..."
msgstr "更新工作目录到 '%s'..."
+#: lib/checkout_op.tcl:323
+msgid "files checked out"
+msgstr ""
+
#: lib/checkout_op.tcl:353
#, tcl-format
msgid "Aborted checkout of '%s' (file level merging is required)."
@@ -844,7 +848,7 @@ msgstr ""
"\n"
"如果你想ä½äºŽæŸåˆ†æ”¯ä¸Š, 从当å‰è„±èŠ‚çš„Checkout中创建一个新分支."
-#: lib/checkout_op.tcl:446
+#: lib/checkout_op.tcl:446 lib/checkout_op.tcl:450
#, tcl-format
msgid "Checked out '%s'."
msgstr "'%s' 已被 checkout"
@@ -863,7 +867,7 @@ msgstr "æ¢å¤ä¸¢å¤±çš„æ交是比较困难的."
msgid "Reset '%s'?"
msgstr "å¤ä½ '%s'?"
-#: lib/checkout_op.tcl:510 lib/merge.tcl:164
+#: lib/checkout_op.tcl:510 lib/merge.tcl:163
msgid "Visualize"
msgstr "图示"
@@ -892,15 +896,15 @@ msgstr "选择"
msgid "Font Family"
msgstr "字体æ—"
-#: lib/choose_font.tcl:73
+#: lib/choose_font.tcl:74
msgid "Font Size"
msgstr "字体大å°"
-#: lib/choose_font.tcl:90
+#: lib/choose_font.tcl:91
msgid "Font Example"
msgstr "字体样例"
-#: lib/choose_font.tcl:101
+#: lib/choose_font.tcl:103
msgid ""
"This is example text.\n"
"If you like this text, it can be your font."
@@ -908,226 +912,226 @@ msgstr ""
"这是样例文本.\n"
"如果你喜欢, ä½ å¯ä»¥è®¾ç½®è¯¥å­—体."
-#: lib/choose_repository.tcl:27
+#: lib/choose_repository.tcl:28
msgid "Git Gui"
msgstr "Git Gui"
-#: lib/choose_repository.tcl:80 lib/choose_repository.tcl:380
+#: lib/choose_repository.tcl:81 lib/choose_repository.tcl:376
msgid "Create New Repository"
msgstr "创建新的版本库"
-#: lib/choose_repository.tcl:86
+#: lib/choose_repository.tcl:87
msgid "New..."
msgstr "新建..."
-#: lib/choose_repository.tcl:93 lib/choose_repository.tcl:468
+#: lib/choose_repository.tcl:94 lib/choose_repository.tcl:460
msgid "Clone Existing Repository"
msgstr "克隆已有版本库"
-#: lib/choose_repository.tcl:99
+#: lib/choose_repository.tcl:100
msgid "Clone..."
msgstr "克隆..."
-#: lib/choose_repository.tcl:106 lib/choose_repository.tcl:978
+#: lib/choose_repository.tcl:107 lib/choose_repository.tcl:976
msgid "Open Existing Repository"
msgstr "打开已有版本库"
-#: lib/choose_repository.tcl:112
+#: lib/choose_repository.tcl:113
msgid "Open..."
msgstr "打开..."
-#: lib/choose_repository.tcl:125
+#: lib/choose_repository.tcl:126
msgid "Recent Repositories"
msgstr "最近版本库"
-#: lib/choose_repository.tcl:131
+#: lib/choose_repository.tcl:132
msgid "Open Recent Repository:"
msgstr "打开最近版本库"
-#: lib/choose_repository.tcl:294
-#, tcl-format
-msgid "Location %s already exists."
-msgstr "ä½ç½® %s å·²ç»å­˜åœ¨."
-
-#: lib/choose_repository.tcl:300 lib/choose_repository.tcl:307
-#: lib/choose_repository.tcl:314
+#: lib/choose_repository.tcl:296 lib/choose_repository.tcl:303
+#: lib/choose_repository.tcl:310
#, tcl-format
msgid "Failed to create repository %s:"
msgstr "无法创建版本库 %s:"
-#: lib/choose_repository.tcl:385 lib/choose_repository.tcl:486
+#: lib/choose_repository.tcl:381 lib/choose_repository.tcl:478
msgid "Directory:"
msgstr "目录:"
-#: lib/choose_repository.tcl:415 lib/choose_repository.tcl:544
-#: lib/choose_repository.tcl:1013
+#: lib/choose_repository.tcl:412 lib/choose_repository.tcl:537
+#: lib/choose_repository.tcl:1011
msgid "Git Repository"
msgstr "Git 版本库"
-#: lib/choose_repository.tcl:430 lib/choose_repository.tcl:437
+#: lib/choose_repository.tcl:437
#, tcl-format
msgid "Directory %s already exists."
msgstr "目录 %s å·²ç»å­˜åœ¨."
-#: lib/choose_repository.tcl:442
+#: lib/choose_repository.tcl:441
#, tcl-format
msgid "File %s already exists."
msgstr "文件 %s å·²ç»å­˜åœ¨."
-#: lib/choose_repository.tcl:463
+#: lib/choose_repository.tcl:455
msgid "Clone"
msgstr "克隆"
-#: lib/choose_repository.tcl:476
+#: lib/choose_repository.tcl:468
msgid "URL:"
msgstr "URL:"
-#: lib/choose_repository.tcl:496
+#: lib/choose_repository.tcl:489
msgid "Clone Type:"
msgstr "克隆类型:"
-#: lib/choose_repository.tcl:502
+#: lib/choose_repository.tcl:495
msgid "Standard (Fast, Semi-Redundant, Hardlinks)"
msgstr "æ ‡å‡†æ–¹å¼ (快速, 部分备份, 作硬连接)"
-#: lib/choose_repository.tcl:508
+#: lib/choose_repository.tcl:501
msgid "Full Copy (Slower, Redundant Backup)"
msgstr "全部å¤åˆ¶ (较慢, åšå¤‡ä»½)"
-#: lib/choose_repository.tcl:514
+#: lib/choose_repository.tcl:507
msgid "Shared (Fastest, Not Recommended, No Backup)"
msgstr "å…±äº«æ–¹å¼ (最快, ä¸æŽ¨è, ä¸åšå¤‡ä»½)"
-#: 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
+#: lib/choose_repository.tcl:543 lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:736 lib/choose_repository.tcl:806
+#: lib/choose_repository.tcl:1017 lib/choose_repository.tcl:1025
#, tcl-format
msgid "Not a Git repository: %s"
msgstr "ä¸æ˜¯ä¸€ä¸ª Git 版本库: %s"
-#: lib/choose_repository.tcl:586
+#: lib/choose_repository.tcl:579
msgid "Standard only available for local repository."
msgstr "标准方å¼ä»…当是本地版本库时有效."
-#: lib/choose_repository.tcl:590
+#: lib/choose_repository.tcl:583
msgid "Shared only available for local repository."
msgstr "共享方å¼ä»…当是本地版本库时有效."
-#: lib/choose_repository.tcl:617
+#: lib/choose_repository.tcl:604
+#, tcl-format
+msgid "Location %s already exists."
+msgstr "ä½ç½® %s å·²ç»å­˜åœ¨."
+
+#: lib/choose_repository.tcl:615
msgid "Failed to configure origin"
msgstr "无法é…ç½® origin"
-#: lib/choose_repository.tcl:629
+#: lib/choose_repository.tcl:627
msgid "Counting objects"
msgstr "清点对象"
-#: lib/choose_repository.tcl:630
+#: lib/choose_repository.tcl:628
#, fuzzy
msgid "buckets"
msgstr "水桶??"
-#: lib/choose_repository.tcl:654
+#: lib/choose_repository.tcl:652
#, tcl-format
msgid "Unable to copy objects/info/alternates: %s"
msgstr "无法å¤åˆ¶ objects/info/alternates: %s"
-#: lib/choose_repository.tcl:690
+#: lib/choose_repository.tcl:688
#, tcl-format
msgid "Nothing to clone from %s."
msgstr "没有东西å¯ä»Ž %s 克隆."
-#: lib/choose_repository.tcl:692 lib/choose_repository.tcl:906
-#: lib/choose_repository.tcl:918
+#: lib/choose_repository.tcl:690 lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:916
msgid "The 'master' branch has not been initialized."
msgstr "'master'分支尚未åˆå§‹åŒ–."
-#: lib/choose_repository.tcl:705
+#: lib/choose_repository.tcl:703
msgid "Hardlinks are unavailable. Falling back to copying."
msgstr "硬连接ä¸å¯ç”¨. 使用å¤åˆ¶."
-#: lib/choose_repository.tcl:717
+#: lib/choose_repository.tcl:715
#, tcl-format
msgid "Cloning from %s"
msgstr "从 %s 克隆"
-#: lib/choose_repository.tcl:748
+#: lib/choose_repository.tcl:746
msgid "Copying objects"
msgstr "å¤åˆ¶ objects"
-#: lib/choose_repository.tcl:749
+#: lib/choose_repository.tcl:747
msgid "KiB"
msgstr "KiB"
-#: lib/choose_repository.tcl:773
+#: lib/choose_repository.tcl:771
#, tcl-format
msgid "Unable to copy object: %s"
msgstr "无法å¤åˆ¶ object: %s"
-#: lib/choose_repository.tcl:783
+#: lib/choose_repository.tcl:781
msgid "Linking objects"
msgstr "链接 objects"
-#: lib/choose_repository.tcl:784
+#: lib/choose_repository.tcl:782
msgid "objects"
msgstr "objects"
-#: lib/choose_repository.tcl:792
+#: lib/choose_repository.tcl:790
#, tcl-format
msgid "Unable to hardlink object: %s"
msgstr "无法硬链接 object: %s"
-#: lib/choose_repository.tcl:847
+#: lib/choose_repository.tcl:845
msgid "Cannot fetch branches and objects. See console output for details."
msgstr "无法获å–分支和对象. 请查看控制终端的输出."
-#: lib/choose_repository.tcl:858
+#: lib/choose_repository.tcl:856
msgid "Cannot fetch tags. See console output for details."
msgstr "无法获å–标签. 请查看控制终端的输出."
-#: lib/choose_repository.tcl:882
+#: lib/choose_repository.tcl:880
msgid "Cannot determine HEAD. See console output for details."
msgstr "无法确定 HEAD. 请查看控制终端的输出."
-#: lib/choose_repository.tcl:891
+#: lib/choose_repository.tcl:889
#, tcl-format
msgid "Unable to cleanup %s"
msgstr "æ— æ³•æ¸…ç† %s"
-#: lib/choose_repository.tcl:897
+#: lib/choose_repository.tcl:895
msgid "Clone failed."
msgstr "克隆失败."
-#: lib/choose_repository.tcl:904
+#: lib/choose_repository.tcl:902
msgid "No default branch obtained."
msgstr "没有获å–缺çœåˆ†æ”¯"
-#: lib/choose_repository.tcl:915
+#: lib/choose_repository.tcl:913
#, tcl-format
msgid "Cannot resolve %s as a commit."
msgstr "æ— æ³•è§£æž %s 为æ交."
-#: lib/choose_repository.tcl:927
+#: lib/choose_repository.tcl:925
msgid "Creating working directory"
msgstr "创建工作目录"
-#: lib/choose_repository.tcl:928 lib/index.tcl:65 lib/index.tcl:127
+#: lib/choose_repository.tcl:926 lib/index.tcl:65 lib/index.tcl:127
#: lib/index.tcl:193
msgid "files"
msgstr "文件"
-#: lib/choose_repository.tcl:957
+#: lib/choose_repository.tcl:955
msgid "Initial file checkout failed."
msgstr "åˆå§‹çš„文件checkout失败"
-#: lib/choose_repository.tcl:973
+#: lib/choose_repository.tcl:971
msgid "Open"
msgstr "打开"
-#: lib/choose_repository.tcl:983
+#: lib/choose_repository.tcl:981
msgid "Repository:"
msgstr "版本库"
-#: lib/choose_repository.tcl:1033
+#: lib/choose_repository.tcl:1031
#, tcl-format
msgid "Failed to open repository %s:"
msgstr "无法打开版本库 %s:"
@@ -1148,7 +1152,7 @@ msgstr "本地分支"
msgid "Tracking Branch"
msgstr "跟踪分支:"
-#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:537
+#: lib/choose_rev.tcl:84 lib/choose_rev.tcl:538
msgid "Tag"
msgstr "标签"
@@ -1165,11 +1169,11 @@ msgstr "没有选择版本."
msgid "Revision expression is empty."
msgstr "版本表达å¼ä¸ºç©º."
-#: lib/choose_rev.tcl:530
+#: lib/choose_rev.tcl:531
msgid "Updated"
msgstr "已更新"
-#: lib/choose_rev.tcl:558
+#: lib/choose_rev.tcl:559
msgid "URL"
msgstr "URL"
@@ -1276,16 +1280,46 @@ msgstr ""
"- 第二行: 空行\n"
"- 剩余行: 请æ述为什么你åšçš„这些改动是好的.\n"
-#: lib/commit.tcl:257
+#: lib/commit.tcl:207
+#, tcl-format
+msgid "warning: Tcl does not support encoding '%s'."
+msgstr "警告: Tcl ä¸æ”¯æŒç¼–ç æ–¹å¼ '%s'."
+
+#: lib/commit.tcl:221
+msgid "Calling pre-commit hook..."
+msgstr ""
+
+#: lib/commit.tcl:236
+msgid "Commit declined by pre-commit hook."
+msgstr ""
+
+#: lib/commit.tcl:259
+msgid "Calling commit-msg hook..."
+msgstr ""
+
+#: lib/commit.tcl:274
+msgid "Commit declined by commit-msg hook."
+msgstr ""
+
+#: lib/commit.tcl:287
+msgid "Committing changes..."
+msgstr ""
+
+#: lib/commit.tcl:303
msgid "write-tree failed:"
msgstr "write-tree 失败:"
-#: lib/commit.tcl:275
+#: lib/commit.tcl:304 lib/commit.tcl:348 lib/commit.tcl:368
+#, fuzzy
+msgid "Commit failed."
+msgstr "克隆失败."
+
+#: lib/commit.tcl:321
#, tcl-format
msgid "Commit %s appears to be corrupt"
msgstr "æ交 %s 似乎已æŸå"
-#: lib/commit.tcl:279
+#: lib/commit.tcl:326
msgid ""
"No changes to commit.\n"
"\n"
@@ -1299,37 +1333,32 @@ msgstr ""
"\n"
"é‡æ–°æ‰«æ将自动开始.\n"
-#: lib/commit.tcl:286
+#: lib/commit.tcl:333
msgid "No changes to commit."
msgstr "没有改动è¦æ交."
-#: lib/commit.tcl:303
-#, tcl-format
-msgid "warning: Tcl does not support encoding '%s'."
-msgstr "警告: Tcl ä¸æ”¯æŒç¼–ç æ–¹å¼ '%s'."
-
-#: lib/commit.tcl:317
+#: lib/commit.tcl:347
msgid "commit-tree failed:"
msgstr "commit-tree 失败:"
-#: lib/commit.tcl:339
+#: lib/commit.tcl:367
msgid "update-ref failed:"
msgstr "update-ref 失败:"
-#: lib/commit.tcl:430
+#: lib/commit.tcl:454
#, tcl-format
msgid "Created commit %s: %s"
msgstr "创建了 commit %s: %s"
-#: lib/console.tcl:57
+#: lib/console.tcl:59
msgid "Working... please wait..."
msgstr "工作中... 请等待..."
-#: lib/console.tcl:183
+#: lib/console.tcl:186
msgid "Success"
msgstr "æˆåŠŸ"
-#: lib/console.tcl:196
+#: lib/console.tcl:200
msgid "Error: Command Failed"
msgstr "错误: 命令失败"
@@ -1435,23 +1464,23 @@ msgstr "* 二进制文件 (ä¸æ˜¾ç¤ºå†…容)."
msgid "Error loading diff:"
msgstr "装载 diff 错误:"
-#: lib/diff.tcl:302
+#: lib/diff.tcl:303
msgid "Failed to unstage selected hunk."
msgstr "无法将选择的代ç æ®µä»Žç¼“存中删除."
-#: lib/diff.tcl:309
+#: lib/diff.tcl:310
msgid "Failed to stage selected hunk."
msgstr "无法缓存所选代ç æ®µ."
-#: lib/error.tcl:12 lib/error.tcl:102
+#: lib/error.tcl:20 lib/error.tcl:114
msgid "error"
msgstr "错误"
-#: lib/error.tcl:28
+#: lib/error.tcl:36
msgid "warning"
msgstr "警告"
-#: lib/error.tcl:81
+#: lib/error.tcl:94
msgid "You must correct the above errors before committing."
msgstr "你必须在æ交å‰ä¿®æ­£ä¸Šè¿°é”™è¯¯."
@@ -1482,6 +1511,11 @@ msgstr "è§£é” Index"
msgid "Unstaging %s from commit"
msgstr "从æ交缓存中删除 %s"
+#: lib/index.tcl:313
+#, fuzzy
+msgid "Ready to commit."
+msgstr "缓存为æ交"
+
#: lib/index.tcl:326
#, tcl-format
msgid "Adding %s"
@@ -1497,11 +1531,11 @@ msgstr "撤销文件 %s 中的改动?"
msgid "Revert changes in these %i files?"
msgstr "撤销这些 (%i个) 文件的改动?"
-#: lib/index.tcl:389
+#: lib/index.tcl:391
msgid "Any unstaged changes will be permanently lost by the revert."
msgstr "任何未缓存的改动将在这次撤销中永久丢失."
-#: lib/index.tcl:392
+#: lib/index.tcl:394
msgid "Do Nothing"
msgstr "ä¸åšæ“作"
@@ -1562,8 +1596,8 @@ msgstr ""
"\n"
"文件 %s 已被修改.\n"
"\n"
-"你必须完æˆå½“å‰çš„æ交åŽæ‰èƒ½å¼€å§‹åˆå¹¶. 如果需è¦, 这么åšå°†æœ‰åŠ©äºŽ"
-"中止一次失败的åˆå¹¶.\n"
+"你必须完æˆå½“å‰çš„æ交åŽæ‰èƒ½å¼€å§‹åˆå¹¶. 如果需è¦, 这么åšå°†æœ‰åŠ©äºŽä¸­æ­¢ä¸€æ¬¡å¤±è´¥çš„åˆ"
+"并.\n"
#: lib/merge.tcl:106
#, tcl-format
@@ -1571,28 +1605,28 @@ msgid "%s of %s"
msgstr ""
#: lib/merge.tcl:119
-#, tcl-format
-msgid "Merging %s and %s"
+#, fuzzy, tcl-format
+msgid "Merging %s and %s..."
msgstr "åˆå¹¶ %s å’Œ %s"
-#: lib/merge.tcl:131
+#: lib/merge.tcl:130
msgid "Merge completed successfully."
msgstr "åˆå¹¶æˆåŠŸå®Œæˆ."
-#: lib/merge.tcl:133
+#: lib/merge.tcl:132
msgid "Merge failed. Conflict resolution is required."
msgstr "åˆå¹¶å¤±è´¥. 需è¦è§£å†³å†²çª."
-#: lib/merge.tcl:158
+#: lib/merge.tcl:157
#, tcl-format
msgid "Merge Into %s"
msgstr "åˆå¹¶åˆ° %s"
-#: lib/merge.tcl:177
+#: lib/merge.tcl:176
msgid "Revision To Merge"
msgstr "è¦åˆå¹¶çš„版本"
-#: lib/merge.tcl:212
+#: lib/merge.tcl:211
msgid ""
"Cannot abort while amending.\n"
"\n"
@@ -1602,7 +1636,7 @@ msgstr ""
"\n"
"你必须先完æˆæœ¬æ¬¡ä¿®æ­£æ“作.\n"
-#: lib/merge.tcl:222
+#: lib/merge.tcl:221
msgid ""
"Abort merge?\n"
"\n"
@@ -1616,7 +1650,7 @@ msgstr ""
"\n"
"是å¦è¦ç»§ç»­ä¸­æ­¢å½“å‰çš„åˆå¹¶æ“作?"
-#: lib/merge.tcl:228
+#: lib/merge.tcl:227
msgid ""
"Reset changes?\n"
"\n"
@@ -1630,93 +1664,107 @@ msgstr ""
"\n"
"是å¦è¦ç»§ç»­å¤ä½å½“å‰çš„改动?"
-#: lib/merge.tcl:239
+#: lib/merge.tcl:238
msgid "Aborting"
msgstr "中止"
-#: lib/merge.tcl:266
+#: lib/merge.tcl:238
+#, fuzzy
+msgid "files reset"
+msgstr "文件"
+
+#: lib/merge.tcl:265
msgid "Abort failed."
msgstr "中止失败"
-#: lib/merge.tcl:268
+#: lib/merge.tcl:267
msgid "Abort completed. Ready."
msgstr "中止完æˆ. 就绪."
-#: lib/option.tcl:82
+#: lib/option.tcl:95
msgid "Restore Defaults"
msgstr "æ¢å¤é»˜è®¤å€¼"
-#: lib/option.tcl:86
+#: lib/option.tcl:99
msgid "Save"
msgstr "ä¿å­˜"
-#: lib/option.tcl:96
+#: lib/option.tcl:109
#, tcl-format
msgid "%s Repository"
msgstr "%s 版本库"
-#: lib/option.tcl:97
+#: lib/option.tcl:110
msgid "Global (All Repositories)"
msgstr "全局 (所有版本库)"
-#: lib/option.tcl:103
+#: lib/option.tcl:116
msgid "User Name"
msgstr "用户å"
-#: lib/option.tcl:104
+#: lib/option.tcl:117
msgid "Email Address"
msgstr "Email 地å€"
-#: lib/option.tcl:106
+#: lib/option.tcl:119
msgid "Summarize Merge Commits"
msgstr "概述åˆå¹¶æ交:"
-#: lib/option.tcl:107
+#: lib/option.tcl:120
msgid "Merge Verbosity"
msgstr "åˆå¹¶å†—余度"
-#: lib/option.tcl:108
+#: lib/option.tcl:121
msgid "Show Diffstat After Merge"
msgstr "在åˆå¹¶åŽæ˜¾ç¤º Diffstat"
-#: lib/option.tcl:110
+#: lib/option.tcl:123
msgid "Trust File Modification Timestamps"
msgstr "相信文件的改动时间"
-#: lib/option.tcl:111
+#: lib/option.tcl:124
msgid "Prune Tracking Branches During Fetch"
msgstr "获å–时清除跟踪分支"
-#: lib/option.tcl:112
+#: lib/option.tcl:125
msgid "Match Tracking Branches"
msgstr "匹é…跟踪分支"
-#: lib/option.tcl:113
+#: lib/option.tcl:126
msgid "Number of Diff Context Lines"
msgstr "Diff 上下文行数"
-#: lib/option.tcl:114
+#: lib/option.tcl:127
+#, fuzzy
+msgid "Commit Message Text Width"
+msgstr "æ交æè¿°:"
+
+#: lib/option.tcl:128
msgid "New Branch Name Template"
msgstr "新建分支命å模æ¿"
-#: lib/option.tcl:176
+#: lib/option.tcl:192
+msgid "Spelling Dictionary:"
+msgstr ""
+
+#: lib/option.tcl:216
msgid "Change Font"
msgstr "更改字体"
-#: lib/option.tcl:180
+#: lib/option.tcl:220
#, tcl-format
msgid "Choose %s"
msgstr "选择 %s"
-#: lib/option.tcl:186
+#: lib/option.tcl:226
msgid "pt."
msgstr "磅"
-#: lib/option.tcl:200
+#: lib/option.tcl:240
msgid "Preferences"
msgstr "首选项"
-#: lib/option.tcl:235
+#: lib/option.tcl:275
msgid "Failed to completely save options:"
msgstr "无法完全ä¿å­˜é€‰é¡¹:"
@@ -1823,6 +1871,43 @@ msgstr "无法修改快æ·æ–¹å¼:"
msgid "Cannot write icon:"
msgstr "无法修改图标:"
+#: lib/spellcheck.tcl:57
+msgid "Unsupported spell checker"
+msgstr ""
+
+#: lib/spellcheck.tcl:65
+msgid "Spell checking is unavailable"
+msgstr ""
+
+#: lib/spellcheck.tcl:68
+msgid "Invalid spell checking configuration"
+msgstr ""
+
+#: lib/spellcheck.tcl:70
+#, tcl-format
+msgid "Reverting dictionary to %s."
+msgstr ""
+
+#: lib/spellcheck.tcl:73
+msgid "Spell checker silently failed on startup"
+msgstr ""
+
+#: lib/spellcheck.tcl:80
+msgid "Unrecognized spell checker"
+msgstr ""
+
+#: lib/spellcheck.tcl:180
+msgid "No Suggestions"
+msgstr ""
+
+#: lib/spellcheck.tcl:381
+msgid "Unexpected EOF from spell checker"
+msgstr ""
+
+#: lib/spellcheck.tcl:385
+msgid "Spell Checker Failed"
+msgstr ""
+
#: lib/status_bar.tcl:83
#, tcl-format
msgid "%s ... %*i of %*i %s (%3i%%)"
diff --git a/git-merge-one-file.sh b/git-merge-one-file.sh
index 9ee3f80452..e1eb963266 100755
--- a/git-merge-one-file.sh
+++ b/git-merge-one-file.sh
@@ -48,10 +48,11 @@ case "${1:-.}${2:-.}${3:-.}" in
;;
"..$3")
echo "Adding $4"
- test -f "$4" || {
+ if test -f "$4"
+ then
echo "ERROR: untracked $4 is overwritten by the merge."
exit 1
- }
+ fi
git update-index --add --cacheinfo "$7" "$3" "$4" &&
exec git checkout-index -u -f -- "$4"
;;
diff --git a/git-quiltimport.sh b/git-quiltimport.sh
index 233e5eae1d..7cd8f7134e 100755
--- a/git-quiltimport.sh
+++ b/git-quiltimport.sh
@@ -63,7 +63,23 @@ tmp_info="$tmp_dir/info"
commit=$(git rev-parse HEAD)
mkdir $tmp_dir || exit 2
-for patch_name in $(grep -v '^#' < "$QUILT_PATCHES/series" ); do
+while read patch_name level garbage
+do
+ case "$patch_name" in ''|'#'*) continue;; esac
+ case "$level" in
+ -p*) ;;
+ ''|'#'*)
+ level=;;
+ *)
+ echo "unable to parse patch level, ignoring it."
+ level=;;
+ esac
+ case "$garbage" in
+ ''|'#'*);;
+ *)
+ echo "trailing garbage found in series file: $garbage"
+ exit 1;;
+ esac
if ! [ -f "$QUILT_PATCHES/$patch_name" ] ; then
echo "$patch_name doesn't exist. Skipping."
continue
@@ -113,10 +129,10 @@ for patch_name in $(grep -v '^#' < "$QUILT_PATCHES/series" ); do
fi
if [ -z "$dry_run" ] ; then
- git apply --index -C1 "$tmp_patch" &&
+ git apply --index -C1 ${level:+"$level"} "$tmp_patch" &&
tree=$(git write-tree) &&
commit=$( (echo "$SUBJECT"; echo; cat "$tmp_msg") | git commit-tree $tree -p $commit) &&
git update-ref -m "quiltimport: $patch_name" HEAD $commit || exit 4
fi
-done
+done <"$QUILT_PATCHES/series"
rm -rf $tmp_dir || exit 5
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index c2bedd622c..8aa73712ca 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -78,8 +78,8 @@ mark_action_done () {
sed -e 1q < "$TODO" >> "$DONE"
sed -e 1d < "$TODO" >> "$TODO".new
mv -f "$TODO".new "$TODO"
- count=$(($(grep -ve '^$' -e '^#' < "$DONE" | wc -l)))
- total=$(($count+$(grep -ve '^$' -e '^#' < "$TODO" | wc -l)))
+ count=$(grep -c '^[^#]' < "$DONE")
+ total=$(($count+$(grep -c '^[^#]' < "$TODO")))
if test "$last_count" != "$count"
then
last_count=$count
@@ -110,7 +110,7 @@ die_abort () {
}
has_action () {
- grep -vqe '^$' -e '^#' "$1"
+ grep '^[^#]' "$1" >/dev/null
}
pick_one () {
@@ -218,7 +218,7 @@ nth_string () {
make_squash_message () {
if test -f "$SQUASH_MSG"; then
COUNT=$(($(sed -n "s/^# This is [^0-9]*\([1-9][0-9]*\).*/\1/p" \
- < "$SQUASH_MSG" | tail -n 1)+1))
+ < "$SQUASH_MSG" | sed -ne '$p')+1))
echo "# This is a combination of $COUNT commits."
sed -e 1d -e '2,/^./{
/^$/d
diff --git a/git-rebase.sh b/git-rebase.sh
index ff66af3ba8..60c458f201 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -62,7 +62,7 @@ continue_merge () {
cmt=`cat "$dotest/current"`
if ! git diff-index --quiet HEAD --
then
- if ! git-commit -C "$cmt"
+ if ! git commit --no-verify -C "$cmt"
then
echo "Commit failed, please do not call \"git commit\""
echo "directly, but instead do one of the following: "
diff --git a/git-submodule.sh b/git-submodule.sh
index 7171cb60ab..56ec3536e0 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -4,7 +4,9 @@
#
# Copyright (c) 2007 Lars Hjemli
-USAGE='[--quiet] [--cached] [add <repo> [-b branch]|status|init|update] [--] [<path>...]'
+USAGE="[--quiet] [--cached] \
+[add <repo> [-b branch]|status|init|update|summary [-n|--summary-limit <n>] [<commit>]] \
+[--] [<path>...]"
OPTIONS_SPEC=
. git-sh-setup
require_work_tree
@@ -230,7 +232,7 @@ cmd_init()
shift
done
- git ls-files --stage -- "$@" | grep -e '^160000 ' |
+ git ls-files --stage -- "$@" | grep '^160000 ' |
while read mode sha1 stage path
do
# Skip already registered paths
@@ -284,7 +286,7 @@ cmd_update()
shift
done
- git ls-files --stage -- "$@" | grep -e '^160000 ' |
+ git ls-files --stage -- "$@" | grep '^160000 ' |
while read mode sha1 stage path
do
name=$(module_name "$path") || exit
@@ -330,7 +332,175 @@ set_name_rev () {
) )
test -z "$revname" || revname=" ($revname)"
}
+#
+# Show commit summary for submodules in index or working tree
+#
+# If '--cached' is given, show summary between index and given commit,
+# or between working tree and given commit
+#
+# $@ = [commit (default 'HEAD'),] requested paths (default all)
+#
+cmd_summary() {
+ summary_limit=-1
+
+ # parse $args after "submodule ... summary".
+ while test $# -ne 0
+ do
+ case "$1" in
+ --cached)
+ cached="$1"
+ ;;
+ -n|--summary-limit)
+ if summary_limit=$(($2 + 0)) 2>/dev/null && test "$summary_limit" = "$2"
+ then
+ :
+ else
+ usage
+ fi
+ shift
+ ;;
+ --)
+ shift
+ break
+ ;;
+ -*)
+ usage
+ ;;
+ *)
+ break
+ ;;
+ esac
+ shift
+ done
+
+ test $summary_limit = 0 && return
+
+ if rev=$(git rev-parse --verify "$1^0" 2>/dev/null)
+ then
+ head=$rev
+ shift
+ else
+ head=HEAD
+ fi
+
+ cd_to_toplevel
+ # Get modified modules cared by user
+ modules=$(git diff-index $cached --raw $head -- "$@" |
+ grep -e '^:160000' -e '^:[0-7]* 160000' |
+ while read mod_src mod_dst sha1_src sha1_dst status name
+ do
+ # Always show modules deleted or type-changed (blob<->module)
+ test $status = D -o $status = T && echo "$name" && continue
+ # Also show added or modified modules which are checked out
+ GIT_DIR="$name/.git" git-rev-parse --git-dir >/dev/null 2>&1 &&
+ echo "$name"
+ done
+ )
+
+ test -n "$modules" &&
+ git diff-index $cached --raw $head -- $modules |
+ grep -e '^:160000' -e '^:[0-7]* 160000' |
+ cut -c2- |
+ while read mod_src mod_dst sha1_src sha1_dst status name
+ do
+ if test -z "$cached" &&
+ test $sha1_dst = 0000000000000000000000000000000000000000
+ then
+ case "$mod_dst" in
+ 160000)
+ sha1_dst=$(GIT_DIR="$name/.git" git rev-parse HEAD)
+ ;;
+ 100644 | 100755 | 120000)
+ sha1_dst=$(git hash-object $name)
+ ;;
+ 000000)
+ ;; # removed
+ *)
+ # unexpected type
+ echo >&2 "unexpected mode $mod_dst"
+ continue ;;
+ esac
+ fi
+ missing_src=
+ missing_dst=
+
+ test $mod_src = 160000 &&
+ ! GIT_DIR="$name/.git" git-rev-parse --verify $sha1_src^0 >/dev/null 2>&1 &&
+ missing_src=t
+
+ test $mod_dst = 160000 &&
+ ! GIT_DIR="$name/.git" git-rev-parse --verify $sha1_dst^0 >/dev/null 2>&1 &&
+ missing_dst=t
+ total_commits=
+ case "$missing_src,$missing_dst" in
+ t,)
+ errmsg=" Warn: $name doesn't contain commit $sha1_src"
+ ;;
+ ,t)
+ errmsg=" Warn: $name doesn't contain commit $sha1_dst"
+ ;;
+ t,t)
+ errmsg=" Warn: $name doesn't contain commits $sha1_src and $sha1_dst"
+ ;;
+ *)
+ errmsg=
+ total_commits=$(
+ if test $mod_src = 160000 -a $mod_dst = 160000
+ then
+ range="$sha1_src...$sha1_dst"
+ elif test $mod_src = 160000
+ then
+ range=$sha1_src
+ else
+ range=$sha1_dst
+ fi
+ GIT_DIR="$name/.git" \
+ git log --pretty=oneline --first-parent $range | wc -l
+ )
+ total_commits=" ($(($total_commits + 0)))"
+ ;;
+ esac
+
+ sha1_abbr_src=$(echo $sha1_src | cut -c1-7)
+ sha1_abbr_dst=$(echo $sha1_dst | cut -c1-7)
+ if test $status = T
+ then
+ if test $mod_dst = 160000
+ then
+ echo "* $name $sha1_abbr_src(blob)->$sha1_abbr_dst(submodule)$total_commits:"
+ else
+ echo "* $name $sha1_abbr_src(submodule)->$sha1_abbr_dst(blob)$total_commits:"
+ fi
+ else
+ echo "* $name $sha1_abbr_src...$sha1_abbr_dst$total_commits:"
+ fi
+ if test -n "$errmsg"
+ then
+ # Don't give error msg for modification whose dst is not submodule
+ # i.e. deleted or changed to blob
+ test $mod_dst = 160000 && echo "$errmsg"
+ else
+ if test $mod_src = 160000 -a $mod_dst = 160000
+ then
+ limit=
+ test $summary_limit -gt 0 && limit="-$summary_limit"
+ GIT_DIR="$name/.git" \
+ git log $limit --pretty='format: %m %s' \
+ --first-parent $sha1_src...$sha1_dst
+ elif test $mod_dst = 160000
+ then
+ GIT_DIR="$name/.git" \
+ git log --pretty='format: > %s' -1 $sha1_dst
+ else
+ GIT_DIR="$name/.git" \
+ git log --pretty='format: < %s' -1 $sha1_src
+ fi
+ echo
+ fi
+ echo
+ done
+}
#
# List all submodules, prefixed with:
# - submodule not initialized
@@ -367,7 +537,7 @@ cmd_status()
shift
done
- git ls-files --stage -- "$@" | grep -e '^160000 ' |
+ git ls-files --stage -- "$@" | grep '^160000 ' |
while read mode sha1 stage path
do
name=$(module_name "$path") || exit
@@ -401,7 +571,7 @@ cmd_status()
while test $# != 0 && test -z "$command"
do
case "$1" in
- add | init | update | status)
+ add | init | update | status | summary)
command=$1
;;
-q|--quiet)
@@ -416,7 +586,7 @@ do
branch="$2"; shift
;;
--cached)
- cached=1
+ cached="$1"
;;
--)
break
@@ -440,8 +610,8 @@ then
usage
fi
-# "--cached" is accepted only by "status"
-if test -n "$cached" && test "$command" != status
+# "--cached" is accepted only by "status" and "summary"
+if test -n "$cached" && test "$command" != status -a "$command" != summary
then
usage
fi
diff --git a/git-svn.perl b/git-svn.perl
index d8b38c9a47..0c2b791eab 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -958,9 +958,10 @@ sub complete_url_ls_init {
"wanted to set to: $gs->{url}\n";
}
command_oneline('config', $k, $gs->{url}) unless $orig_url;
- my $remote_path = "$ra->{svn_path}/$repo_path/*";
+ my $remote_path = "$ra->{svn_path}/$repo_path";
$remote_path =~ s#/+#/#g;
$remote_path =~ s#^/##g;
+ $remote_path .= "/*" if $remote_path !~ /\*/;
my ($n) = ($switch =~ /^--(\w+)/);
if (length $pfx && $pfx !~ m#/$#) {
die "--prefix='$pfx' must have a trailing slash '/'\n";
@@ -3664,7 +3665,7 @@ sub escape_uri_only {
my ($uri) = @_;
my @tmp;
foreach (split m{/}, $uri) {
- s/([^\w.-])/sprintf("%%%02X",ord($1))/eg;
+ s/([^\w.%-]|%(?![a-fA-F0-9]{2}))/sprintf("%%%02X",ord($1))/eg;
push @tmp, $_;
}
join('/', @tmp);
diff --git a/git-web--browse.sh b/git-web--browse.sh
index 1023b90859..384148a59f 100755
--- a/git-web--browse.sh
+++ b/git-web--browse.sh
@@ -23,12 +23,18 @@ USAGE='[--browser=browser|--tool=browser] [--config=conf.var] url/file ...'
NONGIT_OK=Yes
. git-sh-setup
+valid_custom_tool()
+{
+ browser_cmd="$(git config "browser.$1.cmd")"
+ test -n "$browser_cmd"
+}
+
valid_tool() {
case "$1" in
firefox | iceweasel | konqueror | w3m | links | lynx | dillo | open)
;; # happy
*)
- return 1
+ valid_custom_tool "$1" || return 1
;;
esac
}
@@ -122,7 +128,7 @@ else
init_browser_path "$browser"
- if ! type "$browser_path" > /dev/null 2>&1; then
+ if test -z "$browser_cmd" && ! type "$browser_path" > /dev/null 2>&1; then
die "The browser $browser is not available as '$browser_path'."
fi
fi
@@ -157,4 +163,9 @@ case "$browser" in
dillo)
"$browser_path" "$@" &
;;
+ *)
+ if test -n "$browser_cmd"; then
+ ( eval $browser_cmd "$@" )
+ fi
+ ;;
esac
diff --git a/git.c b/git.c
index 1e3eb1065f..13de8018f0 100644
--- a/git.c
+++ b/git.c
@@ -343,7 +343,7 @@ static void handle_internal_command(int argc, const char **argv)
{ "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
{ "rm", cmd_rm, RUN_SETUP },
{ "send-pack", cmd_send_pack, RUN_SETUP },
- { "shortlog", cmd_shortlog, RUN_SETUP | USE_PAGER },
+ { "shortlog", cmd_shortlog, USE_PAGER },
{ "show-branch", cmd_show_branch, RUN_SETUP },
{ "show", cmd_show, RUN_SETUP | USE_PAGER },
{ "status", cmd_status, RUN_SETUP | NEED_WORK_TREE },
diff --git a/gitk-git/Makefile b/gitk-git/Makefile
index ae2b80b108..f90dfabffa 100644
--- a/gitk-git/Makefile
+++ b/gitk-git/Makefile
@@ -8,6 +8,7 @@ gitk_libdir ?= $(sharedir)/gitk/lib
msgsdir ?= $(gitk_libdir)/msgs
msgsdir_SQ = $(subst ','\'',$(msgsdir))
+TCL_PATH ?= tclsh
TCLTK_PATH ?= wish
INSTALL ?= install
RM ?= rm -f
@@ -22,6 +23,9 @@ ifdef NO_MSGFMT
MSGFMT ?= $(TCL_PATH) po/po2msg.sh
else
MSGFMT ?= msgfmt
+ ifneq ($(shell $(MSGFMT) --tcl -l C -d . /dev/null 2>/dev/null; echo $$?),0)
+ MSGFMT := $(TCL_PATH) po/po2msg.sh
+ endif
endif
PO_TEMPLATE = po/gitk.pot
diff --git a/gitk-git/gitk b/gitk-git/gitk
index f1f21e97bf..84ab02e15f 100644
--- a/gitk-git/gitk
+++ b/gitk-git/gitk
@@ -82,7 +82,7 @@ proc dorunq {} {
proc start_rev_list {view} {
global startmsecs
global commfd leftover tclencoding datemode
- global viewargs viewfiles commitidx viewcomplete vnextroot
+ global viewargs viewargscmd viewfiles commitidx viewcomplete vnextroot
global showlocalchanges commitinterest mainheadid
global progressdirn progresscoords proglastnc curview
@@ -90,13 +90,23 @@ proc start_rev_list {view} {
set commitidx($view) 0
set viewcomplete($view) 0
set vnextroot($view) 0
+ set args $viewargs($view)
+ if {$viewargscmd($view) ne {}} {
+ if {[catch {
+ set str [exec sh -c $viewargscmd($view)]
+ } err]} {
+ error_popup "Error executing --argscmd command: $err"
+ exit 1
+ }
+ set args [concat $args [split $str "\n"]]
+ }
set order "--topo-order"
if {$datemode} {
set order "--date-order"
}
if {[catch {
set fd [open [concat | git log --no-color -z --pretty=raw $order --parents \
- --boundary $viewargs($view) "--" $viewfiles($view)] r]
+ --boundary $args "--" $viewfiles($view)] r]
} err]} {
error_popup "[mc "Error executing git rev-list:"] $err"
exit 1
@@ -393,6 +403,9 @@ proc readcommit {id} {
proc updatecommits {} {
global viewdata curview phase displayorder ordertok idpending
global children commitrow selectedline thickerline showneartags
+ global isworktree
+
+ set isworktree [expr {[exec git rev-parse --is-inside-work-tree] == "true"}]
if {$phase ne {}} {
stop_rev_list
@@ -827,6 +840,7 @@ proc makewindow {} {
}
frame .bleft.top
frame .bleft.mid
+ frame .bleft.bottom
button .bleft.top.search -text [mc "Search"] -command dosearch
pack .bleft.top.search -side left -padx 5
@@ -854,18 +868,25 @@ proc makewindow {} {
checkbutton .bleft.mid.ignspace -text [mc "Ignore space change"] \
-command changeignorespace -variable ignorespace
pack .bleft.mid.ignspace -side left -padx 5
- set ctext .bleft.ctext
+ set ctext .bleft.bottom.ctext
text $ctext -background $bgcolor -foreground $fgcolor \
-state disabled -font textfont \
- -yscrollcommand scrolltext -wrap none
+ -yscrollcommand scrolltext -wrap none \
+ -xscrollcommand ".bleft.bottom.sbhorizontal set"
if {$have_tk85} {
$ctext conf -tabstyle wordprocessor
}
- scrollbar .bleft.sb -command "$ctext yview"
+ scrollbar .bleft.bottom.sb -command "$ctext yview"
+ scrollbar .bleft.bottom.sbhorizontal -command "$ctext xview" -orient h \
+ -width 10
pack .bleft.top -side top -fill x
pack .bleft.mid -side top -fill x
- pack .bleft.sb -side right -fill y
- pack $ctext -side left -fill both -expand 1
+ grid $ctext .bleft.bottom.sb -sticky nsew
+ grid .bleft.bottom.sbhorizontal -sticky ew
+ grid columnconfigure .bleft.bottom 0 -weight 1
+ grid rowconfigure .bleft.bottom 0 -weight 1
+ grid rowconfigure .bleft.bottom 1 -weight 0
+ pack .bleft.bottom -side top -fill both -expand 1
lappend bglist $ctext
lappend fglist $ctext
@@ -930,9 +951,17 @@ proc makewindow {} {
.pwbottom add .bright
.ctop add .pwbottom
- # restore window position if known
+ # restore window width & height if known
if {[info exists geometry(main)]} {
- wm geometry . "$geometry(main)"
+ if {[scan $geometry(main) "%dx%d" w h] >= 2} {
+ if {$w > [winfo screenwidth .]} {
+ set w [winfo screenwidth .]
+ }
+ if {$h > [winfo screenheight .]} {
+ set h [winfo screenheight .]
+ }
+ wm geometry . "${w}x$h"
+ }
}
if {[tk windowingsystem] eq {aqua}} {
@@ -1160,9 +1189,10 @@ proc savestuff {w} {
global canv canv2 canv3 mainfont textfont uifont tabstop
global stuffsaved findmergefiles maxgraphpct
global maxwidth showneartags showlocalchanges
- global viewname viewfiles viewargs viewperm nextviewnum
+ global viewname viewfiles viewargs viewargscmd viewperm nextviewnum
global cmitmode wrapcomment datetimeformat limitdiffs
global colors bgcolor fgcolor diffcolors diffcontext selectbgcolor
+ global autoselect
if {$stuffsaved} return
if {![winfo viewable .]} return
@@ -1177,6 +1207,7 @@ proc savestuff {w} {
puts $f [list set maxwidth $maxwidth]
puts $f [list set cmitmode $cmitmode]
puts $f [list set wrapcomment $wrapcomment]
+ puts $f [list set autoselect $autoselect]
puts $f [list set showneartags $showneartags]
puts $f [list set showlocalchanges $showlocalchanges]
puts $f [list set datetimeformat $datetimeformat]
@@ -1199,7 +1230,7 @@ proc savestuff {w} {
puts -nonewline $f "set permviews {"
for {set v 0} {$v < $nextviewnum} {incr v} {
if {$viewperm($v)} {
- puts $f "{[list $viewname($v) $viewfiles($v) $viewargs($v)]}"
+ puts $f "{[list $viewname($v) $viewfiles($v) $viewargs($v) $viewargscmd($v)]}"
}
}
puts $f "}"
@@ -1850,7 +1881,7 @@ proc shellsplit {str} {
proc newview {ishighlight} {
global nextviewnum newviewname newviewperm newishighlight
- global newviewargs revtreeargs
+ global newviewargs revtreeargs viewargscmd newviewargscmd curview
set newishighlight $ishighlight
set top .gitkview
@@ -1858,16 +1889,17 @@ proc newview {ishighlight} {
raise $top
return
}
- set newviewname($nextviewnum) "View $nextviewnum"
+ set newviewname($nextviewnum) "[mc "View"] $nextviewnum"
set newviewperm($nextviewnum) 0
set newviewargs($nextviewnum) [shellarglist $revtreeargs]
+ set newviewargscmd($nextviewnum) $viewargscmd($curview)
vieweditor $top $nextviewnum [mc "Gitk view definition"]
}
proc editview {} {
global curview
global viewname viewperm newviewname newviewperm
- global viewargs newviewargs
+ global viewargs newviewargs viewargscmd newviewargscmd
set top .gitkvedit-$curview
if {[winfo exists $top]} {
@@ -1877,6 +1909,7 @@ proc editview {} {
set newviewname($curview) $viewname($curview)
set newviewperm($curview) $viewperm($curview)
set newviewargs($curview) [shellarglist $viewargs($curview)]
+ set newviewargscmd($curview) $viewargscmd($curview)
vieweditor $top $curview "Gitk: edit view $viewname($curview)"
}
@@ -1897,6 +1930,14 @@ proc vieweditor {top n title} {
entry $top.args -width 50 -textvariable newviewargs($n) \
-background $bgcolor
grid $top.args - -sticky ew -padx 5
+
+ message $top.ac -aspect 1000 \
+ -text [mc "Command to generate more commits to include:"]
+ grid $top.ac - -sticky w -pady 5
+ entry $top.argscmd -width 50 -textvariable newviewargscmd($n) \
+ -background white
+ grid $top.argscmd - -sticky ew -padx 5
+
message $top.l -aspect 1000 \
-text [mc "Enter files and directories to include, one per line:"]
grid $top.l - -sticky w
@@ -1940,7 +1981,7 @@ proc allviewmenus {n op args} {
proc newviewok {top n} {
global nextviewnum newviewperm newviewname newishighlight
global viewname viewfiles viewperm selectedview curview
- global viewargs newviewargs viewhlmenu
+ global viewargs newviewargs viewargscmd newviewargscmd viewhlmenu
if {[catch {
set newargs [shellsplit $newviewargs($n)]
@@ -1964,6 +2005,7 @@ proc newviewok {top n} {
set viewperm($n) $newviewperm($n)
set viewfiles($n) $files
set viewargs($n) $newargs
+ set viewargscmd($n) $newviewargscmd($n)
addviewmenu $n
if {!$newishighlight} {
run showview $n
@@ -1980,9 +2022,11 @@ proc newviewok {top n} {
# doviewmenu $viewhlmenu 1 [list addvhighlight $n] \
# entryconf [list -label $viewname($n) -value $viewname($n)]
}
- if {$files ne $viewfiles($n) || $newargs ne $viewargs($n)} {
+ if {$files ne $viewfiles($n) || $newargs ne $viewargs($n) || \
+ $newviewargscmd($n) ne $viewargscmd($n)} {
set viewfiles($n) $files
set viewargs($n) $newargs
+ set viewargscmd($n) $newviewargscmd($n)
if {$curview == $n} {
run updatecommits
}
@@ -2058,8 +2102,6 @@ proc showview {n} {
set ybot [expr {[lindex $span 1] * $ymax}]
if {$ytop < $y && $y < $ybot} {
set yscreen [expr {$y - $ytop}]
- } else {
- set yscreen [expr {($ybot - $ytop) / 2}]
}
} elseif {[info exists pending_select]} {
set selid $pending_select
@@ -2120,7 +2162,7 @@ proc showview {n} {
set yf 0
set row {}
set selectfirst 0
- if {$selid ne {} && [info exists commitrow($n,$selid)]} {
+ if {[info exists yscreen] && [info exists commitrow($n,$selid)]} {
set row $commitrow($n,$selid)
# try to get the selected row in the same position on the screen
set ymax [lindex [$canv cget -scrollregion] 3]
@@ -2844,8 +2886,9 @@ proc dohidelocalchanges {} {
# spawn off a process to do git diff-index --cached HEAD
proc dodiffindex {} {
global localirow localfrow lserial showlocalchanges
+ global isworktree
- if {!$showlocalchanges} return
+ if {!$showlocalchanges || !$isworktree} return
incr lserial
set localfrow -1
set localirow -1
@@ -4650,6 +4693,7 @@ proc selectline {l isnew} {
global commentend idtags linknum
global mergemax numcommits pending_select
global cmitmode showneartags allcommits
+ global autoselect
catch {unset pending_select}
$canv delete hover
@@ -4705,8 +4749,10 @@ proc selectline {l isnew} {
set currentid $id
$sha1entry delete 0 end
$sha1entry insert 0 $id
- $sha1entry selection from 0
- $sha1entry selection to end
+ if {$autoselect} {
+ $sha1entry selection from 0
+ $sha1entry selection to end
+ }
rhighlight_sel $id
$ctext conf -state normal
@@ -5604,7 +5650,7 @@ proc searchmarkvisible {doall} {
proc scrolltext {f0 f1} {
global searchstring
- .bleft.sb set $f0 $f1
+ .bleft.bottom.sb set $f0 $f1
if {$searchstring ne {}} {
searchmarkvisible 0
}
@@ -7943,7 +7989,7 @@ proc doprefs {} {
global maxwidth maxgraphpct
global oldprefs prefstop showneartags showlocalchanges
global bgcolor fgcolor ctext diffcolors selectbgcolor
- global tabstop limitdiffs
+ global tabstop limitdiffs autoselect
set top .gitkprefs
set prefstop $top
@@ -7973,6 +8019,11 @@ proc doprefs {} {
checkbutton $top.showlocal.b -variable showlocalchanges
pack $top.showlocal.b $top.showlocal.l -side left
grid x $top.showlocal -sticky w
+ frame $top.autoselect
+ label $top.autoselect.l -text [mc "Auto-select SHA1"] -font optionfont
+ checkbutton $top.autoselect.b -variable autoselect
+ pack $top.autoselect.b $top.autoselect.l -side left
+ grid x $top.autoselect -sticky w
label $top.ddisp -text [mc "Diff display options"]
grid $top.ddisp - -sticky w -pady 10
@@ -8463,6 +8514,7 @@ set maxlinelen 200
set showlocalchanges 1
set limitdiffs 1
set datetimeformat "%Y-%m-%d %H:%M:%S"
+set autoselect 1
set colors {green red blue magenta darkgrey brown orange}
set bgcolor white
@@ -8522,8 +8574,9 @@ set mergeonly 0
set revtreeargs {}
set cmdline_files {}
set i 0
+set revtreeargscmd {}
foreach arg $argv {
- switch -- $arg {
+ switch -glob -- $arg {
"" { }
"-d" { set datemode 1 }
"--merge" {
@@ -8534,6 +8587,9 @@ foreach arg $argv {
set cmdline_files [lrange $argv [expr {$i + 1}] end]
break
}
+ "--argscmd=*" {
+ set revtreeargscmd [string range $arg 10 end]
+ }
default {
lappend revtreeargs $arg
}
@@ -8635,6 +8691,7 @@ set highlight_files {}
set viewfiles(0) {}
set viewperm(0) 0
set viewargs(0) {}
+set viewargscmd(0) {}
set cmdlineok 0
set stopped 0
@@ -8643,6 +8700,7 @@ set patchnum 0
set localirow -1
set localfrow -1
set lserial 0
+set isworktree [expr {[exec git rev-parse --is-inside-work-tree] == "true"}]
setcoords
makewindow
# wait for the window to become visible
@@ -8650,7 +8708,7 @@ tkwait visibility .
wm title . "[file tail $argv0]: [file tail [pwd]]"
readrefs
-if {$cmdline_files ne {} || $revtreeargs ne {}} {
+if {$cmdline_files ne {} || $revtreeargs ne {} || $revtreeargscmd ne {}} {
# create a view for the files/dirs specified on the command line
set curview 1
set selectedview 1
@@ -8658,6 +8716,7 @@ if {$cmdline_files ne {} || $revtreeargs ne {}} {
set viewname(1) [mc "Command line"]
set viewfiles(1) $cmdline_files
set viewargs(1) $revtreeargs
+ set viewargscmd(1) $revtreeargscmd
set viewperm(1) 0
addviewmenu 1
.bar.view entryconf [mc "Edit view..."] -state normal
@@ -8671,6 +8730,7 @@ if {[info exists permviews]} {
set viewname($n) [lindex $v 0]
set viewfiles($n) [lindex $v 1]
set viewargs($n) [lindex $v 2]
+ set viewargscmd($n) [lindex $v 3]
set viewperm($n) 1
addviewmenu $n
}
diff --git a/gitk-git/po/it.po b/gitk-git/po/it.po
new file mode 100644
index 0000000000..d0f4c2e19a
--- /dev/null
+++ b/gitk-git/po/it.po
@@ -0,0 +1,890 @@
+# Translation of gitk
+# Copyright (C) 2005-2008 Paul Mackerras
+# This file is distributed under the same license as the gitk package.
+# Michele Ballabio <barra_cuda@katamail.com>, 2008.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gitk\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-03-13 17:29+0100\n"
+"PO-Revision-Date: 2008-03-13 17:34+0100\n"
+"Last-Translator: Michele Ballabio <barra_cuda@katamail.com>\n"
+"Language-Team: Italian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: gitk:111
+msgid "Error executing git rev-list:"
+msgstr "Errore nell'esecuzione di git rev-list:"
+
+#: gitk:124
+msgid "Reading"
+msgstr "Lettura in corso"
+
+#: gitk:151 gitk:2191
+msgid "Reading commits..."
+msgstr "Lettura delle revisioni in corso..."
+
+#: gitk:275
+msgid "Can't parse git log output:"
+msgstr "Impossibile elaborare i dati di git log:"
+
+#: gitk:386 gitk:2195
+msgid "No commits selected"
+msgstr "Nessuna revisione selezionata"
+
+#: gitk:500
+msgid "No commit information available"
+msgstr "Nessuna informazione disponibile sulle revisioni"
+
+#: gitk:599 gitk:621 gitk:1955 gitk:6423 gitk:7923 gitk:8082
+msgid "OK"
+msgstr "OK"
+
+#: gitk:623 gitk:1956 gitk:6107 gitk:6178 gitk:6275 gitk:6321 gitk:6425
+#: gitk:7924 gitk:8083
+msgid "Cancel"
+msgstr "Annulla"
+
+#: gitk:661
+msgid "File"
+msgstr "File"
+
+#: gitk:663
+msgid "Update"
+msgstr "Aggiorna"
+
+#: gitk:664
+msgid "Reread references"
+msgstr "Rileggi riferimenti"
+
+#: gitk:665
+msgid "List references"
+msgstr "Elenca riferimenti"
+
+#: gitk:666
+msgid "Quit"
+msgstr "Esci"
+
+#: gitk:668
+msgid "Edit"
+msgstr "Modifica"
+
+#: gitk:669
+msgid "Preferences"
+msgstr "Preferenze"
+
+#: gitk:672 gitk:1892
+msgid "View"
+msgstr "Vista"
+
+#: gitk:673
+msgid "New view..."
+msgstr "Nuova vista..."
+
+#: gitk:674 gitk:2133 gitk:8722
+msgid "Edit view..."
+msgstr "Modifica vista..."
+
+#: gitk:676 gitk:2134 gitk:8723
+msgid "Delete view"
+msgstr "Elimina vista"
+
+#: gitk:678
+msgid "All files"
+msgstr "Tutti i file"
+
+#: gitk:682
+msgid "Help"
+msgstr "Aiuto"
+
+#: gitk:683 gitk:1317
+msgid "About gitk"
+msgstr "Informazioni su gitk"
+
+#: gitk:684
+msgid "Key bindings"
+msgstr "Scorciatoie da tastiera"
+
+#: gitk:741
+msgid "SHA1 ID: "
+msgstr "SHA1 ID: "
+
+#: gitk:791
+msgid "Find"
+msgstr "Trova"
+
+#: gitk:792
+msgid "next"
+msgstr "succ"
+
+#: gitk:793
+msgid "prev"
+msgstr "prec"
+
+#: gitk:794
+msgid "commit"
+msgstr "revisione"
+
+#: gitk:797 gitk:799 gitk:2356 gitk:2379 gitk:2403 gitk:4306 gitk:4369
+msgid "containing:"
+msgstr "contenente:"
+
+#: gitk:800 gitk:1778 gitk:1783 gitk:2431
+msgid "touching paths:"
+msgstr "che riguarda i percorsi:"
+
+#: gitk:801 gitk:2436
+msgid "adding/removing string:"
+msgstr "che aggiunge/rimuove la stringa:"
+
+#: gitk:810 gitk:812
+msgid "Exact"
+msgstr "Esatto"
+
+#: gitk:812 gitk:2514 gitk:4274
+msgid "IgnCase"
+msgstr ""
+
+#: gitk:812 gitk:2405 gitk:2512 gitk:4270
+msgid "Regexp"
+msgstr ""
+
+#: gitk:814 gitk:815 gitk:2533 gitk:2563 gitk:2570 gitk:4380 gitk:4436
+msgid "All fields"
+msgstr "Tutti i campi"
+
+#: gitk:815 gitk:2531 gitk:2563 gitk:4336
+msgid "Headline"
+msgstr "Titolo"
+
+#: gitk:816 gitk:2531 gitk:4336 gitk:4436 gitk:4827
+msgid "Comments"
+msgstr "Commenti"
+
+#: gitk:816 gitk:2531 gitk:2535 gitk:2570 gitk:4336 gitk:4763 gitk:5956
+#: gitk:5971
+msgid "Author"
+msgstr "Autore"
+
+#: gitk:816 gitk:2531 gitk:4336 gitk:4765
+msgid "Committer"
+msgstr "Revisione creata da"
+
+#: gitk:845
+msgid "Search"
+msgstr "Cerca"
+
+#: gitk:852
+msgid "Diff"
+msgstr ""
+
+#: gitk:854
+msgid "Old version"
+msgstr "Vecchia versione"
+
+#: gitk:856
+msgid "New version"
+msgstr "Nuova versione"
+
+#: gitk:858
+msgid "Lines of context"
+msgstr "Linee di contesto"
+
+#: gitk:868
+msgid "Ignore space change"
+msgstr "Ignora modifiche agli spazi"
+
+#: gitk:926
+msgid "Patch"
+msgstr "Modifiche"
+
+#: gitk:928
+msgid "Tree"
+msgstr "Directory"
+
+#: gitk:1053 gitk:1068 gitk:6022
+msgid "Diff this -> selected"
+msgstr "Diff questo -> selezionato"
+
+#: gitk:1055 gitk:1070 gitk:6023
+msgid "Diff selected -> this"
+msgstr "Diff selezionato -> questo"
+
+#: gitk:1057 gitk:1072 gitk:6024
+msgid "Make patch"
+msgstr "Crea patch"
+
+#: gitk:1058 gitk:6162
+msgid "Create tag"
+msgstr "Crea etichetta"
+
+#: gitk:1059 gitk:6255
+msgid "Write commit to file"
+msgstr "Scrivi revisione in un file"
+
+#: gitk:1060 gitk:6309
+msgid "Create new branch"
+msgstr "Crea un nuovo ramo"
+
+#: gitk:1061
+msgid "Cherry-pick this commit"
+msgstr "Porta questa revisione in cima al ramo attuale"
+
+#: gitk:1063
+msgid "Reset HEAD branch to here"
+msgstr "Aggiorna il ramo HEAD a questa revisione"
+
+#: gitk:1079
+msgid "Check out this branch"
+msgstr "Attiva questo ramo"
+
+#: gitk:1081
+msgid "Remove this branch"
+msgstr "Elimina questo ramo"
+
+#: gitk:1087
+msgid "Highlight this too"
+msgstr "Evidenzia anche questo"
+
+#: gitk:1089
+msgid "Highlight this only"
+msgstr "Evidenzia solo questo"
+
+#: gitk:1318
+msgid ""
+"\n"
+"Gitk - a commit viewer for git\n"
+"\n"
+"Copyright © 2005-2006 Paul Mackerras\n"
+"\n"
+"Use and redistribute under the terms of the GNU General Public License"
+msgstr ""
+"\n"
+"Gitk - un visualizzatore di revisioni per git\n"
+"\n"
+"Copyright © 2005-2006 Paul Mackerras\n"
+"\n"
+"Utilizzo e redistribuzione permessi sotto i termini della GNU General Public "
+"License"
+
+#: gitk:1326 gitk:1387 gitk:6581
+msgid "Close"
+msgstr "Chiudi"
+
+#: gitk:1345
+msgid "Gitk key bindings"
+msgstr "Scorciatoie da tastiera di Gitk"
+
+#: gitk:1347
+msgid "Gitk key bindings:"
+msgstr "Scorciatoie da tastiera di Gitk:"
+
+#: gitk:1349
+#, tcl-format
+msgid "<%s-Q>\t\tQuit"
+msgstr "<%s-Q>\t\tEsci"
+
+#: gitk:1350
+msgid "<Home>\t\tMove to first commit"
+msgstr "<Home>\t\tVai alla prima revisione"
+
+#: gitk:1351
+msgid "<End>\t\tMove to last commit"
+msgstr "<End>\t\tVai all'ultima revisione"
+
+#: gitk:1352
+msgid "<Up>, p, i\tMove up one commit"
+msgstr "<Up>, p, i\tVai più in alto di una revisione"
+
+#: gitk:1353
+msgid "<Down>, n, k\tMove down one commit"
+msgstr "<Down>, n, k\tVai più in basso di una revisione"
+
+#: gitk:1354
+msgid "<Left>, z, j\tGo back in history list"
+msgstr "<Left>, z, j\tTorna indietro nella cronologia"
+
+#: gitk:1355
+msgid "<Right>, x, l\tGo forward in history list"
+msgstr "<Right>, x, l\tVai avanti nella cronologia"
+
+#: gitk:1356
+msgid "<PageUp>\tMove up one page in commit list"
+msgstr "<PageUp>\tVai più in alto di una pagina nella lista delle revisioni"
+
+#: gitk:1357
+msgid "<PageDown>\tMove down one page in commit list"
+msgstr "<PageDown>\tVai più in basso di una pagina nella lista delle revisioni"
+
+#: gitk:1358
+#, tcl-format
+msgid "<%s-Home>\tScroll to top of commit list"
+msgstr "<%s-Home>\tScorri alla cima della lista delle revisioni"
+
+#: gitk:1359
+#, tcl-format
+msgid "<%s-End>\tScroll to bottom of commit list"
+msgstr "<%s-End>\tScorri alla fine della lista delle revisioni"
+
+#: gitk:1360
+#, tcl-format
+msgid "<%s-Up>\tScroll commit list up one line"
+msgstr "<%s-Up>\tScorri la lista delle revisioni in alto di una riga"
+
+#: gitk:1361
+#, tcl-format
+msgid "<%s-Down>\tScroll commit list down one line"
+msgstr "<%s-Down>\tScorri la lista delle revisioni in basso di una riga"
+
+#: gitk:1362
+#, tcl-format
+msgid "<%s-PageUp>\tScroll commit list up one page"
+msgstr "<%s-PageUp>\tScorri la lista delle revisioni in alto di una pagina"
+
+#: gitk:1363
+#, tcl-format
+msgid "<%s-PageDown>\tScroll commit list down one page"
+msgstr "<%s-PageDown>\tScorri la lista delle revisioni in basso di una pagina"
+
+#: gitk:1364
+msgid "<Shift-Up>\tFind backwards (upwards, later commits)"
+msgstr "<Shift-Up>\tTrova all'indietro (verso l'alto, revisioni successive)"
+
+#: gitk:1365
+msgid "<Shift-Down>\tFind forwards (downwards, earlier commits)"
+msgstr "<Shift-Down>\tTrova in avanti (verso il basso, revisioni precedenti)"
+
+#: gitk:1366
+msgid "<Delete>, b\tScroll diff view up one page"
+msgstr "<Delete>, b\tScorri la vista delle differenze in alto di una pagina"
+
+#: gitk:1367
+msgid "<Backspace>\tScroll diff view up one page"
+msgstr "<Backspace>\tScorri la vista delle differenze in alto di una pagina"
+
+#: gitk:1368
+msgid "<Space>\t\tScroll diff view down one page"
+msgstr "<Space>\t\tScorri la vista delle differenze in basso di una pagina"
+
+#: gitk:1369
+msgid "u\t\tScroll diff view up 18 lines"
+msgstr "u\t\tScorri la vista delle differenze in alto di 18 linee"
+
+#: gitk:1370
+msgid "d\t\tScroll diff view down 18 lines"
+msgstr "d\t\tScorri la vista delle differenze in basso di 18 linee"
+
+#: gitk:1371
+#, tcl-format
+msgid "<%s-F>\t\tFind"
+msgstr "<%s-F>\t\tTrova"
+
+#: gitk:1372
+#, tcl-format
+msgid "<%s-G>\t\tMove to next find hit"
+msgstr "<%s-G>\t\tTrova in avanti"
+
+#: gitk:1373
+msgid "<Return>\tMove to next find hit"
+msgstr "<Return>\tTrova in avanti"
+
+#: gitk:1374
+msgid "/\t\tMove to next find hit, or redo find"
+msgstr "/\t\tTrova in avanti, o cerca di nuovo"
+
+#: gitk:1375
+msgid "?\t\tMove to previous find hit"
+msgstr "?\t\tTrova all'indietro"
+
+#: gitk:1376
+msgid "f\t\tScroll diff view to next file"
+msgstr "f\t\tScorri la vista delle differenze al file successivo"
+
+#: gitk:1377
+#, tcl-format
+msgid "<%s-S>\t\tSearch for next hit in diff view"
+msgstr "<%s-S>\t\tCerca in avanti nella vista delle differenze"
+
+#: gitk:1378
+#, tcl-format
+msgid "<%s-R>\t\tSearch for previous hit in diff view"
+msgstr "<%s-R>\t\tCerca all'indietro nella vista delle differenze"
+
+#: gitk:1379
+#, tcl-format
+msgid "<%s-KP+>\tIncrease font size"
+msgstr "<%s-KP+>\tAumenta grandezza carattere"
+
+#: gitk:1380
+#, tcl-format
+msgid "<%s-plus>\tIncrease font size"
+msgstr "<%s-plus>\tAumenta grandezza carattere"
+
+#: gitk:1381
+#, tcl-format
+msgid "<%s-KP->\tDecrease font size"
+msgstr "<%s-KP->\tDiminuisci grandezza carattere"
+
+#: gitk:1382
+#, tcl-format
+msgid "<%s-minus>\tDecrease font size"
+msgstr "<%s-minus>\tDiminuisci grandezza carattere"
+
+#: gitk:1383
+msgid "<F5>\t\tUpdate"
+msgstr "<F5>\t\tAggiorna"
+
+#: gitk:1896
+msgid "Gitk view definition"
+msgstr "Scelta vista Gitk"
+
+#: gitk:1921
+msgid "Name"
+msgstr "Nome"
+
+#: gitk:1924
+msgid "Remember this view"
+msgstr "Ricorda questa vista"
+
+#: gitk:1928
+msgid "Commits to include (arguments to git rev-list):"
+msgstr "Revisioni da includere (argomenti di git rev-list):"
+
+#: gitk:1935
+msgid "Command to generate more commits to include:"
+msgstr "Comando che genera altre revisioni da visualizzare:"
+
+#: gitk:1942
+msgid "Enter files and directories to include, one per line:"
+msgstr "Inserire file e directory da includere, uno per riga:"
+
+#: gitk:1989
+msgid "Error in commit selection arguments:"
+msgstr "Errore negli argomenti di selezione delle revisioni:"
+
+#: gitk:2043 gitk:2127 gitk:2583 gitk:2597 gitk:3781 gitk:8688 gitk:8689
+msgid "None"
+msgstr "Nessuno"
+
+#: gitk:2531 gitk:4336 gitk:5958 gitk:5973
+msgid "Date"
+msgstr "Data"
+
+#: gitk:2531 gitk:4336
+msgid "CDate"
+msgstr ""
+
+#: gitk:2680 gitk:2685
+msgid "Descendant"
+msgstr "Discendente"
+
+#: gitk:2681
+msgid "Not descendant"
+msgstr "Non discendente"
+
+#: gitk:2688 gitk:2693
+msgid "Ancestor"
+msgstr "Ascendente"
+
+#: gitk:2689
+msgid "Not ancestor"
+msgstr "Non ascendente"
+
+#: gitk:2924
+msgid "Local changes checked in to index but not committed"
+msgstr "Modifiche locali presenti nell'indice ma non nell'archivio"
+
+#: gitk:2954
+msgid "Local uncommitted changes, not checked in to index"
+msgstr "Modifiche locali non presenti né nell'archivio né nell'indice"
+
+#: gitk:4305
+msgid "Searching"
+msgstr "Ricerca in corso"
+
+#: gitk:4767
+msgid "Tags:"
+msgstr "Etichette:"
+
+#: gitk:4784 gitk:4790 gitk:5951
+msgid "Parent"
+msgstr "Genitore"
+
+#: gitk:4795
+msgid "Child"
+msgstr "Figlio"
+
+#: gitk:4804
+msgid "Branch"
+msgstr "Ramo"
+
+#: gitk:4807
+msgid "Follows"
+msgstr "Segue"
+
+#: gitk:4810
+msgid "Precedes"
+msgstr "Precede"
+
+#: gitk:5093
+msgid "Error getting merge diffs:"
+msgstr "Errore nella lettura delle differenze di fusione:"
+
+#: gitk:5778
+msgid "Goto:"
+msgstr "Vai a:"
+
+#: gitk:5780
+msgid "SHA1 ID:"
+msgstr "SHA1 ID:"
+
+#: gitk:5805
+#, tcl-format
+msgid "Short SHA1 id %s is ambiguous"
+msgstr "La SHA1 id abbreviata %s è ambigua"
+
+#: gitk:5817
+#, tcl-format
+msgid "SHA1 id %s is not known"
+msgstr "La SHA1 id %s è sconosciuta"
+
+#: gitk:5819
+#, tcl-format
+msgid "Tag/Head %s is not known"
+msgstr "L'etichetta/ramo %s è sconosciuto"
+
+#: gitk:5961
+msgid "Children"
+msgstr "Figli"
+
+#: gitk:6018
+#, tcl-format
+msgid "Reset %s branch to here"
+msgstr "Aggiorna il ramo %s a questa revisione"
+
+#: gitk:6049
+msgid "Top"
+msgstr "Inizio"
+
+#: gitk:6050
+msgid "From"
+msgstr "Da"
+
+#: gitk:6055
+msgid "To"
+msgstr "A"
+
+#: gitk:6078
+msgid "Generate patch"
+msgstr "Genera patch"
+
+#: gitk:6080
+msgid "From:"
+msgstr "Da:"
+
+#: gitk:6089
+msgid "To:"
+msgstr "A:"
+
+#: gitk:6098
+msgid "Reverse"
+msgstr "Inverti"
+
+#: gitk:6100 gitk:6269
+msgid "Output file:"
+msgstr "Scrivi sul file:"
+
+#: gitk:6106
+msgid "Generate"
+msgstr "Genera"
+
+#: gitk:6142
+msgid "Error creating patch:"
+msgstr "Errore nella creazione della patch:"
+
+#: gitk:6164 gitk:6257 gitk:6311
+msgid "ID:"
+msgstr "ID:"
+
+#: gitk:6173
+msgid "Tag name:"
+msgstr "Nome etichetta:"
+
+#: gitk:6177 gitk:6320
+msgid "Create"
+msgstr "Crea"
+
+#: gitk:6192
+msgid "No tag name specified"
+msgstr "Nessuna etichetta specificata"
+
+#: gitk:6196
+#, tcl-format
+msgid "Tag \"%s\" already exists"
+msgstr "L'etichetta \"%s\" esiste già"
+
+#: gitk:6202
+msgid "Error creating tag:"
+msgstr "Errore nella creazione dell'etichetta:"
+
+#: gitk:6266
+msgid "Command:"
+msgstr "Comando:"
+
+#: gitk:6274
+msgid "Write"
+msgstr "Scrivi"
+
+#: gitk:6290
+msgid "Error writing commit:"
+msgstr "Errore nella scrittura della revisione:"
+
+#: gitk:6316
+msgid "Name:"
+msgstr "Nome:"
+
+#: gitk:6335
+msgid "Please specify a name for the new branch"
+msgstr "Specificare un nome per il nuovo ramo"
+
+#: gitk:6364
+#, tcl-format
+msgid "Commit %s is already included in branch %s -- really re-apply it?"
+msgstr "La revisione %s è già inclusa nel ramo %s -- applicarla di nuovo?"
+
+#: gitk:6369
+msgid "Cherry-picking"
+msgstr ""
+
+#: gitk:6381
+msgid "No changes committed"
+msgstr "Nessuna modifica archiviata"
+
+#: gitk:6404
+msgid "Confirm reset"
+msgstr "Conferma git reset"
+
+#: gitk:6406
+#, tcl-format
+msgid "Reset branch %s to %s?"
+msgstr "Aggiornare il ramo %s a %s?"
+
+#: gitk:6410
+msgid "Reset type:"
+msgstr "Tipo di aggiornamento:"
+
+#: gitk:6414
+msgid "Soft: Leave working tree and index untouched"
+msgstr "Soft: Lascia la direcory di lavoro e l'indice come sono"
+
+#: gitk:6417
+msgid "Mixed: Leave working tree untouched, reset index"
+msgstr "Mixed: Lascia la directory di lavoro come è, aggiorna l'indice"
+
+#: gitk:6420
+msgid ""
+"Hard: Reset working tree and index\n"
+"(discard ALL local changes)"
+msgstr ""
+"Hard: Aggiorna la directory di lavoro e l'indice\n"
+"(abbandona TUTTE le modifiche locali)"
+
+#: gitk:6436
+msgid "Resetting"
+msgstr "git reset in corso"
+
+#: gitk:6493
+msgid "Checking out"
+msgstr "Attivazione in corso"
+
+#: gitk:6523
+msgid "Cannot delete the currently checked-out branch"
+msgstr "Impossibile cancellare il ramo attualmente attivo"
+
+#: gitk:6529
+#, tcl-format
+msgid ""
+"The commits on branch %s aren't on any other branch.\n"
+"Really delete branch %s?"
+msgstr ""
+"Le revisioni nel ramo %s non sono presenti su altri rami.\n"
+"Cancellare il ramo %s?"
+
+#: gitk:6560
+#, tcl-format
+msgid "Tags and heads: %s"
+msgstr "Etichette e rami: %s"
+
+#: gitk:6574
+msgid "Filter"
+msgstr "Filtro"
+
+#: gitk:6868
+msgid ""
+"Error reading commit topology information; branch and preceding/following "
+"tag information will be incomplete."
+msgstr ""
+"Errore nella lettura della topologia delle revisioni: le informazioni sul "
+"ramo e le etichette precedenti e seguenti saranno incomplete."
+
+#: gitk:7852
+msgid "Tag"
+msgstr "Etichetta"
+
+#: gitk:7852
+msgid "Id"
+msgstr "Id"
+
+#: gitk:7892
+msgid "Gitk font chooser"
+msgstr "Scelta caratteri gitk"
+
+#: gitk:7909
+msgid "B"
+msgstr "B"
+
+#: gitk:7912
+msgid "I"
+msgstr "I"
+
+#: gitk:8005
+msgid "Gitk preferences"
+msgstr "Preferenze gitk"
+
+#: gitk:8006
+msgid "Commit list display options"
+msgstr "Opzioni visualizzazione dell'elenco revisioni"
+
+#: gitk:8009
+msgid "Maximum graph width (lines)"
+msgstr "Larghezza massima del grafico (in linee)"
+
+#: gitk:8013
+#, tcl-format
+msgid "Maximum graph width (% of pane)"
+msgstr "Larghezza massima del grafico (% del pannello)"
+
+#: gitk:8018
+msgid "Show local changes"
+msgstr "Mostra modifiche locali"
+
+#: gitk:8023
+msgid "Auto-select SHA1"
+msgstr "Seleziona automaticamente SHA1 hash"
+
+#: gitk:8028
+msgid "Diff display options"
+msgstr "Opzioni di visualizzazione delle differenze"
+
+#: gitk:8030
+msgid "Tab spacing"
+msgstr "Spaziatura tabulazioni"
+
+#: gitk:8034
+msgid "Display nearby tags"
+msgstr "Mostra etichette vicine"
+
+#: gitk:8039
+msgid "Limit diffs to listed paths"
+msgstr "Limita le differenze ai percorsi elencati"
+
+#: gitk:8044
+msgid "Colors: press to choose"
+msgstr "Colori: premere per scegliere"
+
+#: gitk:8047
+msgid "Background"
+msgstr "Sfondo"
+
+#: gitk:8051
+msgid "Foreground"
+msgstr "Primo piano"
+
+#: gitk:8055
+msgid "Diff: old lines"
+msgstr "Diff: vecchie linee"
+
+#: gitk:8060
+msgid "Diff: new lines"
+msgstr "Diff: nuove linee"
+
+#: gitk:8065
+msgid "Diff: hunk header"
+msgstr "Diff: intestazione della sezione"
+
+#: gitk:8071
+msgid "Select bg"
+msgstr "Sfondo selezione"
+
+#: gitk:8075
+msgid "Fonts: press to choose"
+msgstr "Carattere: premere per scegliere"
+
+#: gitk:8077
+msgid "Main font"
+msgstr "Carattere principale"
+
+#: gitk:8078
+msgid "Diff display font"
+msgstr "Carattere per differenze"
+
+#: gitk:8079
+msgid "User interface font"
+msgstr "Carattere per interfaccia utente"
+
+#: gitk:8095
+#, tcl-format
+msgid "Gitk: choose color for %s"
+msgstr "Gitk: scegliere un colore per %s"
+
+#: gitk:8476
+msgid ""
+"Sorry, gitk cannot run with this version of Tcl/Tk.\n"
+" Gitk requires at least Tcl/Tk 8.4."
+msgstr ""
+"Questa versione di Tcl/Tk non può avviare gitk.\n"
+" Gitk richiede Tcl/Tk versione 8.4 o superiore."
+
+#: gitk:8565
+msgid "Cannot find a git repository here."
+msgstr "Archivio git non trovato."
+
+#: gitk:8569
+#, tcl-format
+msgid "Cannot find the git directory \"%s\"."
+msgstr "Directory git \"%s\" non trovata."
+
+#: gitk:8612
+#, tcl-format
+msgid "Ambiguous argument '%s': both revision and filename"
+msgstr "Argomento ambiguo: '%s' è sia revisione che nome di file"
+
+#: gitk:8624
+msgid "Bad arguments to gitk:"
+msgstr "Gitk: argomenti errati:"
+
+#: gitk:8636
+msgid "Couldn't get list of unmerged files:"
+msgstr "Impossibile ottenere l'elenco dei file in attesa di fusione:"
+
+#: gitk:8652
+msgid "No files selected: --merge specified but no files are unmerged."
+msgstr ""
+"Nessun file selezionato: è stata specificata l'opzione --merge ma non ci "
+"sono file in attesa di fusione."
+
+#: gitk:8655
+msgid ""
+"No files selected: --merge specified but no unmerged files are within file "
+"limit."
+msgstr ""
+"Nessun file selezionato: è stata specificata l'opzione --merge ma i file "
+"specificati non sono in attesa di fusione."
+
+#: gitk:8716
+msgid "Command line"
+msgstr "Linea di comando"
diff --git a/help.c b/help.c
index e57a50ed59..ecaca770d3 100644
--- a/help.c
+++ b/help.c
@@ -8,6 +8,12 @@
#include "exec_cmd.h"
#include "common-cmds.h"
#include "parse-options.h"
+#include "run-command.h"
+
+static struct man_viewer_list {
+ void (*exec)(const char *);
+ struct man_viewer_list *next;
+} *man_viewer_list;
enum help_format {
HELP_FORMAT_MAN,
@@ -42,6 +48,102 @@ static enum help_format parse_help_format(const char *format)
die("unrecognized help format '%s'", format);
}
+static int check_emacsclient_version(void)
+{
+ struct strbuf buffer = STRBUF_INIT;
+ struct child_process ec_process;
+ const char *argv_ec[] = { "emacsclient", "--version", NULL };
+ int version;
+
+ /* emacsclient prints its version number on stderr */
+ memset(&ec_process, 0, sizeof(ec_process));
+ ec_process.argv = argv_ec;
+ ec_process.err = -1;
+ ec_process.stdout_to_stderr = 1;
+ if (start_command(&ec_process)) {
+ fprintf(stderr, "Failed to start emacsclient.\n");
+ return -1;
+ }
+ strbuf_read(&buffer, ec_process.err, 20);
+ close(ec_process.err);
+
+ /*
+ * Don't bother checking return value, because "emacsclient --version"
+ * seems to always exits with code 1.
+ */
+ finish_command(&ec_process);
+
+ if (prefixcmp(buffer.buf, "emacsclient")) {
+ fprintf(stderr, "Failed to parse emacsclient version.\n");
+ strbuf_release(&buffer);
+ return -1;
+ }
+
+ strbuf_remove(&buffer, 0, strlen("emacsclient"));
+ version = atoi(buffer.buf);
+
+ if (version < 22) {
+ fprintf(stderr,
+ "emacsclient version '%d' too old (< 22).\n",
+ version);
+ strbuf_release(&buffer);
+ return -1;
+ }
+
+ strbuf_release(&buffer);
+ return 0;
+}
+
+static void exec_woman_emacs(const char *page)
+{
+ if (!check_emacsclient_version()) {
+ /* This works only with emacsclient version >= 22. */
+ struct strbuf man_page = STRBUF_INIT;
+ strbuf_addf(&man_page, "(woman \"%s\")", page);
+ execlp("emacsclient", "emacsclient", "-e", man_page.buf, NULL);
+ }
+}
+
+static void exec_man_konqueror(const char *page)
+{
+ const char *display = getenv("DISPLAY");
+ if (display && *display) {
+ struct strbuf man_page = STRBUF_INIT;
+ strbuf_addf(&man_page, "man:%s(1)", page);
+ execlp("kfmclient", "kfmclient", "newTab", man_page.buf, NULL);
+ }
+}
+
+static void exec_man_man(const char *page)
+{
+ execlp("man", "man", page, NULL);
+}
+
+static void do_add_man_viewer(void (*exec)(const char *))
+{
+ struct man_viewer_list **p = &man_viewer_list;
+
+ while (*p)
+ p = &((*p)->next);
+ *p = xmalloc(sizeof(**p));
+ (*p)->next = NULL;
+ (*p)->exec = exec;
+}
+
+static int add_man_viewer(const char *value)
+{
+ if (!strcasecmp(value, "man"))
+ do_add_man_viewer(exec_man_man);
+ else if (!strcasecmp(value, "woman"))
+ do_add_man_viewer(exec_woman_emacs);
+ else if (!strcasecmp(value, "konqueror"))
+ do_add_man_viewer(exec_man_konqueror);
+ else
+ warning("'%s': unsupported man viewer.", value);
+
+ return 0;
+}
+
static int git_help_config(const char *var, const char *value)
{
if (!strcmp(var, "help.format")) {
@@ -50,6 +152,11 @@ static int git_help_config(const char *var, const char *value)
help_format = parse_help_format(value);
return 0;
}
+ if (!strcmp(var, "man.viewer")) {
+ if (!value)
+ return config_error_nonbool(var);
+ return add_man_viewer(value);
+ }
return git_default_config(var, value);
}
@@ -347,9 +454,16 @@ static void setup_man_path(void)
static void show_man_page(const char *git_cmd)
{
+ struct man_viewer_list *viewer;
const char *page = cmd_to_page(git_cmd);
+
setup_man_path();
- execlp("man", "man", page, NULL);
+ for (viewer = man_viewer_list; viewer; viewer = viewer->next)
+ {
+ viewer->exec(page); /* will return when unable */
+ }
+ exec_man_man(page);
+ die("no man viewer handled the request");
}
static void show_info_page(const char *git_cmd)
diff --git a/log-tree.c b/log-tree.c
index 608f697cf3..5b2963998c 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -138,10 +138,14 @@ static int has_non_ascii(const char *s)
}
void log_write_email_headers(struct rev_info *opt, const char *name,
- const char **subject_p, const char **extra_headers_p)
+ const char **subject_p,
+ const char **extra_headers_p,
+ int *need_8bit_cte_p)
{
const char *subject = NULL;
const char *extra_headers = opt->extra_headers;
+
+ *need_8bit_cte_p = 0; /* unknown */
if (opt->total > 0) {
static char buffer[64];
snprintf(buffer, sizeof(buffer),
@@ -169,6 +173,7 @@ void log_write_email_headers(struct rev_info *opt, const char *name,
if (opt->mime_boundary) {
static char subject_buffer[1024];
static char buffer[1024];
+ *need_8bit_cte_p = -1; /* NEVER */
snprintf(subject_buffer, sizeof(subject_buffer) - 1,
"%s"
"MIME-Version: 1.0\n"
@@ -212,6 +217,7 @@ void show_log(struct rev_info *opt, const char *sep)
int abbrev_commit = opt->abbrev_commit ? opt->abbrev : 40;
const char *extra;
const char *subject = NULL, *extra_headers = opt->extra_headers;
+ int need_8bit_cte = 0;
opt->loginfo = NULL;
if (!opt->verbose_header) {
@@ -255,7 +261,8 @@ void show_log(struct rev_info *opt, const char *sep)
if (opt->commit_format == CMIT_FMT_EMAIL) {
log_write_email_headers(opt, sha1_to_hex(commit->object.sha1),
- &subject, &extra_headers);
+ &subject, &extra_headers,
+ &need_8bit_cte);
} else if (opt->commit_format != CMIT_FMT_USERFORMAT) {
fputs(diff_get_color_opt(&opt->diffopt, DIFF_COMMIT), stdout);
if (opt->commit_format != CMIT_FMT_ONELINE)
@@ -299,9 +306,11 @@ void show_log(struct rev_info *opt, const char *sep)
* And then the pretty-printed message itself
*/
strbuf_init(&msgbuf, 0);
+ if (need_8bit_cte >= 0)
+ need_8bit_cte = has_non_ascii(opt->add_signoff);
pretty_print_commit(opt->commit_format, commit, &msgbuf,
abbrev, subject, extra_headers, opt->date_mode,
- has_non_ascii(opt->add_signoff));
+ need_8bit_cte);
if (opt->add_signoff)
append_signoff(&msgbuf, opt->add_signoff);
diff --git a/log-tree.h b/log-tree.h
index 0cc9344eab..8946ff377c 100644
--- a/log-tree.h
+++ b/log-tree.h
@@ -14,6 +14,8 @@ int log_tree_opt_parse(struct rev_info *, const char **, int);
void show_log(struct rev_info *opt, const char *sep);
void show_decorations(struct commit *commit);
void log_write_email_headers(struct rev_info *opt, const char *name,
- const char **subject_p, const char **extra_headers_p);
+ const char **subject_p,
+ const char **extra_headers_p,
+ int *need_8bit_cte_p);
#endif
diff --git a/pretty.c b/pretty.c
index 703f52176b..16bfb86cd3 100644
--- a/pretty.c
+++ b/pretty.c
@@ -636,7 +636,7 @@ void pp_title_line(enum cmit_fmt fmt,
const char *subject,
const char *after_subject,
const char *encoding,
- int plain_non_ascii)
+ int need_8bit_cte)
{
struct strbuf title;
@@ -669,7 +669,7 @@ void pp_title_line(enum cmit_fmt fmt,
}
strbuf_addch(sb, '\n');
- if (plain_non_ascii) {
+ if (need_8bit_cte > 0) {
const char *header_fmt =
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=%s\n"
@@ -718,9 +718,9 @@ void pp_remainder(enum cmit_fmt fmt,
}
void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
- struct strbuf *sb, int abbrev,
- const char *subject, const char *after_subject,
- enum date_mode dmode, int plain_non_ascii)
+ struct strbuf *sb, int abbrev,
+ const char *subject, const char *after_subject,
+ enum date_mode dmode, int need_8bit_cte)
{
unsigned long beginning_of_body;
int indent = 4;
@@ -746,13 +746,11 @@ void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
if (fmt == CMIT_FMT_ONELINE || fmt == CMIT_FMT_EMAIL)
indent = 0;
- /* After-subject is used to pass in Content-Type: multipart
- * MIME header; in that case we do not have to do the
- * plaintext content type even if the commit message has
- * non 7-bit ASCII character. Otherwise, check if we need
- * to say this is not a 7-bit ASCII.
+ /*
+ * We need to check and emit Content-type: to mark it
+ * as 8-bit if we haven't done so.
*/
- if (fmt == CMIT_FMT_EMAIL && !after_subject) {
+ if (fmt == CMIT_FMT_EMAIL && need_8bit_cte == 0) {
int i, ch, in_body;
for (in_body = i = 0; (ch = msg[i]); i++) {
@@ -765,7 +763,7 @@ void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
in_body = 1;
}
else if (non_ascii(ch)) {
- plain_non_ascii = 1;
+ need_8bit_cte = 1;
break;
}
}
@@ -790,7 +788,7 @@ void pretty_print_commit(enum cmit_fmt fmt, const struct commit *commit,
/* These formats treat the title line specially. */
if (fmt == CMIT_FMT_ONELINE || fmt == CMIT_FMT_EMAIL)
pp_title_line(fmt, &msg, sb, subject,
- after_subject, encoding, plain_non_ascii);
+ after_subject, encoding, need_8bit_cte);
beginning_of_body = sb->len;
if (fmt != CMIT_FMT_ONELINE)
diff --git a/remote.c b/remote.c
index f3f7375eea..40ed24633f 100644
--- a/remote.c
+++ b/remote.c
@@ -393,42 +393,123 @@ static void read_config(void)
alias_all_urls();
}
-struct refspec *parse_ref_spec(int nr_refspec, const char **refspec)
+static struct refspec *parse_refspec_internal(int nr_refspec, const char **refspec, int fetch)
{
int i;
+ int st;
struct refspec *rs = xcalloc(sizeof(*rs), nr_refspec);
+
for (i = 0; i < nr_refspec; i++) {
- const char *sp, *ep, *gp;
- sp = refspec[i];
- if (*sp == '+') {
+ size_t llen, rlen;
+ int is_glob;
+ const char *lhs, *rhs;
+
+ llen = rlen = is_glob = 0;
+
+ lhs = refspec[i];
+ if (*lhs == '+') {
rs[i].force = 1;
- sp++;
+ lhs++;
+ }
+
+ rhs = strrchr(lhs, ':');
+ if (rhs) {
+ rhs++;
+ rlen = strlen(rhs);
+ is_glob = (2 <= rlen && !strcmp(rhs + rlen - 2, "/*"));
+ rs[i].dst = xstrndup(rhs, rlen - is_glob * 2);
}
- gp = strchr(sp, '*');
- ep = strchr(sp, ':');
- if (gp && ep && gp > ep)
- gp = NULL;
- if (ep) {
- if (ep[1]) {
- const char *glob = strchr(ep + 1, '*');
- if (!glob)
- gp = NULL;
- if (gp)
- rs[i].dst = xstrndup(ep + 1,
- glob - ep - 1);
- else
- rs[i].dst = xstrdup(ep + 1);
+
+ llen = (rhs ? (rhs - lhs - 1) : strlen(lhs));
+ if (is_glob != (2 <= llen && !memcmp(lhs + llen - 2, "/*", 2)))
+ goto invalid;
+
+ if (is_glob) {
+ llen -= 2;
+ rlen -= 2;
+ }
+ rs[i].pattern = is_glob;
+ rs[i].src = xstrndup(lhs, llen);
+
+ if (fetch) {
+ /*
+ * LHS
+ * - empty is allowed; it means HEAD.
+ * - otherwise it must be a valid looking ref.
+ */
+ if (!*rs[i].src)
+ ; /* empty is ok */
+ else {
+ st = check_ref_format(rs[i].src);
+ if (st && st != CHECK_REF_FORMAT_ONELEVEL)
+ goto invalid;
+ }
+ /*
+ * RHS
+ * - missing is allowed.
+ * - empty is ok; it means not to store.
+ * - otherwise it must be a valid looking ref.
+ */
+ if (!rs[i].dst) {
+ ; /* ok */
+ } else if (!*rs[i].dst) {
+ ; /* ok */
+ } else {
+ st = check_ref_format(rs[i].dst);
+ if (st && st != CHECK_REF_FORMAT_ONELEVEL)
+ goto invalid;
}
} else {
- ep = sp + strlen(sp);
- }
- if (gp) {
- rs[i].pattern = 1;
- ep = gp;
+ /*
+ * LHS
+ * - empty is allowed; it means delete.
+ * - when wildcarded, it must be a valid looking ref.
+ * - otherwise, it must be an extended SHA-1, but
+ * there is no existing way to validate this.
+ */
+ if (!*rs[i].src)
+ ; /* empty is ok */
+ else if (is_glob) {
+ st = check_ref_format(rs[i].src);
+ if (st && st != CHECK_REF_FORMAT_ONELEVEL)
+ goto invalid;
+ }
+ else
+ ; /* anything goes, for now */
+ /*
+ * RHS
+ * - missing is allowed, but LHS then must be a
+ * valid looking ref.
+ * - empty is not allowed.
+ * - otherwise it must be a valid looking ref.
+ */
+ if (!rs[i].dst) {
+ st = check_ref_format(rs[i].src);
+ if (st && st != CHECK_REF_FORMAT_ONELEVEL)
+ goto invalid;
+ } else if (!*rs[i].dst) {
+ goto invalid;
+ } else {
+ st = check_ref_format(rs[i].dst);
+ if (st && st != CHECK_REF_FORMAT_ONELEVEL)
+ goto invalid;
+ }
}
- rs[i].src = xstrndup(sp, ep - sp);
}
return rs;
+
+ invalid:
+ die("Invalid refspec '%s'", refspec[i]);
+}
+
+struct refspec *parse_fetch_refspec(int nr_refspec, const char **refspec)
+{
+ return parse_refspec_internal(nr_refspec, refspec, 1);
+}
+
+struct refspec *parse_push_refspec(int nr_refspec, const char **refspec)
+{
+ return parse_refspec_internal(nr_refspec, refspec, 0);
}
static int valid_remote_nick(const char *name)
@@ -459,8 +540,8 @@ struct remote *remote_get(const char *name)
add_url_alias(ret, name);
if (!ret->url)
return NULL;
- ret->fetch = parse_ref_spec(ret->fetch_refspec_nr, ret->fetch_refspec);
- ret->push = parse_ref_spec(ret->push_refspec_nr, ret->push_refspec);
+ ret->fetch = parse_fetch_refspec(ret->fetch_refspec_nr, ret->fetch_refspec);
+ ret->push = parse_push_refspec(ret->push_refspec_nr, ret->push_refspec);
return ret;
}
@@ -473,11 +554,11 @@ int for_each_remote(each_remote_fn fn, void *priv)
if (!r)
continue;
if (!r->fetch)
- r->fetch = parse_ref_spec(r->fetch_refspec_nr,
- r->fetch_refspec);
+ r->fetch = parse_fetch_refspec(r->fetch_refspec_nr,
+ r->fetch_refspec);
if (!r->push)
- r->push = parse_ref_spec(r->push_refspec_nr,
- r->push_refspec);
+ r->push = parse_push_refspec(r->push_refspec_nr,
+ r->push_refspec);
result = fn(r, priv);
}
return result;
@@ -543,7 +624,8 @@ int remote_find_tracking(struct remote *remote, struct refspec *refspec)
if (!fetch->dst)
continue;
if (fetch->pattern) {
- if (!prefixcmp(needle, key)) {
+ if (!prefixcmp(needle, key) &&
+ needle[strlen(key)] == '/') {
*result = xmalloc(strlen(value) +
strlen(needle) -
strlen(key) + 1);
@@ -790,7 +872,9 @@ static const struct refspec *check_pattern_match(const struct refspec *rs,
{
int i;
for (i = 0; i < rs_nr; i++) {
- if (rs[i].pattern && !prefixcmp(src->name, rs[i].src))
+ if (rs[i].pattern &&
+ !prefixcmp(src->name, rs[i].src) &&
+ src->name[strlen(rs[i].src)] == '/')
return rs + i;
}
return NULL;
@@ -805,7 +889,7 @@ int match_refs(struct ref *src, struct ref *dst, struct ref ***dst_tail,
int nr_refspec, const char **refspec, int flags)
{
struct refspec *rs =
- parse_ref_spec(nr_refspec, (const char **) refspec);
+ parse_push_refspec(nr_refspec, (const char **) refspec);
int send_all = flags & MATCH_REFS_ALL;
int send_mirror = flags & MATCH_REFS_MIRROR;
@@ -989,7 +1073,7 @@ int get_fetch_map(const struct ref *remote_refs,
struct ref ***tail,
int missing_ok)
{
- struct ref *ref_map, *rm;
+ struct ref *ref_map, **rmp;
if (refspec->pattern) {
ref_map = get_expanded_map(remote_refs, refspec);
@@ -1006,10 +1090,20 @@ int get_fetch_map(const struct ref *remote_refs,
}
}
- for (rm = ref_map; rm; rm = rm->next) {
- if (rm->peer_ref && check_ref_format(rm->peer_ref->name + 5))
- die("* refusing to create funny ref '%s' locally",
- rm->peer_ref->name);
+ for (rmp = &ref_map; *rmp; ) {
+ if ((*rmp)->peer_ref) {
+ int st = check_ref_format((*rmp)->peer_ref->name + 5);
+ if (st && st != CHECK_REF_FORMAT_ONELEVEL) {
+ struct ref *ignore = *rmp;
+ error("* Ignoring funny ref '%s' locally",
+ (*rmp)->peer_ref->name);
+ *rmp = (*rmp)->next;
+ free(ignore->peer_ref);
+ free(ignore);
+ continue;
+ }
+ }
+ rmp = &((*rmp)->next);
}
if (ref_map)
diff --git a/remote.h b/remote.h
index f1dedf15f6..7e9ae792dc 100644
--- a/remote.h
+++ b/remote.h
@@ -67,7 +67,8 @@ void free_refs(struct ref *ref);
*/
void ref_remove_duplicates(struct ref *ref_map);
-struct refspec *parse_ref_spec(int nr_refspec, const char **refspec);
+struct refspec *parse_fetch_refspec(int nr_refspec, const char **refspec);
+struct refspec *parse_push_refspec(int nr_refspec, const char **refspec);
int match_refs(struct ref *src, struct ref *dst, struct ref ***dst_tail,
int nr_refspec, const char **refspec, int all);
diff --git a/revision.c b/revision.c
index 63bf2c5c2d..196fedc9d1 100644
--- a/revision.c
+++ b/revision.c
@@ -564,14 +564,39 @@ static void cherry_pick_list(struct commit_list *list, struct rev_info *revs)
free_patch_ids(&ids);
}
-static void add_to_list(struct commit_list **p, struct commit *commit, struct commit_list *n)
+/* How many extra uninteresting commits we want to see.. */
+#define SLOP 5
+
+static int still_interesting(struct commit_list *src, unsigned long date, int slop)
{
- p = &commit_list_insert(commit, p)->next;
- *p = n;
+ /*
+ * No source list at all? We're definitely done..
+ */
+ if (!src)
+ return 0;
+
+ /*
+ * Does the destination list contain entries with a date
+ * before the source list? Definitely _not_ done.
+ */
+ if (date < src->item->date)
+ return SLOP;
+
+ /*
+ * Does the source list still have interesting commits in
+ * it? Definitely not done..
+ */
+ if (!everybody_uninteresting(src))
+ return SLOP;
+
+ /* Ok, we're closing in.. */
+ return slop-1;
}
static int limit_list(struct rev_info *revs)
{
+ int slop = SLOP;
+ unsigned long date = ~0ul;
struct commit_list *list = revs->commits;
struct commit_list *newlist = NULL;
struct commit_list **p = &newlist;
@@ -591,16 +616,19 @@ static int limit_list(struct rev_info *revs)
return -1;
if (obj->flags & UNINTERESTING) {
mark_parents_uninteresting(commit);
- if (everybody_uninteresting(list)) {
- if (revs->show_all)
- add_to_list(p, commit, list);
- break;
- }
- if (!revs->show_all)
- continue;
+ if (revs->show_all)
+ p = &commit_list_insert(commit, p)->next;
+ slop = still_interesting(list, date, slop);
+ if (slop)
+ continue;
+ /* If showing all, add the whole pending list to the end */
+ if (revs->show_all)
+ *p = list;
+ break;
}
if (revs->min_age != -1 && (commit->date > revs->min_age))
continue;
+ date = commit->date;
p = &commit_list_insert(commit, p)->next;
show = show_early_output;
diff --git a/sha1_name.c b/sha1_name.c
index 8b6c76f68e..491d2e7ebf 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -407,18 +407,22 @@ static int get_nth_ancestor(const char *name, int len,
unsigned char *result, int generation)
{
unsigned char sha1[20];
- int ret = get_sha1_1(name, len, sha1);
+ struct commit *commit;
+ int ret;
+
+ ret = get_sha1_1(name, len, sha1);
if (ret)
return ret;
+ commit = lookup_commit_reference(sha1);
+ if (!commit)
+ return -1;
while (generation--) {
- struct commit *commit = lookup_commit_reference(sha1);
-
- if (!commit || parse_commit(commit) || !commit->parents)
+ if (parse_commit(commit) || !commit->parents)
return -1;
- hashcpy(sha1, commit->parents->item->object.sha1);
+ commit = commit->parents->item;
}
- hashcpy(result, sha1);
+ hashcpy(result, commit->object.sha1);
return 0;
}
@@ -544,9 +548,8 @@ static int get_sha1_1(const char *name, int len, unsigned char *sha1)
int ret, has_suffix;
const char *cp;
- /* "name~3" is "name^^^",
- * "name~" and "name~0" are name -- not "name^0"!
- * "name^" is not "name^0"; it is "name^1".
+ /*
+ * "name~3" is "name^^^", "name~" is "name~1", and "name^" is "name^1".
*/
has_suffix = 0;
for (cp = name + len - 1; name <= cp; cp--) {
@@ -564,11 +567,10 @@ static int get_sha1_1(const char *name, int len, unsigned char *sha1)
cp++;
while (cp < name + len)
num = num * 10 + *cp++ - '0';
- if (has_suffix == '^') {
- if (!num && len1 == len - 1)
- num = 1;
+ if (!num && len1 == len - 1)
+ num = 1;
+ if (has_suffix == '^')
return get_parent(name, len1, sha1, num);
- }
/* else if (has_suffix == '~') -- goes without saying */
return get_nth_ancestor(name, len1, sha1, num);
}
diff --git a/t/diff-lib.sh b/t/diff-lib.sh
index 7dc6d7eb1e..28b941c493 100644
--- a/t/diff-lib.sh
+++ b/t/diff-lib.sh
@@ -21,8 +21,8 @@ compare_diff_raw_z () {
# Also we do not check SHA1 hash generation in this test, which
# is a job for t0000-basic.sh
- tr '\000' '\012' <"$1" | sed -e "$sanitize_diff_raw_z" >.tmp-1
- tr '\000' '\012' <"$2" | sed -e "$sanitize_diff_raw_z" >.tmp-2
+ perl -pe 'y/\000/\012/' <"$1" | sed -e "$sanitize_diff_raw_z" >.tmp-1
+ perl -pe 'y/\000/\012/' <"$2" | sed -e "$sanitize_diff_raw_z" >.tmp-2
git diff .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
}
diff --git a/t/lib-git-svn.sh b/t/lib-git-svn.sh
index 9ee35e7901..9decd2e1e8 100644
--- a/t/lib-git-svn.sh
+++ b/t/lib-git-svn.sh
@@ -49,8 +49,28 @@ poke() {
test-chmtime +1 "$1"
}
-SVN_HTTPD_MODULE_PATH=${SVN_HTTPD_MODULE_PATH-'/usr/lib/apache2/modules'}
-SVN_HTTPD_PATH=${SVN_HTTPD_PATH-'/usr/sbin/apache2'}
+for d in \
+ "$SVN_HTTPD_PATH" \
+ /usr/sbin/apache2 \
+ /usr/sbin/httpd \
+; do
+ if test -f "$d"
+ then
+ SVN_HTTPD_PATH="$d"
+ break
+ fi
+done
+for d in \
+ "$SVN_HTTPD_MODULE_PATH" \
+ /usr/lib/apache2/modules \
+ /usr/libexec/apache2 \
+; do
+ if test -d "$d"
+ then
+ SVN_HTTPD_MODULE_PATH="$d"
+ break
+ fi
+done
start_httpd () {
if test -z "$SVN_HTTPD_PORT"
@@ -66,6 +86,7 @@ ServerName "git-svn test"
ServerRoot "$GIT_DIR"
DocumentRoot "$GIT_DIR"
PidFile "$GIT_DIR/httpd.pid"
+LockFile logs/accept.lock
Listen 127.0.0.1:$SVN_HTTPD_PORT
LoadModule dav_module $SVN_HTTPD_MODULE_PATH/mod_dav.so
LoadModule dav_svn_module $SVN_HTTPD_MODULE_PATH/mod_dav_svn.so
diff --git a/t/t0003-attributes.sh b/t/t0003-attributes.sh
index 47f08a46c2..3faf135e38 100755
--- a/t/t0003-attributes.sh
+++ b/t/t0003-attributes.sh
@@ -11,7 +11,7 @@ attr_check () {
git check-attr test -- "$path" >actual &&
echo "$path: test: $2" >expect &&
- diff -u expect actual
+ test_cmp expect actual
}
diff --git a/t/t0020-crlf.sh b/t/t0020-crlf.sh
index 90ea081db6..2bfeac986e 100755
--- a/t/t0020-crlf.sh
+++ b/t/t0020-crlf.sh
@@ -5,7 +5,7 @@ test_description='CRLF conversion'
. ./test-lib.sh
q_to_nul () {
- tr Q '\000'
+ perl -pe 'y/Q/\000/'
}
q_to_cr () {
diff --git a/t/t0022-crlf-rename.sh b/t/t0022-crlf-rename.sh
index 430a1d1d38..7d1ce2d056 100755
--- a/t/t0022-crlf-rename.sh
+++ b/t/t0022-crlf-rename.sh
@@ -26,7 +26,7 @@ test_expect_success 'diff -M' '
git diff-tree -M -r --name-status HEAD^ HEAD |
sed -e "s/R[0-9]*/RNUM/" >actual &&
echo "RNUM sample elpmas" >expect &&
- diff -u expect actual
+ test_cmp expect actual
'
diff --git a/t/t0030-stripspace.sh b/t/t0030-stripspace.sh
index 818c8621f2..3ecdd6626a 100755
--- a/t/t0030-stripspace.sh
+++ b/t/t0030-stripspace.sh
@@ -245,12 +245,12 @@ test_expect_success \
test_expect_success \
'text plus spaces without newline at end should not show spaces' '
- ! (printf "$ttt$sss" | git stripspace | grep -q " ") &&
- ! (printf "$ttt$ttt$sss" | git stripspace | grep -q " ") &&
- ! (printf "$ttt$ttt$ttt$sss" | git stripspace | grep -q " ") &&
- ! (printf "$ttt$sss$sss" | git stripspace | grep -q " ") &&
- ! (printf "$ttt$ttt$sss$sss" | git stripspace | grep -q " ") &&
- ! (printf "$ttt$sss$sss$sss" | git stripspace | grep -q " ")
+ ! (printf "$ttt$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (printf "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (printf "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (printf "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (printf "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (printf "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null)
'
test_expect_success \
@@ -282,12 +282,12 @@ test_expect_success \
test_expect_success \
'text plus spaces at end should not show spaces' '
- ! (echo "$ttt$sss" | git stripspace | grep -q " ") &&
- ! (echo "$ttt$ttt$sss" | git stripspace | grep -q " ") &&
- ! (echo "$ttt$ttt$ttt$sss" | git stripspace | grep -q " ") &&
- ! (echo "$ttt$sss$sss" | git stripspace | grep -q " ") &&
- ! (echo "$ttt$ttt$sss$sss" | git stripspace | grep -q " ") &&
- ! (echo "$ttt$sss$sss$sss" | git stripspace | grep -q " ")
+ ! (echo "$ttt$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (echo "$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (echo "$ttt$ttt$ttt$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (echo "$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (echo "$ttt$ttt$sss$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (echo "$ttt$sss$sss$sss" | git stripspace | grep " " >/dev/null)
'
test_expect_success \
@@ -341,11 +341,11 @@ test_expect_success \
test_expect_success \
'spaces without newline at end should not show spaces' '
- ! (printf "" | git stripspace | grep -q " ") &&
- ! (printf "$sss" | git stripspace | grep -q " ") &&
- ! (printf "$sss$sss" | git stripspace | grep -q " ") &&
- ! (printf "$sss$sss$sss" | git stripspace | grep -q " ") &&
- ! (printf "$sss$sss$sss$sss" | git stripspace | grep -q " ")
+ ! (printf "" | git stripspace | grep " " >/dev/null) &&
+ ! (printf "$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (printf "$sss$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (printf "$sss$sss$sss" | git stripspace | grep " " >/dev/null) &&
+ ! (printf "$sss$sss$sss$sss" | git stripspace | grep " " >/dev/null)
'
test_expect_success \
diff --git a/t/t0050-filesystem.sh b/t/t0050-filesystem.sh
index cd088b37f0..3fbad77811 100755
--- a/t/t0050-filesystem.sh
+++ b/t/t0050-filesystem.sh
@@ -4,8 +4,8 @@ test_description='Various filesystem issues'
. ./test-lib.sh
-auml=`perl -CO -e 'print pack("U",0x00E4)'`
-aumlcdiar=`perl -CO -e 'print pack("U",0x0061).pack("U",0x0308)'`
+auml=`printf '\xc3\xa4'`
+aumlcdiar=`printf '\x61\xcc\x88'`
test_expect_success 'see if we expect ' '
diff --git a/t/t1000-read-tree-m-3way.sh b/t/t1000-read-tree-m-3way.sh
index 6c065bfa21..17f519f547 100755
--- a/t/t1000-read-tree-m-3way.sh
+++ b/t/t1000-read-tree-m-3way.sh
@@ -214,7 +214,7 @@ test_expect_success '1 - must not have an entry not in A.' "
rm -f .git/index XX &&
echo XX >XX &&
git update-index --add XX &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -254,7 +254,7 @@ test_expect_success \
cp .orig-A/AN AN &&
echo extra >>AN &&
git update-index --add AN &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -271,7 +271,7 @@ test_expect_success \
cp .orig-A/AA AA &&
git update-index --add AA &&
echo extra >>AA &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -280,7 +280,7 @@ test_expect_success \
cp .orig-A/AA AA &&
echo extra >>AA &&
git update-index --add AA &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -306,7 +306,7 @@ test_expect_success \
cp .orig-A/LL LL &&
echo extra >>LL &&
git update-index --add LL &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -314,7 +314,7 @@ test_expect_success \
rm -f .git/index DD &&
echo DD >DD
git update-index --add DD &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -322,7 +322,7 @@ test_expect_success \
rm -f .git/index DM &&
cp .orig-B/DM DM &&
git update-index --add DM &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -330,7 +330,7 @@ test_expect_success \
rm -f .git/index DN &&
cp .orig-B/DN DN &&
git update-index --add DN &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -347,7 +347,7 @@ test_expect_success \
cp .orig-A/MD MD &&
git update-index --add MD &&
echo extra >>MD &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -356,7 +356,7 @@ test_expect_success \
cp .orig-A/MD MD &&
echo extra >>MD &&
git update-index --add MD &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -373,7 +373,7 @@ test_expect_success \
cp .orig-A/ND ND &&
git update-index --add ND &&
echo extra >>ND &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -382,7 +382,7 @@ test_expect_success \
cp .orig-A/ND ND &&
echo extra >>ND &&
git update-index --add ND &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -399,7 +399,7 @@ test_expect_success \
cp .orig-A/MM MM &&
git update-index --add MM &&
echo extra >>MM &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -408,7 +408,7 @@ test_expect_success \
cp .orig-A/MM MM &&
echo extra >>MM &&
git update-index --add MM &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -434,7 +434,7 @@ test_expect_success \
cp .orig-A/SS SS &&
echo extra >>SS &&
git update-index --add SS &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -477,7 +477,7 @@ test_expect_success \
cp .orig-A/NM NM &&
git update-index --add NM &&
echo extra >>NM &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -486,7 +486,7 @@ test_expect_success \
cp .orig-A/NM NM &&
echo extra >>NM &&
git update-index --add NM &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
test_expect_success \
@@ -512,7 +512,7 @@ test_expect_success \
cp .orig-A/NN NN &&
echo extra >>NN &&
git update-index --add NN &&
- ! git read-tree -m $tree_O $tree_A $tree_B
+ test_must_fail git read-tree -m $tree_O $tree_A $tree_B
"
# #16
diff --git a/t/t1004-read-tree-m-u-wf.sh b/t/t1004-read-tree-m-u-wf.sh
index d609a551ae..570d3729bd 100755
--- a/t/t1004-read-tree-m-u-wf.sh
+++ b/t/t1004-read-tree-m-u-wf.sh
@@ -116,4 +116,126 @@ test_expect_success 'three-way not complaining on an untracked file' '
git read-tree -m -u --exclude-per-directory=.gitignore branch-point master side
'
+test_expect_success '3-way not overwriting local changes (setup)' '
+
+ git reset --hard &&
+ git checkout -b side-a branch-point &&
+ echo >>file1 "new line to be kept in the merge result" &&
+ git commit -a -m "side-a changes file1" &&
+ git checkout -b side-b branch-point &&
+ echo >>file2 "new line to be kept in the merge result" &&
+ git commit -a -m "side-b changes file2" &&
+ git checkout side-a
+
+'
+
+test_expect_success '3-way not overwriting local changes (our side)' '
+
+ # At this point, file1 from side-a should be kept as side-b
+ # did not touch it.
+
+ git reset --hard &&
+
+ echo >>file1 "local changes" &&
+ git read-tree -m -u branch-point side-a side-b &&
+ grep "new line to be kept" file1 &&
+ grep "local changes" file1
+
+'
+
+test_expect_success '3-way not overwriting local changes (their side)' '
+
+ # At this point, file2 from side-b should be taken as side-a
+ # did not touch it.
+
+ git reset --hard &&
+
+ echo >>file2 "local changes" &&
+ test_must_fail git read-tree -m -u branch-point side-a side-b &&
+ ! grep "new line to be kept" file2 &&
+ grep "local changes" file2
+
+'
+
+test_expect_success 'funny symlink in work tree' '
+
+ git reset --hard &&
+ git checkout -b sym-b side-b &&
+ mkdir -p a &&
+ >a/b &&
+ git add a/b &&
+ git commit -m "side adds a/b" &&
+
+ rm -fr a &&
+ git checkout -b sym-a side-a &&
+ mkdir -p a &&
+ ln -s ../b a/b &&
+ git add a/b &&
+ git commit -m "we add a/b" &&
+
+ git read-tree -m -u sym-a sym-a sym-b
+
+'
+
+test_expect_success 'funny symlink in work tree, un-unlink-able' '
+
+ rm -fr a b &&
+ git reset --hard &&
+
+ git checkout sym-a &&
+ chmod a-w a &&
+ test_must_fail git read-tree -m -u sym-a sym-a sym-b
+
+'
+
+# clean-up from the above test
+chmod a+w a
+rm -fr a b
+
+test_expect_success 'D/F setup' '
+
+ git reset --hard &&
+
+ git checkout side-a &&
+ rm -f subdir/file2 &&
+ mkdir subdir/file2 &&
+ echo qfwfq >subdir/file2/another &&
+ git add subdir/file2/another &&
+ test_tick &&
+ git commit -m "side-a changes file2 to directory"
+
+'
+
+test_expect_success 'D/F' '
+
+ git checkout side-b &&
+ git read-tree -m -u branch-point side-b side-a &&
+ git ls-files -u >actual &&
+ (
+ a=$(git rev-parse branch-point:subdir/file2)
+ b=$(git rev-parse side-a:subdir/file2/another)
+ echo "100644 $a 1 subdir/file2"
+ echo "100644 $a 2 subdir/file2"
+ echo "100644 $b 3 subdir/file2/another"
+ ) >expect &&
+ test_cmp actual expect
+
+'
+
+test_expect_success 'D/F resolve' '
+
+ git reset --hard &&
+ git checkout side-b &&
+ git merge-resolve branch-point -- side-b side-a
+
+'
+
+test_expect_success 'D/F recursive' '
+
+ git reset --hard &&
+ git checkout side-b &&
+ git merge-recursive branch-point -- side-b side-a
+
+'
+
test_done
diff --git a/t/t1005-read-tree-reset.sh b/t/t1005-read-tree-reset.sh
index 8c4556408e..b0d31f5a9b 100755
--- a/t/t1005-read-tree-reset.sh
+++ b/t/t1005-read-tree-reset.sh
@@ -24,7 +24,7 @@ test_expect_success 'setup' '
test_expect_success 'reset should work' '
git read-tree -u --reset HEAD^ &&
git ls-files >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
test_done
diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh
index 4928a57114..b36a9012ec 100755
--- a/t/t1300-repo-config.sh
+++ b/t/t1300-repo-config.sh
@@ -657,12 +657,12 @@ Qsection.sub=section.val4
Qsection.sub=section.val5Q
EOF
-git config --null --list | tr '\000' 'Q' > result
+git config --null --list | perl -pe 'y/\000/Q/' > result
echo >>result
test_expect_success '--null --list' 'cmp result expect'
-git config --null --get-regexp 'val[0-9]' | tr '\000' 'Q' > result
+git config --null --get-regexp 'val[0-9]' | perl -pe 'y/\000/Q/' > result
echo >>result
test_expect_success '--null --get-regexp' 'cmp result expect'
diff --git a/t/t1410-reflog.sh b/t/t1410-reflog.sh
index 24476bede5..73f830db23 100755
--- a/t/t1410-reflog.sh
+++ b/t/t1410-reflog.sh
@@ -202,22 +202,4 @@ test_expect_success 'delete' '
'
-test_expect_success 'prune --expire' '
-
- before=$(git count-objects | sed "s/ .*//") &&
- BLOB=$(echo aleph | git hash-object -w --stdin) &&
- BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
- test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
- test -f $BLOB_FILE &&
- git reset --hard &&
- git prune --expire=1.hour.ago &&
- test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
- test -f $BLOB_FILE &&
- test-chmtime -86500 $BLOB_FILE &&
- git prune --expire 1.day &&
- test $before = $(git count-objects | sed "s/ .*//") &&
- ! test -f $BLOB_FILE
-
-'
-
test_done
diff --git a/t/t2200-add-update.sh b/t/t2200-add-update.sh
index 24f892f793..b664341926 100755
--- a/t/t2200-add-update.sh
+++ b/t/t2200-add-update.sh
@@ -62,7 +62,7 @@ test_expect_success 'cache tree has not been corrupted' '
sed -e "s/ 0 / /" >expect &&
git ls-tree -r $(git write-tree) |
sed -e "s/ blob / /" >current &&
- diff -u expect current
+ test_cmp expect current
'
diff --git a/t/t3001-ls-files-others-exclude.sh b/t/t3001-ls-files-others-exclude.sh
index b4297bacf2..55f057cebe 100755
--- a/t/t3001-ls-files-others-exclude.sh
+++ b/t/t3001-ls-files-others-exclude.sh
@@ -97,7 +97,7 @@ cat > expect << EOF
EOF
test_expect_success 'git-status honours core.excludesfile' \
- 'diff -u expect output'
+ 'test_cmp expect output'
test_expect_success 'trailing slash in exclude allows directory match(1)' '
diff --git a/t/t3050-subprojects-fetch.sh b/t/t3050-subprojects-fetch.sh
index 34f26a8d9e..2b21b1070d 100755
--- a/t/t3050-subprojects-fetch.sh
+++ b/t/t3050-subprojects-fetch.sh
@@ -26,7 +26,7 @@ test_expect_success clone '
cd cloned &&
(git rev-parse HEAD; git ls-files -s) >../actual
) &&
- diff -u expected actual
+ test_cmp expected actual
'
test_expect_success advance '
@@ -46,7 +46,7 @@ test_expect_success fetch '
git pull &&
(git rev-parse HEAD; git ls-files -s) >../actual
) &&
- diff -u expected actual
+ test_cmp expected actual
'
test_done
diff --git a/t/t3060-ls-files-with-tree.sh b/t/t3060-ls-files-with-tree.sh
index 68eb266d73..3ce501bb97 100755
--- a/t/t3060-ls-files-with-tree.sh
+++ b/t/t3060-ls-files-with-tree.sh
@@ -66,6 +66,6 @@ test_expect_success 'git -ls-files --with-tree should succeed from subdir' '
cd ..
test_expect_success \
'git -ls-files --with-tree should add entries from named tree.' \
- 'diff -u expected output'
+ 'test_cmp expected output'
test_done
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
index 38a90adad6..cb5f7a4441 100755
--- a/t/t3200-branch.sh
+++ b/t/t3200-branch.sh
@@ -153,16 +153,6 @@ test_expect_success 'test tracking setup via config' \
test $(git config branch.my3.remote) = local &&
test $(git config branch.my3.merge) = refs/heads/master'
-test_expect_success 'avoid ambiguous track' '
- git config branch.autosetupmerge true &&
- git config remote.ambi1.url = lalala &&
- git config remote.ambi1.fetch = refs/heads/lalala:refs/heads/master &&
- git config remote.ambi2.url = lilili &&
- git config remote.ambi2.fetch = refs/heads/lilili:refs/heads/master &&
- git branch all1 master &&
- test -z "$(git config branch.all1.merge)"
-'
-
test_expect_success 'test overriding tracking setup via --no-track' \
'git config branch.autosetupmerge true &&
git config remote.local.url . &&
@@ -224,4 +214,14 @@ test_expect_success \
test -f .git/logs/refs/heads/g/h/i &&
diff expect .git/logs/refs/heads/g/h/i'
+test_expect_success 'avoid ambiguous track' '
+ git config branch.autosetupmerge true &&
+ git config remote.ambi1.url lalala &&
+ git config remote.ambi1.fetch refs/heads/lalala:refs/heads/master &&
+ git config remote.ambi2.url lilili &&
+ git config remote.ambi2.fetch refs/heads/lilili:refs/heads/master &&
+ git branch all1 master &&
+ test -z "$(git config branch.all1.merge)"
+'
+
test_done
diff --git a/t/t3201-branch-contains.sh b/t/t3201-branch-contains.sh
index 9ef593f0e1..b4cf628d22 100755
--- a/t/t3201-branch-contains.sh
+++ b/t/t3201-branch-contains.sh
@@ -31,7 +31,7 @@ test_expect_success 'branch --contains=master' '
{
echo " master" && echo "* side"
} >expect &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -41,7 +41,7 @@ test_expect_success 'branch --contains master' '
{
echo " master" && echo "* side"
} >expect &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -51,7 +51,7 @@ test_expect_success 'branch --contains=side' '
{
echo "* side"
} >expect &&
- diff -u expect actual
+ test_cmp expect actual
'
diff --git a/t/t3300-funny-names.sh b/t/t3300-funny-names.sh
index 98c133db50..24a00a9df1 100755
--- a/t/t3300-funny-names.sh
+++ b/t/t3300-funny-names.sh
@@ -54,7 +54,7 @@ echo 'just space
no-funny
tabs ," (dq) and spaces' >expected
test_expect_success 'git ls-files -z with-funny' \
- 'git ls-files -z | tr \\000 \\012 >current &&
+ 'git ls-files -z | perl -pe y/\\000/\\012/ >current &&
git diff expected current'
t1=`git write-tree`
@@ -83,11 +83,11 @@ test_expect_success 'git diff-tree with-funny' \
echo 'A
tabs ," (dq) and spaces' >expected
test_expect_success 'git diff-index -z with-funny' \
- 'git diff-index -z --name-status $t0 | tr \\000 \\012 >current &&
+ 'git diff-index -z --name-status $t0 | perl -pe y/\\000/\\012/ >current &&
git diff expected current'
test_expect_success 'git diff-tree -z with-funny' \
- 'git diff-tree -z --name-status $t0 $t1 | tr \\000 \\012 >current &&
+ 'git diff-tree -z --name-status $t0 $t1 | perl -pe y/\\000/\\012/ >current &&
git diff expected current'
cat > expected <<\EOF
diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
index 049aa37538..9cf873f7eb 100755
--- a/t/t3404-rebase-interactive.sh
+++ b/t/t3404-rebase-interactive.sh
@@ -122,8 +122,8 @@ test_expect_success 'reflog for the branch shows state before rebase' '
test_expect_success 'exchange two commits' '
FAKE_LINES="2 1" git rebase -i HEAD~2 &&
- test H = $(git cat-file commit HEAD^ | tail -n 1) &&
- test G = $(git cat-file commit HEAD | tail -n 1)
+ test H = $(git cat-file commit HEAD^ | sed -ne \$p) &&
+ test G = $(git cat-file commit HEAD | sed -ne \$p)
'
cat > expect << EOF
@@ -146,11 +146,10 @@ EOF
test_expect_success 'stop on conflicting pick' '
git tag new-branch1 &&
! git rebase -i master &&
- diff -u expect .git/.dotest-merge/patch &&
- diff -u expect2 file1 &&
+ test_cmp expect .git/.dotest-merge/patch &&
+ test_cmp expect2 file1 &&
test 4 = $(grep -v "^#" < .git/.dotest-merge/done | wc -l) &&
- test 0 = $(grep -ve "^#" -e "^$" < .git/.dotest-merge/git-rebase-todo |
- wc -l)
+ test 0 = $(grep -c "^[^#]" < .git/.dotest-merge/git-rebase-todo)
'
test_expect_success 'abort' '
diff --git a/t/t3405-rebase-malformed.sh b/t/t3405-rebase-malformed.sh
index e4e2e649ed..e5ad67c643 100755
--- a/t/t3405-rebase-malformed.sh
+++ b/t/t3405-rebase-malformed.sh
@@ -41,8 +41,8 @@ test_expect_success rebase '
git rebase master side &&
git cat-file commit HEAD | sed -e "1,/^\$/d" >F1 &&
- diff -u F0 F1 &&
- diff -u F F0
+ test_cmp F0 F1 &&
+ test_cmp F F0
'
test_done
diff --git a/t/t3406-rebase-message.sh b/t/t3406-rebase-message.sh
index 332b2b2feb..5391080943 100755
--- a/t/t3406-rebase-message.sh
+++ b/t/t3406-rebase-message.sh
@@ -37,7 +37,7 @@ test_expect_success 'rebase -m' '
git rebase -m master >report &&
sed -n -e "/^Already applied: /p" \
-e "/^Committed: /p" report >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
diff --git a/t/t3701-add-interactive.sh b/t/t3701-add-interactive.sh
index c8dc1ac241..77c90f6fa0 100755
--- a/t/t3701-add-interactive.sh
+++ b/t/t3701-add-interactive.sh
@@ -24,7 +24,7 @@ EOF
test_expect_success 'diff works (initial)' '
(echo d; echo 1) | git add -i >output &&
sed -ne "/new file/,/content/p" <output >diff &&
- diff -u expected diff
+ test_cmp expected diff
'
test_expect_success 'revert works (initial)' '
git add file &&
@@ -57,7 +57,7 @@ EOF
test_expect_success 'diff works (commit)' '
(echo d; echo 1) | git add -i >output &&
sed -ne "/^index/,/content/p" <output >diff &&
- diff -u expected diff
+ test_cmp expected diff
'
test_expect_success 'revert works (commit)' '
git add file &&
diff --git a/t/t3800-mktag.sh b/t/t3800-mktag.sh
index f2803206f1..278075823b 100755
--- a/t/t3800-mktag.sh
+++ b/t/t3800-mktag.sh
@@ -15,7 +15,7 @@ check_verify_failure () {
expect="$2"
test_expect_success "$1" '
( ! git-mktag <tag.sig 2>message ) &&
- grep -q "$expect" message
+ grep "$expect" message
'
}
diff --git a/t/t3902-quoted.sh b/t/t3902-quoted.sh
index 73da45f18c..fe4fb5116a 100755
--- a/t/t3902-quoted.sh
+++ b/t/t3902-quoted.sh
@@ -78,28 +78,28 @@ EOF
test_expect_success 'check fully quoted output from ls-files' '
- git ls-files >current && diff -u expect.quoted current
+ git ls-files >current && test_cmp expect.quoted current
'
test_expect_success 'check fully quoted output from diff-files' '
git diff --name-only >current &&
- diff -u expect.quoted current
+ test_cmp expect.quoted current
'
test_expect_success 'check fully quoted output from diff-index' '
git diff --name-only HEAD >current &&
- diff -u expect.quoted current
+ test_cmp expect.quoted current
'
test_expect_success 'check fully quoted output from diff-tree' '
git diff --name-only HEAD^ HEAD >current &&
- diff -u expect.quoted current
+ test_cmp expect.quoted current
'
@@ -111,28 +111,28 @@ test_expect_success 'setting core.quotepath' '
test_expect_success 'check fully quoted output from ls-files' '
- git ls-files >current && diff -u expect.raw current
+ git ls-files >current && test_cmp expect.raw current
'
test_expect_success 'check fully quoted output from diff-files' '
git diff --name-only >current &&
- diff -u expect.raw current
+ test_cmp expect.raw current
'
test_expect_success 'check fully quoted output from diff-index' '
git diff --name-only HEAD >current &&
- diff -u expect.raw current
+ test_cmp expect.raw current
'
test_expect_success 'check fully quoted output from diff-tree' '
git diff --name-only HEAD^ HEAD >current &&
- diff -u expect.raw current
+ test_cmp expect.raw current
'
diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
index aa282e1bc1..2d3ee3b78c 100755
--- a/t/t3903-stash.sh
+++ b/t/t3903-stash.sh
@@ -34,7 +34,7 @@ EOF
test_expect_success 'parents of stash' '
test $(git rev-parse stash^) = $(git rev-parse HEAD) &&
git diff stash^2..stash > output &&
- diff -u output expect
+ test_cmp output expect
'
test_expect_success 'apply needs clean working directory' '
diff --git a/t/t4020-diff-external.sh b/t/t4020-diff-external.sh
index 888293361d..637b4e19d5 100755
--- a/t/t4020-diff-external.sh
+++ b/t/t4020-diff-external.sh
@@ -99,11 +99,12 @@ test_expect_success 'no diff with -diff' '
git diff | grep Binary
'
-echo NULZbetweenZwords | tr Z '\000' > file
+echo NULZbetweenZwords | perl -pe 'y/Z/\000/' > file
test_expect_success 'force diff with "diff"' '
echo >.gitattributes "file diff" &&
- git diff | grep -a second
+ git diff >actual &&
+ test_cmp ../t4020/diff.NUL actual
'
test_done
diff --git a/t/t4020/diff.NUL b/t/t4020/diff.NUL
new file mode 100644
index 0000000000..db2f89090c
--- /dev/null
+++ b/t/t4020/diff.NUL
Binary files differ
diff --git a/t/t4021-format-patch-signer-mime.sh b/t/t4021-format-patch-signer-mime.sh
index 67a70fadab..ba43f18549 100755
--- a/t/t4021-format-patch-signer-mime.sh
+++ b/t/t4021-format-patch-signer-mime.sh
@@ -32,11 +32,19 @@ test_expect_success 'format with signoff without funny signer name' '
test_expect_success 'format with non ASCII signer name' '
- GIT_COMMITTER_NAME="$B$O$^$N(B $B$U$K$*$&(B" \
+ GIT_COMMITTER_NAME="ã¯ã¾ã® ãµã«ãŠã†" \
git format-patch -s --stdout -1 >output &&
grep Content-Type output
'
+test_expect_success 'attach and signoff do not duplicate mime headers' '
+
+ GIT_COMMITTER_NAME="ã¯ã¾ã® ãµã«ãŠã†" \
+ git format-patch -s --stdout -1 --attach >output &&
+ test `grep -ci ^MIME-Version: output` = 1
+
+'
+
test_done
diff --git a/t/t4022-diff-rewrite.sh b/t/t4022-diff-rewrite.sh
index 6de4acbd44..bf996fc414 100755
--- a/t/t4022-diff-rewrite.sh
+++ b/t/t4022-diff-rewrite.sh
@@ -8,7 +8,10 @@ test_expect_success setup '
cat ../../COPYING >test &&
git add test &&
- tr 'a-zA-Z' 'n-za-mN-ZA-M' <../../COPYING >test
+ tr \
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" \
+ "nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM" \
+ <../../COPYING >test
'
diff --git a/t/t4023-diff-rename-typechange.sh b/t/t4023-diff-rename-typechange.sh
index 255604effd..4dbfc6e8b7 100755
--- a/t/t4023-diff-rename-typechange.sh
+++ b/t/t4023-diff-rename-typechange.sh
@@ -57,7 +57,7 @@ test_expect_success 'cross renames to be detected for regular files' '
echo "R100 foo bar"
echo "R100 bar foo"
} | sort >expect &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -68,7 +68,7 @@ test_expect_success 'cross renames to be detected for typechange' '
echo "R100 foo bar"
echo "R100 bar foo"
} | sort >expect &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -79,7 +79,7 @@ test_expect_success 'moves and renames' '
echo "R100 foo bar"
echo "T100 foo"
} | sort >expect &&
- diff -u expect actual
+ test_cmp expect actual
'
diff --git a/t/t4024-diff-optimize-common.sh b/t/t4024-diff-optimize-common.sh
index 3c66102f7a..c4d733f5db 100755
--- a/t/t4024-diff-optimize-common.sh
+++ b/t/t4024-diff-optimize-common.sh
@@ -150,7 +150,7 @@ test_expect_success 'diff -U0' '
do
git diff -U0 file-?$n
done | zc >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
diff --git a/t/t4025-hunk-header.sh b/t/t4025-hunk-header.sh
index 9ba06b74ce..7a3dbc1ea2 100755
--- a/t/t4025-hunk-header.sh
+++ b/t/t4025-hunk-header.sh
@@ -37,7 +37,7 @@ test_expect_success 'hunk header truncation with an overly long line' '
echo " A $N$N$N$N$N$N$N$N$N2"
echo " L $N$N$N$N$N$N$N$N$N1"
) >expected &&
- diff -u actual expected
+ test_cmp actual expected
'
diff --git a/t/t4027-diff-submodule.sh b/t/t4027-diff-submodule.sh
index 3d2d0816a3..1fd3fb74d7 100755
--- a/t/t4027-diff-submodule.sh
+++ b/t/t4027-diff-submodule.sh
@@ -37,17 +37,17 @@ test_expect_success setup '
test_expect_success 'git diff --raw HEAD' '
git diff --raw --abbrev=40 HEAD >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
test_expect_success 'git diff-index --raw HEAD' '
git diff-index --raw HEAD >actual.index &&
- diff -u expect actual.index
+ test_cmp expect actual.index
'
test_expect_success 'git diff-files --raw' '
git diff-files --raw >actual.files &&
- diff -u expect actual.files
+ test_cmp expect actual.files
'
test_done
diff --git a/t/t4028-format-patch-mime-headers.sh b/t/t4028-format-patch-mime-headers.sh
new file mode 100755
index 0000000000..204ba673cb
--- /dev/null
+++ b/t/t4028-format-patch-mime-headers.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+test_description='format-patch mime headers and extra headers do not conflict'
+. ./test-lib.sh
+
+test_expect_success 'create commit with utf-8 body' '
+ echo content >file &&
+ git add file &&
+ git commit -m one &&
+ echo more >>file &&
+ git commit -a -m "two
+
+ utf-8 body: ñ"
+'
+
+test_expect_success 'patch has mime headers' '
+ rm -f 0001-two.patch &&
+ git format-patch HEAD^ &&
+ grep -i "content-type: text/plain; charset=utf-8" 0001-two.patch
+'
+
+test_expect_success 'patch has mime and extra headers' '
+ rm -f 0001-two.patch &&
+ git config format.headers "x-foo: bar" &&
+ git format-patch HEAD^ &&
+ grep -i "x-foo: bar" 0001-two.patch &&
+ grep -i "content-type: text/plain; charset=utf-8" 0001-two.patch
+'
+
+test_done
diff --git a/t/t4103-apply-binary.sh b/t/t4103-apply-binary.sh
index 7c25634fc2..1b58233da6 100755
--- a/t/t4103-apply-binary.sh
+++ b/t/t4103-apply-binary.sh
@@ -24,10 +24,10 @@ git update-index --add --remove file1 file2 file4
git-commit -m 'Initial Version' 2>/dev/null
git-checkout -b binary
-tr 'x' '\000' <file1 >file3
+perl -pe 'y/x/\000/' <file1 >file3
cat file3 >file4
git add file2
-tr '\000' 'v' <file3 >file1
+perl -pe 'y/\000/v/' <file3 >file1
rm -f file2
git update-index --add --remove file1 file2 file3 file4
git-commit -m 'Second Version'
diff --git a/t/t4105-apply-fuzz.sh b/t/t4105-apply-fuzz.sh
index 0e8d25f18b..3266e39400 100755
--- a/t/t4105-apply-fuzz.sh
+++ b/t/t4105-apply-fuzz.sh
@@ -9,7 +9,7 @@ dotest () {
test_expect_success "$name" "
git checkout-index -f -q -u file &&
git apply $* &&
- diff -u expect file
+ test_cmp expect file
"
}
diff --git a/t/t4116-apply-reverse.sh b/t/t4116-apply-reverse.sh
index b1d35ab04d..c3f4579007 100755
--- a/t/t4116-apply-reverse.sh
+++ b/t/t4116-apply-reverse.sh
@@ -12,14 +12,14 @@ test_description='git apply in reverse
test_expect_success setup '
for i in a b c d e f g h i j k l m n; do echo $i; done >file1 &&
- tr "ijk" '\''\000\001\002'\'' <file1 >file2 &&
+ perl -pe "y/ijk/\\000\\001\\002/" <file1 >file2 &&
git add file1 file2 &&
git commit -m initial &&
git tag initial &&
for i in a b c g h i J K L m o n p q; do echo $i; done >file1 &&
- tr "mon" '\''\000\001\002'\'' <file1 >file2 &&
+ perl -pe "y/mon/\\000\\001\\002/" <file1 >file2 &&
git commit -a -m second &&
git tag second &&
diff --git a/t/t4125-apply-ws-fuzz.sh b/t/t4125-apply-ws-fuzz.sh
index d6f15be671..3b471b641b 100755
--- a/t/t4125-apply-ws-fuzz.sh
+++ b/t/t4125-apply-ws-fuzz.sh
@@ -56,7 +56,7 @@ test_expect_success nofix '
git apply --whitespace=nowarn patch-1 &&
# The result should obviously match.
- diff -u file-1 file
+ test_cmp file-1 file
'
test_expect_success 'withfix (forward)' '
@@ -70,7 +70,7 @@ test_expect_success 'withfix (forward)' '
git apply --whitespace=fix patch-0 &&
git apply --whitespace=fix patch-1 &&
- diff -u file-fixed file
+ test_cmp file-fixed file
'
test_expect_success 'withfix (backward)' '
@@ -91,12 +91,12 @@ test_expect_success 'withfix (backward)' '
sed -e /h/d file-fixed >fixed-head &&
sed -e /h/d file >file-head &&
- diff -u fixed-head file-head &&
+ test_cmp fixed-head file-head &&
sed -n -e /h/p file-fixed >fixed-tail &&
sed -n -e /h/p file >file-tail &&
- ! diff -u fixed-tail file-tail
+ ! test_cmp fixed-tail file-tail
'
diff --git a/t/t4150-am-subdir.sh b/t/t4150-am-subdir.sh
index 929d2cbd87..52069b469b 100755
--- a/t/t4150-am-subdir.sh
+++ b/t/t4150-am-subdir.sh
@@ -22,14 +22,14 @@ test_expect_success 'am regularly from stdin' '
git checkout initial &&
git am <patchfile &&
git diff master >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
test_expect_success 'am regularly from file' '
git checkout initial &&
git am patchfile &&
git diff master >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
test_expect_success 'am regularly from stdin in subdirectory' '
@@ -41,7 +41,7 @@ test_expect_success 'am regularly from stdin in subdirectory' '
git am <../patchfile
) &&
git diff master>actual &&
- diff -u expect actual
+ test_cmp expect actual
'
test_expect_success 'am regularly from file in subdirectory' '
@@ -53,7 +53,7 @@ test_expect_success 'am regularly from file in subdirectory' '
git am ../patchfile
) &&
git diff master >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
test_expect_success 'am regularly from file in subdirectory with full path' '
@@ -66,7 +66,7 @@ test_expect_success 'am regularly from file in subdirectory with full path' '
git am "$P/patchfile"
) &&
git diff master >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
test_done
diff --git a/t/t4200-rerere.sh b/t/t4200-rerere.sh
index eeff3c9c07..3cbfee704e 100755
--- a/t/t4200-rerere.sh
+++ b/t/t4200-rerere.sh
@@ -129,7 +129,7 @@ test_expect_success 'rerere kicked in' "! grep ======= a1"
test_expect_success 'rerere prefers first change' 'git diff a1 expect'
rm $rr/postimage
-echo "$sha1 a1" | tr '\012' '\000' > .git/rr-cache/MERGE_RR
+echo "$sha1 a1" | perl -pe 'y/\012/\000/' > .git/rr-cache/MERGE_RR
test_expect_success 'rerere clear' 'git rerere clear'
diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index 6d12efb74d..405b971191 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -45,6 +45,11 @@ A U Thor (5):
EOF
-test_expect_success 'shortlog wrapping' 'diff -u expect out'
+test_expect_success 'shortlog wrapping' 'test_cmp expect out'
+
+git log HEAD > log
+GIT_DIR=non-existing git shortlog -w < log > out
+
+test_expect_success 'shortlog from non-git directory' 'test_cmp expect out'
test_done
diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh
index cd3c149800..c955fe44f5 100755
--- a/t/t5300-pack-object.sh
+++ b/t/t5300-pack-object.sh
@@ -15,7 +15,7 @@ test_expect_success \
'rm -f .git/index*
for i in a b c
do
- dd if=/dev/zero bs=4k count=1 | tr "\\000" $i >$i &&
+ dd if=/dev/zero bs=4k count=1 | perl -pe "y/\\000/$i/" >$i &&
git update-index --add $i || return 1
done &&
cat c >d && echo foo >>d && git update-index --add d &&
diff --git a/t/t5302-pack-index.sh b/t/t5302-pack-index.sh
index 67b9a7b84a..b88b5bbd02 100755
--- a/t/t5302-pack-index.sh
+++ b/t/t5302-pack-index.sh
@@ -103,7 +103,7 @@ test_expect_success \
test_expect_success \
'[index v1] 2) create a stealth corruption in a delta base reference' \
'# this test assumes a delta smaller than 16 bytes at the end of the pack
- git show-index <1.idx | sort -n | tail -n 1 | (
+ git show-index <1.idx | sort -n | sed -ne \$p | (
read delta_offs delta_sha1 &&
git cat-file blob "$delta_sha1" > blob_1 &&
chmod +w ".git/objects/pack/pack-${pack1}.pack" &&
@@ -141,7 +141,7 @@ test_expect_success \
test_expect_success \
'[index v2] 2) create a stealth corruption in a delta base reference' \
'# this test assumes a delta smaller than 16 bytes at the end of the pack
- git show-index <1.idx | sort -n | tail -n 1 | (
+ git show-index <1.idx | sort -n | sed -ne \$p | (
read delta_offs delta_sha1 delta_crc &&
git cat-file blob "$delta_sha1" > blob_3 &&
chmod +w ".git/objects/pack/pack-${pack1}.pack" &&
diff --git a/t/t5304-prune.sh b/t/t5304-prune.sh
index 6560af756e..47090c4cf5 100644
--- a/t/t5304-prune.sh
+++ b/t/t5304-prune.sh
@@ -29,4 +29,53 @@ test_expect_success 'prune stale packs' '
'
+test_expect_success 'prune --expire' '
+
+ before=$(git count-objects | sed "s/ .*//") &&
+ BLOB=$(echo aleph | git hash-object -w --stdin) &&
+ BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
+ test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
+ test -f $BLOB_FILE &&
+ git prune --expire=1.hour.ago &&
+ test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
+ test -f $BLOB_FILE &&
+ test-chmtime -86500 $BLOB_FILE &&
+ git prune --expire 1.day &&
+ test $before = $(git count-objects | sed "s/ .*//") &&
+ ! test -f $BLOB_FILE
+
+'
+
+test_expect_success 'gc: implicit prune --expire' '
+
+ before=$(git count-objects | sed "s/ .*//") &&
+ BLOB=$(echo aleph_0 | git hash-object -w --stdin) &&
+ BLOB_FILE=.git/objects/$(echo $BLOB | sed "s/^../&\//") &&
+ test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
+ test -f $BLOB_FILE &&
+ test-chmtime -$((86400*14-30)) $BLOB_FILE &&
+ git gc &&
+ test $((1 + $before)) = $(git count-objects | sed "s/ .*//") &&
+ test -f $BLOB_FILE &&
+ test-chmtime -$((86400*14+1)) $BLOB_FILE &&
+ git gc &&
+ test $before = $(git count-objects | sed "s/ .*//") &&
+ ! test -f $BLOB_FILE
+
+'
+
+test_expect_success 'gc: refuse to start with invalid gc.pruneExpire' '
+
+ git config gc.pruneExpire invalid &&
+ test_must_fail git gc
+
+'
+
+test_expect_success 'gc: start with ok gc.pruneExpire' '
+
+ git config gc.pruneExpire 2.days.ago &&
+ git gc
+
+'
+
test_done
diff --git a/t/t5400-send-pack.sh b/t/t5400-send-pack.sh
index 2d0c07fd6a..2b6b6e3f71 100755
--- a/t/t5400-send-pack.sh
+++ b/t/t5400-send-pack.sh
@@ -120,7 +120,7 @@ test_expect_success \
cd .. &&
git-clone parent child && cd child && git-push --all &&
cd ../parent &&
- git-branch -a >branches && ! grep -q origin/master branches
+ git-branch -a >branches && ! grep origin/master branches
'
rewound_push_setup() {
diff --git a/t/t5505-remote.sh b/t/t5505-remote.sh
index 2822a651b5..004a8dc5ed 100755
--- a/t/t5505-remote.sh
+++ b/t/t5505-remote.sh
@@ -24,7 +24,7 @@ setup_repository () {
tokens_match () {
echo "$1" | tr ' ' '\012' | sort | sed -e '/^$/d' >expect &&
echo "$2" | tr ' ' '\012' | sort | sed -e '/^$/d' >actual &&
- diff -u expect actual
+ test_cmp expect actual
}
check_remote_track () {
@@ -73,7 +73,7 @@ test_expect_success 'add another remote' '
sed -e "/^refs\/remotes\/origin\//d" \
-e "/^refs\/remotes\/second\//d" >actual &&
>expect &&
- diff -u expect actual
+ test_cmp expect actual
)
'
@@ -93,7 +93,7 @@ test_expect_success 'remove remote' '
git for-each-ref "--format=%(refname)" refs/remotes |
sed -e "/^refs\/remotes\/origin\//d" >actual &&
>expect &&
- diff -u expect actual
+ test_cmp expect actual
)
'
@@ -237,4 +237,14 @@ test_expect_success 'update default (overridden, with funny whitespace)' '
'
+test_expect_success '"remote show" does not show symbolic refs' '
+
+ git clone one three &&
+ (cd three &&
+ git remote show origin > output &&
+ ! grep HEAD < output &&
+ ! grep -i stale < output)
+
+'
+
test_done
diff --git a/t/t5510-fetch.sh b/t/t5510-fetch.sh
index 9b948c14e6..6946557c67 100755
--- a/t/t5510-fetch.sh
+++ b/t/t5510-fetch.sh
@@ -249,7 +249,7 @@ test_expect_success 'bundle should record HEAD correctly' '
do
echo "$(git rev-parse --verify $h) $h"
done >expect &&
- diff -u expect actual
+ test_cmp expect actual
'
diff --git a/t/t5511-refspec.sh b/t/t5511-refspec.sh
new file mode 100755
index 0000000000..670a8f1c99
--- /dev/null
+++ b/t/t5511-refspec.sh
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+test_description='refspec parsing'
+
+. ./test-lib.sh
+
+test_refspec () {
+
+ kind=$1 refspec=$2 expect=$3
+ git config remote.frotz.url "." &&
+ git config --remove-section remote.frotz &&
+ git config remote.frotz.url "." &&
+ git config "remote.frotz.$kind" "$refspec" &&
+ if test "$expect" != invalid
+ then
+ title="$kind $refspec"
+ test='git ls-remote frotz'
+ else
+ title="$kind $refspec (invalid)"
+ test='test_must_fail git ls-remote frotz'
+ fi
+ test_expect_success "$title" "$test"
+}
+
+test_refspec push '' invalid
+test_refspec push ':' invalid
+
+test_refspec fetch ''
+test_refspec fetch ':'
+
+test_refspec push 'refs/heads/*:refs/remotes/frotz/*'
+test_refspec push 'refs/heads/*:refs/remotes/frotz' invalid
+test_refspec push 'refs/heads:refs/remotes/frotz/*' invalid
+test_refspec push 'refs/heads/master:refs/remotes/frotz/xyzzy'
+
+
+# These have invalid LHS, but we do not have a formal "valid sha-1
+# expression syntax checker" so they are not checked with the current
+# code. They will be caught downstream anyway, but we may want to
+# have tighter check later...
+
+: test_refspec push 'refs/heads/master::refs/remotes/frotz/xyzzy' invalid
+: test_refspec push 'refs/heads/maste :refs/remotes/frotz/xyzzy' invalid
+
+test_refspec fetch 'refs/heads/*:refs/remotes/frotz/*'
+test_refspec fetch 'refs/heads/*:refs/remotes/frotz' invalid
+test_refspec fetch 'refs/heads:refs/remotes/frotz/*' invalid
+test_refspec fetch 'refs/heads/master:refs/remotes/frotz/xyzzy'
+test_refspec fetch 'refs/heads/master::refs/remotes/frotz/xyzzy' invalid
+test_refspec fetch 'refs/heads/maste :refs/remotes/frotz/xyzzy' invalid
+
+test_refspec push 'master~1:refs/remotes/frotz/backup'
+test_refspec fetch 'master~1:refs/remotes/frotz/backup' invalid
+test_refspec push 'HEAD~4:refs/remotes/frotz/new'
+test_refspec fetch 'HEAD~4:refs/remotes/frotz/new' invalid
+
+test_refspec push 'HEAD'
+test_refspec fetch 'HEAD'
+test_refspec push 'refs/heads/ nitfol' invalid
+test_refspec fetch 'refs/heads/ nitfol' invalid
+
+test_refspec push 'HEAD:' invalid
+test_refspec fetch 'HEAD:'
+test_refspec push 'refs/heads/ nitfol:' invalid
+test_refspec fetch 'refs/heads/ nitfol:' invalid
+
+test_refspec push ':refs/remotes/frotz/deleteme'
+test_refspec fetch ':refs/remotes/frotz/HEAD-to-me'
+test_refspec push ':refs/remotes/frotz/delete me' invalid
+test_refspec fetch ':refs/remotes/frotz/HEAD to me' invalid
+
+test_done
diff --git a/t/t5512-ls-remote.sh b/t/t5512-ls-remote.sh
index 6ec5f7c48b..c0dc94909b 100755
--- a/t/t5512-ls-remote.sh
+++ b/t/t5512-ls-remote.sh
@@ -24,28 +24,28 @@ test_expect_success setup '
test_expect_success 'ls-remote --tags .git' '
git ls-remote --tags .git >actual &&
- diff -u expected.tag actual
+ test_cmp expected.tag actual
'
test_expect_success 'ls-remote .git' '
git ls-remote .git >actual &&
- diff -u expected.all actual
+ test_cmp expected.all actual
'
test_expect_success 'ls-remote --tags self' '
git ls-remote --tags self >actual &&
- diff -u expected.tag actual
+ test_cmp expected.tag actual
'
test_expect_success 'ls-remote self' '
git ls-remote self >actual &&
- diff -u expected.all actual
+ test_cmp expected.all actual
'
diff --git a/t/t6000lib.sh b/t/t6000lib.sh
index 180633e1e0..c0baaa5360 100755
--- a/t/t6000lib.sh
+++ b/t/t6000lib.sh
@@ -97,7 +97,13 @@ check_output()
# from front and back.
name_from_description()
{
- tr "'" '-' | tr '~`!@#$%^&*()_+={}[]|\;:"<>,/? ' '-' | tr -s '-' | tr '[A-Z]' '[a-z]' | sed "s/^-*//;s/-*\$//"
+ perl -pe '
+ s/[^A-Za-z0-9.]/-/g;
+ s/-+/-/g;
+ s/-$//;
+ s/^-//;
+ y/A-Z/a-z/;
+ '
}
diff --git a/t/t6004-rev-list-path-optim.sh b/t/t6004-rev-list-path-optim.sh
index 80d71988b8..5dabf1c5e3 100755
--- a/t/t6004-rev-list-path-optim.sh
+++ b/t/t6004-rev-list-path-optim.sh
@@ -45,7 +45,7 @@ test_expect_success 'further setup' '
test_expect_success 'path optimization 2' '
( echo "$side"; echo "$initial" ) >expected &&
git rev-list HEAD -- a >actual &&
- diff -u expected actual
+ test_cmp expected actual
'
test_done
diff --git a/t/t6009-rev-list-parent.sh b/t/t6009-rev-list-parent.sh
index be3d238d99..c8a96a9a99 100755
--- a/t/t6009-rev-list-parent.sh
+++ b/t/t6009-rev-list-parent.sh
@@ -27,11 +27,11 @@ test_expect_success setup '
git log --pretty=oneline --abbrev-commit
'
-test_expect_failure 'one is ancestor of others and should not be shown' '
+test_expect_success 'one is ancestor of others and should not be shown' '
git rev-list one --not four >result &&
>expect &&
- diff -u expect result
+ test_cmp expect result
'
diff --git a/t/t6027-merge-binary.sh b/t/t6027-merge-binary.sh
index a7358f75b1..92ca1f0f8c 100755
--- a/t/t6027-merge-binary.sh
+++ b/t/t6027-merge-binary.sh
@@ -45,7 +45,7 @@ test_expect_success resolve '
false
else
git ls-files -s >current
- diff -u current expect
+ test_cmp current expect
fi
'
@@ -60,7 +60,7 @@ test_expect_success recursive '
false
else
git ls-files -s >current
- diff -u current expect
+ test_cmp current expect
fi
'
diff --git a/t/t6029-merge-subtree.sh b/t/t6029-merge-subtree.sh
index 35d66e8044..43f5459c35 100755
--- a/t/t6029-merge-subtree.sh
+++ b/t/t6029-merge-subtree.sh
@@ -25,7 +25,7 @@ test_expect_success 'subtree available and works like recursive' '
git merge -s subtree side &&
for i in mundo $s world; do echo $i; done >expect &&
- diff -u expect hello
+ test_cmp expect hello
'
diff --git a/t/t6030-bisect-porcelain.sh b/t/t6030-bisect-porcelain.sh
index 4908e878fe..f471c1526f 100755
--- a/t/t6030-bisect-porcelain.sh
+++ b/t/t6030-bisect-porcelain.sh
@@ -219,7 +219,7 @@ test_expect_success 'bisect run & skip: cannot tell between 2' '
add_line_into_file "6: Yet a line." hello &&
HASH6=$(git rev-parse --verify HEAD) &&
echo "#"\!"/bin/sh" > test_script.sh &&
- echo "tail -1 hello | grep Ciao > /dev/null && exit 125" >> test_script.sh &&
+ echo "sed -ne \\\$p hello | grep Ciao > /dev/null && exit 125" >> test_script.sh &&
echo "grep line hello > /dev/null" >> test_script.sh &&
echo "test \$? -ne 0" >> test_script.sh &&
chmod +x test_script.sh &&
@@ -244,8 +244,8 @@ test_expect_success 'bisect run & skip: find first bad' '
add_line_into_file "7: Should be the last line." hello &&
HASH7=$(git rev-parse --verify HEAD) &&
echo "#"\!"/bin/sh" > test_script.sh &&
- echo "tail -1 hello | grep Ciao > /dev/null && exit 125" >> test_script.sh &&
- echo "tail -1 hello | grep day > /dev/null && exit 125" >> test_script.sh &&
+ echo "sed -ne \\\$p hello | grep Ciao > /dev/null && exit 125" >> test_script.sh &&
+ echo "sed -ne \\\$p hello | grep day > /dev/null && exit 125" >> test_script.sh &&
echo "grep Yet hello > /dev/null" >> test_script.sh &&
echo "test \$? -ne 0" >> test_script.sh &&
chmod +x test_script.sh &&
diff --git a/t/t6031-merge-recursive.sh b/t/t6031-merge-recursive.sh
new file mode 100755
index 0000000000..c8310aee4f
--- /dev/null
+++ b/t/t6031-merge-recursive.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+test_description='merge-recursive: handle file mode'
+. ./test-lib.sh
+
+test_expect_success 'mode change in one branch: keep changed version' '
+ : >file1 &&
+ git add file1 &&
+ git commit -m initial &&
+ git checkout -b a1 master &&
+ : >dummy &&
+ git add dummy &&
+ git commit -m a &&
+ git checkout -b b1 master &&
+ chmod +x file1 &&
+ git add file1 &&
+ git commit -m b1 &&
+ git checkout a1 &&
+ git merge-recursive master -- a1 b1 &&
+ test -x file1
+'
+
+test_expect_success 'mode change in both branches: expect conflict' '
+ git reset --hard HEAD &&
+ git checkout -b a2 master &&
+ : >file2 &&
+ H=$(git hash-object file2) &&
+ chmod +x file2 &&
+ git add file2 &&
+ git commit -m a2 &&
+ git checkout -b b2 master &&
+ : >file2 &&
+ git add file2 &&
+ git commit -m b2 &&
+ git checkout a2 &&
+ (
+ git merge-recursive master -- a2 b2
+ test $? = 1
+ ) &&
+ git ls-files -u >actual &&
+ (
+ echo "100755 $H 2 file2"
+ echo "100644 $H 3 file2"
+ ) >expect &&
+ test_cmp actual expect &&
+ test -x file2
+'
+
+test_done
diff --git a/t/t7003-filter-branch.sh b/t/t7003-filter-branch.sh
index 6e14bf1c7f..6827249da5 100755
--- a/t/t7003-filter-branch.sh
+++ b/t/t7003-filter-branch.sh
@@ -4,7 +4,7 @@ test_description='git-filter-branch'
. ./test-lib.sh
make_commit () {
- lower=$(echo $1 | tr A-Z a-z)
+ lower=$(echo $1 | tr '[A-Z]' '[a-z]')
echo $lower > $lower
git add $lower
test_tick
@@ -78,7 +78,7 @@ test_expect_success 'filter subdirectory only' '
test_expect_success 'subdirectory filter result looks okay' '
test 2 = $(git rev-list sub | wc -l) &&
git show sub:new &&
- ! git show sub:subdir
+ test_must_fail git show sub:subdir
'
test_expect_success 'setup and filter history that requires --full-history' '
@@ -100,7 +100,7 @@ test_expect_success 'subdirectory filter result looks okay' '
test 3 = $(git rev-list -1 --parents sub-master | wc -w) &&
git show sub-master^:new &&
git show sub-master^2:new &&
- ! git show sub:subdir
+ test_must_fail git show sub:subdir
'
test_expect_success 'use index-filter to move into a subdirectory' '
@@ -114,7 +114,7 @@ test_expect_success 'use index-filter to move into a subdirectory' '
test_expect_success 'stops when msg filter fails' '
old=$(git rev-parse HEAD) &&
- ! git-filter-branch -f --msg-filter false HEAD &&
+ test_must_fail git-filter-branch -f --msg-filter false HEAD &&
test $old = $(git rev-parse HEAD) &&
rm -rf .git-rewrite
'
@@ -151,8 +151,8 @@ test_expect_success "remove a certain author's commits" '
'
test_expect_success 'barf on invalid name' '
- ! git filter-branch -f master xy-problem &&
- ! git filter-branch -f HEAD^
+ test_must_fail git filter-branch -f master xy-problem &&
+ test_must_fail git filter-branch -f HEAD^
'
test_expect_success '"map" works in commit filter' '
@@ -174,7 +174,7 @@ test_expect_success 'Name needing quotes' '
git add foo &&
git commit -m "Adding a file" &&
git filter-branch --tree-filter "rm -fr foo" &&
- ! git ls-files --error-unmatch "foo/$name" &&
+ test_must_fail git ls-files --error-unmatch "foo/$name" &&
test $(git rev-parse --verify rerere) != $(git rev-parse --verify A)
'
diff --git a/t/t7010-setup.sh b/t/t7010-setup.sh
index bc8ab6a619..02cf7c5c9d 100755
--- a/t/t7010-setup.sh
+++ b/t/t7010-setup.sh
@@ -18,7 +18,7 @@ test_expect_success 'git add (absolute)' '
git add "$D/a/b/c/d" &&
git ls-files >current &&
echo a/b/c/d >expect &&
- diff -u expect current
+ test_cmp expect current
'
@@ -32,7 +32,7 @@ test_expect_success 'git add (funny relative)' '
) &&
git ls-files >current &&
echo a/e/f >expect &&
- diff -u expect current
+ test_cmp expect current
'
@@ -43,7 +43,7 @@ test_expect_success 'git rm (absolute)' '
git rm -f --cached "$D/a/b/c/d" &&
git ls-files >current &&
echo a/e/f >expect &&
- diff -u expect current
+ test_cmp expect current
'
@@ -57,7 +57,7 @@ test_expect_success 'git rm (funny relative)' '
) &&
git ls-files >current &&
echo a/b/c/d >expect &&
- diff -u expect current
+ test_cmp expect current
'
@@ -67,7 +67,7 @@ test_expect_success 'git ls-files (absolute)' '
git add a &&
git ls-files "$D/a/e/../b" >current &&
echo a/b/c/d >expect &&
- diff -u expect current
+ test_cmp expect current
'
@@ -80,7 +80,7 @@ test_expect_success 'git ls-files (relative #1)' '
git ls-files "../b/c"
) >current &&
echo c/d >expect &&
- diff -u expect current
+ test_cmp expect current
'
@@ -93,7 +93,7 @@ test_expect_success 'git ls-files (relative #2)' '
git ls-files --full-name "../e/f"
) >current &&
echo a/e/f >expect &&
- diff -u expect current
+ test_cmp expect current
'
@@ -126,13 +126,13 @@ test_expect_success 'log using absolute path names' '
git log a/b/c/d >f1.txt &&
git log "$(pwd)/a/b/c/d" >f2.txt &&
- diff -u f1.txt f2.txt
+ test_cmp f1.txt f2.txt
'
test_expect_success 'blame using absolute path names' '
git blame a/b/c/d >f1.txt &&
git blame "$(pwd)/a/b/c/d" >f2.txt &&
- diff -u f1.txt f2.txt
+ test_cmp f1.txt f2.txt
'
test_expect_success 'setup deeper work tree' '
diff --git a/t/t7201-co.sh b/t/t7201-co.sh
index 63915cd87b..3111baa9e3 100755
--- a/t/t7201-co.sh
+++ b/t/t7201-co.sh
@@ -83,13 +83,13 @@ test_expect_success "checkout with unrelated dirty tree without -m" '
fill 0 1 2 3 4 5 6 7 8 >same &&
cp same kept
git checkout side >messages &&
- diff -u same kept
+ test_cmp same kept
(cat > messages.expect <<EOF
M same
EOF
) &&
touch messages.expect &&
- diff -u messages.expect messages
+ test_cmp messages.expect messages
'
test_expect_success "checkout -m with dirty tree" '
@@ -106,19 +106,19 @@ test_expect_success "checkout -m with dirty tree" '
M one
EOF
) &&
- diff -u expect.messages messages &&
+ test_cmp expect.messages messages &&
fill "M one" "A three" "D two" >expect.master &&
git diff --name-status master >current.master &&
- diff -u expect.master current.master &&
+ test_cmp expect.master current.master &&
fill "M one" >expect.side &&
git diff --name-status side >current.side &&
- diff -u expect.side current.side &&
+ test_cmp expect.side current.side &&
: >expect.index &&
git diff --cached >current.index &&
- diff -u expect.index current.index
+ test_cmp expect.index current.index
'
test_expect_success "checkout -m with dirty tree, renamed" '
@@ -136,7 +136,7 @@ test_expect_success "checkout -m with dirty tree, renamed" '
git checkout -m renamer &&
fill 1 3 4 5 7 8 >expect &&
- diff -u expect uno &&
+ test_cmp expect uno &&
! test -f one &&
git diff --cached >current &&
! test -s current
@@ -161,7 +161,7 @@ test_expect_success 'checkout -m with merge conflict' '
git diff master:one :3:uno |
sed -e "1,/^@@/d" -e "/^ /d" -e "s/^-/d/" -e "s/^+/a/" >current &&
fill d2 aT d7 aS >expect &&
- diff -u current expect &&
+ test_cmp current expect &&
git diff --cached two >current &&
! test -s current
'
@@ -178,7 +178,7 @@ If you want to create a new branch from this checkout, you may do so
HEAD is now at 7329388... Initial A one, A two
EOF
) &&
- diff -u messages.expect messages &&
+ test_cmp messages.expect messages &&
H=$(git rev-parse --verify HEAD) &&
M=$(git show-ref -s --verify refs/heads/master) &&
test "z$H" = "z$M" &&
diff --git a/t/t7401-submodule-summary.sh b/t/t7401-submodule-summary.sh
new file mode 100755
index 0000000000..0f3c42ab35
--- /dev/null
+++ b/t/t7401-submodule-summary.sh
@@ -0,0 +1,195 @@
+#!/bin/sh
+#
+# Copyright (c) 2008 Ping Yin
+#
+
+test_description='Summary support for submodules
+
+This test tries to verify the sanity of summary subcommand of git-submodule.
+'
+
+. ./test-lib.sh
+
+add_file () {
+ sm=$1
+ shift
+ owd=$(pwd)
+ cd "$sm"
+ for name; do
+ echo "$name" > "$name" &&
+ git add "$name" &&
+ test_tick &&
+ git commit -m "Add $name"
+ done >/dev/null
+ git rev-parse --verify HEAD | cut -c1-7
+ cd "$owd"
+}
+commit_file () {
+ test_tick &&
+ git commit "$@" -m "Commit $*" >/dev/null
+}
+
+test_create_repo sm1 &&
+add_file . foo
+
+head1=$(add_file sm1 foo1 foo2)
+
+test_expect_success 'added submodule' "
+ git add sm1 &&
+ git submodule summary >actual &&
+ diff actual - <<-EOF
+* sm1 0000000...$head1 (2):
+ > Add foo2
+
+EOF
+"
+
+commit_file sm1 &&
+head2=$(add_file sm1 foo3)
+
+test_expect_success 'modified submodule(forward)' "
+ git submodule summary >actual &&
+ diff actual - <<-EOF
+* sm1 $head1...$head2 (1):
+ > Add foo3
+
+EOF
+"
+
+commit_file sm1 &&
+cd sm1 &&
+git reset --hard HEAD~2 >/dev/null &&
+head3=$(git rev-parse --verify HEAD | cut -c1-7) &&
+cd ..
+
+test_expect_success 'modified submodule(backward)' "
+ git submodule summary >actual &&
+ diff actual - <<-EOF
+* sm1 $head2...$head3 (2):
+ < Add foo3
+ < Add foo2
+
+EOF
+"
+
+head4=$(add_file sm1 foo4 foo5) &&
+head4_full=$(GIT_DIR=sm1/.git git rev-parse --verify HEAD)
+test_expect_success 'modified submodule(backward and forward)' "
+ git submodule summary >actual &&
+ diff actual - <<-EOF
+* sm1 $head2...$head4 (4):
+ > Add foo5
+ > Add foo4
+ < Add foo3
+ < Add foo2
+
+EOF
+"
+
+test_expect_success '--summary-limit' "
+ git submodule summary -n 3 >actual &&
+ diff actual - <<-EOF
+* sm1 $head2...$head4 (4):
+ > Add foo5
+ > Add foo4
+ < Add foo3
+
+EOF
+"
+
+commit_file sm1 &&
+mv sm1 sm1-bak &&
+echo sm1 >sm1 &&
+head5=$(git hash-object sm1 | cut -c1-7) &&
+git add sm1 &&
+rm -f sm1 &&
+mv sm1-bak sm1
+
+test_expect_success 'typechanged submodule(submodule->blob), --cached' "
+ git submodule summary --cached >actual &&
+ diff actual - <<-EOF
+* sm1 $head4(submodule)->$head5(blob) (3):
+ < Add foo5
+
+EOF
+"
+
+rm -rf sm1 &&
+git checkout-index sm1
+test_expect_success 'typechanged submodule(submodule->blob)' "
+ git submodule summary >actual &&
+ diff actual - <<-EOF
+* sm1 $head4(submodule)->$head5(blob):
+
+EOF
+"
+
+rm -f sm1 &&
+test_create_repo sm1 &&
+head6=$(add_file sm1 foo6 foo7)
+test_expect_success 'nonexistent commit' "
+ git submodule summary >actual &&
+ diff actual - <<-EOF
+* sm1 $head4...$head6:
+ Warn: sm1 doesn't contain commit $head4_full
+
+EOF
+"
+
+commit_file
+test_expect_success 'typechanged submodule(blob->submodule)' "
+ git submodule summary >actual &&
+ diff actual - <<-EOF
+* sm1 $head5(blob)->$head6(submodule) (2):
+ > Add foo7
+
+EOF
+"
+
+commit_file sm1 &&
+rm -rf sm1
+test_expect_success 'deleted submodule' "
+ git submodule summary >actual &&
+ diff actual - <<-EOF
+* sm1 $head6...0000000:
+
+EOF
+"
+
+test_create_repo sm2 &&
+head7=$(add_file sm2 foo8 foo9) &&
+git add sm2
+
+test_expect_success 'multiple submodules' "
+ git submodule summary >actual &&
+ diff actual - <<-EOF
+* sm1 $head6...0000000:
+
+* sm2 0000000...$head7 (2):
+ > Add foo9
+
+EOF
+"
+
+test_expect_success 'path filter' "
+ git submodule summary sm2 >actual &&
+ diff actual - <<-EOF
+* sm2 0000000...$head7 (2):
+ > Add foo9
+
+EOF
+"
+
+commit_file sm2
+test_expect_success 'given commit' "
+ git submodule summary HEAD^ >actual &&
+ diff actual - <<-EOF
+* sm1 $head6...0000000:
+
+* sm2 0000000...$head7 (2):
+ > Add foo9
+
+EOF
+"
+
+test_done
diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh
index 361886c3d6..c0288f345f 100755
--- a/t/t7501-commit.sh
+++ b/t/t7501-commit.sh
@@ -203,7 +203,7 @@ test_expect_success 'sign off (1)' '
git var GIT_COMMITTER_IDENT |
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /"
) >expected &&
- diff -u expected actual
+ test_cmp expected actual
'
@@ -223,7 +223,7 @@ $existing" &&
git var GIT_COMMITTER_IDENT |
sed -e "s/>.*/>/" -e "s/^/Signed-off-by: /"
) >expected &&
- diff -u expected actual
+ test_cmp expected actual
'
@@ -240,7 +240,7 @@ test_expect_success 'multiple -m' '
echo
echo three
) >expected &&
- diff -u expected actual
+ test_cmp expected actual
'
@@ -301,12 +301,12 @@ test_expect_success 'same tree (merge and amend merge)' '
git merge -s ours side -m "empty ok" &&
git diff HEAD^ HEAD >actual &&
: >expected &&
- diff -u expected actual &&
+ test_cmp expected actual &&
git commit --amend -m "empty really ok" &&
git diff HEAD^ HEAD >actual &&
: >expected &&
- diff -u expected actual
+ test_cmp expected actual
'
@@ -323,7 +323,7 @@ test_expect_success 'amend using the message from another commit' '
git commit --allow-empty --amend -C "$old" &&
git show --pretty="format:%ad %s" "$old" >expected &&
git show --pretty="format:%ad %s" HEAD >actual &&
- diff -u expected actual
+ test_cmp expected actual
'
@@ -341,7 +341,7 @@ test_expect_success 'amend using the message from a commit named with tag' '
git commit --allow-empty --amend -C tagged-old &&
git show --pretty="format:%ad %s" "$old" >expected &&
git show --pretty="format:%ad %s" HEAD >actual &&
- diff -u expected actual
+ test_cmp expected actual
'
diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh
index b780fddc08..284c941247 100755
--- a/t/t7502-commit.sh
+++ b/t/t7502-commit.sh
@@ -85,7 +85,7 @@ test_expect_success 'verbose' '
git add negative &&
git status -v | sed -ne "/^diff --git /p" >actual &&
echo "diff --git a/negative b/negative" >expect &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -95,7 +95,7 @@ test_expect_success 'cleanup commit messages (verbatim,-t)' '
{ echo;echo "# text";echo; } >expect &&
git commit --cleanup=verbatim -t expect -a &&
git cat-file -p HEAD |sed -e "1,/^\$/d" |head -n 3 >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -104,7 +104,7 @@ test_expect_success 'cleanup commit messages (verbatim,-F)' '
echo >>negative &&
git commit --cleanup=verbatim -F expect -a &&
git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -113,7 +113,7 @@ test_expect_success 'cleanup commit messages (verbatim,-m)' '
echo >>negative &&
git commit --cleanup=verbatim -m "$(cat expect)" -a &&
git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -124,7 +124,7 @@ test_expect_success 'cleanup commit messages (whitespace,-F)' '
echo "# text" >expect &&
git commit --cleanup=whitespace -F text -a &&
git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -135,7 +135,7 @@ test_expect_success 'cleanup commit messages (strip,-F)' '
echo sample >expect &&
git commit --cleanup=strip -F text -a &&
git cat-file -p HEAD |sed -e "1,/^\$/d">actual &&
- diff -u expect actual
+ test_cmp expect actual
'
@@ -150,7 +150,7 @@ test_expect_success 'cleanup commit messages (strip,-F,-e)' '
{ echo;echo sample;echo; } >text &&
git commit -e -F text -a &&
head -n 4 .git/COMMIT_EDITMSG >actual &&
- diff -u expect actual
+ test_cmp expect actual
'
diff --git a/t/t7502-status.sh b/t/t7502-status.sh
index e00607490b..cd08516e6d 100755
--- a/t/t7502-status.sh
+++ b/t/t7502-status.sh
@@ -33,7 +33,7 @@ test_expect_success 'setup' '
test_expect_success 'status (1)' '
- grep -e "use \"git rm --cached <file>\.\.\.\" to unstage" output
+ grep "use \"git rm --cached <file>\.\.\.\" to unstage" output
'
@@ -146,7 +146,7 @@ cat <<EOF >expect
EOF
test_expect_success 'status of partial commit excluding new file in index' '
git status dir1/modified >output &&
- diff -u expect output
+ test_cmp expect output
'
test_done
diff --git a/t/t7505-prepare-commit-msg-hook.sh b/t/t7505-prepare-commit-msg-hook.sh
index 7ddec99a64..802aa624d0 100755
--- a/t/t7505-prepare-commit-msg-hook.sh
+++ b/t/t7505-prepare-commit-msg-hook.sh
@@ -25,8 +25,9 @@ export FAKE_EDITOR
HOOKDIR="$(git rev-parse --git-dir)/hooks"
HOOK="$HOOKDIR/prepare-commit-msg"
mkdir -p "$HOOKDIR"
-cat > "$HOOK" <<'EOF'
-#!/bin/sh
+echo "#!$SHELL_PATH" > "$HOOK"
+cat >> "$HOOK" <<'EOF'
+
if test "$2" = commit; then
source=$(git-rev-parse "$3")
else
diff --git a/t/t7600-merge.sh b/t/t7600-merge.sh
index 5d166280cb..56869aceed 100755
--- a/t/t7600-merge.sh
+++ b/t/t7600-merge.sh
@@ -108,7 +108,7 @@ create_merge_msgs() {
}
verify_diff() {
- if ! diff -u "$1" "$2"
+ if ! test_cmp "$1" "$2"
then
echo "$3"
false
@@ -165,7 +165,7 @@ verify_mergeheads() {
fi &&
while test $# -gt 0
do
- head=$(head -n $i .git/MERGE_HEAD | tail -n 1)
+ head=$(head -n $i .git/MERGE_HEAD | sed -ne \$p)
if test "$1" != "$head"
then
echo "[OOPS] MERGE_HEAD $i != $1"
@@ -371,7 +371,7 @@ test_expect_success 'override config option -n' '
git merge --summary c2 >diffstat.txt &&
verify_merge file result.1-5 msg.1-5 &&
verify_parents $c1 $c2 &&
- if ! grep -e "^ file | *2 +-$" diffstat.txt
+ if ! grep "^ file | *2 +-$" diffstat.txt
then
echo "[OOPS] diffstat was not generated"
fi
@@ -386,7 +386,7 @@ test_expect_success 'override config option --summary' '
git merge -n c2 >diffstat.txt &&
verify_merge file result.1-5 msg.1-5 &&
verify_parents $c1 $c2 &&
- if grep -e "^ file | *2 +-$" diffstat.txt
+ if grep "^ file | *2 +-$" diffstat.txt
then
echo "[OOPS] diffstat was generated"
false
diff --git a/t/t8003-blame.sh b/t/t8003-blame.sh
index db51b3a6bb..966bb0a61a 100755
--- a/t/t8003-blame.sh
+++ b/t/t8003-blame.sh
@@ -112,7 +112,7 @@ test_expect_success 'blame wholesale copy' '
echo mouse-Second
echo mouse-Third
} >expected &&
- diff -u expected current
+ test_cmp expected current
'
@@ -125,7 +125,7 @@ test_expect_success 'blame wholesale copy and more' '
echo cow-Fifth
echo mouse-Third
} >expected &&
- diff -u expected current
+ test_cmp expected current
'
diff --git a/t/t9001-send-email.sh b/t/t9001-send-email.sh
index cbbfa9cb49..c0973b4e6e 100755
--- a/t/t9001-send-email.sh
+++ b/t/t9001-send-email.sh
@@ -81,7 +81,7 @@ test_expect_success 'Show all headers' '
-e "s/^\(Message-Id:\).*/\1 MESSAGE-ID-STRING/" \
-e "s/^\(X-Mailer:\).*/\1 X-MAILER-STRING/" \
>actual-show-all-headers &&
- diff -u expected-show-all-headers actual-show-all-headers
+ test_cmp expected-show-all-headers actual-show-all-headers
'
z8=zzzzzzzz
diff --git a/t/t9112-git-svn-md5less-file.sh b/t/t9112-git-svn-md5less-file.sh
index 08313bb545..646a5f0cdb 100755
--- a/t/t9112-git-svn-md5less-file.sh
+++ b/t/t9112-git-svn-md5less-file.sh
@@ -1,3 +1,5 @@
+#!/bin/sh
+
test_description='test that git handles an svn repository with missing md5sums'
. ./lib-git-svn.sh
diff --git a/t/t9116-git-svn-log.sh b/t/t9116-git-svn-log.sh
index 902ed4145d..e1e8bdf0e3 100755
--- a/t/t9116-git-svn-log.sh
+++ b/t/t9116-git-svn-log.sh
@@ -55,74 +55,74 @@ printf 'r1 \nr2 \nr4 \n' > expected-range-r1-r2-r4
test_expect_success 'test ascending revision range' "
git reset --hard trunk &&
- git svn log -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r1-r2-r4 -
+ git svn log -r 1:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2-r4 -
"
printf 'r4 \nr2 \nr1 \n' > expected-range-r4-r2-r1
test_expect_success 'test descending revision range' "
git reset --hard trunk &&
- git svn log -r 4:1 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4-r2-r1 -
+ git svn log -r 4:1 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4-r2-r1 -
"
printf 'r1 \nr2 \n' > expected-range-r1-r2
test_expect_success 'test ascending revision range with unreachable revision' "
git reset --hard trunk &&
- git svn log -r 1:3 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r1-r2 -
+ git svn log -r 1:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r1-r2 -
"
printf 'r2 \nr1 \n' > expected-range-r2-r1
test_expect_success 'test descending revision range with unreachable revision' "
git reset --hard trunk &&
- git svn log -r 3:1 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r2-r1 -
+ git svn log -r 3:1 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2-r1 -
"
printf 'r2 \n' > expected-range-r2
test_expect_success 'test ascending revision range with unreachable upper boundary revision and 1 commit' "
git reset --hard trunk &&
- git svn log -r 2:3 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r2 -
+ git svn log -r 2:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2 -
"
test_expect_success 'test descending revision range with unreachable upper boundary revision and 1 commit' "
git reset --hard trunk &&
- git svn log -r 3:2 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r2 -
+ git svn log -r 3:2 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r2 -
"
printf 'r4 \n' > expected-range-r4
test_expect_success 'test ascending revision range with unreachable lower boundary revision and 1 commit' "
git reset --hard trunk &&
- git svn log -r 3:4 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4 -
+ git svn log -r 3:4 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 -
"
test_expect_success 'test descending revision range with unreachable lower boundary revision and 1 commit' "
git reset --hard trunk &&
- git svn log -r 4:3 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4 -
+ git svn log -r 4:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 -
"
printf -- '------------------------------------------------------------------------\n' > expected-separator
test_expect_success 'test ascending revision range with unreachable boundary revisions and no commits' "
git reset --hard trunk &&
- git svn log -r 5:6 | diff -u expected-separator -
+ git svn log -r 5:6 | test_cmp expected-separator -
"
test_expect_success 'test descending revision range with unreachable boundary revisions and no commits' "
git reset --hard trunk &&
- git svn log -r 6:5 | diff -u expected-separator -
+ git svn log -r 6:5 | test_cmp expected-separator -
"
test_expect_success 'test ascending revision range with unreachable boundary revisions and 1 commit' "
git reset --hard trunk &&
- git svn log -r 3:5 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4 -
+ git svn log -r 3:5 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 -
"
test_expect_success 'test descending revision range with unreachable boundary revisions and 1 commit' "
git reset --hard trunk &&
- git svn log -r 5:3 | grep '^r[0-9]' | cut -d'|' -f1 | diff -u expected-range-r4 -
+ git svn log -r 5:3 | grep '^r[0-9]' | cut -d'|' -f1 | test_cmp expected-range-r4 -
"
test_done
diff --git a/t/t9120-git-svn-clone-with-percent-escapes.sh b/t/t9120-git-svn-clone-with-percent-escapes.sh
new file mode 100755
index 0000000000..9a4eabe523
--- /dev/null
+++ b/t/t9120-git-svn-clone-with-percent-escapes.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# Copyright (c) 2008 Kevin Ballard
+#
+
+test_description='git-svn clone with percent escapes'
+. ./lib-git-svn.sh
+
+test_expect_success 'setup svnrepo' "
+ mkdir project project/trunk project/branches project/tags &&
+ echo foo > project/trunk/foo &&
+ svn import -m '$test_description' project '$svnrepo/pr ject' &&
+ rm -rf project &&
+ start_httpd
+"
+
+if test "$SVN_HTTPD_PORT" = ""
+then
+ test_expect_failure 'test clone with percent escapes - needs SVN_HTTPD_PORT set' 'false'
+else
+ test_expect_success 'test clone with percent escapes' '
+ git svn clone "$svnrepo/pr%20ject" clone &&
+ cd clone &&
+ git rev-parse refs/remotes/git-svn &&
+ cd ..
+ '
+fi
+
+stop_httpd
+
+test_done
diff --git a/t/t9200-git-cvsexportcommit.sh b/t/t9200-git-cvsexportcommit.sh
index 58c59ed5ae..42b144b1b3 100755
--- a/t/t9200-git-cvsexportcommit.sh
+++ b/t/t9200-git-cvsexportcommit.sh
@@ -37,7 +37,7 @@ check_entries () {
else
printf '%s\n' "$2" | tr '|' '\012' >expected
fi
- diff -u expected actual
+ test_cmp expected actual
}
test_expect_success \
@@ -257,8 +257,8 @@ test_expect_success '-w option should work with relative GIT_DIR' '
(cd "$GIT_DIR" &&
GIT_DIR=. git cvsexportcommit -w "$CVSWORK" -c $id &&
check_entries "$CVSWORK/W" "file1.txt/1.1/|file2.txt/1.1/" &&
- diff -u "$CVSWORK/W/file1.txt" ../W/file1.txt &&
- diff -u "$CVSWORK/W/file2.txt" ../W/file2.txt
+ test_cmp "$CVSWORK/W/file1.txt" ../W/file1.txt &&
+ test_cmp "$CVSWORK/W/file2.txt" ../W/file2.txt
)
'
@@ -279,9 +279,9 @@ test_expect_success 'check files before directories' '
git cvsexportcommit -w "$CVSWORK" -c $id &&
check_entries "$CVSWORK/E" "DS/1.1/|newfile5.txt/1.1/" &&
check_entries "$CVSWORK" "DS/1.1/|release-notes/1.2/" &&
- diff -u "$CVSWORK/DS" DS &&
- diff -u "$CVSWORK/E/DS" E/DS &&
- diff -u "$CVSWORK/release-notes" release-notes
+ test_cmp "$CVSWORK/DS" DS &&
+ test_cmp "$CVSWORK/E/DS" E/DS &&
+ test_cmp "$CVSWORK/release-notes" release-notes
'
@@ -293,7 +293,7 @@ test_expect_success 'commit a file with leading spaces in the name' '
id=$(git rev-parse HEAD) &&
git cvsexportcommit -w "$CVSWORK" -c $id &&
check_entries "$CVSWORK" " space/1.1/|DS/1.1/|release-notes/1.2/" &&
- diff -u "$CVSWORK/ space" " space"
+ test_cmp "$CVSWORK/ space" " space"
'
diff --git a/t/t9400-git-cvsserver-server.sh b/t/t9400-git-cvsserver-server.sh
index 0a20971ebb..b91b151417 100755
--- a/t/t9400-git-cvsserver-server.sh
+++ b/t/t9400-git-cvsserver-server.sh
@@ -54,7 +54,7 @@ test_expect_success 'setup' '
test_expect_success 'basic checkout' \
'GIT_CONFIG="$git_config" cvs -Q co -d cvswork master &&
test "$(echo $(grep -v ^D cvswork/CVS/Entries|cut -d/ -f2,3,5 | head -n 1))" = "empty/1.1/"
- test "$(echo $(grep -v ^D cvswork/CVS/Entries|cut -d/ -f2,3,5 | tail -n 1))" = "secondrootfile/1.1/"'
+ test "$(echo $(grep -v ^D cvswork/CVS/Entries|cut -d/ -f2,3,5 | sed -ne \$p))" = "secondrootfile/1.1/"'
#------------------------
# PSERVER AUTHENTICATION
@@ -94,7 +94,7 @@ EOF
test_expect_success 'pserver authentication' \
'cat request-anonymous | git-cvsserver pserver >log 2>&1 &&
- tail -n1 log | grep -q "^I LOVE YOU$"'
+ sed -ne \$p log | grep "^I LOVE YOU$"'
test_expect_success 'pserver authentication failure (non-anonymous user)' \
'if cat request-git | git-cvsserver pserver >log 2>&1
@@ -103,11 +103,11 @@ test_expect_success 'pserver authentication failure (non-anonymous user)' \
else
true
fi &&
- tail -n1 log | grep -q "^I HATE YOU$"'
+ sed -ne \$p log | grep "^I HATE YOU$"'
test_expect_success 'pserver authentication (login)' \
'cat login-anonymous | git-cvsserver pserver >log 2>&1 &&
- tail -n1 log | grep -q "^I LOVE YOU$"'
+ sed -ne \$p log | grep "^I LOVE YOU$"'
test_expect_success 'pserver authentication failure (login/non-anonymous user)' \
'if cat login-git | git-cvsserver pserver >log 2>&1
@@ -116,7 +116,7 @@ test_expect_success 'pserver authentication failure (login/non-anonymous user)'
else
true
fi &&
- tail -n1 log | grep -q "^I HATE YOU$"'
+ sed -ne \$p log | grep "^I HATE YOU$"'
# misuse pserver authentication for testing of req_Root
@@ -146,15 +146,15 @@ test_expect_success 'req_Root failure (relative pathname)' \
else
true
fi &&
- tail log | grep -q "^error 1 Root must be an absolute pathname$"'
+ tail log | grep "^error 1 Root must be an absolute pathname$"'
test_expect_success 'req_Root failure (conflicting roots)' \
'cat request-conflict | git-cvsserver pserver >log 2>&1 &&
- tail log | grep -q "^error 1 Conflicting roots specified$"'
+ tail log | grep "^error 1 Conflicting roots specified$"'
test_expect_success 'req_Root (strict paths)' \
'cat request-anonymous | git-cvsserver --strict-paths pserver $SERVERDIR >log 2>&1 &&
- tail -n1 log | grep -q "^I LOVE YOU$"'
+ sed -ne \$p log | grep "^I LOVE YOU$"'
test_expect_success 'req_Root failure (strict-paths)' '
! cat request-anonymous |
@@ -163,7 +163,7 @@ test_expect_success 'req_Root failure (strict-paths)' '
test_expect_success 'req_Root (w/o strict-paths)' \
'cat request-anonymous | git-cvsserver pserver $WORKDIR/ >log 2>&1 &&
- tail -n1 log | grep -q "^I LOVE YOU$"'
+ sed -ne \$p log | grep "^I LOVE YOU$"'
test_expect_success 'req_Root failure (w/o strict-paths)' '
! cat request-anonymous |
@@ -181,7 +181,7 @@ EOF
test_expect_success 'req_Root (base-path)' \
'cat request-base | git-cvsserver --strict-paths --base-path $WORKDIR/ pserver $SERVERDIR >log 2>&1 &&
- tail -n1 log | grep -q "^I LOVE YOU$"'
+ sed -ne \$p log | grep "^I LOVE YOU$"'
test_expect_success 'req_Root failure (base-path)' '
! cat request-anonymous |
@@ -192,14 +192,14 @@ GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled false || exit 1
test_expect_success 'req_Root (export-all)' \
'cat request-anonymous | git-cvsserver --export-all pserver $WORKDIR >log 2>&1 &&
- tail -n1 log | grep -q "^I LOVE YOU$"'
+ sed -ne \$p log | grep "^I LOVE YOU$"'
test_expect_success 'req_Root failure (export-all w/o whitelist)' \
'! (cat request-anonymous | git-cvsserver --export-all pserver >log 2>&1 || false)'
test_expect_success 'req_Root (everything together)' \
'cat request-base | git-cvsserver --export-all --strict-paths --base-path $WORKDIR/ pserver $SERVERDIR >log 2>&1 &&
- tail -n1 log | grep -q "^I LOVE YOU$"'
+ sed -ne \$p log | grep "^I LOVE YOU$"'
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true || exit 1
@@ -216,7 +216,7 @@ test_expect_success 'gitcvs.enabled = false' \
else
true
fi &&
- cat cvs.log | grep -q "GITCVS emulation disabled" &&
+ grep "GITCVS emulation disabled" cvs.log &&
test ! -d cvswork2'
rm -fr cvswork2
@@ -237,7 +237,7 @@ test_expect_success 'gitcvs.ext.enabled = false' \
else
true
fi &&
- cat cvs.log | grep -q "GITCVS emulation disabled" &&
+ grep "GITCVS emulation disabled" cvs.log &&
test ! -d cvswork2'
rm -fr cvswork2
diff --git a/t/test-lib.sh b/t/test-lib.sh
index 6aea0ea0a5..870b255f13 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -42,6 +42,7 @@ export GIT_MERGE_VERBOSITY
export GIT_AUTHOR_EMAIL GIT_AUTHOR_NAME
export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME
export EDITOR VISUAL
+GIT_TEST_CMP=${GIT_TEST_CMP:-diff -u}
# Protect ourselves from common misconfiguration to export
# CDPATH into the environment
@@ -302,6 +303,23 @@ test_must_fail () {
test $? -gt 0 -a $? -le 128
}
+# test_cmp is a helper function to compare actual and expected output.
+# You can use it like:
+#
+# test_expect_success 'foo works' '
+# echo expected >expected &&
+# foo >actual &&
+# test_cmp expected actual
+# '
+#
+# This could be written as either "cmp" or "diff -u", but:
+# - cmp's output is not nearly as easy to read as diff -u
+# - not all diff versions understand "-u"
+
+test_cmp() {
+ $GIT_TEST_CMP "$@"
+}
+
# Most tests can use the created repository, but some may need to create more.
# Usage: test_create_repo <directory>
test_create_repo () {
@@ -378,7 +396,12 @@ fi
# Test repository
test=trash
-rm -fr "$test"
+rm -fr "$test" || {
+ trap - exit
+ echo >&5 "FATAL: Cannot prepare test area"
+ exit 1
+}
+
test_create_repo $test
cd "$test"
diff --git a/test-sha1.sh b/test-sha1.sh
index bf526c8f5e..0f0bc5d02f 100755
--- a/test-sha1.sh
+++ b/test-sha1.sh
@@ -10,7 +10,7 @@ do
{
test -z "$pfx" || echo "$pfx"
dd if=/dev/zero bs=1048576 count=$cnt 2>/dev/null |
- tr '\000' 'g'
+ perl -pe 'y/\000/g/'
} | ./test-sha1 $cnt
`
if test "$expect" = "$actual"
@@ -55,7 +55,7 @@ do
{
test -z "$pfx" || echo "$pfx"
dd if=/dev/zero bs=1048576 count=$cnt 2>/dev/null |
- tr '\000' 'g'
+ perl -pe 'y/\000/g/'
} | sha1sum |
sed -e 's/ .*//'
`
diff --git a/unpack-trees.c b/unpack-trees.c
index be89d52e8c..a59f47557a 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -54,13 +54,14 @@ static void unlink_entry(char *name, char *last_symlink)
}
static struct checkout state;
-static void check_updates(struct unpack_trees_options *o)
+static int check_updates(struct unpack_trees_options *o)
{
unsigned cnt = 0, total = 0;
struct progress *progress = NULL;
char last_symlink[PATH_MAX];
struct index_state *index = &o->result;
int i;
+ int errs = 0;
if (o->update && o->verbose_update) {
for (total = cnt = 0; cnt < index->cache_nr; cnt++) {
@@ -90,12 +91,13 @@ static void check_updates(struct unpack_trees_options *o)
if (ce->ce_flags & CE_UPDATE) {
ce->ce_flags &= ~CE_UPDATE;
if (o->update) {
- checkout_entry(ce, &state, NULL);
+ errs |= checkout_entry(ce, &state, NULL);
*last_symlink = '\0';
}
}
}
stop_progress(&progress);
+ return errs != 0;
}
static inline int call_unpack_fn(struct cache_entry **src, struct unpack_trees_options *o)
@@ -123,7 +125,7 @@ static int unpack_index_entry(struct cache_entry *ce, struct unpack_trees_option
int traverse_trees_recursive(int n, unsigned long dirmask, unsigned long df_conflicts, struct name_entry *names, struct traverse_info *info)
{
int i;
- struct tree_desc t[3];
+ struct tree_desc t[MAX_UNPACK_TREES];
struct traverse_info newinfo;
struct name_entry *p;
@@ -327,8 +329,8 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
{
static struct cache_entry *dfc;
- if (len > 4)
- die("unpack_trees takes at most four trees");
+ if (len > MAX_UNPACK_TREES)
+ die("unpack_trees takes at most %d trees", MAX_UNPACK_TREES);
memset(&state, 0, sizeof(state));
state.base_dir = "";
state.force = 1;
@@ -336,6 +338,8 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
state.refresh_cache = 1;
memset(&o->result, 0, sizeof(o->result));
+ if (o->src_index)
+ o->result.timestamp = o->src_index->timestamp;
o->merge_size = len;
if (!dfc)
@@ -367,7 +371,8 @@ int unpack_trees(unsigned len, struct tree_desc *t, struct unpack_trees_options
return unpack_failed(o, "Merge requires file-level merging");
o->src_index = NULL;
- check_updates(o);
+ if (check_updates(o))
+ return -1;
if (o->dst_index)
*o->dst_index = o->result;
return 0;
@@ -593,16 +598,19 @@ static int verify_absent(struct cache_entry *ce, const char *action,
static int merged_entry(struct cache_entry *merge, struct cache_entry *old,
struct unpack_trees_options *o)
{
+ int update = CE_UPDATE;
+
if (old) {
/*
* See if we can re-use the old CE directly?
* That way we get the uptodate stat info.
*
- * This also removes the UPDATE flag on
- * a match.
+ * This also removes the UPDATE flag on a match; otherwise
+ * we will end up overwriting local changes in the work tree.
*/
if (same(old, merge)) {
copy_cache_entry(merge, old);
+ update = 0;
} else {
if (verify_uptodate(old, o))
return -1;
@@ -615,7 +623,7 @@ static int merged_entry(struct cache_entry *merge, struct cache_entry *old,
invalidate_ce_path(merge, o);
}
- add_entry(o, merge, CE_UPDATE, CE_STAGEMASK);
+ add_entry(o, merge, update, CE_STAGEMASK);
return 1;
}
diff --git a/unpack-trees.h b/unpack-trees.h
index e8abbcd037..50453ed20f 100644
--- a/unpack-trees.h
+++ b/unpack-trees.h
@@ -1,6 +1,8 @@
#ifndef UNPACK_TREES_H
#define UNPACK_TREES_H
+#define MAX_UNPACK_TREES 8
+
struct unpack_trees_options;
typedef int (*merge_fn_t)(struct cache_entry **src,
diff --git a/wt-status.c b/wt-status.c
index 701d13da7c..b3fd57b79d 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -269,27 +269,14 @@ static void wt_status_print_untracked(struct wt_status *s)
static void wt_status_print_verbose(struct wt_status *s)
{
struct rev_info rev;
- int saved_stdout;
-
- fflush(s->fp);
-
- /* Sigh, the entire diff machinery is hardcoded to output to
- * stdout. Do the dup-dance...*/
- saved_stdout = dup(STDOUT_FILENO);
- if (saved_stdout < 0 ||dup2(fileno(s->fp), STDOUT_FILENO) < 0)
- die("couldn't redirect stdout\n");
init_revisions(&rev, NULL);
setup_revisions(0, NULL, &rev, s->reference);
rev.diffopt.output_format |= DIFF_FORMAT_PATCH;
rev.diffopt.detect_rename = 1;
+ rev.diffopt.file = s->fp;
+ rev.diffopt.close_file = 0;
run_diff_index(&rev, 1);
-
- fflush(stdout);
-
- if (dup2(saved_stdout, STDOUT_FILENO) < 0)
- die("couldn't restore stdout\n");
- close(saved_stdout);
}
void wt_status_print(struct wt_status *s)
diff --git a/xdiff-interface.c b/xdiff-interface.c
index bba236428a..61dc5c5470 100644
--- a/xdiff-interface.c
+++ b/xdiff-interface.c
@@ -152,8 +152,8 @@ int read_mmfile(mmfile_t *ptr, const char *filename)
if ((f = fopen(filename, "rb")) == NULL)
return error("Could not open %s", filename);
sz = xsize_t(st.st_size);
- ptr->ptr = xmalloc(sz);
- if (fread(ptr->ptr, sz, 1, f) != 1)
+ ptr->ptr = xmalloc(sz ? sz : 1);
+ if (sz && fread(ptr->ptr, sz, 1, f) != 1)
return error("Could not read %s", filename);
fclose(f);
ptr->size = sz;