@@ -146,6 +146,7 @@ def commit(self, message = ""):
146146 code = self .action ()
147147 if code in ('A' , 'M' ):
148148 self .put (message )
149+ return 1
149150 elif code == 'R' :
150151 print "%s: committing removes not yet implemented" % \
151152 self .file
@@ -204,6 +205,9 @@ def get(self):
204205 f .close ()
205206 self .setentry (self .rrev , self .rsum )
206207
208+ def log (self , otherflags ):
209+ print self .proxy .log (self .file , otherflags )
210+
207211 def add (self ):
208212 self .eseen = 0 # While we're hacking...
209213 self .esum = self .lsum
@@ -264,8 +268,8 @@ def commit(self, files, message = ""):
264268 message = raw_input ("One-liner: " )
265269 committed = []
266270 for e in list :
267- committed . append ( e . file )
268- e . commit ( message )
271+ if e . commit ( message ):
272+ committed . append ( e . file )
269273 self .mailinfo (committed , message )
270274
271275 def mailinfo (self , files , message = "" ):
@@ -300,20 +304,20 @@ def add(self, files):
300304 raise RuntimeError , "'cvs add' needs at least one file"
301305 list = []
302306 for e in self .whichentries (files , 1 ):
303- code = e .action ()
304- print code , e .file
305- e .report ()
306307 e .add ()
307- code = e .action ()
308- print code , e .file
309- e .report ()
310- print '=' * 20
311308
312309 def rm (self , files ):
313310 if not files :
314311 raise RuntimeError , "'cvs rm' needs at least one file"
315312 raise RuntimeError , "'cvs rm' not yet imlemented"
316313
314+ def log (self , files , opts ):
315+ flags = ''
316+ for o , a in opts :
317+ flags = flags + ' ' + o + a
318+ for e in self .whichentries (files ):
319+ e .log (flags )
320+
317321 def whichentries (self , files , localfilestoo = 0 ):
318322 if files :
319323 list = []
@@ -360,11 +364,14 @@ def __init__(self):
360364 CommandFrameWork .__init__ (self )
361365 self .proxy = None
362366 self .cvs = RCVS ()
363-
364- def recurse (self ):
367+
368+ def close (self ):
365369 if self .proxy :
366370 self .proxy ._close ()
367371 self .proxy = None
372+
373+ def recurse (self ):
374+ self .close ()
368375 names = os .listdir (os .curdir )
369376 for name in names :
370377 if name == os .curdir or name == os .pardir :
@@ -450,7 +457,10 @@ def do_remove(self, opts, files):
450457 self .cvs .putentries ()
451458 do_rm = do_remove
452459
453-
460+ def do_log (self , opts , files ):
461+ """log [rlog-options] [file] ..."""
462+ self .cvs .log (files , opts )
463+ flags_log = 'bhLNRtd:s:V:'
454464
455465
456466def remove (fn ):
@@ -461,7 +471,11 @@ def remove(fn):
461471
462472
463473def main ():
464- rcvs ().run ()
474+ r = rcvs ()
475+ try :
476+ r .run ()
477+ finally :
478+ r .close ()
465479
466480
467481if __name__ == "__main__" :
0 commit comments