2013-06-20 4 views
1

В настоящее время папка .settings и .project находятся под контролем версии. Мне нужно добавить свойство svn: ignore. Вот как я всегда делал это, когда мы были только немногие разработчики:Добавление свойства svn: ignore в файлы, которые уже находятся под управлением

  1. резервного копирования их временного локально
  2. Удалить их локально и совершать (или удалить их удаленно и обновление)
  3. Re добавить их локально из резервной копии (шаг # 1)
  4. Добавьте SVN: игнорировать свойство и совершать

проблема заключается в том, что другие разработчики будут создавать резервные копии своих файлов тоже перед обновлением, так как их локальные файлы будут удалены приобновление. Любое другое менее ограничительное решение, или мне действительно нужно отправить «резервное копирование перед обновлением». Эл. адрес?

ответ

2

Вместо этого вы должны использовать svn rm --keep-local.

Если вы на Unix, вы можете проверить это:

find . -name .project -exec sh -c 'svn info "{}"' \; -a \ 
     -execdir bash -c 'svn -q propset svn:ignore -F <((svn propget svn:ignore;\ 
        echo .project) | sort -u) .' \; -a \ 
     -execdir svn delete --keep-local {} \; 
  1. Поиск .project файл и проверить, если это версированными.
  2. восстановить свойства и добавить .project в локальный каталог. sort -u предотвращает от дублей
  3. Если вы хотите, чтобы запрос на подтверждение, используйте --okdir вместо

Примечания: вы можете совершить только в конце, так как это та же операция (т.е. «очищающие свойства»).

FWIW не теряют надежды, СВН 1.8 содержит наследственные свойства (http://subversion.apache.org/docs/release-notes/1.8.html#iprops)

+0

Большое спасибо, я не знаю, что это '--keep-local' вариант. Собственно, я забыл сказать, что я использовал Subclipse (расширение SVN для Eclipse). Благодаря вашему ответу, я смог найти [этот] (http://stackoverflow.com/a/8067815/1225328), который объясняет, что, к сожалению, Subclipse не управляет '--keep-local' (пока?) , Спасибо, в любом случае :) – sp00m