diff --git a/tools/git_utils.py b/tools/git_utils.py
index 542947a..764039d 100644
--- a/tools/git_utils.py
+++ b/tools/git_utils.py
@@ -6,20 +6,23 @@
 import utils
 import subprocess
 
-def GitClone(url, checkout_dir):
-  cmd = ['git', 'clone', url, checkout_dir]
-  utils.PrintCmd(cmd)
-  return subprocess.check_call(cmd)
 
-def GitCheckout(revision, checkout_dir):
-  with utils.ChangedWorkingDirectory(checkout_dir):
-    cmd = ['git', 'checkout', revision]
+def GitClone(url, checkout_dir):
+    cmd = ['git', 'clone', url, checkout_dir]
     utils.PrintCmd(cmd)
     return subprocess.check_call(cmd)
 
+
+def GitCheckout(revision, checkout_dir):
+    with utils.ChangedWorkingDirectory(checkout_dir):
+        cmd = ['git', 'checkout', revision]
+        utils.PrintCmd(cmd)
+        return subprocess.check_call(cmd)
+
+
 def GetHeadRevision(checkout_dir, use_main=False):
-  revision_from = 'origin/main' if use_main else 'HEAD'
-  cmd = ['git', 'rev-parse', revision_from]
-  utils.PrintCmd(cmd)
-  with utils.ChangedWorkingDirectory(checkout_dir):
-    return subprocess.check_output(cmd).strip().decode('utf-8')
+    revision_from = 'origin/main' if use_main else 'HEAD'
+    cmd = ['git', 'rev-parse', revision_from]
+    utils.PrintCmd(cmd)
+    with utils.ChangedWorkingDirectory(checkout_dir):
+        return subprocess.check_output(cmd).strip().decode('utf-8')
