Skip to content
This repository was archived by the owner on Nov 9, 2017. It is now read-only.

Msvc build fix (for generating git.sln) #317

Closed
wants to merge 353 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
353 commits
Select commit Hold shift + click to select a range
6ab1ca4
Fixed wrong path delimiter in exe finding
Sep 29, 2011
49b3c11
Fix launching of externals from Unicode paths
aroben Jun 5, 2012
404f975
Make non-.exe externals work again
aroben Jun 5, 2012
471da29
help: correct behavior for is_executable on Windows
hvoigt Jun 22, 2012
2a24172
Add a README.md
dscho Jan 10, 2014
3b2ffad
submodule: don't access the .gitmodules cache entry after removing it
jlehmann Nov 7, 2013
20e4acc
add a hashtable implementation that supports O(1) removal
kblees Nov 14, 2013
1b2f96e
Config option to disable side-band-64k for transport
t-b May 8, 2014
a0ef9bf
Revert "test: fix t7001 cp to use POSIX options"
kasal May 14, 2014
1ca04e3
Win32: make FILETIME conversion functions public
kblees Jul 6, 2013
9e68266
Win32: dirent.c: Move opendir down
kblees Sep 8, 2013
7af8df0
Win32: Make the dirent implementation pluggable
kblees Sep 8, 2013
fbea548
Win32: make the lstat implementation pluggable
kblees Sep 8, 2013
4c8beab
Merge 'home' into HEAD
kasal Jun 2, 2014
7b79ef7
add infrastructure for read-only file system level caches
kblees Sep 8, 2013
edea7bf
Win32: add a cache below mingw's lstat and dirent implementations
kblees Oct 1, 2013
467fc73
Add a test demonstrating a problem with long submodule paths
vangdfang Jan 9, 2014
8439375
Win32: support long paths
kblees Feb 11, 2014
d2d0fe9
Merge 'refs/rewritten/junio/master' into HEAD
kasal Jun 2, 2014
edefc17
Merge 'refs/rewritten/junio/next' into HEAD
kasal Jun 2, 2014
eecba26
Merge 'refs/rewritten/junio/notyet' into HEAD
kasal Jun 2, 2014
1469aad
Merge 'unicode' into HEAD
kasal Jun 2, 2014
543f82c
Merge 'hide-dotgit' into HEAD
kasal Jun 2, 2014
cde85cb
Merge 'home' into HEAD
kasal Jun 2, 2014
364241e
Merge 'am-submodules' into HEAD
kasal Jun 2, 2014
eb6d230
Merge 'criss-cross-merge' into HEAD
kasal Jun 2, 2014
55765b3
Merge 'deny-current-branch' into HEAD
kasal Jun 2, 2014
d5a577f
Merge 'git-gui' into HEAD
kasal Jun 2, 2014
7aea2f0
Merge 'gitk' into HEAD
kasal Jun 2, 2014
4027853
Merge 'gitweb-syntax' into HEAD
kasal Jun 2, 2014
e5064e3
Merge 'jberezanski/wincred-sso-r2' into HEAD
kasal Jun 2, 2014
b9ce3c4
Merge 'send-email' into HEAD
kasal Jun 2, 2014
51651f8
Merge 'pull-rebase-interactive' into HEAD
kasal Jun 2, 2014
2ff650d
Merge branch 'some-CR-fixes'
kasal Jun 2, 2014
36a0e43
Merge 'win-tests-fixes' into HEAD
kasal Jun 2, 2014
a9ff086
Merge 'remote-hg-prerequisites' into HEAD
kasal Jun 2, 2014
46d581a
Merge 'http-msys-paths' into HEAD
kasal Jun 2, 2014
895eba3
Merge 'fix-externals' into HEAD
kasal Jun 2, 2014
0da2ac9
Merge 'fix-is-exe' into HEAD
kasal Jun 2, 2014
7851404
Merge pull request #115 from msysgit/tip4commit
kasal Jun 2, 2014
496db4a
Merge branch 'kb/hashmap-v5-minimal' into kb/fscache-v4-t1.8.5
kasal Jun 2, 2014
15c9707
Merge remote-tracking branch 't-b/sideband-bug'
kasal Jun 2, 2014
f756273
Merge pull request #181 from kasal/tests-no-posix
kasal Jun 2, 2014
a5396c1
Merge remote-tracking branch 'kblees/kb/fscache-v4-tentative-1.8.5' i…
kasal Jun 2, 2014
ad8112c
Merge pull request #122 from kblees/kb/long-paths-v2
kasal Jun 2, 2014
c8a51b4
fscache: load directories only once
kblees Jun 24, 2014
b128d9c
Merge pull request #205 from kblees/kb/fscache-load-directories-once
dscho Jun 25, 2014
63e396d
symlinks: remove PATH_MAX limitation
kblees Jul 4, 2014
01754bf
cache.h: rename cache_def_free to cache_def_clear
kblees Jul 11, 2014
161276f
dir.c: coding style fix
pclouds May 7, 2014
4ccaf1a
dir.h: move struct exclude declaration to top level
pclouds May 7, 2014
ca82b15
prep_exclude: remove the artificial PATH_MAX limit
pclouds May 7, 2014
bb4df80
Win32: fix 'lstat("dir/")' with long paths
kblees Jul 4, 2014
fa9ea8c
t5000, t5003: do not use test_cmp to compare binary files
kasal Jun 4, 2014
0ccd2b8
Merge pull request #222 from t-b/backport-test_cmp_bin
dscho Jul 19, 2014
e7dee84
Merge pull request #212 from kblees/kb/fix-checkout-with-long-directo…
t-b Jul 23, 2014
3c1ece5
http-push.c: make CURLOPT_IOCTLDATA a usable pointer
abbaad Jul 6, 2014
9745bbe
Merge pull request #230 from t-b/backport_webdav_hotfix
dscho Aug 14, 2014
eeff891
git-tag.txt: Add a missing hyphen to `-s`
mineo Oct 4, 2014
9181365
Merge branch 'maint-1.8.5' into maint-1.9
gitster Oct 7, 2014
4616918
unpack-trees: propagate errors adding entries to the index
peff Nov 24, 2014
96b50cc
read-tree: add tests for confusing paths like ".." and ".git"
peff Nov 24, 2014
cc2fc7c
verify_dotfile(): reject .git case-insensitively
peff Nov 24, 2014
450870c
t1450: refactor ".", "..", and ".git" fsck tests
peff Nov 24, 2014
76e86fc
fsck: notice .git case-insensitively
peff Nov 24, 2014
6162a1d
utf8: add is_hfs_dotgit() helper
peff Dec 15, 2014
a42643a
read-cache: optionally disallow HFS+ .git variants
peff Dec 15, 2014
a18fcc9
fsck: complain about HFS+ ".git" aliases in trees
peff Dec 15, 2014
1d1d69b
path: add is_ntfs_dotgit() helper
dscho Dec 16, 2014
2b4c6ef
read-cache: optionally disallow NTFS .git variants
dscho Dec 16, 2014
d08c13b
fsck: complain about NTFS ".git" aliases in trees
dscho Dec 10, 2014
2aa9100
Merge branch 'dotgit-case-maint-1.8.5' into maint-1.8.5
gitster Dec 17, 2014
5c8213a
Git 1.8.5.6
gitster Dec 17, 2014
6898b79
Sync with v1.8.5.6
gitster Dec 17, 2014
8333263
Git 1.9.5
gitster Dec 17, 2014
0442c36
Start the merging-rebase to v1.9.5
dscho Dec 17, 2014
7bf3a55
Windows: skip tests incompatible with NTFS
dscho Dec 11, 2014
2e2a2d1
NTFS: Prevent problematic paths from being checked out
dscho Dec 10, 2014
094e897
git tag --contains: avoid stack overflow
lanfeust69 Apr 24, 2014
ae071f5
config.c: mark die_bad_number as NORETURN
peff Apr 16, 2014
f548996
SVN.pm::parse_svn_date: allow timestamps with a single-digit hour
kain64 Feb 11, 2014
de1243e
compat/poll: sleep 1 millisecond to avoid busy wait
theoleblond May 16, 2012
eeadc5b
MSVC: link dynamically to the CRT
kblees Jan 7, 2011
01fb495
Revert "submodules: fix ambiguous absolute paths under Windows"
kasal May 8, 2014
c1151fe
wincred: add install target
patthoyts Oct 23, 2012
33ee6a9
wincred: avoid overwriting configured variables
patthoyts Oct 23, 2012
f8b4169
git grep -O -i: if the pager is 'less', pass the '-I' option
dscho Feb 8, 2011
224c346
Makefile: do not depend on curl-config
kusma Apr 28, 2014
c0d51e8
Support Unicode console output on Windows
kblees Jul 31, 2010
e4f6e9a
Detect console streams more reliably on Windows
kblees Jul 31, 2010
9d2298c
Warn if the Windows console font doesn't support Unicode
kblees Jul 31, 2010
eb3d9eb
Win32 dirent: remove unused dirent.d_ino member
kblees Jan 7, 2011
f493d06
Win32 dirent: remove unused dirent.d_reclen member
kblees Jan 7, 2011
82ab245
Win32 dirent: change FILENAME_MAX to MAX_PATH
kblees Jan 7, 2011
f60a261
Win32 dirent: clarify #include directives
kblees Jan 7, 2011
f94c245
Win32 dirent: improve dirent implementation
kblees Jan 7, 2011
b05653c
Win32: fix potential multi-threading issue
kblees Jan 7, 2011
1661788
Win32: move main macro to a function
kblees Jan 7, 2011
a4cfc3c
MinGW: disable CRT command line globbing
kblees Jan 7, 2011
883f6a2
Unicode console: fix font warning on Vista and Win7
kblees Aug 5, 2010
3be0f5d
Revert "Windows: teach getenv to do a case-sensitive search"
kblees Jan 14, 2012
d187c99
Revert "mingw.c: move definition of mingw_getenv down"
kblees Jan 14, 2012
28856b4
Enable color output in Windows cmd.exe
kblees Jul 31, 2010
9cca183
MSVC: fix winansi.c compile errors
kblees Oct 6, 2011
5a8a685
Win32: Thread-safe windows console output
kblees Jan 14, 2012
0bc599f
Win32: add Unicode conversion functions
kblees Nov 25, 2011
7b7e7ce
Win32: Unicode file name support (except dirent)
kblees Mar 15, 2012
895e3c5
Win32: Unicode file name support (dirent)
kblees Jan 14, 2012
5adce49
Unicode file name support (gitk and git-gui)
kblees Feb 4, 2012
2689c6d
Win32: Unicode arguments (outgoing)
kblees Jan 16, 2011
d754d19
Win32: Unicode arguments (incoming)
kblees Jan 16, 2011
e4c125c
Win32: sync Unicode console output and file system
kblees Nov 25, 2011
f790e2d
Win32: Unicode environment (outgoing)
kblees Jan 15, 2012
dd0dca8
Win32: Unicode environment (incoming)
kblees Apr 25, 2011
ed920ae
Win32: fix environment memory leaks
kblees Nov 25, 2011
e492eb1
Win32: unify environment case-sensitivity
kblees Jan 14, 2012
0f3ec34
Let mingw_execve() return an int
dscho May 29, 2012
1fe18fc
Win32: simplify internal mingw_spawn* APIs
kblees Nov 25, 2011
bfe46b9
Win32: move environment functions
kblees Jan 14, 2012
f3d6cbe
Win32: unify environment function names
kblees Oct 5, 2011
fecf193
Win32: factor out environment block creation
kblees Jan 14, 2012
b914737
Win32: don't copy the environment twice when spawning child processes
kblees Jan 14, 2012
81f58d2
Win32: reduce environment array reallocations
kblees Jan 15, 2012
626cefc
Win32: use low-level memory allocation during initialization
kblees Mar 15, 2012
334c123
Win32: keep the environment sorted
kblees Jan 15, 2012
212b0c8
Win32: patch Windows environment on startup
kblees Jan 15, 2012
c830b0e
Win32: fix detection of empty directories in is_dir_empty
kblees Mar 15, 2012
63ab7a6
Win32: fix broken pipe detection
kblees Mar 1, 2012
65442de
core.hidedotfiles: hide '.git' dir by default
kusma Dec 16, 2009
dc8385b
Win32: fix segfault in WriteConsoleW when debugging in gdb
kblees Mar 15, 2012
eee1aa0
When initializing .git/, record the current setting of core.hideDotFiles
dscho Jan 9, 2010
6c85727
mingw: add tests for the hidden attribute on the git directory
patthoyts Mar 18, 2010
27d69d0
Add a Windows-specific fallback to getenv("HOME");
dscho Jun 1, 2010
fbe1f04
git am: ignore dirty submodules
dscho May 29, 2010
f452455
Add a few more values for receive.denyCurrentBranch
dscho Feb 16, 2009
2fec993
criss cross rename failure workaround
j6t Sep 16, 2009
a0a1d88
Revert "git-gui: set GIT_DIR and GIT_WORK_TREE after setup"
hvoigt Feb 18, 2010
ab9efc5
git-gui: provide question helper for retry fallback on Windows
hvoigt Feb 21, 2010
480af0b
Let deny.currentBranch=updateInstead ignore submodules
dscho Oct 23, 2010
2d84272
Work around the command line limit on Windows
dscho Aug 11, 2009
de6e120
git gui: set GIT_ASKPASS=git-gui--askpass if not set yet
dscho Jul 23, 2010
b3fee6b
Fix another invocation of git from gitk with an overly long command-line
FauxFaux Jul 25, 2010
f170066
gitweb: Allow line number toggling with Javascript
dscho Sep 7, 2010
5276199
gitk: Use an external icon file on Windows
sschuberth Jul 22, 2012
10988ac
Gitweb: make line number toggling work for Firefox and Safari
dscho Sep 7, 2010
9df1a28
Gitweb: add support for Alex Gorbatchev's SyntaxHighlighter in Javasc…
dscho Sep 25, 2011
0b7b533
Only switch on the line number toggle when highlighting is activated
dscho Sep 25, 2011
4985721
gitweb (SyntaxHighlighter): interpret #l<line-number>
dscho Sep 26, 2011
14ed14b
t0302: check helper can handle empty credentials
jberezanski Jun 26, 2013
5ad7473
wincred: handle empty username/password correctly
jberezanski Jun 26, 2013
4e38f92
send-email: accept absolute path even on Windows
kusma Jul 27, 2009
a488301
send-email: handle Windows paths for display just like we do for proc…
May 23, 2010
ce11d94
Teach 'git pull' to handle --rebase=interactive
dscho Oct 22, 2011
6655951
Handle the branch.<name>.rebase value 'interactive'
dscho Oct 22, 2011
d5b2cd9
Teach 'git remote' that the config var branch.*.rebase can be 'intera…
dscho Feb 3, 2012
d981d02
submodule: Fix t7400, t7405, t7406 for msysGit
sschuberth Apr 27, 2011
4532eb9
am: Use cat instead of echo to avoid DOS line-endings (fixes t4150)
sschuberth Mar 23, 2012
f5e634e
Windows: make sure that merge-octopus only outputs LF line endings
dscho Apr 10, 2012
ae6b7c4
Push the NATIVE_CRLF Makefile variable to C and added a test for native.
patthoyts Nov 26, 2012
39809e5
MinGW: Update tests to handle a native eol of crlf
Aug 16, 2013
8030ce1
work around misdetection of stdin attached to a tty
hvoigt Jun 16, 2010
921f75b
Handle new t1501 test case properly with MinGW
dscho Jan 8, 2011
8675d13
MinGW: Skip test redirecting to fd 4
dscho Apr 1, 2011
27b6de4
t3102: Windows filesystems may not use a literal asterisk in filenames.
patthoyts Apr 26, 2011
c0ab4e0
t9350: point out that refs are not updated correctly
SRabbelier Jul 24, 2011
33e7705
MinGW: disable legacy encoding tests
kblees Aug 20, 2011
55909d5
t1050: Fix invalid call to dd(1)
dscho May 23, 2012
1cea6ff
Work around a problem identified by BuildHive
dscho May 29, 2012
c9befff
t0008: avoid absolute path on Windows as colon is used in the tests
patthoyts May 30, 2013
209d437
t4210: skip command-line encoding tests on mingw
patthoyts Jun 1, 2013
2e4ca69
t800[12]: work around MSys limitation
kblees Sep 10, 2013
2c98e3f
t9902: mingw-specific fix for gitfile link files
patthoyts Sep 2, 2013
079a04c
Disable t0110's high-bit test on Windows
dscho Dec 27, 2013
c17c8fd
tests: do not pass iso8859-1 encoded parameter
patthoyts Sep 2, 2013
b60b940
fast-export: do not refer to non-existing marks
dscho Jul 23, 2011
38f4711
transport-helper: add trailing --
SRabbelier Aug 29, 2010
a1b8939
remote-helper: check helper status after import/export
SRabbelier Jul 23, 2011
0744ba7
Always auto-gc after calling a fast-import transport
dscho Apr 9, 2012
c94ab06
Handle http.* config variables pointing to files gracefully on Windows
dscho Jul 26, 2009
729c8cb
Fixed wrong path delimiter in exe finding
Sep 29, 2011
b18b455
Fix launching of externals from Unicode paths
aroben Jun 5, 2012
731b64d
Make non-.exe externals work again
aroben Jun 5, 2012
6b26632
help: correct behavior for is_executable on Windows
hvoigt Jun 22, 2012
9d56947
Add a README.md
dscho Jan 10, 2014
106c2af
submodule: don't access the .gitmodules cache entry after removing it
jlehmann Nov 7, 2013
bd10f15
add a hashtable implementation that supports O(1) removal
kblees Nov 14, 2013
d4449e7
Config option to disable side-band-64k for transport
t-b May 8, 2014
c9352a3
Win32: make FILETIME conversion functions public
kblees Jul 6, 2013
2733887
Win32: dirent.c: Move opendir down
kblees Sep 8, 2013
dc20a06
Revert "test: fix t7001 cp to use POSIX options"
kasal May 14, 2014
87475c3
Win32: Make the dirent implementation pluggable
kblees Sep 8, 2013
a54495b
Win32: make the lstat implementation pluggable
kblees Sep 8, 2013
cd170f6
Merge 'home' into HEAD
dscho Dec 17, 2014
9480807
add infrastructure for read-only file system level caches
kblees Sep 8, 2013
4725fa3
Win32: add a cache below mingw's lstat and dirent implementations
kblees Oct 1, 2013
0d43240
Add a test demonstrating a problem with long submodule paths
vangdfang Jan 9, 2014
7e6d922
Win32: support long paths
kblees Feb 11, 2014
bc00322
Merge 'dotgit-case-windows' into HEAD
dscho Dec 17, 2014
b53e482
Merge 'die-bad-number-noreturn' into HEAD
dscho Dec 17, 2014
1f3d1bd
Windows: Allow using UNC path for git repository
czawadka Jul 13, 2010
632ac29
Merge 'refs/rewritten/junio/next' into HEAD
dscho Dec 17, 2014
5c9bbf4
Merge 'refs/rewritten/junio/notyet' into HEAD
dscho Dec 17, 2014
6d30ecc
Merge 'unicode' into HEAD
dscho Dec 17, 2014
fa545a1
Merge 'hide-dotgit' into HEAD
dscho Dec 17, 2014
7304c21
Merge 'home' into HEAD
dscho Dec 17, 2014
efc3644
Merge 'am-submodules' into HEAD
dscho Dec 17, 2014
626a3d5
Merge 'criss-cross-merge' into HEAD
dscho Dec 17, 2014
4020e16
Merge 'deny-current-branch' into HEAD
dscho Dec 17, 2014
1e0534d
Merge 'git-gui' into HEAD
dscho Dec 17, 2014
2fc6c8e
Merge 'gitk' into HEAD
dscho Dec 17, 2014
57f4542
Merge 'gitweb-syntax' into HEAD
dscho Dec 17, 2014
791941a
Merge 'jberezanski/wincred-sso-r2' into HEAD
dscho Dec 17, 2014
7a32009
Merge 'send-email' into HEAD
dscho Dec 17, 2014
037ff24
Merge 'pull-rebase-interactive' into HEAD
dscho Dec 17, 2014
2e93fc7
Merge branch 'some-CR-fixes'
dscho Dec 17, 2014
ff77355
Merge 'win-tests-fixes' into HEAD
dscho Dec 17, 2014
abbbd04
Merge 'remote-hg-prerequisites' into HEAD
dscho Dec 17, 2014
5894711
Merge 'http-msys-paths' into HEAD
dscho Dec 17, 2014
a85f0f8
Merge 'fix-externals' into HEAD
dscho Dec 17, 2014
a6887e0
Merge 'fix-is-exe' into HEAD
dscho Dec 17, 2014
f0d1723
Merge pull request #115 from msysgit/tip4commit
dscho Dec 17, 2014
0143f59
Merge branch 'kb/hashmap-v5-minimal' into kb/fscache-v4-t1.8.5
dscho Dec 17, 2014
e3eced8
Merge remote-tracking branch 't-b/sideband-bug'
dscho Dec 17, 2014
c6199a4
Merge pull request #181 from kasal/tests-no-posix
dscho Dec 17, 2014
c14c9e1
Merge remote-tracking branch 'kblees/kb/fscache-v4-tentative-1.8.5' i…
dscho Dec 17, 2014
a616c22
Merge pull request #122 from kblees/kb/long-paths-v2
dscho Dec 17, 2014
3f6161a
fscache: load directories only once
kblees Jun 24, 2014
b686464
t5000, t5003: do not use test_cmp to compare binary files
kasal Jun 4, 2014
ceeea4a
Merge pull request #205 from kblees/kb/fscache-load-directories-once
dscho Dec 17, 2014
3f908bd
symlinks: remove PATH_MAX limitation
kblees Jul 4, 2014
d2e1c3c
cache.h: rename cache_def_free to cache_def_clear
kblees Jul 11, 2014
e5453dd
dir.c: coding style fix
pclouds May 7, 2014
231e2a9
dir.h: move struct exclude declaration to top level
pclouds May 7, 2014
874e2f7
prep_exclude: remove the artificial PATH_MAX limit
pclouds May 7, 2014
48cb375
Win32: fix 'lstat("dir/")' with long paths
kblees Jul 4, 2014
85bfd39
Merge pull request #222 from t-b/backport-test_cmp_bin
dscho Dec 17, 2014
dc87cb4
http-push.c: make CURLOPT_IOCTLDATA a usable pointer
abbaad Jul 6, 2014
f56eef0
Merge pull request #212 from kblees/kb/fix-checkout-with-long-directo…
dscho Dec 17, 2014
0d6f7c8
Merge pull request #230 from t-b/backport_webdav_hotfix
dscho Dec 17, 2014
01593d0
Makefile: a dry-run can error out. Document the issue
Feb 12, 2015
0ed9fd1
engine.pl: Avoid complications with perl support
Feb 12, 2015
9db375e
MSVC-build: remove duplicate GUID
Jan 31, 2015
80622c7
engine.pl: Properly accept quoted spaces in filenames
Nov 22, 2014
21781f7
engine.pl: Fix i18n -o option in msvc buildsystem generator
Feb 9, 2015
df596df
engine.pl: ignore invalidcontinue.obj which is known to MSVC
Nov 22, 2014
912f0ff
vcbuild/readme: Improve layout and reference msvc-build script
Nov 22, 2014
084b970
engine.pl: name the msvc buildsystem's makedry error file
Feb 9, 2015
317efc0
engine.pl: delete the captured stderr file if empty
Feb 9, 2015
5ccc796
engine.pl: add debug line to capture the dry-run
Feb 11, 2015
69c34b9
engine.pl: provide more debug print statements
Feb 9, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 34 additions & 0 deletions Documentation/RelNotes/1.8.5.6.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Git v1.8.5.6 Release Notes
==========================

