Xcode и SVN: не могу переименовать мой класс -> Ошибка: 155007 (путь не является каталогом рабочей копии) - PullRequest
6 голосов
/ 23 сентября 2010

Я получаю следующую ошибку, если пытаюсь переименовать свой класс:

Ошибка при переименовании

Ошибка: 155007 (путь не является каталогом рабочей копии) Описание: путь 'xxx / Classes / MyClass.h' не является каталогом

Переименование выглядит так: MyClass.h -> MYClass.h

Возможно, в этом проблема?

Я сделал первоначальный импорт в мой каталог SVN. Пока это работает (удаление, фиксация и т. Д.) Единственное, что он не может, это переименовать класс.

Я пытался:

4. Теперь удалите свою локальную копию (или на всякий случай переместите ее в другое место).

5.Наконец ПРОВЕРЬТЕ проект из Subversion (это создаст Subversion .svn папки,…).

6.Выберите хранилище subversion для этого проекта.

7.Отправить весь проект.

В каталоге SVN также нет каталога build. Единственное, что выделяется, это то, что я не вижу ни одной папки .svn. Я использую Xcode 3.2.3. Файл, который я пытаюсь переименовать / рефакторинг, находится в папке классов. Я попытался удалить файл из папки классов, и это сработало!

Я прочитал это . Я также обнаружил похожую проблему . Но решения пока нет.

Ответы [ 4 ]

7 голосов
/ 11 января 2011

У меня была та же проблема, и Google направил меня на этот вопрос, поэтому извиняюсь за поздний 'ответ'.

Во всяком случае, я работаю над eclipse 3.5, Mac OSX Snow Leopard, и вы, кажется, также работаете над Mac OS X (XCode)? Дело в том, что mac osx 'hfs + -filesystem большую часть времени настраивается без учета регистра, поэтому, поскольку вы пытаетесь изменить только регистр имен файлов, это может быть вашей проблемой.

Обходным решением для меня было выполнить переименование из FOO.h в Foo.h как:

  • FOO.h -> FooBar.h
  • FooBar.h -> Foo.h

(Нет. В настоящее время все переименования файлов, в которых только изменения регистра приводят к той же проблеме в моей системе)

1 голос
/ 07 марта 2012

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

svn rename repo-URL/FOO.bar repo-URL/foo.bar -m "FOO.bar rename to Foo.bar"

Только для справки: svn move 1006 * *

1 голос
/ 23 сентября 2010

Я думаю, что проблема здесь MyClass.h -> MYClass.h Кажется, что это не поддерживается SVN или Xcode ...

Вариант 1: без рефакторинга

Вариант 2: удалите файл и создайте новый

Я выбрал вариант № 2. Я попытаюсь опубликовать инструкцию:

  1. Перейдите в SCM> Хранилища.Выберите только один файл.Нажмите кнопку Удалить.Делайте это так часто, как вам нужно.
  2. Перейдите к своим файлам в Xcode.Сделайте переименование / рефакторинг имен в файлах.Затем скопируйте содержимое ваших файлов временно в TextEdit.
  3. Выберите файлы, которые вы хотите удалить в Xcode.Щелкните правой кнопкой мыши> Удалить.
  4. Создайте новый класс / файлы и скопируйте содержимое TextEdit в эти файлы.
  5. Перейдите в SCM> Результаты SCM.Выберите все файлы (включая myProject.xcodeproj).Подтвердите добавление и удаление файлов.
  6. Чем выполнить фиксацию всех измененных файлов.
  7. Нажмите кнопку «Перезагрузить» в окне «Репозитории», чтобы проверить наличие файлов.

Процесс выглядит так, как описано выше.У меня было много проблем с получением правильных вещей.Надеюсь теперь это правильно.Я думаю, что приведенные выше инструкции не на 100% верны, но я сделал так много вещей, что это единственное, что я могу вспомнить.Надеюсь, что это поможет кому-то еще.

PS: Я думаю, что добавить / удалить / переименовать не следует делать в Xcode.Только проблемы.

0 голосов
/ 23 сентября 2010

Я не уверен в ваших действиях по устранению неполадок (где шаги с 1 по 3?), Но при условии, что:

  1. xxx/MyClass.h уже находится под контролем версии
  2. Wheyвы говорите «переименовать класс», вы имеете в виду «переименовать файл»
  3. Вы вводите команду svn rename

... тогда ваша рабочая копия, вероятно, повреждена.Я страдал от этой проблемы раньше, и нет фактического решения.Я предлагаю вам:

  1. Получите свежую рабочую копию
  2. Скопируйте ожидающие изменения (если они есть), используя обычный инструмент слияния (например, WinMerge или TortoiseMerge), что крайне важнобудьте осторожны, чтобы не копировать каталог .svn
  3. Commit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...