* maint:
  Start preparing for 1.5.3.6
  git-send-email: Change the prompt for the subject of the initial message.
  SubmittingPatches: improve the 'Patch:' section of the checklist
  instaweb: Minor cleanups and fixes for potential problems
  stop t1400 hiding errors in tests
  Makefile: add missing dependency on wt-status.h
  refresh_index_quietly(): express "optional" nature of index writing better
  Fix sed string regex escaping in module_name.
  Avoid a few unportable, needlessly nested "...`...".
  git-mailsplit: with maildirs not only process cur/, but also new/

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2007-11-09 00:21:44 -08:00
Родитель 063036af08 b9217c0938
Коммит 5d4138a66d
11 изменённых файлов: 69 добавлений и 47 удалений

Просмотреть файл

@ -0,0 +1,21 @@
GIT v1.5.3.6 Release Notes
==========================
Fixes since v1.5.3.5
--------------------
* git-cvsexportcommit handles root commits better;
* git-svn dcommit used to clobber when sending a series of
patches;
* git-grep sometimes refused to work when your index was
unmerged;
* Quite a lot of documentation clarifications.
--
exec >/var/tmp/1
O=v1.5.3.5-32-gcb6c162
echo O=`git describe refs/heads/maint`
git shortlog --no-merges $O..refs/heads/maint

Просмотреть файл

@ -20,9 +20,6 @@ Checklist (and a short version for the impatient):
Patch: Patch:
- use "git format-patch -M" to create the patch - use "git format-patch -M" to create the patch
- send your patch to <git@vger.kernel.org>. If you use
git-send-email(1), please test it first by sending
email to yourself.
- do not PGP sign your patch - do not PGP sign your patch
- do not attach your patch, but read in the mail - do not attach your patch, but read in the mail
body, unless you cannot teach your mailer to body, unless you cannot teach your mailer to
@ -31,13 +28,15 @@ Checklist (and a short version for the impatient):
corrupt whitespaces. corrupt whitespaces.
- provide additional information (which is unsuitable for - provide additional information (which is unsuitable for
the commit message) between the "---" and the diffstat the commit message) between the "---" and the diffstat
- send the patch to the list (git@vger.kernel.org) and the
maintainer (gitster@pobox.com).
- if you change, add, or remove a command line option or - if you change, add, or remove a command line option or
make some other user interface change, the associated make some other user interface change, the associated
documentation should be updated as well. documentation should be updated as well.
- if your name is not writable in ASCII, make sure that - if your name is not writable in ASCII, make sure that
you send off a message in the correct encoding. you send off a message in the correct encoding.
- send the patch to the list (git@vger.kernel.org) and the
maintainer (gitster@pobox.com). If you use
git-send-email(1), please test it first by sending
email to yourself.
Long version: Long version:

Просмотреть файл

@ -922,6 +922,7 @@ git-http-push$X: revision.o http.o http-push.o $(GITLIBS)
$(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H) $(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H)
$(patsubst git-%$X,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h) $(patsubst git-%$X,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h)
builtin-revert.o builtin-runstatus.o wt-status.o: wt-status.h
$(LIB_FILE): $(LIB_OBJS) $(LIB_FILE): $(LIB_OBJS)
$(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS) $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS)

Просмотреть файл

@ -200,15 +200,11 @@ static void refresh_index_quietly(void)
discard_cache(); discard_cache();
read_cache(); read_cache();
refresh_cache(REFRESH_QUIET|REFRESH_UNMERGED); refresh_cache(REFRESH_QUIET|REFRESH_UNMERGED);
if (active_cache_changed) {
if (write_cache(fd, active_cache, active_nr) || if (active_cache_changed &&
close(fd) || !write_cache(fd, active_cache, active_nr) && !close(fd))
commit_locked_index(lock_file)) commit_locked_index(lock_file);
; /*
* silently ignore it -- we haven't mucked
* with the real index.
*/
}
rollback_lock_file(lock_file); rollback_lock_file(lock_file);
} }

Просмотреть файл

