Merge branch 'master' of git://bogomips.org/git-svn
authorJunio C Hamano <gitster@pobox.com>
Wed, 16 Mar 2016 21:13:25 +0000 (14:13 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 16 Mar 2016 21:13:25 +0000 (14:13 -0700)
* 'master' of git://bogomips.org/git-svn:
git-svn: fix URL canonicalization during init w/ SVN 1.7+
t9117: test specifying full url to git svn init -T

Documentation/git.txt
Makefile
config.mak.uname
configure.ac
connect.c
git-rebase--interactive.sh
git-sh-setup.sh
transport.c
index 951b24661e45ffe8b11444166e3a6cc7a3c6e1d2..f9252d5591520c5ffeaea3880180e570f61be798 100644 (file)
@@ -1129,7 +1129,7 @@ of clones and fetches.
            connection (or proxy, if configured)
 
          - `ssh`: git over ssh (including `host:path` syntax,
-           `git+ssh://`, etc).
+           `ssh://`, etc).
 
          - `http`: git over http, both "smart http" and "dumb http".
            Note that this does _not_ include `https`; if you want both,
index 24bef8d4282baa7702d4386193c4291275c708c7..2742a6977c6ad871897bc758ea2a7d76359b1eee 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -264,6 +264,9 @@ all::
 #
 # Define NO_TCLTK if you do not want Tcl/Tk GUI.
 #
+# Define SANE_TEXT_GREP to "-a" if you use recent versions of GNU grep
+# and egrep that are pickier when their input contains non-ASCII data.
+#
 # The TCL_PATH variable governs the location of the Tcl interpreter
 # used to optimize git-gui for your system.  Only used if NO_TCLTK
 # is not set.  Defaults to the bare 'tclsh'.
@@ -1740,7 +1743,7 @@ common-cmds.h: $(wildcard Documentation/git-*.txt)
 
 SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):$(GIT_VERSION):\
        $(localedir_SQ):$(NO_CURL):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\
-       $(gitwebdir_SQ):$(PERL_PATH_SQ)
+       $(gitwebdir_SQ):$(PERL_PATH_SQ):$(SANE_TEXT_GREP)
 define cmd_munge_script
 $(RM) $@ $@+ && \
 sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
@@ -1752,6 +1755,7 @@ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
     -e $(BROKEN_PATH_FIX) \
     -e 's|@@GITWEBDIR@@|$(gitwebdir_SQ)|g' \
     -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
+    -e 's|@@SANE_TEXT_GREP@@|$(SANE_TEXT_GREP)|g' \
     $@.sh >$@+
 endef
 
index 4c68e078e7ac4a9584b2782f278b00fcbe594505..1139b4400743a8a9a687967a9dff5529d876b0c0 100644 (file)
@@ -37,6 +37,7 @@ ifeq ($(uname_S),Linux)
        HAVE_CLOCK_GETTIME = YesPlease
        HAVE_CLOCK_MONOTONIC = YesPlease
        HAVE_GETDELIM = YesPlease
+       SANE_TEXT_GREP=-a
 endif
 ifeq ($(uname_S),GNU/kFreeBSD)
        HAVE_ALLOCA_H = YesPlease
index 89e2590bd6926a52d8f57e0dfc164360809c90d2..0cd9f4680b84bccd0a98193c401b13749b05b833 100644 (file)
@@ -471,6 +471,13 @@ if test -n "$ASCIIDOC"; then
        esac
 fi
 
+if grep -a ascii configure.ac >/dev/null; then
+  AC_MSG_RESULT([Using 'grep -a' for sane_grep])
+  SANE_TEXT_GREP=-a
+else
+  SANE_TEXT_GREP=
+fi
+GIT_CONF_SUBST([SANE_TEXT_GREP])
 
 ## Checks for libraries.
 AC_MSG_NOTICE([CHECKS for libraries])
index 047863144f3f22fe36d178a00b116ee45c2e9e11..c53f3f1c55243feae8affbb268af689b35b9169f 100644 (file)
--- a/connect.c
+++ b/connect.c
@@ -267,9 +267,9 @@ static enum protocol get_protocol(const char *name)
                return PROTO_SSH;
        if (!strcmp(name, "git"))
                return PROTO_GIT;
-       if (!strcmp(name, "git+ssh"))
+       if (!strcmp(name, "git+ssh")) /* deprecated - do not use */
                return PROTO_SSH;
-       if (!strcmp(name, "ssh+git"))
+       if (!strcmp(name, "ssh+git")) /* deprecated - do not use */
                return PROTO_SSH;
        if (!strcmp(name, "file"))
                return PROTO_FILE;
index c0cfe88a3d9422e0255c29dc7ccb4566412013cd..4cde685b43a4463bac5f96bcb4f8ed8b3e9347be 100644 (file)
@@ -1233,7 +1233,8 @@ then
        git rev-list $revisions |
        while read rev
        do
-               if test -f "$rewritten"/$rev && test "$(sane_grep "$rev" "$state_dir"/not-cherry-picks)" = ""
+               if test -f "$rewritten"/$rev &&
+                  ! sane_grep "$rev" "$state_dir"/not-cherry-picks >/dev/null
                then
                        # Use -f2 because if rev-list is telling us this commit is
                        # not worthwhile, we don't want to track its multiple heads,
index 4691fbcb64fe7ecbc58930bb96d4e6b28e2b87a7..c48139a49420ea2318e23d8667eb20bae9772463 100644 (file)
@@ -168,11 +168,11 @@ git_pager() {
 }
 
 sane_grep () {
-       GREP_OPTIONS= LC_ALL=C grep "$@"
+       GREP_OPTIONS= LC_ALL=C grep @@SANE_TEXT_GREP@@ "$@"
 }
 
 sane_egrep () {
-       GREP_OPTIONS= LC_ALL=C egrep "$@"
+       GREP_OPTIONS= LC_ALL=C egrep @@SANE_TEXT_GREP@@ "$@"
 }
 
 is_bare_repository () {
index ca3cfa4b00d857603e6c72536fa6905a7ee2905f..095e61f0adde0741a3c95817f10df4b957d473ee 100644 (file)
@@ -678,8 +678,9 @@ struct transport *transport_get(struct remote *remote, const char *url)
                || starts_with(url, "file://")
                || starts_with(url, "git://")
                || starts_with(url, "ssh://")
-               || starts_with(url, "git+ssh://")
-               || starts_with(url, "ssh+git://")) {
+               || starts_with(url, "git+ssh://") /* deprecated - do not use */
+               || starts_with(url, "ssh+git://") /* deprecated - do not use */
+               ) {
                /*
                 * These are builtin smart transports; "allowed" transports
                 * will be checked individually in git_connect.