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>
This commit is contained in:
parent
b236752a87
commit
28ca0c9008
4
.gitignore
vendored
4
.gitignore
vendored
@ -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
|
||||
|
27
Makefile
27
Makefile
@ -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:
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user