Merge branch 'maint'
* 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>maint
						commit
						5d4138a66d
					
				|  | @ -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: | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										1
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										1
									
								
								Makefile
								
								
								
								
							|  | @ -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,19 +101,28 @@ 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); | ||||||
|  | 		if ((dir = opendir(name)) == NULL) { | ||||||
|  | 			if (errno == ENOENT) | ||||||
|  | 				continue; | ||||||
|  | 			error("cannot opendir %s (%s)", name, strerror(errno)); | ||||||
| 			return -1; | 			return -1; | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		while ((dent = readdir(dir)) != NULL) { | 		while ((dent = readdir(dir)) != NULL) { | ||||||
| 			if (dent->d_name[0] == '.') | 			if (dent->d_name[0] == '.') | ||||||
| 				continue; | 				continue; | ||||||
| 		path_list_insert(dent->d_name, list); | 			snprintf(name, sizeof(name), "%s/%s", *sub, dent->d_name); | ||||||
|  | 			path_list_insert(name, list); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		closedir(dir); | 		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 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Junio C Hamano
						Junio C Hamano