]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
implemented 'add' command and commit for added files
authorGuido van Rossum <guido@python.org>
Tue, 18 Jul 1995 18:34:34 +0000 (18:34 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 18 Jul 1995 18:34:34 +0000 (18:34 +0000)
Demo/pdist/rcvs.py

index 46f41a8703120455d78e3d543001242a5ede08ee..f7cdb41a56434d6dc82a54f99223d002d6d7c964 100755 (executable)
@@ -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):