Mark E. Hamilton f9fe3e14d2 repo: Repo does not always handle '.' parameter correctly
The repo script allows a manifest to specify a '.' as the path the
top-level directory, which co-locates the .git and .repo directories,
and places files from the git repository at the top-level:

  <project name="proj_name" path="." />
  <project name="sierra.other.git" path="other" />

Most commands work correctly with this setup. Some commands, however,
fail to find the project. For instance, 'repo sync' works, and 'repo sync .'
works in a sub-project ('other' in this case) but 'repo sync .' in the
top-level directory fails with the error:

error: project . not found

There are two reasons for this:

1. The self.worktree attribute of the Project object is not normalized,
so with a '.' for path its value would be '/my/project/root/.'. This is
fine when used as a path, since it's the same path as '/my/project/root',
but when used in a string comparison it fails. This commit applies
os.path.normpath() to that value before storing it.

2. The _GetProjectByPath method in command.py was not checking the path
against manifest.topdir, so even once it was normalized the project was
not found. This commit adds a check against manifest.topdir if the
loop drops out without finding a project.

Change-Id: Ic84d053f1bbb5a357cad566805d5a326ae8246d2
2016-04-08 00:07:52 +00:00
2015-12-11 00:05:54 +00:00
2015-10-07 15:43:22 -07:00
2013-03-08 01:18:08 +00:00
2015-03-28 21:12:27 +00:00
2008-10-21 07:00:00 -07:00
2015-06-04 00:21:16 +00:00
2013-11-21 06:03:22 +00:00
2015-10-07 15:43:22 -07:00
2011-09-19 14:52:57 -07:00
2014-01-30 15:17:09 -08:00
Description
No description provided
Apache-2.0 36 MiB
Languages
Python 99.1%
Shell 0.9%