Mercurial > hgsubversion
comparison hg_delta_editor.py @ 218:a360ddc97719
branches: change handling again, but this time a little less magic.
This change means that files located in the actual branches directory will now be wholly
ignored. If we want to handle those correctly, it will take a reasonably large amount of work
and probably a configuration flag. Also, any non-related paths outside of branches/trunk will
be explicitly ignored, which is similar to the somewhat accidental pre-branch-refactor
behavior. Finally, any unrelated files located as children of branches will cause the directory
in branches to be used as the branch - not, as recently was the case, the directory immediately
containing that file.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Sat, 28 Mar 2009 16:38:57 -0500 |
parents | 6eb691a163cd |
children | f2c65dd3d5c0 |
comparison
equal
deleted
inserted
replaced
217:6eb691a163cd | 218:a360ddc97719 |
---|---|
223 branchpath = self._normalize_path(parentdir) | 223 branchpath = self._normalize_path(parentdir) |
224 branchname = self._localname(branchpath) | 224 branchname = self._localname(branchpath) |
225 if branchpath.startswith('trunk/'): | 225 if branchpath.startswith('trunk/'): |
226 branches[self._localname('trunk')] = 'trunk' | 226 branches[self._localname('trunk')] = 'trunk' |
227 continue | 227 continue |
228 if branchname and branchname.startswith('../'): | |
229 continue | |
228 branches[branchname] = branchpath | 230 branches[branchname] = branchpath |
229 | 231 |
230 return branches | 232 return branches |
231 | 233 |
232 def _path_and_branch_for_path(self, path, existing=True): | 234 def _path_and_branch_for_path(self, path, existing=True): |
274 if existing: | 276 if existing: |
275 return None, None, None | 277 return None, None, None |
276 if path.startswith('trunk/'): | 278 if path.startswith('trunk/'): |
277 path = test.split('/')[1:] | 279 path = test.split('/')[1:] |
278 test = 'trunk' | 280 test = 'trunk' |
281 elif path.startswith('branches/'): | |
282 elts = path.split('/') | |
283 test = '/'.join(elts[:2]) | |
284 path = '/'.join(elts[2:]) | |
279 else: | 285 else: |
280 path = test.split('/')[-1] | 286 path = test.split('/')[-1] |
281 test = '/'.join(test.split('/')[:-1]) | 287 test = '/'.join(test.split('/')[:-1]) |
282 return path, self._localname(test), test | 288 ln = self._localname(test) |
289 if ln and ln.startswith('../'): | |
290 return None, None, None | |
291 return path, ln, test | |
283 | 292 |
284 def set_current_rev(self, rev): | 293 def set_current_rev(self, rev): |
285 """Set the revision we're currently converting. | 294 """Set the revision we're currently converting. |
286 """ | 295 """ |
287 self.current_rev = rev | 296 self.current_rev = rev |