From 884bb23ad348bd5a033073adf3d9ea52f29894ba Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Sun, 1 Jul 2012 20:47:45 +0200 Subject: Handle brand-new repositories better stderr from the underlying git process was not being redirected/ignored properly, now somewhat more. If EOF is encountered when asking for the last update date it is shown as "never". --- gitto/main.scm | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/gitto/main.scm b/gitto/main.scm index 8545630..1699118 100644 --- a/gitto/main.scm +++ b/gitto/main.scm @@ -80,28 +80,33 @@ gitto [options] (newline)) (define (git-revs-to-push) - (let* ((pp (open-input-pipe "git log --pretty=oneline @{u}.. | wc -l")) - (num (string->number (read-line pp)))) - (close-pipe pp) + (let* ((pipe (open-input-pipe + "git log --pretty=oneline @{u}.. 2>/dev/null | wc -l")) + (num (string->number (read-line pipe)))) + (close-pipe pipe) num)) (define (git-revs-to-pull) - (let* ((pp (open-input-pipe "git log --pretty=oneline ..@{u} | wc -l")) - (num (string->number (read-line pp)))) - (close-pipe pp) + (let* ((pipe (open-input-pipe + "git log --pretty=oneline ..@{u} 2>/dev/null | wc -l")) + (num (string->number (read-line pipe)))) + (close-pipe pipe) num)) (define (git-clean?) - (let* ((pipe (open-input-pipe "git status -suno")) + (let* ((pipe (open-input-pipe "git status -suno 2>/dev/null")) (clean? (eof-object? (read-delimited "" pipe)))) (close-pipe pipe) clean?)) (define (git-last-update) - (let* ((pipe (open-input-pipe "git log -1 --format=%ar @{u}")) + (let* ((pipe (open-input-pipe + "git log -1 --format=%ar @{u} 2>/dev/null")) (relative-last-update (read-line pipe))) (close-pipe pipe) - relative-last-update)) + (if (eof-object? relative-last-update) + "never" + relative-last-update))) (define (list-repositories) (for-each -- cgit v1.2.3-54-g00ecf