Импорт SVN не создает папку .svn? - PullRequest
18 голосов
/ 04 марта 2010

Я создал репо, а затем я запустил svn import . https://myrepo. Кажется, все хорошо проверил, и я могу проверить это на другой машине. Однако, похоже, что он не создает папку .svn, поэтому я не могу запустить какие-либо команды svn ci позднее.

Это создает огромные головные боли, чтобы попытаться синхронизироваться позже, потому что теперь все мои вещи уже находятся в репо, но это вступает в конфликт с изменениями, которые я пытаюсь зафиксировать.

Что я делаю не так?

Ответы [ 7 ]

32 голосов
/ 04 марта 2010

Я никогда не использую импорт, потому что это неудобно. При импорте не создаются каталоги .svn, вам придется запустить дополнительную проверку только что импортированного каталога.

Вместо импорта файлов я сначала создаю пустой каталог в репозитории и проверяю его в каталоге моего существующего проекта, который я хочу "импортировать". Затем вы можете просто запустить commit и он добавит все файлы.

6 голосов
/ 04 марта 2010

Только рабочая копия будет иметь папку .svn. Импорт не создает рабочую копию. (Почему бы и нет? Предположим, например, что вы пытались импортировать данные с носителя, на котором у вас нет прав на запись. В этом случае при попытке создания рабочей копии произойдет сбой). Чтобы создать рабочую копию, вы должны использовать оформление заказа.

Другими словами, импорт загружает информацию в хранилище. Это все, что он должен делать, это не влияет на исходные файлы. Большинство команд subversion работают только в одном направлении: извлекать, экспортировать и обновлять измененные файлы в локальной системе / рабочей копии. Импортируйте и фиксируйте только обновление хранилища. Помимо операций [un] lock, я не могу представить команду, которая одновременно воздействует как на хранилище, так и на рабочую копию.

2 голосов
/ 02 августа 2013

Я хотел предоставить обновление, касающееся использования TortoiseSVN после импорта. TortoiseSVN теперь позволит вам оформить заказ в непустую папку.

Таким образом, вы можете просто извлечь в ту же папку, которую вы использовали для импорта. TortoiseSVN проверяет все файлы внутри, обнаруживает, что они все совпадают, и ничего не загружает / не перезаписывает. Больше не нужно переименовывать исходную папку, а затем извлекать ее в новую пустую папку.

Это было протестировано в Windows 7 с использованием TortoiseSVN версии 1.8.0, сборка 24401 - 64-разрядная, 2013-06-17T18: 15: 59 (Subversion 1.8.0, -релиз).

Пример:

Папка C: \ myfiles содержит данные.

  1. Импортируйте эту папку в SVN на http://example.com/svn/myfiles

  2. Выезд http://example.com/svn/myfiles в C: \ myfiles.

  3. TortoiseSVN предупреждает, что пункт назначения не пуст, нажмите Ok.

TortoiseSVN затем помещает C: \ myfiles и его содержимое (которые в настоящее время соответствуют хранилищу) под контроль версий, без необходимости изменять / загружать / заменять какие-либо файлы.

1 голос
/ 05 марта 2010

После импорта вы можете запустить svn checkout --force, чтобы преобразовать импортированный каталог в рабочую копию.

1 голос
/ 04 марта 2010

Когда вы настраиваете проект с Subversion, после первоначального импорта вашего проекта вы должны проверить проект и продолжить работу над проектом в той копии, которую вы вынули. Я думаю, проблема в том, что вы продолжали работать с копией, которую вы зарегистрировали.

0 голосов
/ 25 апреля 2015

Проверьте права доступа к папке. В моем случае это сработало.

0 голосов
/ 14 июля 2011

GAHHHHHHHHH ... НЕ ИСПОЛЬЗУЙТЕ TORTOISE-SVN, ЧТОБЫ СДЕЛАТЬ ЭТО - он уничтожит ваш локальный каталог. Оооо ......... сначала сделайте zip / копию в другом месте! .. вздохните ... (по крайней мере, у меня был предыдущий - старый, хотя - zipfile).

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