Commit Graph

65657 Commits

Author SHA1 Message Date
Johannes Schindelin
e16e0643b7 Merge 'gitk' into HEAD 2016-11-24 22:10:25 +01:00
Johannes Schindelin
902ddd22df Merge branch 'msys2-git-gui'
This topic branch addresses the bug where Git for Windows 2.x' Git GUI
failed to generate a working shortcut via Repository>Create Desktop
Shortcut.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:24 +01:00
Johannes Schindelin
0e0ef7fb2d Merge 'git-gui' into HEAD 2016-11-24 22:10:23 +01:00
Johannes Schindelin
65322b0647 Merge 'readme' into HEAD
Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:10:22 +01:00
James J. Raden
2648e8e16c gitk: make the "list references" default window width wider
When using remotes (with git-flow especially), the remote reference names
are almost always wordwrapped in the "list references" window because it's
somewhat narrow by default. It's possible to resize it with a mouse,
but it's annoying to have to do this every time, especially on Windows 10,
where the window border seems to be only one (1) pixel wide, thus making
the grabbing of the window border tricky.

Signed-off-by: James J. Raden <james.raden@gmail.com>
2016-11-24 22:09:15 +01:00
Johannes Schindelin
eb32076b55 gitk: fix arrow keys in input fields with Tcl/Tk >= 8.6
Tcl/Tk 8.6 introduced new events for the cursor left/right keys and
apparently changed the behavior of the previous event.

Let's work around that by using the new events when we are running with
Tcl/Tk 8.6 or later.

This fixes https://github.com/git-for-windows/git/issues/495

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:09:15 +01:00
Sebastian Schuberth
b55372d6f1 gitk: Use an external icon file on Windows
Git for Windows now ships with the new Git icon from git-scm.com. Use that
icon file if it exists instead of the old procedurally drawn one.

