tips:gource_analysis
This is an old revision of the document!
I am fond of the wonderful videos made with Gource. This tool makes a representation of changes made on a version control system like git or SVN. Then I remember that DokuWiki is also a version control system like any other … Just have a look in the folder tree to find the directory dokuwiki/data/meta in which the files *. changes contain exactly the information needed.
More information on this blog (french version) or a translate version on this blog.
I wrote a small python script to generate logs from .changes files that can be used by Gource :
#!/bin/python """ This program parse logs of a dokuwiki and tranform them for gource (a log viewer) http://code.google.com/p/gource/ developped by WolverineX02 site : http://wolverinex02.blogspot.com """ import os.path import getopt import sys import re def listdirectory2(path): """list all the files like *.changes, read them and output them in gource's log syntax """ for root, dirs, files in os.walk(path): for i in files: if (re.search('\.changes$', i)): fichier = os.path.join(root, i) myfile = open(fichier, 'r') for line in myfile.readlines(): mots = line.split() if len(mots)>=5: resultat = mots[0] + "|" resultat += mots[5] + "|" resultat += translate(mots[2]) + "|" resultat += fichier print resultat elif len(mots)==4: resultat = mots[0] + "|Anonymous|" resultat += translate(mots[2]) + "|" resultat += fichier print resultat myfile.close() def translate(mot): """translate the dokuwiki vocabulary to the gource one C -> A E -> M other -> M """ if mot == "C": return "A" elif mot == "E": return "M" else: return "M" def main(argv): """principal function """ try: opts, args = getopt.getopt(argv, "hd:", ["help", "dokuwiki="]) except getopt.GetoptError: usage() sys.exit(2) for opt, arg in opts: if opt in ("-h","--help"): usage() sys.exit() elif opt in ("-d","--dokuwiki"): print listdirectory2(arg) def usage(): """this function will display how to use this script """ print "This script will output change logs of a dokuwiki" print "in a friendly way for gource" print "how to use it :" print "python gourcedoku.py -d ~/Sites/MyDokuwiki/ | sort > dokusort.log" print "and then :" print "gource --log-format custom dokusort.log --stop-position 1.0 \ " print "--stop-on-idle --file-idle-time 10000000" print "---" print "-h : help " print "-d : meta directory of your dokuwiki" if __name__ == "__main__": main(sys.argv[1:])
launch the script inside your dokuwiki directory :
python gourcedoku.py -d ~/Sites/MyDokuwiki/ | sort > dokusort.log
then you can use Gource to watch logs :
gource --log-format custom dokusort.log --stop-position 1.0 --stop-on-idle --file-idle-time 10000000
tips/gource_analysis.1274019503.txt.gz · Last modified: 2010-05-16 16:18 by 79.85.106.47