2

у меня есть рабочая копия SVN, которую я выполнил следующую команду в

find ./source * -type f -exec sed "s/@ version 0.5.3/@version 0.5.4/" -i {} \;

все файлы обновлены, но SVN не распознает никаких изменений при выполнении одного из этих

svn status ./source

svn diff ./source

SVN коммит./ источник

Я также пытался написать скрипт, который должен проверить $? от sed, и это нормально, "дотронься" до файла, чтобы обновить его, но sed, кажется, всегда возвращает 0 -.-

что я могу сделать сейчас? -.-

1 ответ1

1

Проблема заключается в том, что вы используете find:

find dir1 -type f

Будет соответствовать всем файлам в структуре каталогов, в том числе внутри .svn каталогов. Файлы в .svn - это те файлы, которые используются для выполнения svn diff . Итак, по сути, вы изменили все копии файлов в дереве, а не только рабочие копии.

Попробуйте этот синтаксис:

find ./source * -type f ! -path '*/.svn/*' -exec sed "s/@version 0.5.3/@version 0.5.4/" -I {} \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .