|
|
  |
SVN. С чего начинать?, вопрос новичка... |
|
|
|
Dec 23 2008, 16:33
|

инопланетянин
  
Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832

|
Цитата(ClockworkOrange @ Dec 23 2008, 18:10)  после изучения "теории" в svnbook, можно переходить непосредственно к практике: пп. "4.1.2. Creating The Repository With TortoiseSVN" в хелпе к TortoiseSVN сотворил)) что дальше делать? теперь туда файлы добавляются или проекты целиком?
|
|
|
|
|
Dec 23 2008, 17:00
|

Частый гость
 
Группа: Свой
Сообщений: 174
Регистрация: 4-11-04
Из: zp.ua
Пользователь №: 1 046

|
Цитата(ClockworkOrange @ Dec 23 2008, 14:45)  >> под виндой начните с bzr или hg. пользовать централизованную систему а-ля svn на одном компе -- нецелесообразно.
использовать децентрализованную (при одном разработчике в проекте) и сырую (bzr) - еще большая глупость Готовы аргументировано за базар ответить? Т.е. в svn всё, ну просто всё уже не сырое? и даже этот любимый всеми merge? Цитата(ClockworkOrange @ Dec 23 2008, 16:19)  Ivan A-R
так а что мешает делать тоже самое в бранче SVN ???? (коммиты, диффы и т.д.). commit и diff не покажут разницу конечно. merge -- покажет. Цитата(spf @ Dec 23 2008, 16:40)  Это из разряда войн религий... Это твое личное мнение. Я имею представление, поэтому и советую. Для полного новичка изучать и использовать, что централизованную, что распределенную систему -- абсолютно фиолетово, у него просто нет еще стереотипов в мозгу. Цитата(Legotron @ Dec 23 2008, 17:02)  Вы правильно говорите, на данный момент я остановился на SVN(личное субъективное мнение новичка) для конкретики.. Это ваш выбор, который я не смею оспаривать. Посему -- умолкаю.
--------------------
Имей мужество пользоваться своим собственным разумом! (с) И.Кант
|
|
|
|
|
Dec 31 2008, 07:53
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Legotron @ Dec 23 2008, 19:02)  Итак.. кто распишет по шагам своими словами какие действия необходимо произвести что-бы ощутить хоть какой-нибудь элементарный результат)) Вот моя инструкция для студентов для сетевой версии. Очевидные моменты исключаются при работе на одном компьютере. Да, еще логин и пароль нужно прописать в conf (спрашивайте, если непонятно) Включение нового проекта под систему контроля версий.
1. Создать директорию New_project в главном репозитории (обычно на сервере) (Может сделать только пользователь, имеющий права на сервере - просить) 2. Выбрать директорию New_project и для нее запустить "Set repository here". (Может сделать только пользователь, имеющий права на сервере - просить) 3. Открыть в ней дир conf и заменить файл svnserve.conf на хранящийся шаблон файла в главном репозитории. (Может сделать только пользователь, имеющий права на сервере - просить) 4. Откорректировать этот файл, указав имя проекта. (Может сделать только пользователь, имеющий права на сервере - просить) 5. Создать директорию Work_here, где будет рабочий проект, на рабочей станции. 6. Скопировать туда пустую структуру хранящихся файлов \branches \tags \trunk из шаблона Template в главном репозитории 7. Импортировать эту структуру в репозиторий import svn://server/new_project 8. Удалить все из Work_here и записать туда только те файлы, которые подлежать контролю версий. 9. Импортировать эти файлы в раздел trunk - import svn://server/new_project/trunk 10. Удалить все файлы из work_here и сделать checkout - файлы будут считаны из репозитория. 11. Убедиться, что файлы правильные - можно начинать работу.
12. После корректировки файлов выполнить commit и обязательно указать смысл изменений
Создание новой рабочей копии. 1. Создать новый каталог. 2. Выполнить checkout
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jan 2 2009, 02:15
|

инопланетянин
  
Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832

|
Цитата(Dog Pawlowa @ Dec 31 2008, 10:53)  3. Открыть в ней дир conf и заменить файл svnserve.conf на хранящийся шаблон файла в главном репозитории. (Может сделать только пользователь, имеющий права на сервере - просить) 4. Откорректировать этот файл, указав имя проекта. (Может сделать только пользователь, имеющий права на сервере - просить)
Для чего служат эти процедуры?? В описании к TortoiseSVN п. 4.1.2. предупреждается: Цитата A repository is then created inside the new folder. Don't edit those files yourself!!!.
|
|
|
|
|
Jan 17 2009, 12:18
|

инопланетянин
  
Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832

|
Продолжаю осваивать SVN, весьма проникся контролем версий, теперь заставляю себя поддерживать порядок!  Использую TortiseSVN. По ходу работы у меня возникли следующие вопросы: 1. Когда вы оставляете комменты при commit-e, вы используете какую-нибудь четкую структуру записи?? или просто оставляете пометки?? Вообщем интересует структура этих заметок.. 2. Возникло желание сделать TODO-лист... возможно ли сделать примерно следующее?: я пишу что мне нужно сделать, потом отмечаю что сделано, пишу к этому комментарии, как можно сделать такое в связке с SVN? 3. Что такое Bug/Issue tracker? Удобно ли этим пользоваться для самого себя в связке с SVN? Какие из них наиболее удобны? 4. Можно ли автоматизировать процесс создания репозитория, создание его структуры, добавления в него новых проектов, и.т.д... с соответствующими комментами, вообщем рутиные процессы? Как это сделать?, придайте мне направление
|
|
|
|
|
Jan 17 2009, 21:19
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(Legotron @ Jan 17 2009, 15:18)  1. Когда вы оставляете комменты при commit-e, вы используете какую-нибудь четкую структуру записи?? или просто оставляете пометки?? Вообщем интересует структура этих заметок.. Да какую придумаете, такая и будет. Совет - не коммитить весь проект целиком. Например, у вас есть само приложение и библиотека обслуживания ЖКИ (хотя наилучший вариант, когда такая библиотека используется как externals). Изменили там, изменили тут - комитте отдельно, пишите отдельные комментарии - будет проще разобраться, если что. Ну вот у меня например в начале строки комментария [+++] если что-то добавил и [%%%] если что-то изменил. Иногда [***] при каких-нить других ситуациях. Цитата(Legotron @ Jan 17 2009, 15:18)  2. Возникло желание сделать TODO-лист... возможно ли сделать примерно следующее?: я пишу что мне нужно сделать, потом отмечаю что сделано, пишу к этому комментарии, как можно сделать такое в связке с SVN? Не совсем понятно, что вы хотите от SVN Цитата(Legotron @ Jan 17 2009, 15:18)  3. Что такое Bug/Issue tracker? Удобно ли этим пользоваться для самого себя в связке с SVN? Какие из них наиболее удобны? Для самого себя - не знаю. В группе удобно. И не обязательно над проектом должно работать несколько человек. Issue tracker может использовать, например, как простейший шедуллер и генератор отчетов для руководства. Из наиболее известных - Trac, мы пользуемтся Redmine - там еще много чего есть кроме баг-трекинга по умолчанию, а в траке надо напрягать админа всякими плагинами, созданием нового проекта и пр. http://www.mysvn.ru/ - тут можно на 10 МБ бесплатном аккуанте посмотреть, что такое Trac. Цитата(Legotron @ Jan 17 2009, 15:18)  4. Можно ли автоматизировать процесс создания репозитория, создание его структуры, добавления в него новых проектов, и.т.д... с соответствующими комментами, вообщем рутиные процессы? Как это сделать?, придайте мне направление  Я вообще не понимаю проблемы. Создаете папку, внутри структура папок проекта (можно сделать потом), тыкаетесь, в тортиле выбираете Import и указываете путь хранилищу + папка для проекта в этом хранилище. Все. Никаких шаманских действий, которые описал Dog Pawlowa не нужно (во всяком случае, если работаете с тортилой и под виндой).
|
|
|
|
|
Jan 20 2009, 11:34
|

инопланетянин
  
Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832