This patch was sent upstream but so far no decision on its inclusion was
made, so commit it to our fork.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
2016-11-24 22:09:15 +01:00
Chris West (Faux)
82c5fa4ff8 gitk: fix another invocation with an overly long command-line
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
2016-11-24 22:08:47 +01:00
Johannes Schindelin
2f3e824a57 gitk: work around the command line limit on Windows
On Windows, there are dramatic problems when a command line grows
beyond PATH_MAX, which is restricted to 8191 characters on XP and
later (according to http://support.microsoft.com/kb/830473).

Work around this by just cutting off the command line at that length
(actually, at a space boundary) in the hope that only negative
refs are chucked: gitk will then do unnecessary work, but that is
still better than flashing the gitk window and exiting with exit
status 5 (which no Windows user is able to make sense of).

The first fix caused Tcl to fail to compile the regexp, see msysGit issue
427. Here is another fix without using regexp, and using a more relaxed
command line length limit to fix the original issue 387.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:08:35 +01:00
Brendan Forster
fbe48106b9 Add an issue template
With improvements by Clive Chan, Adric Norris and Ben Bodenmiller.

Signed-off-by: Clive Chan <cc@clive.io>
Signed-off-by: Adric Norris <landstander668@gmail.com>
Signed-off-by: Ben Bodenmiller <bbodenmiller@hotmail.com>
Signed-off-by: Brendan Forster <brendan@github.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 22:08:07 +01:00
Thomas Klaeger
107a236ca3 git-gui (Windows): use git-bash.exe if it is available
Git for Windows 2.x ships with an executable that starts the Git Bash
with all the environment variables and what not properly set up. It is
also adjusted according to the Terminal emulator option chosen when
installing Git for Windows (while `bash.exe --login -i` would always
launch with Windows' default console).

So let's use that executable (usually C:\Program Files\Git\git-bash.exe)
instead of `bash.exe --login -i` if its presence was detected.

This fixes https://github.com/git-for-windows/git/issues/490

Signed-off-by: Thomas Kläger <thomas.klaeger@10a.ch>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 21:53:31 +01:00
Johannes Schindelin
ea52cbc568 git gui: set GIT_ASKPASS=git-gui--askpass if not set yet
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 21:53:31 +01:00
Karsten Blees
5fea0443e1 gitk: Unicode file name support
Assumes file names in git tree objects are UTF-8 encoded.

On most unix systems, the system encoding (and thus the TCL system
encoding) will be UTF-8, so file names will be displayed correctly.

On Windows, it is impossible to set the system encoding to UTF-8.
Changing the TCL system encoding (via 'encoding system ...', e.g. in the
startup code) is explicitly discouraged by the TCL docs.

Change gitk functions dealing with file names to always convert
from and to UTF-8.

Signed-off-by: Karsten Blees <blees@dcon.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 21:53:31 +01:00
Johannes Schindelin
42d4280b46 README.md: Add a Windows-specific preamble
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 21:53:31 +01:00
Heiko Voigt
d0e67beb12 git-gui: provide question helper for retry fallback on Windows
Make use of the new environment variable GIT_ASK_YESNO to support the
recently implemented fallback in case unlink, rename or rmdir fail for
files in use on Windows. The added dialog will present a yes/no question
to the the user which will currently be used by the windows compat layer
to let the user retry a failed file operation.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
2016-11-24 21:53:31 +01:00
Johannes Schindelin
8fb56efc64 Add a Code of Conduct
It is better to state clearly expectations and intentions than to assume
quietly that everybody agrees.

This Code of Conduct is the Open Code of Conduct as per
http://todogroup.org/opencodeofconduct/ (the only modifications are the
adjustments to reflect that there is no "response team" in addition to the
Git for Windows maintainer, and the addition of the link to the Open Code
of Conduct itself).

[Completely revamped, based on the Covenant 1.4 by Brendan Forster]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 21:53:31 +01:00
Heiko Voigt
f79bf2ca63 Revert "git-gui: set GIT_DIR and GIT_WORK_TREE after setup"
This reverts commit a9fa11fe5b.
2016-11-24 21:53:31 +01:00
Johannes Schindelin
2608fdfc50 Start the merging-rebase to v2.11.0-rc3
The upstream version v2.11.0 has been pushed back a few times, and is
now set to be released this coming Tuesday. That is close enough for Git
for Windows to hop on the v2.11 train: it is unlikely that we will need
to release a v2.10.3 before v2.11.0 comes out.

While at it, we use the chance to do a little bit of clean-up: some
patch series were ordered in a historically correct, if illogical
sequence, which has been fixed.

This commit starts the rebase of 1dd81a3 to 86fc2b7

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-24 21:51:45 +01:00
Johannes Schindelin
19b695841e squash! add: use preload-index and fscache for performance
We need to keep the call to read_cache() before parsing the
pathspecs (and hence cannot use the pathspecs to limit any preload)
because parse_pathspec() is using the index to determine whether a
pathspec is, in fact, in a submodule. If we would not read the index
first, parse_pathspec() would not error out on a path that is inside
a submodule, and t7400-submodule-basic.sh would fail with

	not ok 47 - do not add files from a submodule

We still want the nice preload performance boost, though, so we simply
call read_cache_preload(&pathspecs) after parsing the pathspecs.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-23 22:05:00 +01:00
Johannes Schindelin
b194d6bd23 Export the preload_index() function
The purpose of this function is to stat() the files listed in the index
in a multi-threaded fashion. It is called directly after reading the
index in the read_index_preloaded() function.

However, in some cases we may want to separate the index reading from
the preloading step, e.g. in builtin/add.c, where we need to load the
index before we parse the pathspecs (which needs to error out if one of
the pathspecs refers to a path within a submodule, for which the index
must have been read already), and only then will we want to preload,
possibly limited by the just-parsed pathspecs.

So let's just export that function to allow calling it separately.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-23 22:04:59 +01:00
Junio C Hamano
e2b2d6a172 Git 2.11-rc3
Signed-off-by: Junio C Hamano <gitster@pobox.com>
v2.11.0-rc3
2016-11-23 11:24:59 -08:00
Junio C Hamano
c34a7daad7 Merge branch 'jc/setup-cleanup-fix'
"git archive" and "git mailinfo" stopped reading from local
configuration file with a recent update.

* jc/setup-cleanup-fix:
  archive: read local configuration
  mailinfo: read local configuration
2016-11-23 11:23:17 -08:00
Junio C Hamano
6a2b569c2f Merge branch 'jt/trailer-with-cruft'
Doc update.

* jt/trailer-with-cruft:
  doc: mention user-configured trailers
2016-11-23 11:23:17 -08:00
Junio C Hamano
bd53f38d52 Merge branch 'js/rebase-i-commentchar-fix'
"git rebase -i" did not work well with core.commentchar
configuration variable for two reasons, both of which have been
fixed.

* js/rebase-i-commentchar-fix:
  rebase -i: handle core.commentChar=auto
  stripspace: respect repository config
  rebase -i: highlight problems with core.commentchar
2016-11-23 11:23:17 -08:00
Junio C Hamano
48e9ad5ef3 Merge branch 'jc/for-each-ref-head-segfault-fix'
Using a %(HEAD) placeholder in "for-each-ref --format=" option
caused the command to segfault when on an unborn branch.

* jc/for-each-ref-head-segfault-fix:
  for-each-ref: do not segv with %(HEAD) on an unborn branch
2016-11-23 11:23:16 -08:00
Johannes Schindelin
26d45d690d Merge pull request #969 from jeffhostetler/jeffhostetler/fixup_memihash_perf
fixup! name-hash: precompute hash values during preload-index
2016-11-23 11:46:55 +01:00
Johannes Schindelin
08e752ef20 Merge pull request #971 from jeffhostetler/jeffhostetler/add_preload_fscache
add: use preload-index and fscache for performance
2016-11-23 11:41:19 +01:00
Junio C Hamano
1e37181391 Merge tag 'l10n-2.11.0-rnd2' of git://github.com/git-l10n/git-po
l10n-2.11.0-rnd2

* tag 'l10n-2.11.0-rnd2' of git://github.com/git-l10n/git-po:
  l10n: Fixed typo of git fetch-pack command
  l10n: git.pot: v2.11.0 round 2 (1 new, 1 removed)
  l10n: zh_CN: for git v2.11.0 l10n round 1
  l10n: pt_PT: update Portuguese translation
  l10n: fr.po fix grammar mistakes
  l10n: fr.po v2.11.0_rnd1
  l10n: sv.po: Update Swedish translation (2913t0f0u)
  l10n: vi.po: Updated translation to v2.11.0 (2913t)
  l10n: ko.po: Update Korean translation
  l10n: git.pot: v2.11.0 round 1 (209 new, 53 removed)
  l10n: ru.po: update Russian translation
2016-11-22 14:16:06 -08:00
Junio C Hamano
7f1dc9f4cb Merge branch 'js/prepare-sequencer'
Fix for an error message string.

* js/prepare-sequencer:
  i18n: fix unmatched single quote in error message
2016-11-22 14:15:38 -08:00
Junio C Hamano
eb0224c617 archive: read local configuration
Since b9605bc4f2 ("config: only read .git/config from configured
repos", 2016-09-12), we do not read from ".git/config" unless we
know we are in a repository.  "git archive" however didn't do the
repository discovery and instead relied on the old behaviour.

Teach the command to run a "gentle" version of repository discovery
so that local configuration variables are honoured.

[jc: stole tests from peff]
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-11-22 13:55:20 -08:00
Jeff Hostetler
38df35b503 add: use preload-index and fscache for performance
Teach "add" to use preload-index and fscache features
to improve performance on very large repositories.

During an "add", a call is made to run_diff_files()
which calls check_remove() for each index-entry.  This
calls lstat().  On Windows, the fscache code intercepts
the lstat() calls and builds a private cache using the
FindFirst/FindNext routines, which are much faster.

Somewhat independent of this, is the preload-index code
which distributes some of the start-up costs across
multiple threads.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-22 16:35:56 -05:00
Junio C Hamano
3f0ec0687d mailinfo: read local configuration
Since b9605bc4f2 ("config: only read .git/config from configured
repos", 2016-09-12), we do not read from ".git/config" unless we
know we are in a repository.  "git mailinfo" however didn't do the
repository discovery and instead relied on the old behaviour.  This
was mostly OK because it was merely run as a helper program by other
porcelain scripts that first chdir's up to the root of the working
tree.

Teach the command to run a "gentle" version of repository discovery
so that local configuration variables like mailinfo.scissors are
honoured.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-11-22 13:13:16 -08:00
Jiang Xin
275588f93e l10n: Fixed typo of git fetch-pack command
Git 2.11.0-rc2 introduced one small l10n update, and this commit fixed
the affected translations all in one batch.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2016-11-22 22:24:59 +08:00
Jiang Xin
c091ffbe8e l10n: git.pot: v2.11.0 round 2 (1 new, 1 removed)
Generate po/git.pot from v2.11.0-rc2 for git v2.11.0 l10n round 2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2016-11-22 22:22:59 +08:00
Jiang Xin
094d6e6272 Merge branch 'master' of git://github.com/git-l10n/git-po
* 'master' of git://github.com/git-l10n/git-po:
  l10n: zh_CN: for git v2.11.0 l10n round 1
  l10n: pt_PT: update Portuguese translation
  l10n: fr.po fix grammar mistakes
  l10n: fr.po v2.11.0_rnd1
  l10n: sv.po: Update Swedish translation (2913t0f0u)
  l10n: vi.po: Updated translation to v2.11.0 (2913t)
  l10n: ko.po: Update Korean translation
  l10n: git.pot: v2.11.0 round 1 (209 new, 53 removed)
  l10n: ru.po: update Russian translation
2016-11-22 22:08:47 +08:00
Jonathan Tan
df616b19b4 doc: mention user-configured trailers
In commit 1462450 ("trailer: allow non-trailers in trailer block",
2016-10-21), functionality was added (and tested [1]) to allow
non-trailer lines in trailer blocks, as long as those blocks contain at
least one Git-generated or user-configured trailer, and consists of at
least 25% trailers. The documentation was updated to mention this new
functionality, but did not mention "user-configured trailer".

Further update the documentation to also mention "user-configured
trailer".

[1] "with non-trailer lines mixed with a configured trailer" in
t/t7513-interpret-trailers.sh

Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-11-21 12:49:57 -08:00
Johannes Schindelin
882cd23777 rebase -i: handle core.commentChar=auto
When 84c9dc2 (commit: allow core.commentChar=auto for character auto
selection, 2014-05-17) extended the core.commentChar functionality to
allow for the value 'auto', it forgot that rebase -i was already taught to
handle core.commentChar, and in turn forgot to let rebase -i handle that
new value gracefully.

Reported by Taufiq Hoven.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-11-21 11:00:41 -08:00
Johannes Schindelin
92068ae8bf stripspace: respect repository config
The way "git stripspace" reads the configuration was not quite
kosher, in that the code forgot to probe for a possibly existing
repository (note: stripspace is designed to be usable outside the
repository as well).  It read .git/config only when it was run from
the top-level of the working tree by accident.  A recent change
b9605bc4f2 ("config: only read .git/config from configured repos",
2016-09-12) stopped reading the repository-local configuration file
".git/config" unless the repository discovery process is done, so
that .git/config is never read even when run from the top-level,
exposing the old bug more.

When rebasing interactively with a commentChar defined in the
current repository's config, the help text at the bottom of the edit
script potentially used an incorrect comment character. This was not
only funny-looking, but also resulted in tons of warnings like this
one:

	Warning: the command isn't recognized in the following line
	 - #

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-11-21 11:00:38 -08:00
Johannes Schindelin
6645838845 rebase -i: highlight problems with core.commentchar
The interactive rebase does not currently play well with
core.commentchar. Let's add some tests to highlight those problems
that will be fixed in the remainder of the series.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-11-21 11:00:17 -08:00
Jiang Xin
358718064b i18n: fix unmatched single quote in error message
Fixed unmatched single quote introduced by commit:

 * f56fffef9a sequencer: teach write_message() to append an optional LF

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-11-21 09:30:50 -08:00
Jeff Hostetler
c7aba49162 fixup! name-hash: precompute hash values during preload-index
Clear the precompute flag in create_alias_ce().
It might be possible to use the precompute_ fields from the
alias in the new one, but its not worth the bother.

Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
2016-11-21 11:31:04 -05:00
Jiang Xin
a0b6b24660 l10n: zh_CN: for git v2.11.0 l10n round 1
Update 209 translations (2913t0f0u) for git v2.11.0-rc0.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
2016-11-21 23:24:15 +08:00
Johannes Schindelin
6619f79a0e fixup! msvc: work around iconv() not setting errno 2016-11-21 12:27:50 +01:00
Junio C Hamano
84679d470d for-each-ref: do not segv with %(HEAD) on an unborn branch
The code to flip between "*" and " " prefixes depending on what
branch is checked out used in --format='%(HEAD)' did not consider
that HEAD may resolve to an unborn branch and dereferenced a NULL.

This will become a lot easier to trigger as the codepath will be
used to reimplement "git branch [--list]" in the future.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-11-18 15:21:12 -08:00
Johannes Schindelin
14b1b9016c fixup! name-hash: precompute hash values during preload-index 2016-11-19 00:16:15 +01:00
Johannes Schindelin
2ca3333288 fixup! name-hash: precompute hash values during preload-index 2016-11-18 21:39:01 +01:00
Johannes Schindelin
a6b71974e4 fixup! hashmap: allow memihash computation to be continued 2016-11-18 21:38:58 +01:00
Johannes Schindelin
dee873cae6 fixup! name-hash: precompute hash values during preload-index 2016-11-18 21:38:40 +01:00
Johannes Schindelin
c6703c2465 Merge branch 'perl5lib'
With this topic branch, the PERL5LIB variable is unset to avoid external
settings from interfering with Git's own Perl interpreter.

This branch also cleans up some of our Windows-only config setting code
(and this will need to be rearranged in the next merging rebase so that
the cleanup comes first, and fscache and longPaths support build on
top).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-18 13:40:02 +01:00
Johannes Schindelin
ddd3bfb574 mingw: unset PERL5LIB by default
Git for Windows ships with its own Perl interpreter, and insists on
using it, so it will most likely wreak havoc if PERL5LIB is set before
launching Git.

Let's just unset that environment variables when spawning processes.

To make this feature extensible (and overrideable), there is a new
config setting `core.unsetenvvars` that allows specifying a
comma-separated list of names to unset before spawning processes.

Reported by Gabriel Fuhrmann.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2016-11-18 13:39:36 +01:00