{"thread":{"id":"11610","subject":"[PATCH] http-push: disable http-push without USE_CURL_MULTI","startedAt":"2008-01-13T19:02:57Z","lastAt":"2008-01-22T02:14:05Z","messageCount":24,"participants":["Grégoire Barbier","Junio C Hamano","Johannes Schindelin","Mike Hommey","Daniel Barkalow"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"65265","messageId":"1200250979-19604-1-git-send-email-gb@gbarbier.org","threadId":"11610","inReplyTo":null,"subject":"[PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Grégoire Barbier","fromEmail":"gb@gbarbier.org","sentAt":"2008-01-13T19:02:57Z","receivedAt":"2008-01-13T19:02:57Z","isPatch":true,"sender":{"key":"gb@gbarbier.org","avatar":null},"body":"Fail when info/refs exists and is already locked (avoiding strange behaviour\nand errors, and maybe avoiding some repository corruption).\n\nWarn if the URL does not end with '/' (since 302 is not yet handled)\n\nMore explicit error message when the URL or password is not set correctly\n(instead of \"no DAV locking support\").\n\nDAV locking time of 1 minute instead of 10 minutes (avoid waiting 10 minutes\nfor a orphan lock to expire before anyone can do a push on the repo).\n\nSigned-off-by: Grégoire Barbier <gb@gbarbier.org>\n---\n http-push.c |   17 ++++++++++++++++-\n http.c      |   25 +++++++++++++++++++++++++\n http.h      |    1 +\n 3 files changed, 42 insertions(+), 1 deletions(-)\n\ndiff --git a/http-push.c b/http-push.c\nindex 55d0c94..c005903 100644\n--- a/http-push.c\n+++ b/http-push.c\n@@ -57,7 +57,7 @@ enum XML_Status {\n #define PROPFIND_ALL_REQUEST \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\" ?>\\n<D:propfind xmlns:D=\\\"DAV:\\\">\\n<D:allprop/>\\n</D:propfind>\"\n #define LOCK_REQUEST \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\" ?>\\n<D:lockinfo xmlns:D=\\\"DAV:\\\">\\n<D:lockscope><D:exclusive/></D:lockscope>\\n<D:locktype><D:write/></D:locktype>\\n<D:owner>\\n<D:href>mailto:%s</D:href>\\n</D:owner>\\n</D:lockinfo>\"\n \n-#define LOCK_TIME 600\n+#define LOCK_TIME 60\n #define LOCK_REFRESH 30\n \n /* bits #0-15 in revision.h */\n@@ -2224,6 +2224,16 @@ int main(int argc, char **argv)\n \n \tno_pragma_header = curl_slist_append(no_pragma_header, \"Pragma:\");\n \n+\t/* Verify connexion string (agains bad URLs or password errors) */\n+\tif (remote->url && remote->url[strlen(remote->url)-1] != '/') {\n+\t\tfprintf(stderr, \"Warning: remote URL does not end with a '/' which often leads to problems\\n\");\n+\t}\n+\tif (!http_test_connection(remote->url)) {\n+\t\tfprintf(stderr, \"Error: cannot access to remote URL (maybe malformed URL, network error or bad credentials)\\n\");\n+\t\trc = 1;\n+\t\tgoto cleanup;\n+\t}\n+\n \t/* Verify DAV compliance/lock support */\n \tif (!locking_available()) {\n \t\tfprintf(stderr, \"Error: no DAV locking support on remote repo %s\\n\", remote->url);\n@@ -2239,6 +2249,11 @@ int main(int argc, char **argv)\n \t\tinfo_ref_lock = lock_remote(\"info/refs\", LOCK_TIME);\n \t\tif (info_ref_lock)\n \t\t\tremote->can_update_info_refs = 1;\n+\t\telse {\n+\t\t\tfprintf(stderr, \"Error: cannot lock existing info/refs\\n\");\n+\t\t\trc = 1;\n+\t\t\tgoto cleanup;\n+\t\t}\n \t}\n \tif (remote->has_info_packs)\n \t\tfetch_indices();\ndiff --git a/http.c b/http.c\nindex d2c11ae..8b04ae9 100644\n--- a/http.c\n+++ b/http.c\n@@ -634,3 +634,28 @@ int http_fetch_ref(const char *base, const char *ref, unsigned char *sha1)\n \tfree(url);\n \treturn ret;\n }\n+\n+int http_test_connection(const char *url)\n+{\n+\tstruct strbuf buffer = STRBUF_INIT;\n+\tstruct active_request_slot *slot;\n+\tstruct slot_results results;\n+\tint ret = 0;\n+\n+\tslot = get_active_slot();\n+\tslot->results = &results;\n+\tcurl_easy_setopt(slot->curl, CURLOPT_FILE, &buffer);\n+\tcurl_easy_setopt(slot->curl, CURLOPT_WRITEFUNCTION, fwrite_buffer);\n+\tcurl_easy_setopt(slot->curl, CURLOPT_HTTPHEADER, NULL);\n+\tcurl_easy_setopt(slot->curl, CURLOPT_URL, url);\n+\tif (start_active_slot(slot)) {\n+\t\trun_active_slot(slot);\n+\t\tif (results.curl_result == CURLE_OK)\n+\t\t\tret = -1;\n+\t\telse\n+\t\t\terror(\"Cannot access to URL %s, return code %d\", url, results.curl_result);\n+\t} else\n+\t\terror(\"Unable to start request\");\n+\tstrbuf_release(&buffer);\n+\treturn ret;\n+}\ndiff --git a/http.h b/http.h\nindex aeba930..b353007 100644\n--- a/http.h\n+++ b/http.h\n@@ -77,6 +77,7 @@ extern void step_active_slots(void);\n \n extern void http_init(void);\n extern void http_cleanup(void);\n+extern int http_test_connection(const char *url);\n \n extern int data_received;\n extern int active_requests;\n-- \n1.5.3.6\n"},{"id":"65266","messageId":"1200250979-19604-2-git-send-email-gb@gbarbier.org","threadId":"11610","inReplyTo":"1200250979-19604-1-git-send-email-gb@gbarbier.org","subject":"[PATCH] http-push: fix webdav lock leak.","fromName":"Grégoire Barbier","fromEmail":"gb@gbarbier.org","sentAt":"2008-01-13T19:02:58Z","receivedAt":"2008-01-13T19:02:58Z","isPatch":true,"sender":{"key":"gb@gbarbier.org","avatar":null},"body":"Releasing webdav lock even if push fails because of bad (or no) reference\non command line.\n\nSigned-off-by: Grégoire Barbier <gb@gbarbier.org>\n---\n http-push.c |   13 ++++++++-----\n 1 files changed, 8 insertions(+), 5 deletions(-)\n\ndiff --git a/http-push.c b/http-push.c\nindex c005903..cbbf432 100644\n--- a/http-push.c\n+++ b/http-push.c\n@@ -2275,11 +2275,14 @@ int main(int argc, char **argv)\n \tif (!remote_tail)\n \t\tremote_tail = &remote_refs;\n \tif (match_refs(local_refs, remote_refs, &remote_tail,\n-\t\t       nr_refspec, (const char **) refspec, push_all))\n-\t\treturn -1;\n+\t\t       nr_refspec, (const char **) refspec, push_all)) {\n+\t\trc = -1;\n+\t\tgoto cleanup;\n+\t}\n \tif (!remote_refs) {\n \t\tfprintf(stderr, \"No refs in common and none specified; doing nothing.\\n\");\n-\t\treturn 0;\n+\t\trc = 0;\n+\t\tgoto cleanup;\n \t}\n \n \tnew_refs = 0;\n@@ -2410,10 +2413,10 @@ int main(int argc, char **argv)\n \t\t\tfprintf(stderr, \"Unable to update server info\\n\");\n \t\t}\n \t}\n-\tif (info_ref_lock)\n-\t\tunlock_remote(info_ref_lock);\n \n  cleanup:\n+\tif (info_ref_lock)\n+\t\tunlock_remote(info_ref_lock);\n \tfree(remote);\n \n \tcurl_slist_free_all(no_pragma_header);\n-- \n1.5.3.6\n"},{"id":"65264","messageId":"1200250979-19604-3-git-send-email-gb@gbarbier.org","threadId":"11610","inReplyTo":"1200250979-19604-2-git-send-email-gb@gbarbier.org","subject":"[PATCH] http-push: disable http-push without USE_CURL_MULTI","fromName":"Grégoire Barbier","fromEmail":"gb@gbarbier.org","sentAt":"2008-01-13T19:02:59Z","receivedAt":"2008-01-13T19:02:59Z","isPatch":true,"sender":{"key":"gb@gbarbier.org","avatar":null},"body":"Make http-push always fail when not compiled with USE_CURL_MULTI, since\notherwise it corrupts the remote repository (and then fails anyway).\n\nSigned-off-by: Grégoire Barbier <gb@gbarbier.org>\n---\n http-push.c |    4 ++++\n 1 files changed, 4 insertions(+), 0 deletions(-)\n\ndiff --git a/http-push.c b/http-push.c\nindex cbbf432..96c8e75 100644\n--- a/http-push.c\n+++ b/http-push.c\n@@ -2212,6 +2212,10 @@ int main(int argc, char **argv)\n \t\tbreak;\n \t}\n \n+#ifndef USE_CURL_MULTI\n+\tdie(\"git-push is not available for http/https repository when not compiled with USE_CURL_MULTI\");\n+#endif\n+\n \tif (!remote->url)\n \t\tusage(http_push_usage);\n \n-- \n1.5.3.6\n"},{"id":"65279","messageId":"7vbq7ppbyh.fsf@gitster.siamese.dyndns.org","threadId":"11610","inReplyTo":"1200250979-19604-1-git-send-email-gb@gbarbier.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-13T23:01:10Z","receivedAt":"2008-01-13T23:01:10Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Grégoire Barbier <gb@gbarbier.org> writes:\n\n> Fail when info/refs exists and is already locked (avoiding strange behaviour\n> and errors, and maybe avoiding some repository corruption).\n>\n> Warn if the URL does not end with '/' (since 302 is not yet handled)\n>\n> More explicit error message when the URL or password is not set correctly\n> (instead of \"no DAV locking support\").\n>\n> DAV locking time of 1 minute instead of 10 minutes (avoid waiting 10 minutes\n> for a orphan lock to expire before anyone can do a push on the repo).\n\nI do not remember these discussed on the list, and would like to\nsee people who do use http-push to comment on these.  Especially\nbecause there is no correct timeout that is good for everybody,\nthe last item might be contentious.\n\nThe second one to add a couple of \"goto cleanup\" looked\ncorrect.  Acks, people?\n\nAlso http-push being unusable without CURL_MULTI was also a news\nto me.  Is this something that came up on #git perhaps?\n\nThis change means people need curl 7.10 or newer (post May 2003,\nthat is).  I do not think it is too new a version to require,\nbut then it makes me wonder if it makes much sense for us to\nkeep supporting non CURL_MULTI build these days.  Perhaps we\nshould schedule such a move to drop non MULTI build in the\nfuture?\n"},{"id":"65313","messageId":"alpine.LSU.1.00.0801141220001.8333@wbgn129.biozentrum.uni-wuerzburg.de","threadId":"11610","inReplyTo":"7vbq7ppbyh.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-01-14T11:21:08Z","receivedAt":"2008-01-14T11:21:08Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sun, 13 Jan 2008, Junio C Hamano wrote:\n\n> The second one to add a couple of \"goto cleanup\" looked correct.  Acks, \n> people?\n\nI haven't used http-push in ages, but there was a bug report with msysgit.  \nHopefully that issue gets fixed by this patch.\n\nCiao,\nDscho\n"},{"id":"65328","messageId":"7v1w8kkxo7.fsf@gitster.siamese.dyndns.org","threadId":"11610","inReplyTo":"alpine.LSU.1.00.0801141220001.8333@wbgn129.biozentrum.uni-wuerzburg.de","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-14T19:35:36Z","receivedAt":"2008-01-14T19:35:36Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> On Sun, 13 Jan 2008, Junio C Hamano wrote:\n>\n>> The second one to add a couple of \"goto cleanup\" looked correct.  Acks, \n>> people?\n>\n> I haven't used http-push in ages, but there was a bug report with msysgit.  \n> Hopefully that issue gets fixed by this patch.\n\nCould you work with the reporter to see if this fixes the issue\nfor him?\n"},{"id":"65332","messageId":"alpine.DEB.1.00.0801142019360.23987@eeepc-johanness","threadId":"11610","inReplyTo":"7v1w8kkxo7.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-01-14T20:22:15Z","receivedAt":"2008-01-14T20:22:15Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 14 Jan 2008, Junio C Hamano wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > On Sun, 13 Jan 2008, Junio C Hamano wrote:\n> >\n> >> The second one to add a couple of \"goto cleanup\" looked correct.  \n> >> Acks, people?\n> >\n> > I haven't used http-push in ages, but there was a bug report with \n> > msysgit.  Hopefully that issue gets fixed by this patch.\n> \n> Could you work with the reporter to see if this fixes the issue for him?\n\nI wanted to try to reproduce first, but I had definitely not enough time \nfor git today.\n\nWill try to find some time tomorrow,\nDscho\n"},{"id":"65968","messageId":"47921582.4040708@gbarbier.org","threadId":"11610","inReplyTo":"7vbq7ppbyh.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Grégoire Barbier","fromEmail":"gb@gbarbier.org","sentAt":"2008-01-19T15:21:38Z","receivedAt":"2008-01-19T15:21:38Z","isPatch":true,"sender":{"key":"gb@gbarbier.org","avatar":null},"body":"Hi Junio, Hi Johannes,\n\nI recently sent three patches about http-push:\n>  $gmane/70406 <1200250979-19604-1-git-send-email-gb@gbarbier.org>\n>  $gmane/70407 <1200250979-19604-2-git-send-email-gb@gbarbier.org>\n>  $gmane/70405 <1200250979-19604-3-git-send-email-gb@gbarbier.org>\n\nI saw that Junio has already applied one of them (the one that disable \nhttp-push without USE_CURL_MULTI).\n\nI wont talk about the second one \"fix webdav lock leak\" in the present \nmail but in another one, since Johannes has found severe bugs in it. I \nprefer to make them separate subjects.\n\nAs for the third patch (\"making HTTP push more robust and more \nuser-friendly\"), I recall the commit message here:\n\n>  Grégoire Barbier <gb@gbarbier.org> writes:\n> > Fail when info/refs exists and is already locked (avoiding strange\n> > behaviour and errors, and maybe avoiding some repository\n> > corruption).\n> >\n> > Warn if the URL does not end with '/' (since 302 is not yet\n> > handled)\n> >\n> > More explicit error message when the URL or password is not set\n> > correctly (instead of \"no DAV locking support\").\n> >\n> > DAV locking time of 1 minute instead of 10 minutes (avoid waiting\n> > 10 minutes for a orphan lock to expire before anyone can do a push\n> > on the repo).\n\nI agree that it should be improved seriously in several ways. I will \nsubmit the patch again with following improvements.\n\n1) I will split the patch into several ones, to enable Junio to apply it \npartially.\n\nJunio C Hamano a écrit :\n>  there is no correct timeout that is good for everybody, the last item\n>  might be contentious.\n\n2) I won't change the timeout to avoid possible side effects for other \nthings I don't know about since I'm rather new to git.\n\nJohannes Schindelin a écrit :\n>  This patch makes http-push Warn if URL does not end if \"/\", but it\n>  would be even better to just handle it... we know exactly that HTTP\n>  URLs _must_ end in a slash.\n\n3) Rather than warning if the URL does not end with a slash, I will add \nthe slash, so that this will work, even without having to handle \nHTTP/302 in curl calls. BTW I will do the same for http-fetch either.\n\nJohannes Schindelin a écrit :\n>  It gives a better warning if the URL cannot be accessed, alright. But\n>  I hate the fact that it introduces yet another function which does a\n>  bunch of curl_easy_setopt()s only to start an active slot and check\n>  for errors.\n>\n>  Currently, I am not familiar enough with http-push.c to suggest a\n>  proper alternative, but I suspect that the return values of the\n>  _existing_ calls to curl should know precisely why the requests\n>  failed, and _this_ should be reported.\n\nMike Hommey a écrit :\n > FWIW, I have a work in progress refactoring the http code, avoiding a\n > great amount of curl_easy_setopt()s and simplifying the whole thing.\n > It's been sitting on my hard drive during my (quite long) vacation. I\n > will probably start working again on this soonish.\n\n4) I agree with Johannes. However I am not familiar enough with curl to \nwrite the proper alternative. I create the new function by copy/paste of \nan existing one. I'm not 100% sure that it  has no resource leaks or \nother bugs, but it's called only once at http-push start, and thus is \nlikely not to do heavy damage...\n\nAs a rationale: I've tried to make several developers use git over http, \nincluding push, and they made all the same beginner mistakes on the \ncommand line, all leading to that stupid error message about locking not \navailable, and I think that making a clearer error message is an \nimportant improvement to make not-so-skilled developers using git when \nneither ssh nor git protocols are available.\n\nTherefore I think that applying my patch, even if it's far from being \nperfect, is the lesser of two evils.\n\nThen, for instance during 1.5.5 development cycle, I would be happy to \nhelp Mike if I can, to clean my new code that he is likelly not to have \ncleaned up on his hard disk during his vacation...\nFor instance I may look at his patches and take them in example to clean \nup my code.\n\n\nApart from the discussion on the source code, I would like to reply to \nJunio about the patch disabling http-push without USE_CURL_MULTI:\nJunio C Hamano a écrit :\n>  Also http-push being unusable without CURL_MULTI was also a news to\n>  me.  Is this something that came up on #git perhaps?\n>\n>  This change means people need curl 7.10 or newer (post May 2003, that\n>  is).  I do not think it is too new a version to require, but then it\n>  makes me wonder if it makes much sense for us to keep supporting non\n>  CURL_MULTI build these days.  Perhaps we should schedule such a move\n>  to drop non MULTI build in the future?\n\nI don't know if USE_CURL_MULTI works well for other git binaries than \nhttp-push (although I've used it successfully two or three times with \nclone and fetch).\n\nIf yes, I think that the release notes, or whatever information channel \nyou can have with the various distribution maintainers, should advice to \ncompile with USE_CURL_MULTI. Or we can make it the default compilation \noption in a future release (> 1.5.4 I think).\n\nIf USE_CURL_MULTI is not safe for other binaries than http-push, I think \nI should manage to make a new patch, let's say for git-1.5.5, that would \nchange the makefile to use CURL_MULTI by default on http-push (for \nexample without -DNEVER_USE_CURL_MULTI) and leave alone other binaries \nas they are (CURL_MULTI disabled without -DUSE_CURL_MULTI).\n\nI want to insist that the present patch for 1.5.4 (which you've already \napplied to git.git), does not introduce by itself a dependence or a \nregression, it only disables unwarned users to call a function that does \nnot work, but pretends to work and by the way corrupts the remote \nrepository.\n\nI thank you very much for the time you spent reviewing my patches and \nmore generally for the work you do. I'll try to improve the way I submit \npatches to make them take you less time to review.\n\n-- \nGrégoire Barbier - gb à gbarbier.org - +33 6 21 35 73 49\n"},{"id":"66000","messageId":"alpine.LSU.1.00.0801192316330.5731@racer.site","threadId":"11610","inReplyTo":"47921582.4040708@gbarbier.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-01-19T23:18:59Z","receivedAt":"2008-01-19T23:18:59Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Sat, 19 Jan 2008, Grégoire Barbier wrote:\n\n> Johannes Schindelin a écrit :\n> >  It gives a better warning if the URL cannot be accessed, alright. But\n> >  I hate the fact that it introduces yet another function which does a\n> >  bunch of curl_easy_setopt()s only to start an active slot and check\n> >  for errors.\n> > \n> >  Currently, I am not familiar enough with http-push.c to suggest a\n> >  proper alternative, but I suspect that the return values of the\n> >  _existing_ calls to curl should know precisely why the requests\n> >  failed, and _this_ should be reported.\n> \n> Mike Hommey a écrit :\n> > FWIW, I have a work in progress refactoring the http code, avoiding a \n> > great amount of curl_easy_setopt()s and simplifying the whole thing. \n> > It's been sitting on my hard drive during my (quite long) vacation. I \n> > will probably start working again on this soonish.\n> \n> 4) I agree with Johannes. However I am not familiar enough with curl to \n> write the proper alternative. I create the new function by copy/paste of \n> an existing one. I'm not 100% sure that it has no resource leaks or \n> other bugs, but it's called only once at http-push start, and thus is \n> likely not to do heavy damage...\n\nI agree that it is too late in the rc cycle (actually, I cannot wait for \nthe end of it...) to do heavy refactoring, and this function is small \nenough that it should not hurt the refactoring effort, especially given \nthat you want to work on that end anyway.\n\nSo please strike this one of my objections.\n\nThanks for all your work,\nDscho\n"},{"id":"66108","messageId":"47946F67.5060601@gbarbier.org","threadId":"11610","inReplyTo":"7vbq7ppbyh.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Grégoire Barbier","fromEmail":"devel@gbarbier.org","sentAt":"2008-01-21T10:09:43Z","receivedAt":"2008-01-21T10:09:43Z","isPatch":true,"sender":{"key":"devel@gbarbier.org","avatar":null},"body":"Junio C Hamano a écrit :\n> Also http-push being unusable without CURL_MULTI was also a news\n> to me.  Is this something that came up on #git perhaps?\n> \n> This change means people need curl 7.10 or newer (post May 2003,\n> that is).  I do not think it is too new a version to require,\n> but then it makes me wonder if it makes much sense for us to\n> keep supporting non CURL_MULTI build these days.  Perhaps we\n> should schedule such a move to drop non MULTI build in the\n> future?\n\nIn fact, it's not curl 7.10 but curl 7.16 (those guys working on curl \nspeak hexa).\nSee commit 9cf04301b182c4c57d62ea63554d109db613f9d3\n\nHowever... http-push is anyway broken without USE_CURL_MULTI.\n\n-- \nGrégoire Barbier - gb à gbarbier.org - +33 6 21 35 73 49\n"},{"id":"66112","messageId":"7vmyqzzdhf.fsf@gitster.siamese.dyndns.org","threadId":"11610","inReplyTo":"47946F67.5060601@gbarbier.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-21T10:20:44Z","receivedAt":"2008-01-21T10:20:44Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Thanks for correction.  I need to update Release Notes...\n"},{"id":"66113","messageId":"47947399.3000507@gbarbier.org","threadId":"11610","inReplyTo":"7vmyqzzdhf.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Grégoire Barbier","fromEmail":"devel@gbarbier.org","sentAt":"2008-01-21T10:27:37Z","receivedAt":"2008-01-21T10:27:37Z","isPatch":true,"sender":{"key":"devel@gbarbier.org","avatar":null},"body":"Junio C Hamano a écrit :\n> Thanks for correction.  I need to update Release Notes...\n\nCurl 7.16 has been released in october 2006 \n(http://curl.haxx.se/changes.html), rather than 2003 like for 7.10.\n\nThe consequences is that a lot of not so old distributions may be \nconcerned. I only checked Fedora, which does not provide curl > 7.15 \nbefore Fedora 7 (issued late may 2007).\n\n(BTW you may guess well that I'm using a Fedora Core 6 for my git \npatches...)\n\n-- \nGrégoire Barbier - gb à gbarbier.org - +33 6 21 35 73 49\n"},{"id":"66119","messageId":"7vabmzzbcc.fsf@gitster.siamese.dyndns.org","threadId":"11610","inReplyTo":"47947399.3000507@gbarbier.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-21T11:06:59Z","receivedAt":"2008-01-21T11:06:59Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Grégoire Barbier <devel@gbarbier.org> writes:\n\n> Junio C Hamano a écrit :\n>> Thanks for correction.  I need to update Release Notes...\n>\n> Curl 7.16 has been released in october 2006\n> (http://curl.haxx.se/changes.html), rather than 2003 like for 7.10.\n>\n> The consequences is that a lot of not so old distributions may be\n> concerned. I only checked Fedora, which does not provide curl > 7.15\n> before Fedora 7 (issued late may 2007).\n>\n> (BTW you may guess well that I'm using a Fedora Core 6 for my git\n> patches...)\n\nNow, that means the patch is not quite good for 1.5.4, and if we\nwant to keep http-push alive (I do not very much care about it\nmyself, though), and make it usable, we would need to fix it for\nnon MULTI case.\n\nHmmmmm.\n"},{"id":"66134","messageId":"alpine.LSU.1.00.0801211212010.5731@racer.site","threadId":"11610","inReplyTo":"7vabmzzbcc.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-01-21T12:17:10Z","receivedAt":"2008-01-21T12:17:10Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 21 Jan 2008, Junio C Hamano wrote:\n\n> Grégoire Barbier <devel@gbarbier.org> writes:\n> \n> > Junio C Hamano a écrit :\n> >> Thanks for correction.  I need to update Release Notes...\n> >\n> > Curl 7.16 has been released in october 2006 \n> > (http://curl.haxx.se/changes.html), rather than 2003 like for 7.10.\n> >\n> > The consequences is that a lot of not so old distributions may be \n> > concerned. I only checked Fedora, which does not provide curl > 7.15 \n> > before Fedora 7 (issued late may 2007).\n> >\n> > (BTW you may guess well that I'm using a Fedora Core 6 for my git \n> > patches...)\n> \n> Now, that means the patch is not quite good for 1.5.4, and if we want to \n> keep http-push alive (I do not very much care about it myself, though), \n> and make it usable, we would need to fix it for non MULTI case.\n\nIMHO it is safer to disable it for curl < 7.0xa -- even if it affects a \nnumber of distros -- than to give the illusion that it works, when it does \nnot.\n\nAs for fixing it in the non-MULTI case, I have a hunch that Mike's \ncleanups will help that, but that this is a 1.5.5 feature.\n\nSo, I would like to read in the ReleaseNotes something like this:\n\n-- snip --\nSupport for pushing via HTTP was broken with curl versions prior to 7.16, \nso we disabled it for now.  However, it is likely that a major cleanup of \nthe http transport code -- scheduled after the release of git 1.5.4 -- \nwill be supported with more curl versions.\n-- snap --\n\nCiao,\nDscho\n"},{"id":"66184","messageId":"7vejcbx795.fsf@gitster.siamese.dyndns.org","threadId":"11610","inReplyTo":"alpine.LSU.1.00.0801211212010.5731@racer.site","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-21T20:18:14Z","receivedAt":"2008-01-21T20:18:14Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> IMHO it is safer to disable it for curl < 7.0xa -- even if it affects a \n> number of distros -- than to give the illusion that it works, when it does \n> not.\n>\n> As for fixing it in the non-MULTI case, I have a hunch that Mike's \n> cleanups will help that, but that this is a 1.5.5 feature.\n>\n> So, I would like to read in the ReleaseNotes something like this:\n>\n> -- snip --\n> Support for pushing via HTTP was broken with curl versions prior to 7.16, \n> so we disabled it for now.  However, it is likely that a major cleanup of \n> the http transport code -- scheduled after the release of git 1.5.4 -- \n> will be supported with more curl versions.\n> -- snap --\n\nThat's tempting but I suspect that it might be a wrong approach.\n\nI think two important questions are:\n\n * Do we know that the current code is broken for everybody, or\n   just broken for the majority of people who do nontrivial\n   things?\n\n * Is the code in 1.5.3.8 any better?  IOW, did we make it worse\n   during 1.5.4 cycle?\n\nThe feature was added by one person who needed it, and it was\nincluded because the need was satisfid with an implementation,\nso at some point in the past, it must have worked for _somebody_\n(I am hoping that this is not a regression during 1.5.4 cycle).\n\nImagine that you are like that somebody who have been happily\nusing http-push.  Or imagine that you are starting to use git\nand are tempted to use http-push.  With the above wording, I\nstrongly suspect that you would say \"Crap --- 1.5.4 does not let\nme run http-push, so I'll stay at 1.5.3.8 until 1.5.X lets me\nuse it again\".\n\nWhich is _not_ a solution, if 1.5.3.8 has an http-push that is\nbroken the same way.  You will be choosing a version with the\nsame brokenness with respect to http-push, and are missing fixes\nwe made to http-push during 1.5.4 cycle, let alone fixes and\nenhancements to other programs that comes with 1.5.4.\n\nSo while I strongly agree that we should warn the users about\nexisting breakages, I think it is better to just revert the code\nto limit its use to USE_CURL_MULTI, if that is the case.\n\nDo we even know what exactly is broken?\n\nOn the other hand, if the \"transport.c\" rewrite broke it and the\ncurrent one for 1.5.4 is fundamentally much worse than what we\nused to have in 1.5.3.8, would it be possible as an interim\nmeasure to revert http-push changes (but keep changes to other\nprograms that already are converetd to use transport.c) so that\nwe can ship the same code as 1.5.3.8 only for http-push?\nPerhaps copy in selected old sources in a subdirectory to build\nand link a standalone http-push program?\n"},{"id":"66185","messageId":"20080121202953.GA18440@glandium.org","threadId":"11610","inReplyTo":"7vejcbx795.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Mike Hommey","fromEmail":"mh@glandium.org","sentAt":"2008-01-21T20:29:53Z","receivedAt":"2008-01-21T20:29:53Z","isPatch":true,"sender":{"key":"mh@glandium.org","avatar":"https://avatars.githubusercontent.com/u/1038527?v=4"},"body":"On Mon, Jan 21, 2008 at 12:18:14PM -0800, Junio C Hamano wrote:\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > IMHO it is safer to disable it for curl < 7.0xa -- even if it affects a \n> > number of distros -- than to give the illusion that it works, when it does \n> > not.\n> >\n> > As for fixing it in the non-MULTI case, I have a hunch that Mike's \n> > cleanups will help that, but that this is a 1.5.5 feature.\n> >\n> > So, I would like to read in the ReleaseNotes something like this:\n> >\n> > -- snip --\n> > Support for pushing via HTTP was broken with curl versions prior to 7.16, \n> > so we disabled it for now.  However, it is likely that a major cleanup of \n> > the http transport code -- scheduled after the release of git 1.5.4 -- \n> > will be supported with more curl versions.\n> > -- snap --\n> \n> That's tempting but I suspect that it might be a wrong approach.\n> \n> I think two important questions are:\n> \n>  * Do we know that the current code is broken for everybody, or\n>    just broken for the majority of people who do nontrivial\n>    things?\n\nIIRC, http-push simply doesn't work without CURL_MULTI. \n\n>  * Is the code in 1.5.3.8 any better?  IOW, did we make it worse\n>    during 1.5.4 cycle?\n\nChanges in http-push.c since 1.5.3.8 mostly involve cleanup. It\ndidn't change anything about CURL_MULTI or lack thereof.\n\nMike\n"},{"id":"66205","messageId":"alpine.LNX.1.00.0801211539320.13593@iabervon.org","threadId":"11610","inReplyTo":"7vejcbx795.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Daniel Barkalow","fromEmail":"barkalow@iabervon.org","sentAt":"2008-01-21T21:30:40Z","receivedAt":"2008-01-21T21:30:40Z","isPatch":true,"sender":{"key":"barkalow@iabervon.org","avatar":"https://avatars.githubusercontent.com/u/55364219?v=4"},"body":"On Mon, 21 Jan 2008, Junio C Hamano wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > IMHO it is safer to disable it for curl < 7.0xa -- even if it affects a \n> > number of distros -- than to give the illusion that it works, when it does \n> > not.\n> >\n> > As for fixing it in the non-MULTI case, I have a hunch that Mike's \n> > cleanups will help that, but that this is a 1.5.5 feature.\n> >\n> > So, I would like to read in the ReleaseNotes something like this:\n> >\n> > -- snip --\n> > Support for pushing via HTTP was broken with curl versions prior to 7.16, \n> > so we disabled it for now.  However, it is likely that a major cleanup of \n> > the http transport code -- scheduled after the release of git 1.5.4 -- \n> > will be supported with more curl versions.\n> > -- snap --\n> \n> That's tempting but I suspect that it might be a wrong approach.\n> \n> I think two important questions are:\n> \n>  * Do we know that the current code is broken for everybody, or\n>    just broken for the majority of people who do nontrivial\n>    things?\n> \n>  * Is the code in 1.5.3.8 any better?  IOW, did we make it worse\n>    during 1.5.4 cycle?\n\nI believe that the move to transport.c didn't change anything except \ncleaning up linking conflicts and moving the dispatch by URL method code. \nI suppose something could have gotten messed up in dealing with the \nlinking conflicts, but I don't think it actually did.\n\nI think that the bad combination is requests getting aborted and \nUSE_CURL_MULTI and early curl versions. I think that requests getting \naborted is not normal, anyway, but not something easy for users to debug \nif it happens, and possible to have happen to anybody.\n\nI don't really know much about http-push, and don't have a testing setup \nfor it, so I can't really say if it works without USE_CURL_MULTI or how \nhard it would be to make it work.\n\n\t-Daniel\n*This .sig left intentionally blank*\n"},{"id":"66215","messageId":"7v1w8aygvm.fsf@gitster.siamese.dyndns.org","threadId":"11610","inReplyTo":"alpine.LNX.1.00.0801211539320.13593@iabervon.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-21T22:05:01Z","receivedAt":"2008-01-21T22:05:01Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Daniel Barkalow <barkalow@iabervon.org> writes:\n\n> On Mon, 21 Jan 2008, Junio C Hamano wrote:\n>\n>> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n>> \n>> > IMHO it is safer to disable it for curl < 7.0xa -- even if it affects a \n>> > number of distros -- than to give the illusion that it works, when it does \n>> > not.\n>> >\n>> > As for fixing it in the non-MULTI case, I have a hunch that Mike's \n>> > cleanups will help that, but that this is a 1.5.5 feature.\n>> >\n>> > So, I would like to read in the ReleaseNotes something like this:\n>> >\n>> > -- snip --\n>> > Support for pushing via HTTP was broken with curl versions prior to 7.16, \n>> > so we disabled it for now.  However, it is likely that a major cleanup of \n>> > the http transport code -- scheduled after the release of git 1.5.4 -- \n>> > will be supported with more curl versions.\n>> > -- snap --\n>> \n>> That's tempting but I suspect that it might be a wrong approach.\n>> \n>> I think two important questions are:\n>> \n>>  * Do we know that the current code is broken for everybody, or\n>>    just broken for the majority of people who do nontrivial\n>>    things?\n>> \n>>  * Is the code in 1.5.3.8 any better?  IOW, did we make it worse\n>>    during 1.5.4 cycle?\n>\n> I believe that the move to transport.c didn't change anything except \n> cleaning up linking conflicts and moving the dispatch by URL method code. \n> I suppose something could have gotten messed up in dealing with the \n> linking conflicts, but I don't think it actually did.\n\nOk, so copying 1.5.3.8 http-push to include in 1.5.4 would not\nmake it work, it sounds like.  Then I guess Dscho's notice (and\nthe same notice with disabling http-push without MULTI in\n1.5.3.9) would be the sane thing we should do in the short term.\n"},{"id":"66229","messageId":"479526DB.2050407@gbarbier.org","threadId":"11610","inReplyTo":"7v1w8aygvm.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Grégoire Barbier","fromEmail":"devel@gbarbier.org","sentAt":"2008-01-21T23:12:27Z","receivedAt":"2008-01-21T23:12:27Z","isPatch":true,"sender":{"key":"devel@gbarbier.org","avatar":null},"body":"Junio C Hamano a écrit > * Do we know that the current code is broken \nfor everybody, or just\n> broken for the majority of people who do nontrivial things?\n\nhttp-push without USE_CURL_MULTI is broken for everybody who uses it\n\n> * Is the code in 1.5.3.8 any better?  IOW, did we make it worse \n> during 1.5.4 cycle?\n\nI think it is better, because it hurts less.\n\nafter:\n- http-push with curl >= 7.16 works\n- http-push with curl < 7.16 does not work\n\nbefore\n- http-push with curl >= 7.16 works\n- http-push with curl < 7.16 does not work and in addition corrups repos\n\nIn addition, the sooner we disable the repo corrupting code, the less we\nwill have dangerous code in the wide\n\nJunio C Hamano a écrit :\n> Then I guess Dscho's notice (and the same notice with disabling \n> http-push without MULTI in 1.5.3.9) would be the sane thing we should\n> do in the short term.\n\nThis is my opinion.\n\nJunio C Hamano a écrit :\n > The feature was added by one person who needed it, and it was\n > included because the need was satisfid with an implementation,\n > so at some point in the past, it must have worked for _somebody_\n > (I am hoping that this is not a regression during 1.5.4 cycle).\n >\n > Imagine that you are like that somebody who have been happily\n > using http-push.  Or imagine that you are starting to use git\n > and are tempted to use http-push.  With the above wording, I\n > strongly suspect that you would say \"Crap --- 1.5.4 does not let\n > me run http-push, so I'll stay at 1.5.3.8 until 1.5.X lets me\n > use it again\".\n\nMy experience is that 1.5.3.6 is broken too (but I did not ever try \n1.5.3.8). Therefore I don't think it's an 1.5.4 regression.\n\nIn fact, a few weeks ago, I was that guy discovering git and trying to \nuse http-push, and said \"Crap. That thing is broken.\" And this why I'm \nbothering you all since a while.\n\n-- \nGrégoire Barbier - gb à gbarbier.org - +33 6 21 35 73 49\n"},{"id":"66240","messageId":"alpine.LSU.1.00.0801220056080.5731@racer.site","threadId":"11610","inReplyTo":"20080121202953.GA18440@glandium.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-01-22T00:58:50Z","receivedAt":"2008-01-22T00:58:50Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 21 Jan 2008, Mike Hommey wrote:\n\n> On Mon, Jan 21, 2008 at 12:18:14PM -0800, Junio C Hamano wrote:\n> > Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> > \n> > > IMHO it is safer to disable it for curl < 7.0xa -- even if it affects a \n> > > number of distros -- than to give the illusion that it works, when it does \n> > > not.\n> > >\n> > > As for fixing it in the non-MULTI case, I have a hunch that Mike's \n> > > cleanups will help that, but that this is a 1.5.5 feature.\n> > >\n> > > So, I would like to read in the ReleaseNotes something like this:\n> > >\n> > > -- snip --\n> > > Support for pushing via HTTP was broken with curl versions prior to 7.16, \n> > > so we disabled it for now.  However, it is likely that a major cleanup of \n> > > the http transport code -- scheduled after the release of git 1.5.4 -- \n> > > will be supported with more curl versions.\n> > > -- snap --\n> > \n> > That's tempting but I suspect that it might be a wrong approach.\n> > \n> > I think two important questions are:\n> > \n> >  * Do we know that the current code is broken for everybody, or\n> >    just broken for the majority of people who do nontrivial\n> >    things?\n> \n> IIRC, http-push simply doesn't work without CURL_MULTI. \n\nI have to agree.  When I last tried without CURL_MULTI (IIRC it was just \nonce, when I had an ancient curl available), it would just not work, and I \ngave up/in and installed a newer curl, thus enabling CURL_MULTI.\n\n> >  * Is the code in 1.5.3.8 any better?  IOW, did we make it worse\n> >    during 1.5.4 cycle?\n> \n> Changes in http-push.c since 1.5.3.8 mostly involve cleanup. It\n> didn't change anything about CURL_MULTI or lack thereof.\n\nI meant to look into http-push and curl_multi, ever since Daniel asked me \n(or for that matter, other people knowing about the issues) do do it.\n\nAlas, I forgot about it.\n\nSo I am half-convinced that http-push w/o CURL_MULTI was broken since long \nago (pre 1.5.3).\n\nI'll try tomorrow, since I have a (kinda) working http-push setup \navailable then.\n\nCiao,\nDscho\n"},{"id":"66253","messageId":"7vy7aive18.fsf@gitster.siamese.dyndns.org","threadId":"11610","inReplyTo":"alpine.LSU.1.00.0801220056080.5731@racer.site","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-22T01:34:43Z","receivedAt":"2008-01-22T01:34:43Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> So I am half-convinced that http-push w/o CURL_MULTI was broken since long \n> ago (pre 1.5.3).\n\nSigh, but Ok.  Then let's do this.\n\n-- >8 --\nClarify that http-push being temporarily disabled with older cURL\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Documentation/RelNotes-1.5.4.txt |   14 ++++++++++++--\n Documentation/git-http-push.txt  |    3 +++\n http.h                           |    8 ++++++++\n 3 files changed, 23 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/RelNotes-1.5.4.txt b/Documentation/RelNotes-1.5.4.txt\nindex 9c864c9..b3cc5e0 100644\n--- a/Documentation/RelNotes-1.5.4.txt\n+++ b/Documentation/RelNotes-1.5.4.txt\n@@ -10,8 +10,18 @@ Removal\n  * As git-commit and git-status have been rewritten, \"git runstatus\"\n    helper script lost all its users and has been removed.\n \n- * Curl library older than 7.10 is not supported by \"git http-push\",\n-   as it does not work without CURLM.\n+\n+Temporarily Disabled\n+--------------------\n+\n+ * \"git http-push\" is known not to work well with cURL library older\n+   than 7.16, and we had reports of repository corruption.  It is\n+   disabled on such platforms for now.  Unfortunately, 1.5.3.8 shares\n+   the same issue.  In other words, this does not mean you will be\n+   fine if you stick to an older git release.  For now, please do not\n+   use http-push from older git with cURL older than 7.16 if you\n+   value your data. A proper fix will hopefully materialize in\n+   later versions.\n \n \n Deprecation notices\ndiff --git a/Documentation/git-http-push.txt b/Documentation/git-http-push.txt\nindex cca77f1..0b82722 100644\n--- a/Documentation/git-http-push.txt\n+++ b/Documentation/git-http-push.txt\n@@ -15,6 +15,9 @@ DESCRIPTION\n Sends missing objects to remote repository, and updates the\n remote branch.\n \n+*NOTE*: This command is temporarily disabled if your cURL\n+library is older than 7.16, as the combination has been reported\n+not to work and sometimes corrupts repository.\n \n OPTIONS\n -------\ndiff --git a/http.h b/http.h\nindex aeba930..9bab2c8 100644\n--- a/http.h\n+++ b/http.h\n@@ -8,6 +8,14 @@\n \n #include \"strbuf.h\"\n \n+/*\n+ * We detect based on the cURL version if multi-transfer is\n+ * usable in this implementation and define this symbol accordingly.\n+ * This is not something Makefile should set nor users should pass\n+ * via CFLAGS.\n+ */\n+#undef USE_CURL_MULTI\n+\n #if LIBCURL_VERSION_NUM >= 0x071000\n #define USE_CURL_MULTI\n #define DEFAULT_MAX_REQUESTS 5\n-- \n1.5.4.rc4.11.g7422b\n"},{"id":"66254","messageId":"alpine.LSU.1.00.0801220137310.5731@racer.site","threadId":"11610","inReplyTo":"7vy7aive18.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-01-22T01:38:49Z","receivedAt":"2008-01-22T01:38:49Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 21 Jan 2008, Junio C Hamano wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > So I am half-convinced that http-push w/o CURL_MULTI was broken since \n> > long ago (pre 1.5.3).\n> \n> Sigh, but Ok.  Then let's do this.\n\nThis sigh hurts my heart.  So I will try to find out what is broken.  \nTomorrow.  If the fix(es) is/are small enough, I hope that they will go \ninto 1.5.4.  If it/they is/are not, I will let you know why.\n\nCiao,\nDscho\n"},{"id":"66258","messageId":"7vprvuvcni.fsf@gitster.siamese.dyndns.org","threadId":"11610","inReplyTo":"alpine.LSU.1.00.0801220137310.5731@racer.site","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2008-01-22T02:04:33Z","receivedAt":"2008-01-22T02:04:33Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n\n> On Mon, 21 Jan 2008, Junio C Hamano wrote:\n>\n>> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n>> \n>> > So I am half-convinced that http-push w/o CURL_MULTI was broken since \n>> > long ago (pre 1.5.3).\n>> \n>> Sigh, but Ok.  Then let's do this.\n>\n> This sigh hurts my heart.\n\nHeh, it's not like you broke it, and if I sounded like I was\nshooting at the messenger I apologize.\n"},{"id":"66259","messageId":"alpine.LSU.1.00.0801220212460.5731@racer.site","threadId":"11610","inReplyTo":"7vprvuvcni.fsf@gitster.siamese.dyndns.org","subject":"Re: [PATCH] http-push: making HTTP push more robust and more user-friendly","fromName":"Johannes Schindelin","fromEmail":"johannes.schindelin@gmx.de","sentAt":"2008-01-22T02:14:05Z","receivedAt":"2008-01-22T02:14:05Z","isPatch":true,"sender":{"key":"johannes.schindelin@gmx.de","avatar":"https://avatars.githubusercontent.com/u/127790?v=4"},"body":"Hi,\n\nOn Mon, 21 Jan 2008, Junio C Hamano wrote:\n\n> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> \n> > On Mon, 21 Jan 2008, Junio C Hamano wrote:\n> >\n> >> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:\n> >> \n> >> > So I am half-convinced that http-push w/o CURL_MULTI was broken \n> >> > since long ago (pre 1.5.3).\n> >> \n> >> Sigh, but Ok.  Then let's do this.\n> >\n> > This sigh hurts my heart.\n> \n> Heh, it's not like you broke it, and if I sounded like I was shooting at \n> the messenger I apologize.\n\nNo, no, that's alright.  I am the messenger alright, but it seems that I \nam in a relatively rare position to do something about the sad state of \nhttp-push.\n\nProbably with the help of Gregoire and Mike ;-)\n\nCiao,\nDscho\n"}]}