~abentley/bzrtools/bzrtools.dev

« back to all changes in this revision

Viewing changes to patch.py

  • Committer: Aaron Bentley
  • Date: 2006-12-12 16:50:31 UTC
  • Revision ID: abentley@panoramicfeedback.com-20061212165031-51w8gjy1eps1vnw0
update NEWS

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
17
import sys
18
18
from subprocess import Popen, PIPE
 
19
from urlparse import urlsplit, urlunsplit
19
20
 
20
21
from bzrlib import urlutils
21
22
from bzrlib.transport import get_transport
22
23
from bzrlib.workingtree import WorkingTree
23
24
import bzrlib.add
24
25
 
25
 
def patch(tree, location, strip, quiet=False):
 
26
def patch(tree, location, strip):
26
27
    """Apply a patch to a branch, using patch(1).  URLs may be used."""
27
28
    my_file = None
28
29
    if location is None:
29
30
        my_file = sys.stdin
30
31
    else:
31
32
        location = urlutils.normalize_url(location)
32
 
        dirname, basename = urlutils.split(location)
33
 
        my_file = get_transport(dirname).get(basename)
 
33
        (scheme, loc, path, query, fragment) = urlsplit(location)
 
34
        loc_start = urlunsplit((scheme, loc, '/', '', ''))
 
35
        my_file = get_transport(loc_start).get(path[1:])
34
36
    cmd = ['patch', '--directory', tree.basedir, '--strip', str(strip)]
35
 
    if quiet:
36
 
        cmd.append('--quiet')
37
37
    r = 0
38
38
    child_proc = Popen(cmd, stdin=PIPE)
39
39
    for line in my_file: