When a branch is being deleted, do not enforce the commit blacklist in
authorWard Vandewege <ward@curoverse.com>
Tue, 9 Jan 2018 03:05:28 +0000 (22:05 -0500)
committerWard Vandewege <ward@curoverse.com>
Tue, 9 Jan 2018 03:05:28 +0000 (22:05 -0500)
all the commits that are being deleted.

refs #11020

Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <wvandewege@veritasgenetics.com>

git/hooks/coding-standards.sh

index a8f615eb997af5a657ece1c868ade64057e9f9a3..d74c705eb569cb89450071c86cc35ef72154e716 100755 (executable)
@@ -18,7 +18,21 @@ $newrev  = ARGV[2]
 $user    = ENV['USER']
 
 def blacklist bl
-  all_revs = `git rev-list #{$oldrev}..#{$newrev}`.split("\n")
+  if ($newrev[0,6] ==  '000000')
+    # A branch is being deleted. Do not check old commits for DCO signoff!
+    all_revs    = []
+  elsif ($oldrev[0,6] ==  '000000')
+    if $refname != 'refs/heads/master'
+      # A new branch was pushed. Check all new commits in this branch.
+      all_revs  = `git log --pretty=format:%H master..#{$newrev}`.split("\n")
+    else
+      # When does this happen?
+      all_revs  = [$newrev]
+    end
+  else
+    all_revs    = `git rev-list #{$oldrev}..#{$newrev}`.split("\n")
+  end
+
   all_revs.each do |rev|
     bl.each do |b|
       if rev == b