Mercurial > hgsubversion
comparison fetch_command.py @ 228:f71af18c4379
Merge with crew.
| author | Augie Fackler <durin42@gmail.com> |
|---|---|
| date | Tue, 07 Apr 2009 13:48:58 -0500 |
| parents | 330f0b15d417 2117cb0118fe |
| children | 7f20914e52e8 |
comparison
equal
deleted
inserted
replaced
| 223:330f0b15d417 | 228:f71af18c4379 |
|---|---|
| 52 authors=authors, | 52 authors=authors, |
| 53 filemap=filemap) | 53 filemap=filemap) |
| 54 if os.path.exists(hg_editor.uuid_file): | 54 if os.path.exists(hg_editor.uuid_file): |
| 55 uuid = open(hg_editor.uuid_file).read() | 55 uuid = open(hg_editor.uuid_file).read() |
| 56 assert uuid == svn.uuid | 56 assert uuid == svn.uuid |
| 57 start = int(open(hg_editor.last_revision_handled_file, 'r').read()) | 57 start = hg_editor.last_known_revision() |
| 58 else: | 58 else: |
| 59 open(hg_editor.uuid_file, 'w').write(svn.uuid) | 59 open(hg_editor.uuid_file, 'w').write(svn.uuid) |
| 60 open(hg_editor.svn_url_file, 'w').write(svn_url) | 60 open(hg_editor.svn_url_file, 'w').write(svn_url) |
| 61 open(hg_editor.last_revision_handled_file, 'w').write(str(0)) | |
| 62 initializing_repo = True | 61 initializing_repo = True |
| 63 start = skipto_rev | 62 start = skipto_rev |
| 64 | 63 |
| 65 if initializing_repo and start > 0: | 64 if initializing_repo and start > 0: |
| 66 raise merc_util.Abort('Revision skipping at repository initialization ' | 65 raise merc_util.Abort('Revision skipping at repository initialization ' |
| 90 have_replay = False | 89 have_replay = False |
| 91 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) | 90 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) |
| 92 else: | 91 else: |
| 93 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) | 92 stupid_svn_server_pull_rev(ui, svn, hg_editor, r) |
| 94 converted = True | 93 converted = True |
| 95 tmpfile = '%s_tmp' % hg_editor.last_revision_handled_file | |
| 96 fp = open(tmpfile, 'w') | |
| 97 fp.write(str(r.revnum)) | |
| 98 fp.close() | |
| 99 merc_util.rename(tmpfile, | |
| 100 hg_editor.last_revision_handled_file) | |
| 101 except core.SubversionException, e: #pragma: no cover | 94 except core.SubversionException, e: #pragma: no cover |
| 102 if hasattr(e, 'message') and ( | 95 if e.apr_err == core.SVN_ERR_RA_DAV_REQUEST_FAILED: |
| 103 'Server sent unexpected return value (502 Bad Gateway)' | |
| 104 ' in response to PROPFIND') in e.message: | |
| 105 tries += 1 | 96 tries += 1 |
| 106 ui.status('Got a 502, retrying (%s)\n' % tries) | 97 ui.status('Got a 502, retrying (%s)\n' % tries) |
| 107 else: | 98 else: |
| 108 raise | 99 raise merc_util.Abort(*e.args) |
| 109 util.swap_out_encoding(old_encoding) | 100 util.swap_out_encoding(old_encoding) |
| 110 | 101 |
| 111 fetch_revisions = util.register_subcommand('pull')(fetch_revisions) | 102 fetch_revisions = util.register_subcommand('pull')(fetch_revisions) |
| 112 | 103 |
| 113 | 104 |
| 247 if d: | 238 if d: |
| 248 raise BadPatchApply('branch creation with mods') | 239 raise BadPatchApply('branch creation with mods') |
| 249 except svnwrap.SubversionRepoCanNotDiff: | 240 except svnwrap.SubversionRepoCanNotDiff: |
| 250 raise BadPatchApply('subversion diffing code is not supported') | 241 raise BadPatchApply('subversion diffing code is not supported') |
| 251 except core.SubversionException, e: | 242 except core.SubversionException, e: |
| 252 if (hasattr(e, 'apr_err') and e.apr_err != 160013): | 243 if (hasattr(e, 'apr_err') and e.apr_err != core.SVN_ERR_FS_NOT_FOUND): |
| 253 raise | 244 raise |
| 254 raise BadPatchApply('previous revision does not exist') | 245 raise BadPatchApply('previous revision does not exist') |
| 255 if '\0' in d: | 246 if '\0' in d: |
| 256 raise BadPatchApply('binary diffs are not supported') | 247 raise BadPatchApply('binary diffs are not supported') |
| 257 files_data = {} | 248 files_data = {} |
| 608 try: | 599 try: |
| 609 files_touched, filectxfn2 = stupid_diff_branchrev( | 600 files_touched, filectxfn2 = stupid_diff_branchrev( |
| 610 ui, svn, hg_editor, b, r, parentctx) | 601 ui, svn, hg_editor, b, r, parentctx) |
| 611 except BadPatchApply, e: | 602 except BadPatchApply, e: |
| 612 # Either this revision or the previous one does not exist. | 603 # Either this revision or the previous one does not exist. |
| 613 ui.status("fetching entire rev: %s.\n" % e.message) | 604 ui.status("Fetching entire revision: %s.\n" % e.args[0]) |
| 614 files_touched, filectxfn2 = stupid_fetch_branchrev( | 605 files_touched, filectxfn2 = stupid_fetch_branchrev( |
| 615 svn, hg_editor, b, branches[b], r, parentctx) | 606 svn, hg_editor, b, branches[b], r, parentctx) |
| 616 | 607 |
| 617 externals = stupid_fetch_externals(svn, branches[b], r, parentctx) | 608 externals = stupid_fetch_externals(svn, branches[b], r, parentctx) |
| 618 if externals is not None: | 609 if externals is not None: |
