1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-01-13 17:16:23 +01:00

- renamed log command to buildlog (short: bl)

- implementing a provisionary log command for the commit log
- commit: implemented -m option for the commit message
- commit files together, if (and only if) do_commits = 1 is set in the 
  [general] section of .oscrc
This commit is contained in:
Dr. Peter Poeml 2007-07-11 23:24:26 +00:00
parent abdbb7c11e
commit 7e98ecb0cb
2 changed files with 55 additions and 4 deletions

View File

@ -708,6 +708,8 @@ class Osc(cmdln.Cmdln):
@cmdln.alias('ci')
@cmdln.alias('checkin')
@cmdln.option('-m', '--message', metavar='TEXT',
help='specify log message TEXT')
def do_commit(self, subcmd, opts, *args):
"""${cmd_name}: Upload content to the repository server
@ -759,8 +761,9 @@ class Osc(cmdln.Cmdln):
for filename in p.todo_delete:
p.delete_source_file(filename)
p.to_be_deleted.remove(filename)
if conf.config['do_commits'] == '1':
p.commit(msg='MESSAGE')
if conf.config['do_commits']:
print '[committing]'
p.commit(msg=opts.message)
p.update_filesmeta()
p.write_deletelist()
@ -1048,7 +1051,8 @@ class Osc(cmdln.Cmdln):
print '\n'.join(get_prj_results(apiurl, project, show_legend=opts.legend))
def do_log(self, subcmd, opts, platform, arch):
@cmdln.alias('bl')
def do_buildlog(self, subcmd, opts, platform, arch):
"""${cmd_name}: Shows the build log of a package
Shows the log file of the build of a package. Can be used to follow the
@ -1306,6 +1310,21 @@ class Osc(cmdln.Cmdln):
print '\n'.join(get_buildhistory(apiurl, project, package, platform, arch))
def do_log(self, subcmd, opts):
"""${cmd_name}: Shows the commit log of a package
${cmd_usage}
${cmd_option_list}
"""
wd = os.curdir
package = store_read_package(wd)
project = store_read_project(wd)
apiurl = store_read_apiurl(wd)
print '\n'.join(get_commitlog(apiurl, project, package))
@cmdln.option('-f', '--failed', action='store_true',
help='rebuild all failed packages')
def do_rebuildpac(self, subcmd, opts, *args):

View File

@ -312,7 +312,7 @@ class Package:
# escaping '+' in the URL path (note: not in the URL query string) is
# only a workaround for ruby on rails, which swallows it otherwise
query = []
if conf.config['do_commits'] == '1':
if conf.config['do_commits']:
query.append('rev=upload')
u = makeurl(self.apiurl, ['source', self.prjname, self.name, pathname2url(n)], query=query)
http_PUT(u, file = os.path.join(self.dir, n))
@ -1501,6 +1501,37 @@ def get_buildhistory(apiurl, prj, package, platform, arch):
return r
def get_commitlog(apiurl, prj, package):
import time
u = makeurl(apiurl, ['source', prj, package, '_history'])
f = http_GET(u)
root = ET.parse(f).getroot()
r = []
revisions = root.findall('revision')
revisions.reverse()
for node in revisions:
rev = int(node.get('rev'))
#vrev = int(node.get('vrev')) # what is the meaning of vrev?
srcmd5 = node.find('srcmd5').text
version = node.find('version').text
user = node.find('user').text
try:
comment = node.find('comment').text
except:
comment = '<no message>'
t = time.localtime(int(node.find('time').text))
t = time.strftime('%Y-%m-%d %H:%M:%S', t)
s = '-' * 76 + \
'\nr%s | %s | %s | %s | %s\n' % (rev, user, t, srcmd5, version) + \
'\n' + comment
r.append(s)
r.append('-' * 76)
return r
def rebuild(apiurl, prj, package, repo, arch, code=None):
query = []
query.append('cmd=rebuild')
@ -1616,6 +1647,7 @@ def wipebinaries(apiurl, project, package=None, arch=None, repo=None, build_disa
root = ET.parse(f).getroot()
return root.get('code')
def parseRevisionOption(string):
"""
returns a tuple which contains the revisions