Локальная история Eclipseгде сохраняются файлы?

Может кто-нибудь объяснить, как работает местная история Eclipse?

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


person Community    schedule 09.06.2009    source источник


Ответы (6)


Чтобы завершить ответ CurtainDog: из Часто задаваемые вопросы по eclipse

Каждый раз, когда вы изменяете файл в Eclipse, копия старого содержимого сохраняется в локальной истории. В любой момент вы можете сравнить или заменить файл любой более старой версией из истории.
Хотя это не замена реальному хранилищу кода, оно может помочь вам, когда вы случайно измените или удалите файл.
Локальная история также имеет преимущество, для которого она на самом деле не была предназначена: история также может помочь вам, когда в вашей рабочей области возникнет катастрофическая проблема или если вы столкнетесь с ошибками диска, которые повредят ваши файлы рабочей области.
В крайнем случае, вы можете вручную просмотреть папку локальной истории, чтобы найти копии потерянных файлов, что немного похоже на использование кеша Google для просмотра веб-страниц, которые больше не существуют.

Каждая ревизия файла хранится в отдельном файле со случайным именем внутри папки истории. Путь к папке истории внутри вашего рабочего пространства:

.metadata/.plugins/org.eclipse.core.resources/.history/

Вы можете использовать инструмент поиска вашей операционной системы, чтобы найти файлы, которые вы ищете.


Обратите внимание: если вам нужно импортировать локальную историю в новую рабочую область, вам понадобятся оба:

  • .metadata/.plugins/org.eclipse.core.resources/.history
  • .metadata/.plugins/org.eclipse.core.resources/.project

иметь функциональную локальную историю в этой новой рабочей области.

person VonC    schedule 09.06.2009
comment
Я не нахожу его в версии juno. Есть идеи? - person Dejell; 23.10.2014
comment
@Dejel странно: он по-прежнему описывается как использующий этот путь в wiki.eclipse.org/. Может быть, вы могли бы задать отдельный вопрос? - person VonC; 23.10.2014
comment
Это помогло мне глупо, когда я случайно переопределил и обновил файл, который я хотел сохранить, чтобы удалить файл, а затем забыл имя класса... В качестве подсказки для тех, кто просматривает сортировку по дате изменения, вы можете найти самые последние кэши при попытке найти тот, который нужно восстановить. - person William Dutton; 04.11.2015
comment
Вы можете помочь? Я обновил папку рабочей области с Eclipse Mars до 2020-09, и теперь локальная история не работает. Проект является частью SVN. На новом рабочем месте все работает. - person tarekahf; 13.01.2021
comment
@tarekahf Не уверен, я никогда не обновляю свое рабочее пространство, я всегда создаю отдельное рабочее пространство для каждой версии Eclipse, чтобы избежать неожиданностей. - person VonC; 13.01.2021
comment
Ой ну спасибо. Я только что решил это. Мне нужно увеличить размер файла в пределах раздела «Местная история» в разделе «Настройки». - person tarekahf; 13.01.2021
comment
@tarekahf Хороший улов, молодец. - person VonC; 13.01.2021

Попробуйте щелкнуть правой кнопкой мыши файл в eclipse и выбрать «Заменить на» -> «Локальная история».

Если есть доступная история, она будет отображаться в виде списка времени редактирования.

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

Совет: всякий раз, когда вы слышите, как говорите «да!», проверяйте весь свой код. Через 10 минут вы спросите: «Как я все испортил?»

person Scott Stanchfield    schedule 09.06.2009
comment
Ваш совет — очень краткое объяснение того, как/почему использовать контроль версий для тех, кто этого не делает. Возможно, мне придется украсть это. - person aelfric5578; 02.07.2014
comment
В более новых версиях eclipse вы также можете использовать «Заменить на» -> «Предыдущее» из «Локальной истории», что намного быстрее, когда вы точно знаете, что вам нужно просто вернуться на одно изменение назад. Например, если вам нужно вернуть случайно отмененные изменения. - person Dcortez; 16.09.2014
comment
Спасибо, действительно помогло, очень признателен - person Stephen Kennedy; 08.05.2017

Если вы потеряли полную структуру пакета из-за случайного удаления или переопределения svn/cvs, выберите проект> щелкните правой кнопкой мыши> Восстановить из локальной истории => выберите файлы.

person chandima    schedule 23.11.2010
comment
Это работает, если файл был удален, но как массово откатить правки многих файлов из истории? В настоящее время единственный метод, который я нашел, - это щелкнуть правой кнопкой мыши по каждому файлу, чтобы проверить, есть ли файлы в истории! - person Tobia; 28.05.2021

В ответе VonC есть вся информация, необходимая для поиска местоположения резервных копий вашего кода. Я бы просто добавил, что если вы работаете на Mac или Linux, вы можете сделать что-то вроде этого:

$ cd [WORKSPACE]/.metadata/.plugins/org.eclipse.core.resources/.history/
$ grep -rl "class Foo" . | xargs ls -lt

Это найдет все версии файла, содержащие определенную строку (например, «класс Foo»), и отсортирует их по дате/времени, чтобы легко найти самую последнюю версию.

person 6006604    schedule 31.10.2018

Вы можете воспользоваться очень полезной ссылкой http://wiki.eclipse.org/FAQ_Where_is_the_workspace_local_history_stored%3F.

person Tomasz Waszczyk    schedule 15.10.2013

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

person CurtainDog    schedule 09.06.2009