Что означает символ статуса 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.m, но есть много измененных файлов. Не знаю почему. У кого-нибудь есть советы по работе с SVN и XCode? Должен ли я помещать исходные файлы только под контроль версий?

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

Ответ 1

SVN Book говорит:

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

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

Ответ 2

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

Если папка Test

  • mv Test Test1
  • svn remove Test
  • mv Test1 Test

Ответ 3

С

svn help status

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

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

Надеюсь, что это поможет.

Ответ 4

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

Ответ 5

Это может произойти, когда вы удаляете папку .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 добавления/удаления и внесения изменений снова

Ответ 6

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

Ответ 7

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

  • Резервное копирование файлов
  • Удален каталог, о котором идет речь, с помощью rm -r (linux)
  • Ran svn cleanup в каталоге
  • Ran svn up --force в каталоге

Ответ 8

Я просто хочу поделиться, что это проблема, часто возникающая при установке расширений в Joomla. Расширения устанавливаются через CMS и принадлежат apache без групповой записи. Как правило, следующим шагом является добавление файлов в SVN, но если вы не используете sudo или не изменяете файл perms, тогда SVN терпит неудачу, когда он не может записать каталог .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

Ответ 9

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

Ответ 10

У меня часто было это при обновлении модулей под (например.) 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"

Ответ 11

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