Как отключить рабочую копию проекта Xcode 5 с сервера SVN, который умер

У меня есть модифицированная рабочая версия проекта Xcode 5, который был извлечен с удаленного сервера svn, который больше не доступен. Как удалить рабочую копию svn-ассоциации и не находиться под контролем источника? (В конце концов я хочу создать репозиторий git на основе рабочей копии и нажать на него модификации.) Мне не нужно сохранять историю svn.

Я пробовал очевидные вещи, чтобы отключить svn-сервер от проекта (например, удалить каталоги .svn в рабочей копии, а также выполнить поиск grep -r на имени сервера svn через все файлы в дерево каталогов рабочей копии), но проект остается связанным с сервером svn. Я бы предпочел использовать этот переключатель непосредственно с рабочей копией, вместо того, чтобы рисковать попыткой создать пустую "рабочую копию", которая не связана с сервером svn, а затем передавать файлы по одному из текущей копии. Такие инструменты, как svn- git, невозможны, поскольку сервер svn недоступен, а моя рабочая копия содержит значительные изменения. Помощь...?

Ответ 1

Мне удалось найти способ, хотя, вероятно, не самую легкую или рекомендуемую процедуру. Здесь, что привело меня к моей конечной цели: нажатие рабочей копии на удаленный сервер git:

  • Удалите всю информацию SVN из рабочей копии, удалив файл .svn и т.д. (я сделал это, прежде чем задавать свой первоначальный вопрос.)
  • Создайте пустой репозиторий для проекта на удаленном сервере git
  • Добавить удаленный сервер git в учетных записях Xcode
  • Закройте все проекты в Xcode, а затем снимите флажок Включить контроль источника в настройках Xcode; quit Xcode
  • Переименуйте рабочую копию во временное имя
  • Запустите Xcode, выберите Enable Source Control, а затем проверьте пустой репозиторий с удаленного сервера git в каталог с исходным именем рабочей копии; снова отключить управление источником, выйти из Xcode
  • Переместите каталог .git из извлеченной (пустой) рабочей копии в исходный каталог рабочей копии (который был переименован на шаге 5); удалите пустую рабочую копию и переименуйте исходную рабочую копию обратно в исходное имя
  • Запустите Xcode и откройте рабочий проект; ассоциация SVN должна исчезнуть.
  • Повторное управление источником, а рабочая копия теперь должна быть связана с удаленным репозиторием git, но без добавленных файлов
  • Откройте инспектор Утилиты и обратите внимание на маленькую кнопку "Добавить" в области "Управление источником" на панели "Идентификация и тип"; нажмите "Добавить", чтобы иметь все файлы с пометкой "Добавлен"
  • Зафиксировать и нажать как обычно

Voila! Моя рабочая копия теперь находится под git с удаленной ассоциацией серверов git. Конечно, история SVN была потеряна, но это меня не беспокоило. Должен быть более короткий рецепт, но я хотел бы поделиться приведенным выше, если он спасет любого в подобном затруднительном положении.

Ответ 2

Я столкнулся с подобной проблемой только сейчас, я перенес свой git из github в gitLabs. Однако это означает, что предыдущая информация репо все еще находится в моем проекте.

Итак, я обнаружил, что когда я добавил репозиторий gitLab в Xcode, SourceTree показал, что один файл был изменен. Сюрприз, это файл, который хранит записи обо всех серверах рабочих копий.

Просто перейдите в "Ваш проект".xcodeproj > (щелкните правой кнопкой мыши и покажите содержимое пакета) > project.xcworkspace > (щелкните правой кнопкой мыши и покажите содержимое пакета) > xcSharedData > "Ваш проект".xccheckout

Щелкните правой кнопкой мыши по файлу и выберите "Открыть с" и нажмите "Подробнее..". Используйте свой предпочтительный текстовый редактор, чтобы редактировать XML внутри, или вы всегда можете использовать надежный TextEdit.

Ваши старые серверы git/svn, вероятно, находятся внизу, заключенные в <dict></dict>. Просто удалите em и перезагрузите проект в Xcode.

Ответ 3

Удалите все безотзывные репо из следующего местоположения

DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey

Оформить все шаги Шаги