Статус " 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.

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

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

есть ли способ очистить флаг" S"?

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

все Web / 's subdirs были'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), оставляя все файлы после сбоя "un-switched".

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


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


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

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


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

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

svn switch some_other_branch_url

svn switch desired_branch_url


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

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


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


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

svn status

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

rm-rf .svn

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

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


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

svn st --help

или

svn st --help | grep S

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