scanf
оставляет пробел во входном буфере, включая символы новой строки. Чтобы использовать fgets для чтения следующей строки, вам нужно вручную удалить оставшуюся часть текущей строки:
int c;
do{
c = getchar();
}while(c != EOF && c != '\n');
Один подход был бы к:
Другая опция состояла бы в том, чтобы удалить высокоуровневую папку и проверить снова. Надо надеяться, это не прибывает в это все же.
Коллега на работе постоянно видит это сообщение, и для него это - потому что он удалил каталог при управлении версиями SVN без удаление его от SVN, и затем создал новый каталог в его месте не при управлении версиями с тем же именем.
, Если это - Ваша проблема...:
существуют различные способы зафиксировать его, в зависимости от того, как/почему каталог был заменен.
Так или иначе, Вы, вероятно, должны будете:
А Переименовывают существующий каталог к временному имени
, B) Делают SVN возвращается для восстановления каталога, удаленного из файловой системы, но не из SVN
Оттуда, Вы были бы любой
Копия А соответствующие файлы в каталог, который был удален
B), Если у Вас было существенное изменение содержания в каталоге, сделайте SVN удаляет на оригинале, фиксации, и переименовывает Ваш новый каталог назад к желаемому имени, сопровождаемый SVN добавляют для получения что один при управлении версиями.
Вы используете TortoiseSVN и просто обновленные? У меня была та проблема прежде при перемещении от 1,4 до 1,5 и не перезагрузка. (Попробуйте перезагрузку).
причина, которую необходимо перезагрузить, состоит в том, потому что файл кэша становится все броским.
Иначе, чтобы просто идти дальше, экспортируют ту рабочую копию в новую папку (не копируйте .svn скрытые папки), переконтроль, проект, и кладет обратно весь Ваш код, затем возобновляет Вашу фиксацию.
SVN обычно обновляет свою внутреннюю структуру (.svn/prop-base) файлов в папке, прежде чем фактические файлы будут выбраны из репозитория. Как только файлы выбираются, это будет разрешено. Часто ошибка брошена, потому что неудавшееся "обновление" или преждевременно отменило во время прогресса обновления.
Теперь, обновление должно работать.
Имел ту же проблему, потому что я экспортировал папку под управляемой версией папкой. Должен был удалить папку из TortoiseSVN, затем удалить папку из файловой системы (TortoiseSVN не нравятся неимеющие версию подпапки... почему нет???)
просто удалите папки .svn, а затем выполните очистку родительского каталога. Прекрасно работает !!
Загляните в свою папку .svn
, там будет файл с именем lock
. Удалите этот файл, и вы сможете обновить. В каталоге .svn
каждого подкаталога может быть больше файлов блокировки. Их также нужно будет удалить. Это можно сделать в виде пакета из командной строки, например, с помощью
find . -name 'lock' -exec rm -v {} \;
. Обратите внимание, что вы вручную редактируете файлы в папке .svn
. Они не зря попали туда. Эта причина может быть ошибкой, но в противном случае вы можете повредить свою локальную копию.
Когда у меня возникает эта проблема, я обнаруживаю, что выполнение команды очистки непосредственно на пути проблемы обычно работает. Затем я снова запустил очистку из рабочего корня, и он пожалуется на какой-то другой каталог. и я просто повторяю, пока он не перестанет жаловаться.
For me, the trick was to run svn cleanup
at the top of my working copy, not in the folder where I'd been working the whole time before the problem occurred.
Самый простой способ сделать это - показать скрытые папки, а затем открыть папку .SVN. Вы должны увидеть файл размером 0 КБ с именем "lock", удаление которого устранит проблему
Если вы работаете на компьютере с Windows, просмотрите репозиторий через браузер, и вы вполне можете увидеть два файла с одним и тем же именем, но в разных регистрах. Subversion чувствительна к регистру, а Windows - нет, поэтому вы можете получить блокировку, когда Windows думает, что извлекает один и тот же файл, а Subversion - нет. Удалите повторяющиеся имена файлов в репозитории и повторите попытку.
У меня возникла эта проблема, потому что внешние папки не хотят связывать с существующей папкой. Если вы добавите строку свойств svn: externals, где местом назначения является существующая папка (с версией или без нее), вы получите ошибку блокировки SVN Woring Copy. Здесь очистка также сообщит вам, что все в порядке, но обновление не будет работать.
Решение: удалите проблемную папку из репозитория и обновите корневую папку, в которой установлено свойство svn: externals. Это создаст папку, и все снова будет в порядке.
Эта проблема возникла у меня, потому что svn: externals для файлов требует, чтобы папка назначения контролировалась версиями. После того, как я заметил, что это не работает в разных репозиториях, я переключился с внешних файлов на внешнюю папку и попал в эту неразбериху.
Начать поиск .... Заблокировать ... Выбрать все файлы в списке и удалить .. исправлено
нужно сделать следующее:
svn status | grep ". L" | sed 's/.* (.*)$/\1/' | awk '{print length($1),$1}' | sort -nr | awk '{print "pushd " $2 "; svn cleanup ; popd"}' | sh
Не удаляйте свое решение!
в папке .svn у вас есть файл под названием lock он имеет длину 0 байт
Вы можете удалить все эти файлы из всех папок .svn в вашем решении и оно будет работать
Это сработало в моем случае
У меня это было под TortoiseSVN и ошибка был связан с новым каталогом, который я создал в рамках нового проекта. Я только что создал этот проект, поэтому раньше этот каталог не существовал. Я заглянул в обозреватель репозитория и обнаружил, что новая папка действительно уже была в репозитории, но TortoiseSVN не показывал ее как зафиксированную.
Чтобы обойти это, поскольку я все равно только что создал папку, я удалил ее в репозитории, а затем сделал фиксацию. Все работало нормально.
Поскольку я сделал это вне Visual Studio, мне пришлось перезапустить Visual Studio, чтобы она снова во всем разобралась.