comparison hgsubversion/replay.py @ 499:1fd3cfa47c5e

Support for single-directory clones.
author Augie Fackler <durin42@gmail.com>
date Fri, 16 Oct 2009 23:33:41 -0400
parents 990e07054f29
children ef288fb7f2fe
comparison
equal deleted inserted replaced
498:990e07054f29 499:1fd3cfa47c5e
27 svn.get_replay(r.revnum, editor) 27 svn.get_replay(r.revnum, editor)
28 current = editor.current 28 current = editor.current
29 current.findmissing(svn) 29 current.findmissing(svn)
30 30
31 # update externals 31 # update externals
32 32 # TODO fix and re-enable externals for single-directory clones
33 if current.externals: 33 if current.externals and not meta.layout == 'single':
34 34
35 # accumulate externals records for all branches 35 # accumulate externals records for all branches
36 revnum = current.rev.revnum 36 revnum = current.rev.revnum
37 branches = {} 37 branches = {}
38 for path, entry in current.externals.iteritems(): 38 for path, entry in current.externals.iteritems():
39
40 if not meta.is_path_valid(path): 39 if not meta.is_path_valid(path):
41 ui.warn('WARNING: Invalid path %s in externals\n' % path) 40 ui.warn('WARNING: Invalid path %s in externals\n' % path)
42 continue 41 continue
43 42
44 p, b, bp = meta.split_branch_path(path) 43 p, b, bp = meta.split_branch_path(path)
54 53
55 external[p] = entry 54 external[p] = entry
56 55
57 # register externals file changes 56 # register externals file changes
58 for bp, external in branches.iteritems(): 57 for bp, external in branches.iteritems():
59 path = bp + '/.hgsvnexternals' 58 if bp and bp[-1] != '/':
59 bp += '/'
60 path = (bp and bp + '.hgsvnexternals') or '.hgsvnexternals'
60 if external: 61 if external:
61 current.set(path, external.write(), False, False) 62 current.set(path, external.write(), False, False)
62 else: 63 else:
63 current.delete(path) 64 current.delete(path)
64 65