Статус " S " в Subversion


в какой-то момент все файлы в моей рабочей копии были отмечены символом "S", как показано ниже:

$ svn st
M    S   AclController.php
     S   InstallationController.php
     S   CustomerController.php
     S   RedirController.php
     S   IndexController.php
     S   LoginController.php
     S   OrderController.php
     S   ProductController.php
     S   SelfInstallController.php
     S   SelfcareController.php

интересно, что это происходит только в этой конкретной рабочей копии - когда я проверяю проект в новый каталог, он не показывает метки "S".

Как избавиться от этого раздражающего символа "S"? Это значительно снижает четкость состояния WC.

обновление: я переключаюсь время от времени, используя стандартный svn switch синтаксис. Этого никогда не было вызывая этот символ "S", чтобы появиться до недавнего времени. Для переключения использовалась команда:

svn switch svn+ssh://xxxxxx/subversion/xxxxxxx/releases/1.0.16 .

есть ли способ, которым я могу очистить флаг "S"?

13 73

13 ответов:

Это означает, что файлы находятся в другом месте в вашем репозитории subversion, чем каталог, содержащий их. Решение состоит в том, чтобы переключить всю рабочую копию в одно и то же место. Смотрите дваразделы в книге subversion для получения подробной информации о том, как вызвать команду.

Если вы вызовете "svn info" В самом каталоге и на (одном из) файлов внутри вы получите два разных URL-адреса.

вы получаете статус 'S', Если url-адрес файла/каталога не соответствует URL-адресу родителя, за которым следует имя файла.

можете ли вы разместить url-адрес родительского и одного из дочерних узлов? (анонимизация URL, где это уместно)

у меня было'S' состояние при переключении с магистрали (r100) на какую-либо ветку (r50). Я получил ошибку :

svn: Failed to add file 'web/.htaccess': an unversioned file of the same name already exists

все веб/с подкаталоги были 'S' отметить.

причина: я удалил .htaccess для svn: игнорировать его (r100), а затем создал его снова (неверсированный и игнорируемый). Ветка (r50) все еще имела web/.htaccess в репо.

решение :

mv web/.htaccess ../../
svn switch back to trunk
svn switch to branch again

все нормально.

У меня была эта проблема с каталогом, который я успешно передал SVN. Решение для меня было стереть его локально, а затем обновить. Я не видел никаких различий, но ... svn файл был исправлен по любой причине (не более S).

просто замечание: я получил тот же символ S, Когда я проверил удаленный каталог из то же самое место в репозитории, но с использованием другого URL, т. е. использование различных протоколов для проверки, таких как ' svn checkout svn+ssh://user@scm.gforge...'против' svn checkout --username user https://scm.gforge....'. Я решил это, проверив его снова, используя тот же URL-адрес, который я использовал для первой проверки.

в случае, если кто-то приходит поздно, ища ответ (который правильно указан выше), я считаю, что вероятной причиной этой ситуации является "переключатель svn" в Родительском каталоге, который терпит неудачу (как и в случае локального незафиксированного файла с тем же именем и без опции --force), оставляя все файлы после сбоя "отключенным".

вот почему (предполагая, что исходная проблема позже исправлена) последующий "переключатель svn" снова в том же родительском каталоге действительно будет переключатель оставшиеся ООН-переключил файлов в новый путь РЕПО.

Это означает, что вы переключились с одной рабочей копии на другую, например, вы проверили рабочую копию, а затем поменяли ее на сравнение с веткой кода. Взгляните на SVN book подробнее о том, как отменить это.

есть еще один способ, которым этот статус может быть достигнут - который, надеюсь, сэкономит кому-то некоторое время, отслеживая его.

я распаковал внешнюю библиотеку в свой корень SVN, и оказалось, что сторонний автор случайно включил свой собственный .папка svn в одной из своих папок. Это, конечно, перезаписывает нашу собственную, правильную папку subversion и имеет тот же эффект, как описано в другом месте на этой странице - папка, похоже, неожиданно переключилась на другую отделение.

это обычно вызвано прерыванием при переключении ветвей.

переключитесь на другую ветку, а затем вернитесь к ветке, которую вы действительно хотите.

svn switch some_other_branch_url

svn switch desired_branch_url

"пункт включен."

Если вы использовали "svn switch" на своей рабочей копии, это может объяснить это?

для меня это происходит, когда команда" svn switch " прерывается и для ее решения с помощью TortoriseSVN я нажимаю правой кнопкой мыши на файл и выбираю вернуться к родительскому

простое решение, чтобы избавиться от "S", Когда вы вопрос

svn status

это просто перейти к директории, которая помечена 'S 'и удалить скрытые.каталог СВН:

rm-rf .svn

после этого появляются источники, отмеченные '? и вы можете легко добавить их свежим:

svn добавить путь/к / ресурсу

Я предлагаю вам прочитать его официальную помощь, попробуйте:

svn st --help

или

svn st --help | grep S

'S' the item has a Switched URL relative to the parent