Subversion SSH экспорт вопрос - PullRequest
       12

Subversion SSH экспорт вопрос

1 голос
/ 12 января 2010

Итак, у меня есть проект в удаленной файловой системе (который я редактировал через ssh). Теперь мне нужно скопировать проект на мой жесткий диск. Мне больше не нужен контроль версий в проекте, поэтому я думаю, что должен svn export проект. Но есть файлы, которые еще не были зарегистрированы, которые мне нужно сохранить при создании копии.

Как лучше всего скопировать этот проект на мой локальный диск?

Обновление: Я не уверен, как это сделать, но я хотел бы просто скопировать все файлы (используя какую-то команду ssh secure copy), а потом позаботиться о svn.

Обновление: Это то, что я в итоге сделал, чтобы скопировать проект на локальный диск:

scp -r username@remotehost:/path/to/dir ./localdir

Ответы [ 7 ]

3 голосов
/ 12 января 2010

Поскольку у вас есть доступ по ssh, я бы использовал rsync .

rsync -avz --exclude='*/.svn*' user@host:/path/to/checkout /path/to/local/dir

Rsync отлично подходит для этого. Обратите внимание, что user@host:/path/to/checkout и user@host:/path/to/checkout/ различны. Первый копирует каталог, второй копирует содержимое каталога.

2 голосов
/ 12 января 2010

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

Если вы используете Linux, вы можете использовать следующее:

rm -rf `find . -type d -name .svn`

Если вы работаете в Windows, это должно работать:

FOR /F "tokens=*" %%G IN ('DIR /B /AD /S *.svn*') DO RMDIR /S /Q "%%G"

Обязательно сделайте резервную копию, прежде чем пытаться выполнить одну из этих команд! Но я использовал оба из них, чтобы успешно отключиться от SVN.

1 голос
/ 12 января 2010

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

0 голосов
/ 12 января 2010

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

В UNIX (Mac / Linux) вы можете легко избавиться от них с помощью этой команды:

find /path/to/copied/project -name .svn -delete
0 голосов
/ 12 января 2010

Если вы используете TortoiseSVN, вы можете выполнить Экспорт всего из вашей рабочей папки, а также скопировать не зафиксированные файлы.

0 голосов
/ 12 января 2010

Если вам больше не нужен контроль версий в проекте, почему бы просто не проверить сначала ваши незафиксированные изменения, а затем выполнить svn export?

0 голосов
/ 12 января 2010

Возможно, не самый простой способ, но, безусловно, самый очевидный. Я бы просто svn export сделал текущий репозиторий в другом каталоге и вручную включил бы все локальные изменения.

...