repopick: Check fetch result based on the actual commit

Checking for FETCH_HEAD is not reliable when fetching in parallel.

Change-Id: I0c07f7c4bffb80e5d12b13f301ba684b95112272
diff --git a/build/tools/repopick.py b/build/tools/repopick.py
index 4806b8f..928ffb3 100755
--- a/build/tools/repopick.py
+++ b/build/tools/repopick.py
@@ -641,28 +641,27 @@
         if not args.quiet:
             print(cmd)
         result = subprocess.call(cmd, cwd=project_path)
-        FETCH_HEAD = "{0}/.git/FETCH_HEAD".format(project_path)
-        if result != 0 and os.stat(FETCH_HEAD).st_size != 0:
-            print("ERROR: git command failed")
-            sys.exit(result)
-    # Check if it worked
-    if args.gerrit != DEFAULT_GERRIT or os.stat(FETCH_HEAD).st_size == 0:
-        # If not using the default gerrit or github failed, fetch from gerrit.
-        if args.verbose:
-            if args.gerrit == DEFAULT_GERRIT:
-                print(
-                    "Fetching from GitHub didn't work, trying to fetch the change from Gerrit"
-                )
-            else:
-                print("Fetching from {0}".format(args.gerrit))
+        # Check if it worked
+        if result == 0 or commit_exists(project_path, item["revision"]):
+            return
+        print("ERROR: git command failed")
 
-        cmd[-2] = item["fetch"][method]["url"]
-        if not args.quiet:
-            print(cmd)
-        result = subprocess.call(cmd, cwd=project_path)
-        if result != 0:
-            print("ERROR: git command failed")
-            sys.exit(result)
+    # If not using the default gerrit or github failed, fetch from gerrit.
+    if args.verbose:
+        if args.gerrit == DEFAULT_GERRIT:
+            print(
+                "Fetching from GitHub didn't work, trying to fetch the change from Gerrit"
+            )
+        else:
+            print("Fetching from {0}".format(args.gerrit))
+
+    cmd[-2] = item["fetch"][method]["url"]
+    if not args.quiet:
+        print(cmd)
+    result = subprocess.call(cmd, cwd=project_path)
+    if result != 0 and not commit_exists(project_path, item["revision"]):
+        print("ERROR: git command failed")
+        sys.exit(result)
 
 
 def apply_change(args, item):