Code

Clarify that http-push being temporarily disabled with older cURL
authorJunio C Hamano <gitster@pobox.com>
Tue, 22 Jan 2008 01:34:43 +0000 (17:34 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 22 Jan 2008 08:48:29 +0000 (00:48 -0800)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/RelNotes-1.5.4.txt
Documentation/git-http-push.txt
http.h

index 9c864c9def3ece2e42189076922cf19548474921..9e43ac23a40f65f2be2da5627a4b1677f3016480 100644 (file)
@@ -10,8 +10,18 @@ Removal
  * As git-commit and git-status have been rewritten, "git runstatus"
    helper script lost all its users and has been removed.
 
- * Curl library older than 7.10 is not supported by "git http-push",
-   as it does not work without CURLM.
+
+Temporarily Disabled
+--------------------
+
+ * "git http-push" is known not to work well with cURL library older
+   than 7.16, and we had reports of repository corruption.  It is
+   disabled on such platforms for now.  Unfortunately, 1.5.3.8 shares
+   the same issue.  In other words, this does not mean you will be
+   fine if you stick to an older git release.  For now, please do not
+   use http-push from older git with cURL older than 7.16 if you
+   value your data. A proper fix will hopefully materialize in
+   later versions.
 
 
 Deprecation notices
index cca77f10d277bad10af5b0b3b6ce320652a43d79..0b827223429f61ebd7fff7a1ab85ab6d25dda04a 100644 (file)
@@ -15,6 +15,9 @@ DESCRIPTION
 Sends missing objects to remote repository, and updates the
 remote branch.
 
+*NOTE*: This command is temporarily disabled if your cURL
+library is older than 7.16, as the combination has been reported
+not to work and sometimes corrupts repository.
 
 OPTIONS
 -------
diff --git a/http.h b/http.h
index aeba9301f8fe1a1d4e2f9819257579375be648aa..9bab2c88210650e2aaa271a72eb7192cd2f7331b 100644 (file)
--- a/http.h
+++ b/http.h
@@ -8,6 +8,14 @@
 
 #include "strbuf.h"
 
+/*
+ * We detect based on the cURL version if multi-transfer is
+ * usable in this implementation and define this symbol accordingly.
+ * This is not something Makefile should set nor users should pass
+ * via CFLAGS.
+ */
+#undef USE_CURL_MULTI
+
 #if LIBCURL_VERSION_NUM >= 0x071000
 #define USE_CURL_MULTI
 #define DEFAULT_MAX_REQUESTS 5