Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SVN - ветки 
:(
    Опции темы
klich1
Дата 4.6.2012, 04:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.6.2012

Репутация: нет
Всего: нет



Я создаю новую папку и захожу в неё:
cd test123 
Загружаю новый пустой репозиторий:
svn checkout https//mysvn.ru/user123/test123 .
Теперь в папке test123 четыре каталога: "branches", "tags", "trunk" и ".svn".

Создаю в этой же папке файл "1.txt" c текстом "привет" и добавляю его в репозиторий:
svn add 1.txt
Отправляю, обновляю:
svn commit --message "123"
svn update


Вопрос: у меня должно что-то появиться в папке trunk? Как я понял, это основная ветка т.е. (по идее) туда должен скопироваться файл 1.txt. Но не копируется.

Ладно. Допустим, это делается вручную. Залезаю в папку trunk, создаю там файл "2.txt". Делаю 
svn switch https//mysvn.ru/user123/test123/trunk
svn add 2.txt
svn commit --message "456"
svn update


Появляется новая ревизия, отлично.

А теперь! Пытаюсь создать новую ветку.

Если сделать так:
svn copy https//mysvn.ru/user123/test123 https//mysvn.ru/user123/test123/branches/branch1 -m "new branch"
 - то в папкe "branch1" окажутся папки "branches", "tags", "trunk" и ".svn" основного ("test123") каталога.
Что неправильно.

А если так:
svn copy https//mysvn.ru/user123/test123/trunk https//mysvn.ru/user123/test123/branches/branch1 -m "new branch"
- то в папке "branch1" окажется каталог "trunk", что тоже неправильно.

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


PM MAIL   Вверх
vedun
Дата 4.6.2012, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 23.12.2010

Репутация: нет
Всего: 2



Цитата(klich1 @ 4.6.2012,  04:44)
Я создаю новую папку и захожу в неё:
cd test123 
Загружаю новый пустой репозиторий:
svn checkout https//mysvn.ru/user123/test123 .
Теперь в папке test123 четыре каталога: "branches", "tags", "trunk" и ".svn".

Создаю в этой же папке файл "1.txt" c текстом "привет" и добавляю его в репозиторий:
svn add 1.txt
Отправляю, обновляю:
svn commit --message "123"
svn update


Вопрос: у меня должно что-то появиться в папке trunk?
 Нет. Для того чтобы файлы появились в trunk надо их туда положить.

Цитата(klich1 @ 4.6.2012,  04:44)

Ладно. Допустим, это делается вручную. Залезаю в папку trunk, создаю там файл "2.txt". Делаю 
svn switch https//mysvn.ru/user123/test123/trunk
svn add 2.txt
svn commit --message "456"
svn update


Появляется новая ревизия, отлично.

А теперь! Пытаюсь создать новую ветку.

Если сделать так:
svn copy https//mysvn.ru/user123/test123 https//mysvn.ru/user123/test123/branches/branch1 -m "new branch"
 - то в папкe "branch1" окажутся папки "branches", "tags", "trunk" и ".svn" основного ("test123") каталога.
Что неправильно.

А если так:
svn copy https//mysvn.ru/user123/test123/trunk https//mysvn.ru/user123/test123/branches/branch1 -m "new branch"
- то в папке "branch1" окажется каталог "trunk", что тоже неправильно.

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

Насколько я помню svn не имеет понятия ветки, они сзодаются путём копирования каталогов внутри хранилища. Как называть каталоги в принципе не имеет значения, просто договорились что в репозитории будет каталог trunk - омновная ветка, каталог branches - вспомогательные ответвления и tags - каталог с релизами. Поэтому сделайте chekout trunk вместо checkout всего репозитория а потом на основе этой рабочей копии делайте ветки. А то как у вас сейчас получается что вы в рабочую папку слили и основную ветку и вспомогательные потом на основе этого содаёте ещё ветку.
PM ICQ Skype Jabber   Вверх
klich1
Дата 4.6.2012, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.6.2012

Репутация: нет
Всего: нет



Спасибо. Так всё работает. Единственное, что не понятно, это как делать diff между разными ветками.

Например, я выделил из "/trunk" ветку "/branches/branch1". SVN говорит, что текущая ревизия 3. Далее я вношу изменения в главную ветку ("/trunk"), коммичу, появляется ревизия 4. Потом я переключаюсь на "/branches/branch1", вношу изменения там, коммичу и получаю ревизию 5.

А теперь я хочу сравнить (diff) эти две ветки. Т.е. ревизию 4 главной ветки и ревизию 5 новой ветки. 

Но если сделать так:
svn diff -r 4:5 https://mysvn.ru/user123/test123/trunk https://mysvn.ru/user123/test123/branches/branch1
- то получается ерунда (выводится 2 диффа каждой из веток в отдельности; а не один "межветковый" дифф).

Что делать?
PM MAIL   Вверх
vedun
Дата 5.6.2012, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 23.12.2010

Репутация: нет
Всего: 2



Цитата(klich1 @ 4.6.2012,  19:31)

...
Но если сделать так:
svn diff -r 4:5 https://mysvn.ru/user123/test123/trunk https://mysvn.ru/user123/test123/branches/branch1
- то получается ерунда (выводится 2 диффа каждой из веток в отдельности; а не один "межветковый" дифф).

Что делать?
 Вот этого не подскажу
PM ICQ Skype Jabber   Вверх
bilbobagginz
Дата 5.6.2012, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


Профиль
Группа: Экс. модератор
Сообщений: 8813
Регистрация: 2.3.2004
Где: Israel

Репутация: 4
Всего: 317



Цитата(vedun @  4.6.2012,  13:14 Найти цитируемый пост)
Нет. Для того чтобы файлы появились в trunk надо их туда положить.

если нужно это делать с других веток, то это делается слиянием "merge".



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
maxim1000
Дата 5.6.2012, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 3
Всего: 110



Цитата(klich1 @  4.6.2012,  19:31 Найти цитируемый пост)
А теперь я хочу сравнить (diff) эти две ветки.

для этого можно воспользоваться третьей формой команды diff (из описания svn help diff):
Цитата

diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]



--------------------
qqq
PM WWW   Вверх
klich1
Дата 6.6.2012, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 2.6.2012

Репутация: нет
Всего: нет



> третьей формой команды diff

спасибо! я ужае нашел
PM MAIL   Вверх
Karadul
Дата 10.7.2013, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.5.2006

Репутация: нет
Всего: 1



Чего люди не будут делать лишь бы гуем не пользоваться.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
arilou

НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание на то, что новые темы, касающиеся новых вопросов, создаются кнопкой "Новая тема", а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих темах, будут удалены.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, arilou.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | УП: Инструменты | Следующая тема »


 




[ Время генерации скрипта: 0.1331 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.