1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-11-10 06:46:15 +01:00

- do_revert: initial version

This commit is contained in:
Marcus Huewe 2010-08-23 16:15:05 +02:00
parent 7ca255cca0
commit b3d638774c
2 changed files with 31 additions and 0 deletions

View File

@ -5902,6 +5902,24 @@ Please submit there instead, or use --nodevelproject to force direct submission.
else:
print '\'%s\': \'%s\' is set to \'%s\'' % (section, opt, newval)
def do_revert(self, subcmd, opts, *files):
"""${cmd_name}: restore original wc file
Examples:
osc revert <modified file(s)>
Note: this only works for files in a package working copy
${cmd_usage}
${cmd_option_list}
"""
pacs = findpacs(files)
for p in pacs:
if not len(p.todo):
p.todo = p.filenamelist
for f in p.todo:
p.revert(f)
# fini!
###############################################################################

View File

@ -1787,6 +1787,19 @@ rev: %s
if not loop:
raise ValueError("Empty filelist")
def revert(self, filename):
if not filename in self.filenamelist:
raise IOError('file \'%s\' is not under version control' % filename)
if not os.path.exists(os.path.join(self.storedir, filename)):
raise oscerr.PackageInternalError('file \'%s\' is listed in filenamelist but no storefile exists' % filename)
shutil.copyfile(os.path.join(self.storedir, filename), os.path.join(self.absdir, filename))
state = self.status(filename)
if state == 'D':
self.to_be_deleted.remove(filename)
self.write_deletelist()
elif state == 'C':
self.clear_from_conflictlist(filename)
class ReviewState:
"""for objects to represent the review state in a request"""
def __init__(self, state=None, by_user=None, by_group=None, who=None, when=None, comment=None):