Make path references OS independent
Change-Id: I5573995adfd52fd54bddc62d1d1ea78fb1328130
(cherry picked from commit b0f9a02394779c1c9422a9649412c9ac5fb0f12f)
Conflicts:
command.py
diff --git a/command.py b/command.py
index a941b95..8e93787 100644
--- a/command.py
+++ b/command.py
@@ -74,7 +74,7 @@
project = all.get(arg)
if not project:
- path = os.path.abspath(arg)
+ path = os.path.abspath(arg).replace('\\', '/')
if not by_path:
by_path = dict()
@@ -82,13 +82,15 @@
by_path[p.worktree] = p
if os.path.exists(path):
+ oldpath = None
while path \
- and path != '/' \
+ and path != oldpath \
and path != self.manifest.topdir:
try:
project = by_path[path]
break
except KeyError:
+ oldpath = path
path = os.path.dirname(path)
else:
try:
diff --git a/manifest_xml.py b/manifest_xml.py
index 9d68f09..0103cf5 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -435,7 +435,7 @@
worktree = None
gitdir = os.path.join(self.topdir, '%s.git' % name)
else:
- worktree = os.path.join(self.topdir, path)
+ worktree = os.path.join(self.topdir, path).replace('\\', '/')
gitdir = os.path.join(self.repodir, 'projects/%s.git' % path)
project = Project(manifest = self,
diff --git a/project.py b/project.py
index 01dc867..25347da 100644
--- a/project.py
+++ b/project.py
@@ -236,8 +236,8 @@
self.manifest = manifest
self.name = name
self.remote = remote
- self.gitdir = gitdir
- self.worktree = worktree
+ self.gitdir = gitdir.replace('\\', '/')
+ self.worktree = worktree.replace('\\', '/')
self.relpath = relpath
self.revisionExpr = revisionExpr
diff --git a/repo b/repo
index 02858ec..96daa9b 100755
--- a/repo
+++ b/repo
@@ -430,10 +430,14 @@
dir = os.getcwd()
repo = None
- while dir != '/' and not repo:
+ olddir = None
+ while dir != '/' \
+ and dir != olddir \
+ and not repo:
repo = os.path.join(dir, repodir, REPO_MAIN)
if not os.path.isfile(repo):
repo = None
+ olddir = dir
dir = os.path.dirname(dir)
return (repo, os.path.join(dir, repodir))