about summary refs log tree commit homepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/PublicInbox/Git.pm18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/PublicInbox/Git.pm b/lib/PublicInbox/Git.pm
index 8a96e10c..236f70c1 100644
--- a/lib/PublicInbox/Git.pm
+++ b/lib/PublicInbox/Git.pm
@@ -312,6 +312,24 @@ sub commit_title ($$) {
         ($$buf =~ /\r?\n\r?\n([^\r\n]+)\r?\n?/)[0]
 }
 
+# returns the modified time of a git repo, same as the "modified" field
+# of a grokmirror manifest
+sub modified ($) {
+        my ($self) = @_;
+        my $modified = 0;
+        my $fh = popen($self, qw(rev-parse --branches));
+        defined $fh or return $modified;
+        local $/ = "\n";
+        foreach my $oid (<$fh>) {
+                chomp $oid;
+                my $buf = cat_file($self, $oid) or next;
+                $$buf =~ /^committer .*?> (\d+) [\+\-]?\d+/sm or next;
+                my $cmt_time = $1;
+                $modified = $cmt_time if $cmt_time > $modified;
+        }
+        $modified || time;
+}
+
 1;
 __END__
 =pod