author | Matt Mackall <mpm@selenic.com> |
Fri, 27 Jun 2008 18:28:45 -0500 | |
changeset 6762 | f67d1468ac50 |
parent 6689 | d2ac53fe216e |
permissions | -rw-r--r-- |
6689
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
1 |
#!/usr/bin/env python |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
2 |
# |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
3 |
# Commandline front-end for cvsps.py |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
4 |
# |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
5 |
# Copyright 2008, Frank Kingswood <frank@kingswood-consulting.co.uk> |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
6 |
# |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
7 |
# This software may be used and distributed according to the terms |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
8 |
# of the GNU General Public License, incorporated herein by reference. |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
9 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
10 |
import sys |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
11 |
from mercurial import util |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
12 |
from mercurial.i18n import _ |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
13 |
from optparse import OptionParser, SUPPRESS_HELP |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
14 |
from hgext.convert.cvsps import createlog, createchangeset, logerror |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
15 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
16 |
def main(): |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
17 |
'''Main program to mimic cvsps.''' |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
18 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
19 |
op = OptionParser(usage='%prog [-bpruvxz] path', |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
20 |
description='Read CVS rlog for current directory or named ' |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
21 |
'path in repository, and convert the log to changesets ' |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
22 |
'based on matching commit log entries and dates.') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
23 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
24 |
# Options that are ignored for compatibility with cvsps-2.1 |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
25 |
op.add_option('-A', dest='Ignore', action='store_true', help=SUPPRESS_HELP) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
26 |
op.add_option('--cvs-direct', dest='Ignore', action='store_true', help=SUPPRESS_HELP) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
27 |
op.add_option('-q', dest='Ignore', action='store_true', help=SUPPRESS_HELP) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
28 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
29 |
# Main options shared with cvsps-2.1 |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
30 |
op.add_option('-b', dest='Branches', action='append', default=[], |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
31 |
help='Only return changes on specified branches') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
32 |
op.add_option('-p', dest='Prefix', action='store', default='', |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
33 |
help='Prefix to remove from file names') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
34 |
op.add_option('-r', dest='Revisions', action='append', default=[], |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
35 |
help='Only return changes after or between specified tags') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
36 |
op.add_option('-u', dest='Cache', action='store_const', const='update', |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
37 |
help="Update cvs log cache") |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
38 |
op.add_option('-v', dest='Verbose', action='count', default=0, |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
39 |
help='Be verbose') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
40 |
op.add_option('-x', dest='Cache', action='store_const', const='write', |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
41 |
help="Create new cvs log cache") |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
42 |
op.add_option('-z', dest='Fuzz', action='store', type='int', default=60, |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
43 |
help='Set commit time fuzz', metavar='seconds') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
44 |
op.add_option('--root', dest='Root', action='store', default='', |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
45 |
help='Specify cvsroot', metavar='cvsroot') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
46 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
47 |
# Options specific to this version |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
48 |
op.add_option('--parents', dest='Parents', action='store_true', |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
49 |
help='Show parent changesets') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
50 |
op.add_option('--ancestors', dest='Ancestors', action='store_true', |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
51 |
help='Show current changeset in ancestor branches') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
52 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
53 |
options, args = op.parse_args() |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
54 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
55 |
# Create a ui object for printing progress messages |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
56 |
class UI: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
57 |
def __init__(self, verbose): |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
58 |
if verbose: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
59 |
self.status = self.message |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
60 |
if verbose>1: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
61 |
self.note = self.message |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
62 |
if verbose>2: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
63 |
self.debug = self.message |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
64 |
def message(self, msg): |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
65 |
sys.stderr.write(msg) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
66 |
def nomessage(self, msg): |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
67 |
pass |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
68 |
status = nomessage |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
69 |
note = nomessage |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
70 |
debug = nomessage |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
71 |
ui = UI(options.Verbose) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
72 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
73 |
try: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
74 |
if args: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
75 |
log = [] |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
76 |
for d in args: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
77 |
log += createlog(ui, d, root=options.Root, cache=options.Cache) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
78 |
else: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
79 |
log = createlog(ui, root=options.Root, cache=options.Cache) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
80 |
except logerror, e: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
81 |
print e |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
82 |
return |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
83 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
84 |
changesets = createchangeset(ui, log, options.Fuzz) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
85 |
del log |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
86 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
87 |
# Print changesets (optionally filtered) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
88 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
89 |
off = len(options.Revisions) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
90 |
branches = {} # latest version number in each branch |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
91 |
ancestors = {} # parent branch |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
92 |
for cs in changesets: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
93 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
94 |
if options.Ancestors: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
95 |
if cs.branch not in branches and cs.parents and cs.parents[0].id: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
96 |
ancestors[cs.branch] = changesets[cs.parents[0].id-1].branch, cs.parents[0].id |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
97 |
branches[cs.branch] = cs.id |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
98 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
99 |
# limit by branches |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
100 |
if options.Branches and (cs.branch or 'HEAD') not in options.Branches: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
101 |
continue |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
102 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
103 |
if not off: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
104 |
# Note: trailing spaces on several lines here are needed to have |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
105 |
# bug-for-bug compatibility with cvsps. |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
106 |
print '---------------------' |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
107 |
print 'PatchSet %d ' % cs.id |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
108 |
print 'Date: %s' % util.datestr(cs.date, '%Y/%m/%d %H:%M:%S %1%2') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
109 |
print 'Author: %s' % cs.author |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
110 |
print 'Branch: %s' % (cs.branch or 'HEAD') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
111 |
print 'Tag%s: %s ' % (['', 's'][len(cs.tags)>1], |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
112 |
','.join(cs.tags) or '(none)') |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
113 |
if options.Parents and cs.parents: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
114 |
if len(cs.parents)>1: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
115 |
print 'Parents: %s' % (','.join([str(p.id) for p in cs.parents])) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
116 |
else: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
117 |
print 'Parent: %d' % cs.parents[0].id |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
118 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
119 |
if options.Ancestors: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
120 |
b = cs.branch |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
121 |
r = [] |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
122 |
while b: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
123 |
b, c = ancestors[b] |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
124 |
r.append('%s:%d:%d' % (b or "HEAD", c, branches[b])) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
125 |
if r: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
126 |
print 'Ancestors: %s' % (','.join(r)) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
127 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
128 |
print 'Log:' |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
129 |
print cs.comment |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
130 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
131 |
print 'Members: ' |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
132 |
for f in cs.entries: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
133 |
fn = f.file |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
134 |
if fn.startswith(options.Prefix): |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
135 |
fn = fn[len(options.Prefix):] |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
136 |
print '\t%s:%s->%s%s ' % (fn, '.'.join([str(x) for x in f.parent]) or 'INITIAL', |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
137 |
'.'.join([str(x) for x in f.revision]), ['', '(DEAD)'][f.dead]) |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
138 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
139 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
140 |
# have we seen the start tag? |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
141 |
if options.Revisions and off: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
142 |
if options.Revisions[0] == str(cs.id) or \ |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
143 |
options.Revisions[0] in cs.tags: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
144 |
off = False |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
145 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
146 |
# see if we reached the end tag |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
147 |
if len(options.Revisions)>1 and not off: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
148 |
if options.Revisions[1] == str(cs.id) or \ |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
149 |
options.Revisions[1] in cs.tags: |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
150 |
break |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
151 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
152 |
|
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
153 |
if __name__ == '__main__': |
d2ac53fe216e
convert: cvsps - User interface to CVS changeset code in cvsps.py
Frank Kingswood <frank@kingswood-consulting.co.uk>
parents:
diff
changeset
|
154 |
main() |