|
Цитата(Alex B._ @ Jan 18 2009, 00:19)  Цитата(Legotron @ Jan 17 2009, 15:18)  1. Когда вы оставляете комменты при commit-e, вы используете какую-нибудь четкую структуру записи?? или просто оставляете пометки?? Вообщем интересует структура этих заметок..
Да какую придумаете, такая и будет. Совет - не коммитить весь проект целиком. Например, у вас есть само приложение и библиотека обслуживания ЖКИ (хотя наилучший вариант, когда такая библиотека используется как externals). Насчет коммита целиком: это конечно правильно, но.. 1. это вынудит делать их очень часто и отвлекаться от работы... 2. а если что-нибудь забудешь? (постоянно сверять с HEAD?) Цитата(Alex B._ @ Jan 18 2009, 00:19)  Цитата(Legotron @ Jan 17 2009, 15:18)  2. Возникло желание сделать TODO-лист... возможно ли сделать примерно следующее?: я пишу что мне нужно сделать, потом отмечаю что сделано, пишу к этому комментарии, как можно сделать такое в связке с SVN?
Не совсем понятно, что вы хотите от SVN Автоматическое добавления в файл этой информации... Цитата(Alex B._ @ Jan 18 2009, 00:19)  Цитата(Legotron @ Jan 17 2009, 15:18)  3. Что такое Bug/Issue tracker? Удобно ли этим пользоваться для самого себя в связке с SVN? Какие из них наиболее удобны?
Для самого себя - не знаю. В группе удобно. И не обязательно над проектом должно работать несколько человек. Issue tracker может использовать, например, как простейший шедуллер и генератор отчетов для руководства. Из наиболее известных - Trac, мы пользуемтся Redmine - там еще много чего есть кроме баг-трекинга по умолчанию, а в траке надо напрягать админа всякими плагинами, созданием нового проекта и пр. http://www.mysvn.ru/ - тут можно на 10 МБ бесплатном аккуанте посмотреть, что такое Trac. Спасибо за ссылку  Чувствую что это отдельная тема, в которой сначала нужно внимательно разобраться, и задавать вопросы в отдельной ветке... Цитата(Alex B._ @ Jan 18 2009, 00:19)  Цитата(Legotron @ Jan 17 2009, 15:18)  4. Можно ли автоматизировать процесс создания репозитория, создание его структуры, добавления в него новых проектов, и.т.д... с соответствующими комментами, вообщем рутиные процессы? Как это сделать?, придайте мне направление  Я вообще не понимаю проблемы. Создаете папку, внутри структура папок проекта (можно сделать потом), тыкаетесь, в тортиле выбираете Import и указываете путь хранилищу + папка для проекта в этом хранилище. Все. Никаких шаманских действий, которые описал Dog Pawlowa не нужно (во всяком случае, если работаете с тортилой и под виндой). я скажу "как я хочу", и тогда ИМХО сразу станет понятно в чем проблема  Хочу чтобы одним действием после создания проекта: 1. создался под него репозиторий 2. создались все необходимые "веточки" в нем 3. проект добавился в /trunk 4. и у меня оказалась рабочая копия с "зеленой галочкой" Еще вопросы:5. Использую svn:keywords... Добавляю properties ко всему проекту с включенной галочкой "Apply prop. recursively"...Часто добавляю новые файлы в проект... и они оказываются без "svn:keywords"(( Как сделать, чтобы нужные мне "свойства" добавлялись к свежедобавленным файлам?? Использовать хуки? Писать .bat файлы? 6. Какое преимущество можно получить в SVN за счет, присвоения новых номеров ревизий только реально изменившимся файлам? P.S. Я использую тортиллу, мне она вполне нравиться, но иногда чувствуется, что я делаю очень много лишних кликов  Хотелось бы посмотреть на хорошую(образцовую) организацию всего SVN-хозяйства..
|
|
|
|
|
Jan 20 2009, 21:02
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(Legotron @ Jan 20 2009, 14:34)  Насчет коммита целиком: это конечно правильно, но.. 1. это вынудит делать их очень часто и отвлекаться от работы... 2. а если что-нибудь забудешь? (постоянно сверять с HEAD?) 1) почему? я не чаще раза в день коммит делаю. Я не к тому, что изменил/закоммитил, а к тому, что логически разные части проекта должны быть отдельно закомитчены. 2) TortoiseSVN - замечательная напоминалка. Может у вас оверлейные значки на иконках выключены в системе? Цитата(Legotron @ Jan 20 2009, 14:34)  Автоматическое добавления в файл этой информации... все равно не понял. Вы хотите календарный план проекта совместить с SVN? зачем? Цитата(Legotron @ Jan 20 2009, 14:34)  я скажу "как я хочу", и тогда ИМХО сразу станет понятно в чем проблема  Хочу чтобы одним действием после создания проекта: 1. создался под него репозиторий У меня всегда был один репозиторий. Зачем вам под каждый проект разные? достаточно разделять на уровне папок. А все остальное Import делает. Цитата(Legotron @ Jan 20 2009, 14:34)  Использую svn:keywords... Добавляю properties ко всему проекту с включенной галочкой "Apply prop. recursively"...Часто добавляю новые файлы в проект... и они оказываются без "svn:keywords"(( Как сделать, чтобы нужные мне "свойства" добавлялись к свежедобавленным файлам?? Использовать хуки? Писать .bat файлы? никогда этим не озадачивался. Я использую только extenals и ignore, больше по-моему ничего не надо. Если не секрет - зачем? Цитата(Legotron @ Jan 20 2009, 14:34)  Какое преимущество можно получить в SVN за счет, присвоения новых номеров ревизий только реально изменившимся файлам? хм, а разве можно как-то по другому?
|
|
|
|
|
Jan 21 2009, 07:39
|

инопланетянин
  
Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832

|
Цитата(Alex B._ @ Jan 21 2009, 00:02)  1) почему? я не чаще раза в день коммит делаю. Я не к тому, что изменил/закоммитил, а к тому, что логически разные части проекта должны быть отдельно закомитчены. Т.е. вы, к примеру, производите коммит раз в день, но при этом производя множество последовательный коммитов отдельных частей?? Правильно понимаю? Цитата(Alex B._ @ Jan 21 2009, 00:02)  2) TortoiseSVN - замечательная напоминалка. Может у вас оверлейные значки на иконках выключены в системе? Нет, значки включены, даже в тотал-командер встроил, но мне удобнее смотреть изменения через log.. Цитата(Alex B._ @ Jan 21 2009, 00:02)  все равно не понял. Вы хотите календарный план проекта совместить с SVN? зачем? Ну хотелось бы где-нибудь писать что нужно сделать, потом отмечать что это сделал, при этом помечая(автоматом) в какой ревизии это реализовано.. потом можно было бы сделать файл, где в какой ревизии что исправлено.. ну как-то завести "единое окошко" проблем и результатов их устранения(с авто-привязкой к номеру ревизии).. и еще бы неплохо сразу tag при этом делать.. чтобы номер tag-a (release-1.2.3) тоже бы в файл вносился.. что-то типа такого, чтобы автоматом генерилось: Код Version history --------------- 1.70 (28.04.1999) New methods: SetDTR, SetRTS, SetBreak, SetXonXoff Properties can be changed during a session 1.60 (10.04.1999) New properties: EventChar, DiscardNull, SyncMethod Extended Parity property Fixed compilation problems Other bug fixes 1.50 (13.03.1999) Read/Write operations in asynchronous/synchronous mode Added OnRx80Full event Extended flow control Added Timeouts property 1.01 (24.10.1998) Added more signal detection functions. Added this documentation. Added PurgeOut function. Fixed some minor bugs. 1.00 (29.09.1998) Basic version of the component Цитата(Alex B._ @ Jan 21 2009, 00:02)  У меня всегда был один репозиторий. Зачем вам под каждый проект разные? достаточно разделять на уровне папок. А все остальное Import делает. А если он накроется?  И у вас все логи перемешаны для разных проектов??? Или SVN их для папок сам сортирует, только ревизии с "дырками получаются"? Цитата(Alex B._ @ Jan 21 2009, 00:02)  никогда этим не озадачивался. Я использую только extenals и ignore, больше по-моему ничего не надо. Если не секрет - зачем? В файле повесил $Id$, понятно кем, когда, в какой ревизии был закомитчен.. ИМХО удобно, если проект выйдет из под SVN-контроля (Export...) останутся привязки в файлах.. Кстати, удобно было бы чтобы в файл автоматом прописывались пофиксченные баги... но, этим, я думаю уже не SVN должен заниматься, у SVN keywords-ов пальцев одной руки хватит чтобы пересчитать)) Цитата(Alex B._ @ Jan 21 2009, 00:02)  хм, а разве можно как-то по другому? я некомпетентен в этом вопросе))
|
|
|
|
|
Jan 21 2009, 12:47
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Legotron @ Jan 20 2009, 13:34)  6. Какое преимущество можно получить в SVN за счет, присвоения новых номеров ревизий только реально изменившимся файлам? Просматривая svn log этого файла вы видите, в каких именно правках этот файл реально изменялся. Аналогично, просматривая svn log для папки, вы видите те и только те правки, в которых менялись файлы в этой папке. Цитата(Legotron @ Jan 21 2009, 09:39)  Ну хотелось бы где-нибудь писать что нужно сделать, потом отмечать что это сделал, при этом помечая(автоматом) в какой ревизии это реализовано.. Это вам нужно что-то вроде Trac. spf прикрутил автоматическое формирование файла-отчета об изменениях из лог-сообщений фиксации для scmRTOS. Как он это сделал - я не в курсе. Пишите подробное лог-сообщение при фиксации изменений, это очень полезно.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 21 2009, 21:26
|

