blob: 9f9d8bd1b37458771bf22fbf42b1284d52f9e9f4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
#! /usr/local/bin/python
"""Remote CVS -- command line interface"""
from cvslib import CVS, File
import md5
import os
import string
import sys
from cmdfw import CommandFrameWork
class MyFile(File):
def update(self):
print self.file, '...'
if self.lsum == self.esum == self.rsum:
print '=', self.file
return
if self.lsum and not self.erev and not self.rrev:
print '?', self.file
return
print 'X', self.file
class RCVS(CVS):
FileClass = MyFile
def __init__(self):
CVS.__init__(self)
def checkfiles(self, files):
if not files:
def ok(file, self=self):
e = self.entries[file]
return e.eseen or e.rseen
files[:] = filter(ok, self.entries.keys())
files.sort()
class rcvs(CommandFrameWork):
GlobalFlags = 'd:h:p:qv'
UsageMessage = \
"usage: rcvs [-d directory] [-h host] [-p port] [-q] [-v] subcommand arg ..."
def __init__(self):
"""Constructor."""
CommandFrameWork.__init__(self)
self.proxy = None
self.cvs = RCVS()
def options(self, opts):
self.opts = opts
def ready(self):
import rcsclient
self.proxy = rcsclient.openrcsclient(self.opts)
self.cvs.setproxy(self.proxy)
self.cvs.getentries()
self.cvs.getlocalfiles()
self.cvs.getremotefiles(self.proxy)
def default(self):
self.cvs.report()
def do_update(self, opts, files):
self.cvs.checkfiles(files)
if not files:
print "no files"
return
for file in files:
if not self.cvs.entries.has_key(file):
print "%s: not found" % file
else:
self.cvs.entries[file].update()
def main():
rcvs().run()
if __name__ == "__main__":
main()
|