[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [tor/master] Add a perl script to find changes files that have already been merged into release-0.2.2



commit 90f9caf4233c3db87f818d10c6c2b93e4fe398c9
Author: Nick Mathewson <nickm@xxxxxxxxxxxxxx>
Date:   Mon Feb 21 14:22:56 2011 -0500

    Add a perl script to find changes files that have already been merged into release-0.2.2
---
 contrib/findMergedChanges.pl |   46 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/contrib/findMergedChanges.pl b/contrib/findMergedChanges.pl
new file mode 100755
index 0000000..1694716
--- /dev/null
+++ b/contrib/findMergedChanges.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+
+use warnings;
+use strict;
+
+sub nChanges {
+    my ($branches, $fname) = @_;
+    local *F;
+    # requires perl 5.8.  Avoids shell issues if we ever get a changes
+    # file named by the parents of Little Johnny Tables.
+    open F, "-|", "git", "log", "--pretty=format:%H", $branches, "--", $fname
+	or die "$!";
+    my @changes = <F>;
+    return scalar @changes
+}
+
+my $look_for_type = "merged";
+
+while (@ARGV and $ARGV[0] =~ /^--/) {
+    my $flag = shift @ARGV;
+    if ($flag =~ /^--(weird|merged|unmerged|list)/) {
+	$look_for_type = $1;
+    } else {
+	die "Unrecognized flag $flag";
+    }
+}
+
+for my $changefile (@ARGV) {
+    my $n_merged = nChanges("origin/release-0.2.2", $changefile);
+    my $n_postmerged = nChanges("origin/release-0.2.2..origin/master", $changefile);
+    my $type;
+
+    if ($n_merged != 0 and $n_postmerged == 0) {
+	$type = "merged";
+    } elsif ($n_merged == 0 and $n_postmerged != 0) {
+	$type = "unmerged";
+    } else {
+	$type = "weird";
+    }
+
+    if ($type eq $look_for_type) {
+	print "$changefile\n";
+    } elsif ($look_for_type eq 'list') {
+	printf "% 8s: %s\n", $type, $changefile;
+    }
+}

_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits