Что означает символ состояния Subversion"~"?

Я получаю символ тильды, когда я делаю svn status.

вот результат проекта после его редактирования в XCode.

svn status
M      build/Currency_Converter.build/Currency_Converter.pbxindex/imports.pbxbtree
M      build/Currency_Converter.build/Currency_Converter.pbxindex/pbxindex.header
M      build/Currency_Converter.build/Currency_Converter.pbxindex/symbols0.pbxsymbols
~      build/Currency_Converter.build/Currency_Converter.pbxindex/strings.pbxstrings
M      main.m
//more changed files

есть идеи, что это значит? Не могу найти его в google или в любом из шпаргалок svn.

интересно, что я редактировал только main.м, а есть много измененных файлов. Не знаю почему. У кого-нибудь есть советы по работе с SVN и XCode? Должен ли я только помещать свои исходные файлы под версию контроль?

Edit: - вызвано тем, что файл, который уже находился под контролем версий, заменяется файлом другого типа. В данном случае струны.pbxstrings раньше был файлом, а теперь стал каталогом. Мораль истории заключается в том, что не помещайте папку сборки в систему управления версиями.

11 ответов


на SVN книга говорит:

Item версионный как один вид объекта (файл, каталог, ссылка), но был заменен другим видом объекта.

Итак, возможно, это был первоначально один файл, но вы изменили его на каталог или что-то в этом роде?


вот что я сделал:

Если папка Test

  1. MV Test Test1
  2. svn удалить тест
  3. МВ тест Тест1

С

svn help status

'~ ' версионный элемент затруднен каким-то элементом другого рода

Я видел это только там, где права доступа к файлам изменились, и svn не имел доступа к execute.

надеюсь, что это помогает.


svn delete --keep-local x
svn commit -m "del x"
svn add x
svn commit -m "blah"

самый простой способ исправить это-создать резервную копию, затем удалить папку или файл, который имеет этот статус, а затем сделать "svn up": это не обязательно папка, замененная файлом, это может быть просто так .папка svn отсутствует или повреждена.


Это может произойти, когда вы удалите .папка svn в папке (например, когда вы удаляете каталог, а затем снова создаете тот же каталог), или когда вы заменяете каталог символической ссылкой, или файл с тем же именем.

предположим, что это папка с именем a-folder, вы можете исправить это, выполнив следующие команды в родительской папке:

$ find a-folder -type d -name '.svn' -print0 | xargs -0 rm -Rf
$ svn up --force .
svn: Directory 'logs/.svn' containing working copy admin area is missing
$ svn up --force .
E    a-folder
...
Updated to revision n.

и затем это вопрос SVN добавления / удаления и фиксации изменений снова


была аналогичная проблема, SVN жаловался на блокировку. Вот что мы сделали:--1-->

  • резервное копирование файлов
  • удален соответствующий каталог с rm-r (linux)
  • побежал очистка svn в каталоге
  • побежал svn up -- force в каталоге

Я просто хочу поделиться тем, что это проблема, часто возникающая при установке расширений в Joomla. Расширения устанавливаются через CMS и принадлежат apache без групповой записи. Как правило, следующий шаг-Добавить файлы в SVN, но если вы не sudo или не измените файловые пермы, то SVN терпит неудачу, когда он не может написать .каталог СВН. Вот простое решение.

mv foo foo-bak
svn up foo
svn revert foo

# just for good measure. Foo should not show up in the two following commands.
ls | grep foo
svn st | grep foo

mv foo-bak foo
svn add foo

Это может быть также вопрос символических ссылок под Windows. Когда вы фиксируете символическую ссылку в SVN, а затем проверяете ее под Windows, ссылки изменяются на обычные файлы, и это также сообщается как ~.


У меня часто было это при обновлении модулей под (например.) Для Joomla!, Wordpress или Drupal. Иногда .каталог svn удаляется в процессе обновления.

# rename updated directory
mv foo foo.new

# restore the old directory
svn up foo

# merge / update the old directory with new items
# notice that the above command will preserve the obsolete files
# so you should do a diff -r in order to remove them
cp -r foo.new/* foo

# Add files commit, etc
svn add foo/*
svn delete foo/xx
svn commit -m "updated module"

~ versioned item obstructed by some item of a different kind
    Second column: Modifications of a file's or directory's properties