Получите затмение CVS, чтобы забыть об удаленном каталоге - PullRequest
5 голосов
/ 10 ноября 2010

Я ищу способ убедить Eclipse в том, что каталог действительно удален из хранилища CVS, навсегда?

При использовании обычной командной строки CVS я бы просто отредактировал CVS / Entries в предыдущем родительском каталоге,В Eclipse я попытался удалить каталог из представления Project Explorer, удалив соответствующую строку в CVS / Entries, воссоздав каталог в PE, чтобы его можно было удалить при обновлении или синхронизации, синхронизировав без воссоздания каталога и, возможно, другихвещи, которые я с тех пор забыл, и ничего не сработало.

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

The server reported an error while performing the "cvs update" command.
  Project: cvs update: cannot open directory /usr/local/cvsroot/one/two/three/removed_directory: No such file or directory

Мой проект содержит все содержимое из / usr / local / cvsroot / one / two.Я не получаю эту ошибку при переходе на «три» и обновлении оттуда.Я получаю его только при обновлении из корня проекта.

Ответы [ 5 ]

2 голосов
/ 26 марта 2011

Одним (довольно несовершенным) решением этой проблемы является, помимо повторной проверки проекта, удаление информации CVS, хранящейся в Eclipse.

Перейдите в меню справа под проектом> Команда> Разъединить и проверьте переключатель «Также удалите метаинформацию CVS из файловой системы». Теперь ваш проект не является общим и в нем больше нет информации CVS. Тогда вам просто нужно выполнить команду Team> Share project, выбрать предыдущее местоположение репозитория, и все готово (CVS сама определит, что проект обновлен и, конечно, не будет обновлять и ничего не фиксировать).

remove cvs metadata

Папка, которая была удалена в репозитории cvs вручную, больше не будет предлагаться CVS под Eclipse для фиксации.

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

1 голос
/ 24 марта 2011

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

0 голосов
/ 23 марта 2011

Каталог будет указан в файле CVS / Entries в родительском каталоге.Удалите запись в файле Entres и в каталоге.Eclipse должен признать, что каталог был удален.

Рефакторинг каталогов в CVS проблематичен.Из-за способа, которым CVS обрабатывает историю, обычно применяется одно из следующих действий:

  • История файлов, перемещенных в новые местоположения, по-видимому, исчезает.(Он находится в истории старого местоположения.)
  • История файлов сохраняется, но файлы отображаются перемещенными при проверке версий перед перемещением.(Файлы были перемещены в хранилище, а не в песочницу.)

Удаление или перемещение каталогов в хранилище обычно создает проблемы для клиентов.Это помогает сохранить каталоги и только перемещать или удалять файлы.Обычная обработка перемещает удаленные файлы в подкаталог Attic.

0 голосов
/ 24 марта 2011

В перспективе синхронизации Eclipse CVS вы пробовали опцию «Переопределить и обновить»?

0 голосов
/ 18 марта 2011

Обработка каталогов в CVS не идеальна.Эта и многие другие причины вызваны созданием более полного инструмента SCM subversion .

CVS может создавать каталог, но не может его удалить.С точки зрения CVS, для удаления каталога необходимо удалить (cvs rm) все файлы в каталоге.Но каталог все еще присутствует в CVS, и его невозможно удалить.Однако CVS предлагает «взломать», чтобы скрыть такие «удаленные» / пустые каталоги, выполнив «cvs up -P» (см. здесь ).

Итак, для командной строки CVS яне будет связываться с родительским каталогом CVS / Entries file, вместо этого используйте "cvs up -P", описанный выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...