Fixes since v1.8.5.5
--------------------

* We used to allow committing a path ".Git/config" with Git that is
running on a case sensitive filesystem, but an attempt to check out
such a path with Git that runs on a case insensitive filesystem
would have clobbered ".git/config", which is definitely not what
the user would have expected. Git now prevents you from tracking
a path with ".Git" (in any case combination) as a path component.

* On Windows, certain path components that are different from ".git"
are mapped to ".git", e.g. "git~1/config" is treated as if it were
".git/config". HFS+ has a similar issue, where certain unicode
codepoints are ignored, e.g. ".g\u200cit/config" is treated as if
it were ".git/config". Pathnames with these potential issues are
rejected on the affected systems. Git on systems that are not
affected by this issue (e.g. Linux) can also be configured to
reject them to ensure cross platform interoperability of the hosted
projects.

* "git fsck" notices a tree object that records such a path that can
be confused with ".git", and with receive.fsckObjects configuration
set to true, an attempt to "git push" such a tree object will be
rejected. Such a path may not be a problem on a well behaving
filesystem but in order to protect those on HFS+ and on case
insensitive filesystems, this check is enabled on all platforms.

A big "thanks!" for bringing this issue to us goes to our friends in
the Mercurial land, namely, Matt Mackall and Augie Fackler.

