summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--command.py6
-rw-r--r--manifest_xml.py2
-rw-r--r--project.py4
-rwxr-xr-xrepo6
4 files changed, 12 insertions, 6 deletions
diff --git a/command.py b/command.py
index a941b95a..8e93787e 100644
--- a/command.py
+++ b/command.py
@@ -74,7 +74,7 @@ class Command(object):
74 project = all.get(arg) 74 project = all.get(arg)
75 75
76 if not project: 76 if not project:
77 path = os.path.abspath(arg) 77 path = os.path.abspath(arg).replace('\\', '/')
78 78
79 if not by_path: 79 if not by_path:
80 by_path = dict() 80 by_path = dict()
@@ -82,13 +82,15 @@ class Command(object):
82 by_path[p.worktree] = p 82 by_path[p.worktree] = p
83 83
84 if os.path.exists(path): 84 if os.path.exists(path):
85 oldpath = None
85 while path \ 86 while path \
86 and path != '/' \ 87 and path != oldpath \
87 and path != self.manifest.topdir: 88 and path != self.manifest.topdir:
88 try: 89 try:
89 project = by_path[path] 90 project = by_path[path]
90 break 91 break
91 except KeyError: 92 except KeyError:
93 oldpath = path
92 path = os.path.dirname(path) 94 path = os.path.dirname(path)
93 else: 95 else:
94 try: 96 try:
diff --git a/manifest_xml.py b/manifest_xml.py
index 9d68f09f..0103cf55 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -435,7 +435,7 @@ class XmlManifest(object):
435 worktree = None 435 worktree = None
436 gitdir = os.path.join(self.topdir, '%s.git' % name) 436 gitdir = os.path.join(self.topdir, '%s.git' % name)
437 else: 437 else:
438 worktree = os.path.join(self.topdir, path) 438 worktree = os.path.join(self.topdir, path).replace('\\', '/')
439 gitdir = os.path.join(self.repodir, 'projects/%s.git' % path) 439 gitdir = os.path.join(self.repodir, 'projects/%s.git' % path)
440 440
441 project = Project(manifest = self, 441 project = Project(manifest = self,
diff --git a/project.py b/project.py
index 01dc8678..25347daf 100644
--- a/project.py
+++ b/project.py
@@ -236,8 +236,8 @@ class Project(object):
236 self.manifest = manifest 236 self.manifest = manifest
237 self.name = name 237 self.name = name
238 self.remote = remote 238 self.remote = remote
239 self.gitdir = gitdir 239 self.gitdir = gitdir.replace('\\', '/')
240 self.worktree = worktree 240 self.worktree = worktree.replace('\\', '/')
241 self.relpath = relpath 241 self.relpath = relpath
242 self.revisionExpr = revisionExpr 242 self.revisionExpr = revisionExpr
243 243
diff --git a/repo b/repo
index 02858ec2..96daa9b7 100755
--- a/repo
+++ b/repo
@@ -430,10 +430,14 @@ def _FindRepo():
430 dir = os.getcwd() 430 dir = os.getcwd()
431 repo = None 431 repo = None
432 432
433 while dir != '/' and not repo: 433 olddir = None
434 while dir != '/' \
435 and dir != olddir \
436 and not repo:
434 repo = os.path.join(dir, repodir, REPO_MAIN) 437 repo = os.path.join(dir, repodir, REPO_MAIN)
435 if not os.path.isfile(repo): 438 if not os.path.isfile(repo):
436 repo = None 439 repo = None
440 olddir = dir
437 dir = os.path.dirname(dir) 441 dir = os.path.dirname(dir)
438 return (repo, os.path.join(dir, repodir)) 442 return (repo, os.path.join(dir, repodir))
439 443