mirror of
https://github.com/git/git.git
synced 2024-11-27 12:03:55 +08:00
Merge branch 'maint'
* maint: Document additional 1.5.3.5 fixes in release notes Avoid 'expr index' on Mac OS X as it isn't supported filter-branch: update current branch when rewritten fix filter-branch documentation helpful error message when send-pack finds no refs in common. Fix setup_git_directory_gently() with relative GIT_DIR & GIT_WORK_TREE Correct typos in release notes for 1.5.3.5
This commit is contained in:
commit
317efa63fc
@ -4,21 +4,36 @@ GIT v1.5.3.5 Release Notes
|
|||||||
Fixes since v1.5.3.4
|
Fixes since v1.5.3.4
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
* "git-config" silently ignored options after --list; now it wilh
|
* "git-config" silently ignored options after --list; now it will
|
||||||
error out with a usage message.
|
error out with a usage message.
|
||||||
|
|
||||||
* "git-config --file" failed if the argument used a relative path
|
* "git-config --file" failed if the argument used a relative path
|
||||||
as it changed directories before opening the file.
|
as it changed directories before opening the file.
|
||||||
|
|
||||||
|
* "git-config", "git-diff", "git-apply" failed if run from a
|
||||||
|
subdirectory with relative GIT_DIR and GIT_WORK_TREE set.
|
||||||
|
|
||||||
* "git-add -i" did not handle single line hunks correctly.
|
* "git-add -i" did not handle single line hunks correctly.
|
||||||
|
|
||||||
|
* "git-rebase -i" failed if external diff drivers were used for one
|
||||||
|
or more files in a commit. It now avoids calling the external
|
||||||
|
diff drivers.
|
||||||
|
|
||||||
* "git-log --follow" did not work unless diff generation (e.g. -p)
|
* "git-log --follow" did not work unless diff generation (e.g. -p)
|
||||||
was also requested.
|
was also requested.
|
||||||
|
|
||||||
* "git-log" printed extra newlines between commits when a diff
|
* "git-log" printed extra newlines between commits when a diff
|
||||||
was generated internally (e.g. -S or --follow) but not displayed.
|
was generated internally (e.g. -S or --follow) but not displayed.
|
||||||
|
|
||||||
* Documention updates for supported (but previously undocumented)
|
* "git-push" error message is more helpful when pushing to a
|
||||||
|
repository with no matching refs and none specified.
|
||||||
|
|
||||||
|
* "git-filter-branch" now updates the working directory when it
|
||||||
|
has finished filtering the current branch.
|
||||||
|
|
||||||
|
* "git-instaweb" no longer fails on Mac OS X.
|
||||||
|
|
||||||
|
* Documentation updates for supported (but previously undocumented)
|
||||||
options of "git-archive" and "git-reflog".
|
options of "git-archive" and "git-reflog".
|
||||||
|
|
||||||
* "make clean" no longer deletes the configure script that ships
|
* "make clean" no longer deletes the configure script that ships
|
||||||
|
@ -180,8 +180,7 @@ A significantly faster version:
|
|||||||
git filter-branch --index-filter 'git update-index --remove filename' HEAD
|
git filter-branch --index-filter 'git update-index --remove filename' HEAD
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
Now, you will get the rewritten history saved in the branch 'newbranch'
|
Now, you will get the rewritten history saved in HEAD.
|
||||||
(your current branch is left untouched).
|
|
||||||
|
|
||||||
To set a commit (which typically is at the tip of another
|
To set a commit (which typically is at the tip of another
|
||||||
history) to be the parent of the current initial commit, in
|
history) to be the parent of the current initial commit, in
|
||||||
|
@ -94,6 +94,10 @@ USAGE="[--env-filter <command>] [--tree-filter <command>] \
|
|||||||
|
|
||||||
. git-sh-setup
|
. git-sh-setup
|
||||||
|
|
||||||
|
git diff-files --quiet &&
|
||||||
|
git diff-index --cached --quiet HEAD ||
|
||||||
|
die "Cannot rewrite branch(es) with a dirty working directory."
|
||||||
|
|
||||||
tempdir=.git-rewrite
|
tempdir=.git-rewrite
|
||||||
filter_env=
|
filter_env=
|
||||||
filter_tree=
|
filter_tree=
|
||||||
@ -196,6 +200,9 @@ do
|
|||||||
esac
|
esac
|
||||||
done < "$tempdir"/backup-refs
|
done < "$tempdir"/backup-refs
|
||||||
|
|
||||||
|
ORIG_GIT_DIR="$GIT_DIR"
|
||||||
|
ORIG_GIT_WORK_TREE="$GIT_WORK_TREE"
|
||||||
|
ORIG_GIT_INDEX_FILE="$GIT_INDEX_FILE"
|
||||||
export GIT_DIR GIT_WORK_TREE=.
|
export GIT_DIR GIT_WORK_TREE=.
|
||||||
|
|
||||||
# These refs should be updated if their heads were rewritten
|
# These refs should be updated if their heads were rewritten
|
||||||
@ -413,4 +420,12 @@ echo
|
|||||||
test $count -gt 0 && echo "These refs were rewritten:"
|
test $count -gt 0 && echo "These refs were rewritten:"
|
||||||
git show-ref | grep ^"$orig_namespace"
|
git show-ref | grep ^"$orig_namespace"
|
||||||
|
|
||||||
|
unset GIT_DIR GIT_WORK_TREE GIT_INDEX_FILE
|
||||||
|
test -z "$ORIG_GIT_DIR" || GIT_DIR="$ORIG_GIT_DIR" && export GIT_DIR
|
||||||
|
test -z "$ORIG_GIT_WORK_TREE" || GIT_WORK_TREE="$ORIG_GIT_WORK_TREE" &&
|
||||||
|
export GIT_WORK_TREE
|
||||||
|
test -z "$ORIG_GIT_INDEX_FILE" || GIT_INDEX_FILE="$ORIG_GIT_INDEX_FILE" &&
|
||||||
|
export GIT_INDEX_FILE
|
||||||
|
git read-tree -u -m HEAD
|
||||||
|
|
||||||
exit $ret
|
exit $ret
|
||||||
|
@ -30,8 +30,7 @@ test -z "$port" && port=1234
|
|||||||
|
|
||||||
start_httpd () {
|
start_httpd () {
|
||||||
httpd_only="`echo $httpd | cut -f1 -d' '`"
|
httpd_only="`echo $httpd | cut -f1 -d' '`"
|
||||||
if test "`expr index $httpd_only /`" -eq '1' || \
|
if case "$httpd_only" in /*) : ;; *) which $httpd_only >/dev/null;; esac
|
||||||
which $httpd_only >/dev/null
|
|
||||||
then
|
then
|
||||||
$httpd $fqgitdir/gitweb/httpd.conf
|
$httpd $fqgitdir/gitweb/httpd.conf
|
||||||
else
|
else
|
||||||
|
@ -205,7 +205,8 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (!remote_refs) {
|
if (!remote_refs) {
|
||||||
fprintf(stderr, "No refs in common and none specified; doing nothing.\n");
|
fprintf(stderr, "No refs in common and none specified; doing nothing.\n"
|
||||||
|
"Perhaps you should specify a branch such as 'master'.\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
13
setup.c
13
setup.c
@ -227,9 +227,20 @@ const char *setup_git_directory_gently(int *nongit_ok)
|
|||||||
if (PATH_MAX - 40 < strlen(gitdirenv))
|
if (PATH_MAX - 40 < strlen(gitdirenv))
|
||||||
die("'$%s' too big", GIT_DIR_ENVIRONMENT);
|
die("'$%s' too big", GIT_DIR_ENVIRONMENT);
|
||||||
if (is_git_directory(gitdirenv)) {
|
if (is_git_directory(gitdirenv)) {
|
||||||
|
static char buffer[1024 + 1];
|
||||||
|
const char *retval;
|
||||||
|
|
||||||
if (!work_tree_env)
|
if (!work_tree_env)
|
||||||
return set_work_tree(gitdirenv);
|
return set_work_tree(gitdirenv);
|
||||||
return NULL;
|
retval = get_relative_cwd(buffer, sizeof(buffer) - 1,
|
||||||
|
get_git_work_tree());
|
||||||
|
if (!retval || !*retval)
|
||||||
|
return NULL;
|
||||||
|
set_git_dir(make_absolute_path(gitdirenv));
|
||||||
|
if (chdir(work_tree_env) < 0)
|
||||||
|
die ("Could not chdir to %s", work_tree_env);
|
||||||
|
strcat(buffer, "/");
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
if (nongit_ok) {
|
if (nongit_ok) {
|
||||||
*nongit_ok = 1;
|
*nongit_ok = 1;
|
||||||
|
@ -103,4 +103,13 @@ test_expect_success 'repo finds its work tree from work tree, too' '
|
|||||||
test sub/dir/tracked = "$(git ls-files)")
|
test sub/dir/tracked = "$(git ls-files)")
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success '_gently() groks relative GIT_DIR & GIT_WORK_TREE' '
|
||||||
|
cd repo.git/work/sub/dir &&
|
||||||
|
GIT_DIR=../../.. GIT_WORK_TREE=../.. GIT_PAGER= \
|
||||||
|
git diff --exit-code tracked &&
|
||||||
|
echo changed > tracked &&
|
||||||
|
! GIT_DIR=../../.. GIT_WORK_TREE=../.. GIT_PAGER= \
|
||||||
|
git diff --exit-code tracked
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
@ -41,7 +41,9 @@ test_expect_success 'rewrite, renaming a specific file' '
|
|||||||
'
|
'
|
||||||
|
|
||||||
test_expect_success 'test that the file was renamed' '
|
test_expect_success 'test that the file was renamed' '
|
||||||
test d = $(git show HEAD:doh)
|
test d = $(git show HEAD:doh) &&
|
||||||
|
test -f doh &&
|
||||||
|
test d = $(cat doh)
|
||||||
'
|
'
|
||||||
|
|
||||||
git tag oldD HEAD~4
|
git tag oldD HEAD~4
|
||||||
|
Loading…
Reference in New Issue
Block a user