• Bruce Dawson's avatar
    Fix slash direction sensitivity in git cl owners · 7a0b07a8
    Bruce Dawson authored
    Slashes and backslashes are interchangeable on Windows in many contexts.
    But not all. In particular, if you add a path to a dictionary and then
    try looking it up with an equivalent path that has different slashes
    then - not surprisingly - the lookup will fail. Therefore it is
    important to always use slashes when populating _paths_to_owners. This
    is now done, and documented.
    
    Additionally, while fnmatch.fnmatch handles comparing slash separated
    paths to backslash separated paths, fnmatch.translate does not. This is
    arguably a bug in fnmatch.translate, or at least something that should
    be documented. This bug is worked around by having _fnmatch sanitize
    file names to always use slashes, and asserting that the patterns do
    not contain backslashes.
    
    With these changes this command:
      git cl owners --ignore-current --show-all chrome/browser/BUILD.gn
    now correctly gives the same results as this command on Windows:
      git cl owners --ignore-current --show-all chrome\browser\BUILD.gn
    
    The modified test fails without the other changes, passes with them.
    
    Bug: 1009104
    Change-Id: I416c7131281f00e352c1d2b85c30fcc463417fa5
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1915410
    Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
    Reviewed-by: 's avatarEdward Lesmes <ehmaldonado@chromium.org>
    7a0b07a8
owners.py 23 KB