2010-11-16 3 views
1

Я проверить текущую версию конструкции с текущей командой:SVN создание репозитория вопрос

svn checkout svn+ssh://[email protected]/mainrepository/trunk/projects/design1 . 

Это прекрасно работает, и я сделал некоторые существенные изменения в РЕАЛИЗАЦИЮ так , что я хотел бы провести копия этой вехи в SVN. Другими словами, я хотел бы проверить в текущей версии в отдельный каталог, то есть «design2»:

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

svn checkout svn+ssh://[email protected]/mainrepository/trunk/projects/design2 . 

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

su - svn 
mkdir svn+ssh://[email protected]/mainrepository/trunk/projects/design2 
svnadmin create svn+ssh://[email protected]/mainrepository/trunk/projects/design2 

есть проблема, когда я создаю этот из файлов, которые я chec ушел раньше? Я знаю, как работать с SVN после этого шага, но я никогда не создавал новый каталог/репозиторий для новой реализации, поэтому любая помощь была бы оценена!

ответ

0

Похоже, что это должно быть сделано отдельно branch. Вы не хотите, чтобы люди, работающие над project1, также должны были проверить весь код для project2 (что они будут делать, если они проверяют на уровне магистрали).

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

0

Обычно, если у вас есть проект, структурированный в ветках, тегах и соединительной линии (или что-то подобное), вы можете создать подпроект или подкаталог для вашего редактирования, а затем объединить его со стволом (или рабочим проектом)

svn copy /projectRoot/trunk /projectRoot/branches/edit1 

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

3

Я предполагаю, что вы хотите сделать новую ветвь, то есть вы хочу design1 и design2 жить бок о бок, чтобы они могли расходиться.

Не создавайте новый репозиторий с svnadmin. Вместо этого:

cd design1 
    svn status # make sure everything is ready as if for a normal commit 
    svn copy . svn+ssh://server.ac.uk/mainrepository/trunk/projects/design2 -m "creating new branch for design 2" 

Теперь удалите рабочую копию (он все еще указывает на design1 и содержит ожидающие изменения, даже если они были совершены в design2 - да, это сбивает с толку, лучше просто удалить его) , Создать новую проверку для design2, так что вы можете продолжать вносить изменения и совершение:

cd .. 
    rm -rf design1 
    svn co svn+ssh://server.ac.uk/mainrepository/trunk/projects/design2 
    cd design2 

Это довольно сложным способ фиксации изменений в новую отрасль. Обычно вы должны сначала создать ветку (svn copy url1 url2), проверить филиал в отдельной рабочей копии и , затем внести изменения. Это невозможно в этом случае, потому что вы уже внесли изменения, предназначенные для нового филиала в первой рабочей копии.

Обратите внимание, что расположение в вашем репозитории не соответствует recommended repository layout.Это не должно быть проблемой, но я бы рекомендовал вам следовать соглашениям для будущих проектов.

+0

Большое спасибо за подробный ответ. Я попробую и посмотрю, работает ли это! – Heinz

+0

Когда я вхожу в статус svn, я получаю следующий вывод: svn: warning: '.' не является рабочей копией. Плюс, когда я говорю «svn co svn + ssh: //server.ac.uk/mainrepository/trunk/projects/design2» Мне сказали, что svn: Directory '/home/projects/revision/.svn'contain рабочая область администратора пропал, отсутствует. Не знаю, что это должно означать ... – Heinz

+0

@Heinz: если папка design1 была создана командой 'svn checkout', тогда вы не должны получать эти ошибки. Я могу только предположить, что это не так, и что вы все еще немного смущены базовыми понятиями SVN. Возможно, лучше всего сначала прочитать первые две главы книги SVN, прежде чем пытаться заняться более продвинутыми темами, такими как ветвление: http://svnbook.red-bean.com/en/1.5/index.html –

1

Похоже, что ваш макет немного запутан. У вас есть репозиторий, называемый основным репо - с ним есть теги филиалов и багажник. Это очень стандартно. Однако похоже, что есть несколько проектов под багажником? у них, в свою очередь, есть филиалы, теги и каталоги стволов под ними? Они построены/помечены и выпущены вместе или независимо?

Смежные вопросы