1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-02-26 12:12:11 +01:00

implement committing with keeping links

This commit is contained in:
Dr. Peter Poeml 2008-04-02 12:37:56 +00:00
parent 11fa192b33
commit 5e5ca2e020

View File

@ -678,6 +678,9 @@ class Package:
def commit(self, msg=''): def commit(self, msg=''):
# commit only if the upstream revision is the same as the working copy's # commit only if the upstream revision is the same as the working copy's
if self.islink() and self.isexpanded():
upstream_rev = show_upstream_xsrcmd5(self.apiurl, self.prjname, self.name)
else:
upstream_rev = show_upstream_rev(self.apiurl, self.prjname, self.name) upstream_rev = show_upstream_rev(self.apiurl, self.prjname, self.name)
if self.rev != upstream_rev: if self.rev != upstream_rev:
print >>sys.stderr, 'Working copy \'%s\' is out of date (rev %s vs rev %s).' \ print >>sys.stderr, 'Working copy \'%s\' is out of date (rev %s vs rev %s).' \
@ -703,6 +706,12 @@ class Package:
print 'nothing to do for package %s' % self.name print 'nothing to do for package %s' % self.name
sys.exit(1) sys.exit(1)
if self.islink() and self.isexpanded():
# resolve the link into the upload revision
u = makeurl(self.apiurl, ['source', self.prjname, self.name],
query='cmd=copy&rev=upload&expand=1')
f = http_POST(u)
print 'Transmitting file data ', print 'Transmitting file data ',
for filename in self.todo_delete: for filename in self.todo_delete:
# do not touch local files on commit -- # do not touch local files on commit --
@ -717,6 +726,9 @@ class Package:
# all source files are committed - now comes the log # all source files are committed - now comes the log
query = [] query = []
query.append('cmd=commit') query.append('cmd=commit')
if self.islink() and self.isexpanded():
query.append('keeplink=1')
else:
query.append('rev=upload') query.append('rev=upload')
query.append('user=%s' % conf.get_apiurl_usr(self.apiurl)) query.append('user=%s' % conf.get_apiurl_usr(self.apiurl))
query.append('comment=%s' % quote_plus(msg)) query.append('comment=%s' % quote_plus(msg))
@ -728,6 +740,9 @@ class Package:
print print
print 'Committed revision %s.' % self.rev print 'Committed revision %s.' % self.rev
if self.islink() and self.isexpanded():
self.update_local_filesmeta(revision=show_upstream_xsrcmd5(self.apiurl, self.prjname, self.name))
else:
self.update_local_filesmeta() self.update_local_filesmeta()
self.write_deletelist() self.write_deletelist()