Also contains typofixes, documentation updates and trivial code clean-ups.
16 changes: 16 additions & 0 deletions Documentation/RelNotes/1.9.4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
Git v1.9.4 Release Notes
========================

Fixes since v1.9.3
------------------

* Commands that take pathspecs on the command line misbehaved when
the pathspec is given as an absolute pathname (which is a
practice not particularly encouraged) that points at a symbolic
link in the working tree.

* An earlier fix to the shell prompt script (in contrib/) for using
the PROMPT_COMMAND interface did not correctly check if the extra
code path needs to trigger, causing the branch name not to appear
when 'promptvars' option is disabled in bash or PROMPT_SUBST is
unset in zsh.
34 changes: 34 additions & 0 deletions Documentation/RelNotes/1.9.5.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
Git v1.9.5 Release Notes
========================

Fixes since v1.9.4
------------------

* We used to allow committing a path ".Git/config" with Git that is
running on a case sensitive filesystem, but an attempt to check out
such a path with Git that runs on a case insensitive filesystem
would have clobbered ".git/config", which is definitely not what
the user would have expected. Git now prevents you from tracking
a path with ".Git" (in any case combination) as a path component.

* On Windows, certain path components that are different from ".git"
are mapped to ".git", e.g. "git~1/config" is treated as if it were
".git/config". HFS+ has a similar issue, where certain unicode
codepoints are ignored, e.g. ".g\u200cit/config" is treated as if
it were ".git/config". Pathnames with these potential issues are
rejected on the affected systems. Git on systems that are not
affected by this issue (e.g. Linux) can also be configured to
reject them to ensure cross platform interoperability of the hosted
projects.

