Merge branch 'maint'
* maint: Yet more 1.5.3.5 fixes mentioned in release notes cvsserver: Use exit 1 instead of die when req_Root fails. git-blame shouldn't crash if run in an unmerged tree git-config: print error message if the config file cannot be read fixing output of non-fast-forward output of post-receive-email
This commit is contained in:
commit
e75c55844f
@ -10,9 +10,14 @@ Fixes since v1.5.3.4
|
||||
* "git-config --file" failed if the argument used a relative path
|
||||
as it changed directories before opening the file.
|
||||
|
||||
* "git-config --file" now displays a proper error message if it
|
||||
cannot read the file specified on the command line.
|
||||
|
||||
* "git-config", "git-diff", "git-apply" failed if run from a
|
||||
subdirectory with relative GIT_DIR and GIT_WORK_TREE set.
|
||||
|
||||
* "git-blame" crashed if run during a merge conflict.
|
||||
|
||||
* "git-add -i" did not handle single line hunks correctly.
|
||||
|
||||
* "git-rebase -i" failed if external diff drivers were used for one
|
||||
@ -33,6 +38,9 @@ Fixes since v1.5.3.4
|
||||
|
||||
* "git-instaweb" no longer fails on Mac OS X.
|
||||
|
||||
* post-receive-email example hook fixed was fixed for
|
||||
non-fast-forward updates.
|
||||
|
||||
* Documentation updates for supported (but previously undocumented)
|
||||
options of "git-archive" and "git-reflog".
|
||||
|
||||
|
@ -175,7 +175,10 @@ int cmd_config(int argc, const char **argv, const char *prefix)
|
||||
else if (!strcmp(argv[1], "--list") || !strcmp(argv[1], "-l")) {
|
||||
if (argc != 2)
|
||||
usage(git_config_set_usage);
|
||||
return git_config(show_all_config);
|
||||
if (git_config(show_all_config) < 0 && file && errno)
|
||||
die("unable to read config file %s: %s", file,
|
||||
strerror(errno));
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(argv[1], "--global")) {
|
||||
char *home = getenv("HOME");
|
||||
|
@ -331,7 +331,7 @@ generate_update_branch_email()
|
||||
echo " via $rev ($revtype)"
|
||||
done
|
||||
|
||||
if [ -z "$fastforward" ]; then
|
||||
if [ "$fast_forward" ]; then
|
||||
echo " from $oldrev ($oldrev_type)"
|
||||
else
|
||||
# 1. Existing revisions were removed. In this case newrev is a
|
||||
|
@ -145,8 +145,10 @@ if ($state->{method} eq 'pserver') {
|
||||
}
|
||||
my $request = $1;
|
||||
$line = <STDIN>; chomp $line;
|
||||
req_Root('root', $line) # reuse Root
|
||||
or die "E Invalid root $line \n";
|
||||
unless (req_Root('root', $line)) { # reuse Root
|
||||
print "E Invalid root $line \n";
|
||||
exit 1;
|
||||
}
|
||||
$line = <STDIN>; chomp $line;
|
||||
unless ($line eq 'anonymous') {
|
||||
print "E Only anonymous user allowed via pserver\n";
|
||||
|
@ -149,6 +149,8 @@ static int ce_match_stat_basic(struct cache_entry *ce, struct stat *st)
|
||||
else if (ce_compare_gitlink(ce))
|
||||
changed |= DATA_CHANGED;
|
||||
return changed;
|
||||
case 0: /* Special case: unmerged file in index */
|
||||
return MODE_CHANGED | DATA_CHANGED | TYPE_CHANGED;
|
||||
default:
|
||||
die("internal error: ce_mode is %o", ntohl(ce->ce_mode));
|
||||
}
|
||||
|
73
t/t8004-blame.sh
Executable file
73
t/t8004-blame.sh
Executable file
@ -0,0 +1,73 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Based on a test case submitted by Björn Steinbrink.
|
||||
|
||||
test_description='git blame on conflicted files'
|
||||
. ./test-lib.sh
|
||||
|
||||
test_expect_success 'setup first case' '
|
||||
# Create the old file
|
||||
echo "Old line" > file1 &&
|
||||
git add file1 &&
|
||||
git commit --author "Old Line <ol@localhost>" -m file1.a &&
|
||||
|
||||
# Branch
|
||||
git checkout -b foo &&
|
||||
|
||||
# Do an ugly move and change
|
||||
git rm file1 &&
|
||||
echo "New line ..." > file2 &&
|
||||
echo "... and more" >> file2 &&
|
||||
git add file2 &&
|
||||
git commit --author "U Gly <ug@localhost>" -m ugly &&
|
||||
|
||||
# Back to master and change something
|
||||
git checkout master &&
|
||||
echo "
|
||||
|
||||
bla" >> file1 &&
|
||||
git commit --author "Old Line <ol@localhost>" -a -m file1.b &&
|
||||
|
||||
# Back to foo and merge master
|
||||
git checkout foo &&
|
||||
if git merge master; then
|
||||
echo needed conflict here
|
||||
exit 1
|
||||
else
|
||||
echo merge failed - resolving automatically
|
||||
fi &&
|
||||
echo "New line ...
|
||||
... and more
|
||||
|
||||
bla
|
||||
Even more" > file2 &&
|
||||
git rm file1 &&
|
||||
git commit --author "M Result <mr@localhost>" -a -m merged &&
|
||||
|
||||
# Back to master and change file1 again
|
||||
git checkout master &&
|
||||
sed s/bla/foo/ <file1 >X &&
|
||||
rm file1 &&
|
||||
mv X file1 &&
|
||||
git commit --author "No Bla <nb@localhost>" -a -m replace &&
|
||||
|
||||
# Try to merge into foo again
|
||||
git checkout foo &&
|
||||
if git merge master; then
|
||||
echo needed conflict here
|
||||
exit 1
|
||||
else
|
||||
echo merge failed - test is setup
|
||||
fi
|
||||
'
|
||||
|
||||
test_expect_success \
|
||||
'blame runs on unconflicted file while other file has conflicts' '
|
||||
git blame file2
|
||||
'
|
||||
|
||||
test_expect_success 'blame runs on conflicted file in stages 1,3' '
|
||||
git blame file1
|
||||
'
|
||||
|
||||
test_done
|
Loading…
Reference in New Issue
Block a user