mirror of
https://github.com/golang/go
synced 2024-11-25 01:08:02 -07:00
codereview: fix path slash issue.
R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5487057
This commit is contained in:
parent
0e9ee93cea
commit
e62b40344d
@ -1065,25 +1065,30 @@ class uiwrap(object):
|
|||||||
ui.verbose = self.oldVerbose
|
ui.verbose = self.oldVerbose
|
||||||
return ui.popbuffer()
|
return ui.popbuffer()
|
||||||
|
|
||||||
|
def to_slash(path):
|
||||||
|
if sys.platform == "win32":
|
||||||
|
return path.replace('\\', '/')
|
||||||
|
return path
|
||||||
|
|
||||||
def hg_matchPattern(ui, repo, *pats, **opts):
|
def hg_matchPattern(ui, repo, *pats, **opts):
|
||||||
w = uiwrap(ui)
|
w = uiwrap(ui)
|
||||||
hg_commands.status(ui, repo, *pats, **opts)
|
hg_commands.status(ui, repo, *pats, **opts)
|
||||||
text = w.output()
|
text = w.output()
|
||||||
ret = []
|
ret = []
|
||||||
prefix = os.path.realpath(repo.root)+'/'
|
prefix = to_slash(os.path.realpath(repo.root))+'/'
|
||||||
for line in text.split('\n'):
|
for line in text.split('\n'):
|
||||||
f = line.split()
|
f = line.split()
|
||||||
if len(f) > 1:
|
if len(f) > 1:
|
||||||
if len(pats) > 0:
|
if len(pats) > 0:
|
||||||
# Given patterns, Mercurial shows relative to cwd
|
# Given patterns, Mercurial shows relative to cwd
|
||||||
p = os.path.realpath(f[1])
|
p = to_slash(os.path.realpath(f[1]))
|
||||||
if not p.startswith(prefix):
|
if not p.startswith(prefix):
|
||||||
print >>sys.stderr, "File %s not in repo root %s.\n" % (p, prefix)
|
print >>sys.stderr, "File %s not in repo root %s.\n" % (p, prefix)
|
||||||
else:
|
else:
|
||||||
ret.append(p[len(prefix):])
|
ret.append(p[len(prefix):])
|
||||||
else:
|
else:
|
||||||
# Without patterns, Mercurial shows relative to root (what we want)
|
# Without patterns, Mercurial shows relative to root (what we want)
|
||||||
ret.append(f[1])
|
ret.append(to_slash(f[1]))
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def hg_heads(ui, repo):
|
def hg_heads(ui, repo):
|
||||||
@ -3139,7 +3144,7 @@ class VersionControlSystem(object):
|
|||||||
unused, filename = line.split(':', 1)
|
unused, filename = line.split(':', 1)
|
||||||
# On Windows if a file has property changes its filename uses '\'
|
# On Windows if a file has property changes its filename uses '\'
|
||||||
# instead of '/'.
|
# instead of '/'.
|
||||||
filename = filename.strip().replace('\\', '/')
|
filename = to_slash(filename.strip())
|
||||||
files[filename] = self.GetBaseFile(filename)
|
files[filename] = self.GetBaseFile(filename)
|
||||||
return files
|
return files
|
||||||
|
|
||||||
@ -3357,7 +3362,7 @@ class MercurialVCS(VersionControlSystem):
|
|||||||
# A path
|
# A path
|
||||||
# M path
|
# M path
|
||||||
# etc
|
# etc
|
||||||
line = self.status[i].replace('\\', '/')
|
line = to_slash(self.status[i])
|
||||||
if line[2:] == path:
|
if line[2:] == path:
|
||||||
if i+1 < len(self.status) and self.status[i+1][:2] == ' ':
|
if i+1 < len(self.status) and self.status[i+1][:2] == ' ':
|
||||||
return self.status[i:i+2]
|
return self.status[i:i+2]
|
||||||
@ -3424,7 +3429,7 @@ def SplitPatch(data):
|
|||||||
# When a file is modified, paths use '/' between directories, however
|
# When a file is modified, paths use '/' between directories, however
|
||||||
# when a property is modified '\' is used on Windows. Make them the same
|
# when a property is modified '\' is used on Windows. Make them the same
|
||||||
# otherwise the file shows up twice.
|
# otherwise the file shows up twice.
|
||||||
temp_filename = temp_filename.strip().replace('\\', '/')
|
temp_filename = to_slash(temp_filename.strip())
|
||||||
if temp_filename != filename:
|
if temp_filename != filename:
|
||||||
# File has property changes but no modifications, create a new diff.
|
# File has property changes but no modifications, create a new diff.
|
||||||
new_filename = temp_filename
|
new_filename = temp_filename
|
||||||
|
Loading…
Reference in New Issue
Block a user