Commit a79f5a32 authored by Guido van Rossum's avatar Guido van Rossum

implemented 'add' command and commit for added files

parent cf1025ba
...@@ -8,11 +8,10 @@ ...@@ -8,11 +8,10 @@
# - if the remote file is deleted, "rcvs update" will fail # - if the remote file is deleted, "rcvs update" will fail
# #
# Functionality: # Functionality:
# - cvs log
# - cvs rm
# - descend into directories (alraedy done for update) # - descend into directories (alraedy done for update)
# - cvs add; cvs rm
# - commit new files
# - conflict resolution # - conflict resolution
# - cvs log
# - other relevant commands? # - other relevant commands?
# - branches # - branches
# #
...@@ -191,6 +190,7 @@ class MyFile(File): ...@@ -191,6 +190,7 @@ class MyFile(File):
def put(self, message = ""): def put(self, message = ""):
print "Checking in", self.file, "..." print "Checking in", self.file, "..."
data = open(self.file).read() data = open(self.file).read()
if not self.enew:
self.proxy.lock(self.file) self.proxy.lock(self.file)
messages = self.proxy.put(self.file, data, message) messages = self.proxy.put(self.file, data, message)
if messages: if messages:
...@@ -204,6 +204,16 @@ class MyFile(File): ...@@ -204,6 +204,16 @@ class MyFile(File):
f.close() f.close()
self.setentry(self.rrev, self.rsum) 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): def setentry(self, erev, esum):
self.eseen = 0 # While we're hacking... self.eseen = 0 # While we're hacking...
self.esum = esum self.esum = esum
...@@ -252,9 +262,11 @@ class RCVS(CVS): ...@@ -252,9 +262,11 @@ class RCVS(CVS):
return return
if not message: if not message:
message = raw_input("One-liner: ") message = raw_input("One-liner: ")
committed = []
for e in list: for e in list:
committed.append(e.file)
e.commit(message) e.commit(message)
self.mailinfo(files, message) self.mailinfo(committed, message)
def mailinfo(self, files, message = ""): def mailinfo(self, files, message = ""):
towhom = "sjoerd@cwi.nl, jack@cwi.nl" # XXX towhom = "sjoerd@cwi.nl, jack@cwi.nl" # XXX
...@@ -283,6 +295,25 @@ class RCVS(CVS): ...@@ -283,6 +295,25 @@ class RCVS(CVS):
for e in self.whichentries(files): for e in self.whichentries(files):
e.diff(opts) 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): def whichentries(self, files, localfilestoo = 0):
if files: if files:
list = [] list = []
...@@ -367,6 +398,9 @@ class rcvs(CommandFrameWork): ...@@ -367,6 +398,9 @@ class rcvs(CommandFrameWork):
def default(self): def default(self):
self.cvs.report([]) self.cvs.report([])
def do_report(self, opts, files):
self.cvs.report(files)
def do_update(self, opts, files): def do_update(self, opts, files):
"""update [-l] [-R] [file] ...""" """update [-l] [-R] [file] ..."""
local = DEF_LOCAL local = DEF_LOCAL
...@@ -399,6 +433,24 @@ class rcvs(CommandFrameWork): ...@@ -399,6 +433,24 @@ class rcvs(CommandFrameWork):
do_dif = do_diff do_dif = do_diff
flags_dif = flags_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): def remove(fn):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment