Skip to content

Commit

Permalink
Merge branch 'maint'
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
Junio C Hamano committed Jul 12, 2007
2 parents d972cce + ffb293b commit 237ce83
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 0 deletions.
28 changes: 28 additions & 0 deletions Documentation/RelNotes-1.5.2.4.txt
Original file line number Diff line number Diff line change
@@ -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 changes: 50 additions & 0 deletions t/t2007-checkout-symlink.sh
Original file line number Diff line number Diff line change
@@ -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
3 changes: 3 additions & 0 deletions unpack-trees.c
Original file line number Diff line number Diff line change
Expand Up @@ -495,6 +495,9 @@ static void verify_absent(const char *path, const char *action,
if (o->index_only || o->reset || !o->update)
return;

if (has_symlink_leading_path(path, NULL))
return;

if (!lstat(path, &st)) {
int cnt;

Expand Down

0 comments on commit 237ce83

Please sign in to comment.