summaryrefslogtreecommitdiffstats
path: root/Demo/pdist/rcvs.py
diff options
context:
space:
mode:
Diffstat (limited to 'Demo/pdist/rcvs.py')
-rwxr-xr-xDemo/pdist/rcvs.py62
1 files changed, 57 insertions, 5 deletions
diff --git a/Demo/pdist/rcvs.py b/Demo/pdist/rcvs.py
index 46f41a8..f7cdb41 100755
--- a/Demo/pdist/rcvs.py
+++ b/Demo/pdist/rcvs.py
@@ -8,11 +8,10 @@
# - if the remote file is deleted, "rcvs update" will fail
#
# Functionality:
+# - cvs log
+# - cvs rm
# - descend into directories (alraedy done for update)
-# - cvs add; cvs rm
-# - commit new files
# - conflict resolution
-# - cvs log
# - other relevant commands?
# - branches
#
@@ -191,7 +190,8 @@ class MyFile(File):
def put(self, message = ""):
print "Checking in", self.file, "..."
data = open(self.file).read()
- self.proxy.lock(self.file)
+ if not self.enew:
+ self.proxy.lock(self.file)
messages = self.proxy.put(self.file, data, message)
if messages:
print messages
@@ -204,6 +204,16 @@ class MyFile(File):
f.close()
self.setentry(self.rrev, self.rsum)
+ def add(self):
+ self.eseen = 0 # While we're hacking...
+ self.esum = self.lsum
+ self.emtime, self.ectime = 0, 0
+ self.erev = ''
+ self.enew = 1
+ self.edeleted = 0
+ self.eseen = 1 # Done
+ self.extra = ''
+
def setentry(self, erev, esum):
self.eseen = 0 # While we're hacking...
self.esum = esum
@@ -252,9 +262,11 @@ class RCVS(CVS):
return
if not message:
message = raw_input("One-liner: ")
+ committed = []
for e in list:
+ committed.append(e.file)
e.commit(message)
- self.mailinfo(files, message)
+ self.mailinfo(committed, message)
def mailinfo(self, files, message = ""):
towhom = "sjoerd@cwi.nl, jack@cwi.nl" # XXX
@@ -283,6 +295,25 @@ class RCVS(CVS):
for e in self.whichentries(files):
e.diff(opts)
+ def add(self, files):
+ if not files:
+ 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 whichentries(self, files, localfilestoo = 0):
if files:
list = []
@@ -367,6 +398,9 @@ class rcvs(CommandFrameWork):
def default(self):
self.cvs.report([])
+ def do_report(self, opts, files):
+ self.cvs.report(files)
+
def do_update(self, opts, files):
"""update [-l] [-R] [file] ..."""
local = DEF_LOCAL
@@ -399,6 +433,24 @@ class rcvs(CommandFrameWork):
do_dif = do_diff
flags_dif = flags_diff
+ def do_add(self, opts, files):
+ """add file ..."""
+ if not files:
+ print "'rcvs add' requires at least one file"
+ return
+ self.cvs.add(files)
+ self.cvs.putentries()
+
+ def do_remove(self, opts, files):
+ """remove file ..."""
+ if not files:
+ print "'rcvs remove' requires at least one file"
+ return
+ self.cvs.remove(files)
+ self.cvs.putentries()
+ do_rm = do_remove
+
+
def remove(fn):