* "git fsck" notices a tree object that records such a path that can
be confused with ".git", and with receive.fsckObjects configuration
set to true, an attempt to "git push" such a tree object will be
rejected. Such a path may not be a problem on a well behaving
filesystem but in order to protect those on HFS+ and on case
insensitive filesystems, this check is enabled on all platforms.

A big "thanks!" for bringing this issue to us goes to our friends in
the Mercurial land, namely, Matt Mackall and Augie Fackler.

Also contains typofixes, documentation updates and trivial code clean-ups.
11 changes: 11 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,17 @@ core.precomposeunicode::
When false, file names are handled fully transparent by Git,
which is backward compatible with older versions of Git.

core.protectHFS::
If set to true, do not allow checkout of paths that would
be considered equivalent to `.git` on an HFS+ filesystem.
Defaults to `true` on Mac OS, and `false` elsewhere.

core.protectNTFS::
If set to true, do not allow checkout of paths that would
cause problems with the NTFS filesystem, e.g. conflict with
8.3 "short" names.
Defaults to `true` on Windows, and `false` elsewhere.

core.trustctime::
If false, the ctime differences between the index and the
working tree are ignored; useful when the inode change time
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-rev-parse.txt
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ eval "set -- $(git rev-parse --sq --prefix "$prefix" "$@")"
+
If you want to make sure that the output actually names an object in
your object database and/or can be used as a specific type of object
you require, you can add "^{type}" peeling operator to the parameter.
you require, you can add "\^{type}" peeling operator to the parameter.
For example, `git rev-parse "$VAR^{commit}"` will make sure `$VAR`
names an existing object that is a commit-ish (i.e. a commit, or an
annotated tag that points at a commit). To make sure that `$VAR`
Expand Down
2 changes: 1 addition & 1 deletion Documentation/git-tag.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ committer identity for the current user is used to find the
GnuPG key for signing. The configuration variable `gpg.program`
is used to specify custom GnuPG binary.

