From 44cacd6b1cee00c3326d28bffdf18df0356b7204 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 14 Jan 2017 20:34:23 -0500 Subject: Make them my own. --- parent-prune-empty-merge | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100755 parent-prune-empty-merge (limited to 'parent-prune-empty-merge') diff --git a/parent-prune-empty-merge b/parent-prune-empty-merge new file mode 100755 index 0000000..10e9fb8 --- /dev/null +++ b/parent-prune-empty-merge @@ -0,0 +1,20 @@ +#!/usr/bin/env ruby +# Usage: git filter-branch -f --parent-filter ~/git-filters/parent-prune-empty-merge HEAD + +# Function to determine if commit 'c' already an ancestor of any of +# the commits given in 'commits' +def subsumed_by(c,commits) + commits.any? do |c2| + c!=c2 && c==`git merge-base #{c} #{c2}`.chomp() + end +end + +# Get the current list of parents +parents = $stdin.read.split.select{|a|a!='-p'} + +# Pnly keep parents that are not subsumed by other parents. +parents = parents.select do |p| + not subsumed_by(p,parents) +end + +puts parents.uniq.map{|p|"-p #{p}"}.join(' ') -- cgit v1.2.3