Если кто-то работал с svn из командной строки на mac, то возможно вы сталкивались с проблемой, что svn не понимает файлы с собакой "@".
Например, если вы хотите добавить файл menu-icon@2x.png выполнив команду svn add menu-icon@2x.png получите
svn add menu-icon@2x.png
svn: warning: W155010: '........FILE PATH..../menu-icon' not found
svn: E200009: Could not add all targets because some targets don't exist
svn: E200009: Illegal target for the requested operation
Это решается добавлением "@" к название файла
vitaly$ svn add menu-icon@2x.png@
A (bin) menu-icon@2x.png
Narnia:Slice vitaly$
Допустим у вас есть целая папка с такими файлами
vitaly$ svn status
A .
? Splash-568h@2x.png
? Splash@2x.png
? background-568h@2x.png
? background@2x.png
? login-icon@2x.png
? loupe-icon@2x.png
? menu-icon@2x.png
? password-icon@2x.png
? reports-icon@2x.png
? settings-icon@2x.png По одному добавлять не удобно... Используем то, что уже знаем + pipe'ы и пишем следующий набор команд
vitaly$ ls | awk '{print $1"@" }' | xargs svn add
A (bin) Splash-568h@2x.png
A (bin) Splash@2x.png
A (bin) background-568h@2x.png
A (bin) background@2x.png
A (bin) login-icon@2x.png
A (bin) loupe-icon@2x.png
A (bin) menu-icon@2x.png
A (bin) password-icon@2x.png
A (bin) reports-icon@2x.png
A (bin) settings-icon@2x.png
ls - показывает список файлов в текущей папке
awk - сканер по патерну, аля regex. То, что в кавычках это команда которую мы выполняем если паттерн подошел. $1 будет название файла. "@" - то, что мы добавляем к названию файла
xargs - выполняем команду.
Таким же образом можно использовать и svn revert и тп.
Комментариев нет:
Отправить комментарий