##// END OF EJS Templates
merge with stable
Matt Mackall -
r14984:cc2c2251 merge default
parent child Browse files
Show More
@@ -0,0 +1,43 b''
1 run only on case-insensitive filesystems, because collision check at
2 "hg update" is done only on case-insensitive filesystems
3
4 $ "$TESTDIR/hghave" icasefs || exit 80
5
6 setup repository, and target files
7
8 $ HGENCODING=cp932
9 $ export HGENCODING
10 $ hg init t
11 $ cd t
12 $ python << EOF
13 > names = ["\x83\x41", # cp932(0x83, 0x41='A'), UNICODE(0x30a2)
14 > "\x83\x5A", # cp932(0x83, 0x5A='Z'), UNICODE(0x30bb)
15 > "\x83\x61", # cp932(0x83, 0x61='a'), UNICODE(0x30c2)
16 > "\x83\x7A", # cp932(0x83, 0x7A='z'), UNICODE(0x30db)
17 > ]
18 > for num, name in zip(range(len(names)), names):
19 > # file for getting target filename of "hg add"
20 > f = file(str(num), 'w'); f.write(name); f.close()
21 > # target file of "hg add"
22 > f = file(name, 'w'); f.write(name); f.close()
23 > EOF
24
25 test filename collison check at "hg add"
26
27 $ hg add --config ui.portablefilenames=abort `cat 0`
28 $ hg add --config ui.portablefilenames=abort `cat 1`
29 $ hg add --config ui.portablefilenames=abort `cat 2`
30 $ hg add --config ui.portablefilenames=abort `cat 3`
31 $ hg status -a
32 A \x83A (esc)
33 A \x83Z (esc)
34 A \x83a (esc)
35 A \x83z (esc)
36
37 test filename collision check at "hg update"
38
39 $ hg commit -m 'revision 0'
40 $ hg update null
41 0 files updated, 0 files merged, 4 files removed, 0 files unresolved
42 $ hg update tip
43 4 files updated, 0 files merged, 0 files removed, 0 files unresolved
@@ -7,7 +7,7 b''
7
7
8 from node import nullid, nullrev, hex, bin
8 from node import nullid, nullrev, hex, bin
9 from i18n import _
9 from i18n import _
10 import scmutil, util, filemerge, copies, subrepo
10 import scmutil, util, filemerge, copies, subrepo, encoding
11 import errno, os, shutil
11 import errno, os, shutil
12
12
13 class mergestate(object):
13 class mergestate(object):
@@ -92,7 +92,7 b' def _checkcollision(mctx):'
92 "check for case folding collisions in the destination context"
92 "check for case folding collisions in the destination context"
93 folded = {}
93 folded = {}
94 for fn in mctx:
94 for fn in mctx:
95 fold = fn.lower()
95 fold = encoding.lower(fn)
96 if fold in folded:
96 if fold in folded:
97 raise util.Abort(_("case-folding collision between %s and %s")
97 raise util.Abort(_("case-folding collision between %s and %s")
98 % (fn, folded[fold]))
98 % (fn, folded[fold]))
@@ -6,7 +6,7 b''
6 # GNU General Public License version 2 or any later version.
6 # GNU General Public License version 2 or any later version.
7
7
8 from i18n import _
8 from i18n import _
9 import util, error, osutil, revset, similar
9 import util, error, osutil, revset, similar, encoding
10 import match as matchmod
10 import match as matchmod
11 import os, errno, re, stat, sys, glob
11 import os, errno, re, stat, sys, glob
12
12
@@ -46,10 +46,10 b' class casecollisionauditor(object):'
46 self._abort = abort
46 self._abort = abort
47 self._map = {}
47 self._map = {}
48 for f in existingiter:
48 for f in existingiter:
49 self._map[f.lower()] = f
49 self._map[encoding.lower(f)] = f
50
50
51 def __call__(self, f):
51 def __call__(self, f):
52 fl = f.lower()
52 fl = encoding.lower(f)
53 map = self._map
53 map = self._map
54 if fl in map and map[fl] != f:
54 if fl in map and map[fl] != f:
55 msg = _('possible case-folding collision for %s') % f
55 msg = _('possible case-folding collision for %s') % f
@@ -190,4 +190,5 b' def findcommonheads(ui, local, remote,'
190 ui.warn(_("warning: repository is unrelated\n"))
190 ui.warn(_("warning: repository is unrelated\n"))
191 return (set([nullid]), True, srvheadhashes,)
191 return (set([nullid]), True, srvheadhashes,)
192
192
193 return (dag.externalizeall(result), True, srvheadhashes,)
193 anyincoming = (srvheadhashes != [nullid])
194 return dag.externalizeall(result), anyincoming, srvheadhashes
@@ -465,3 +465,16 b' limit to 3 changesets'
465 date: Thu Jan 01 00:00:00 1970 +0000
465 date: Thu Jan 01 00:00:00 1970 +0000
466 summary: 11
466 summary: 11
467
467
468
469 incoming from empty remote repository
470
471 $ hg init r1
472 $ hg init r2
473 $ echo a > r1/foo
474 $ hg -R r1 ci -Ama
475 adding foo
476 $ hg -R r1 incoming r2 --bundle x.hg
477 comparing with r2
478 searching for changes
479 no changes found
480 [1]
General Comments 0
You need to be logged in to leave comments. Login now