Improve error handling on broken dsc files.
authorGuido Günther <agx@sigxcpu.org>
Sun, 13 Dec 2009 13:09:44 +0000 (14:09 +0100)
committerGuido Günther <agx@sigxcpu.org>
Sun, 13 Dec 2009 14:03:17 +0000 (15:03 +0100)
Closes: #560689

git-import-dsc

index a5a12a6..c88aa95 100755 (executable)
@@ -55,7 +55,9 @@ def apply_debian_patch(repo, src, options):
     version = "%s-%s" % (src.upstream_version, src.debian_version)
     gitTag = gbpc.GitTag(options.sign_tags, options.keyid)
     try:
-        if src.diff and not git_apply_patch(src.diff):
+        if not src.diff:
+            raise GbpError, "No diff to apply."
+        if not git_apply_patch(src.diff):
             raise GbpError
         os.chmod('debian/rules', 0755)
         if not repo.is_clean()[0]:
@@ -82,9 +84,12 @@ def print_dsc(dsc):
     if dsc.native:
         print "Debian Native Package"
         print "Version:", dsc.upstream_version
+        print "Debian tarball:", dsc.tgz
     else:
         print "Upstream version:", dsc.upstream_version
         print "Debian version:", dsc.debian_version
+        print "Upstream tarball:", dsc.tgz
+        print "Debian diff:", dsc.diff
     if dsc.epoch:
         print "Epoch: %s" % dsc.epoch
 
@@ -203,7 +208,10 @@ def main(argv):
                     except gbpc.CommandExecFailed:
                         raise GbpError, """Merge of %s failed, please resolve manually""" % options.upstream_branch
                 repo.replace_tree(unpack_dir, options.filters)
-                apply_debian_patch(repo, src, options)
+                if src.diff:
+                    apply_debian_patch(repo, src, options)
+                else:
+                    print >>sys.stderr, "Warning: Didn't find a diff to apply."
     except gbpc.CommandExecFailed:
         os.chdir(dirs['top'])
         ret = 1