Branch: refs/heads/thicket-1.8.5.1
Home:
https://github.com/msysgit/git
Commit: 014228d03edfffeafb6bccc8d0ba7be11b3df1fa
https://github.com/msysgit/git/commit/014228d03edfffeafb6bccc8d0ba7be11b3df1fa
Author: Evgeny Pashkin <
epas...@cognitive.ru>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Fixed wrong path delimiter in exe finding
On Windows XP3 in git bash
git clone g...@github.com:octocat/Spoon-Knife.git
cd Spoon-Knife
git gui
menu Remote\Fetch from\origin
error: cannot spawn git: No such file or directory
error: could not run rev-list
if u run
git fetch --all
it worked normal in git bash or gitgui tools
In second version CreateProcess get 'C:\Git\libexec\git-core/git.exe' in
first version - C:/Git/libexec/git-core/git.exe and not executes (unix
slashes)
after fixing C:\Git\libexec\git-core\git.exe or
C:/Git/libexec/git-core\git.exe it works normal
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 4ae890207054686dfc25fb472ededacf60a6f6de
https://github.com/msysgit/git/commit/4ae890207054686dfc25fb472ededacf60a6f6de
Author: Heiko Voigt <
hvo...@hvoigt.net>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M git-sh-setup.sh
M git-submodule.sh
Log Message:
-----------
Windows: Always normalize paths to Windows-style
It appears that `pwd` returns the POSIX-style or the DOS-style path
depending which style the previous `cd` used. To normalize, enforce `pwd
-W` in scripts.
From the original e-mail exchange:
On Thu, Mar 22, 2012 at 11:13:37AM +0100, Sebastian Schuberth wrote:
> On Wed, Mar 21, 2012 at 22:21, Johannes Sixt <
j...@kdbg.org> wrote:
>
> > I build git and run its tests outside the msysgit environment. Does that
> > explain the difference? (And I use CMD.)
>
> It does not make a difference for me. I started cmd.exe at
> c:\msysgit\git\t, added c:\msysgit\bin temporarily to PATH, and ran
> "sh t5526-fetch-submodules.sh -i -v", and the test still fails.
Yes it probably does. Johannes said that he runs the tests outside of
the msysgit folder. That way there is only one path the submodule script
gets reported and not two like '/c/msysgit/git' and '/git'.
That would explain to me why it is passing.
I am afraid that the only solution is to patch msys itself to report the
long absolute path when passing window style paths to cd. Currently when
I do
cd c:/msysgit/git
I will end up in '/git' instead of the long path.
I found that there is a -W option to pwd in msys bash which makes it
always return the real windows path. A normalization in that direction
is unique and thus might be more robust. Have a look at the attached
patch. With this at least t5526 passes. I was not able to run the whole
testsuite properly at the moment. I can have a look at that tomorrow.
What do you think?
Cheers Heiko
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: e6274e2ee0f9f5f03b21b3aed5adb8bc3308b8e0
https://github.com/msysgit/git/commit/e6274e2ee0f9f5f03b21b3aed5adb8bc3308b8e0
Author: Adam Roben <
ad...@roben.org>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Fix launching of externals from Unicode paths
If Git were installed in a path containing non-ASCII characters,
commands such as git-am and git-submodule, which are implemented as
externals, would fail to launch with the following error:
> fatal: 'am' appears to be a git command, but we were not
> able to execute it. Maybe git-am is broken?
This was due to lookup_prog not being Unicode-aware. It was somehow
missed in 2ee5a1a14ad17ff35f0ad52390a27fbbc41258f3.
Note that the only problem in this function was calling
GetFileAttributes instead of GetFileAttributesW. The calls to access()
were fine because access() is a macro which resolves to mingw_access,
which already handles Unicode correctly. But I changed lookup_prog to
use _waccess directly so that we only convert the path to UTF-16 once.
Signed-off-by: Adam Roben <
ad...@roben.org>
Commit: ea3f47310a1815598150bda3cf8c9d07a620bc2f
https://github.com/msysgit/git/commit/ea3f47310a1815598150bda3cf8c9d07a620bc2f
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.h
M compat/winansi.c
Log Message:
-----------
Support Unicode console output on Windows
WriteConsoleW seems to be the only way to reliably print unicode to the
console (without weird code page conversions).
Also redirects vfprintf to the winansi.c version.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: e9e09c2ceace0857fc1e07b0b7e3abd980b78862
https://github.com/msysgit/git/commit/e9e09c2ceace0857fc1e07b0b7e3abd980b78862
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/winansi.c
Log Message:
-----------
Detect console streams more reliably on Windows
GetStdHandle(STD_OUTPUT_HANDLE) doesn't work for stderr if stdout is
redirected. Use _get_osfhandle of the FILE* instead.
_isatty() is true for all character devices (including parallel and serial
ports). Check return value of GetConsoleScreenBufferInfo instead to
reliably detect console handles (also don't initialize internal state from
an uninitialized CONSOLE_SCREEN_BUFFER_INFO structure if the function
fails).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 87377b9f7c6aa2782844c694cd6b6d1c9f9796b7
https://github.com/msysgit/git/commit/87377b9f7c6aa2782844c694cd6b6d1c9f9796b7
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/winansi.c
Log Message:
-----------
Warn if the Windows console font doesn't support Unicode
Unicode console output won't display correctly with default settings
because the default console font ("Terminal") only supports the system's
OEM charset. Unfortunately, this is a user specific setting, so it cannot
be easily fixed by e.g. some registry tricks in the setup program.
This change prints a warning on exit if console output contained non-ascii
characters and the console font is supposedly not a TrueType font (which
usually have decent Unicode support).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 140de3aa9519ae4c315d33a012df1b978d86ab62
https://github.com/msysgit/git/commit/140de3aa9519ae4c315d33a012df1b978d86ab62
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/win32/dirent.h
M config.mak.uname
Log Message:
-----------
Win32 dirent: remove unused dirent.d_ino member
There are no proper inodes on Windows, so remove dirent.d_ino and #define
NO_D_INO_IN_DIRENT in the Makefile (this skips e.g. an ineffective qsort in
fsck.c).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Commit: 6bed071d96083d63a162d9f6b743315f0a1cdcb6
https://github.com/msysgit/git/commit/6bed071d96083d63a162d9f6b743315f0a1cdcb6
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/win32/dirent.h
Log Message:
-----------
Win32 dirent: remove unused dirent.d_reclen member
Remove the union around dirent.d_type and the unused dirent.d_reclen member
(which was necessary for compatibility with the MinGW dirent runtime, which
is no longer used).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Commit: ae74068ed97031617a34f99819c8bacbac3559c3
https://github.com/msysgit/git/commit/ae74068ed97031617a34f99819c8bacbac3559c3
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/win32/dirent.h
Log Message:
-----------
Win32 dirent: change FILENAME_MAX to MAX_PATH
FILENAME_MAX and MAX_PATH are both 260 on Windows, however, MAX_PATH is
used throughout the other Win32 code in Git, and also defines the length
of file name buffers in the Win32 API (e.g. WIN32_FIND_DATA.cFileName,
from which we're copying the dirent data).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Commit: 25d307f191ec68d3db29c958e53e73cb74937dba
https://github.com/msysgit/git/commit/25d307f191ec68d3db29c958e53e73cb74937dba
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/win32/dirent.c
Log Message:
-----------
Win32 dirent: clarify #include directives
Git-compat-util.h is two dirs up, and already includes <dirent.h> (which
is the same as "dirent.h" due to -Icompat/win32 in the Makefile).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Commit: c85185264ceace09061eeb802daef735f8432658
https://github.com/msysgit/git/commit/c85185264ceace09061eeb802daef735f8432658
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/win32/dirent.c
Log Message:
-----------
Win32 dirent: improve dirent implementation
Improve the dirent implementation by removing the relics that were once
necessary to plug into the now unused MinGW runtime, in preparation for
Unicode file name support.
Move FindFirstFile to opendir, and FindClose to closedir, with the
following implications:
- DIR.dd_name is no longer needed
- chdir(one); opendir(relative); chdir(two); readdir() works as expected
(i.e. lists one/relative instead of two/relative)
- DIR.dd_handle is a valid handle for the entire lifetime of the DIR struct
- thus, all checks for dd_handle == INVALID_HANDLE_VALUE and dd_handle == 0
have been removed
- the special case that the directory has been fully read (which was
previously explicitly tracked with dd_handle == INVALID_HANDLE_VALUE &&
dd_stat != 0) is now handled implicitly by the FindNextFile error
handling code (if a client continues to call readdir after receiving
NULL, FindNextFile will continue to fail with ERROR_NO_MORE_FILES, to
the same effect)
- extracting dirent data from WIN32_FIND_DATA is needed in two places, so
moved to its own method
- GetFileAttributes is no longer needed. The same information can be
obtained from the FindFirstFile error code, which is ERROR_DIRECTORY if
the name is NOT a directory (-> ENOTDIR), otherwise we can use
err_win_to_posix (e.g. ERROR_PATH_NOT_FOUND -> ENOENT). The
ERROR_DIRECTORY case could be fixed in err_win_to_posix, but this
probably breaks other functionality.
Removes the ERROR_NO_MORE_FILES check after FindFirstFile (this was
fortunately a NOOP (searching for '*' always finds '.' and '..'),
otherwise the subsequent code would have copied data from an uninitialized
buffer).
Changes malloc to git support function xmalloc, so opendir will die() if
out of memory, rather than failing with ENOMEM and letting git work on
incomplete directory listings (error handling in dir.c is quite sparse).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Commit: 001e934c212479036567cba4861595ab8de47ec5
https://github.com/msysgit/git/commit/001e934c212479036567cba4861595ab8de47ec5
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: fix potential multi-threading issue
...by removing a static buffer in do_stat_internal.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Commit: 698262a3e5fcb3a2d8aa25fa4eda78dbf346b4d1
https://github.com/msysgit/git/commit/698262a3e5fcb3a2d8aa25fa4eda78dbf346b4d1
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
M compat/mingw.h
M http-fetch.c
M remote-curl.c
Log Message:
-----------
Win32: move main macro to a function
The code in the MinGW main macro is getting more and more complex, move to
a separate initialization function for readabiliy and extensibility.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Commit: a5fff410dfe2d05d0263b0fb40244282ba16ec40
https://github.com/msysgit/git/commit/a5fff410dfe2d05d0263b0fb40244282ba16ec40
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
MinGW: disable CRT command line globbing
MingwRT listens to _CRT_glob to decide if __getmainargs should
perform globbing, with the default being that it should.
Unfortunately, __getmainargs globbing is sub-par; for instance
patterns like "*.c" will only match c-sources in the current
directory.
Disable __getmainargs' command line wildcard expansion, so these
patterns will be left untouched, and handled by Git's superior
built-in globbing instead.
MSVC defaults to no globbing, so we don't need to do anything
in that case.
This fixes t5505 and t7810.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Commit: 29f8ff12c480031bf71d36a2c0d59b4c5872cd34
https://github.com/msysgit/git/commit/29f8ff12c480031bf71d36a2c0d59b4c5872cd34
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/winansi.c
Log Message:
-----------
Unicode console: fix font warning on Vista and Win7
GetCurrentConsoleFontEx in an atexit routine doesn't work because git
closes stdout before exit (which also closes the console handle). Check
the console font when we first encounter a non-ascii character and only
schedule the warning message to be printed at exit (warnings go to stderr,
which is not closed by git).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Commit: dfa096123527de2057fea080f23d82040be0637e
https://github.com/msysgit/git/commit/dfa096123527de2057fea080f23d82040be0637e
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Revert "Windows: teach getenv to do a case-sensitive search"
This reverts commit df599e9612788b728ce43a03159b85f1fe624d6a.
As of 5e9637c6 "i18n: add infrastructure for translating Git with gettext",
eval_gettext uses MinGW envsubst.exe instead of git-sh-i18n--envsubst.exe
for variable substitution. This breaks git-submodule.sh messages and tests,
as envsubst.exe doesn't support case-sensitive environment lookup (the same
is true for almost everything on Windows, including MSys and Cygwin tools).
30a615ac "Windows/i18n: rename $path to prevent clashes with $PATH" renames
the conflicting variable in git-submodule.sh, so that it works on Windows
(i.e. with case-insensitive environment, regardless of the toolset).
Revert to the documented behaviour of case-insensitive environment on
Windows.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 299896a26e16e7f019b494f363010372920082ca
https://github.com/msysgit/git/commit/299896a26e16e7f019b494f363010372920082ca
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Revert "mingw.c: move definition of mingw_getenv down"
This reverts commit 06bc4b796ad69ba93f0a8c451368602e0553c2d3.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 1148d856ab4f6329d90f03614b070eec67676968
https://github.com/msysgit/git/commit/1148d856ab4f6329d90f03614b070eec67676968
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Enable color output in Windows cmd.exe
Git requires the TERM environment variable to be set for all color*
settings. Simulate the TERM variable if it is not set (default on Windows).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 5e62200b378a914d12e9e25dc93bc57e6dd9c70c
https://github.com/msysgit/git/commit/5e62200b378a914d12e9e25dc93bc57e6dd9c70c
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/winansi.c
Log Message:
-----------
MSVC: fix winansi.c compile errors
Some constants (such as LF_FACESIZE) are undefined with -DNOGDI (set in the
Makefile), and CONSOLE_FONT_INFOEX is available in MSVC, but not in MinGW.
Cast FARPROC to PGETCURRENTCONSOLEFONTEX to suppress MSVC compiler warning.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 62b434cc6c402f9cddabb5f235c8b35f0e499e62
https://github.com/msysgit/git/commit/62b434cc6c402f9cddabb5f235c8b35f0e499e62
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
M compat/mingw.h
M compat/winansi.c
Log Message:
-----------
Win32: Thread-safe windows console output
Winansi.c has many static variables that are accessed and modified from
the [v][f]printf / fputs functions overridden in the file. This may cause
multi threaded git commands that print to the console to produce corrupted
output or even crash.
Additionally, winansi.c doesn't override all functions that can be used to
print to the console (e.g. fwrite, write, fputc are missing), so that ANSI
escapes don't work properly for some git commands (e.g. git-grep).
Instead of doing ANSI emulation in just a few wrapped functions on top of
the IO API, let's plug into the IO system and take advantage of the thread
safety inherent to the IO system.
Redirect stdout and stderr to a pipe if they point to the console. A
background thread reads from the pipe, handles ANSI escape sequences and
UTF-8 to UTF-16 conversion, then writes to the console.
The pipe-based stdout and stderr replacements must be set to unbuffered, as
MSVCRT doesn't support line buffering and fully buffered streams are
inappropriate for console output.
Due to the byte-oriented pipe, ANSI escape sequences and multi-byte UTF-8
sequences can no longer be expected to arrive in one piece. Replace the
string-based ansi_emulate() with a simple stateful parser (this also fixes
colored diff hunk headers, which were broken as of commit 2efcc977).
Override isatty to return true for the pipes redirecting to the console.
Exec/spawn obtain the original console handle to pass to the next process
via winansi_get_osfhandle().
All other overrides are gone, the default stdio implementations work as
expected with the piped stdout/stderr descriptors.
Global variables are either initialized on startup (single threaded) or
exclusively modified by the background thread. Threads communicate through
the pipe, no further synchronization is necessary.
The background thread is terminated by disonnecting the pipe after flushing
the stdio and pipe buffers. This doesn't work for anonymous pipes (created
via CreatePipe), as DisconnectNamedPipe only works on the read end, which
discards remaining data. Thus we have to setup the pipe manually, with the
write end beeing the server (opened with CreateNamedPipe) and the read end
the client (opened with CreateFile).
Limitations: doesn't track reopened or duped file descriptors, i.e.:
- fdopen(1/2) returns fully buffered streams
- dup(1/2), dup2(1/2) returns normal pipe descriptors (i.e. isatty() =
false, winansi_get_osfhandle won't return the original console handle)
Currently, only the git-format-patch command uses xfdopen(xdup(1)) (see
"realstdout" in builtin/log.c), but works well with these limitations.
Many thanks to Atsushi Nakagawa <
at...@chejz.com> for suggesting and
reviewing the thread-exit-mechanism.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: b7d02d55ef02680bd9f9f7fb647a9ca6bdd634d6
https://github.com/msysgit/git/commit/b7d02d55ef02680bd9f9f7fb647a9ca6bdd634d6
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
M compat/mingw.h
Log Message:
-----------
Win32: add Unicode conversion functions
Add Unicode conversion functions to convert between Windows native UTF-16LE
encoding to UTF-8 and back.
To support repositories with legacy-encoded file names, the UTF-8 to UTF-16
conversion function tries to create valid, unique file names even for
invalid UTF-8 byte sequences, so that these repositories can be checked out
without error.
The current implementation leaves invalid UTF-8 bytes in range 0xa0 - 0xff
as is (producing printable Unicode chars \u00a0 - \u00ff, equivalent to
ISO-8859-1), and converts 0x80 - 0x9f to hex-code (\u0080 - \u009f are
control chars).
The Windows MultiByteToWideChar API was not used as it either drops invalid
UTF-8 sequences (on Win2k/XP; producing non-unique or even empty file
names) or converts them to the replacement char \ufffd (Vista/7; causing
ERROR_INVALID_NAME in subsequent calls to file system APIs).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: a6b58e76f410e03b6f52611081bf107435c2fb79
https://github.com/msysgit/git/commit/a6b58e76f410e03b6f52611081bf107435c2fb79
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
M compat/mingw.h
Log Message:
-----------
Win32: Unicode file name support (except dirent)
Replaces Windows "ANSI" APIs dealing with file- or path names with their
Unicode equivalent, adding UTF-8/UTF-16LE conversion as necessary.
The dirent API (opendir/readdir/closedir) is updated in a separate commit.
Adds trivial wrappers for access, chmod and chdir.
Adds wrapper for mktemp (needed for both mkstemp and mkdtemp).
The simplest way to convert a repository with legacy-encoded (e.g. Cp1252)
file names to UTF-8 ist to checkout with an old msysgit version and
"git add --all & git commit" with the new version.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: dfe3e7b71f051346fda8d55629858d84d0b39179
https://github.com/msysgit/git/commit/dfe3e7b71f051346fda8d55629858d84d0b39179
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/win32/dirent.c
M compat/win32/dirent.h
Log Message:
-----------
Win32: Unicode file name support (dirent)
Changes opendir/readdir to use Windows Unicode APIs and convert between
UTF-8/UTF-16.
Removes parameter checks that are already covered by xutftowcs_path. This
changes detection of ENAMETOOLONG from MAX_PATH - 2 to MAX_PATH (matching
is_dir_empty in mingw.c). If name + "/*" or the resulting absolute path is
too long, FindFirstFile fails and errno is set through err_win_to_posix.
Increases the size of dirent.d_name to accommodate the full
WIN32_FIND_DATA.cFileName converted to UTF-8 (UTF-16 to UTF-8 conversion
may grow by factor three in the worst case).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: e8524502b68c76a66054b5e52219b1da72cb0bb4
https://github.com/msysgit/git/commit/e8524502b68c76a66054b5e52219b1da72cb0bb4
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M git-gui/git-gui.sh
M git-gui/lib/browser.tcl
M git-gui/lib/index.tcl
M gitk-git/gitk
Log Message:
-----------
Unicode file name support (gitk and git-gui)
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 and git-gui functions dealing with file names to always convert
from and to UTF-8.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: ec350a3faf29115c926e178c03570959a9894717
https://github.com/msysgit/git/commit/ec350a3faf29115c926e178c03570959a9894717
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: Unicode arguments (outgoing)
Convert command line arguments from UTF-8 to UTF-16 when creating other
processes.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 0e72f8e3c6eefcb9cad60a186449bb986863ceb0
https://github.com/msysgit/git/commit/0e72f8e3c6eefcb9cad60a186449bb986863ceb0
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: Unicode arguments (incoming)
Convert command line arguments from UTF-16 to UTF-8 on startup.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: ceb58ad0da9246edcf20e2977b8910e27e6eb787
https://github.com/msysgit/git/commit/ceb58ad0da9246edcf20e2977b8910e27e6eb787
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/winansi.c
Log Message:
-----------
Win32: sync Unicode console output and file system
Use the same Unicode conversion functions for file names and console
conversions so that the file system and console output are in sync when
checking out legacy encoded repositories (i.e. with invalid UTF-8 file
names).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 0abf1e835c885eb53102c60cddf08a319175b26b
https://github.com/msysgit/git/commit/0abf1e835c885eb53102c60cddf08a319175b26b
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: Unicode environment (outgoing)
Convert environment from UTF-8 to UTF-16 when creating other processes.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 8a0a23554225f8655c009fcefe3e45dbce11e04a
https://github.com/msysgit/git/commit/8a0a23554225f8655c009fcefe3e45dbce11e04a
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
M compat/mingw.h
Log Message:
-----------
Win32: Unicode environment (incoming)
Convert environment from UTF-16 to UTF-8 on startup.
No changes to getenv() are necessary, as the MSVCRT version is implemented
on top of char **environ.
However, putenv / _wputenv from MSVCRT no longer work, for two reasons:
1. they try to keep environ, _wenviron and the Win32 process environment
in sync, using the default system encoding instead of UTF-8 to convert
between charsets
2. msysgit and MSVCRT use different allocators, memory allocated in git
cannot be freed by the CRT and vice versa
Implement mingw_putenv using the env_setenv helper function from the
environment merge code.
Note that in case of memory allocation failure, putenv now dies with error
message (due to xrealloc) instead of failing with ENOMEM. As git assumes
setenv / putenv to always succeed, this prevents it from continuing with
incorrect settings.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: d8e9d460244355518383c168a303a987f6c2d102
https://github.com/msysgit/git/commit/d8e9d460244355518383c168a303a987f6c2d102
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
M compat/mingw.h
M config.mak.uname
Log Message:
-----------
Win32: fix environment memory leaks
All functions that modify the environment have memory leaks.
Disable gitunsetenv in the Makefile and use env_setenv (via mingw_putenv)
instead (this frees removed environment entries).
Move xstrdup from env_setenv to make_augmented_environ, so that
mingw_putenv no longer copies the environment entries (according to POSIX
[1], "the string [...] shall become part of the environment"). This also
fixes the memory leak in gitsetenv, which expects a POSIX compliant putenv.
[1]
http://pubs.opengroup.org/onlinepubs/009695399/functions/putenv.html
Note: This patch depends on taking control of char **environ and having
our own mingw_putenv (both introduced in "Win32: Unicode environment
(incoming)").
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 4f7f66d1147f277ca1c515f226a9cd62fb0dec32
https://github.com/msysgit/git/commit/4f7f66d1147f277ca1c515f226a9cd62fb0dec32
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: unify environment case-sensitivity
The environment on Windows is case-insensitive. Some environment functions
(such as unsetenv and make_augmented_environ) have always used case-
sensitive comparisons instead, while others (getenv, putenv, sorting in
spawn*) were case-insensitive.
Prevent potential inconsistencies by using case-insensitive comparison in
lookup_env (used by putenv, unsetenv and make_augmented_environ).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 6b53d354959bd7ce4bdd1fe8b2711d334b0a74d4
https://github.com/msysgit/git/commit/6b53d354959bd7ce4bdd1fe8b2711d334b0a74d4
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Let mingw_execve() return an int
This is in the great tradition of POSIX. Original fix by Olivier Refalo.
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 2079ffde68431a5f7e50acd1f3d6c8bbefceac0c
https://github.com/msysgit/git/commit/2079ffde68431a5f7e50acd1f3d6c8bbefceac0c
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: simplify internal mingw_spawn* APIs
The only public spawn function that needs to tweak the environment is
mingw_spawnvpe (called from start_command). Nevertheless, all internal
spawn* functions take an env parameter and needlessly pass the global
char **environ around. Remove the env parameter where it's not needed.
This removes the internal mingw_execve abstraction, which is no longer
needed.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: a9dbd06a2609abc7295c9965aa768c8b1020a2a8
https://github.com/msysgit/git/commit/a9dbd06a2609abc7295c9965aa768c8b1020a2a8
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: move environment functions
Move environment helper functions up so that they can be reused by
mingw_getenv and mingw_spawnve_fd in subsequent patches.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 0602b3e0626969181cdedcc157abd0fdba67a284
https://github.com/msysgit/git/commit/0602b3e0626969181cdedcc157abd0fdba67a284
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: unify environment function names
Environment helper functions use random naming ('env' prefix or suffix or
both, with or without '_'). Change to POSIX naming scheme ('env' suffix,
no '_').
Env_setenv has more in common with putenv than setenv. Change to do_putenv.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 3a93e9a4597d8b702b757cb3204edd2880602497
https://github.com/msysgit/git/commit/3a93e9a4597d8b702b757cb3204edd2880602497
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: factor out environment block creation
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: de5f95eadf1895b71bf3c4f3174c4e6bab81ec98
https://github.com/msysgit/git/commit/de5f95eadf1895b71bf3c4f3174c4e6bab81ec98
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
M compat/mingw.h
M run-command.c
Log Message:
-----------
Win32: don't copy the environment twice when spawning child processes
When spawning child processes via start_command(), the environment and all
environment entries are copied twice. First by make_augmented_environ /
copy_environ to merge with child_process.env. Then a second time by
make_environment_block to create a sorted environment block string as
required by CreateProcess.
Move the merge logic to make_environment_block so that we only need to copy
the environment once. This changes semantics of the env parameter: it now
expects a delta (such as child_process.env) rather than a full environment.
This is not a problem as the parameter is only used by start_command()
(all other callers previously passed char **environ, and now pass NULL).
The merge logic no longer xstrdup()s the environment strings, so do_putenv
must not free them. Add a parameter to distinguish this from normal putenv.
Remove the now unused make_augmented_environ / free_environ API.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 11a53a5bd1e93fe1048e258ac609d35aac68cc47
https://github.com/msysgit/git/commit/11a53a5bd1e93fe1048e258ac609d35aac68cc47
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: reduce environment array reallocations
Move environment array reallocation from do_putenv to the respective
callers. Keep track of the environment size in a global variable. Use
ALLOC_GROW in mingw_putenv to reduce reallocations. Allocate a
sufficiently sized environment array in make_environment_block to prevent
reallocations.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: fe1d779906af98d5dedc1fc6327746201beaad15
https://github.com/msysgit/git/commit/fe1d779906af98d5dedc1fc6327746201beaad15
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: use low-level memory allocation during initialization
As of d41489a6 "Add more large blob test cases", git's high-level memory
allocation functions (xmalloc, xmemdupz etc.) access the environment to
simulate limited memory in tests (see 'getenv("GIT_ALLOC_LIMIT")' in
memory_limit_check()). These functions should not be used before the
environment is fully initialized (particularly not to initialize the
environment itself).
The current solution ('environ = NULL; ALLOC_GROW(environ...)') only works
because MSVCRT's getenv() reinitializes environ when it is NULL (i.e. it
leaves us with two sets of unusabe (non-UTF-8) and unfreeable (CRT-
allocated) environments).
Add our own set of malloc-or-die functions to be used in startup code.
Also check the result of __wgetmainargs, which may fail if there's not
enough memory for wide-char arguments and environment.
This patch is in preparation of the sorted environment feature, which
completely replaces MSVCRT's getenv() implementation.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 4e6682935650e09d4eb81b3c40813f0d2156b827
https://github.com/msysgit/git/commit/4e6682935650e09d4eb81b3c40813f0d2156b827
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: keep the environment sorted
The Windows environment is sorted, keep it that way for O(log n)
environment access.
Change compareenv to compare only the keys, so that it can be used to
find an entry irrespective of the value.
Change lookupenv to binary seach for an entry. Return one's complement of
the insert position if not found (libc's bsearch returns NULL).
Replace MSVCRT's getenv with a minimal do_getenv based on the binary search
function.
Change do_putenv to insert new entries at the correct position. Simplify
the function by swapping if conditions and using memmove instead of for
loops.
Move qsort from make_environment_block to mingw_startup. We still need to
sort on startup to make sure that the environment is sorted according to
our compareenv function (while Win32 / CreateProcess requires the
environment block to be sorted case-insensitively, CreateProcess currently
doesn't enforce this, and some applications such as bash just don't care).
Note that environment functions are _not_ thread-safe and are not required
to be so by POSIX, the application is responsible for synchronizing access
to the environment. MSVCRT's getenv and our new getenv implementation are
better than that in that they are thread-safe with respect to other getenv
calls as long as the environment is not modified. Git's indiscriminate use
of getenv in background threads currently requires this property.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 8c3278c0caf5841269c7f860dbd8647e60ae2350
https://github.com/msysgit/git/commit/8c3278c0caf5841269c7f860dbd8647e60ae2350
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: patch Windows environment on startup
Fix Windows specific environment settings on startup rather than checking
for special values on every getenv call.
As a side effect, this makes the patched environment (i.e. with properly
initialized TMPDIR and TERM) available to child processes.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 3498a2a3ee6380f42dce54a8400616f176a1186a
https://github.com/msysgit/git/commit/3498a2a3ee6380f42dce54a8400616f176a1186a
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Win32: fix detection of empty directories in is_dir_empty
On Windows XP (not Win7), directories cannot be deleted while a find handle
is open, causing "Deletion of directory '...' failed. Should I try again?"
prompts.
Prior to 19d1e75d "Win32: Unicode file name support (except dirent)",
these failures were silently ignored due to strbuf_free in is_dir_empty
resetting GetLastError to ERROR_SUCCESS.
Close the find handle in is_dir_empty so that git doesn't block deletion
of the directory even after all other applications have released it.
Reported-by: John Chen <
john...@gmail.com>
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 2a6eae4c0e5f82d55e2a3f6d72001a51aa4ebf14
https://github.com/msysgit/git/commit/2a6eae4c0e5f82d55e2a3f6d72001a51aa4ebf14
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.h
M compat/winansi.c
Log Message:
-----------
Win32: fix broken pipe detection
As of "Win32: Thread-safe windows console output", git-log no longer
terminates when the pager process dies. This is due to disabling buffering
for the replaced stdout / stderr streams. Git-log will periodically fflush
stdout (see write_or_die.c/mayble_flush_or_die()), but with no buffering,
this is a NOP that always succeeds (so we never detect the EPIPE error).
Exchange the original console handles with our console thread pipe handles
by accessing the internal MSVCRT data structures directly (which are
exposed via __pioinfo for some reason).
Implement this with minimal assumptions about the actual data structure to
make it work with different (hopefully even future) MSVCRT versions.
While messing with internal data structures is ugly, this patch solves the
problem at the source instead of adding more workarounds. We no longer need
the special winansi_isatty override, and the limitations documented in
"Win32: Thread-safe windows console output" are gone (i.e. fdopen(1/2)
returns unbuffered streams now, and isatty() for duped console file
descriptors works as expected).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: 5069c01ac169b7728d4146fe0a972cfa37963237
https://github.com/msysgit/git/commit/5069c01ac169b7728d4146fe0a972cfa37963237
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M config.mak.uname
Log Message:
-----------
MSVC: link dynamically to the CRT
Dynamic linking is generally preferred over static linking, and MSVCRT.dll
has been integral part of Windows for a long time.
This also fixes linker warnings for _malloc and _free in zlib.lib, which
seems to be compiled for MSVCRT.dll already.
The DLL version also exports some of the CRT initialization functions,
which are hidden in the static libcmt.lib (e.g. __wgetmainargs, required by
subsequent Unicode patches).
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: b6a319d22fabc2d61e36eac7b303f8af10971cb3
https://github.com/msysgit/git/commit/b6a319d22fabc2d61e36eac7b303f8af10971cb3
Author: theoleblond <
theodore...@gmail.com>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/poll/poll.c
Log Message:
-----------
Sleep 1 millisecond in poll() to avoid busy wait
I played around with this quite a bit. After trying some more complex
schemes, I found that what worked best is to just sleep 1 millisecond
between iterations. Though it's a very short time, it still completely
eliminates the busy wait condition, without hurting perf.
There code uses SleepEx(1, TRUE) to sleep. See this page for a good
discussion of why that is better than calling SwitchToThread, which
is what was used previously:
http://stackoverflow.com/questions/1383943/switchtothread-vs-sleep1
Note that calling SleepEx(0, TRUE) does *not* solve the busy wait.
The most striking case was when testing on a UNC share with a large repo,
on a single CPU machine. Without the fix, it took 4 minutes 15 seconds,
and with the fix it took just 1:08! I think it's because git-upload-pack's
busy wait was eating the CPU away from the git process that's doing the
real work. With multi-proc, the timing is not much different, but tons of
CPU time is still wasted, which can be a killer on a server that needs to
do bunch of other things.
I also tested the very fast local case, and didn't see any measurable
difference. On a big repo with 4500 files, the upload-pack took about 2
seconds with and without the fix.
Commit: c3ec5ad6b1495080563d4f7839d1ff60c5369755
https://github.com/msysgit/git/commit/c3ec5ad6b1495080563d4f7839d1ff60c5369755
Author: Adam Roben <
ad...@roben.org>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Make non-.exe externals work again
7ebac8cb94f3a06d3fbdde469414a1443ca45510 made launching of .exe
externals work when installed in Unicode paths. But it broke launching
of non-.exe externals, no matter where they were installed. We now
correctly maintain the UTF-8 and UTF-16 paths in tandem in lookup_prog.
This fixes t5526, among others.
Signed-off-by: Adam Roben <
ad...@roben.org>
Commit: 72da606f52963d81d63878c4dab5962d9e278e33
https://github.com/msysgit/git/commit/72da606f52963d81d63878c4dab5962d9e278e33
Author: Heiko Voigt <
hvo...@hvoigt.net>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M help.c
Log Message:
-----------
help: correct behavior for is_executable on Windows
The previous implementation said that the filesystem information on
Windows is not reliable to determine whether a file is executable.
To find gather this information it was peeking into the first two bytes
of a file to see whether it looks executable.
Apart from the fact that on Windows executables are usually defined as
such by their extension it lead to slow opening of help file in some
situations.
When you have virus scanner running calling open on an executable file
is a potentially expensive operation. See the following measurements (in
seconds) for example.
With virus scanner running (coldcache):
$ ./a.exe /libexec/git-core/
before open (git-add.exe): 0.000000
after open (git-add.exe): 0.412873
before open (git-annotate.exe): 0.000175
after open (git-annotate.exe): 0.397925
before open (git-apply.exe): 0.000243
after open (git-apply.exe): 0.399996
before open (git-archive.exe): 0.000147
after open (git-archive.exe): 0.397783
before open (git-bisect--helper.exe): 0.000160
after open (git-bisect--helper.exe): 0.397700
before open (git-blame.exe): 0.000160
after open (git-blame.exe): 0.399136
...
With virus scanner running (hotcache):
$ ./a.exe /libexec/git-core/
before open (git-add.exe): 0.000000
after open (git-add.exe): 0.000325
before open (git-annotate.exe): 0.000229
after open (git-annotate.exe): 0.000177
before open (git-apply.exe): 0.000167
after open (git-apply.exe): 0.000150
before open (git-archive.exe): 0.000154
after open (git-archive.exe): 0.000156
before open (git-bisect--helper.exe): 0.000132
after open (git-bisect--helper.exe): 0.000180
before open (git-blame.exe): 0.000718
after open (git-blame.exe): 0.000724
...
This test did just list the given directory and open() each file in it.
With this patch I get:
$ time git help git
Launching default browser to display HTML ...
real 0m8.723s
user 0m0.000s
sys 0m0.000s
and without
$ time git help git
Launching default browser to display HTML ...
real 1m37.734s
user 0m0.000s
sys 0m0.031s
both tests with cold cache and giving the machine some time to settle
down after restart.
Signed-off-by: Heiko Voigt <
heiko...@mahr.de>
Commit: b4d128961a66ea10ece604d9e8ed4d14237177d2
https://github.com/msysgit/git/commit/b4d128961a66ea10ece604d9e8ed4d14237177d2
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M git-stash.sh
Log Message:
-----------
git stash: make sure that .git/logs/refs/ exists
If the user has not activated reflogs, or if nothing has been recorded
yet (as is the case directly after cloning), said directory may not
exist yet.
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 3fedaf297fed56eda3feb08f05fb39fbac30441f
https://github.com/msysgit/git/commit/3fedaf297fed56eda3feb08f05fb39fbac30441f
Author: Pat Thoyts <
patt...@users.sourceforge.net>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M contrib/credential/wincred/Makefile
Log Message:
-----------
wincred: add install target and avoid overwriting configured variables.
Signed-off-by: Pat Thoyts <
patt...@users.sourceforge.net>
Commit: a1b101e79e21016a9f5acf38df4abfa6bac14643
https://github.com/msysgit/git/commit/a1b101e79e21016a9f5acf38df4abfa6bac14643
Author: Erik Faye-Lund <
kusm...@googlemail.com>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M Documentation/config.txt
M builtin/init-db.c
M cache.h
M compat/mingw.c
M config.c
M environment.c
M git-compat-util.h
Log Message:
-----------
core.hidedotfiles: hide '.git' dir by default
At least for cross-platform projects, it makes sense to hide the
files starting with a dot, as this is the behavior on Unix/MacOSX.
However, at least Eclipse has problems interpreting the hidden flag
correctly, so the default is to hide only the .git/ directory.
The config setting core.hideDotFiles therefore supports not only
'true' and 'false', but also 'dotGitOnly'.
[jes: clarified the commit message, made git init respect the setting
by marking the .git/ directory only after reading the config, and added
documentation, and rebased on top of current junio/next]
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 925c14b30a1877627ab99e4575b302c56a8b15e0
https://github.com/msysgit/git/commit/925c14b30a1877627ab99e4575b302c56a8b15e0
Author: Karsten Blees <
bl...@dcon.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/winansi.c
Log Message:
-----------
Win32: fix segfault in WriteConsoleW when debugging in gdb
On Windows XP (not Win7), WriteConsoleW and WriteFile seem to raise and
catch SIGSEGV if the lpNumberOfCharsWritten parameter is NULL. This is not
a problem when executed standalone, but gdb stops execution here (unless
disabled via "handle SIGSEGV nostop").
Fix it by passing a dummy variable.
Signed-off-by: Karsten Blees <
bl...@dcon.de>
Commit: f3fddc7e72cd94b3a4b04724fab56331e4757e8c
https://github.com/msysgit/git/commit/f3fddc7e72cd94b3a4b04724fab56331e4757e8c
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
When initializing .git/, record the current setting of core.hideDotFiles
This is on Windows only, of course.
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 29c55c0d6ad7bbd4b645adbc00560c890ad30203
https://github.com/msysgit/git/commit/29c55c0d6ad7bbd4b645adbc00560c890ad30203
Author: Cezary Zawadka <
czaw...@gmail.com>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M cache.h
M compat/mingw.c
M compat/mingw.h
M git-compat-util.h
M path.c
Log Message:
-----------
Allow using UNC path for git repository
[efl: moved MinGW-specific part to compat/]
[jes: fixed compilation on non-Windows]
Signed-off-by: Cezary Zawadka <
czaw...@gmail.com>
Signed-off-by: Erik Faye-Lund <
kusm...@gmail.com>
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: eb76b91c1aa3dd06de08af1c0190dfdc2559e7bd
https://github.com/msysgit/git/commit/eb76b91c1aa3dd06de08af1c0190dfdc2559e7bd
Author: Pat Thoyts <
patt...@users.sourceforge.net>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M t/t0001-init.sh
Log Message:
-----------
mingw: add tests for the hidden attribute on the git directory
With msysGit the .git directory is supposed to be hidden, unless it is
a bare git repository. Test this.
Signed-off-by: Pat Thoyts <
patt...@users.sourceforge.net>
Commit: 7f928ab19f7468edea0eeb33a7285310d2c56f9a
https://github.com/msysgit/git/commit/7f928ab19f7468edea0eeb33a7285310d2c56f9a
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
M compat/mingw.h
M git-compat-util.h
M path.c
M shell.c
Log Message:
-----------
Add a Windows-specific fallback to getenv("HOME");
This fixes msysGit issue 482 properly.
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: 0c4cd7644cdf315b6768deb3e7a0e3c8d07258e1
https://github.com/msysgit/git/commit/0c4cd7644cdf315b6768deb3e7a0e3c8d07258e1
Author: Eric Sunshine <
suns...@sunshineco.com>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
Log Message:
-----------
Make mingw_offset_1st_component() behave consistently for all paths.
mingw_offset_1st_component() returns "foo" for inputs "/foo" and
"c:/foo", but inconsistently returns "/foo" for UNC input
"/machine/share/foo". Fix it to return "foo" for all cases.
Reference:
http://groups.google.com/group/msysgit/browse_thread/thread/c0af578549b5dda0
Signed-off-by: Eric Sunshine <
suns...@sunshineco.com>
Signed-off-by: Johannes Schindelin <
johannes....@gmx.de>
Commit: eaae019944f1a83a44e9b59db0069efa78f68423
https://github.com/msysgit/git/commit/eaae019944f1a83a44e9b59db0069efa78f68423
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M Documentation/config.txt
M builtin/init-db.c
M cache.h
M compat/mingw.c
M config.c
M environment.c
M git-compat-util.h
M t/t0001-init.sh
Log Message:
-----------
Merge 'hide-dotgit' into HEAD
Commit: 0886cdf0c5f25331d445b36abd46d88edd6be20a
https://github.com/msysgit/git/commit/0886cdf0c5f25331d445b36abd46d88edd6be20a
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M compat/mingw.c
M compat/mingw.h
M git-compat-util.h
M path.c
M shell.c
Log Message:
-----------
Merge 'home' into HEAD
Commit: 5dfe0490420087eb8e2a4e0c37aa8036187c1a5d
https://github.com/msysgit/git/commit/5dfe0490420087eb8e2a4e0c37aa8036187c1a5d
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M cache.h
M compat/mingw.c
M compat/mingw.h
M git-compat-util.h
M path.c
Log Message:
-----------
Merge 'unc' into HEAD
Commit: 94cee7aeaf8e33aed650fbb7928e162736e24104
https://github.com/msysgit/git/commit/94cee7aeaf8e33aed650fbb7928e162736e24104
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M git-am.sh
Log Message:
-----------
Merge 'am-submodules' into HEAD
Commit: e4b46be84e0ecf5070d3bc16a2f5fd1911eee2e4
https://github.com/msysgit/git/commit/e4b46be84e0ecf5070d3bc16a2f5fd1911eee2e4
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M t/t4130-apply-criss-cross-rename.sh
Log Message:
-----------
Merge 'criss-cross-merge' into HEAD
Commit: 242d4805c294d0485778a280e8ff93fcbddb0573
https://github.com/msysgit/git/commit/242d4805c294d0485778a280e8ff93fcbddb0573
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M Documentation/config.txt
M builtin/receive-pack.c
M t/t5516-fetch-push.sh
Log Message:
-----------
Merge 'deny-current-branch' into HEAD
Commit: 70a76d93d5c53a866cba5bd4a2517bdb1c1104eb
https://github.com/msysgit/git/commit/70a76d93d5c53a866cba5bd4a2517bdb1c1104eb
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M git-gui/Makefile
A git-gui/git-gui--askyesno
M git-gui/git-gui.sh
Log Message:
-----------
Merge 'git-gui' into HEAD
Commit: 4baf17b945cffc5db5b22cd5e24d900ccc0c5b16
https://github.com/msysgit/git/commit/4baf17b945cffc5db5b22cd5e24d900ccc0c5b16
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M gitk-git/gitk
Log Message:
-----------
Merge 'gitk' into HEAD
Commit: 07b948ef4f3d7fbc9e65598d8f95a3b4705858e0
https://github.com/msysgit/git/commit/07b948ef4f3d7fbc9e65598d8f95a3b4705858e0
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M gitweb/gitweb.perl
Log Message:
-----------
Merge 'gitweb-syntax' into HEAD
Commit: f193302f4b5124a16997240a5bf5c79f5a22fcc2
https://github.com/msysgit/git/commit/f193302f4b5124a16997240a5bf5c79f5a22fcc2
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M contrib/credential/wincred/git-credential-wincred.c
M t/lib-credential.sh
Log Message:
-----------
Merge 'jberezanski/wincred-sso-r2' into HEAD
Commit: 8f2f72da5158efc856fdc16d558aab3eaf87751f
https://github.com/msysgit/git/commit/8f2f72da5158efc856fdc16d558aab3eaf87751f
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M git-send-email.perl
Log Message:
-----------
Merge 'send-email' into HEAD
Commit: 278f2a6bed5ce6d143af0c7f08d8a92b1d0e100f
https://github.com/msysgit/git/commit/278f2a6bed5ce6d143af0c7f08d8a92b1d0e100f
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M Documentation/config.txt
M Documentation/git-pull.txt
M builtin/remote.c
M git-pull.sh
Log Message:
-----------
Merge 'pull-rebase-interactive' into HEAD
Commit: 9fe9a915dc2342ea2b503602a329bfba67c6b3af
https://github.com/msysgit/git/commit/9fe9a915dc2342ea2b503602a329bfba67c6b3af
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M builtin/grep.c
Log Message:
-----------
Merge 'grep-fixes' into HEAD
Commit: 64c21574f0e86b2d6b6aaf72fb94cb55fb3b356f
https://github.com/msysgit/git/commit/64c21574f0e86b2d6b6aaf72fb94cb55fb3b356f
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M Makefile
M git-am.sh
M git-merge-octopus.sh
M git-sh-setup.sh
M git-submodule.sh
M t/annotate-tests.sh
M t/lib-credential.sh
M t/t0008-ignores.sh
M t/t0026-eol-config.sh
M t/t0081-line-buffer.sh
M t/t1050-large.sh
M t/t1306-xdg-files.sh
M t/t1501-worktree.sh
M t/t3102-ls-tree-wildcards.sh
M t/t3404-rebase-interactive.sh
M t/t3901-i18n-patch.sh
M t/t4041-diff-submodule-option.sh
M t/t4201-shortlog.sh
M t/t4205-log-pretty-formats.sh
M t/t4210-log-i18n.sh
M t/t5407-post-rewrite-hook.sh
M t/t5504-fetch-receive-strict.sh
M t/t6006-rev-list-format.sh
M t/t6038-merge-text-auto.sh
M t/t7102-reset.sh
M t/t7407-submodule-foreach.sh
M t/t7800-difftool.sh
M t/t8005-blame-i18n.sh
M t/t9001-send-email.sh
M t/t9350-fast-export.sh
M t/t9902-completion.sh
M t/test-lib.sh
Log Message:
-----------
Merge 'tests-crlf-fixes' into HEAD
Commit: 77bb5899ad21dbb70d3987b8523e668f9473e126
https://github.com/msysgit/git/commit/77bb5899ad21dbb70d3987b8523e668f9473e126
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M builtin/clone.c
M builtin/fast-export.c
M transport-helper.c
Log Message:
-----------
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....@gmx.de>
Commit: 797d2af35811d73e966a149aa141b82312c76bf6
https://github.com/msysgit/git/commit/797d2af35811d73e966a149aa141b82312c76bf6
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M http.c
Log Message:
-----------
Merge 'http-msys-paths' into HEAD
Commit: 163926e5d7529441d0a18db9d0b2a8c3884bef8e
https://github.com/msysgit/git/commit/163926e5d7529441d0a18db9d0b2a8c3884bef8e
Author: Johannes Schindelin <
johannes....@gmx.de>
Date: 2013-12-22 (Sun, 22 Dec 2013)
Changed paths:
M git-stash.sh
Log Message:
-----------
Merge 'stash-reflog' into HEAD
Compare:
https://github.com/msysgit/git/compare/7819c90aa76e...163926e5d752