diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -6,7 +6,7 @@ # of the GNU General Public License, incorporated herein by reference. import os, re, sys, signal -import fancyopts, ui, hg +import fancyopts, ui, hg, util from demandload import * demandload(globals(), "mdiff time hgweb traceback random signal errno") @@ -16,20 +16,20 @@ def filterfiles(filters, files): l = [ x for x in files if x in filters ] for t in filters: - if t and t[-1] != os.sep: t += os.sep + if t and t[-1] != "/": t += "/" l += [ x for x in files if x.startswith(t) ] return l def relfilter(repo, files): if os.getcwd() != repo.root: p = os.getcwd()[len(repo.root) + 1: ] - return filterfiles([p], files) + return filterfiles([util.pconvert(p)], files) return files def relpath(repo, args): if os.getcwd() != repo.root: p = os.getcwd()[len(repo.root) + 1: ] - return [ os.path.normpath(os.path.join(p, x)) for x in args ] + return [ util.pconvert(os.path.normpath(os.path.join(p, x))) for x in args ] return args def dodiff(ui, repo, path, files = None, node1 = None, node2 = None): diff --git a/mercurial/hg.py b/mercurial/hg.py --- a/mercurial/hg.py +++ b/mercurial/hg.py @@ -6,6 +6,7 @@ # of the GNU General Public License, incorporated herein by reference. import sys, struct, os +import util from revlog import * from demandload import * demandload(globals(), "re lock urllib urllib2 transaction time socket") @@ -389,7 +390,7 @@ class localrepository: l = file(self.wjoin(".hgignore")) for pat in l: if pat != "\n": - self.ignorelist.append(re.compile(pat[:-1])) + self.ignorelist.append(re.compile(util.pconvert(pat[:-1]))) except IOError: pass for pat in self.ignorelist: if pat.search(f): return True @@ -639,7 +640,7 @@ class localrepository: if ".hg" in subdirs: subdirs.remove(".hg") for f in files: - fn = os.path.join(d, f) + fn = util.pconvert(os.path.join(d, f)) try: s = os.stat(os.path.join(self.root, fn)) except: continue if fn in dc: diff --git a/mercurial/util.py b/mercurial/util.py new file mode 100644 --- /dev/null +++ b/mercurial/util.py @@ -0,0 +1,16 @@ +# util.py - utility functions and platform specfic implementations +# +# Copyright 2005 K. Thananchayan +# +# This software may be used and distributed according to the terms +# of the GNU General Public License, incorporated herein by reference. + +import os + +if os.name == 'nt': + def pconvert(path): + return path.replace("\\", "/") +else: + def pconvert(path): + return path +