@ -101,20 +101,29 @@ static int populate_maildir_list(struct path_list *list, const char *path)
{ {
DIR *dir; DIR *dir;
struct dirent *dent; struct dirent *dent;
char name[PATH_MAX];
char *subs[] = { "cur", "new", NULL };
char **sub;
if ((dir = opendir(path)) == NULL) { for (sub = subs; *sub; ++sub) {
error("cannot opendir %s (%s)", path, strerror(errno)); snprintf(name, sizeof(name), "%s/%s", path, *sub);
return -1; if ((dir = opendir(name)) == NULL) {
if (errno == ENOENT)
continue;
error("cannot opendir %s (%s)", name, strerror(errno));
return -1;
}
while ((dent = readdir(dir)) != NULL) {
if (dent->d_name[0] == '.')
continue;
snprintf(name, sizeof(name), "%s/%s", *sub, dent->d_name);
path_list_insert(name, list);
}
closedir(dir);
} }
while ((dent = readdir(dir)) != NULL) {
if (dent->d_name[0] == '.')
continue;
path_list_insert(dent->d_name, list);
}
closedir(dir);
return 0; return 0;
} }
@ -122,19 +131,17 @@ static int split_maildir(const char *maildir, const char *dir,
int nr_prec, int skip) int nr_prec, int skip)
{ {
char file[PATH_MAX]; char file[PATH_MAX];
char curdir[PATH_MAX];
char name[PATH_MAX]; char name[PATH_MAX];
int ret = -1; int ret = -1;
int i; int i;
struct path_list list = {NULL, 0, 0, 1}; struct path_list list = {NULL, 0, 0, 1};
snprintf(curdir, sizeof(curdir), "%s/cur", maildir); if (populate_maildir_list(&list, maildir) < 0)
if (populate_maildir_list(&list, curdir) < 0)
goto out; goto out;
for (i = 0; i < list.nr; i++) { for (i = 0; i < list.nr; i++) {
FILE *f; FILE *f;
snprintf(file, sizeof(file), "%s/%s", curdir, list.items[i].path); snprintf(file, sizeof(file), "%s/%s", maildir, list.items[i].path);
f = fopen(file, "r"); f = fopen(file, "r");
if (!f) { if (!f) {
error("cannot open mail %s (%s)", file, strerror(errno)); error("cannot open mail %s (%s)", file, strerror(errno));
@ -152,10 +159,9 @@ static int split_maildir(const char *maildir, const char *dir,
fclose(f); fclose(f);
} }
path_list_clear(&list, 1);
ret = skip; ret = skip;
out: out:
path_list_clear(&list, 1);
return ret; return ret;
} }

Просмотреть файл

@ -15,7 +15,7 @@ browser="`git config --get instaweb.browser`"
port=`git config --get instaweb.port` port=`git config --get instaweb.port`
module_path="`git config --get instaweb.modulepath`" module_path="`git config --get instaweb.modulepath`"
conf=$GIT_DIR/gitweb/httpd.conf conf="$GIT_DIR/gitweb/httpd.conf"
# Defaults: # Defaults:
@ -32,7 +32,7 @@ start_httpd () {
httpd_only="`echo $httpd | cut -f1 -d' '`" httpd_only="`echo $httpd | cut -f1 -d' '`"
if case "$httpd_only" in /*) : ;; *) which $httpd_only >/dev/null;; esac if case "$httpd_only" in /*) : ;; *) which $httpd_only >/dev/null;; esac
then then
$httpd $fqgitdir/gitweb/httpd.conf $httpd "$fqgitdir/gitweb/httpd.conf"
else else
# many httpds are installed in /usr/sbin or /usr/local/sbin # many httpds are installed in /usr/sbin or /usr/local/sbin
# these days and those are not in most users $PATHs # these days and those are not in most users $PATHs
@ -185,14 +185,14 @@ server.pid-file = "$fqgitdir/pid"
cgi.assign = ( ".cgi" => "" ) cgi.assign = ( ".cgi" => "" )
mimetype.assign = ( ".css" => "text/css" ) mimetype.assign = ( ".css" => "text/css" )
EOF EOF
test "$local" = true && echo 'server.bind = "127.0.0.1"' >> "$conf" test x"$local" = xtrue && echo 'server.bind = "127.0.0.1"' >> "$conf"
} }
apache2_conf () { apache2_conf () {
test -z "$module_path" && module_path=/usr/lib/apache2/modules test -z "$module_path" && module_path=/usr/lib/apache2/modules
mkdir -p "$GIT_DIR/gitweb/logs" mkdir -p "$GIT_DIR/gitweb/logs"
bind= bind=
test "$local" = true && bind='127.0.0.1:' test x"$local" = xtrue && bind='127.0.0.1:'
echo 'text/css css' > $fqgitdir/mime.types echo 'text/css css' > $fqgitdir/mime.types
cat > "$conf" <<EOF cat > "$conf" <<EOF
ServerName "git-instaweb" ServerName "git-instaweb"
@ -245,7 +245,7 @@ EOF
} }
script=' script='
s#^\(my\|our\) $projectroot =.*#\1 $projectroot = "'`dirname $fqgitdir`'";# s#^\(my\|our\) $projectroot =.*#\1 $projectroot = "'$(dirname "$fqgitdir")'";#
s#\(my\|our\) $gitbin =.*#\1 $gitbin = "'$GIT_EXEC_PATH'";# s#\(my\|our\) $gitbin =.*#\1 $gitbin = "'$GIT_EXEC_PATH'";#
s#\(my\|our\) $projects_list =.*#\1 $projects_list = $projectroot;# s#\(my\|our\) $projects_list =.*#\1 $projects_list = $projectroot;#
s#\(my\|our\) $git_temp =.*#\1 $git_temp = "'$fqgitdir/gitweb/tmp'";#' s#\(my\|our\) $git_temp =.*#\1 $git_temp = "'$fqgitdir/gitweb/tmp'";#'
@ -265,8 +265,8 @@ gitweb_css () {
EOFGITWEB EOFGITWEB
} }
gitweb_cgi $GIT_DIR/gitweb/gitweb.cgi gitweb_cgi "$GIT_DIR/gitweb/gitweb.cgi"
gitweb_css $GIT_DIR/gitweb/gitweb.css gitweb_css "$GIT_DIR/gitweb/gitweb.css"
case "$httpd" in case "$httpd" in
*lighttpd*) *lighttpd*)
@ -285,6 +285,5 @@ webrick)
esac esac
start_httpd start_httpd
test -z "$browser" && browser=echo
url=http://127.0.0.1:$port url=http://127.0.0.1:$port
$browser $url || echo $url "$browser" $url || echo $url

Просмотреть файл

@ -391,7 +391,7 @@ do
-s|--strategy) -s|--strategy)
case "$#,$1" in case "$#,$1" in
*,*=*) *,*=*)
STRATEGY="-s `expr "z$1" : 'z-[^=]*=\(.*\)'`" ;; STRATEGY="-s "$(expr "z$1" : 'z-[^=]*=\(.*\)') ;;
1,*) 1,*)
usage ;; usage ;;
*) *)

Просмотреть файл

@ -24,13 +24,13 @@ headrev=`git rev-parse --verify "$head"^0` || exit
merge_base=`git merge-base $baserev $headrev` || merge_base=`git merge-base $baserev $headrev` ||
die "fatal: No commits in common between $base and $head" die "fatal: No commits in common between $base and $head"
url="`get_remote_url "$url"`" url=$(get_remote_url "$url")
branch=`git peek-remote "$url" \ branch=$(git peek-remote "$url" \
| sed -n -e "/^$headrev refs.heads./{ | sed -n -e "/^$headrev refs.heads./{
s/^.* refs.heads.// s/^.* refs.heads.//
p p
q q
}"` }")
if [ -z "$branch" ]; then if [ -z "$branch" ]; then
echo "warn: No branch of $url is at:" >&2 echo "warn: No branch of $url is at:" >&2
git log --max-count=1 --pretty='format:warn: %h: %s' $headrev >&2 git log --max-count=1 --pretty='format:warn: %h: %s' $headrev >&2

Просмотреть файл

@ -352,7 +352,7 @@ sub expand_aliases {
if (!defined $initial_subject && $compose) { if (!defined $initial_subject && $compose) {
do { do {
$_ = $term->readline("What subject should the emails start with? ", $_ = $term->readline("What subject should the initial email start with? ",
$initial_subject); $initial_subject);
} while (!defined $_); } while (!defined $_);
$initial_subject = $_; $initial_subject = $_;

Просмотреть файл

@ -73,7 +73,7 @@ resolve_relative_url ()
module_name() module_name()
{ {
# Do we have "submodule.<something>.path = $1" defined in .gitmodules file? # Do we have "submodule.<something>.path = $1" defined in .gitmodules file?
re=$(printf '%s' "$1" | sed -e 's/\([^a-zA-Z0-9_]\)/\\\1/g') re=$(printf '%s' "$1" | sed -e 's/[].[^$\\*]/\\&/g')
name=$( GIT_CONFIG=.gitmodules \ name=$( GIT_CONFIG=.gitmodules \
git config --get-regexp '^submodule\..*\.path$' | git config --get-regexp '^submodule\..*\.path$' |
sed -n -e 's|^submodule\.\(.*\)\.path '"$re"'$|\1|p' ) sed -n -e 's|^submodule\.\(.*\)\.path '"$re"'$|\1|p' )

Просмотреть файл

@ -205,7 +205,7 @@ test_expect_success \
echo $h_TEST >.git/MERGE_HEAD && echo $h_TEST >.git/MERGE_HEAD &&
GIT_AUTHOR_DATE="2005-05-26 23:45" \ GIT_AUTHOR_DATE="2005-05-26 23:45" \
GIT_COMMITTER_DATE="2005-05-26 23:45" git-commit -F M && GIT_COMMITTER_DATE="2005-05-26 23:45" git-commit -F M &&
h_MERGED=$(git rev-parse --verify HEAD) h_MERGED=$(git rev-parse --verify HEAD) &&
rm -f M' rm -f M'
cat >expect <<EOF cat >expect <<EOF