project.py: Fix check for wild cards

The intention of the check is to verify whether the target
file name contains a wild card. The code, however, assumes
that if the file is non-existent - it contains a wild card.
This has the side effect that a target file that does not
exist at the moment of the check is considered to contain a
wild card, this leads itself to softlink not being created.

Change-Id: I4e4cd7b5e1b8ce2e4b2edc9abf5a1147cd86242f
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/265736
Reviewed-by: Mike Frysinger <vapier@google.com>
Tested-by: Angel Petkov <apetkov86@gmail.com>
This commit is contained in:
Angel Petkov 2020-05-02 23:16:20 +03:00 committed by Mike Frysinger
parent d0ca0f6814
commit dbfbcb14c1

View File

@ -405,8 +405,8 @@ class _LinkFile(object):
else: else:
src = _SafeExpandPath(self.git_worktree, self.src) src = _SafeExpandPath(self.git_worktree, self.src)
if os.path.exists(src): if not glob.has_magic(src):
# Entity exists so just a simple one to one link operation. # Entity does not contain a wild card so just a simple one to one link operation.
dest = _SafeExpandPath(self.topdir, self.dest, skipfinal=True) dest = _SafeExpandPath(self.topdir, self.dest, skipfinal=True)
# dest & src are absolute paths at this point. Make sure the target of # dest & src are absolute paths at this point. Make sure the target of
# the symlink is relative in the context of the repo client checkout. # the symlink is relative in the context of the repo client checkout.
@ -414,7 +414,7 @@ class _LinkFile(object):
self.__linkIt(relpath, dest) self.__linkIt(relpath, dest)
else: else:
dest = _SafeExpandPath(self.topdir, self.dest) dest = _SafeExpandPath(self.topdir, self.dest)
# Entity doesn't exist assume there is a wild card # Entity contains a wild card.
if os.path.exists(dest) and not platform_utils.isdir(dest): if os.path.exists(dest) and not platform_utils.isdir(dest):
_error('Link error: src with wildcard, %s must be a directory', dest) _error('Link error: src with wildcard, %s must be a directory', dest)
else: else: