##// END OF EJS Templates
transplant: added 'HGREVISION' variable to the environment passed to the 'filter' command...
Luke Plant -
r13579:3cbb3c57 default
parent child Browse files
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