]> Cypherpunks repositories - gostls13.git/commitdiff
codereview: fix clpatch with empty diffs
authorGustavo Niemeyer <gustavo@niemeyer.net>
Wed, 23 Feb 2011 16:48:40 +0000 (11:48 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 23 Feb 2011 16:48:40 +0000 (11:48 -0500)
Avoid passing the placeholder diff to hgpatch, so that
clpatch-ing an empty diff grabs the metadata and warns
about it being empty, rather than failing with a
hard-to-debug problem ("mkdir: no such file or dir",
no metadata, etc).

R=rsc
CC=golang-dev
https://golang.org/cl/4172060

lib/codereview/codereview.py

index 96efc855b6044a6dbfd7753c1e81474657542cba..fa703c711f49880eda29639e513806ec8b20d5fa 100644 (file)
@@ -1136,11 +1136,14 @@ def clpatch(ui, repo, clname, **opts):
                return missing_codereview
 
        cl, patch, err = DownloadCL(ui, repo, clname)
+       if err != "":
+               return err
+       if patch == emptydiff:
+               return "codereview issue %s has no diff" % clname
+
        argv = ["hgpatch"]
        if opts["no_incoming"]:
                argv += ["--checksync=false"]
-       if err != "":
-               return err
        try:
                cmd = subprocess.Popen(argv, shell=False, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=None, close_fds=sys.platform != "win32")
        except:
@@ -1151,6 +1154,8 @@ def clpatch(ui, repo, clname, **opts):
                return "hgpatch failed"
        cl.local = True
        cl.files = out.strip().split()
+       if not cl.files:
+               return "codereview issue %s has no diff" % clname
        files = ChangedFiles(ui, repo, [], opts)
        extra = Sub(cl.files, files)
        if extra: