Подтвердить что ты не робот

Xcode 4 Git - "Этот файл не существует в запрошенной версии"

У меня есть локальный репозиторий git, который я настроил с помощью проекта в Xcode 4. Репозиторий хорошо отображается в Organizer, и я могу видеть истории фиксации и значки управления источником в File Navigator. Commits отлично работает. Однако, когда я использую редактор версии, я получаю сообщение об ошибке "Этот файл не существует в запрошенной ревизии" всякий раз, когда я пытаюсь увидеть предыдущую ревизию. Я не могу найти информацию об этой ошибке и не знаю, как ее исправить. git log показывает четыре последних фиксации (я знаю, что их больше, но я не знаю, является ли это ограничением команды или если что-то исчезает). Любые идеи?

4b9b3361

Ответ 1

По-прежнему нет ответа; В любом случае, мне пришлось сделать некоторые важные изменения, поэтому я начал новый проект. Все хорошо.

Ответ 2

Я столкнулся с этой проблемой. Я думаю (в моем случае так или иначе), что это было связано с тем, что я переместил каталог проекта за пределы xcode. Я считаю, что xcode кэшировал некоторые файлы индекса в ~/Library где-то. Они, похоже, запутались в этом движении.

Исправить (для меня) было открыть xcode, открыть панель organizer- > projects и найти проект, о котором идет речь. Удалите полученные данные (для этого есть кнопка в верхней правой области).

После этого все казалось прекрасным.

Ответ 3

Это помогло мне:

  • Перейти к XCode → Организатор → Репозитории
  • Удалите все репозитории с именем, написанным красным цветом (т.е. файл не найден)
  • Нажмите кнопку "+" в левом нижнем углу → "Добавить репозиторий..."
  • Введите запрошенную информацию: Path = file://....<full path, which contains the .git directory>. Убедитесь, что Type установлен на "Git", Xcode изменил его на "Subversion", проигнорировав сообщение "Требуется аутентификация"
  • Готово

Ответ 4

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

Ответ 5

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

В моем проекте произошли некоторые изменения имени файловой системы. А именно, переход от всех нижних шапок к корпусу Паскаля. В какой-то момент это было отменено во время цикла кодирования. Когда я зарегистрировался, файловая система была:

mydirectoryname

Все файлы под mydirectoryname больше не управляются git под Xcode. При просмотре в редакторе версий я получил сообщение об ошибке "Этот файл не существует в запрошенной версии".

Однако, если я выбрал один из файлов и нажал на File Inspector (доступный на панели "Утилиты" ), я заметил, что полный путь к файлу указан как:

MyRootPath/MyDirectoryName/TheCodeFile.h

Я закрыл Xcode, открыл файл .pbxproj в редакторе, исправил путь и снова открыл проект. Интеграция git снова работала.

Ответ 6

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

OS X использует файловую систему без учета регистра по умолчанию, тогда как git внутренне чувствительна к регистру, и я считаю, что проблема имела какое-то отношение к этому.

Это шаги, которые я использовал, чтобы исправить это. Если вы считаете, что ваша проблема может быть связана с изменением имени файла, это также может помочь вам.

  • Перейдите в корень вашего репозитория и удалите с него все, кроме папки .git, используя команды "ls -la" (также для просмотра всех скрытых файлов) и "rm" / "rm -rf".
  • Сделайте "git reset --hard", чтобы вернуть все ваши файлы. Теперь вы можете видеть, что случай с вашими именами изменился. В моем случае в корне моей рабочей копии "myapp.xcodeproj" и "myapp" (папка, содержащая все файлы кода) были изменены на "MyApp.xcodeproj" и "MyApp" (папка). Я думал, что изменил его на нижний регистр, но, видимо, это не было правильно отслежено git.
  • Теперь переименуйте файлы в нечто несвязанное. Например, я переименовал "MyApp.xcodeproj" в "foo.xcodeproj" и "MyApp" на "foo".
  • Затем сделайте "git add -all"
  • Теперь переименуйте файлы в нужные файлы. Я переименовал "foo.xcodeproj" в "myapp.xcodeproj" и "foo" на "myapp", с чего я хотел это начать (и то, что, как я думал, я уже сделал).
  • Сделайте еще один "git add -all".
  • Commit.

Теперь ваша жизнь должна быть лучше, и Xcode должен вести себя хорошо, потому что git теперь видит точные файлы (с тем же самым случаем), что и проект Xcode.

Ответ 7

Моя проблема и решение были простыми:

  • Я создал папку, myProj
  • Я создал проект MyProj в Xcode внутри этой папки
  • Это дало мне структуру, похожую на myProj/MyProj/MyProj/
  • Мне не понравился этот дополнительный уровень папки, поэтому я переместил внутренний MyProj в myProj
  • Отслеживание репозитория Xcode получило goofed вверх.

Решение:

  • Откройте Организатор в Хранилищах и удалите верхний регистр "MyProj", который был выделен красным цветом. Xcode обнаружил новое местоположение репозитория в "myProj" и возобновил отслеживание вещей в обычном режиме.

Ответ 8

Я столкнулся с той же ошибкой, используя Xcode 4.2 в относительно новом проекте ранее.

Сначала я работал над проблемой, клонируя репо в директорию для сиблинга. В терминале:

> cd /path/to/XCodeProject
> mkdir ../Clone
> cd ../Clone
> git clone ../XCodeProject/.git .

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

В конце концов, обходным путем было просто найти мои файлы .xcodeproj и .git и предоставить родительскому каталогу другое имя.

Ответ 9

Как я знаю, из-за конфликта Xcode 4.3 в настоящее время неправильно обрабатывает. У меня также была аналогичная проблема с плохо синхронизированным .DS_Store. Я вручную удалил его и застрял в аналогичном случае.

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

  • откройте терминал
  • cd в локальный репозиторий git
  • cd.git/
  • mv MERGE_HEAD MERGE_HEAD_OLD//или просто удалить его

Если вы застряли с тягой, фиксацией и нажатием, через Xcode вы сможете снова позвонить им. Более того, поскольку обе стороны должны быть правильно синхронизированы, ваша ошибка "Этот файл не существует в запрошенной ревизии" также исчезнет. Прокомментируйте, если это сработало для вас.

Ответ 10

Была та же проблема.
Решенный путем выбора проекта на странице "Проекты" Организатора и удаления данных "Производные данные" и "Снимки", нажав кнопки "Удалить..." для этих полей.
После этого новый снимок может быть успешно создан и экспортирован, если необходимо.

Ответ 11

Это древняя нить, но так как правильный ответ так и не был найден, я заброшу свои 2 цента.

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

Например, когда вы переключаетесь на ветвь с субмодулем и обновляете такой подмодуль, он будет синхронизировать эти файлы с вашим репозиторием. Когда вы позже переключитесь на ветвь, у которой нет такого субмодуля, она не будет автоматически добавлять или удалять, но git поймет, что что-то не отслеживается в ветке. XCode также обнаруживает это, когда вы переключаетесь на любой из режимов Редактора версий: журнал, вину или сравнение.

Если это так, запрос состояния git приведет к отсутствию файлов без следа:

  On branch master
  Your branch is up-to-date with 'origin/master'.

  Untracked files:
    (use "git add <file>..." to include in what will be committed)

    yourSubmodule/

  nothing added to commit but untracked files present (use "git add" to track)

Чтобы исправить это, вы можете просто удалить неиспользуемые файлы с помощью rm, так как эти файлы не принадлежат этой ветке и могут быть синхронизированы с ветвью, которая фактически указывает на подмодуль. Обратите внимание, что это относится к подмодулю, но если у вас есть новые файлы, вы должны добавить их в репозиторий или вместо этого добавить их в список игнорирования. После устранения проблемы состояние git должно быть чистым:

  On branch master
  Your branch is up-to-date with 'origin/master'.

  nothing to commit, working directory clean

Читайте submodules и проблемы с их использованием.

Ура!

Ответ 12

Я получил такое же сообщение после создания и переименования нового файла. Это сообщение появилось, когда я выбрал файл в окне Git commit. При удалении и повторном добавлении файла исправлена ​​проблема.

Ответ 13

У меня была та же проблема. Это произошло потому, что в режиме редактора включен "Показать редактор версий". Убедитесь, что на "Показать стандартный редактор" или "Показать редактор помощника". Он находится в правой верхней части Xcode, рядом с "View" и "Organizer".

Ответ 14

Я делал это для одного файла в проекте. Все остальные работали нормально. Этот файл никогда не работал корректно с момента его добавления, всегда давая ошибку "файл не существует при запрошенной версии" при выполнении каких-либо действий, в том числе, что очень досадно, сохраняя его! Я попытался удалить его из репозитория и повторно добавить его. Одна и та же. Что в конечном итоге работало, выполнялось "git add" и "git commit" из командной строки. Перейдите в корневую директорию репозитория (каталог, который содержит папку .git), запустите "git add" (хотя похоже, что он уже должен быть!), А затем "git commit". Это исправлено для меня, и файл теперь счастлив внутри Xcode.

Ответ 15

У меня была эта проблема - я решил ее: удалить репозиторий в организаторе

в командной строке проекта

ls -A - sheck для .git файлов repo - не должно быть никаких - но если есть rm -R.git

затем настройте новый git repo

git init git добавить. git commit -m "начальный оборот"

тогда, когда я снова открываю xcode - проект находится под git контролем источника