Знающий
   
Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274

|
Цитата(Legotron @ Jan 21 2009, 10:39)  Т.е. вы, к примеру, производите коммит раз в день, но при этом производя множество последовательный коммитов отдельных частей?? Правильно понимаю? суть поняли правильно. Цитата(Legotron @ Jan 21 2009, 10:39)  Нет, значки включены, даже в тотал-командер встроил, но мне удобнее смотреть изменения через log.. дык и смотрите через лог. Это к тому, что можно "что-нибудь забыть" Цитата(Legotron @ Jan 21 2009, 10:39)  Ну хотелось бы где-нибудь писать что нужно сделать, потом отмечать что это сделал, при этом помечая(автоматом) в какой ревизии это реализовано.. Trac, Redmine. В общем, баг трекер вам наверное поможет. Цитата(Legotron @ Jan 21 2009, 10:39)  А если он накроется?  Для этого нужно делать ежедневный бэкап. Кроме того, на многих бесплатных SVN хостингах можно создать только ограниченное количество репозиториев. Цитата(Legotron @ Jan 21 2009, 10:39)  И у вас все логи перемешаны для разных проектов??? Или SVN их для папок сам сортирует, только ревизии с "дырками получаются"? Сам сортирует. Вы можете посмотреть историю ревизий только для одного файла и увидите только его ревизии.
|
|
|
|
|
Jan 22 2009, 14:04
|

Странник
   
Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051

|
Цитата(Сергей Борщ @ Jan 21 2009, 17:47)  Это вам нужно что-то вроде Trac. Для простоты установки можно попробовать Redmine или MantisЦитата spf прикрутил автоматическое формирование файла-отчета об изменениях из лог-сообщений фиксации для scmRTOS. Как он это сделал - я не в курсе. Все примитивно просто - для этого используется готовый скрипт scn2cl
--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
|
|
|
|
|
Jan 28 2009, 14:17
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(Legotron @ Jan 28 2009, 15:50)  Подскажите пожалуйста, нужно ли включать в коммиты файлы типов: *.exe, *.hex, *.elf и.т.д Так и религиозную войну недолго начать :-) Тем не менее, мои 5 копеек: Я храню только исходники (включая настройки тулзов для сборки). Считаю, что прошивке не место рядом с ними. Аргументы: 1) Если это не релиз, то толку от двоичного файла мало: всё равно продолжается разработка и тулзы под рукой, так что собрать образ заново легко. 2) Если это релиз, то файл прошивки по-хорошему надо хранить вместе с внутренней документацией на изделие, в которое залита эта прошивка.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|