##// END OF EJS Templates
debuginstall: stop looking for patch utility, just test it
Patrick Mezard -
r5310:ba3dc788 default
parent child Browse files
Show More
@@ -863,42 +863,40 b' def debuginstall(ui):'
863
863
864 # patch
864 # patch
865 ui.status(_("Checking patch...\n"))
865 ui.status(_("Checking patch...\n"))
866 patcher = ui.config('ui', 'patch')
866 patchproblems = 0
867 patcher = ((patcher and util.find_exe(patcher)) or
867 a = "1\n2\n3\n4\n"
868 util.find_exe('gpatch') or
868 b = "1\n2\n3\ninsert\n4\n"
869 util.find_exe('patch'))
869 fa = writetemp(a)
870 if not patcher:
870 d = mdiff.unidiff(a, None, b, None, os.path.basename(fa))
871 ui.write(_(" Can't find patch or gpatch in PATH\n"))
871 fd = writetemp(d)
872 ui.write(_(" (specify a patch utility in your .hgrc file)\n"))
872
873 problems += 1
873 files = {}
874 try:
875 patch.patch(fd, ui, cwd=os.path.dirname(fa), files=files)
876 except util.Abort, e:
877 ui.write(_(" patch call failed:\n"))
878 ui.write(" " + str(e) + "\n")
879 patchproblems += 1
874 else:
880 else:
875 # actually attempt a patch here
881 if list(files) != [os.path.basename(fa)]:
876 a = "1\n2\n3\n4\n"
882 ui.write(_(" unexpected patch output!\n"))
877 b = "1\n2\n3\ninsert\n4\n"
883 patchproblems += 1
878 fa = writetemp(a)
884 a = file(fa).read()
879 d = mdiff.unidiff(a, None, b, None, os.path.basename(fa))
885 if a != b:
880 fd = writetemp(d)
886 ui.write(_(" patch test failed!\n"))
881
887 patchproblems += 1
882 files = {}
888
883 try:
889 if patchproblems:
884 patch.patch(fd, ui, cwd=os.path.dirname(fa), files=files)
890 if ui.config('ui', 'patch'):
885 except util.Abort, e:
891 ui.write(_(" (Current patch tool may be incompatible with patch,"
886 ui.write(_(" patch call failed:\n"))
892 " or misconfigured. Please check your .hgrc file)\n"))
887 ui.write(" " + str(e) + "\n")
888 problems += 1
889 else:
893 else:
890 if list(files) != [os.path.basename(fa)]:
894 ui.write(_(" Internal patcher failure, please report this error"
891 ui.write(_(" unexpected patch output!"))
895 " to http://www.selenic.com/mercurial/bts\n"))
892 ui.write(_(" (you may have an incompatible version of patch)\n"))
896 problems += patchproblems
893 problems += 1
897
894 a = file(fa).read()
898 os.unlink(fa)
895 if a != b:
899 os.unlink(fd)
896 ui.write(_(" patch test failed!"))
897 ui.write(_(" (you may have an incompatible version of patch)\n"))
898 problems += 1
899
900 os.unlink(fa)
901 os.unlink(fd)
902
900
903 # merge helper
901 # merge helper
904 ui.status(_("Checking merge helper...\n"))
902 ui.status(_("Checking merge helper...\n"))
General Comments 0
You need to be logged in to leave comments. Login now