Мерзавец, эквивалентный из расширения ключевого слова $URL$ подрывной деятельности

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

Самый близкий аналог, который я мог найти, является gitattributes. Есть filter= директива, но кажется, что мерзавец не сообщает к фильтру, какое имя файла это фильтрует, который был бы необходим повернуться $URL$ в путь.

Есть также ident директива, которая повернулась бы $Id$ в мешанину капли. Это могло бы быть применимо, если можно было бы нанести на карту тот назад в имя пути, но мой мерзавец-fu не достаточно силен.

Какие-либо предложения?

Технологический процесс следующие:

  1. Администратор передает изменения VCS repo
  2. Администратор обновляет центральное расположение, которое проверило repo
  3. Администратор тянет изменения хозяина, использующего cfengine
15
задан Rudedog 13 January 2010 в 22:51
поделиться

2 ответа

Приближаются к проблеме из совершенно другого угла, как выполняются файлы в конечном итоге на торцевых хостах? Я думаю, что сегодня он либо зарегистрирован там непосредственно или скопирован как-то из уже проверенного репозитория на другом хосте?

Если это так, не могли бы вы изменять свой процесс, чтобы файлы проверены в репозитории Git, и сценарий делает $ URL $ или другое расширение ключевых слов после проверки . Таким образом, вы можете делать все необходимые замены, которые вам нравятся, и только ограничивается только тем, что можно выяснить скриптом в проверенном репозитории.

2
ответ дан 1 December 2019 в 04:40
поделиться

Systemtap предназначен для решения тех же задач, что и dtrace, и имеет аналогичный пользовательский интерфейс - пользователь пишет небольшие сценарии, которые присоединяют действия к именованным зондам.

Говорят, что это нестабильно, он обычно не компилируется в ваше ядро по умолчанию, но как только я получил его работать, у меня не было никаких проблем.

Вы можете увидеть, как он сравнивает с dtrace в этой таблице на сайте systemtap (Может быть партизанским: -)

Dtrace был частично портирован на Linux Пол Фокс, энтузиаст, и доступен для загрузки для вас, чтобы попробовать - проверьте ссылки на его блог .

Было сказано, что kprobes являются заменой dtrace, но я никогда не пробовал их.

-121--1193215-

GAC

Начиная с .NET Рамки 4, расположение по умолчанию для глобальный кэш сборки -% windir %\Microsoft.NET\assembly. В более ранних версии .NET Framework, расположение по умолчанию: % windir %\assembly

-121--2702168-

Как упоминалось в «Имеет ли git что-то вроде svn propset svn: keywords или пред-/постфиксационных крючков?» , Git не поддерживает расширение ключевых слов.

« Работа с расширением ключевого слова SVN с помощью git-sv » обеспечивает решение, основанное на git config filter (что не совсем то, что нужно) и/или gitatributes .


Ближайший пример, если расширение информации о файле я нашел его по-прежнему на основе метода smudge/clean, с этим git хэш-фильтром , но чистая часть удаляет его из файла, и путь не может быть найден.

Этот поток фактически периоды его (а также упоминание некоторых команд git-fu, которые могут содержать то, что вы ищете, я не тестировал их):

В любом случае, смешение/чистота не дает немедленного решения проблемы из-за меньших технических недостатков:

  • фильтру smudge не передается имя извлекаемого файла, поэтому невозможно точно найти идентификатор фиксации.
    Однако это облегчается тем фактом, что «smudge» выполняется только для измененных файлов, поэтому последняя фиксация является необходимой.

  • фильтру сглаживания не передан идентификатор фиксации. Это немного серьезнее, так как эту информацию негде получить иначе.
    Я попытался использовать значение HEAD, но, по-видимому, оно еще не обновлено в момент запуска «smudge», поэтому файлы заканчиваются датой «предыдущей» фиксации, а не выданной фиксации.
    «Предыдущее» означает фиксацию, которая была извлечена ранее. Проблема усугубляется, если другая ветвь извлекается, так как файлы получают отметку времени предыдущей ветви.

AFAIR, отсутствие информации в фильтре смута было намеренным, чтобы препятствовать этому конкретному использованию механизма смута/очистки. Тем не менее, я думаю, что это можно пересмотреть, учитывая случай использования Питера: «только извлечение» рабочей области для немедленной публикации на веб-сервере.
Кроме того, любой, кто заинтересован в этом сценарии использования, может реализовать дополнительные аргументы smudge в качестве локального исправления сайта.

И тогда есть небольшие неприятности, которые кажутся неизбежными: если изменить «чистый» фильтр и проверить более раннюю редакцию, то будет сообщено, что он имеет изменения (из-за измененного «чистого» определения).

6
ответ дан 1 December 2019 в 04:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: