Show More
@@ -177,12 +177,11 b' class transplanter(object):' | |||||
177 | lock.release() |
|
177 | lock.release() | |
178 | wlock.release() |
|
178 | wlock.release() | |
179 |
|
179 | |||
180 | def filter(self, filter, changelog, patchfile): |
|
180 | def filter(self, filter, node, changelog, patchfile): | |
181 | '''arbitrarily rewrite changeset before applying it''' |
|
181 | '''arbitrarily rewrite changeset before applying it''' | |
182 |
|
182 | |||
183 | self.ui.status(_('filtering %s\n') % patchfile) |
|
183 | self.ui.status(_('filtering %s\n') % patchfile) | |
184 | user, date, msg = (changelog[1], changelog[2], changelog[4]) |
|
184 | user, date, msg = (changelog[1], changelog[2], changelog[4]) | |
185 |
|
||||
186 | fd, headerfile = tempfile.mkstemp(prefix='hg-transplant-') |
|
185 | fd, headerfile = tempfile.mkstemp(prefix='hg-transplant-') | |
187 | fp = os.fdopen(fd, 'w') |
|
186 | fp = os.fdopen(fd, 'w') | |
188 | fp.write("# HG changeset patch\n") |
|
187 | fp.write("# HG changeset patch\n") | |
@@ -194,7 +193,9 b' class transplanter(object):' | |||||
194 | try: |
|
193 | try: | |
195 | util.system('%s %s %s' % (filter, util.shellquote(headerfile), |
|
194 | util.system('%s %s %s' % (filter, util.shellquote(headerfile), | |
196 | util.shellquote(patchfile)), |
|
195 | util.shellquote(patchfile)), | |
197 |
environ={'HGUSER': changelog[1] |
|
196 | environ={'HGUSER': changelog[1], | |
|
197 | 'HGREVISION': revlog.hex(node), | |||
|
198 | }, | |||
198 | onerr=util.Abort, errprefix=_('filter failed')) |
|
199 | onerr=util.Abort, errprefix=_('filter failed')) | |
199 | user, date, msg = self.parselog(file(headerfile))[1:4] |
|
200 | user, date, msg = self.parselog(file(headerfile))[1:4] | |
200 | finally: |
|
201 | finally: | |
@@ -209,7 +210,7 b' class transplanter(object):' | |||||
209 | date = "%d %d" % (time, timezone) |
|
210 | date = "%d %d" % (time, timezone) | |
210 | extra = {'transplant_source': node} |
|
211 | extra = {'transplant_source': node} | |
211 | if filter: |
|
212 | if filter: | |
212 | (user, date, message) = self.filter(filter, cl, patchfile) |
|
213 | (user, date, message) = self.filter(filter, node, cl, patchfile) | |
213 |
|
214 | |||
214 | if log: |
|
215 | if log: | |
215 | # we don't translate messages inserted into commits |
|
216 | # we don't translate messages inserted into commits |
@@ -330,6 +330,27 b' test filter with failed patch' | |||||
330 | [255] |
|
330 | [255] | |
331 | $ cd .. |
|
331 | $ cd .. | |
332 |
|
332 | |||
|
333 | test environment passed to filter | |||
|
334 | ||||
|
335 | $ hg init filter-environment | |||
|
336 | $ cd filter-environment | |||
|
337 | $ cat <<'EOF' >test-filter-environment | |||
|
338 | > #!/bin/sh | |||
|
339 | > echo "Transplant by $HGUSER" >> $1 | |||
|
340 | > echo "Transplant from rev $HGREVISION" >> $1 | |||
|
341 | > EOF | |||
|
342 | $ chmod +x test-filter-environment | |||
|
343 | $ hg transplant -s ../t --filter ./test-filter-environment 0 | |||
|
344 | filtering * (glob) | |||
|
345 | applying 17ab29e464c6 | |||
|
346 | 17ab29e464c6 transplanted to 5190e68026a0 | |||
|
347 | ||||
|
348 | $ hg log --template '{rev} {parents} {desc}\n' | |||
|
349 | 0 r1 | |||
|
350 | Transplant by test | |||
|
351 | Transplant from rev 17ab29e464c6ca53e329470efe2a9918ac617a6f | |||
|
352 | $ cd .. | |||
|
353 | ||||
333 |
|
354 | |||
334 | test with a win32ext like setup (differing EOLs) |
|
355 | test with a win32ext like setup (differing EOLs) | |
335 |
|
356 |
General Comments 0
You need to be logged in to leave comments.
Login now