Определение URL обновляется через серию журналов коммитов. - PullRequest
1 голос
/ 21 марта 2010

Я работаю над проектом, в котором мне программно необходимо знать, когда URL был изменен разработчиком, после публикации или во время развертывания. Очевидный ответ может состоять в том, чтобы свернуть URL-адрес за один день, сохранить выходные данные, а затем снова свернуть через x дней и сравнить их. Это не будет работать в моем случае, так как я только ищу изменения, сделанные разработчиком. Если сайт является блогом, новые комментарии, фотографии, отправленные пользователем, и т. Д. Сделают этот анализ бесполезным.

Пример RoR, с использованием github. Предположим, у меня есть доступ ко всему хранилищу и всем журналам фиксации между итерациями. Есть ли способ, которым я мог видеть, что "/views/people/show.html.erb" был зафиксирован, а затем откат назад (возможно, проверяя маршруты. Rb), чтобы найти URL-адрес, который я затем смогу найти через браузер?

Ответы [ 3 ]

1 голос
/ 21 марта 2010

Это, вероятно, довольно сложно в общем случае. Однако в ограниченных случаях, когда это работает (и не является проблемой, вызывающей недовольство в np), это, вероятно, будет гораздо более полезным, если вы будете думать с точки зрения изменений, а не изменений отдельных исходных файлов.

В прошлом я делал нечто подобное для проекта с доменом, ограниченным:

  • для определенного сайта,
  • с определенными данными, загруженными в него,
  • для определенного подмножества страниц на этом сайте

была ли разница между тем, что отображалось между одним набором изменений и следующим, когда они были зафиксированы в голове. Для этого я использовал тестовый веб-сайт / базу данных и имел скрипт, который его развернул и заполнил. Для каждой рассматриваемой страницы я взял сумму md5 того, что было отображено (наряду с некоторыми вещами, такими как некоторые ссылки на javascript, таблицы стилей и изображения.)

Я упоминаю об этом, потому что это на самом деле очень хорошо масштабируется и может быть тем, что вы пытаетесь сделать. Это особенно легко сделать с рельсами из-за таких вещей, как марионетка, капистрано или повар, которые помогают этому процессу.

Я никогда не удосужился выяснить соответствие между определенными файлами и определенными URL-адресами, потому что было трудно понять, что для таких вещей, как версионные библиотеки, гемы и т. Д., Было проще просто вывести процесс из списка измененных URL для каждого коммита разработчика и не беспокойтесь об этом отдельно для каждого файла.

удачи!

0 голосов
/ 21 марта 2010

Я не знаком с рельсами, но я предполагаю, что нет простого способа проанализировать код в любом состоянии и найти карту, которая связывает все URL со страницами / функциями, которые участвуют в их рендеринге.

Практическим решением для каждого разработчика было бы включить в сообщение журнала несколько специальных строк, которые указывают, какие URL влияют на его изменения.

Например:

!url: /sections/people/show

Затем вы можете выполнить поиск в журнале для !url: строк, используя git log --grep='!url:', и проанализировать выходные данные, чтобы собрать URL-адреса, затронутые каждым коммитом.

0 голосов
/ 21 марта 2010

Вы можете проверить журнал для определенного файла, передав его в качестве последнего параметра git log. Например,

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

покажет только журнал коммитов, которые каким-то образом коснулись show.html.erb. Для лучшего вывода вы можете поиграть с дополнительными параметрами до git log. Я полагаю, что с этого момента вы могли бы использовать rake routes или routes.rb, чтобы выяснить URL-адреса, по которым вам нужно будет нажать, чтобы создать ваши изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...