Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SVN. С чего начинать?
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Управление проектами
Legotron
Доброго времени суток!

Возник вопрос: "Нужен ли мне контроль версий?" smile.gif

Использую Windows.
Работаю над проектами в основном один, но иногда приходиться совершать действия вроде копирования полных папок с проектами в каталоги названные по датам.. думаю это плохой подход, поскольку постоянно приходится в них копаться и сравнивать исходники.

Хочется изучить систему, а потом понять нужна она мне или нет. Но я совершенно незнаю с чего и как начинать? пользуюсь только утилитками diff хаотически когда мне это нужно..

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

Спасибо!
ClockworkOrange
GUI-клиент под винду: TortoiseSVN ( http://tortoisesvn.tigris.org/ )
книжка: Управление версиями в Subversion ( http://svnbook.red-bean.com/ )
(она не только и не сколько для продвинутых - http://svnbook.red-bean.com/nightly/ru/svn.basic.html )

даже при работе над проектом водиночку чувствуется разница при использовании систем контроля версий
bialix
под виндой начните с bzr или hg. пользовать централизованную систему а-ля svn на одном компе -- нецелесообразно.
scifi
Если для индивидуального использования, то рекомендую Mercurial. Ведь в случае SVN надо ставить и сервер, и клиент. Конечно, про SVN гораздо больше написано, но про Mercurial тоже можно нарыть.
Ставим TortoiseHg. Вот пара руководств на русском языке. На английском, естественно, этого добра гораздо больше.
Для начала советую не погружаться в "распределённые" дебри, а сконцентрироваться на азах: create repository, add, commit, edit & diff & commit, show history. Кстати, для азов TortoiseHg всё сделает через менюшку, без командной строки. Когда всё это станет до боли знакомым, можно будет посмотреть на clone, branch, merge, push, pull и т.д.
ClockworkOrange
>> под виндой начните с bzr или hg. пользовать централизованную систему а-ля svn на одном компе -- нецелесообразно.

использовать децентрализованную (при одном разработчике в проекте) и сырую (bzr) - еще большая глупость
FormatCft
Цитата(Legotron @ Dec 23 2008, 17:07) *
не нашел там никакого quick startа
Спасибо!

КвикСтарт
Ivan A-R
Цитата(ClockworkOrange @ Dec 23 2008, 15:45) *
использовать децентрализованную (при одном разработчике в проекте) и сырую (bzr) - еще большая глупость


Вполне целесообразно.

Не надо тратить время на поддержку центрального репозитория.

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

Ну это основные преимущества перед централизованными СКВ с точки зрения одного разработчика.
ClockworkOrange
Ivan A-R

так а что мешает делать тоже самое в бранче SVN ???? (коммиты, диффы и т.д.).

"время поддержки центрального репозитория" - вот этого я не понимаю.вы что стоите как апполон и руками репозиторий как небесный свод поддерживаете???
scifi
Цитата(ClockworkOrange @ Dec 23 2008, 17:19) *
"время поддержки центрального репозитория" - вот этого я не понимаю.вы что стоите как апполон и руками репозиторий как небесный свод поддерживаете???

Вы, наверное, удивитесь, но я тоже разделяю мнение Ivan A-R. И вообще, держитесь в конструктивном русле.
spf
Цитата(bialix @ Dec 23 2008, 17:31) *
пользовать централизованную систему а-ля svn на одном компе -- нецелесообразно.

Это из разряда войн религий...



Цитата(scifi @ Dec 23 2008, 17:42) *
Ведь в случае SVN надо ставить и сервер, и клиент.

Сервер ставить совершенно не обязательно. Для создания репозитория достаточно запустить нужную утилиту и можно пользовать его локально.
scifi
Цитата(spf @ Dec 23 2008, 17:37) *
Это из разряда войн религий...

Конечно. Но это не меняет того факта, что товарищу надо сделать выбор. Может быть, проведём голосование? Тогда победит самая популярная религия :-) Или можно изложить плюсы и минусы, и пусть решает сам.

Цитата(spf @ Dec 23 2008, 17:40) *
Сервер ставить совершенно не обязательно. Для создания репозитория достаточно запустить нужную утилиту и можно пользовать его локально.

Проверил - и правда можно. Век живи - век учись... Тогда меняю религию: советую установить TortoiseSVN :-) Для начинающих это лучше, на мой взгляд.
Legotron
Цитата(FormatCft @ Dec 23 2008, 16:06) *

Простите великодушно, как мне эту ссылку прочитать в человеческом формате?, в браузере открывается с тэгами sad.gif
ClockworkOrange
scifi

читайте внимательно топикстартера:
вопрос стоял в том - нужна ли товарищу система контроля версий (о выборе - никто не спрашивал)

это уже потом некоторые деятели влезли сюда с религиозными проповедями..
Legotron
Цитата(ClockworkOrange @ Dec 23 2008, 17:50) *
вопрос стоял в том - нужна ли товарищу система контроля версий (о выборе - никто не спрашивал)

Вы правильно говорите, на данный момент я остановился на SVN(личное субъективное мнение новичка) для конкретики..
слышал отзывы, что желательно использовать системы контроля версий даже при работе одному над достаточно сложным и "ветвящимся" проектом, я правильно понимаю??

Сейчас вопрос стоит в постройке данной системы, и ощущение преимуществ на практике... (хоть проект из 1 файла main.c)
а дальше, если эта тема будет приносить мне больше удобств чем заморочек, выберу для себя оптимальный вариант.. smile.gif

Итак.. кто распишет по шагам своими словами какие действия необходимо произвести что-бы ощутить хоть какой-нибудь элементарный результат))

