Commit Graph

49812 Commits

Author SHA1 Message Date
마누엘
0340124bf9 readme: added link to governance model
After publishing the governance model on the [developer
page](http://git-for-windows.github.io), lets add a link on the
`README.md` too.

Signed-off-by: 마누엘 <nalla@hamal.uberspace.de>
2015-04-29 11:19:00 +02:00
The Gitter Badger
b0aac2f547 Added Gitter badge 2015-04-29 10:49:05 +02:00
Johannes Schindelin
15ad4c68de Add a README.md
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-29 10:49:04 +02:00
Johannes Schindelin
daaa7cdcb5 Start the merging-rebase to v2.3.7
This commit starts the rebase of 16685c2 to b17db4d
2015-04-29 10:47:55 +02:00
dscho
34d07cc585 Merge pull request #119 from nalla/link-to-governance-model
readme: added link to governance model
2015-04-28 15:35:21 +02:00
마누엘
18864ff2a3 readme: added link to governance model
After publishing the governance model on the [developer
page](http://git-for-windows.github.io), lets add a link on the
`README.md` too.

Signed-off-by: 마누엘 <nalla@hamal.uberspace.de>
2015-04-28 14:52:25 +02:00
Junio C Hamano
16018ae5fb Git 2.3.7
Signed-off-by: Junio C Hamano <gitster@pobox.com>
v2.3.7
2015-04-27 12:25:36 -07:00
Junio C Hamano
ad34ad614d Merge branch 'tb/connect-ipv6-parse-fix' into maint
An earlier update to the parser that disects a URL broke an
address, followed by a colon, followed by an empty string (instead
of the port number), e.g. ssh://example.com:/path/to/repo.

* tb/connect-ipv6-parse-fix:
  connect.c: ignore extra colon after hostname
2015-04-27 12:23:54 -07:00
Junio C Hamano
89ba311df3 Merge branch 'ma/bash-completion-leaking-x' into maint
The completion script (in contrib/) contaminated global namespace
and clobbered on a shell variable $x.

* ma/bash-completion-leaking-x:
  completion: fix global bash variable leak on __gitcompappend
2015-04-27 12:23:51 -07:00
Junio C Hamano
631f6f1d47 Merge branch 'jc/push-cert' into maint
The "git push --signed" protocol extension did not limit what the
"nonce" that is a server-chosen string can contain or how long it
can be, which was unnecessarily lax.  Limit both the length and the
alphabet to a reasonably small space that can still have enough
entropy.

* jc/push-cert:
  push --signed: tighten what the receiving end can ask to sign
2015-04-27 12:23:50 -07:00
Johannes Schindelin
9ba1ada8de squash! windows_wide_config: Fix wbuffer to be of the wchar_t type
With the next merging rebase, replace the commit subject with

fixup! Windows: use %PROGRAMDATA%\Git\config as Windows-wide configuration

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-27 15:49:06 +02:00
dscho
11fb9e096a Merge pull request #118 from git-for-windows/fix-windows_wide_config
windows_wide_config: Fix wbuffer to be of the wchar_t type
2015-04-27 15:46:46 +02:00
Sebastian Schuberth
145027bc2a windows_wide_config: Fix wbuffer to be of the wchar_t type
Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
2015-04-27 12:29:02 +02:00
Johannes Schindelin
505857c0c7 squash! git am: ignore dirty submodules
Drop this patch because it prevents `git rebase --continue` after
resolving a submodule-only commit's conflict during a rebase.

This reverts commit fbe1f041f9890f4b2eea3ed2265f82c9b845a39b.
2015-04-27 10:02:32 +02:00
Johannes Schindelin
00fb16b7d4 Merge remote-tracking branch 'dscho/xp-config'
This topic branch supports a Windows-wide config on Windows XP, too.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-25 09:37:11 +00:00
Johannes Schindelin
4583e6bebd squash! Windows: use %PROGRAMDATA%\Git\config as Windows-wide configuration
On XP, there is no %PROGRAMDATA%, therefore we need to use
"%ALLUSERSPROFILE%\Application Data\Git\config" in those setups.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-24 11:49:17 +01:00
Johannes Schindelin
cc9730bd66 Merge pull request #104 from dscho/super-config
Add support for %PROGRAMDATA%\Git\config

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:20:05 +01:00
Johannes Schindelin
669fe4daf5 Document the Windows-wide config file
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:19:39 +01:00
Johannes Schindelin
297386b227 Windows: use %PROGRAMDATA%\Git\config as Windows-wide configuration
Between the libgit2 and the Git for Windows project, there has been a
discussion how we could share Git configuration to avoid duplication (or
worse: skew).

Earlier, libgit2 was nice enough to just re-use Git for Windows'

	C:\Program Files (x86)\Git\etc\gitconfig

but with the upcoming Git for Windows 2.x, there would be more paths to
search, as we will have 64-bit and 32-bit versions, and the
corresponding config files will be in %PROGRAMFILES%\Git\mingw64\etc and
...\mingw32\etc, respectively.

Therefore we came to a consensus to use %PROGRAMDATA%\Git as the
location for Git-specific files that are of wider interest than just Git
for Windows.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:19:33 +01:00
Johannes Schindelin
2120bb9ddd Merge pull request #60 from weakcamel/fscanf-64bit-constants
Correct fscanf formatting string for I64u values

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:18:50 +01:00
Waldek Maleska
153f6bd94f Correct fscanf formatting string for I64u values
Signed-off-by: Waldek Maleska <w.maleska@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:18:46 +01:00
Johannes Schindelin
4cc73f766e Merge pull request #98 from nalla/stdout-unbuffered
mingw: explicitly `fflush` stdout
2015-04-23 10:18:37 +01:00
nalla
a49305f98c mingw: explicitly fflush stdout
For performance reasons `stdout` is not unbuffered by default. That leads
to problems if after printing to `stdout` a read on `stdin` is performed.

For that reason interactive commands like `git clean -i` do not function
properly anymore if the `stdout` is not flushed by `fflush(stdout)` before
trying to read from `stdin`.

In the case of `git clean -i` all reads on `stdin` were preceded by a
`fflush(stdout)` call.

Signed-off-by: nalla <nalla@hamal.uberspace.de>
2015-04-23 10:18:33 +01:00
Johannes Schindelin
b0e7bd771e Merge pull request #93 from nalla/asciidoctor-fixes
Asciidoctor fixes

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:18:18 +01:00
nalla
5713fdc791 asciidoctor: Fix giteveryday.txt to be built with asciidoctor.
When building the `doc` with `asciidoctor`, `asciidoctor` complains about
a nested code block in a callout list. This is a really dirty solution to
restore the callout list to function properly. There is a minimal visual
sideeffect; the *immitated* codeblock has no overall greyish background.
Instead the individual lines have it.

Note: When building this patch with `asciidoc` the background is totally
gone but the font is still monospaced.

Signed-off-by: nalla <nalla@hamal.uberspace.de>
2015-04-23 10:17:31 +01:00
nalla
8805a67483 asciidoctor: Fix user-manual to be built by asciidoctor
The `user-manual.txt` ist designed as a `book` but the `Makefile` wants to
build it as an `article`. This seems to be a problem when building the
documentation with `asciidoctor`. Furthermore the parts *Git Glossary*
and *Apendix B* had no subsections which is not allowed when building with
`asciidoctor`. So lets add a *dummy* section.

Signed-off-by: nalla <nalla@hamal.uberspace.de>
2015-04-23 10:17:27 +01:00
Johannes Schindelin
62278b3c2f Merge 'git-wrapper' into HEAD
Use msysGit's `git-wrapper` instead of the builtins. This works around
two issues:

- when the file system does not allow hard links, we would waste over
  800 megabyte by having 109 copies of a multi-megabyte executable

- even when the file system allows hard links, the Windows Explorer
  counts the disk usage as if it did not. Many users complained about
  Git for Windows using too much space (when it actually did not). We
  can easily avoid those user complaints by merging this branch.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:16:04 +01:00
Johannes Schindelin
dd94d4896d Merge 'poll_inftim' into HEAD
This was originally 'pull request #330 from ethomson/poll_inftim' in
msysgit/git.

poll: honor the timeout on Win32

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:16:03 +01:00
Johannes Schindelin
3223662af2 Merge 'non-win-fixes' into HEAD 2015-04-23 10:16:01 +01:00
Johannes Schindelin
4c991835af Merge 'taskkill' into HEAD
git-gui/gitk: Do not use a Cygwin-specific kill flag on Windows

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:15:59 +01:00
Johannes Schindelin
1ae7d91655 Merge 'long-paths' into HEAD
This works around path length limitations by using the \\?\* trick.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:15:20 +01:00
Johannes Schindelin
fb80522111 Merge 'fscache' into HEAD
This brings considerable speed-ups to Git for Windows.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:58 +01:00
Johannes Schindelin
fc6c231fdd Merge 'sideband-bug' into HEAD
This works around the push-over-git-protocol issues pointed out in
https://github.com/msysgit/git/issues/101.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:56 +01:00
Johannes Schindelin
65cbf37a0f Merge 'readme' into HEAD
Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:54 +01:00
Johannes Schindelin
d3e496b536 Merge 'fix-is-exe' into HEAD 2015-04-23 10:13:53 +01:00
Johannes Schindelin
e5b84e6d79 Merge 'fix-externals' into HEAD 2015-04-23 10:13:51 +01:00
Johannes Schindelin
08ba4d7b94 Merge 'remote-hg-prerequisites' into HEAD
These fixes were necessary for Sverre Rabbelier's remote-hg to work,
but for some magic reason they are not necessary for the current
remote-hg. Makes you wonder how that one gets away with it.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:49 +01:00
Johannes Schindelin
b4ea5398ea Merge 'win-tests-fixes' into HEAD 2015-04-23 10:13:47 +01:00
Johannes Schindelin
d6591e1151 Merge 'msys2' into HEAD
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:46 +01:00
Karsten Blees
d537349937 git-wrapper: remove redundant TERM initialization
Remove redundant TERM initialization from git-wrapper in favor of TERM
initialization in git itself.

Signed-off-by: Karsten Blees <blees@dcon.de>
2015-04-23 10:13:30 +01:00
Karsten Blees
194e094d4f git-wrapper: fix HOME initialization
git-wrapper fails to initialize HOME correctly if $HOMEDRIVE$HOMEPATH
points to a disconnected network drive.

Check if the directory exists before using $HOMEDRIVE$HOMEPATH.

Signed-off-by: Karsten Blees <blees@dcon.de>
2015-04-23 10:13:29 +01:00
Vitaly Takmazov
32aedd345c git-wrapper: case-insensitive path comparison 2015-04-23 10:13:28 +01:00
Johannes Schindelin
57860dde5f git-wrapper: interpret --cd=<directory> when configured via resources
This change accompanies the `--no-cd` option when configured via
resources. It is required to support `Git Bash Here`: when
right-clicking an icon in the Explorer to start a Bash, the working
directory is actually the directory that is displayed in the Explorer.
That means if the clicked icon actually refers to a directory, the
working directory would be its *parent* directory.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:26 +01:00
Johannes Schindelin
62ba61e49f git-wrapper: serve as git-gui.exe, too
To avoid that ugly Console window when calling \cmd\git.exe gui...

To avoid confusion with builtins, we need to move the code block
handling gitk (and now git-gui, too) to intercept before git-gui is
mistaken for a builtin.

Unfortunately, git-gui is in libexec/git-core/ while gitk is in bin/,
therefore we need slightly more adjustments than just moving and
augmenting the gitk case.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:23 +01:00
nalla
6413d060df git-wrapper: support git.exe and gitk.exe to be in a spaced dir
When *Git for Windows* is installed into a directory that has spaces in
it, e.g. `C:\Program Files\Git`, the `git-wrapper` appends this directory
unquoted when fixing up the command line. To resolve this, just quote the
provided `execpath`.

Signed-off-by: nalla <nalla@hamal.uberspace.de>
2015-04-23 10:13:22 +01:00
nalla
afdbd9f131 mingw: Support git_terminal_prompt with more terminals
The `git_terminal_prompt()` function expects the terminal window to be
attached to a Win32 Console. However, this is not the case with terminal
windows other than `cmd.exe`'s, e.g. with MSys2's own `mintty`.

Non-cmd terminals such as `mintty` still have to have a Win32 Console
to be proper console programs, but have to hide the Win32 Console to
be able to provide more flexibility (such as being resizeable not only
vertically but also horizontally). By writing to that Win32 Console,
`git_terminal_prompt()` manages only to send the prompt to nowhere and
to wait for input from a Console to which the user has no access.

This commit introduces a function specifically to support `mintty` -- or
other terminals that are compatible with MSys2's `/dev/tty` emulation. We
use the `TERM` environment variable as an indicator for that: if the value
starts with "xterm" (such as `mintty`'s "xterm_256color"), we prefer to
let `xterm_prompt()` handle the user interaction.

To handle the case when standard input/output are redirected – as is the
case when pushing via HTTPS: `git-remote-https`' standard input and
output are pipes from/to the main Git executable – we make use of the
`MSYS_TTY_HANDLES` environment variable that was introduced to
fix another bug in MSys2-based Git: this environment variable contains
the Win32 `HANDLE`s of the standard input, output and error as originally
passed from MSys2 to the Git executable, enclosed within space
characters, skipping handles that do not refer to the terminal window
(e.g. when they were redirected). We will only use those handles when
that environment variable lists all three handles because then we can be
100% certain that we are running inside a terminal window, and that we
know exactly which Win32 handles to use to communicate with it.

Helped-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: nalla <nalla@hamal.uberspace.de>
2015-04-23 10:13:20 +01:00
Johannes Schindelin
f752904f67 git-wrapper: Allow git-cmd.exe to add only /cmd/ to the PATH
The idea of having the Git wrapper in the /cmd/ directory is to allow
adding only a *tiny* set of executables to the search path, to allow
minimal interference with other software applications. It is quite
likely, for example, that other software applications require their own
version of zlib1.dll and would not be overly happy to find the version
Git for Windows ships.

The /cmd/ directory also gives us the opportunity to let the Git wrapper
handle the `gitk` script. It is a Tcl/Tk script that is not recognized
by Windows, therefore calling `gitk` in `cmd.exe` would not work, even
if we add all of Git for Windows' bin/ directories.

So let's use the /cmd/ directory instead of adding /mingw??/bin/ and
/usr/bin/ to the PATH when launching Git CMD.

The way we implemented Git CMD is to embed the appropriate command line
as string resource into a copy of the Git wrapper. Therefore we extended
that syntax to allow for configuring a minimal search path.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:19 +01:00
Johannes Schindelin
9e1c906bb8 git-wrapper: optionally skip cd $HOME when configured via resources
We recently added the ability to configure copies of the Git wrapper to
launch custom command-lines, configured via plain old Windows resources.
The main user is Git for Windows' `git-bash.exe`, of course. When the
user double-clicks the `git bash` icon, it makes sense to start the Bash
in the user's home directory.

Third-party software, such as TortoiseGit or GitHub for Windows, may
want to start the Git Bash in another directory, though.

Now, when third-party software wants to call Git, they already have to
construct a command-line, and can easily pass a command-line option
`--no-cd` (which this commit introduces), and since that option is not
available when the user double-clicks an icon on the Desktop or in the
Explorer, let's keep the default to switch to the home directory if the
`--no-cd` flag was not passed along.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:17 +01:00
Johannes Schindelin
85df253402 git-wrapper: make command-line argument skipping more robust
When we rewrite the command-line to call the *real* Git, we want to skip
the first command-line parameter. The previous code worked in most
circumstances, but was a bit fragile because it assumed that no fancy
quoting would take place.

In the next commit, we will want to have the option to skip more than
just one command-line parameter, so we have to be much more careful with
the command-line handling.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:16 +01:00
Johannes Schindelin
1e0154b0cc git-wrapper: remove 'gui' and 'citool' handling
In the meantime, Git for Windows learned to handle those subcommands
quite well itself; There is no longer a need to special-case them in the
wrapper.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2015-04-23 10:13:15 +01:00