Mercurial > hgsubversion
comparison fetch_command.py @ 63:2e30b59a9c19
Added some coverage pragmas to stop it from trying to cover things we can't test.
author | Augie Fackler <durin42@gmail.com> |
---|---|
date | Thu, 06 Nov 2008 09:47:42 -0600 |
parents | 430af23bef4a |
children | 9c1b53abefcb |
comparison
equal
deleted
inserted
replaced
62:cc5ebdb1e8d4 | 63:2e30b59a9c19 |
---|---|
16 import hg_delta_editor | 16 import hg_delta_editor |
17 import svnwrap | 17 import svnwrap |
18 import util | 18 import util |
19 | 19 |
20 | 20 |
21 def print_your_svn_is_old_message(ui): | 21 def print_your_svn_is_old_message(ui): #pragma: no cover |
22 ui.status("In light of that, I'll fall back and do diffs, but it won't do " | 22 ui.status("In light of that, I'll fall back and do diffs, but it won't do " |
23 "as good a job. You should really upgrade your server.\n") | 23 "as good a job. You should really upgrade your server.\n") |
24 | 24 |
25 | 25 |
26 @util.register_subcommand('pull') | 26 @util.register_subcommand('pull') |
32 old_encoding = merc_util._encoding | 32 old_encoding = merc_util._encoding |
33 merc_util._encoding = 'UTF-8' | 33 merc_util._encoding = 'UTF-8' |
34 skipto_rev=int(skipto_rev) | 34 skipto_rev=int(skipto_rev) |
35 have_replay = not stupid | 35 have_replay = not stupid |
36 if have_replay and not callable(delta.svn_txdelta_apply(None, None, | 36 if have_replay and not callable(delta.svn_txdelta_apply(None, None, |
37 None)[0]): | 37 None)[0]): #pragma: no cover |
38 ui.status('You are using old Subversion SWIG bindings. Replay will not' | 38 ui.status('You are using old Subversion SWIG bindings. Replay will not' |
39 ' work until you upgrade to 1.5.0 or newer. Falling back to' | 39 ' work until you upgrade to 1.5.0 or newer. Falling back to' |
40 ' a slower method that may be buggier. Please upgrade, or' | 40 ' a slower method that may be buggier. Please upgrade, or' |
41 ' contribute a patch to use the ctypes bindings instead' | 41 ' contribute a patch to use the ctypes bindings instead' |
42 ' of SWIG.\n') | 42 ' of SWIG.\n') |
79 try: | 79 try: |
80 ui.status('converting %s\n' % r) | 80 ui.status('converting %s\n' % r) |
81 if have_replay: | 81 if have_replay: |
82 try: | 82 try: |
83 replay_convert_rev(hg_editor, svn, r) | 83 replay_convert_rev(hg_editor, svn, r) |
84 except svnwrap.SubversionRepoCanNotReplay, e: | 84 except svnwrap.SubversionRepoCanNotReplay, e: #pragma: no cover |
85 ui.status('%s\n' % e.message) | 85 ui.status('%s\n' % e.message) |
86 print_your_svn_is_old_message(ui) | 86 print_your_svn_is_old_message(ui) |
87 have_replay = False | 87 have_replay = False |
88 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) | 88 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) |
89 else: | 89 else: |
93 fp = open(tmpfile, 'w') | 93 fp = open(tmpfile, 'w') |
94 fp.write(str(r.revnum)) | 94 fp.write(str(r.revnum)) |
95 fp.close() | 95 fp.close() |
96 merc_util.rename(tmpfile, | 96 merc_util.rename(tmpfile, |
97 hg_editor.last_revision_handled_file) | 97 hg_editor.last_revision_handled_file) |
98 except core.SubversionException, e: | 98 except core.SubversionException, e: #pragma: no cover |
99 if hasattr(e, 'message') and ( | 99 if hasattr(e, 'message') and ( |
100 'Server sent unexpected return value (502 Bad Gateway)' | 100 'Server sent unexpected return value (502 Bad Gateway)' |
101 ' in response to PROPFIND') in e.message: | 101 ' in response to PROPFIND') in e.message: |
102 tries += 1 | 102 tries += 1 |
103 ui.status('Got a 502, retrying (%s)\n' % tries) | 103 ui.status('Got a 502, retrying (%s)\n' % tries) |
131 # no idea why. TODO(augie) figure out the why. | 131 # no idea why. TODO(augie) figure out the why. |
132 try: | 132 try: |
133 pl = svn.proplist(p2, r.revnum, recurse=True) | 133 pl = svn.proplist(p2, r.revnum, recurse=True) |
134 cleanup_file_handles(svn, i) | 134 cleanup_file_handles(svn, i) |
135 i += 1 | 135 i += 1 |
136 except core.SubversionException, e: | 136 except core.SubversionException, e: #pragma: no cover |
137 pass | 137 pass |
138 props.update(pl) | 138 props.update(pl) |
139 if p[-1] == '/': | 139 if p[-1] == '/': |
140 dirs_to_list.append(p) | 140 dirs_to_list.append(p) |
141 else: | 141 else: |
389 svn.fetch_all_files_to_dir(diff_path, r.revnum, our_tempdir) | 389 svn.fetch_all_files_to_dir(diff_path, r.revnum, our_tempdir) |
390 except core.SubversionException, e: | 390 except core.SubversionException, e: |
391 if e.apr_err == 170000 or (e.message.startswith("URL '") | 391 if e.apr_err == 170000 or (e.message.startswith("URL '") |
392 and e.message.endswith("' doesn't exist")): | 392 and e.message.endswith("' doesn't exist")): |
393 delete_all_files = True | 393 delete_all_files = True |
394 else: | 394 else: #pragma: no cover |
395 raise | 395 raise |
396 | 396 |
397 except BadPatchApply, e: | 397 except BadPatchApply, e: |
398 # previous rev didn't exist, so this is most likely the first | 398 # previous rev didn't exist, so this is most likely the first |
399 # revision. We'll have to pull all files by hand. | 399 # revision. We'll have to pull all files by hand. |