Adapt Doc and MetaTools to the use of SVN instead of CVS

git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@565 4cde692c-a291-49d1-8350-778aa11640f8
This commit is contained in:
pabs3 2009-03-22 15:32:29 +00:00
parent 7e91e776c9
commit 005f59e389
5 changed files with 7 additions and 2257 deletions

File diff suppressed because it is too large Load Diff

View File

@ -68,9 +68,9 @@ If you want to follow the development of FontTools closely, or would like to
contribute, you can also subscribe to the fonttools-checkins mailing list.
Anonymous CVS-access
Anonymous SVN-access
The FontTools sources are also accessible through CVS, see:
The FontTools sources are also accessible through SVN, see:
http://sourceforge.net/projects/fonttools/
Let me know if you'd like to become a co-developer.

View File

@ -6,5 +6,5 @@ fontToolsDir = os.path.dirname(os.path.dirname(os.path.normpath(
os.path.join(os.getcwd(), sys.argv[0]))))
os.chdir(fontToolsDir)
os.system("cvs log | ./MetaTools/logmerge.py > Doc/ChangeLog.txt")
os.system("svn2cl -o Doc/ChangeLog https://fonttools.svn.sourceforge.net/svnroot/fonttools/trunk")
print "done."

View File

@ -1,135 +0,0 @@
#! /usr/bin/env python
"""Consolidate a bunch of CVS or RCS logs read from stdin.
Input should be the output of a CVS or RCS logging command, e.g.
cvs log -rrelease14:
which dumps all log messages from release1.4 upwards (assuming that
release 1.4 was tagged with tag 'release14'). Note the trailing
colon!
This collects all the revision records and outputs them sorted by date
rather than by file, collapsing duplicate revision record, i.e.,
records with the same message for different files.
The -t option causes it to truncate (discard) the last revision log
entry; this is useful when using something like the above cvs log
command, which shows the revisions including the given tag, while you
probably want everything *since* that tag.
XXX This code was created by reverse engineering CVS 1.9 and RCS 5.7
from their output.
"""
import os, sys, getopt, string, re
sep1 = '='*77 + '\n' # file separator
sep2 = '-'*28 + '\n' # revision separator
def main():
"""Main program"""
truncate_last = 0
reverse = 0
opts, args = getopt.getopt(sys.argv[1:], "tr")
for o, a in opts:
if o == '-t':
truncate_last = 1
elif o == '-r':
reverse = 1
database = []
while 1:
chunk = read_chunk(sys.stdin)
if not chunk:
break
records = digest_chunk(chunk)
if truncate_last:
del records[-1]
database[len(database):] = records
database.sort()
if not reverse:
database.reverse()
format_output(database)
def read_chunk(fp):
"""Read a chunk -- data for one file, ending with sep1.
Split the chunk in parts separated by sep2.
"""
chunk = []
lines = []
while 1:
line = fp.readline()
if not line:
break
if line == sep1:
if lines:
chunk.append(lines)
break
if line == sep2:
if lines:
chunk.append(lines)
lines = []
else:
lines.append(line)
return chunk
def digest_chunk(chunk):
"""Digest a chunk -- extrach working file name and revisions"""
lines = chunk[0]
key = 'Working file:'
keylen = len(key)
for line in lines:
if line[:keylen] == key:
working_file = string.strip(line[keylen:])
break
else:
working_file = None
records = []
for lines in chunk[1:]:
revline = lines[0]
dateline = lines[1]
text = lines[2:]
words = string.split(dateline)
author = None
if len(words) >= 3 and words[0] == 'date:':
dateword = words[1]
timeword = words[2]
if timeword[-1:] == ';':
timeword = timeword[:-1]
date = dateword + ' ' + timeword
if len(words) >= 5 and words[3] == 'author:':
author = words[4]
if author[-1:] == ';':
author = author[:-1]
else:
date = None
text.insert(0, revline)
words = string.split(revline)
if len(words) >= 2 and words[0] == 'revision':
rev = words[1]
else:
rev = None
text.insert(0, revline)
records.append((date, working_file, rev, author, text))
return records
def format_output(database):
prevtext = None
prev = []
database.append((None, None, None, None, None)) # Sentinel
for (date, working_file, rev, author, text) in database:
if text != prevtext:
if prev:
print sep2,
for (p_date, p_working_file, p_rev, p_author) in prev:
print p_date, p_author, p_working_file, p_rev
sys.stdout.writelines(prevtext)
prev = []
prev.append((date, working_file, rev, author))
prevtext = text
main()

View File

@ -15,8 +15,8 @@ APPROACH I: Using py2exe and InnoSetup
3. Install InnoSetup 4: http://www.jrsoftware.org/
4. Download the latest released source code of TTX/FontTools at
http://sourceforge.net/projects/fonttools/
Or alternatively grab the sources from CVS or download a CVS snapshot:
http://fonttools.sourceforge.net/cvs-snapshots/zip/fonttools-current-snapshot.zip
Or alternatively grab the sources from SVN:
http://fonttools.sourceforge.net/
5. Unzip the source code of TTX/FontTools into a folder.
6. In the folder where you unzipped TTX/FontTools, type:
python setup.py py2exe -f --icon Windows\ttx.ico --packages encodings
@ -36,8 +36,8 @@ APPROACH II: Using McMillan Installer and InnoSetup
5. Put UPX somewhere within your PATH: http://upx.sourceforge.net/
6. Download the latest released source code of TTX/FontTools at
http://sourceforge.net/projects/fonttools/
Or alternatively grab the sources from CVS or download a CVS snapshot:
http://fonttools.sourceforge.net/cvs-snapshots/zip/fonttools-current-snapshot.zip
Or alternatively grab the sources from SVN:
http://fonttools.sourceforge.net/
7. Unzip the source code of TTX/FontTools into a folder.
8. In the folder where you unzipped TTX/FontTools, type:
python setup.py install -f