【问题标题】:Is there a tool to automatically extract common subroutines from files?有没有工具可以自动从文件中提取常用子程序?
【发布时间】:2011-07-05 15:39:24
【问题描述】:

我在 Perl 中有两个超过 1000 行的程序,每个程序在主文件中有大约 20 个子例程。一个是前一段时间从另一个分叉出来的,我想把公共部分分解出来(在向后移植特性之前)。是否有一个差异工具可以将子例程(和前面的 cmets)视为单位,并将公共单位提取到一个新文件? (如果子程序的一行不同,则单位不匹配。)

如果有帮助的话,我的 SCM 目前是 Subversion。处理代码的 Perl 脚本会很酷。

【问题讨论】:

标签: perl svn ide refactoring


【解决方案1】:

您可以尝试使用PPI 模块;据我所知,没有你提到的重构工具。

【讨论】:

  • PPI 主要为我工作。 HERE 文档出了点问题。但现在我有一个工具可以自动进行第一次切割。
【解决方案2】:

如果您有 500,000 行代码,那么拥有或编写这样的工具可能会很有用。对于 1000 行,使用简单的视觉差异工具(如 BeyondCompare ($) 或 WinMerge(免费))应该不会太难。

【讨论】:

  • 这是事情的原理。
【解决方案3】:

您要比较两个不同版本的文件?

我使用 VIM,它带有一个内置的差异程序 vimdiff 和一个名为 gvimdiff 的完全 gui 程序。它会折叠常见的线条,并只显示不同的线条和位置。

使用 gvim,您可以在一个窗口中打开三个拆分(两个版本和一个空白),然后复制您想要的各个行。如果您使用的是 Subversion,则可以使用内置的合并工具(如果您谈论的是同一文件的不同版本)。 Subversion 合并非常好,可能会帮助您解决合并问题。

【讨论】:

  • 不,重新阅读问题。有很多差异工具只能在行级别上运行。
猜你喜欢
  • 2011-03-17
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多