TortiseSVN у меня стоит..
SlickEdit стоит, IAR, на любом примере, только от начала и до конца..

Спасибо!
ClockworkOrange
Цитата(Legotron @ Dec 23 2008, 18:02) *
слышал отзывы, что желательно использовать системы контроля версий даже при работе одному над достаточно сложным и "ветвящимся" проектом, я правильно понимаю??

правильно


Цитата(Legotron @ Dec 23 2008, 18:02) *
TortiseSVN у меня стоит..

после изучения "теории" в svnbook, можно переходить непосредственно к практике:
пп. "4.1.2. Creating The Repository With TortoiseSVN" в хелпе к TortoiseSVN
Legotron
Цитата(ClockworkOrange @ Dec 23 2008, 18:10) *
после изучения "теории" в svnbook, можно переходить непосредственно к практике:
пп. "4.1.2. Creating The Repository With TortoiseSVN" в хелпе к TortoiseSVN

сотворил))
что дальше делать?
теперь туда файлы добавляются или проекты целиком?
bialix
Цитата(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(личное субъективное мнение новичка) для конкретики..


Это ваш выбор, который я не смею оспаривать. Посему -- умолкаю.
Dog Pawlowa
Цитата(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
Legotron
Цитата(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!!!.
Legotron
Продолжаю осваивать SVN, весьма проникся контролем версий, теперь заставляю себя поддерживать порядок! smile.gif

Использую TortiseSVN.
По ходу работы у меня возникли следующие вопросы:

1. Когда вы оставляете комменты при commit-e, вы используете какую-нибудь четкую структуру записи?? или просто оставляете пометки?? Вообщем интересует структура этих заметок..
2. Возникло желание сделать TODO-лист... возможно ли сделать примерно следующее?: я пишу что мне нужно сделать, потом отмечаю что сделано, пишу к этому комментарии, как можно сделать такое в связке с SVN?
3. Что такое Bug/Issue tracker? Удобно ли этим пользоваться для самого себя в связке с SVN? Какие из них наиболее удобны?
4. Можно ли автоматизировать процесс создания репозитория, создание его структуры, добавления в него новых проектов, и.т.д... с соответствующими комментами, вообщем рутиные процессы? Как это сделать?, придайте мне направлениеsmile.gif
Alex B._
Цитата(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. Можно ли автоматизировать процесс создания репозитория, создание его структуры, добавления в него новых проектов, и.т.д... с соответствующими комментами, вообщем рутиные процессы? Как это сделать?, придайте мне направлениеsmile.gif

Я вообще не понимаю проблемы. Создаете папку, внутри структура папок проекта (можно сделать потом), тыкаетесь, в тортиле выбираете Import и указываете путь хранилищу + папка для проекта в этом хранилище. Все. Никаких шаманских действий, которые описал Dog Pawlowa не нужно (во всяком случае, если работаете с тортилой и под виндой).
Legotron
Цитата(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.

Спасибо за ссылку smile.gif
Чувствую что это отдельная тема, в которой сначала нужно внимательно разобраться, и задавать вопросы в отдельной ветке...

Цитата(Alex B._ @ Jan 18 2009, 00:19) *
Цитата(Legotron @ Jan 17 2009, 15:18) *

4. Можно ли автоматизировать процесс создания репозитория, создание его структуры, добавления в него новых проектов, и.т.д... с соответствующими комментами, вообщем рутиные процессы? Как это сделать?, придайте мне направление smile.gif

Я вообще не понимаю проблемы. Создаете папку, внутри структура папок проекта (можно сделать потом), тыкаетесь, в тортиле выбираете Import и указываете путь хранилищу + папка для проекта в этом хранилище. Все. Никаких шаманских действий, которые описал Dog Pawlowa не нужно (во всяком случае, если работаете с тортилой и под виндой).

я скажу "как я хочу", и тогда ИМХО сразу станет понятно в чем проблема smile.gif
Хочу чтобы одним действием после создания проекта:
1. создался под него репозиторий
2. создались все необходимые "веточки" в нем
3. проект добавился в /trunk
4. и у меня оказалась рабочая копия с "зеленой галочкой" smile.gif

Еще вопросы:
5. Использую svn:keywords... Добавляю properties ко всему проекту с включенной галочкой "Apply prop. recursively"...Часто добавляю новые файлы в проект... и они оказываются без "svn:keywords"((
Как сделать, чтобы нужные мне "свойства" добавлялись к свежедобавленным файлам?? Использовать хуки? Писать .bat файлы?
6. Какое преимущество можно получить в SVN за счет, присвоения новых номеров ревизий только реально изменившимся файлам?

P.S. Я использую тортиллу, мне она вполне нравиться, но иногда чувствуется, что я делаю очень много лишних кликов sad.gif
Хотелось бы посмотреть на хорошую(образцовую) организацию всего SVN-хозяйства..
Alex B._
Цитата(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) *
я скажу "как я хочу", и тогда ИМХО сразу станет понятно в чем проблема smile.gif
Хочу чтобы одним действием после создания проекта:
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 за счет, присвоения новых номеров ревизий только реально изменившимся файлам?

хм, а разве можно как-то по другому?
Legotron
Цитата(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 делает.

А если он накроется? smile.gif
И у вас все логи перемешаны для разных проектов??? Или SVN их для папок сам сортирует, только ревизии с "дырками получаются"?

Цитата(Alex B._ @ Jan 21 2009, 00:02) *
никогда этим не озадачивался. Я использую только extenals и ignore, больше по-моему ничего не надо. Если не секрет - зачем?

В файле повесил $Id$, понятно кем, когда, в какой ревизии был закомитчен.. ИМХО удобно, если проект выйдет из под SVN-контроля (Export...) останутся привязки в файлах..
Кстати, удобно было бы чтобы в файл автоматом прописывались пофиксченные баги... но, этим, я думаю уже не SVN должен заниматься, у SVN keywords-ов пальцев одной руки хватит чтобы пересчитать))

Цитата(Alex B._ @ Jan 21 2009, 00:02) *
хм, а разве можно как-то по другому?

я некомпетентен в этом вопросе))
Сергей Борщ
Цитата(Legotron @ Jan 20 2009, 13:34) *
6. Какое преимущество можно получить в SVN за счет, присвоения новых номеров ревизий только реально изменившимся файлам?
Просматривая svn log этого файла вы видите, в каких именно правках этот файл реально изменялся. Аналогично, просматривая svn log для папки, вы видите те и только те правки, в которых менялись файлы в этой папке.

Цитата(Legotron @ Jan 21 2009, 09:39) *
Ну хотелось бы где-нибудь писать что нужно сделать, потом отмечать что это сделал, при этом помечая(автоматом) в какой ревизии это реализовано..
Это вам нужно что-то вроде Trac. spf прикрутил автоматическое формирование файла-отчета об изменениях из лог-сообщений фиксации для scmRTOS. Как он это сделал - я не в курсе. Пишите подробное лог-сообщение при фиксации изменений, это очень полезно.
Alex B._
Цитата(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) *
А если он накроется? smile.gif

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

Цитата(Legotron @ Jan 21 2009, 10:39) *
И у вас все логи перемешаны для разных проектов??? Или SVN их для папок сам сортирует, только ревизии с "дырками получаются"?

Сам сортирует. Вы можете посмотреть историю ревизий только для одного файла и увидите только его ревизии.
spf
Цитата(Сергей Борщ @ Jan 21 2009, 17:47) *
Это вам нужно что-то вроде Trac.

Для простоты установки можно попробоватьRedmine или Mantis

Цитата
spf прикрутил автоматическое формирование файла-отчета об изменениях из лог-сообщений фиксации для scmRTOS. Как он это сделал - я не в курсе.

Все примитивно просто - для этого используется готовый скрипт scn2cl
Legotron
Подскажите пожалуйста, нужно ли включать в коммиты файлы типов:
*.exe, *.hex, *.elf и.т.д

Аргументы "против":
- Они постоянно меняются при компиляции, и мешаются при коммитах
Аргументы "За":
- сохраняется срез полностью готового проекта, не нужно ничего дополнительно компилить..

У кого что в игнорах?
scifi
Цитата(Legotron @ Jan 28 2009, 15:50) *
Подскажите пожалуйста, нужно ли включать в коммиты файлы типов:
*.exe, *.hex, *.elf и.т.д

Так и религиозную войну недолго начать :-) Тем не менее, мои 5 копеек:
Я храню только исходники (включая настройки тулзов для сборки). Считаю, что прошивке не место рядом с ними. Аргументы:
1) Если это не релиз, то толку от двоичного файла мало: всё равно продолжается разработка и тулзы под рукой, так что собрать образ заново легко.
2) Если это релиз, то файл прошивки по-хорошему надо хранить вместе с внутренней документацией на изделие, в которое залита эта прошивка.
SFx
но если совсем хочется хранить .elf и другие файлы - то лучше создать скрипты, которые будут автоматом их переносить в Release репозиторий.
Legotron
еще 2 вопроса:

7. Как и где в TortoiseSVN поменять автора? стоит admin..
8. Почему я не могу редактировать логи?? (возможно это связано с п.7)

Код
Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
Сергей Борщ
Цитата(Legotron @ Jan 29 2009, 10:03) *
8. Почему я не могу редактировать логи?? (возможно это связано с п.7)
В репозитории, в директории hooks лежат шаблоны. Вам надо переимоновать pre-revprop-change.tmpl в pre-revprop-change и поставить ему признак "исполняемый".
Legotron
Цитата(Сергей Борщ @ Jan 29 2009, 13:59) *
.. и поставить ему признак "исполняемый".

не понятно как это??

Цитата
On Unix platforms, this means supplying a script or program (which could be a shell script, a Python program, a compiled C binary, or any number of other things) named exactly like the name of the hook. Of course, the template files are present for more than just informational purposes—the easiest way to install a hook on Unix platforms is to simply copy the appropriate template file to a new file that lacks the .tmpl extension, customize the hook's contents, and ensure that the script is executable. Windows, however, uses file extensions to determine whether or not a program is executable, so you would need to supply a program whose basename is the name of the hook, and whose extension is one of the special extensions recognized by Windows for executable programs, such as .exe for programs, and .bat for batch files.

эта выдержка мне тоже непонятна...

Как быть? (разбираться лень, честно smile.gif)
Сергей Борщ
Цитата(Legotron @ Jan 29 2009, 15:26) *
не понятно как это??
Если вы под виндой - то не обращайте внимания. Она не имеет такого признака. (хотя я никогда не пробовал держать реп на виндовой машине). А под линухами chmod -770 pre-revprop-change
Legotron
Цитата(Сергей Борщ @ Jan 29 2009, 18:28) *
Если вы под виндой - то не обращайте внимания.

Забыл сказать, что я под виндой.
Но просто не обращать внимания не получилось sad.gif
просто скопировал файл в той же папке hooks, и убрал .tmpl.. похоже надо что-то еще сделать, в моем предыдущем посте написано что делать, но я не въехал в эту инструкцию, к сожалению пока нет времени((
Shamil
Цитата(Legotron @ Jan 29 2009, 21:02) *
Забыл сказать, что я под виндой.
Но просто не обращать внимания не получилось sad.gif
просто скопировал файл в той же папке hooks, и убрал .tmpl.. похоже надо что-то еще сделать, в моем предыдущем посте написано что делать, но я не въехал в эту инструкцию, к сожалению пока нет времени((

Для сервера под Windows необходимо переименовать файл
pre-revprop-change.tmpl в pre-revprop-change.bat
и удалить из него все строки (т.к. они для Linux-го shell).

После этого у меня наконец то заработало редактирование лога,
а так все руки не доходили с этим разобраться.

Большой a14.gif Сергей Борщ !
spf
Цитата(Shamil @ Jan 29 2009, 21:16) *
После этого у меня наконец то заработало редактирование лога,
а так все руки не доходили с этим разобраться.

Использование этого метода - крайняя мера.
Не стоит брать в привычку рихтовку репозитория, чревато серьёзными последствиями, а вернуть обратно уже ничего не получится.
Данные меняются без возможности отката.
Если хотите себя обезопасить, то надо не пустой скрипт оставлять, а делать что-то типа логера-бэкапа.

PS: Необходимо приучить себя писать сообщения сразу правильно. Не стоит спешить, надо всё проверить и обдумать, только потом выполнять фиксацию. На начальном этапе это может занимать некоторое время, со временем это войдет в привычку и станет получаться значительно быстрее. На исправления и т.п. вещи уйдёт больше времени.
Alex B._
Цитата(spf @ Jan 29 2009, 20:38) *
Не стоит брать в привычку рихтовку репозитория, чревато серьёзными последствиями, а вернуть обратно уже ничего не получится.
Данные меняются без возможности отката.

Ну и к каким же ужасным последствиям это может привести? Да, изменения свойств ревизии с помощью хука не версифицируются, но это абсолютно нормальный метод. Единственная проблема - возможность случайной потери коммента при неграмотном обращении с репозитарием юзера, которому разрешена запись. Но это уже проблемы организации работы с репозиторием а не стандартного хука.
Legotron
Насчет логов согласен с позицией spf.
Лучше репозиторий не трогать!

А как поменять имя коммитчика?? smile.gif
Alex B._
Цитата(Legotron @ Jan 30 2009, 11:00) *
Насчет логов согласен с позицией spf.
Лучше репозиторий не трогать!

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

Цитата(Legotron @ Jan 30 2009, 11:00) *
А как поменять имя коммитчика?? smile.gif

так же как и комментарий =)
Legotron
Цитата(Alex B._ @ Jan 30 2009, 12:44) *
вы можете внятно объяснить почему, или это эмоции?

Нет, не эмоции..
Лучше думать при коммитах и выполнять их не вечером в спешке, а с утра на свежую голову, тщательно просмотрев все изменения диффом, ИМХО smile.gif
Поэтому, опять же ИМХО, лучше перекомитить заново с новым логом, в котором говориться что старый лог неполный или ошибочный, нежели, изменять что-то старое...
Также, если репозиторий используется многими людьми, лучше ничего не менять в истории, даже, если об этом автоматически где-то написать... это мои суждения...

Цитата(Alex B._ @ Jan 30 2009, 12:44) *
так же как и комментарий =)

Опять я неправильно поставил вопрос, и потому потерял время sad.gif
Как задать имя автора перед коммитом? чтобы в логе уже светилось legotron вместо admin smile.gif
spf
Цитата(Legotron @ Jan 30 2009, 16:19) *
Опять я неправильно поставил вопрос, и потому потерял время sad.gif
Как задать имя автора перед коммитом? чтобы в логе уже светилось legotron вместо admin smile.gif


И видимо снова :-). Надо же систему было сказать
А для строки можно прочитать в хелпе

Код
commit (ci): Send changes from your working copy to the repository.
   usage: commit [PATH...]
  
     A log message must be provided, but it can be empty.  If it is not
     given by a --message or --file option, an editor will be started.
     If any targets are (or contain) locked items, those will be
     unlocked after a successful commit.
  
   Valid options:
     -q [--quiet]             : print nothing, or only summary information
     -N [--non-recursive]     : obsolete; try --depth=files or --depth=immediates
     --depth ARG              : limit operation by depth ARG ('empty', 'files',
                               'immediates', or 'infinity')
     --targets ARG            : pass contents of file ARG as additional args
     --no-unlock              : don't unlock the targets
     -m [--message] ARG       : specify log message ARG
     -F [--file] ARG          : read log message from file ARG
     --force-log              : force validity of log message source
     --editor-cmd ARG         : use ARG as external editor
     --encoding ARG           : treat value as being in charset encoding ARG
     --with-revprop ARG       : set revision property ARG in new revision
                                using the name[=value] format
     --changelist ARG         : operate only on members of changelist ARG
                                [aliases: --cl]
     --keep-changelists       : don't delete changelists after commit
  
   Global options:
     --username ARG           : specify a username ARG
     --password ARG           : specify a password ARG
     --no-auth-cache          : do not cache authentication tokens
     --non-interactive        : do no interactive prompting
     --config-dir ARG         : read user configuration files from directory ARG


PS: Для слова "коммит" имеется более понятная и русская замена - фиксация

Цитата(Alex B._ @ Jan 30 2009, 04:29) *
Ну и к каким же ужасным последствиям это может привести?

Мои высказывания касаются плотной групповой работы.
Когда самодеятельность отдельного индивидуума (даже с определенными правами) может парализовать работу группы.
Логи для того и пишут, что бы их читали. Один направит что-то не то или не там. Остальные начнут читать, переспрашивать(что за фигня?!), вспоминать что же было на самом деле...
Зачем это надо?
(ответ известен)
В групповой работе за правки логов надо "бить розгами". К рихтовке должен иметь доступ только админ проекта и опять же пользоваться этим только в случае крайней необходимости.
uriy
Я держу репозиторий дома. Файлы синхронизирую на работе по http. Использую TortoiseSVN. Дома сменился провайдер, следовательно сменился и IP. Чтобы сменить путь к репозиторию насколько я понимаю нужно сделать Relocate или Switch. С некоторыми каталогами все прошло без проблем, а с некоторыми вылазит ошибка (см. картинку) где http://83.xxx.xxx.xxx это мой новый IP. Что за ошибка и как избавиться?
Нажмите для просмотра прикрепленного файла
scifi
Цитата(uriy @ May 6 2010, 09:36) *
Что за ошибка и как избавиться?

А не проще сделать новый checkout?
uriy
Цитата(scifi @ May 8 2010, 09:50) *
А не проще сделать новый checkout?
Вобщем-то так и сделал. Но ведь relocate все-таки для этого случая или нет?
scifi
Цитата(uriy @ May 8 2010, 12:28) *
Вобщем-то так и сделал. Но ведь relocate все-таки для этого случая или нет?

Да. Я им даже пользовался.
Можно, конечно, поразбираться, где именно произошёл сбой, но зачем?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.