]> xenbits.xensource.com Git - people/larsk/xenproject-org-gitdm.git/commitdiff
Add findoldfiles
authorJonathan Corbet <corbet@lwn.net>
Wed, 17 Feb 2010 15:29:40 +0000 (08:29 -0700)
committerJonathan Corbet <corbet@lwn.net>
Wed, 17 Feb 2010 15:29:40 +0000 (08:29 -0700)
YA brutal hack; this one crawls the tree and prints out files which have
not been touched since the original commit.

Signed-off-by: Jonathan Corbet <corbet@lwn.net>
findoldfiles [new file with mode: 0755]
linetags [deleted file]

diff --git a/findoldfiles b/findoldfiles
new file mode 100755 (executable)
index 0000000..fdf2ba1
--- /dev/null
@@ -0,0 +1,27 @@
+#!/usr/bin/python
+#
+# Another quick hack of a script to find files unchanged
+# since a given commit.
+#
+import sys, os
+
+OriginalSin = '1da177e4c3f41524e886b7f1b8a0c1fc7321cac2'
+
+def CheckFile(file):
+    git = os.popen('git log --pretty=oneline -1 ' + file, 'r')
+    line = git.readline()
+    if line.startswith(OriginalSin):
+        print file
+    git.close()
+#
+# Here we just plow through all the files.
+#
+if len(sys.argv) != 2:
+    sys.stderr.write('Usage: findoldfiles directory\n')
+    sys.exit(1)
+
+os.chdir(sys.argv[1])
+files = os.popen('/usr/bin/find . -type f', 'r')
+for file in files.readlines():
+    if file.find('.git/') < 0:
+        CheckFile(file[:-1])
diff --git a/linetags b/linetags
deleted file mode 100755 (executable)
index 767e399..0000000
--- a/linetags
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/python
-#
-# Find out how many lines were introduced in each major release.
-#
-# linetags <directory>
-#
-import sys, re, os, pickle
-
-CommitLines = { }
-
-commitpat = re.compile(r'^([\da-f][\da-f]+) ')
-
-def GetCommitLines(file):
-    print file
-    blame = os.popen('git blame -p ' + file, 'r')
-    for line in blame.readlines():
-        m = commitpat.search(line)
-        #
-        # All-zero commits mean we got fed a file that git doesn't
-        # know about.  We could throw an exception and abort processing
-        # now, or we can just silently ignore it...
-        #
-        if not m or m.group(1) == '0000000000000000000000000000000000000000':
-            continue
-        try:
-            CommitLines[m.group(1)] += 1
-        except KeyError:
-            CommitLines[m.group(1)] = 1
-    blame.close()
-
-#
-# Try to figure out which tag is the first to contain each commit.
-#
-refpat = re.compile(r'^(v2\.6\.\d\d).*$')
-def CommitToTag(commit):
-    try:
-        return DB[commit]
-    except KeyError:
-        print 'Missing commit %s' % (commit)
-        return 'WTF?'
-
-TagLines = { }
-def MapCommits():
-    print 'Mapping tags...'
-    for commit in CommitLines.keys():
-        tag = CommitToTag(commit)
-        try:
-            TagLines[tag] += CommitLines[commit]
-        except KeyError:
-            TagLines[tag] = CommitLines[commit]
-
-#
-# Here we just plow through all the files.
-#
-if len(sys.argv) != 2:
-    sys.stderr.write('Usage: linetags directory\n')
-    sys.exit(1)
-#
-# Grab the tags/version database.
-#
-dbf = open('committags.db', 'r')
-DB = pickle.load(dbf)
-dbf.close()
-
-out = open('linetags.out', 'w')
-os.chdir(sys.argv[1])
-files = os.popen('/usr/bin/find . -type f', 'r')
-for file in files.readlines():
-    if file.find('.git/') < 0:
-        GetCommitLines(file[:-1])
-MapCommits()
-# print TagLines
-tags = TagLines.keys()
-tags.sort()
-for tag in tags:
-    out.write('%s %d\n' % (tag, TagLines[tag]))
-out.close()