[PATCH 2/4] nmbug: Handle missing @upstream in is_unmerged

W. Trevor King wking at tremily.us
Sun Jul 6 13:40:20 PDT 2014


If we don't have an upstream, there is nothing to merge, so nothing is
unmerged.  This avoids errors like:

  $ nmbug status
  error: No upstream configured for branch 'master'
  error: No upstream configured for branch 'master'
  fatal: ambiguous argument '@{upstream}': unknown revision or path not in the working tree.
  Use '--' to separate paths from revisions, like this:
  'git <command> [<revision>...] -- [<file>...]'
  'git rev-parse @{upstream}' exited with nonzero value

You might not have an upstream if you're only using nmbug locally to
version-control your tags.
---
 devel/nmbug/nmbug | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/devel/nmbug/nmbug b/devel/nmbug/nmbug
index 4a79722..998ee6b 100755
--- a/devel/nmbug/nmbug
+++ b/devel/nmbug/nmbug
@@ -430,7 +430,10 @@ sub do_status {
 sub is_unmerged {
   my $commit = shift || '@{upstream}';
 
-  my $fetch_head = git ('rev-parse', $commit);
+  my ($fetch_head, $status) = git_with_status ('rev-parse', $commit);
+  if ($status) {
+    return 0;
+  }
   my $base = git ( 'merge-base', 'HEAD', $commit);
 
   return ($base ne $fetch_head);
-- 
1.9.1.353.gc66d89d



More information about the notmuch mailing list