On Wed, Jun 10, 2015 at 05:21:33PM -0700, Junio C Hamano wrote: > "brian m. carlson" <[email protected]> writes: > > [0] https://github.com/bk2204/git.git object-id-part2 > > No approach other than just letting reviewers fetch from there and > taking a look is reasonable, I would think. > > Did you create this manually, or is it a mechanical scripted rewrite > followed by manual clean-up? If the latter, it may help people by > posting the mechanical recipe _and_ a patch that shows the manual > clean-up. That is something we can reasonably review and discuss.
It's mostly manual, but some pieces (the is_null_sha1 and sha1_to_hex
conversions) were scripted using the embedded Ruby interpreter in Vim.
The script I used to do that is below.
def refactor(s)
methods = %w(is_null_sha1 sha1_to_hex).map do |m|
[m, m.sub('sha1', 'oid')]
end.to_h
s.sub(/\A(.*)(is_null_sha1|sha1_to_hex)\(([^)]+)(\.|->)sha1\)(.*)\z/) do
[$1, methods[$2], "(&#{$3}#{$4}oid)", $5].join('')
end
end
def replace_line(method)
func = Object.method(method)
VIM::Buffer.current.line = func.call(VIM::Buffer.current.line)
end
It was invoked as replace_line(:refactor), so it basically modified each
relevant line by passing it through refactor.
Sorry for choosing a language that's less familiar to the list: if I had
known you'd want to see it, I would have used Perl.
--
brian m. carlson / brian with sandals: Houston, Texas, US
+1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only
OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
signature.asc
Description: Digital signature

