diff --git a/rbtools/clients/git.py b/rbtools/clients/git.py
index b55fc4d129eb1d57c3840df505218d94f2f7349a..4559d796bc616cd9c0320980886e73b9f36491a6 100644
--- a/rbtools/clients/git.py
+++ b/rbtools/clients/git.py
@@ -984,7 +984,19 @@ class GitClient(SCMClient):
                 # We should really raise an error here, base_path is required
                 pass
 
+        num_lines = len(diff_lines)
+        LARGE_FILE_THRESHOLD = 100000
+        CHARS = ['|', '/', '-', '\\']
+        if num_lines > LARGE_FILE_THRESHOLD:
+            sys.stdout.write('Creating diff for large file...')
+            sys.stdout.flush()
+
         for i, line in enumerate(diff_lines):
+            if num_lines > LARGE_FILE_THRESHOLD and i % 1000 == 0:
+                sys.stdout.write('\rCreating diff for large file...')
+                sys.stdout.write(CHARS[int((i / 1000) % 4)])
+                sys.stdout.flush()
+
             if line.startswith(b'diff '):
                 # Grab the filename and then filter this out.
                 # This will be in the format of:
@@ -1018,6 +1030,10 @@ class GitClient(SCMClient):
             else:
                 diff_data += line
 
+        if num_lines > LARGE_FILE_THRESHOLD:
+            sys.stdout.write('Done\n')
+            sys.stdout.flush()
+
         return diff_data
 
     def has_pending_changes(self):
