Make path references OS independent

Change-Id: I5573995adfd52fd54bddc62d1d1ea78fb1328130
(cherry picked from commit b0f9a02394)

Conflicts:

	command.py
This commit is contained in:
Anthony Newnam 2011-01-09 17:31:57 -08:00 committed by Shawn O. Pearce
parent f18cb76173
commit df14a70c45
4 changed files with 12 additions and 6 deletions

View File

@ -74,7 +74,7 @@ class Command(object):
project = all.get(arg) project = all.get(arg)
if not project: if not project:
path = os.path.abspath(arg) path = os.path.abspath(arg).replace('\\', '/')
if not by_path: if not by_path:
by_path = dict() by_path = dict()
@ -82,13 +82,15 @@ class Command(object):
by_path[p.worktree] = p by_path[p.worktree] = p
if os.path.exists(path): if os.path.exists(path):
oldpath = None
while path \ while path \
and path != '/' \ and path != oldpath \
and path != self.manifest.topdir: and path != self.manifest.topdir:
try: try:
project = by_path[path] project = by_path[path]
break break
except KeyError: except KeyError:
oldpath = path
path = os.path.dirname(path) path = os.path.dirname(path)
else: else:
try: try:

View File

@ -435,7 +435,7 @@ class XmlManifest(object):
worktree = None worktree = None
gitdir = os.path.join(self.topdir, '%s.git' % name) gitdir = os.path.join(self.topdir, '%s.git' % name)
else: 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) gitdir = os.path.join(self.repodir, 'projects/%s.git' % path)
project = Project(manifest = self, project = Project(manifest = self,

View File

@ -236,8 +236,8 @@ class Project(object):
self.manifest = manifest self.manifest = manifest
self.name = name self.name = name
self.remote = remote self.remote = remote
self.gitdir = gitdir self.gitdir = gitdir.replace('\\', '/')
self.worktree = worktree self.worktree = worktree.replace('\\', '/')
self.relpath = relpath self.relpath = relpath
self.revisionExpr = revisionExpr self.revisionExpr = revisionExpr

6
repo
View File

@ -430,10 +430,14 @@ def _FindRepo():
dir = os.getcwd() dir = os.getcwd()
repo = None 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) repo = os.path.join(dir, repodir, REPO_MAIN)
if not os.path.isfile(repo): if not os.path.isfile(repo):
repo = None repo = None
olddir = dir
dir = os.path.dirname(dir) dir = os.path.dirname(dir)
return (repo, os.path.join(dir, repodir)) return (repo, os.path.join(dir, repodir))