#regex #svn #ant
#регулярное выражение #svn #ant
Вопрос:
У меня есть различные проекты, в которых были файлы с историей SVN. Недавно я переместил эти проекты в репозиторий Mercurial, так что теперь история в файле бесполезна. Есть ли способ удалить те, которые не вручную?
Вот пример:
/*
* $Rev:x$
* $LastChangedDate:x$
* $LastChangedBy:x$
*/
Где x — значение в файлах. Я предполагаю, что какое-то регулярное выражение поможет. Есть идеи?
Редактировать:
Это рабочий ответ:
<target name="remove-svn-history">
<replaceregexp byline="false" match="A/*.*?*/" replace="">
<fileset dir="src" includes="**/*.java"/>
</replaceregexp>
</target>
Ответ №1:
Предполагая, что это в начале файла, вы можете сопоставить его со следующим регулярным выражением:
A/*.*?*/
Комментарии:
1. Я пробовал, но не повезло. Я обновлю вопрос с помощью задачи ant, которая у меня есть до сих пор.
2. Мне приходит в голову, что я использовал предположение, что точка соответствует новой строке. Недостаточно знаком с регулярным выражением ant / java, чтобы знать, включено ли это по умолчанию или нет. Попробуйте добавить (?s) в начало, т.е. (?s) \A /*.*?*/
3. Только что заметил, что у вас есть byline=»true», что, по-видимому, заставляет его обрабатывать построчно. Регулярное выражение, которое я написал, предназначено для захвата всего блока комментариев. Попробуйте установить для byline значение false, которое по умолчанию соответствует ant.apache.org/manual/Tasks/replaceregexp.html .