mirror of
https://github.com/git/git.git
synced 2026-03-18 12:40:05 +01:00
Merge branch 'master' into next
* master: Git 1.7.4-rc0 Prepare for 1.7.3.5 t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-' Fix false positives in t3404 due to SHELL=/bin/false setup_work_tree: adjust relative $GIT_WORK_TREE after moving cwd close file on error in read_mmfile()
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -177,6 +177,7 @@
|
||||
/test-sha1
|
||||
/test-sigchain
|
||||
/test-string-pool
|
||||
/test-subprocess
|
||||
/test-svn-fe
|
||||
/test-treap
|
||||
/common-cmds.h
|
||||
|
||||
32
Documentation/RelNotes/1.7.3.5.txt
Normal file
32
Documentation/RelNotes/1.7.3.5.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
Git 1.7.3.5 Release Notes
|
||||
=========================
|
||||
|
||||
* The xfuncname pattern used by "git diff" and "git grep" to show the
|
||||
last notable line in context were broken for python and ruby for a long
|
||||
time.
|
||||
|
||||
* "git merge" into an unborn branch removed an untracked file "foo" from
|
||||
the working tree when merged branch had "foo" (this fix was already in
|
||||
1.7.3.3 but was omitted from the release notes by mistake).
|
||||
|
||||
* "git status -s" did not quote unprintable characters in paths as
|
||||
documented.
|
||||
|
||||
* "git am --abort" used to always reset to the commit at the beginning of
|
||||
the last "am" invocation that has stopped, losing any unrelated commits
|
||||
that may have been made since then. Now it refrains from doing so and
|
||||
instead issues a warning.
|
||||
|
||||
* "git blame" incorrectly reused bogusly cached result of textconv
|
||||
filter for files from the working tree.
|
||||
|
||||
* "git commit" used to abort after the user edited the log message
|
||||
when the committer information was not correctly set up. It now
|
||||
aborts before starting the editor.
|
||||
|
||||
* "git commit --date=invalid" used to silently ignore the incorrectly
|
||||
specified date; it is now diagnosed as an error.
|
||||
|
||||
* "git rebase --skip" to skip the last commit in a series used to fail
|
||||
to run post-rewrite hook and to copy notes from old commits that have
|
||||
successfully been rebased so far. Now it do (backmerge ef88ad2).
|
||||
@@ -26,8 +26,9 @@ Updates since v1.7.3
|
||||
cover letter of the previous series; this has been changed to make
|
||||
the patches in the new series replies to the new cover letter.
|
||||
|
||||
* Bash completion script in contrib/ has been adjusted to be also
|
||||
usable by zsh.
|
||||
* Bash completion script in contrib/ has been adjusted to be usable with
|
||||
Bash 4 (options with '=value' didn't complete) It has been also made
|
||||
usable with zsh.
|
||||
|
||||
* Different pagers can be chosen depending on which subcommand is
|
||||
being run under the pager, using "pager.<subcommand>" variable.
|
||||
@@ -76,8 +77,8 @@ Updates since v1.7.3
|
||||
use the new --empty option to be more explicit instead.
|
||||
|
||||
* "git repack -f" does not spend cycles to recompress objects in the
|
||||
non-delta representation anymore (use -F if you really mean it when
|
||||
e.g. you changed the compression level).
|
||||
non-delta representation anymore (use -F if you really mean it
|
||||
e.g. after you changed the core.compression variable setting).
|
||||
|
||||
* "git merge --log" used to limit the resulting merge log to 20
|
||||
entries; this is now customizable by giving e.g. "--log=47".
|
||||
@@ -91,8 +92,9 @@ Updates since v1.7.3
|
||||
|
||||
* The default "recursive" merge strategy learned --rename-threshold
|
||||
option to influence the rename detection, similar to the -M option
|
||||
of "git diff". E.g. "git merge -Xrename-threshold=50% ..." to use
|
||||
this.
|
||||
of "git diff". From "git merge" frontend, "-X<strategy option>"
|
||||
interface, e.g. "git merge -Xrename-threshold=50% ...", can be used
|
||||
to trigger this.
|
||||
|
||||
* The "recursive" strategy also learned to ignore various whitespace
|
||||
changes; the most notable is -Xignore-space-at-eol.
|
||||
@@ -130,9 +132,6 @@ release, unless otherwise noted.
|
||||
me or by her; instead it looked for commits written by me and by
|
||||
her, which is impossible.
|
||||
|
||||
* "git merge" into an unborn branch removed an untracked file "foo"
|
||||
from the working tree when merged branch had "foo" (2caf20c..172b642).
|
||||
|
||||
* "git push --progress" shows progress indicators now.
|
||||
|
||||
* "git repack" places its temporary packs under $GIT_OBJECT_DIRECTORY/pack
|
||||
@@ -143,6 +142,6 @@ release, unless otherwise noted.
|
||||
|
||||
---
|
||||
exec >/var/tmp/1
|
||||
O=v1.7.3.4-567-g38a5932
|
||||
O=v1.7.3.4-687-g2cd900f
|
||||
echo O=$(git describe master)
|
||||
git shortlog --no-merges ^maint ^$O master
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
GVF=GIT-VERSION-FILE
|
||||
DEF_VER=v1.7.3.GIT
|
||||
DEF_VER=v1.7.4-rc0
|
||||
|
||||
LF='
|
||||
'
|
||||
|
||||
1
Makefile
1
Makefile
@@ -431,6 +431,7 @@ TEST_PROGRAMS_NEED_X += test-run-command
|
||||
TEST_PROGRAMS_NEED_X += test-sha1
|
||||
TEST_PROGRAMS_NEED_X += test-sigchain
|
||||
TEST_PROGRAMS_NEED_X += test-string-pool
|
||||
TEST_PROGRAMS_NEED_X += test-subprocess
|
||||
TEST_PROGRAMS_NEED_X += test-svn-fe
|
||||
TEST_PROGRAMS_NEED_X += test-treap
|
||||
TEST_PROGRAMS_NEED_X += test-index-version
|
||||
|
||||
8
setup.c
8
setup.c
@@ -221,6 +221,14 @@ void setup_work_tree(void)
|
||||
git_dir = make_absolute_path(git_dir);
|
||||
if (!work_tree || chdir(work_tree))
|
||||
die("This operation must be run in a work tree");
|
||||
|
||||
/*
|
||||
* Make sure subsequent git processes find correct worktree
|
||||
* if $GIT_WORK_TREE is set relative
|
||||
*/
|
||||
if (getenv(GIT_WORK_TREE_ENVIRONMENT))
|
||||
setenv(GIT_WORK_TREE_ENVIRONMENT, ".", 1);
|
||||
|
||||
set_git_dir(make_relative_path(git_dir, work_tree));
|
||||
initialized = 1;
|
||||
}
|
||||
|
||||
@@ -340,4 +340,11 @@ test_expect_success 'make_relative_path handles double slashes in GIT_DIR' '
|
||||
git --git-dir="$(pwd)//repo.git" --work-tree="$(pwd)" add dummy_file
|
||||
'
|
||||
|
||||
test_expect_success 'relative $GIT_WORK_TREE and git subprocesses' '
|
||||
GIT_DIR=repo.git GIT_WORK_TREE=repo.git/work \
|
||||
test-subprocess --setup-work-tree rev-parse --show-toplevel >actual &&
|
||||
echo "$TRASH_DIRECTORY/repo.git/work" >expected &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
||||
@@ -71,8 +71,9 @@ test_expect_success 'setup' '
|
||||
# "exec" commands are ran with the user shell by default, but this may
|
||||
# be non-POSIX. For example, if SHELL=zsh then ">file" doesn't work
|
||||
# to create a file. Unseting SHELL avoids such non-portable behavior
|
||||
# in tests.
|
||||
# in tests. It must be exported for it to take effect where needed.
|
||||
SHELL=
|
||||
export SHELL
|
||||
|
||||
test_expect_success 'rebase -i with the exec command' '
|
||||
git checkout master &&
|
||||
|
||||
@@ -319,7 +319,7 @@ test_expect_success $PREREQ 'In-Reply-To without --chain-reply-to' '
|
||||
git send-email \
|
||||
--from="Example <nobody@example.com>" \
|
||||
--to=nobody@example.com \
|
||||
--no-chain-reply-to \
|
||||
--nochain-reply-to \
|
||||
--in-reply-to="$(cat expect)" \
|
||||
--smtp-server="$(pwd)/fake.sendmail" \
|
||||
$patches $patches $patches \
|
||||
|
||||
21
test-subprocess.c
Normal file
21
test-subprocess.c
Normal file
@@ -0,0 +1,21 @@
|
||||
#include "cache.h"
|
||||
#include "run-command.h"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
const char *prefix;
|
||||
struct child_process cp;
|
||||
int nogit = 0;
|
||||
|
||||
prefix = setup_git_directory_gently(&nogit);
|
||||
if (nogit)
|
||||
die("No git repo found");
|
||||
if (!strcmp(argv[1], "--setup-work-tree")) {
|
||||
setup_work_tree();
|
||||
argv++;
|
||||
}
|
||||
memset(&cp, 0, sizeof(cp));
|
||||
cp.git_cmd = 1;
|
||||
cp.argv = (const char **)argv+1;
|
||||
return run_command(&cp);
|
||||
}
|
||||
@@ -212,8 +212,10 @@ int read_mmfile(mmfile_t *ptr, const char *filename)
|
||||
return error("Could not open %s", filename);
|
||||
sz = xsize_t(st.st_size);
|
||||
ptr->ptr = xmalloc(sz ? sz : 1);
|
||||
if (sz && fread(ptr->ptr, sz, 1, f) != 1)
|
||||
if (sz && fread(ptr->ptr, sz, 1, f) != 1) {
|
||||
fclose(f);
|
||||
return error("Could not read %s", filename);
|
||||
}
|
||||
fclose(f);
|
||||
ptr->size = sz;
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user