Tag objects (created with `-a`, `s`, or `-u`) are called "annotated"
Tag objects (created with `-a`, `-s`, or `-u`) are called "annotated"
tags; they contain a creation date, the tagger name and e-mail, a
tagging message, and an optional GnuPG signature. Whereas a
"lightweight" tag is simply a name for an object (usually a commit
Expand Down
7 changes: 5 additions & 2 deletions Documentation/git.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,20 @@ unreleased) version of Git, that is available from 'master'
branch of the `git.git` repository.
Documentation for older releases are available here:

* link:v1.9.3/git.html[documentation for release 1.9.3]
* link:v1.9.5/git.html[documentation for release 1.9.5]

* release notes for
link:RelNotes/1.9.5.txt[1.9.5],
link:RelNotes/1.9.4.txt[1.9.4],
link:RelNotes/1.9.3.txt[1.9.3],
link:RelNotes/1.9.2.txt[1.9.2],
link:RelNotes/1.9.1.txt[1.9.1],
link:RelNotes/1.9.0.txt[1.9.0].

* link:v1.8.5.5/git.html[documentation for release 1.8.5.5]
* link:v1.8.5.6/git.html[documentation for release 1.8.5.6]

* release notes for
link:RelNotes/1.8.5.6.txt[1.8.5.6],
link:RelNotes/1.8.5.5.txt[1.8.5.5],
link:RelNotes/1.8.5.4.txt[1.8.5.4],
link:RelNotes/1.8.5.3.txt[1.8.5.3],
Expand Down
2 changes: 1 addition & 1 deletion GIT-VERSION-GEN
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/sh

