37 except ImportError: |
37 except ImportError: |
38 return False |
38 return False |
39 |
39 |
40 def has_cvs(): |
40 def has_cvs(): |
41 re = r'Concurrent Versions System.*?server' |
41 re = r'Concurrent Versions System.*?server' |
|
42 return matchoutput('cvs --version 2>&1', re) and not has_msys() |
|
43 |
|
44 def has_cvs112(): |
|
45 re = r'Concurrent Versions System \(CVS\) 1.12.*?server' |
42 return matchoutput('cvs --version 2>&1', re) and not has_msys() |
46 return matchoutput('cvs --version 2>&1', re) and not has_msys() |
43 |
47 |
44 def has_darcs(): |
48 def has_darcs(): |
45 return matchoutput('darcs --version', r'2\.[2-9]', True) |
49 return matchoutput('darcs --version', r'2\.[2-9]', True) |
46 |
50 |
276 "baz": (has_baz, "GNU Arch baz client"), |
280 "baz": (has_baz, "GNU Arch baz client"), |
277 "bzr": (has_bzr, "Canonical's Bazaar client"), |
281 "bzr": (has_bzr, "Canonical's Bazaar client"), |
278 "bzr114": (has_bzr114, "Canonical's Bazaar client >= 1.14"), |
282 "bzr114": (has_bzr114, "Canonical's Bazaar client >= 1.14"), |
279 "cacheable": (has_cacheable_fs, "cacheable filesystem"), |
283 "cacheable": (has_cacheable_fs, "cacheable filesystem"), |
280 "cvs": (has_cvs, "cvs client/server"), |
284 "cvs": (has_cvs, "cvs client/server"), |
|
285 "cvs112": (has_cvs112, "cvs client/server >= 1.12"), |
281 "darcs": (has_darcs, "darcs client"), |
286 "darcs": (has_darcs, "darcs client"), |
282 "docutils": (has_docutils, "Docutils text processing library"), |
287 "docutils": (has_docutils, "Docutils text processing library"), |
283 "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"), |
288 "eol-in-paths": (has_eol_in_paths, "end-of-lines in paths"), |
284 "execbit": (has_executablebit, "executable bit"), |
289 "execbit": (has_executablebit, "executable bit"), |
285 "fifo": (has_fifo, "named pipes"), |
290 "fifo": (has_fifo, "named pipes"), |