From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11194 invoked by alias); 25 Aug 2015 22:26:26 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 36279 Received: (qmail 3855 invoked from network); 25 Aug 2015 22:26:25 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=1Z0PmSj7Jir0aLdvpK5R4/fdAS8aoOwIidhQ2wjwHBk=; b=xG1NIXnD+0TPO9OU0W7peKxipkmdvlov8sD7nDiKPxLNos6RnguTrXnaa0jqQluFSx bWrWMtxmpLwXYm1eNfSuAB1vMTW7H7BBYlwKhPlHC2Ez1XE8a4qQ7GLk0h5W7a4ygmsY myyO9cMtyLv+qmZXm47xZFusa6dOBj2Q/oL0tF2yS1Ymis+J5UgFiqSBZofkta4ACbTl qBEg0ehHsPEBtKKTA99GQ/gMC5Mmyg/3cpEy++XROuWQ4NuCuncvTcFhL8k9nItPQguC Dp3uYMueNqVMiZqI9Ylad0Er0AIgHoC+4Eebge3PoBWY5q3BXJforx5VFXd9aJrcRdUM c1nw== MIME-Version: 1.0 X-Received: by 10.55.33.74 with SMTP id h71mr8241892qkh.71.1440541581895; Tue, 25 Aug 2015 15:26:21 -0700 (PDT) In-Reply-To: <20150722115307.GC2171@tarsus.local2> References: <20150722115307.GC2171@tarsus.local2> Date: Tue, 25 Aug 2015 23:26:21 +0100 Message-ID: Subject: Re: PATCH: 3.0.8: git completion update for cherry-pick From: Mateusz Karbowy To: Daniel Shahaf Cc: zsh-workers@zsh.org Content-Type: multipart/mixed; boundary=001a1144bc76465e00051e2a39f3 --001a1144bc76465e00051e2a39f3 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable My last patch interfered with git-checkout. I've fixed it this time. On 22 July 2015 at 12:53, Daniel Shahaf wrote: > Mateusz Karbowy wrote on Sat, Jul 18, 2015 at 23:19:05 +0100: >> Currently completion for cherry-pick displays recent commits from the >> current branch. >> This patch changes this to show recent commits from all branches except = HEAD. >> > > Good morning again Mateusz, thanks for the patch. Review below. > >> Obszczymucha >> >> diff --git a/_git b/_git >> index b8edc10..8b9eb2b 100644 >> --- a/_git >> +++ b/_git >> @@ -511,7 +511,7 @@ _git-cherry-pick () { >> '*'{-s,--strategy=3D}'[use given merge strategy]:merge >> strategy:__git_merge_strategies' \ >> '*'{-X,--strategy-option=3D}'[pass merge-strategy-specific option >> to merge strategy]' \ >> '(-e --edit -x -n --no-commit -s --signoff)--ff[fast forward, if >> possible]' \ >> - ': :__git_commit_ranges' >> + ': :__git_commit_ranges --all --not HEAD' > > Two things about this. > > One, how about passing the rev-list flags in a single word, as in: > ': :__git_commit_ranges "--all --not HEAD"' > This both simplifies the callees (they don't need to reimplement git's > option parsing) and is more extensible (it'd be trivial to make another > caller use some other set of rev-list options if we need to). > > Two, since there is no space after the second colon, _arguments will > call __git_commit_ranges with compadd flags in argv. (If you print argv > in the callee, you'll see it has both a -J option for compadd and > a --all --not option for git.) I don't think we should pass both > rev-list flags and compadd flags in argv. So, we have two options: > either add a space after the second colon (which inhibits passing > compadd flags =E2=80=94 does this have undesired side effects?), or keep = the > compadd flags passed in argv and pass the rev-list flags via some other > channel, such as a well-known parameter name (the caller defines > a variable with a specific declared-in-the-(internal)-API name and the > callee checks whether the variable by that name is defined). > > What do you think? > >> - commits=3D("${(f)"$(_call_program commits git --no-pager log -20 >> --format=3D'%h%n%d%n%s\ \(%cr\)')"}") >> + commits=3D("${(f)"$(_call_program commits git --no-pager log $opts >> -20 --format=3D'%h%n%d%n%s\ \(%cr\)')"}") > > Your mailer inserted a hard line break (here) and munged trailing > whitespace (elsewhere). Next time you might want to attach your patch > (to avoid it being munged) with a *.txt extension (to make it easier to > open). > > Cheers, > > Daniel > --001a1144bc76465e00051e2a39f3 Content-Type: text/plain; charset=US-ASCII; name="_git.patch.txt" Content-Disposition: attachment; filename="_git.patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_idrx9eow0 ZGlmZiAtLWdpdCBhL0NvbXBsZXRpb24vVW5peC9Db21tYW5kL19naXQgYi9Db21wbGV0aW9uL1Vu aXgvQ29tbWFuZC9fZ2l0CmluZGV4IGI4ZWRjMTAuLmM3YzYzOWMgMTAwNjQ0Ci0tLSBhL0NvbXBs ZXRpb24vVW5peC9Db21tYW5kL19naXQKKysrIGIvQ29tcGxldGlvbi9Vbml4L0NvbW1hbmQvX2dp dApAQCAtNDk1LDYgKzQ5NSw4IEBAIF9naXQtY2hlY2tvdXQgKCkgewogCiAoKCAkK2Z1bmN0aW9u c1tfZ2l0LWNoZXJyeS1waWNrXSApKSB8fAogX2dpdC1jaGVycnktcGljayAoKSB7CisgIGxvY2Fs IC1hIGdpdF9jb21taXRfb3B0cworICBnaXRfY29tbWl0X29wdHM9KC0tYWxsIC0tbm90IEhFQUQg LS1ub3QpCiAgIF9hcmd1bWVudHMgXAogICAgICcoLSA6KS0tcXVpdFtlbmQgcmV2ZXJ0IG9yIGNo ZXJyeS1waWNrIHNlcXVlbmNlXScgXAogICAgICcoLSA6KS0tY29udGludWVbcmVzdW1lIHJldmVy dCBvciBjaGVycnktcGljayBzZXF1ZW5jZV0nIFwKQEAgLTUxMSw3ICs1MTMsNyBAQCBfZ2l0LWNo ZXJyeS1waWNrICgpIHsKICAgICAnKid7LXMsLS1zdHJhdGVneT19J1t1c2UgZ2l2ZW4gbWVyZ2Ug c3RyYXRlZ3ldOm1lcmdlIHN0cmF0ZWd5Ol9fZ2l0X21lcmdlX3N0cmF0ZWdpZXMnIFwKICAgICAn Kid7LVgsLS1zdHJhdGVneS1vcHRpb249fSdbcGFzcyBtZXJnZS1zdHJhdGVneS1zcGVjaWZpYyBv cHRpb24gdG8gbWVyZ2Ugc3RyYXRlZ3ldJyBcCiAgICAgJygtZSAtLWVkaXQgLXggLW4gLS1uby1j b21taXQgLXMgLS1zaWdub2ZmKS0tZmZbZmFzdCBmb3J3YXJkLCBpZiBwb3NzaWJsZV0nIFwKLSAg ICAnOiA6X19naXRfY29tbWl0X3JhbmdlcycKKyAgICAnOiA6IF9fZ2l0X2NvbW1pdF9yYW5nZXMg LU8gZXhwbCAtQyBnaXRfY29tbWl0X29wdHMnCiB9CiAKICgoICQrZnVuY3Rpb25zW19naXQtY2l0 b29sXSApKSB8fApAQCAtNTYwMiwyMCArNTYwNCwyOSBAQCBfX2dpdF9yZW1vdGVfYnJhbmNoX25h bWVzX25vcHJlZml4ICgpIHsKIAogKCggJCtmdW5jdGlvbnNbX19naXRfY29tbWl0X29iamVjdHNf cHJlZmVyX3JlY2VudF0gKSkgfHwKIF9fZ2l0X2NvbW1pdF9vYmplY3RzX3ByZWZlcl9yZWNlbnQg KCkgewotICBfX2dpdF9yZWNlbnRfY29tbWl0cyB8fCBfX2dpdF9jb21taXRfb2JqZWN0cworICBs b2NhbCAtYSBjb21taXRfb3B0c19hcmd1bWVudAorICB6cGFyc2VvcHRzIC1EIC1FIEM6PWNvbW1p dF9vcHRzX2FyZ3VtZW50CisKKyAgX19naXRfcmVjZW50X2NvbW1pdHMgJGNvbW1pdF9vcHRzX2Fy Z3VtZW50IHx8IF9fZ2l0X2NvbW1pdF9vYmplY3RzCiB9CiAKICgoICQrZnVuY3Rpb25zW19fZ2l0 X2NvbW1pdHNdICkpIHx8CiBfX2dpdF9jb21taXRzICgpIHsKKyAgIyBTZXBhcmF0ZSBjb21wYWRk IG9wdGlvbnMgd2l0aCBnaXQgY29tbWl0IG9wdGlvbnMuCisgIGxvY2FsIC1hIGNvbXBhZGRfb3B0 c19hcmd1bWVudCBjb21taXRfb3B0c19hcmd1bWVudAorICB6cGFyc2VvcHRzIC1EIC1FIE86PWNv bXBhZGRfb3B0c19hcmd1bWVudCBDOj1jb21taXRfb3B0c19hcmd1bWVudAorICAoKCAkI2NvbXBh ZGRfb3B0c19hcmd1bWVudCApKSAmJiBzZXQgLS0gIiR7KEBQKWNvbXBhZGRfb3B0c19hcmd1bWVu dFsyXX0iCisKICAgIyBUT0RPOiBkZWFsIHdpdGggdGhpbmdzIHRoYXQgX19naXRfaGVhZHMgYW5k IF9fZ2l0X3RhZ3MgaGFzIGluIGNvbW1vbiAoaS5lLiwKICAgIyBpZiBib3RoIGV4aXN0cywgdGhl eSBuZWVkIHRvIGJlIGNvbXBsZXRlZCB0byBoZWFkcy94IGFuZCB0YWdzL3guCi0gIGxvY2FsIC1h IHNvcHRzIHJvcHQKKyAgbG9jYWwgLWEgc29wdHMgcm9wdCBleHBsCiAgIHpwYXJzZW9wdHMgLUUg LWEgc29wdHMgUzogcjo9cm9wdCBSOiBxCiAgIHNvcHRzKz0oICRyb3B0OnEgKQorICBleHBsPSgg JEAgKQogICBfYWx0ZXJuYXRpdmUgXAogICAgICJoZWFkczo6X19naXRfaGVhZHMgJHNvcHRzIiBc CiAgICAgImNvbW1pdC10YWdzOjpfX2dpdF9jb21taXRfdGFncyAkc29wdHMiIFwKLSAgICAnY29t bWl0LW9iamVjdHM6Ol9fZ2l0X2NvbW1pdF9vYmplY3RzX3ByZWZlcl9yZWNlbnQnCisgICAgJ2Nv bW1pdC1vYmplY3RzOjogX19naXRfY29tbWl0X29iamVjdHNfcHJlZmVyX3JlY2VudCAtTyBleHBs ICRjb21taXRfb3B0c19hcmd1bWVudCcKIH0KIAogKCggJCtmdW5jdGlvbnNbX19naXRfaGVhZHNd ICkpIHx8CkBAIC01NjcwLDEzICs1NjgxLDE2IEBAIF9fZ2l0X2NvbW1pdF9vYmplY3RzICgpIHsK ICgoICQrZnVuY3Rpb25zW19fZ2l0X3JlY2VudF9jb21taXRzXSApKSB8fAogX19naXRfcmVjZW50 X2NvbW1pdHMgKCkgewogICBsb2NhbCBnaXRkaXIgZXhwbCBzdGFydAotICBkZWNsYXJlIC1hIGRl c2NyIHRhZ3MgaGVhZHMgY29tbWl0cworICBkZWNsYXJlIC1hIGRlc2NyIHRhZ3MgaGVhZHMgY29t bWl0cyBjb21taXRfb3B0c19hcmd1bWVudCBjb21taXRfb3B0cwogICBsb2NhbCBpIGogayByZXQK ICAgaW50ZWdlciBkaXN0YW5jZV9mcm9tX2hlYWQKIAorICB6cGFyc2VvcHRzIC1EIC1FIEM6PWNv bW1pdF9vcHRzX2FyZ3VtZW50CisgICgoICQjY29tbWl0X29wdHNfYXJndW1lbnQgKSkgJiYgY29t bWl0X29wdHM9KCAiJHsoQFApY29tbWl0X29wdHNfYXJndW1lbnRbMl19IiApCisKICAgIyBDYXJl ZnVsOiBtb3N0ICVkIHdpbGwgZXhwYW5kIHRvIHRoZSBlbXB0eSBzdHJpbmcuICBRdW90ZSBwcm9w ZXJseSEKICAgIyBOT1RFOiB3ZSBjb3VsZCB1c2UgJUQgZGlyZWN0bHksIGJ1dCBpdCdzIG5vdCBh dmFpbGFibGUgaW4gZ2l0IDEuOS4xIGF0IGxlYXN0LgotICBjb21taXRzPSgiJHsoZikiJChfY2Fs bF9wcm9ncmFtIGNvbW1pdHMgZ2l0IC0tbm8tcGFnZXIgbG9nIC0yMCAtLWZvcm1hdD0nJWglbiVk JW4lc1wgXCglY3JcKScpIn0iKQorICBjb21taXRzPSgiJHsoZikiJChfY2FsbF9wcm9ncmFtIGNv bW1pdHMgZ2l0IC0tbm8tcGFnZXIgbG9nICRjb21taXRfb3B0cyAtMjAgLS1mb3JtYXQ9JyVoJW4l ZCVuJXNcIFwoJWNyXCknKSJ9IikKICAgX19naXRfY29tbWFuZF9zdWNjZXNzZnVsICRwaXBlc3Rh dHVzIHx8IHJldHVybiAxCiAKICAgZm9yIGkgaiBrIGluICIkY29tbWl0c1tAXSIgOyBkbwpAQCAt NTc1OSwxMyArNTc3MywxOSBAQCBfX2dpdF9jb21taXRzMiAoKSB7CiAKICgoICQrZnVuY3Rpb25z W19fZ2l0X2NvbW1pdF9yYW5nZXNdICkpIHx8CiBfX2dpdF9jb21taXRfcmFuZ2VzICgpIHsKLSAg bG9jYWwgLWEgc3VmCisgIGxvY2FsIC1hIGNvbXBhZGRfb3B0c19hcmd1bWVudCBjb21taXRfb3B0 c19hcmd1bWVudAorICB6cGFyc2VvcHRzIC1EIC1FIE86PWNvbXBhZGRfb3B0c19hcmd1bWVudCBD Oj1jb21taXRfb3B0c19hcmd1bWVudAorICAoKCAkI2NvbXBhZGRfb3B0c19hcmd1bWVudCApKSAm JiBzZXQgLS0gIiR7KEBQKWNvbXBhZGRfb3B0c19hcmd1bWVudFsyXX0iCisKKyAgbG9jYWwgLWEg ZXhwbCBzdWYKICAgaWYgY29tcHNldCAtUCAnKi4uKC58KSc7IHRoZW4KLSAgICBfX2dpdF9jb21t aXRzICQqCisgICAgZXhwbD0oICQqICkKICAgZWxzZQogICAgIGNvbXBzZXQgLVMgJy4uKicgfHwg c3VmPSggLVMgLi4gLXIgJy5AfiBeOlx0XG5cLScgKQotICAgIF9fZ2l0X2NvbW1pdHMgJCogJHN1 ZgorICAgIGV4cGw9KCAkKiAkc3VmICkKICAgZmkKKworICBfX2dpdF9jb21taXRzIC1PIGV4cGwg JGNvbW1pdF9vcHRzX2FyZ3VtZW50CiB9CiAKICgoICQrZnVuY3Rpb25zW19fZ2l0X2NvbW1pdF9y YW5nZXMyXSApKSB8fAo= --001a1144bc76465e00051e2a39f3--