summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xDemo/pdist/rcvs.py40
1 files changed, 27 insertions, 13 deletions
diff --git a/Demo/pdist/rcvs.py b/Demo/pdist/rcvs.py
index f7cdb41..5a05382 100755
--- a/Demo/pdist/rcvs.py
+++ b/Demo/pdist/rcvs.py
@@ -146,6 +146,7 @@ class MyFile(File):
code = self.action()
if code in ('A', 'M'):
self.put(message)
+ return 1
elif code == 'R':
print "%s: committing removes not yet implemented" % \
self.file
@@ -204,6 +205,9 @@ class MyFile(File):
f.close()
self.setentry(self.rrev, self.rsum)
+ def log(self, otherflags):
+ print self.proxy.log(self.file, otherflags)
+
def add(self):
self.eseen = 0 # While we're hacking...
self.esum = self.lsum
@@ -264,8 +268,8 @@ class RCVS(CVS):
message = raw_input("One-liner: ")
committed = []
for e in list:
- committed.append(e.file)
- e.commit(message)
+ if e.commit(message):
+ committed.append(e.file)
self.mailinfo(committed, message)
def mailinfo(self, files, message = ""):
@@ -300,20 +304,20 @@ class RCVS(CVS):
raise RuntimeError, "'cvs add' needs at least one file"
list = []
for e in self.whichentries(files, 1):
- code = e.action()
- print code, e.file
- e.report()
e.add()
- code = e.action()
- print code, e.file
- e.report()
- print '='*20
def rm(self, files):
if not files:
raise RuntimeError, "'cvs rm' needs at least one file"
raise RuntimeError, "'cvs rm' not yet imlemented"
+ def log(self, files, opts):
+ flags = ''
+ for o, a in opts:
+ flags = flags + ' ' + o + a
+ for e in self.whichentries(files):
+ e.log(flags)
+
def whichentries(self, files, localfilestoo = 0):
if files:
list = []
@@ -360,11 +364,14 @@ class rcvs(CommandFrameWork):
CommandFrameWork.__init__(self)
self.proxy = None
self.cvs = RCVS()
-
- def recurse(self):
+
+ def close(self):
if self.proxy:
self.proxy._close()
self.proxy = None
+
+ def recurse(self):
+ self.close()
names = os.listdir(os.curdir)
for name in names:
if name == os.curdir or name == os.pardir:
@@ -450,7 +457,10 @@ class rcvs(CommandFrameWork):
self.cvs.putentries()
do_rm = do_remove
-
+ def do_log(self, opts, files):
+ """log [rlog-options] [file] ..."""
+ self.cvs.log(files, opts)
+ flags_log = 'bhLNRtd:s:V:'
def remove(fn):
@@ -461,7 +471,11 @@ def remove(fn):
def main():
- rcvs().run()
+ r = rcvs()
+ try:
+ r.run()
+ finally:
+ r.close()
if __name__ == "__main__":