Mercurial > hgsubversion
comparison fetch_command.py @ 98:c7ac013cf7fd
fetch_command: simplify replay_convert_rev() with svn.list_files()
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Thu, 20 Nov 2008 22:41:14 -0600 |
parents | 0d3a2a7cefa3 |
children | a3b717e4abf5 |
comparison
equal
deleted
inserted
replaced
97:0d3a2a7cefa3 | 98:c7ac013cf7fd |
---|---|
116 i = 1 | 116 i = 1 |
117 if hg_editor.missing_plaintexts: | 117 if hg_editor.missing_plaintexts: |
118 hg_editor.ui.status('Fetching %s files that could not use replay.\n' % | 118 hg_editor.ui.status('Fetching %s files that could not use replay.\n' % |
119 len(hg_editor.missing_plaintexts)) | 119 len(hg_editor.missing_plaintexts)) |
120 files_to_grab = set() | 120 files_to_grab = set() |
121 dirs_to_list = [] | 121 rootpath = svn.subdir and svn.subdir[1:] or '' |
122 for p in hg_editor.missing_plaintexts: | 122 for p in hg_editor.missing_plaintexts: |
123 hg_editor.ui.status('.') | 123 hg_editor.ui.status('.') |
124 hg_editor.ui.flush() | 124 hg_editor.ui.flush() |
125 if p[-1] == '/': | 125 if p[-1] == '/': |
126 dirs_to_list.append(p) | 126 dirpath = p[len(rootpath):] |
127 files_to_grab.update((dirpath + f for f,k in | |
128 svn.list_files(p, r.revnum) if k == 'f')) | |
127 else: | 129 else: |
128 files_to_grab.add(p) | 130 files_to_grab.add(p[len(rootpath):]) |
129 if dirs_to_list: | |
130 hg_editor.ui.status('\nChecking for additional files in' | |
131 ' directories...\n') | |
132 while dirs_to_list: | |
133 hg_editor.ui.status('.') | |
134 hg_editor.ui.flush() | |
135 p = dirs_to_list.pop(0) | |
136 cleanup_file_handles(svn, i) | |
137 i += 1 | |
138 p2 = p[:-1] | |
139 if svn.subdir: | |
140 p2 = p2[len(svn.subdir)-1:] | |
141 l = svn.list_dir(p2, r.revnum) | |
142 for f in l: | |
143 if l[f].kind == core.svn_node_dir: | |
144 dirs_to_list.append(p+f+'/') | |
145 elif l[f].kind == core.svn_node_file: | |
146 files_to_grab.add(p+f) | |
147 hg_editor.ui.status('\nFetching files...\n') | 131 hg_editor.ui.status('\nFetching files...\n') |
148 for p in files_to_grab: | 132 for p in files_to_grab: |
149 hg_editor.ui.status('.') | 133 hg_editor.ui.status('.') |
150 hg_editor.ui.flush() | 134 hg_editor.ui.flush() |
151 p2 = p | |
152 if svn.subdir: | |
153 p2 = p2[len(svn.subdir)-1:] | |
154 cleanup_file_handles(svn, i) | 135 cleanup_file_handles(svn, i) |
155 i += 1 | 136 i += 1 |
156 data, mode = svn.get_file(p2, r.revnum) | 137 data, mode = svn.get_file(p, r.revnum) |
157 hg_editor.set_file(p, data, 'x' in mode, 'l' in mode) | 138 hg_editor.set_file(p, data, 'x' in mode, 'l' in mode) |
158 hg_editor.missing_plaintexts = set() | 139 hg_editor.missing_plaintexts = set() |
159 hg_editor.ui.status('\n') | 140 hg_editor.ui.status('\n') |
160 hg_editor.commit_current_delta() | 141 hg_editor.commit_current_delta() |
161 | 142 |