Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несколько вопросов от нуба... vss--->SVN 
:(
    Опции темы
ksnk
Дата 9.12.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Вот, собственно. Стоял раньше vss, и жил-поживал я, пока не добрался до текстов с кодировкой utf8. Поставил себе Eclipse с Subclips'ом, завел лепрозорий... хм... репрозиторий...

Пока проект один - commit-update - ничего нового smile

А вот со вторым - проблема

Есть проект №1, и проект №2. Они оба содержат несколько пересекающихся файлов. У пересекающихся файлов разный статус. Одни - системные библиотеки, которым следует верить и брать новую версию "не глядя"... Другие - какие-то мои или еще чьи-то самоделки, которые могут меняться от проекта к проекту, но хочется их как-нибудь "синхронизировать".
В vss я мог сказать, что один файл является линком для другого и оба этих файла будут по "получить последнюю версию" или "посмотреть историю" мне доступны в любом из проектов
Как мне поступить для subversion?




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
nornad
Дата 9.12.2007, 16:36 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Нужно в сабвершене завести один репозиторий, в котором есть ветка одного проекта, есть ветка другого проекта, а есть ветка(и) библиотек.
Если одни и те же файлы используются в различных проектах, то их явно стоит рассматривать как некоторую библиотеку.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
ksnk
Дата 9.12.2007, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



До чего-то такого я уже практически дошел... Есть 3 проекта (3 каталога в репозитории).
Начитался про svn:externals, хотел было заюзать и не понимаю куда их вставлять... У меня из инструментов - TortoiseSVN м 1.4.5 и SubClipse и ни один из них мне явно про external не говорит... :(
 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ksnk
Дата 9.12.2007, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Тортила сказала... Правда ее пришлось долго мучить...

--
Блин! externals можно установить только на папки, а не на файлы... То есть как это? Нельзя будет создать один огромный библиотечный репозиторий и набирать из него нужные мне вкусные кусочки?

Это сообщение отредактировал(а) ksnk - 9.12.2007, 18:05


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
nornad
Дата 9.12.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Что есть экстерналз у свна - не в курсе.
Но предложенный вариант и без всяких экстерналз вполне неплохо реализуется.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
ksnk
Дата 9.12.2007, 22:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Да, видимо externals несколько не в тему...

начнем с начала.
Есть проект из файлов {file1, file2, lib1}, который разрабатывает, к примеру, Stieve ;-) и есть проект, состоящий из {file3,file2-XXX, lib1}, который разрабатывает, Sally.
lib1 - сторонняя библиотека, версия которой меняется периодически и в "лучшую" сторону 
file2 - версия файла, которая в "конце-концов" будет одинакова у двух разработчиков. Остальные файлы личные и мало похожи.
Как организовать репозиторий?
Потребности:
Кто-то из разработчиков укачивает новую версию библиотеки lib1 и желает ее раздать всем.
Разработчики хотят иметь возможность "слить" свои изменения file2 в любой удобный момент...

Не обязательно разжевывать, просто схема - какие каталоги, чего положить... я понятливый smile иногда даже четыре раза объяснять не надо... доходит с третьего...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Daevaorn
Дата 9.12.2007, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

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



{file1, file2, lib1} - первый каталог в репозитории
{file3, lib1} - второй.

В проект у Sally подключается file2.

PM MAIL WWW   Вверх
ksnk
Дата 10.12.2007, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(Daevaorn @  9.12.2007,  22:33 Найти цитируемый пост)
В проект у Sally подключается file2.

Как? Командой copy?
Что дeлать после того, как Sally поменяла что-то и решила, что это - хорошо? Commit куда - в свой проект или в первый проект. Или merge ?
Что делать если Stieve укачал свеженький lib1 и желает, чтобы Sally с минимальными телодвижениями (одним только update'ом) его получила?
У меня только Тортила и Subclipse. Правда в Subclips'е есть что-то напоминающее консоль...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
nornad
Дата 10.12.2007, 04:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



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

Цитата(ksnk @  10.12.2007,  03:47 Найти цитируемый пост)
Как? Командой copy?

Никакой - подключаешь в проекте.
Цитата(ksnk @  10.12.2007,  03:47 Найти цитируемый пост)
Что дeлать после того, как Sally поменяла что-то и решила, что это - хорошо? Commit куда - в свой проект или в первый проект. Или merge ?

Репозиторий должен находиться на общем сервере. Салли, изменив файл и решив, что всё круто - коммитит файл на сервер. Туда, откуда и брала (файл на сервере для уменьшения энтропии и возможных ошибок разруливания различных версий должен находиться всего лишь в одном месте репозитория). В общем, закоммитила. Предварительно проверив, не произвёл ли ещё кто-нибудь изменения этого файла с прошлого стягивания. Если файл изменяли - мержит. Иначе просто коммитит.
Цитата(ksnk @  10.12.2007,  03:47 Найти цитируемый пост)
Что делать если Stieve укачал свеженький lib1 и желает, чтобы Sally с минимальными телодвижениями (одним только update'ом) его получила?

Опять же - обычная процедура. В этом случае Стив считается ответственным за обновление библиотеки либ1. Скачал новую версию. Поигрался с нею в локали, проверил, всё ли работает с новой версией нормально (иногда бывают проблемы). Если ок - закоммитил и рассказал всем, какой он хороший. Салли в очередно раз стягивает с сервера уже обновлённую версию либ1 и пользуется ею. Если вдруг обнаруживается, что в каком-то проекте новая версия либ1 криво работает, то тут либо откатывают либ1 для всех проектов на пред.версию, либо организуют в репозитории место для старой версии (в цвсе была возможность делать ветки, в свн не видел, но и не искал).

Добавлено через 7 минут и 28 секунд
Лишний раз убеждаюсь, что объяснить суть работы с CVS/SVN тому, кто привык к VSS - проблема. VSS слишком уж аскетичный и работает как чугунный утюг на углях - медленно и глупо, но надёжно. И ежели им пользоваться в общирной подвижной команде, то можно поиметь кучу неприятностей. Пример: Вася (Стив, если так удобнее) работает над некоторыми исходниками. Они считаются "его" исходниками и больше туда никто не лезет. Подошло время Васе идти в отпуск, он и пошёл. Через пару дней после того, как Вася уехал в Магадан (или на гавайи, если так удобнее) потребовалось срочно внести изменения в его код - нашли ошибку. Но вот беда - Вася забыл счекинить файлы. И ещё беда - дозвониться до него не получается. Пришлось начальнику идти к админу, заведующему VSS и просить, чтобы он снял блокировку с Васиного файла. А время-то идёт.
Итог - приезжает Вася с отпуска и получает по шапке не только за ошибку но и за то, что забыл счекинить файлы. Да, Вася виноват, спору нет. Но если бы вместо всс был цвс/свн - легко можно было бы внести изменения и не тратить лишнее время и нервы.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
ksnk
Дата 10.12.2007, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Видимо, дело в используемых мной инструментах (надеюсь, голову менять не придется smile)... Давайте пройдем все по шагам.
На старте у меня есть два каталога с проектами, сидящими в Eclipse 
  • TourtoiseSVN создает мне в папке z:\svn репозиторий
  • С первым проектом я делаю Team-> share project -> file://z:/svn - initial import -> ... создается проект 1 в репозитории
  • Со вторым проектом (содержащим пересекающиеся с первым файлы) я делаю то-же самое -> получаю проект 2
Видимо, последний пункт надо делать поумнее...
Как мне сказать SVN'у, что файлы в проектах пересекаются? 
Цитата(nornad @  10.12.2007,  04:29 Найти цитируемый пост)
... подключаешь в проекте...
 Мне бы лучше рукой показать smile Кнопки "подключить" я не увидел ...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
ksnk
Дата 10.12.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



O!!! Достиг - таки какого-то просветления... подключать - это копировать!
Тортилой основную либу таки удалось обновить. Действительно, все оказалось очевидно, хотя, впрочем и не так волшебно... Никто кроме тебя не внесет новых изменений в твой собственный проект и каждый проект нужно "подтягивать" до новых версий системных библиотек вручную, самостоятельно merge'a каждую по отдельности... 

Это сообщение отредактировал(а) ksnk - 10.12.2007, 10:50


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
nornad
Дата 10.12.2007, 15:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Цитата(ksnk @  10.12.2007,  13:49 Найти цитируемый пост)
O!!! Достиг - таки какого-то просветления... подключать - это копировать!

Крут, конечно, но не того достиг. Подключать файлы и библиотеки в проект надо в настройках проекта.
Цитата(ksnk @  10.12.2007,  13:49 Найти цитируемый пост)
Никто кроме тебя не внесет новых изменений в твой собственный проект

Хм... а что, должно быть как-то иначе? У вас в VSS'е Дед Мороз под новый год всем общие файлы обновлял в качестве подарка?
Цитата(ksnk @  10.12.2007,  13:14 Найти цитируемый пост)
Видимо, дело в используемых мной инструментах

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

Добавлено через 4 минуты и 20 секунд
Вот тебе пример.
На винте:
Код

--- /projects
----- /prj1
----- /prj2
----- /libs

Проект 1 в IDE - основан на папке /projects/prj1; папка /projects/libs подключена к проекту.
Проект 2 в IDE - основан на папке /projects/prj2; папка /projects/libs подключена к проекту.

Схема упрощена до предела, но достаточно наглядна.



--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
ksnk
Дата 10.12.2007, 18:10 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



Цитата(nornad @  10.12.2007,  15:36 Найти цитируемый пост)
Крут, конечно, но не того достиг. Подключать файлы и библиотеки в проект надо в настройках проекта.

O! Вот он человек, который мне все объяснит! smile Итак, у меня проект. Svn умеет делать команды copy, move, update, commit, merge... Ничего не упустил? У меня есть еще один проект с нужными мне в первом проекте файлами. Нужно их ПОДКЛЮЧИТЬ!  ЧТО мне делать? Лучше, если объяснение будет  в терминах Sublipse, но и  в терминах самого subversion'а, возможно, пойму...


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Daevaorn
Дата 10.12.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

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



Не пойму в чем проблема топикстартера... Подключить в проект - значит добавить файл в проект, при этом этот файл может находится в другой рабочей копии совсем другого репозитория, на другом компьютере, да где угодно. Как уже сказали выше, нужно вначале разобраться в проектах, а уже потом приплетать свн.
PM MAIL WWW   Вверх
ksnk
Дата 10.12.2007, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

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



проект - это каталог. Он лежит у меня на компутере и имеет имя "project1". Вот ЭТО по моему - проект. Он самодостаточен, в определенном смысле... Есть столь-же самодостаточный проект в каталоге "project2". Раньше, в vss, все эти проекты лежали себе разными папками и имели ЛИНКИ на некотоые из файлов внутри проектов. Файлы похожи только содержанием и именем, но не относительным адресом внутри проекта. При изменении "общего" файла в проекте 2  я мог получить его изменения в проекте 1 просто выполнив 1-у команду - "сравнить с проектом" и 2-ю команду - chechout.
В принципе, при доверии к источнику изменений можно обойтись одной командой!
Я желал бы получить рецепт, как такое-же сделать, используя svn + Subclipce и/или Тортилу. пока я нашел способ сделать примерно такое-же, за несколько команд. если вы знаете способ сделать это быстрее - я с удовольсьтвием его выслушаю.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
arilou

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


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

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


 




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


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

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