git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] http-push: making HTTP push more robust and more user-friendly

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 22, 2008, 01:34 UTC
Message-ID
<7vy7aive18.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<alpine.LSU.1.00.0801220056080.5731@racer.site>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> So I am half-convinced that http-push w/o CURL_MULTI was broken since long 
> ago (pre 1.5.3).
Sigh, but Ok.  Then let's do this.

-- >8 -- Clarify that http-push being temporarily disabled with older cURL

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 Documentation/RelNotes-1.5.4.txt |   14 ++++++++++++--
 Documentation/git-http-push.txt  |    3 +++
 http.h                           |    8 ++++++++
 3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/Documentation/RelNotes-1.5.4.txt b/Documentation/RelNotes-1.5.4.txt
index 9c864c9..b3cc5e0 100644
--- a/Documentation/RelNotes-1.5.4.txt
+++ b/Documentation/RelNotes-1.5.4.txt
@@ -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
diff --git a/Documentation/git-http-push.txt b/Documentation/git-http-push.txt
index cca77f1..0b82722 100644
--- a/Documentation/git-http-push.txt
+++ b/Documentation/git-http-push.txt
@@ -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 aeba930..9bab2c8 100644
--- 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
-- 
1.5.4.rc4.11.g7422b
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 18 of 24 in “http-push: making HTTP push more robust and more user-friendly”
  1. http-push: making HTTP push more robust and more user-friendlyGrégoire Barbier, Jan 13, 2008
  2. http-push: fix webdav lock leak.Grégoire Barbier, Jan 13, 2008
  3. http-push: disable http-push without USE_CURL_MULTIGrégoire Barbier, Jan 13, 2008
  4. Junio C HamanoJan 13, 2008
  5. Johannes SchindelinJan 14, 2008
  6. Junio C HamanoJan 14, 2008
  7. Johannes SchindelinJan 14, 2008
  8. Grégoire BarbierJan 19, 2008
  9. Johannes SchindelinJan 19, 2008
  10. Grégoire BarbierJan 21, 2008
  11. Junio C HamanoJan 21, 2008
  12. Grégoire BarbierJan 21, 2008
  13. Junio C HamanoJan 21, 2008
  14. Johannes SchindelinJan 21, 2008
  15. Junio C HamanoJan 21, 2008
  16. Mike HommeyJan 21, 2008
  17. Johannes SchindelinJan 22, 2008
  18. Junio C HamanoJan 22, 2008
  19. Johannes SchindelinJan 22, 2008
  20. Junio C HamanoJan 22, 2008
  21. Johannes SchindelinJan 22, 2008
  22. Daniel BarkalowJan 21, 2008
  23. Junio C HamanoJan 21, 2008
  24. Grégoire BarbierJan 21, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.