GVF=GIT-VERSION-FILE
DEF_VER=v1.9.3
DEF_VER=v1.9.5

LF='
'
Expand Down
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -1793,6 +1793,9 @@ $(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak

perl/perl.mak: perl/PM.stamp

# 'make -n' (dry-run) will not execute this target which creates/updates the PM.stamp file.
# To avoid the error of failing to find the target PM.stamp, either use NO_PERL=1 (YesPlease),
# or add a leading '+' to the recipe '+$(QUIET_GEN)$(FIND) perl ...' so that it is executed.
perl/PM.stamp: FORCE
$(QUIET_GEN)$(FIND) perl -type f -name '*.pm' | sort >$@+ && \
{ cmp $@+ $@ >/dev/null 2>/dev/null || mv $@+ $@; } && \
Expand Down
2 changes: 1 addition & 1 deletion RelNotes
12 changes: 5 additions & 7 deletions builtin/annotate.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,18 @@
*/
#include "git-compat-util.h"
#include "builtin.h"
#include "argv-array.h"

int cmd_annotate(int argc, const char **argv, const char *prefix)
{
const char **nargv;
struct argv_array args = ARGV_ARRAY_INIT;
int i;
nargv = xmalloc(sizeof(char *) * (argc + 2));

nargv[0] = "annotate";
nargv[1] = "-c";
argv_array_pushl(&args, "annotate", "-c", NULL);

for (i = 1; i < argc; i++) {
nargv[i+1] = argv[i];
argv_array_push(&args, argv[i]);
}
nargv[argc + 1] = NULL;

return cmd_blame(argc + 1, nargv, prefix);
return cmd_blame(args.argc, args.argv, prefix);
}
2 changes: 1 addition & 1 deletion builtin/clean.c
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ enum color_clean {
CLEAN_COLOR_PROMPT = 2,
CLEAN_COLOR_HEADER = 3,
CLEAN_COLOR_HELP = 4,
CLEAN_COLOR_ERROR = 5,
CLEAN_COLOR_ERROR = 5
};

#define MENU_OPTS_SINGLETON 01
Expand Down
14 changes: 12 additions & 2 deletions cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -587,6 +587,8 @@ extern int fsync_object_files;
extern int core_preload_index;
extern int core_apply_sparse_checkout;
extern int precomposed_unicode;
extern int protect_hfs;
extern int protect_ntfs;

/*
* The character that begins a commented line in user-editable file
Expand Down Expand Up @@ -792,6 +794,10 @@ int normalize_path_copy(char *dst, const char *src);
int longest_ancestor_length(const char *path, struct string_list *prefixes);
char *strip_path_suffix(const char *path, const char *suffix);
int daemon_avoid_alias(const char *path);
int offset_1st_component(const char *path);
extern int is_ntfs_reserved_character(char c);
extern int is_ntfs_reserved(const char *path, size_t len);
extern int is_ntfs_dotgit(const char *name);

/* object replacement */
#define LOOKUP_REPLACE_OBJECT 1
Expand Down Expand Up @@ -1023,12 +1029,16 @@ struct checkout {
extern int checkout_entry(struct cache_entry *ce, const struct checkout *state, char *topath);

struct cache_def {
char path[PATH_MAX + 1];
int len;
struct strbuf path;
int flags;
int track_flags;
int prefix_len_stat_func;
};
#define CACHE_DEF_INIT { STRBUF_INIT, 0, 0, 0 }
static inline void cache_def_clear(struct cache_def *cache)
{
strbuf_release(&cache->path);
}

extern int has_symlink_leading_path(const char *name, int len);
extern int threaded_has_symlink_leading_path(struct cache_def *, const char *, int);
Expand Down
40 changes: 20 additions & 20 deletions compat/mingw.c
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,7 @@ static int do_lstat(int follow, const char *file_name, struct stat *buf)
static int do_stat_internal(int follow, const char *file_name, struct stat *buf)
{
int namelen;
char alt_name[PATH_MAX];
char alt_name[MAX_LONG_PATH];

if (!do_lstat(follow, file_name, buf))
return 0;
Expand All @@ -576,7 +576,7 @@ static int do_stat_internal(int follow, const char *file_name, struct stat *buf)
return -1;
while (namelen && file_name[namelen-1] == '/')
--namelen;
if (!namelen || namelen >= PATH_MAX)
if (!namelen || namelen >= MAX_LONG_PATH)
return -1;

memcpy(alt_name, file_name, namelen);
Expand Down Expand Up @@ -1975,24 +1975,6 @@ pid_t waitpid(pid_t pid, int *status, int options)
return -1;
}

const char *get_windows_home_directory(void)
{
static const char *home_directory = NULL;
struct strbuf buf = STRBUF_INIT;

if (home_directory)
return home_directory;

home_directory = getenv("HOME");
if (home_directory && *home_directory)
return home_directory;

strbuf_addf(&buf, "%s/%s", getenv("HOMEDRIVE"), getenv("HOMEPATH"));
home_directory = strbuf_detach(&buf, NULL);

return home_directory;
}

int mingw_offset_1st_component(const char *path)
{
int offset = 0;
Expand All @@ -2017,6 +1999,24 @@ int mingw_offset_1st_component(const char *path)
return offset + is_dir_sep(path[offset]);
}

const char *get_windows_home_directory(void)
{
static const char *home_directory = NULL;
struct strbuf buf = STRBUF_INIT;

if (home_directory)
return home_directory;

home_directory = getenv("HOME");
if (home_directory && *home_directory)
return home_directory;

strbuf_addf(&buf, "%s/%s", getenv("HOMEDRIVE"), getenv("HOMEPATH"));
home_directory = strbuf_detach(&buf, NULL);

return home_directory;
}

int xutftowcsn(wchar_t *wcs, const char *utfs, size_t wcslen, int utflen)
{
int upos = 0, wpos = 0;
Expand Down
27 changes: 19 additions & 8 deletions compat/vcbuild/README
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,24 @@ The Steps of Build Git with VS2008
1. You need the build environment, which contains the Git dependencies
to be able to compile, link and run Git with MSVC.

You can either use the binary repository:
You can either:
use the binary repository:

WWW: http://repo.or.cz/w/msvcgit.git
Git: git clone git://repo.or.cz/msvcgit.git
Zip: http://repo.or.cz/w/msvcgit.git?a=snapshot;h=master;sf=zip

and call the setup_32bit_env.cmd batch script before compiling Git,
(see repo/package README for details), or the source repository:
and call the setup_32bit_env.cmd batch script before compiling Git,
(see repo/package README for details),

or:
use the source repository:

WWW: http://repo.or.cz/w/gitbuild.git
Git: git clone git://repo.or.cz/gitbuild.git
Zip: (None, as it's a project with submodules)

and build the support libs as instructed in that repo/package.
and build the support libs as instructed in that repo/package.

2. Ensure you have the msysgit environment in your path, so you have
GNU Make, bash and perl available.
Expand All @@ -33,18 +37,25 @@ The Steps of Build Git with VS2008
make common-cmds.h
to generate the common-cmds.h file needed to compile git.

4. Then either build Git with the GNU Make Makefile in the Git projects
root
4. Then either

build Git with the GNU Make Makefile in the Git projects root
make MSVC=1
or generate Visual Studio solution/projects (.sln/.vcproj) with the
or

generate Visual Studio solution/projects (.sln/.vcproj) with the
command
perl contrib/buildsystems/generate -g Vcproj
and open and build the solution with the IDE
devenv git.sln /useenv
or build with the IDE build engine directly from the command line
or

build with the IDE build engine directly from the command line
devenv git.sln /useenv /build "Release|Win32"
The /useenv option is required, so Visual Studio picks up the
environment variables for the support libraries required to build
Git, which you set up in step 1.

Done!

Or, use the Msysgit msvc-build script; available from that project.
Loading