diff options
author | Ilari Liusvaara <ilari.liusvaara@elisanet.fi> | 2009-12-09 17:26:34 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-12-28 00:24:15 -0800 |
commit | 28ca0c90080ec933d82b0f7d050ea5fde2816c57 (patch) | |
tree | 654099f9c9435eb6022247ee6e9c29d4ad03b0b3 | |
parent | b236752a8722c77b5a9b4ed488a992ee05252843 (diff) | |
download | git-28ca0c90080ec933d82b0f7d050ea5fde2816c57.tar.gz git-28ca0c90080ec933d82b0f7d050ea5fde2816c57.tar.xz |
Remove special casing of http, https and ftp
HTTP, HTTPS and FTP are no longer special to transport code. Also
add support for FTPS (curl supports it so it is easy).
Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | Makefile | 27 | ||||
-rw-r--r-- | transport.c | 8 |
3 files changed, 29 insertions, 10 deletions
diff --git a/.gitignore b/.gitignore index ac02a580d..aa7a8ac19 100644 --- a/.gitignore +++ b/.gitignore @@ -107,6 +107,10 @@ /git-relink /git-remote /git-remote-curl +/git-remote-http +/git-remote-https +/git-remote-ftp +/git-remote-ftps /git-repack /git-replace /git-repo-config @@ -424,6 +424,16 @@ BUILT_INS += git-stage$X BUILT_INS += git-status$X BUILT_INS += git-whatchanged$X +ifdef NO_CURL +REMOTE_CURL_PRIMARY = +REMOTE_CURL_ALIASES = +REMOTE_CURL_NAMES = +else +REMOTE_CURL_PRIMARY = git-remote-http$X +REMOTE_CURL_ALIASES = git-remote-https$X git-remote-ftp$X git-remote-ftps$X +REMOTE_CURL_NAMES = $(REMOTE_CURL_PRIMARY) $(REMOTE_CURL_ALIASES) +endif + # what 'all' will build and 'install' will install in gitexecdir, # excluding programs for built-in commands ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS) @@ -1097,7 +1107,7 @@ else else CURL_LIBCURL = -lcurl endif - PROGRAMS += git-remote-curl$X git-http-fetch$X + PROGRAMS += $(REMOTE_CURL_NAMES) git-http-fetch$X curl_check := $(shell (echo 070908; curl-config --vernum) | sort -r | sed -ne 2p) ifeq "$(curl_check)" "070908" ifndef NO_EXPAT @@ -1676,7 +1686,13 @@ git-http-push$X: revision.o http.o http-push.o $(GITLIBS) $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT) -git-remote-curl$X: remote-curl.o http.o http-walker.o $(GITLIBS) +$(REMOTE_CURL_ALIASES): $(REMOTE_CURL_PRIMARY) + $(QUIET_LNCP)$(RM) $@ && \ + ln $< $@ 2>/dev/null || \ + ln -s $< $@ 2>/dev/null || \ + cp $< $@ + +$(REMOTE_CURL_PRIMARY): remote-curl.o http.o http-walker.o $(GITLIBS) $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \ $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT) @@ -1852,6 +1868,7 @@ endif ifneq (,$X) $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), test '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p' -ef '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p$X' || $(RM) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p';) endif + bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \ execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \ { test "$$bindir/" = "$$execdir/" || \ @@ -1865,6 +1882,12 @@ endif ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \ cp "$$execdir/git$X" "$$execdir/$$p" || exit; \ done; } && \ + { for p in $(REMOTE_CURL_ALIASES); do \ + $(RM) "$$execdir/$$p" && \ + ln "$$execdir/git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \ + ln -s "git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \ + cp "$$execdir/git-remote-http$X" "$$execdir/$$p" || exit; \ + done; } && \ ./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X" install-doc: diff --git a/transport.c b/transport.c index a7d67eba8..652bf0bd8 100644 --- a/transport.c +++ b/transport.c @@ -918,14 +918,6 @@ struct transport *transport_get(struct remote *remote, const char *url) data->conn = NULL; data->got_remote_heads = 0; - } else if (!prefixcmp(url, "http://") - || !prefixcmp(url, "https://") - || !prefixcmp(url, "ftp://")) { - /* These three are just plain special. */ - transport_helper_init(ret, "curl"); -#ifdef NO_CURL - error("git was compiled without libcurl support."); -#endif } else { /* Unknown protocol in URL. Pass to external handler. */ int len = external_specification_len(url); |