aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogdano Arendartchuk <bogdano@mandriva.org>2007-11-13 05:11:28 +0000
committerBogdano Arendartchuk <bogdano@mandriva.org>2007-11-13 05:11:28 +0000
commit0fe6300c34bb791ccfb1050b04fbb9afd162b322 (patch)
tree230ecdf8499337268b330856601c2510ac60a867
parent7e0e0014427a3609d3102e47446cfad7d3c52624 (diff)
downloadmgarepo-0fe6300c34bb791ccfb1050b04fbb9afd162b322.tar
mgarepo-0fe6300c34bb791ccfb1050b04fbb9afd162b322.tar.gz
mgarepo-0fe6300c34bb791ccfb1050b04fbb9afd162b322.tar.bz2
mgarepo-0fe6300c34bb791ccfb1050b04fbb9afd162b322.tar.xz
mgarepo-0fe6300c34bb791ccfb1050b04fbb9afd162b322.zip
Make package and revision optional options for submit, again
This mode has been broken for a long time due to a change in subversion output. The confirmation of the revision being used was removed, as already used by mdvsys. Instead, notify the user and allow him to interrupt the process.
-rw-r--r--CHANGES1
-rw-r--r--RepSys/commands/submit.py14
-rw-r--r--RepSys/rpmutil.py25
3 files changed, 17 insertions, 23 deletions
diff --git a/CHANGES b/CHANGES
index fb28031..e1a5e8b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,5 +1,6 @@
* 1.6.20
- fixed bad url used when using -v in getsrpm
+- make 'repsys submit' without package name or revision number work again
* 1.6.19
- added complement for SILENT: CLOG, which hides everything that does not
diff --git a/RepSys/commands/submit.py b/RepSys/commands/submit.py
index 5c95526..25d5831 100644
--- a/RepSys/commands/submit.py
+++ b/RepSys/commands/submit.py
@@ -20,6 +20,9 @@ Usage: repsys submit [OPTIONS] [URL [REVISION]]
Submits the package from URL to the submit host.
+If no URL and revision are specified, the latest changed revision in
+the package working copy of the current directory will be used.
+
Options:
-t TARGET Submit given package URL to given target
-l Just list available targets
@@ -51,15 +54,8 @@ def parse_options():
opts, args = parser.parse_args()
if not args:
name, rev = get_submit_info(".")
- try:
- yn = raw_input("Submit '%s', revision %d (y/N)? " % (name, rev))
- except KeyboardInterrupt:
- yn = "n"
- if yn.lower() in ("y", "yes"):
- args = name, str(rev)
- else:
- print "Cancelled."
- sys.exit(1)
+ args = name, str(rev)
+ print "submitting %s at revision %s..." % args
elif len(args) > 2:
raise Error, "invalid arguments"
opts.pkgdirurl = default_parent(args[0])
diff --git a/RepSys/rpmutil.py b/RepSys/rpmutil.py
index 69692f1..774f64f 100644
--- a/RepSys/rpmutil.py
+++ b/RepSys/rpmutil.py
@@ -490,20 +490,17 @@ def get_submit_info(path):
if not os.path.isdir(os.path.join(path, ".svn")):
raise Error, "subversion directory not found"
- svn = SVN(baseurl=pkgdirurl)
-
+ svn = SVN(noauth=True)
# Now, extract the package name.
- for line in svn.info(path):
- if line.startswith("URL: "):
- url = line.split()[1]
- toks = url.split("/")
- if len(toks) < 2 or toks[-1] != "current":
- raise Error, "unexpected URL received from 'svn info'"
- name = toks[-2]
- break
- else:
- raise Error, "URL tag not found in 'svn info' output"
+ info = svn.info2(path)
+ url = info.get("URL")
+ if url is None:
+ raise Error, "missing URL from svn info %s" % path
+ toks = url.split("/")
+ if len(toks) < 2 or toks[-1] != "current":
+ raise Error, "unexpected URL received from 'svn info'"
+ name = toks[-2]
# Finally, guess revision.
max = -1
@@ -511,8 +508,8 @@ def get_submit_info(path):
files.extend(glob.glob("%s/*" % specsdir))
files.extend(glob.glob("%s/*" % sourcesdir))
for line in svn.info(" ".join(files)):
- if line.startswith("Revision: "):
- rev = int(line.split()[1])
+ if line.startswith("Last Changed Rev: "):
+ rev = int(line.split(":")[1])
if rev > max:
max = rev
if max == -1: