SVN совершить ошибку, потому что я не проверил - PullRequest
1 голос
/ 31 октября 2009

У меня есть некоторый исходный код, и я импортировал его в SVN. Я забыл обновить или проверить его и внес некоторые изменения в файлы.

Теперь (понятно) SVN не позволяет мне совершать эти изменения. Там написано:

СВН: «/ home / name / folder» не рабочая копия

Что я могу сделать сейчас, чтобы зафиксировать эти изменения?

Ответы [ 5 ]

4 голосов
/ 01 ноября 2009

Ошибка, которую вы видите: «svn: '/ home / name / folder' не является рабочей копией» не имеет ничего общего с отсутствием обновления. Это означает, что говорит:

/ home / name / folder не является рабочей копией .

Вот предположение о том, что происходит:

  1. Вы импортировали проект (назовем его «папка») в Subversion.
  2. Вы забыли проверить это (папка svn chekout svn: // MYREPO / FOLDER).
  3. Вы работали с первоначально импортированной папкой, которая не является рабочей копией.
  4. Теперь вы застряли.

Вот мое предложение для решения:

  1. проверьте свою "папку" из svn уже!
svn co svn://MYREPO/FOLDER folder.svn 
  1. скопируйте отредактированные файлы из «папки» в «folder.svn», заменив копии, которые были там.
rsync -r folder/ folder.svn
  1. пробег svn status. Вы должны увидеть, что есть локальные изменения.

  2. не забудьте добавить новые файлы с svn add.

  3. svn commit ваши изменения.

  4. выбросить «папку». работать в 'folder.svn' с этого момента.

1 голос
/ 01 ноября 2009

После того, как вы поместили файлы в svn, вам нужно проверить их, чтобы создать рабочее дерево. Вы можете оставить свои отредактированные файлы там, где они есть, и проверить рабочее дерево где-нибудь еще. Затем проведите различие между вашим рабочим деревом и отредактированными файлами, и вы увидите изменения, которые вы внесли. Скопируйте отредактированные файлы в рабочее дерево, затем зарегистрируйте их.

0 голосов
/ 01 ноября 2009

Чтобы преобразовать обычный каталог в рабочую копию, вы можете сделать следующее:

svn checkout --force svn://MYREPO/FOLDER /home/name/folder
svn add --depth infinity /home/name/folder/*

Теперь все изменения, внесенные в файлы с момента импорта, будут отображаться как локальные изменения, а все остальное в папке будет добавлено в систему управления версиями.

Это делает ненужным любое копирование / вставку / удаление.

0 голосов
/ 01 ноября 2009

ответ Бендина правильный. Однако, если вам не нужна оригинальная версия, вы можете просто начать заново и повторно импортировать папку, как сейчас. Сначала вам придется удалить старую версию (svn rm -m '' oldFolder).

0 голосов
/ 01 ноября 2009

У вас должен быть конфликт.

Если у вас возник конфликт, вам нужно сделать одну из трех вещей:

  • Слияние конфликтующего текста «вручную» (путем изучения и редактирования маркеров конфликта в файле).
  • Скопируйте один из временных файлов поверх вашего рабочего файла.
  • Запустите команду svn revert, чтобы отбросить все локальные изменения.

Вы должны попытаться решить это !!! Посмотрите на

http://www.linxit.de/svnbook/en/1.2/svn.tour.cycle.html#svn.tour.cycle.resolve

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