Merge branch 'maint'
* maint: GIT 1.5.2.4 Teach read-tree 2-way merge to ignore intermediate symlinks git-gui: Work around bad interaction between Tcl and cmd.exe on ^{tree} git-gui: Don't linewrap within console windows git-gui: Correct ls-tree buffering problem in browser git-gui: Skip nicknames when selecting author initials git-gui: Ensure windows shortcuts always have .bat extension git-gui: Include a Push action on the left toolbar git-gui: Bind M1-P to push action git-gui: Don't bind F5/M1-R in all windows git-gui: Unlock the index when cancelling merge dialog git-gui: properly popup error if gitk should be started but is not installed
This commit is contained in:
28
Documentation/RelNotes-1.5.2.4.txt
Normal file
28
Documentation/RelNotes-1.5.2.4.txt
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
GIT v1.5.2.4 Release Notes
|
||||||
|
==========================
|
||||||
|
|
||||||
|
Fixes since v1.5.2.3
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
* Bugfixes
|
||||||
|
|
||||||
|
- "git-gui" bugfixes, including a handful fixes to run it
|
||||||
|
better on Cygwin/MSYS.
|
||||||
|
|
||||||
|
- "git checkout" failed to switch back and forth between
|
||||||
|
branches, one of which has "frotz -> xyzzy" symlink and
|
||||||
|
file "xyzzy/filfre", while the other one has a file
|
||||||
|
"frotz/filfre".
|
||||||
|
|
||||||
|
- "git prune" used to segfault upon seeing a commit that is
|
||||||
|
referred to by a tree object (aka "subproject").
|
||||||
|
|
||||||
|
- "git diff --name-status --no-index" mishandled an added file.
|
||||||
|
|
||||||
|
- "git apply --reverse --whitespace=warn" still complained
|
||||||
|
about whitespaces that a forward application would have
|
||||||
|
introduced.
|
||||||
|
|
||||||
|
* Documentation Fixes and Updates
|
||||||
|
|
||||||
|
- A handful documentation updates.
|
50
t/t2007-checkout-symlink.sh
Executable file
50
t/t2007-checkout-symlink.sh
Executable file
@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Copyright (c) 2007 Junio C Hamano
|
||||||
|
|
||||||
|
test_description='git checkout to switch between branches with symlink<->dir'
|
||||||
|
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
test_expect_success setup '
|
||||||
|
|
||||||
|
mkdir frotz &&
|
||||||
|
echo hello >frotz/filfre &&
|
||||||
|
git add frotz/filfre &&
|
||||||
|
test_tick &&
|
||||||
|
git commit -m "master has file frotz/filfre" &&
|
||||||
|
|
||||||
|
git branch side &&
|
||||||
|
|
||||||
|
echo goodbye >nitfol &&
|
||||||
|
git add nitfol
|
||||||
|
test_tick &&
|
||||||
|
git commit -m "master adds file nitfol" &&
|
||||||
|
|
||||||
|
git checkout side &&
|
||||||
|
|
||||||
|
git rm --cached frotz/filfre &&
|
||||||
|
mv frotz xyzzy &&
|
||||||
|
ln -s xyzzy frotz &&
|
||||||
|
git add xyzzy/filfre frotz &&
|
||||||
|
test_tick &&
|
||||||
|
git commit -m "side moves frotz/ to xyzzy/ and adds frotz->xyzzy/"
|
||||||
|
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success 'switch from symlink to dir' '
|
||||||
|
|
||||||
|
git checkout master
|
||||||
|
|
||||||
|
'
|
||||||
|
|
||||||
|
rm -fr frotz xyzzy nitfol &&
|
||||||
|
git checkout -f master || exit
|
||||||
|
|
||||||
|
test_expect_success 'switch from dir to symlink' '
|
||||||
|
|
||||||
|
git checkout side
|
||||||
|
|
||||||
|
'
|
||||||
|
|
||||||
|
test_done
|
@ -495,6 +495,9 @@ static void verify_absent(const char *path, const char *action,
|
|||||||
if (o->index_only || o->reset || !o->update)
|
if (o->index_only || o->reset || !o->update)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (has_symlink_leading_path(path, NULL))
|
||||||
|
return;
|
||||||
|
|
||||||
if (!lstat(path, &st)) {
|
if (!lstat(path, &st)) {
|
||||||
int cnt;
|
int cnt;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user