Как решить эту проблему при использовании SVN? - PullRequest
1 голос
/ 08 апреля 2011

Я на самом деле играю в IDE: zend studio, в которую встроен svn tool, но я думаю, что это должно быть то же самое с eclipse, и даже с самим svn tool.

Предположим, что в svn есть каталог A , для воспроизведения сделайте следующее:

  1. переименуйте A в A2 (из IDE), затем обновите A в IDE, и оно исчезнет
  2. обновить родительский каталог A2 с именем P в IDE, затем появится A2
  3. переименуйте A2 обратно в A , затем обновите P , сообщает: Problems occured refreshing the selected resources: A2/.svn [in <project root>] does not exist

Как исправить эту проблему сейчас?

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Это на самом деле не так, как SVN должен работать. Изменения в структурах каталогов, файлах и т. Д., Содержащихся в SVN, должны выполняться через IDE или другое приложение, поддерживающее SVN, а не в самой файловой системе (т. Е. Через проводник Windows).

SVN фактически отслеживает изменения в своей файловой системе, и когда вы работаете с SVN-контроллером, вы заставляете все это не синхронизироваться.

1 голос
/ 08 апреля 2011

Джош прав.При перемещении или переименовании файла в репозитории SVN абсолютно необходимо, чтобы вы использовали SVN для этого .Svn move и svn rename (последний является псевдонимом для первого) имеют очень простой синтаксис.TortoiseSVN также поддерживает эту операцию.Таким образом, когда в следующий раз другой пользователь попытается выполнить операцию SVN, программа увидит, что хранилище изменилось.Если вы не сообщите хранилищу, когда структура изменится, вы запутаете это следующим образом.

Чтобы устранить проблему, я бы:

  1. Проверьте брендновая копия вашего хранилища.
  2. Скопируйте папку - A или A2 - из хранилища, чтобы сохранить ваши данные.
  3. Svn delete A или A2.
  4. Svn commit.
  5. Скопируйте A или A2 обратно в хранилище.
  6. Svn add A или A2.
  7. Svn commit.
...