version-control - 在源代码中查找符号依赖关系

标签 version-control

今天遇到一个错误,让我想知道检查源代码一致性的工具。一、bug:

我的 jQuery 选择器期望 .attached_reports ,但 HTML 模板正在创建一个类为 attached-reports 的 div 。发生的事情是,我们热心的主题决定标准化所有类名以使用连字符而不是下划线,结果我们的代码崩溃了。

问题: 是否有一种工具或方法可以解析源代码,并将 attached-reports 的每次出现关联起来一起。然后,如果其中一个符号发生更改(例如,在版本控制提交时),它可以向团队发出更改通知吗?

最佳答案

您需要的是跨语言一致性检查器,它可以静态检查运行时可能发生的错误。

为此,您需要一个可以处理所有相关语言的工具(您有两个:Javascript?[用于 Jquery],特别引用 HTML 模板,以及 HTML 模板语言(不完全是 HTML)。该工具必须知道 JavaScript 代码将使用名称引用模板(大概这只是一个字符串;你怎么知道模板名称不是由某些神秘的过程计算出来的?),并且将引用 HTML 模板条目(如果有一个模板槽未被引用,可以吗?)

世界上充满了有趣的小语言以及它们之间的更有趣的约束(随着人们发明更多的 DSL 和集成规则,情况变得更糟)。您不太可能找到适合每种组合的现成工具。

我们的DMS Software Reengineering Toolkit旨在轻松接受新的语言描述或方言变体(以便您可以定义 HTML 模板变体)和自定义分析器(以便您可以检测违规行为)。 【DMS已经拥有稳定的常规和非常规Language Front Ends其中包括 JavaScript 的一个。 DMS 在多个方面都具有可扩展性;一是它可以同时处理的语言数量...例如您的情况中的“两种”。

DMS 使人们能够编写自定义分析器或转换器的代码。当然,无论采用何种分析,都受到可计算性的限制;如果您的模板名称是由晦涩难懂的 JavaScript 代码计算的,则该工具不太可能确定该计算名称是否与模板中的某些内容匹配。

关于version-control - 在源代码中查找符号依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10954879/

相关文章:

git - rebase 后我丢失了我的更改吗?

git - 带有签名的 git 中的可信开发路径

Git - 使 protected 功能分支与主分支同步

version-control - 忘记在 mercurial 提交描述中包含信息

git - 无法确定Java版本,Android Studio,Ubuntu 14.04

windows - 从 Mac 提交到 Windows 上的存储库时,获取 "can' t 获取文件上的独占锁定

Git 等同于 hg update

svn - 复制两次会导致分支内分支而不是错误

git - intellij idea : how to diff contents of a folder (recursively) against latest (or earlier) revision in SCM repo (e. g., Git ?)

version-control - github公共(public) repo 有多公开?