Adding weekly tool to help with weekly snippets
This tool displays all checkins by one (or several) authors in the past week (or configurable time), in all dependencies. Only works on git dependencies currently. Review URL: http://codereview.chromium.org/1602020 git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@44612 0039d316-1c4b-4281-b951-d872f2087c98experimental/szager/collated-output
parent
5756466130
commit
f43d019e4c
@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
"""Display log of checkins of one particular developer since a particular
|
||||
date. Only works on git dependencies at the moment."""
|
||||
|
||||
import gclient_utils
|
||||
import optparse
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def show_log(path, authors, since='1 week ago'):
|
||||
"""Display log in a single git repo."""
|
||||
|
||||
author_option = ' '.join(['--author=' + author for author in authors])
|
||||
command = ' '.join(['git log', author_option, '--since="%s"' % since,
|
||||
'origin/master', '| git shortlog'])
|
||||
status = subprocess.Popen(['sh', '-c', command],
|
||||
cwd=path,
|
||||
stdout=subprocess.PIPE).communicate()[0].rstrip()
|
||||
|
||||
if len(status.splitlines()) > 0:
|
||||
print '---------- %s ----------' % path
|
||||
print status
|
||||
|
||||
|
||||
def main():
|
||||
"""Take no arguments."""
|
||||
|
||||
option_parser = optparse.OptionParser()
|
||||
option_parser.add_option("-a", "--author", action="append", default=[])
|
||||
option_parser.add_option("-s", "--since", default="1 week ago")
|
||||
options, args = option_parser.parse_args()
|
||||
|
||||
root, entries = gclient_utils.GetGClientRootAndEntries()
|
||||
|
||||
# which entries map to a git repos?
|
||||
paths = [k for k, v in entries.items() if not re.search('svn', v)]
|
||||
paths.sort()
|
||||
|
||||
for path in paths:
|
||||
dir = os.path.normpath(os.path.join(root, path))
|
||||
show_log(dir, options.author, options.since)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Reference in New Issue