Ответ 1
По-прежнему нет ответа; В любом случае, мне пришлось сделать некоторые важные изменения, поэтому я начал новый проект. Все хорошо.
У меня есть локальный репозиторий git, который я настроил с помощью проекта в Xcode 4. Репозиторий хорошо отображается в Organizer, и я могу видеть истории фиксации и значки управления источником в File Navigator. Commits отлично работает. Однако, когда я использую редактор версии, я получаю сообщение об ошибке "Этот файл не существует в запрошенной ревизии" всякий раз, когда я пытаюсь увидеть предыдущую ревизию. Я не могу найти информацию об этой ошибке и не знаю, как ее исправить. git log
показывает четыре последних фиксации (я знаю, что их больше, но я не знаю, является ли это ограничением команды или если что-то исчезает). Любые идеи?
По-прежнему нет ответа; В любом случае, мне пришлось сделать некоторые важные изменения, поэтому я начал новый проект. Все хорошо.
Я столкнулся с этой проблемой. Я думаю (в моем случае так или иначе), что это было связано с тем, что я переместил каталог проекта за пределы xcode. Я считаю, что xcode кэшировал некоторые файлы индекса в ~/Library где-то. Они, похоже, запутались в этом движении.
Исправить (для меня) было открыть xcode, открыть панель organizer- > projects и найти проект, о котором идет речь. Удалите полученные данные (для этого есть кнопка в верхней правой области).
После этого все казалось прекрасным.
Это помогло мне:
file://....<full path, which contains the .git directory>
. Убедитесь, что Type установлен на "Git", Xcode изменил его на "Subversion", проигнорировав сообщение "Требуется аутентификация" Я столкнулся с этим, когда я изменил регистр в имени класса. Git имел строчную букву, где мне нужен верхний регистр. Я пробовал многое из того, что можно было бы полностью восстановить в репозитории. Я, наконец, просто удалил класс из проекта, немного изменил имя и повторно добавил его.
Я предполагаю, что это одна из этих проблем, которая может быть вызвана несколькими проблемами. Это мое и как я это решил.
В моем проекте произошли некоторые изменения имени файловой системы. А именно, переход от всех нижних шапок к корпусу Паскаля. В какой-то момент это было отменено во время цикла кодирования. Когда я зарегистрировался, файловая система была:
mydirectoryname
Все файлы под mydirectoryname
больше не управляются git под Xcode. При просмотре в редакторе версий я получил сообщение об ошибке "Этот файл не существует в запрошенной версии".
Однако, если я выбрал один из файлов и нажал на File Inspector (доступный на панели "Утилиты" ), я заметил, что полный путь к файлу указан как:
MyRootPath/MyDirectoryName/TheCodeFile.h
Я закрыл Xcode, открыл файл .pbxproj в редакторе, исправил путь и снова открыл проект. Интеграция git снова работала.
В моем случае оказалось, что эта проблема связана с тем, что я переименовал много файлов в моем репозитории с "CamelCase" на "нижний регистр", включая файл и папку проекта. Это, должно быть, некорректно отслеживалось где-то.
OS X использует файловую систему без учета регистра по умолчанию, тогда как git внутренне чувствительна к регистру, и я считаю, что проблема имела какое-то отношение к этому.
Это шаги, которые я использовал, чтобы исправить это. Если вы считаете, что ваша проблема может быть связана с изменением имени файла, это также может помочь вам.
Теперь ваша жизнь должна быть лучше, и Xcode должен вести себя хорошо, потому что git теперь видит точные файлы (с тем же самым случаем), что и проект Xcode.
Моя проблема и решение были простыми:
Решение:
Я столкнулся с той же ошибкой, используя Xcode 4.2 в относительно новом проекте ранее.
Сначала я работал над проблемой, клонируя репо в директорию для сиблинга. В терминале:
> cd /path/to/XCodeProject
> mkdir ../Clone
> cd ../Clone
> git clone ../XCodeProject/.git .
Однако, когда я удалил исходный проект и переименовал новый каталог в одно и то же имя, проблема снова появилась.
В конце концов, обходным путем было просто найти мои файлы .xcodeproj и .git и предоставить родительскому каталогу другое имя.
Как я знаю, из-за конфликта Xcode 4.3 в настоящее время неправильно обрабатывает. У меня также была аналогичная проблема с плохо синхронизированным .DS_Store. Я вручную удалил его и застрял в аналогичном случае.
Затем мне пришлось вручную решить проблему с помощью командной строки:
Если вы застряли с тягой, фиксацией и нажатием, через Xcode вы сможете снова позвонить им. Более того, поскольку обе стороны должны быть правильно синхронизированы, ваша ошибка "Этот файл не существует в запрошенной ревизии" также исчезнет. Прокомментируйте, если это сработало для вас.
Была та же проблема.
Решенный путем выбора проекта на странице "Проекты" Организатора и удаления данных "Производные данные" и "Снимки", нажав кнопки "Удалить..." для этих полей.
После этого новый снимок может быть успешно создан и экспортирован, если необходимо.
Это древняя нить, но так как правильный ответ так и не был найден, я заброшу свои 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 и проблемы с их использованием.
Ура!
Я получил такое же сообщение после создания и переименования нового файла. Это сообщение появилось, когда я выбрал файл в окне Git commit. При удалении и повторном добавлении файла исправлена проблема.
У меня была та же проблема. Это произошло потому, что в режиме редактора включен "Показать редактор версий". Убедитесь, что на "Показать стандартный редактор" или "Показать редактор помощника". Он находится в правой верхней части Xcode, рядом с "View" и "Organizer".
Я делал это для одного файла в проекте. Все остальные работали нормально. Этот файл никогда не работал корректно с момента его добавления, всегда давая ошибку "файл не существует при запрошенной версии" при выполнении каких-либо действий, в том числе, что очень досадно, сохраняя его! Я попытался удалить его из репозитория и повторно добавить его. Одна и та же. Что в конечном итоге работало, выполнялось "git add" и "git commit" из командной строки. Перейдите в корневую директорию репозитория (каталог, который содержит папку .git), запустите "git add" (хотя похоже, что он уже должен быть!), А затем "git commit". Это исправлено для меня, и файл теперь счастлив внутри Xcode.
У меня была эта проблема - я решил ее: удалить репозиторий в организаторе
в командной строке проекта
ls -A - sheck для .git файлов repo - не должно быть никаких - но если есть rm -R.git
затем настройте новый git repo
git init git добавить. git commit -m "начальный оборот"
тогда, когда я снова открываю xcode - проект находится под git контролем источника