Mercurial > public > mercurial-scm > hg
comparison mercurial/scmutil.py @ 14068:04ce8fa1015d
add: notify when adding a file that would cause a case-folding collision
On a case-sensitive file system, files can be added with names that differ
only in case (a "case collision"). This would cause an error on case-insensitive
filesystems. A warning or error is now given for such collisions, depending on
the value of ui.portablefilenames ('warn', 'abort', or 'ignore'):
$ touch file File
$ hg add --config ui.portablefilenames=abort File
abort: possible case-folding collision for File
$ hg add File
warning: possible case-folding collision for File
author | Kevin Gessner <kevin@kevingessner.com> |
---|---|
date | Sat, 30 Apr 2011 12:39:46 +0200 |
parents | e88a4958a6b7 |
children | d3f7e110c3c0 |
comparison
equal
deleted
inserted
replaced
14067:e88a4958a6b7 | 14068:04ce8fa1015d |
---|---|
19 checkfilename(f) | 19 checkfilename(f) |
20 if showportabilityalert(ui): | 20 if showportabilityalert(ui): |
21 msg = util.checkwinfilename(f) | 21 msg = util.checkwinfilename(f) |
22 if msg: | 22 if msg: |
23 portabilityalert(ui, "%s: %r" % (msg, f)) | 23 portabilityalert(ui, "%s: %r" % (msg, f)) |
24 | |
25 def checkcasecollision(ui, f, files): | |
26 if f.lower() in files and files[f.lower()] != f: | |
27 portabilityalert(ui, _('possible case-folding collision for %s') % f) | |
28 files[f.lower()] = f | |
24 | 29 |
25 def checkportabilityalert(ui): | 30 def checkportabilityalert(ui): |
26 '''check if the user's config requests nothing, a warning, or abort for | 31 '''check if the user's config requests nothing, a warning, or abort for |
27 non-portable filenames''' | 32 non-portable filenames''' |
28 val = ui.config('ui', 'portablefilenames', 'warn') | 33 val = ui.config('ui', 'portablefilenames', 'warn') |