![]() |
|
|
![]()
|
|
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
Вот, собственно. Стоял раньше vss, и жил-поживал я, пока не добрался до текстов с кодировкой utf8. Поставил себе Eclipse с Subclips'ом, завел лепрозорий... хм... репрозиторий...
Пока проект один - commit-update - ничего нового А вот со вторым - проблема Есть проект №1, и проект №2. Они оба содержат несколько пересекающихся файлов. У пересекающихся файлов разный статус. Одни - системные библиотеки, которым следует верить и брать новую версию "не глядя"... Другие - какие-то мои или еще чьи-то самоделки, которые могут меняться от проекта к проекту, но хочется их как-нибудь "синхронизировать". В vss я мог сказать, что один файл является линком для другого и оба этих файла будут по "получить последнюю версию" или "посмотреть историю" мне доступны в любом из проектов Как мне поступить для subversion? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 1 Всего: 31 |
Нужно в сабвершене завести один репозиторий, в котором есть ветка одного проекта, есть ветка другого проекта, а есть ветка(и) библиотек.
Если одни и те же файлы используются в различных проектах, то их явно стоит рассматривать как некоторую библиотеку. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
До чего-то такого я уже практически дошел... Есть 3 проекта (3 каталога в репозитории).
Начитался про svn:externals, хотел было заюзать и не понимаю куда их вставлять... У меня из инструментов - TortoiseSVN м 1.4.5 и SubClipse и ни один из них мне явно про external не говорит... :( -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
Тортила сказала... Правда ее пришлось долго мучить...
-- Блин! externals можно установить только на папки, а не на файлы... То есть как это? Нельзя будет создать один огромный библиотечный репозиторий и набирать из него нужные мне вкусные кусочки? Это сообщение отредактировал(а) ksnk - 9.12.2007, 18:05 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 1 Всего: 31 |
Что есть экстерналз у свна - не в курсе.
Но предложенный вариант и без всяких экстерналз вполне неплохо реализуется. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
Да, видимо externals несколько не в тему...
начнем с начала. Есть проект из файлов {file1, file2, lib1}, который разрабатывает, к примеру, Stieve ;-) и есть проект, состоящий из {file3,file2-XXX, lib1}, который разрабатывает, Sally. lib1 - сторонняя библиотека, версия которой меняется периодически и в "лучшую" сторону file2 - версия файла, которая в "конце-концов" будет одинакова у двух разработчиков. Остальные файлы личные и мало похожи. Как организовать репозиторий? Потребности: Кто-то из разработчиков укачивает новую версию библиотеки lib1 и желает ее раздать всем. Разработчики хотят иметь возможность "слить" свои изменения file2 в любой удобный момент... Не обязательно разжевывать, просто схема - какие каталоги, чего положить... я понятливый -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 1 Всего: 70 |
{file1, file2, lib1} - первый каталог в репозитории
{file3, lib1} - второй. В проект у Sally подключается file2. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
Как? Командой copy? Что дeлать после того, как Sally поменяла что-то и решила, что это - хорошо? Commit куда - в свой проект или в первый проект. Или merge ? Что делать если Stieve укачал свеженький lib1 и желает, чтобы Sally с минимальными телодвижениями (одним только update'ом) его получила? У меня только Тортила и Subclipse. Правда в Subclips'е есть что-то напоминающее консоль... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| nornad |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 1 Всего: 31 |
ksnk, тебе явно стоит просветиться на тему совместной разработки кода. Особенно в плане моментов совместной одновременной правки одних и тех же файлов.
Никакой - подключаешь в проекте.
Репозиторий должен находиться на общем сервере. Салли, изменив файл и решив, что всё круто - коммитит файл на сервер. Туда, откуда и брала (файл на сервере для уменьшения энтропии и возможных ошибок разруливания различных версий должен находиться всего лишь в одном месте репозитория). В общем, закоммитила. Предварительно проверив, не произвёл ли ещё кто-нибудь изменения этого файла с прошлого стягивания. Если файл изменяли - мержит. Иначе просто коммитит.
Опять же - обычная процедура. В этом случае Стив считается ответственным за обновление библиотеки либ1. Скачал новую версию. Поигрался с нею в локали, проверил, всё ли работает с новой версией нормально (иногда бывают проблемы). Если ок - закоммитил и рассказал всем, какой он хороший. Салли в очередно раз стягивает с сервера уже обновлённую версию либ1 и пользуется ею. Если вдруг обнаруживается, что в каком-то проекте новая версия либ1 криво работает, то тут либо откатывают либ1 для всех проектов на пред.версию, либо организуют в репозитории место для старой версии (в цвсе была возможность делать ветки, в свн не видел, но и не искал). Добавлено через 7 минут и 28 секунд Лишний раз убеждаюсь, что объяснить суть работы с CVS/SVN тому, кто привык к VSS - проблема. VSS слишком уж аскетичный и работает как чугунный утюг на углях - медленно и глупо, но надёжно. И ежели им пользоваться в общирной подвижной команде, то можно поиметь кучу неприятностей. Пример: Вася (Стив, если так удобнее) работает над некоторыми исходниками. Они считаются "его" исходниками и больше туда никто не лезет. Подошло время Васе идти в отпуск, он и пошёл. Через пару дней после того, как Вася уехал в Магадан (или на гавайи, если так удобнее) потребовалось срочно внести изменения в его код - нашли ошибку. Но вот беда - Вася забыл счекинить файлы. И ещё беда - дозвониться до него не получается. Пришлось начальнику идти к админу, заведующему VSS и просить, чтобы он снял блокировку с Васиного файла. А время-то идёт. Итог - приезжает Вася с отпуска и получает по шапке не только за ошибку но и за то, что забыл счекинить файлы. Да, Вася виноват, спору нет. Но если бы вместо всс был цвс/свн - легко можно было бы внести изменения и не тратить лишнее время и нервы. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
Видимо, дело в используемых мной инструментах (надеюсь, голову менять не придется
На старте у меня есть два каталога с проектами, сидящими в Eclipse
Как мне сказать SVN'у, что файлы в проектах пересекаются? Мне бы лучше рукой показать -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
O!!! Достиг - таки какого-то просветления... подключать - это копировать!
Тортилой основную либу таки удалось обновить. Действительно, все оказалось очевидно, хотя, впрочем и не так волшебно... Никто кроме тебя не внесет новых изменений в твой собственный проект и каждый проект нужно "подтягивать" до новых версий системных библиотек вручную, самостоятельно merge'a каждую по отдельности... Это сообщение отредактировал(а) ksnk - 10.12.2007, 10:50 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| nornad |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: 1 Всего: 31 |
Крут, конечно, но не того достиг. Подключать файлы и библиотеки в проект надо в настройках проекта.
Хм... а что, должно быть как-то иначе? У вас в VSS'е Дед Мороз под новый год всем общие файлы обновлял в качестве подарка? Повторюсь - не в инструментах дело, а в понимании того, что ты делаешь. Повторяю в очередной раз - ты копаешь не с той стороны. Тебе нужно правильно организовать сами проекты в первую очередь, а потом уже лезть к свну. Добавлено через 4 минуты и 20 секунд Вот тебе пример. На винте:
Проект 1 в IDE - основан на папке /projects/prj1; папка /projects/libs подключена к проекту. Проект 2 в IDE - основан на папке /projects/prj2; папка /projects/libs подключена к проекту. Схема упрощена до предела, но достаточно наглядна. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
||||||
|
|||||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
O! Вот он человек, который мне все объяснит! -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 1 Всего: 70 |
Не пойму в чем проблема топикстартера... Подключить в проект - значит добавить файл в проект, при этом этот файл может находится в другой рабочей копии совсем другого репозитория, на другом компьютере, да где угодно. Как уже сказали выше, нужно вначале разобраться в проектах, а уже потом приплетать свн.
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
проект - это каталог. Он лежит у меня на компутере и имеет имя "project1". Вот ЭТО по моему - проект. Он самодостаточен, в определенном смысле... Есть столь-же самодостаточный проект в каталоге "project2". Раньше, в vss, все эти проекты лежали себе разными папками и имели ЛИНКИ на некотоые из файлов внутри проектов. Файлы похожи только содержанием и именем, но не относительным адресом внутри проекта. При изменении "общего" файла в проекте 2 я мог получить его изменения в проекте 1 просто выполнив 1-у команду - "сравнить с проектом" и 2-ю команду - chechout.
В принципе, при доверии к источнику изменений можно обойтись одной командой! Я желал бы получить рецепт, как такое-же сделать, используя svn + Subclipce и/или Тортилу. пока я нашел способ сделать примерно такое-же, за несколько команд. если вы знаете способ сделать это быстрее - я с удовольсьтвием его выслушаю. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание на то, что новые темы, касающиеся новых вопросов, создаются кнопкой "Новая тема", а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих темах, будут удалены. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, arilou. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | УП: Инструменты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |