Skip to content

Commit

Permalink
Merge branch 'maint'
Browse files Browse the repository at this point in the history
* maint:
  git-shortlog: Fix two formatting errors in asciidoc documentation
  Fix overwriting of files when applying contextually independent diffs
  git-svn: don't allow globs to match regular files
  • Loading branch information
Junio C Hamano committed Apr 18, 2007
2 parents abbf594 + 0ad64fd commit 6fb8e8f
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 3 deletions.
4 changes: 4 additions & 0 deletions Documentation/RelNotes-1.5.1.1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,7 @@ Fixes since v1.5.1

- git-svn dcommit and rebase was confused by patches that were
merged from another branch that is managed by git-svn.

- git-svn used to get confused when globbing remote branch/tag
spec (e.g. "branches = proj/branches/*:refs/remotes/origin/*")
is used and there was a plain file that matched the glob.
4 changes: 3 additions & 1 deletion Documentation/git-shortlog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ git-shortlog - Summarize 'git log' output

SYNOPSIS
--------
[verse]
git-log --pretty=short | 'git-shortlog' [-h] [-n] [-s]
git-shortlog [-n|--number] [-s|--summary] [<committish>...]

Expand All @@ -33,7 +34,8 @@ OPTIONS

FILES
-----
'.mailmap'::

.mailmap::
If this file exists, it will be used for mapping author email
addresses to a real author name. One mapping per line, first
the author name followed by the email address enclosed by
Expand Down
3 changes: 1 addition & 2 deletions builtin-apply.c
Original file line number Diff line number Diff line change
Expand Up @@ -2416,8 +2416,7 @@ static void create_one_file(char *path, unsigned mode, const char *buf, unsigned
* used to be.
*/
struct stat st;
errno = 0;
if (!lstat(path, &st) && S_ISDIR(st.st_mode) && !rmdir(path))
if (!lstat(path, &st) && (!S_ISDIR(st.st_mode) || !rmdir(path)))
errno = EEXIST;
}

Expand Down
2 changes: 2 additions & 0 deletions git-svn.perl
Original file line number Diff line number Diff line change
Expand Up @@ -3162,6 +3162,8 @@ sub match_globs {
my $p = $1;
my $pathname = $g->{path}->full_path($p);
next if $exists->{$pathname};
next if ($self->check_path($pathname, $r) !=
$SVN::Node::dir);
$exists->{$pathname} = Git::SVN->init(
$self->{url}, $pathname, undef,
$g->{ref}->full_path($p), 1);
Expand Down
33 changes: 33 additions & 0 deletions t/t4121-apply-diffs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/sh

test_description='git-apply for contextually independent diffs'
. ./test-lib.sh

echo '1
2
3
4
5
6
7
8' >file

test_expect_success 'setup' \
'git add file &&
git commit -q -m 1 &&
git checkout -b test &&
mv file file.tmp &&
echo 0 >file &&
cat file.tmp >>file &&
rm file.tmp &&
git commit -a -q -m 2 &&
echo 9 >>file &&
git commit -a -q -m 3 &&
git checkout master'

test_expect_success \
'check if contextually independent diffs for the same file apply' \
'( git diff test~2 test~1; git diff test~1 test~0 )| git apply'

test_done

0 comments on commit 6fb8e8f

Please sign in to comment.