Это, вероятно, довольно сложно в общем случае. Однако в ограниченных случаях, когда это работает (и не является проблемой, вызывающей недовольство в np), это, вероятно, будет гораздо более полезным, если вы будете думать с точки зрения изменений, а не изменений отдельных исходных файлов.
В прошлом я делал нечто подобное для проекта с доменом, ограниченным:
- для определенного сайта,
- с определенными данными, загруженными в него,
- для определенного подмножества страниц на этом сайте
была ли разница между тем, что отображалось между одним набором изменений и следующим, когда они были зафиксированы в голове. Для этого я использовал тестовый веб-сайт / базу данных и имел скрипт, который его развернул и заполнил. Для каждой рассматриваемой страницы я взял сумму md5 того, что было отображено (наряду с некоторыми вещами, такими как некоторые ссылки на javascript, таблицы стилей и изображения.)
Я упоминаю об этом, потому что это на самом деле очень хорошо масштабируется и может быть тем, что вы пытаетесь сделать. Это особенно легко сделать с рельсами из-за таких вещей, как марионетка, капистрано или повар, которые помогают этому процессу.
Я никогда не удосужился выяснить соответствие между определенными файлами и определенными URL-адресами, потому что было трудно понять, что для таких вещей, как версионные библиотеки, гемы и т. Д., Было проще просто вывести процесс из списка измененных URL для каждого коммита разработчика и не беспокойтесь об этом отдельно для каждого файла.
удачи!