comparison fetch_command.py @ 39:b3c7b844b782

Some more fixes of cases discovered in the melange repo. If anyone knows how I can reproduce a "replaced" state in Subversion, I'd love to be able to make a real test case for this code.
author Augie Fackler <durin42@gmail.com>
date Sun, 26 Oct 2008 22:06:13 -0500
parents 9ee7ce0505eb
children 485ae93bc358
comparison
equal deleted inserted replaced
38:9ee7ce0505eb 39:b3c7b844b782
392 try: 392 try:
393 ui.status("fetching entire rev because raised.\n") 393 ui.status("fetching entire rev because raised.\n")
394 used_diff = False 394 used_diff = False
395 shutil.rmtree(our_tempdir) 395 shutil.rmtree(our_tempdir)
396 os.makedirs(our_tempdir) 396 os.makedirs(our_tempdir)
397 svn.fetch_all_files_to_dir(diff_path, r.revnum, our_tempdir) 397 try:
398 svn.fetch_all_files_to_dir(diff_path, r.revnum, our_tempdir)
399 except core.SubversionException, e:
400 # apr_err 21 means that we couldn't rename a file to be a dir.
401 # This happens only in the case (at least right now) of a file
402 # located in brances or tags, which we don't support anyway.
403 if e.apr_err == 21:
404 continue
405 else:
406 raise
398 except core.SubversionException, e: 407 except core.SubversionException, e:
399 if e.apr_err == 170000 or (e.message.startswith("URL '") 408 if e.apr_err == 170000 or (e.message.startswith("URL '")
400 and e.message.endswith("' doesn't exist")): 409 and e.message.endswith("' doesn't exist")):
401 delete_all_files = True 410 delete_all_files = True
402 else: 411 else: