确定通过一系列提交日志更新的URL

时间:2010-03-21 03:37:14

标签: ruby-on-rails git browser

我正在开发一个项目,我在程序上需要知道开发人员,帖子或部署过程中何时更改了URL。明显的答案可能是有一天卷曲URL,保存输出,然后在x天再次卷曲并将两者区分开来。这在我的情况下不起作用,因为我只是在寻找开发人员所做的改变。如果该网站是博客,新评论,用户提交的照片等将使这种差异无用。

RoR示例,使用github。假设我可以访问整个存储库以及迭代之间的所有提交日志。有没有办法让我看到“/views/people/show.html.erb”被提交,然后从那里回溯(可能是通过检查routes.rb),然后提出我可以通过浏览器点击的URL?

3 个答案:

答案 0 :(得分:1)

在一般情况下,这可能相当困难。但是,在它确实有效的限制情况下(并且不是一个非常烦人的问题),如果你考虑变更集而不是个别源文件的变化,它可能会更有用。

我过去为一个项目做了类似的事情,域名限制为:

  • 对于某个网站,     
  • 加载了某些数据,     
  • 针对该网站上某个页面的子集

在一个变更集与下一个变更集之间显示的内容之间存在差异,因为它们已提交到头部。为此,我使用了一个测试网站/数据库,并有一个部署并填充它的脚本。对于每个有问题的页面,我对显示的内容进行了md5总和(以及一些引用的javascript,样式表和图像等内容。)

我提到这个,因为这实际上很好地扩展,可能是你想要做的。使用rails特别容易,因为像puppet,capistrano或者厨师这样的事情可以帮助这个过程。

我从来没有费心去弄清楚特定文件和特定网址之间的映射,因为很难想象版本化的库,宝石等等。更容易让这个过程踢出一个变更列表每个开发人员提交的URL,不要在每个文件的基础上担心。

祝你好运!

答案 1 :(得分:0)

您可以通过将其作为最后一个参数传递给git log来检查特定文件的日志。例如,

$ git log -- app/views/people/show.html.erb

仅显示以某种方式触及show.html.erb的提交日志。为了获得更好的输出,您可以将其他参数调整为git log。我想从那里开始,您可以使用rake routesroutes.rb来确定生成图片时需要点击的网址。

答案 2 :(得分:0)

我不熟悉rails,但我认为没有简单的方法来分析任何州的代码,并找出一个地图,将所有网址链接到参与渲染它们的页面/函数。

一个实用的解决方案是让每个开发人员在日志消息中包含一些特殊的行,这些行指示他的更改会影响哪个URL。

例如:

!url: /sections/people/show

然后,您可以使用!url: grep git log --grep='!url:'行的日志,并解析输出以收集受每次提交影响的URL。