zsh-workers
 help / color / mirror / code / Atom feed
From: Daniel Shahaf <d.s@daniel.shahaf.name>
To: Tim Lee <progscriptclone@gmail.com>
Cc: "Lawrence Velázquez" <larryv@zsh.org>, zsh-workers@zsh.org
Subject: Re: [PATCH] Improve vcs_info example for ahead/behind git commits
Date: Tue, 13 Apr 2021 14:01:39 +0000	[thread overview]
Message-ID: <20210413140139.GK6819@tarpaulin.shahaf.local2> (raw)
In-Reply-To: <20210413115830.5wogi3e7dh2tthmw@localhost>

[-- Attachment #1: Type: text/plain, Size: 559 bytes --]

Tim Lee wrote on Tue, Apr 13, 2021 at 19:58:30 +0800:
> > Tim: Would you have time to address the remaining points from the
> > original review, https://zsh.org/workers/48306, either by implementing
> > them and sending a revised patch, or by counterarguing them?
> 
> I think I'll just porpose something simple, since I'm not very familiar
> with ZSH.
> 
> Patch:

Thanks, applied, and here's a patch series for implementing the other
outstanding points.  Would you review it, please?  See anything that
could go wrong, or that's missing?

Cheers,

Daniel



[-- Attachment #2: 0001-vcs_info-git-docs-ahead-behind-commits-Don-t-run.patch.txt --]
[-- Type: text/plain, Size: 850 bytes --]

From 8a521515ce88802846df8884cabdd3966d0f32a8 Mon Sep 17 00:00:00 2001
From: Daniel Shahaf <d.s@daniel.shahaf.name>
Date: Tue, 13 Apr 2021 13:56:36 +0000
Subject: [PATCH 1/2] vcs_info git docs: ahead/behind commits: Don't run
 rev-list when that would fail

---
 Misc/vcs_info-examples | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Misc/vcs_info-examples b/Misc/vcs_info-examples
index d33d0ceed..065ea6cb3 100644
--- a/Misc/vcs_info-examples
+++ b/Misc/vcs_info-examples
@@ -179,6 +179,9 @@ function +vi-git-st() {
     local ahead behind
     local -a gitstatus
 
+    # Exit early in case the worktree is on a detached HEAD
+    git rev-parse ${hook_com[branch]}@{upstream} >/dev/null 2>&1 || return 0
+
     ahead=$(git rev-list --count ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null)
     (( $ahead )) && gitstatus+=( "+${ahead}" )
 

[-- Attachment #3: 0002-vcs_info-git-docs-ahead-behind-commits-Reduce-th.patch.txt --]
[-- Type: text/plain, Size: 1245 bytes --]

From d084af57318a98f5e3ff197e269f42611e5d2443 Mon Sep 17 00:00:00 2001
From: Daniel Shahaf <d.s@daniel.shahaf.name>
Date: Tue, 13 Apr 2021 13:56:31 +0000
Subject: [PATCH 2/2] vcs_info git docs: ahead/behind commits: Reduce the
 number of forks

---
 Misc/vcs_info-examples | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/Misc/vcs_info-examples b/Misc/vcs_info-examples
index 065ea6cb3..ba94cca29 100644
--- a/Misc/vcs_info-examples
+++ b/Misc/vcs_info-examples
@@ -182,10 +182,14 @@ function +vi-git-st() {
     # Exit early in case the worktree is on a detached HEAD
     git rev-parse ${hook_com[branch]}@{upstream} >/dev/null 2>&1 || return 0
 
-    ahead=$(git rev-list --count ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null)
-    (( $ahead )) && gitstatus+=( "+${ahead}" )
+    local -a ahead_and_behind=(
+        $(git rev-list --left-right --count HEAD...${hook_com[branch]}@{upstream} 2>/dev/null)
+    )
 
-    behind=$(git rev-list --count HEAD..${hook_com[branch]}@{upstream} 2>/dev/null)
+    ahead=${ahead_and_behind[1]}
+    behind=${ahead_and_behind[2]}
+
+    (( $ahead )) && gitstatus+=( "+${ahead}" )
     (( $behind )) && gitstatus+=( "-${behind}" )
 
     hook_com[misc]+=${(j:/:)gitstatus}

  reply	other threads:[~2021-04-13 14:01 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-28 21:36 Tim Lee
2021-03-29  7:06 ` Daniel Shahaf
2021-03-29  9:30   ` Tim Lee
2021-03-29  9:52     ` Daniel Shahaf
2021-03-29 10:39       ` Tim Lee
2021-03-29 11:50         ` Daniel Shahaf
2021-04-10 20:51           ` Lawrence Velázquez
2021-04-13 11:34             ` Daniel Shahaf
2021-04-13 11:58               ` Tim Lee
2021-04-13 14:01                 ` Daniel Shahaf [this message]
2021-04-13 15:01                   ` Tim Lee
2021-03-29 15:20       ` Lawrence Velázquez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210413140139.GK6819@tarpaulin.shahaf.local2 \
    --to=d.s@daniel.shahaf.name \
    --cc=larryv@zsh.org \
    --cc=progscriptclone@gmail.com \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).