tools/git-sync-deps: speed up common case by skipping fetch

Review URL: https://codereview.chromium.org/1431713002
diff --git a/tools/git-sync-deps b/tools/git-sync-deps
index 1d626d0..92adf4e 100755
--- a/tools/git-sync-deps
+++ b/tools/git-sync-deps
@@ -133,6 +133,13 @@
     sys.stdout.write('%s\n  SYNC IS DISABLED.\n' % directory)
     return
 
+  if 0 == subprocess.call(
+      [git, 'checkout', '--quiet', checkoutable], cwd=directory):
+    # if this succeeds, skip slow `git fetch`.
+    if verbose:
+      sys.stdout.write('%s\n  @ %s\n' % (directory, checkoutable))
+    return
+
   subprocess.check_call([git, 'fetch', '--quiet'], cwd=directory)
 
   subprocess.check_call(
@@ -176,7 +183,7 @@
     if '@' in dependencies[directory]:
       repo, checkoutable = dependencies[directory].split('@', 1)
     else:
-      repo, checkoutable = dependencies[directory], 'origin/master'
+      raise Exception("please specify commit or tag")
 
     relative_directory = os.path.join(deps_file_directory, directory)