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

Reply via email to