diff -r 19436facb073 -r e6bef16b6cec mercurial/util.py --- a/mercurial/util.py Wed Aug 02 00:20:28 2006 +0200 +++ b/mercurial/util.py Tue Aug 01 15:51:13 2006 -0700 @@ -93,11 +93,15 @@ return p_name return default -def patch(strip, patchname, ui): +def patch(strip, patchname, ui, cwd=None): """apply the patch to the working directory. a list of patched files is returned""" patcher = find_in_path('gpatch', os.environ.get('PATH', ''), 'patch') - fp = os.popen('%s -p%d < "%s"' % (patcher, strip, patchname)) + args = [] + if cwd: + args.append('-d "%s"' % cwd) + fp = os.popen('%s %s -p%d < "%s"' % (patcher, ' '.join(args), strip, + patchname)) files = {} for line in fp: line = line.rstrip()