{"thread":{"id":"36652","subject":"[PATCH] contrib: remote-helpers: add move warnings (v2.0)","startedAt":"2014-05-13T21:29:56Z","lastAt":"2014-05-14T20:51:55Z","messageCount":14,"participants":["Felipe Contreras","Junio C Hamano","Ronnie Sahlberg","Marius Storm-Olsen"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"241450","messageId":"1400016596-13178-1-git-send-email-felipe.contreras@gmail.com","threadId":"36652","inReplyTo":null,"subject":"[PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-05-13T21:29:56Z","receivedAt":"2014-05-13T21:29:56Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"The tools are now maintained out-of-tree, and they have a regression in\nv2.0. It's better to start warning the users as soon as possible.\n\nCan't possibly introduce regressions.\n\nSigned-off-by: Felipe Contreras <felipe.contreras@gmail.com>\n---\n contrib/remote-helpers/git-remote-bzr | 3 +++\n contrib/remote-helpers/git-remote-hg  | 3 +++\n 2 files changed, 6 insertions(+)\n\ndiff --git a/contrib/remote-helpers/git-remote-bzr b/contrib/remote-helpers/git-remote-bzr\nindex 9abb58e..be4b9a3 100755\n--- a/contrib/remote-helpers/git-remote-bzr\n+++ b/contrib/remote-helpers/git-remote-bzr\n@@ -43,6 +43,9 @@ import re\n import StringIO\n import atexit, shutil, hashlib, urlparse, subprocess\n \n+sys.stderr.write('WARNING: git-remote-bzr is now maintained independently.\\n')\n+sys.stderr.write('WARNING: For more information visit https://github.com/felipec/git-remote-bzr\\n')\n+\n NAME_RE = re.compile('^([^<>]+)')\n AUTHOR_RE = re.compile('^([^<>]+?)? ?[<>]([^<>]*)(?:$|>)')\n EMAIL_RE = re.compile(r'([^ \\t<>]+@[^ \\t<>]+)')\ndiff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg\nindex 34cda02..989df66 100755\n--- a/contrib/remote-helpers/git-remote-hg\n+++ b/contrib/remote-helpers/git-remote-hg\n@@ -25,6 +25,9 @@ import atexit\n import urlparse, hashlib\n import time as ptime\n \n+sys.stderr.write('WARNING: git-remote-hg is now maintained independently.\\n')\n+sys.stderr.write('WARNING: For more information visit https://github.com/felipec/git-remote-hg\\n')\n+\n #\n # If you want to see Mercurial revisions as Git commit notes:\n # git config core.notesRef refs/notes/hg\n-- \n1.9.2\n"},{"id":"241456","messageId":"xmqq7g5pmj5r.fsf@gitster.dls.corp.google.com","threadId":"36652","inReplyTo":"1400016596-13178-1-git-send-email-felipe.contreras@gmail.com","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-05-13T22:02:40Z","receivedAt":"2014-05-13T22:02:40Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Felipe Contreras <felipe.contreras@gmail.com> writes:\n\n> The tools are now maintained out-of-tree, and they have a regression in\n> v2.0.\n\nYou seem not to understand at all what a regression is.\n\nMy understanding is that versions of remote-hg shipped with all\nversions of Git did not work with Hg 3.0, so not working with Hg 3.0\nis a regression in v2.0 at all.  A recent report was about Hg 3.0\nnot working with 1.9.3, but I think you earlier said all versions of\nGit does not work with Hg 3.0, and I can believe it.  That is hardly\na regression.\n\nYou could argue that Hg has a new regression to its external users\nof its API when it went to 3.0.  We actually had a similar breakage\nin 1.5.4, where it was reported late in the cycle after -rc0 [*1*]\nthat cgit that linked with our internal API libgit.a was broken by a\nchange on our side, which resulted in us fixing the breakage (even\nthough technically you may be able to say that it was cgit's fault\nto link with libgit.a in the first place) with 18125644 (Move\nsha1_file_to_archive into libgit, 2008-01-14) very late in the\ncycle.  Calling that a regression in cgit would have been insane,\neven if we did not patch our side up to accomodate it.\n\nStop this idiocy.\n\n\n[References]\n\n*1* http://thread.gmane.org/gmane.comp.version-control.git/70117/focus=71064\n"},{"id":"241460","messageId":"53729b2150a84_34aa9e5304e0@nysa.notmuch","threadId":"36652","inReplyTo":"xmqq7g5pmj5r.fsf@gitster.dls.corp.google.com","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-05-13T22:22:25Z","receivedAt":"2014-05-13T22:22:25Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Junio C Hamano wrote:\n> Felipe Contreras <felipe.contreras@gmail.com> writes:\n> \n> > The tools are now maintained out-of-tree, and they have a regression in\n> > v2.0.\n> \n> You seem not to understand at all what a regression is.\n> \n> My understanding is that versions of remote-hg shipped with all\n> versions of Git did not work with Hg 3.0, so not working with Hg 3.0\n> is a regression in v2.0 at all.\n\nI explained to you multiple times already that is a different issue, but\nit somehow doesn't get through your skull.\n\nLet me try a different approach.\n\ngit-remote-bzr has a regression in Git v2.0.\n\nDid you get the BAZAAR part? That's right, this is unrelated to\nMercurial v3.0 because it doesn't have anything to do with Mercurial.\n\n*BOTH* git-remote-hg and git-remote-bzr have a regression in Git v2.0.\n\n> A recent report was about Hg 3.0 not working with 1.9.3, but I think\n> you earlier said all versions of Git does not work with Hg 3.0, and I\n> can believe it.  That is hardly a regression.\n> \n> You could argue that Hg has a new regression to its external users\n> of its API when it went to 3.0.  We actually had a similar breakage\n> in 1.5.4, where it was reported late in the cycle after -rc0 [*1*]\n> that cgit that linked with our internal API libgit.a was broken by a\n> change on our side, which resulted in us fixing the breakage (even\n> though technically you may be able to say that it was cgit's fault\n> to link with libgit.a in the first place) with 18125644 (Move\n> sha1_file_to_archive into libgit, 2008-01-14) very late in the\n> cycle.  Calling that a regression in cgit would have been insane,\n> even if we did not patch our side up to accomodate it.\n> \n> Stop this idiocy.\n\nSigh, you just don't seem to understand that you are thinking about a\ndifferent issue. I don't think there's any other way I can explain it to\nyou.\n\n-- \nFelipe Contreras\n"},{"id":"241463","messageId":"xmqq38gdmhdo.fsf@gitster.dls.corp.google.com","threadId":"36652","inReplyTo":"53729b2150a84_34aa9e5304e0@nysa.notmuch","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-05-13T22:41:07Z","receivedAt":"2014-05-13T22:41:07Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Felipe Contreras <felipe.contreras@gmail.com> writes:\n\n> Sigh, you just don't seem to understand that you are thinking about a\n> different issue. I don't think there's any other way I can explain it to\n> you.\n\nPerhaps pointing out which commit(s) to revert might be a good point\nto start.\n"},{"id":"241467","messageId":"5372a0f6650d2_36c411ff3002e@nysa.notmuch","threadId":"36652","inReplyTo":"xmqq38gdmhdo.fsf@gitster.dls.corp.google.com","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-05-13T22:47:18Z","receivedAt":"2014-05-13T22:47:18Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Junio C Hamano wrote:\n> Felipe Contreras <felipe.contreras@gmail.com> writes:\n> \n> > Sigh, you just don't seem to understand that you are thinking about a\n> > different issue. I don't think there's any other way I can explain it to\n> > you.\n> \n> Perhaps pointing out which commit(s) to revert might be a good point\n> to start.\n\nOh, now you realize it might be nice to avoid this regression I warned\nyou about.\n\nWhy don't you continue schooling me about what constitutes a regression?\nI'm such a slow learner.\n\nI was going to do more than pointing to commits, I was going to provide\nthe fixes with test cases and a detailed explanation. But then you made\nyour decision.\n\nThis patch is what I'm suggesting you to do now. And I'll repeat what I\nalready told you.\n\nGood luck with your tree.\n\n-- \nFelipe Contreras\n"},{"id":"241471","messageId":"CAL=YDW=jCEtfEmvO-173jpJB0f3mJ2+efihprVw+MpVjxyyExQ@mail.gmail.com","threadId":"36652","inReplyTo":"53729b2150a84_34aa9e5304e0@nysa.notmuch","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Ronnie Sahlberg","fromEmail":"sahlberg@google.com","sentAt":"2014-05-13T23:11:24Z","receivedAt":"2014-05-13T23:11:24Z","isPatch":true,"sender":{"key":"sahlberg@google.com","avatar":"https://avatars.githubusercontent.com/u/7320636?v=4"},"body":"On Tue, May 13, 2014 at 3:22 PM, Felipe Contreras\n<felipe.contreras@gmail.com> wrote:\n> Junio C Hamano wrote:\n>> Felipe Contreras <felipe.contreras@gmail.com> writes:\n>>\n>> > The tools are now maintained out-of-tree, and they have a regression in\n>> > v2.0.\n>>\n>> You seem not to understand at all what a regression is.\n>>\n>> My understanding is that versions of remote-hg shipped with all\n>> versions of Git did not work with Hg 3.0, so not working with Hg 3.0\n>> is a regression in v2.0 at all.\n>\n> I explained to you multiple times already that is a different issue, but\n> it somehow doesn't get through your skull.\n\n\nCould you please calm down and adjust your behavior.\nThis constant hostility and rudeness makes the mailing list very unpleasant.\n\n\n>\n> Let me try a different approach.\n>\n> git-remote-bzr has a regression in Git v2.0.\n>\n> Did you get the BAZAAR part? That's right, this is unrelated to\n> Mercurial v3.0 because it doesn't have anything to do with Mercurial.\n>\n> *BOTH* git-remote-hg and git-remote-bzr have a regression in Git v2.0.\n>\n>> A recent report was about Hg 3.0 not working with 1.9.3, but I think\n>> you earlier said all versions of Git does not work with Hg 3.0, and I\n>> can believe it.  That is hardly a regression.\n>>\n>> You could argue that Hg has a new regression to its external users\n>> of its API when it went to 3.0.  We actually had a similar breakage\n>> in 1.5.4, where it was reported late in the cycle after -rc0 [*1*]\n>> that cgit that linked with our internal API libgit.a was broken by a\n>> change on our side, which resulted in us fixing the breakage (even\n>> though technically you may be able to say that it was cgit's fault\n>> to link with libgit.a in the first place) with 18125644 (Move\n>> sha1_file_to_archive into libgit, 2008-01-14) very late in the\n>> cycle.  Calling that a regression in cgit would have been insane,\n>> even if we did not patch our side up to accomodate it.\n>>\n>> Stop this idiocy.\n>\n> Sigh, you just don't seem to understand that you are thinking about a\n> different issue. I don't think there's any other way I can explain it to\n> you.\n>\n> --\n> Felipe Contreras\n> --\n> To unsubscribe from this list: send the line \"unsubscribe git\" in\n> the body of a message to majordomo@vger.kernel.org\n> More majordomo info at  http://vger.kernel.org/majordomo-info.html\n"},{"id":"241476","messageId":"5372acd699145_7e25141b300bb@nysa.notmuch","threadId":"36652","inReplyTo":"CAL=YDW=jCEtfEmvO-173jpJB0f3mJ2+efihprVw+MpVjxyyExQ@mail.gmail.com","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-05-13T23:37:58Z","receivedAt":"2014-05-13T23:37:58Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Ronnie Sahlberg wrote:\n> Could you please calm down and adjust your behavior.  This constant\n> hostility and rudeness makes the mailing list very unpleasant.\n\nI explaind that to him multiple times. In the mail I replied to he is\nonce again assuming I'm a *insert-your-favorite-non-smart-adjective*,\nand explaining to me what a regression is.\n\nHow many times must one repeat something before one is entitled so thay\nsomething is not \"getting through the skull\" of another person? 5? 10?\n20?\n\nBut fine, let's assume I do have to adjust my behavior. Maybe I should\nhave said \"it doesn't register in your brain\", or just \"it fails to grab\nyour attention\".\n\nBut if I have to adjust for saying that (which was true), what do you\nsay to Junio for saying this? (which was not)\n\n> > Stop this idiocy.\n\nI presume nothing, because Junio is a riskier target.\n\n-- \nFelipe Contreras\n"},{"id":"241479","messageId":"5372D205.4040004@gmail.com","threadId":"36652","inReplyTo":"5372a0f6650d2_36c411ff3002e@nysa.notmuch","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Marius Storm-Olsen","fromEmail":"mstormo@gmail.com","sentAt":"2014-05-14T02:16:37Z","receivedAt":"2014-05-14T02:16:37Z","isPatch":true,"sender":{"key":"mstormo@gmail.com","avatar":"https://avatars.githubusercontent.com/u/1500?v=4"},"body":"On 5/13/2014 5:47 PM, Felipe Contreras wrote:\n> Junio C Hamano wrote:\n>> Felipe Contreras <felipe.contreras@gmail.com> writes:\n>>\n>>> Sigh, you just don't seem to understand that you are thinking\n>>> about a different issue. I don't think there's any other way I\n>>> can explain it to you.\n>>\n>> Perhaps pointing out which commit(s) to revert might be a good\n>> point to start.\n>\n> Oh, now you realize it might be nice to avoid this regression I\n> warned you about.\n>\n> Why don't you continue schooling me about what constitutes a\n> regression? I'm such a slow learner.\n>\n> I was going to do more than pointing to commits, I was going to\n> provide the fixes with test cases and a detailed explanation. But\n> then you made your decision.\n\nI believe the regression in question, mentioned at the bottom of this post\n \nhttp://thread.gmane.org/gmane.comp.version-control.git/248263/focus=248269\n\n     \"Since you are not going to do so, I do not feel compelled to fix\n      the synchronization crash regression that is present in v2.0.0-rc2\n      and I already warned you about.\"\n\nis referring to this patch\n \nhttp://thread.gmane.org/gmane.comp.version-control.git/247546/focus=247549\n\nbut I admit, I'm getting a bit fuzzy around these discussions.\n\n-- \n.marius\n"},{"id":"241510","messageId":"CAL=YDW=W1-fDXzQJFbv0xASErzq8gtKE1K_P9FVAYCAEWdEUNA@mail.gmail.com","threadId":"36652","inReplyTo":"5372acd699145_7e25141b300bb@nysa.notmuch","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Ronnie Sahlberg","fromEmail":"sahlberg@google.com","sentAt":"2014-05-14T16:57:42Z","receivedAt":"2014-05-14T16:57:42Z","isPatch":true,"sender":{"key":"sahlberg@google.com","avatar":"https://avatars.githubusercontent.com/u/7320636?v=4"},"body":"On Tue, May 13, 2014 at 4:37 PM, Felipe Contreras\n<felipe.contreras@gmail.com> wrote:\n> Ronnie Sahlberg wrote:\n>> Could you please calm down and adjust your behavior.  This constant\n>> hostility and rudeness makes the mailing list very unpleasant.\n>\n> I explaind that to him multiple times. In the mail I replied to he is\n> once again assuming I'm a *insert-your-favorite-non-smart-adjective*,\n> and explaining to me what a regression is.\n>\n> How many times must one repeat something before one is entitled so thay\n> something is not \"getting through the skull\" of another person? 5? 10?\n> 20?\n>\n> But fine, let's assume I do have to adjust my behavior. Maybe I should\n> have said \"it doesn't register in your brain\", or just \"it fails to grab\n> your attention\".\n>\n> But if I have to adjust for saying that (which was true), what do you\n> say to Junio for saying this? (which was not)\n\nI know I shouldn't but I will respond anyway.\n\nThe problem is about you and your behaviour. Not Junio or anyone else.\n\nPlease adjust and stop your constant hostile, confrontational and\nabusive behavior on this mailinglist.\nYour behavior is not a winning strategy and will only result in\nalienating you and impair your interactions with\nthe rest of the git community.\n\n\nIf anything, Junio have shown an amazing amount of patience and\nrestraint with you.\nI would not have tolerated your kind of behavior in any project I am\nmaintainer for.\n\n\n>\n>> > Stop this idiocy.\n>\n> I presume nothing, because Junio is a riskier target.\n\nPlease follow Junio's advice. It will benefit both you as well as all\nother participants in the community.\n"},{"id":"241522","messageId":"xmqqppjgji2s.fsf@gitster.dls.corp.google.com","threadId":"36652","inReplyTo":"5372D205.4040004@gmail.com","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-05-14T19:06:35Z","receivedAt":"2014-05-14T19:06:35Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Marius Storm-Olsen <mstormo@gmail.com> writes:\n\n> On 5/13/2014 5:47 PM, Felipe Contreras wrote:\n>> I was going to do more than pointing to commits, I was going to\n>> provide the fixes with test cases and a detailed explanation. But\n>> then you made your decision.\n>\n> I believe the regression in question, mentioned at the bottom of this post\n>\n> http://thread.gmane.org/gmane.comp.version-control.git/248263/focus=248269\n>\n>     \"Since you are not going to do so, I do not feel compelled to fix\n>      the synchronization crash regression that is present in v2.0.0-rc2\n>      and I already warned you about.\"\n>\n> is referring to this patch\n>\n> http://thread.gmane.org/gmane.comp.version-control.git/247546/focus=247549\n>\n> but I admit, I'm getting a bit fuzzy around these discussions.\n\nThanks for trying to help.\n\nThe patch you pointed out however names 2594a79 as the culprit, but\nit has been in 1.8.3 and upwards, so I am not sure what to say.  As\nI do not recall seeing anything about \"I already warned you about\",\nI fished the archive again, but the closest I found was this:\n\n    http://thread.gmane.org/gmane.comp.version-control.git/248063/focus=248601\n\nin which we heard \"You won't be able to find the breakage.\" when I\nhinted bisecting.  The only thing we saw was \"I already said this\nmultiple times, but let me be clear once more: MASTER HAS A\nREGRESSION (for all versions of Mercurial).\" and I can believe if he\nsaid that exact phrase multiple times, but I do not think he said\nanything useful than \"I broke 2.0 prereleases\" anywhere---at least I\ndidn't find any \"... with this commit in what way\".\n\nSo at this point, I would have to say that the users of remote-hg is\ntaken hostage by its author.  One safe way forward at this point in\norder to avoid regression would be to revert everything done by him\nas suspicious, but that is a route that is too overcautious even for\nme, and I am not willing to travel that road.\n\nThe \"synch crash regression\" points me more towards 3994e64d\n(transport-helper: fix sync issue on crashes, 2014-04-12), though.\nI would happily revert the merge d508e4a that pulled the topic into\nv2.0.0-rc1.\n\n-- >8 --\nSubject: [PATCH] Revert \"Merge branch 'fc/transport-helper-sync-error-fix'\"\n\nThis reverts commit d508e4a8e2391ae2596403b6478d01cf3d5f928f,\nreversing changes made to e42552135a2a396f37053a89f44952ea907870b2.\n\nThe author of the original topic says he broke the upcoming 2.0\nrelease with something that relates to \"synchronization crash\nregression\" while refusing to give further specifics, so this would\nunfortunately be the safest option for the upcoming release.\n\nSigned-off-by: Junio C Hamano <gitster@pobox.com>\n---\n Documentation/RelNotes/2.0.0.txt |  4 ---\n t/t5801-remote-helpers.sh        | 31 +++++------------\n transport-helper.c               | 73 ++++++++++++++++------------------------\n 3 files changed, 37 insertions(+), 71 deletions(-)\n\ndiff --git a/Documentation/RelNotes/2.0.0.txt b/Documentation/RelNotes/2.0.0.txt\nindex 6e628d4..97f7df0 100644\n--- a/Documentation/RelNotes/2.0.0.txt\n+++ b/Documentation/RelNotes/2.0.0.txt\n@@ -88,10 +88,6 @@ UI, Workflows & Features\n  * \"git grep\" learned to behave in a way similar to native grep when\n    \"-h\" (no header) and \"-c\" (count) options are given.\n \n- * \"git push\" via transport-helper interface (e.g. remote-hg) has\n-   been updated to allow forced ref updates in a way similar to the\n-   natively supported transports.\n-\n  * The \"simple\" mode is the default for \"git push\".\n \n  * \"git add -u\" and \"git add -A\", when run without any pathspec, is a\ndiff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh\nindex a00a660..25fd2e7 100755\n--- a/t/t5801-remote-helpers.sh\n+++ b/t/t5801-remote-helpers.sh\n@@ -212,30 +212,19 @@ test_expect_success 'push update refs failure' '\n \techo \"update fail\" >>file &&\n \tgit commit -a -m \"update fail\" &&\n \tgit rev-parse --verify testgit/origin/heads/update >expect &&\n-\ttest_expect_code 1 env GIT_REMOTE_TESTGIT_FAILURE=\"non-fast forward\" \\\n-\t\tgit push origin update &&\n+\tGIT_REMOTE_TESTGIT_PUSH_ERROR=\"non-fast forward\" &&\n+\texport GIT_REMOTE_TESTGIT_PUSH_ERROR &&\n+\ttest_expect_code 1 git push origin update &&\n \tgit rev-parse --verify testgit/origin/heads/update >actual &&\n \ttest_cmp expect actual\n \t)\n '\n \n-clean_mark () {\n-\tcut -f 2 -d ' ' \"$1\" |\n-\tgit cat-file --batch-check |\n-\tgrep commit |\n-\tsort >$(basename \"$1\")\n-}\n-\n-cmp_marks () {\n-\ttest_when_finished \"rm -rf git.marks testgit.marks\" &&\n-\tclean_mark \".git/testgit/$1/git.marks\" &&\n-\tclean_mark \".git/testgit/$1/testgit.marks\" &&\n-\ttest_cmp git.marks testgit.marks\n-}\n-\n test_expect_success 'proper failure checks for fetching' '\n-\t(cd local &&\n-\ttest_must_fail env GIT_REMOTE_TESTGIT_FAILURE=1 git fetch 2>error &&\n+\t(GIT_REMOTE_TESTGIT_FAILURE=1 &&\n+\texport GIT_REMOTE_TESTGIT_FAILURE &&\n+\tcd local &&\n+\ttest_must_fail git fetch 2> error &&\n \tcat error &&\n \tgrep -q \"Error while running fast-import\" error\n \t)\n@@ -243,11 +232,7 @@ test_expect_success 'proper failure checks for fetching' '\n \n test_expect_success 'proper failure checks for pushing' '\n \t(cd local &&\n-\tgit checkout -b crash master &&\n-\techo crash >>file &&\n-\tgit commit -a -m crash &&\n-\ttest_must_fail env GIT_REMOTE_TESTGIT_FAILURE=1 git push --all &&\n-\tcmp_marks origin\n+\ttest_must_fail env GIT_REMOTE_TESTGIT_FAILURE=1 git push --all\n \t)\n '\n \ndiff --git a/transport-helper.c b/transport-helper.c\nindex b468e4f..86e1679 100644\n--- a/transport-helper.c\n+++ b/transport-helper.c\n@@ -58,7 +58,7 @@ static int recvline_fh(FILE *helper, struct strbuf *buffer, const char *name)\n \tif (strbuf_getline(buffer, helper, '\\n') == EOF) {\n \t\tif (debug)\n \t\t\tfprintf(stderr, \"Debug: Remote helper quit.\\n\");\n-\t\treturn 1;\n+\t\texit(128);\n \t}\n \n \tif (debug)\n@@ -71,6 +71,12 @@ static int recvline(struct helper_data *helper, struct strbuf *buffer)\n \treturn recvline_fh(helper->out, buffer, helper->name);\n }\n \n+static void xchgline(struct helper_data *helper, struct strbuf *buffer)\n+{\n+\tsendline(helper, buffer);\n+\trecvline(helper, buffer);\n+}\n+\n static void write_constant(int fd, const char *str)\n {\n \tif (debug)\n@@ -157,8 +163,7 @@ static struct child_process *get_helper(struct transport *transport)\n \twhile (1) {\n \t\tconst char *capname;\n \t\tint mandatory = 0;\n-\t\tif (recvline(data, &buf))\n-\t\t\texit(128);\n+\t\trecvline(data, &buf);\n \n \t\tif (!*buf.buf)\n \t\t\tbreak;\n@@ -195,9 +200,15 @@ static struct child_process *get_helper(struct transport *transport)\n \t\t} else if (!strcmp(capname, \"signed-tags\")) {\n \t\t\tdata->signed_tags = 1;\n \t\t} else if (starts_with(capname, \"export-marks \")) {\n-\t\t\tdata->export_marks = xstrdup(capname + strlen(\"export-marks \"));\n+\t\t\tstruct strbuf arg = STRBUF_INIT;\n+\t\t\tstrbuf_addstr(&arg, \"--export-marks=\");\n+\t\t\tstrbuf_addstr(&arg, capname + strlen(\"export-marks \"));\n+\t\t\tdata->export_marks = strbuf_detach(&arg, NULL);\n \t\t} else if (starts_with(capname, \"import-marks\")) {\n-\t\t\tdata->import_marks = xstrdup(capname + strlen(\"import-marks \"));\n+\t\t\tstruct strbuf arg = STRBUF_INIT;\n+\t\t\tstrbuf_addstr(&arg, \"--import-marks=\");\n+\t\t\tstrbuf_addstr(&arg, capname + strlen(\"import-marks \"));\n+\t\t\tdata->import_marks = strbuf_detach(&arg, NULL);\n \t\t} else if (starts_with(capname, \"no-private-update\")) {\n \t\t\tdata->no_private_update = 1;\n \t\t} else if (mandatory) {\n@@ -296,9 +307,7 @@ static int set_helper_option(struct transport *transport,\n \t\tquote_c_style(value, &buf, NULL, 0);\n \tstrbuf_addch(&buf, '\\n');\n \n-\tsendline(data, &buf);\n-\tif (recvline(data, &buf))\n-\t\texit(128);\n+\txchgline(data, &buf);\n \n \tif (!strcmp(buf.buf, \"ok\"))\n \t\tret = 0;\n@@ -370,8 +379,7 @@ static int fetch_with_fetch(struct transport *transport,\n \tsendline(data, &buf);\n \n \twhile (1) {\n-\t\tif (recvline(data, &buf))\n-\t\t\texit(128);\n+\t\trecvline(data, &buf);\n \n \t\tif (starts_with(buf.buf, \"lock \")) {\n \t\t\tconst char *name = buf.buf + 5;\n@@ -422,8 +430,6 @@ static int get_exporter(struct transport *transport,\n \tstruct helper_data *data = transport->data;\n \tstruct child_process *helper = get_helper(transport);\n \tint argc = 0, i;\n-\tstruct strbuf tmp = STRBUF_INIT;\n-\n \tmemset(fastexport, 0, sizeof(*fastexport));\n \n \t/* we need to duplicate helper->in because we want to use it after\n@@ -434,14 +440,10 @@ static int get_exporter(struct transport *transport,\n \tfastexport->argv[argc++] = \"--use-done-feature\";\n \tfastexport->argv[argc++] = data->signed_tags ?\n \t\t\"--signed-tags=verbatim\" : \"--signed-tags=warn-strip\";\n-\tif (data->export_marks) {\n-\t\tstrbuf_addf(&tmp, \"--export-marks=%s.tmp\", data->export_marks);\n-\t\tfastexport->argv[argc++] = strbuf_detach(&tmp, NULL);\n-\t}\n-\tif (data->import_marks) {\n-\t\tstrbuf_addf(&tmp, \"--import-marks=%s\", data->import_marks);\n-\t\tfastexport->argv[argc++] = strbuf_detach(&tmp, NULL);\n-\t}\n+\tif (data->export_marks)\n+\t\tfastexport->argv[argc++] = data->export_marks;\n+\tif (data->import_marks)\n+\t\tfastexport->argv[argc++] = data->import_marks;\n \n \tfor (i = 0; i < revlist_args->nr; i++)\n \t\tfastexport->argv[argc++] = revlist_args->items[i].string;\n@@ -561,9 +563,7 @@ static int process_connect_service(struct transport *transport,\n \t\tgoto exit;\n \n \tsendline(data, &cmdbuf);\n-\tif (recvline_fh(input, &cmdbuf, name))\n-\t\texit(128);\n-\n+\trecvline_fh(input, &cmdbuf, name);\n \tif (!strcmp(cmdbuf.buf, \"\")) {\n \t\tdata->no_disconnect_req = 1;\n \t\tif (debug)\n@@ -739,22 +739,16 @@ static int push_update_ref_status(struct strbuf *buf,\n \treturn !(status == REF_STATUS_OK);\n }\n \n-static int push_update_refs_status(struct helper_data *data,\n+static void push_update_refs_status(struct helper_data *data,\n \t\t\t\t    struct ref *remote_refs,\n \t\t\t\t    int flags)\n {\n \tstruct strbuf buf = STRBUF_INIT;\n \tstruct ref *ref = remote_refs;\n-\tint ret = 0;\n-\n \tfor (;;) {\n \t\tchar *private;\n \n-\t\tif (recvline(data, &buf)) {\n-\t\t\tret = 1;\n-\t\t\tbreak;\n-\t\t}\n-\n+\t\trecvline(data, &buf);\n \t\tif (!buf.len)\n \t\t\tbreak;\n \n@@ -772,7 +766,6 @@ static int push_update_refs_status(struct helper_data *data,\n \t\tfree(private);\n \t}\n \tstrbuf_release(&buf);\n-\treturn ret;\n }\n \n static int push_refs_with_push(struct transport *transport,\n@@ -853,7 +846,8 @@ static int push_refs_with_push(struct transport *transport,\n \tsendline(data, &buf);\n \tstrbuf_release(&buf);\n \n-\treturn push_update_refs_status(data, remote_refs, flags);\n+\tpush_update_refs_status(data, remote_refs, flags);\n+\treturn 0;\n }\n \n static int push_refs_with_export(struct transport *transport,\n@@ -911,15 +905,7 @@ static int push_refs_with_export(struct transport *transport,\n \n \tif (finish_command(&exporter))\n \t\tdie(\"Error while running fast-export\");\n-\tif (push_update_refs_status(data, remote_refs, flags))\n-\t\treturn 1;\n-\n-\tif (data->export_marks) {\n-\t\tstrbuf_addf(&buf, \"%s.tmp\", data->export_marks);\n-\t\trename(buf.buf, data->export_marks);\n-\t\tstrbuf_release(&buf);\n-\t}\n-\n+\tpush_update_refs_status(data, remote_refs, flags);\n \treturn 0;\n }\n \n@@ -988,8 +974,7 @@ static struct ref *get_refs_list(struct transport *transport, int for_push)\n \n \twhile (1) {\n \t\tchar *eov, *eon;\n-\t\tif (recvline(data, &buf))\n-\t\t\texit(128);\n+\t\trecvline(data, &buf);\n \n \t\tif (!*buf.buf)\n \t\t\tbreak;\n-- \n2.0.0-rc3-417-gef3bd82\n"},{"id":"241525","messageId":"5373c35e95731_56d6e3b30469@nysa.notmuch","threadId":"36652","inReplyTo":"CAL=YDW=W1-fDXzQJFbv0xASErzq8gtKE1K_P9FVAYCAEWdEUNA@mail.gmail.com","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-05-14T19:26:22Z","receivedAt":"2014-05-14T19:26:22Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Ronnie Sahlberg wrote:\n> On Tue, May 13, 2014 at 4:37 PM, Felipe Contreras\n> <felipe.contreras@gmail.com> wrote:\n> > But if I have to adjust for saying that (which was true), what do you\n> > say to Junio for saying this? (which was not)\n> \n> I know I shouldn't but I will respond anyway.\n> \n> The problem is about you and your behaviour. Not Junio or anyone else.\n\nRight. So when I say something moderately aggressive (but true), I'm the\nproblem, when Junio says something worst (and false), he is not.\n\nGot it.\n\n-- \nFelipe Contreras\n"},{"id":"241529","messageId":"5373c6668871b_56d6e3b30451@nysa.notmuch","threadId":"36652","inReplyTo":"xmqqppjgji2s.fsf@gitster.dls.corp.google.com","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-05-14T19:39:18Z","receivedAt":"2014-05-14T19:39:18Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Junio C Hamano wrote:\n> So at this point, I would have to say that the users of remote-hg is\n> taken hostage by its author.\n\nThe users of remote-hg are being affected negatively *because* of your\ndecisions.\n\nYou have the power to help them by answering a simple question. Yet you\nrefuse to do that.\n\nIt's all on you.\n\n-- \nFelipe Contreras\n"},{"id":"241531","messageId":"xmqqha4sjelx.fsf@gitster.dls.corp.google.com","threadId":"36652","inReplyTo":"5373c6668871b_56d6e3b30451@nysa.notmuch","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-05-14T20:21:30Z","receivedAt":"2014-05-14T20:21:30Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Felipe Contreras <felipe.contreras@gmail.com> writes:\n\n> Junio C Hamano wrote:\n>> So at this point, I would have to say that the users of remote-hg is\n>> taken hostage by its author.\n>\n> The users of remote-hg are being affected negatively *because* of your\n> decisions.\n>\n> You have the power to help them by answering a simple question. Yet you\n> refuse to do that.\n>\n> It's all on you.\n\nThat is exactly what I would call \"taking users hostage\".\n\nI think I already answered that one question:\n\n    I think after this insane amount of work I'm entitled to an answer for\n    this *one* question.\n\n    Instead you passive aggressively label me as a troll?\n\n    This is really disquieting.\n\n    Junio, do you honestly think I am a troll? Have at least the decency of\n    telling it to me.\n\nin $gmane/248853 with:\n\n    You certainly are acting like one, aren't you?\n\nDo you need more?\n"},{"id":"241537","messageId":"5373d76b965c1_592416ad2f8ca@nysa.notmuch","threadId":"36652","inReplyTo":"xmqqha4sjelx.fsf@gitster.dls.corp.google.com","subject":"Re: [PATCH] contrib: remote-helpers: add move warnings (v2.0)","fromName":"Felipe Contreras","fromEmail":"felipe.contreras@gmail.com","sentAt":"2014-05-14T20:51:55Z","receivedAt":"2014-05-14T20:51:55Z","isPatch":true,"sender":{"key":"felipe.contreras@gmail.com","avatar":"https://avatars.githubusercontent.com/u/8358?v=4"},"body":"Junio C Hamano wrote:\n> Felipe Contreras <felipe.contreras@gmail.com> writes:\n> \n> > Junio C Hamano wrote:\n> >> So at this point, I would have to say that the users of remote-hg is\n> >> taken hostage by its author.\n> >\n> > The users of remote-hg are being affected negatively *because* of your\n> > decisions.\n> >\n> > You have the power to help them by answering a simple question. Yet you\n> > refuse to do that.\n> >\n> > It's all on you.\n> \n> That is exactly what I would call \"taking users hostage\".\n> \n> I think I already answered that one question:\n\n> in $gmane/248853 with:\n> \n>     You certainly are acting like one, aren't you?\n> \n> Do you need more?\n\nYou know full well this is not the question I asked you repeatedly. Stop\ntrying to spin the readers.\n\nI asked you here:\nhttp://article.gmane.org/gmane.comp.version-control.git/248683\n\nAnd here:\nhttp://article.gmane.org/gmane.comp.version-control.git/248348\n\nAnd here:\nhttp://article.gmane.org/gmane.comp.version-control.git/248368\n\nI made it clear you were not answering the qustion here:\nhttp://article.gmane.org/gmane.comp.version-control.git/248685\n\nAnd here:\nhttp://article.gmane.org/gmane.comp.version-control.git/248701\n\nAnd here (apparently deleted mail):\n1400013572-30232-1-git-send-email-felipe.contreras@gmail.com\n\nAnd probably many other times.\n\nAnd I will ask you once again.\n\nPlease answer this *one* question:\n\n1) Please clarify the reason why you blocked the graduation of remote\n   helpers. Please give the full rationale and do not point to other\n   mails, or other peoples' explanations. If necessary attach such\n   explanations to your full reasoning.\n\nThis is the *one* question you have refused to answer over and over.\n\n-- \nFelipe Contreras\n"}]}