diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2017-01-14 20:34:23 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2017-01-14 20:34:40 -0500 |
commit | 44cacd6b1cee00c3326d28bffdf18df0356b7204 (patch) | |
tree | 9599befa07f06275d4820e5f1bbebb77dd6ec62d /commit-remove-pointless-commit | |
parent | f727998817f5473acaa9d6806319bf7e812dc2e1 (diff) |
Make them my own.
Diffstat (limited to 'commit-remove-pointless-commit')
-rwxr-xr-x | commit-remove-pointless-commit | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/commit-remove-pointless-commit b/commit-remove-pointless-commit deleted file mode 100755 index ba33522..0000000 --- a/commit-remove-pointless-commit +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/ruby -# Executed like the following to trim off pointless commits (including merge commits) -# that doesn't change the tree -# git filter-branch -f --commit-filter '~/ws/jenkins/split2/helper.rb "$@"' HEAD -# -# parameters are "<tree> [ -p <parent> ]*" and is the same as git commit-tree - -# system "echo executing #{ARGV.join(' ')} >> /tmp/log" - -# extract parents -parents=[] -i=2 -while i<ARGV.size do - parents << ARGV[i] - i+=2 -end -parents=parents.uniq - -tree=ARGV[0] - -# is the commit 'c' already an ancestor of any of the commits given in 'commits'? -def subsumed_by(c,commits) - commits.find do |c2| - c!=c2 && c==`git merge-base #{c} #{c2}`.chomp() - end -end - -# only keep commits that are not subsumed by others -# subsumed parents are pointless merge -parents = parents.select do |p| - !subsumed_by(p,parents) -end - -# does any parent has a different tree? -non_empty_commit = parents.find do |p| - tree != `git rev-parse #{p}^{tree}`.chomp() -end - -if non_empty_commit!=nil || parents.size==0 then - # if a commit has non-empty diff, make a commit - args = [] - args << tree - parents.each{ |c| args << "-p"; args << c; } - # system "echo git commit-tree #{args.join(' ')} >> /tmp/log" - exec "git commit-tree #{args.join(' ')}" -else - # system "echo skipping >> /tmp/log" - # otherwise don't create this as a commit - puts parents -end - - |