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 <[email protected]>
> 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.
>
> --
> [email protected]
>
#!/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
[email protected]
http://lists.nongnu.org/mailman/listinfo/freetype-devel