Tadaaaa ! An experimental git repository is now in place, see http://git.freetype.org
Note that: - this was created by taking a snapshot of the current CVS repository; running git-cvsimport on it then 'git-filter-branch --msg-filter' with the attached (basic) script to improve the commit messages a bit. (It's still not perfect, could be improved in the future) - read-only access :-) - there is *no* git <=> CVS bridge at the moment, I'm still trying to get the exact details on how to properly set this up. There is no point to provide write access until this is solved. - this runs on my home Zonbu box behind my DSL router; so don't expect any kind of scalability at the moment; it's really an experimental setup to show what's possible in a few hours. - gitosis / git-daemon / gitweb are nice, but oh my, they are so badly documented that it's hard to avoid many pitfalls. I'll try to document them later. - We will probably want to move this to a real server in the future. For now consider this as an experiment. I'm probably going to scrap it and start another one from scratch with a better commit message rewriter. I've given up rewriting the CVS messages themselves. I will warn before doing so, or create a different branch. Comments and opinions welcome. 2009/2/23 Keith Packard <kei...@keithp.com> > On Mon, 2009-02-23 at 19:25 +0100, Werner LEMBERG wrote: > > > Well, a direct import is trivial; however, it would be beneficial to > > walk over, say, the last 1000 to 2000 commits so that all get a nice > > one-line title. > > My 'parsecvs' tool will probably handle freetype's CVS repository fairly > well. It's not easy to use, but was used to convert X.org's repositories > where other tools failed due to the fairly complex (and often broken) > history. > > It requires direct access to the CVS source repository; if you'd like me > to give this a try, let me know. > > -- > keith.pack...@intel.com >
#!/usr/bin/python # # This script is used to convert the FreeType commit messages # to a simpler one-liner format. # # What we want to do here is to essentially replace messages that # look like the following: # # * path1/file1.c (some_function), path2/file2.c, # path3/file3.c: THE REAL COMMIT MESSAGE THAT CAN # SPAN SEVERAL LINES # # by: # # THE REAL COMMIT MESSAGE THAT CAN SPAN SEVERAL LINES # * path1/file1.c ... : THE REAL COMMIT MESSAGE ... etc # # not totally elegant, but gets the job done :-) # import sys, os, string, re lines = [] lineStart = True lineCurrent = "" re_sourcePath = re.compile(r"\s*([A-Za-z_][A-Za-z0-9_/.]*)\s*(.*)") re_functionName = re.compile(r"\([^)]*\)\s+(.*)") # read lines from stdin and create paragraphs into "lines" for line in sys.stdin.readlines(): # strip trailing LN line = string.strip(line) if len(line) > 0 and line[-1] == '\n': line=line[:-1] if len(line) == 0: if not lineStart: lineStart = True lines.append(lineCurrent) lineCurrent = "" else: if not lineStart: lineCurrent += " " lineCurrent += line lineStart = False if not lineStart: lines.append(lineCurrent) # now, check whether the first paragraph begins with an asterisk lines2=[] for line in lines[0:1]: firstLine = line[:] if firstLine[0] == '*': # find the location of the column index = firstLine.rfind(':') if index > 0: firstLine = string.strip(firstLine[index+1:]) lines2.append(firstLine) lines2.append(line) for line in lines2: print line
_______________________________________________ Freetype-devel mailing list Freetype-devel@nongnu.org http://lists.nongnu.org/mailman/listinfo/freetype-devel