开发者

Is there a tool to automatically extract common subroutines from files?

开发者 https://www.devze.com 2023-03-17 23:35 出处:网络
I h开发者_运维百科ave two 1000+ line programs in Perl, each with about 20 subroutines in the main file. One was forked from the other some time ago and I want to factor out the common parts (before po

I h开发者_运维百科ave two 1000+ line programs in Perl, each with about 20 subroutines in the main file. One was forked from the other some time ago and I want to factor out the common parts (before porting features backward.) Is there a diff tool that will treat the subroutines (and preceding comments) as units, and extract the common units into a new file? (if one line of a subroutine is different, the unit doesn’t match.)

My SCM is currently Subversion if that helps. A Perl script that processes the code would be cool.


You can try to use the PPI module; to my knowledge there's no tool for refactoring as the one you mentioned.


If you had 500,000 lines of code it might be useful to have or write such a tool. For 1000 lines, this shouldn't be too hard with a simple visual diff tool, like BeyondCompare ($) or WinMerge (free).


You're trying to compare two different versions of the files?

I use VIM which comes with a built in diff program vimdiff and a fully gui one called gvimdiff. It'll fold common lines and just show you the lines that differ and where.

With gvim, you can open up three splits in one window (the two versions and a blank) and then copy over the various lines you want. If you're using Subversion, you can use the built in merge tool (if you're talking about different versions of the same file). The Subversion merge is pretty good and will probably help you with the merge issues.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号