OSDN Git Service

target_files_diff: Fix the issue with file type change.
authorTao Bao <tbao@google.com>
Mon, 25 Apr 2016 17:03:38 +0000 (10:03 -0700)
committerTao Bao <tbao@google.com>
Mon, 25 Apr 2016 17:07:20 +0000 (10:07 -0700)
When a file is switched from a regular file to a symlink, we should skip
the comparasion.

Bug: 28373409
Change-Id: I8fef00ab9f2d6f811fde1cadf595e8bd46af2dfd

tools/releasetools/target_files_diff.py

index 196d2e8..0f717e0 100755 (executable)
@@ -172,17 +172,16 @@ def recursiveDiff(prefix, dir1, dir2, out_file):
       continue
 
     if entry in list2:
-      if os.path.islink(name1):
-        if os.path.islink(name2):
-          link1 = os.readlink(name1)
-          link2 = os.readlink(name2)
-          if link1 != link2:
-            print("%s: Symlinks differ: %s vs %s" % (name, link1, link2),
-                  file=out_file)
-        else:
-          print("%s: File types differ, skipping compare" % name,
+      if os.path.islink(name1) and os.path.islink(name2):
+        link1 = os.readlink(name1)
+        link2 = os.readlink(name2)
+        if link1 != link2:
+          print("%s: Symlinks differ: %s vs %s" % (name, link1, link2),
                 file=out_file)
         continue
+      elif os.path.islink(name1) or os.path.islink(name2):
+        print("%s: File types differ, skipping compare" % name, file=out_file)
+        continue
 
       stat1 = os.stat(name1)
       stat2 = os.stat(name2)