Я пытаюсь объединить ветку с мастером. Структура ветки:
master
v0.43
Мои важные изменения приведены в v0.43. После совершения фиксации в v0.43 я пытаюсь объединить v0.43 в master. Я получаю следующую ошибку:
Произошла ошибка. Подробное сообщение: ошибка была вызвана libgit2. Category = Invalid (Ошибка). Не смог открыть 'C:/Пользователи/Me/Source/Repos/MyüProject XXX/MyüProject XXX/XXX XXX X.v12.suo 'для записи: доступ запрещен.
На панели "Вывод" дополнительной информации нет.
Я также получаю указанное выше сообщение об ошибке, когда просто пытаюсь перейти от ветки v0.43 к главной ветке. В основном, я застрял в ветке v0.43.
Обратите внимание, что скрытые альфа-символы "X" в имени фактического проекта. Имеются ли пробелы? Действительно ли? Если имена папок и файлов действительны, а специальный символ действителен, почему Access Denied? Или нужно ли объединить этот файл вообще?
Я понимаю, что это файл настроек пользователя Visual Studio. Я уверен, что он не включен в репозиторий GIT, хотя я только проверил с помощью:
git ls-files *.suo
Файлы не возвращаются.
Имеет ли эта проблема какое-либо отношение к конфликту в учетных данных между TFS/ GIT и настройками в Visual Studio или Windows? Кстати, я запускаю VS 2013.2 на Win 8.1.
Я не могу определить, действительно ли нужно, чтобы слияние ветвей GIT нуждалось в доступе к файлу пользовательских настроек VS (.suo), или если этот файл даже не нужно запрашивать. Если это требует доступа, что я могу попытаться сделать так? Если этот доступ вообще не нужен, почему он продолжает пытаться?
EDIT - дополнительная информация
Я новичок в TFS/ GIT. Это много, чтобы впитать. Когда я первоначально настраивал репозитории (локальные и TFS на visualstudio.com), по умолчанию .gitignore не создавался по какой-либо причине, по-видимому, в моем локальном репозитории? Я не знаю, но пока я вносил изменения в свой проект, а затем делал Commits, я видел, как все проявилось в "Исключено" и "Без следа". Будучи зеленым до GIT/TFS, я щелкнул правой кнопкой мыши и включил эти файлы Excluded/Untracked. Теперь я знаю, что это было неправильно.
Я думаю, что я оправился от вышеупомянутой проблемы. Во-первых, я применил по умолчанию .gitignore, который специально игнорирует /bin и/obj. Затем я удалил все в этих двух папках (через VS Solution Explorer). Они не возвращались, как "Включенные", "Исключенные" или "Без следа". Эта исправленная проблема.
В следующем выпуске я увидел проект .suo, включенный в ветку v0.43. Я видел, что он должен был игнорироваться в стандартном .gitignore (*.suo), поэтому мне нужно было удалить его из ветки v0.43, но это было не так просто, как удаление неиспользуемых файлов. Я сделал это из командной строки, используя:
Мне удалось увидеть, что .suo существует, используя:
git ls-files *.suo
Я удалил его с помощью
git rm --cached "*.suo"
git commit -m "Delete *.suo file from repository"
... и я был/смог подтвердить, что он был удален, выполнив ту же команду ls-files. Он больше не отображается в ветке v0.43. Я сделал фиксацию и синхронизировал с TFS. Теперь я получаю сообщение об ошибке, указанное выше - Access запрещен .suo всякий раз, когда я пытаюсь объединить v0.43, чтобы освоить или даже переключиться на мастер-ветвь.
Возможно, это главная ветвь, которую я пытаюсь переключить TO, которая пытается получить доступ к файлу .suo?
Если это так, я полностью зациклен на том, как это решить. Полагаю, что возможно, что в какой-то момент .suo получил Committed на ведущую ветку... но я не знаю, как безопасно получить доступ к мастер-ветке и удалить из нее .suo, как я сделал это в v0.43.
Я надеюсь, что все это имеет смысл.: S