mirror of
https://github.com/openSUSE/osc.git
synced 2025-02-26 04:02:11 +01:00
implement committing with keeping links
This commit is contained in:
parent
11fa192b33
commit
5e5ca2e020
15
osc/core.py
15
osc/core.py
@ -678,6 +678,9 @@ class Package:
|
||||
|
||||
def commit(self, msg=''):
|
||||
# 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)
|
||||
if self.rev != upstream_rev:
|
||||
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
|
||||
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 ',
|
||||
for filename in self.todo_delete:
|
||||
# do not touch local files on commit --
|
||||
@ -717,6 +726,9 @@ class Package:
|
||||
# all source files are committed - now comes the log
|
||||
query = []
|
||||
query.append('cmd=commit')
|
||||
if self.islink() and self.isexpanded():
|
||||
query.append('keeplink=1')
|
||||
else:
|
||||
query.append('rev=upload')
|
||||
query.append('user=%s' % conf.get_apiurl_usr(self.apiurl))
|
||||
query.append('comment=%s' % quote_plus(msg))
|
||||
@ -728,6 +740,9 @@ class Package:
|
||||
print
|
||||
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.write_deletelist()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user