Локальное управление исходниками для одного разработчика
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 04.02.20 12:37
Оценка: +1 :))) :)))
Делаю проекты в MS VS (пока 2008) на C++. Хочется иметь средство для отслеживания изменений, чтобы не вспоминать мучительно, когда и куда вносились изменения.

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

Есть ли сугубо локальные системы отслеживания изменений (в идеале — в виде расширения к VS), удобные в использовании и не требующие организовывать все по-взрослому? Чтобы можно было как-то пометить группу правок, связанную общей тематикой, а потом быстро найти правки, касающиеся тех или иных функций, объектов, переменных и т.п.
visual studio исходники история изменения
Re: Локальное управление исходниками для одного разработчика
От: kov_serg Россия  
Дата: 04.02.20 12:46
Оценка: +3
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Делаю проекты в MS VS (пока 2008) на C++. Хочется иметь средство для отслеживания изменений, чтобы не вспоминать мучительно, когда и куда вносились изменения.


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


ЕМ>Есть ли сугубо локальные системы отслеживания изменений (в идеале — в виде расширения к VS), удобные в использовании и не требующие организовывать все по-взрослому? Чтобы можно было как-то пометить группу правок, связанную общей тематикой, а потом быстро найти правки, касающиеся тех или иных функций, объектов, переменных и т.п.


mercurial?
Re: Локальное управление исходниками для одного разработчика
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 04.02.20 13:05
Оценка: 2 (1)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Чтобы можно было как-то пометить группу правок, связанную общей тематикой, а потом быстро найти правки, касающиеся тех или иных функций, объектов, переменных и т.п.


Вопрос ещё и в том, а есть ли такие инструменты в принципе и нужны ли они в таком виде в каком они есть.

Как связан функционал (features) и коммиты в системе хранения версий? Даже может показаться, что связь есть, но её нет. Один человек может пытаться её поддерживать прописывая в имени коммита или в описании метаинформацию о функционале. И даже в этом случае это не имеет особого смысла. А когда людей много, каждый будет писать как вздумается.

При этом остаётся вопрос где хранить информацию о функционале. Если во внешнем источнике и он потеряется, то вся информация пропадёт. Плюс нужна программа, которая связывает функционал и код. 5 лет назад написал статьи на эти темы и пришёл к выводу, что нужны маркеры изменений прямо в коде в виде комментариев.

Отсечение целей (сложность разработки)
Модифицируемость кода (Changeability QA)

Сейчас бы ещё добавил, что можно прописывать маркеры изменений в виде древовидного списка, можно обернуть конструкцию скобками (круглые, квадратные, фигурные, свои задумки).
category/category/feature

или если нужно определить последовательность строк с функционалом
category/category/feature/begin
category/category/feature/end

Тогда любая поисковая система по файлам или проекту, которая есть в IDE, в продвинутых текстовых редакторах и так далее, сразу находит все ссылки на функционал. А если, например, написать ещё и вот так:
[project/category/category/feature]

то можно собрать весь функционал по поисковом запросу "[project/".

Чтобы меньше загрязнять код такие маркеры можно ставить в конец строки. Эти маркеры изменений невозможно потерять, они есть в каждом коммите на который переключился, и когда видишь записи в коде сразу понимаешь какой поисковый запрос нужно отправить, чтобы получить функционал с большей или меньшей степенью детализации.

Это всё, конечно, если я правильно понял тему.
Re: Локальное управление исходниками для одного разработчика
От: qaz77  
Дата: 04.02.20 13:07
Оценка: +4
Здравствуйте, Евгений Музыченко, Вы писали:

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


Git и Mercurial вообще не требуют наличия сервера. Каждая рабочая копия — отдельный репозиторий.

Я исторически использую Mercurial с оболочкой TortoiseHg.
Очень удобно, в Проводнике для любой папки делаешь Create Repository Here и все.
Максимум еще .hgignore настроить, чтобы всякие логи и прочий мусор в комит не лез.

Даже не для исходников удобно использовать.
Например, у меня есть тулчейн, содержащий экзешники и питоновские скрипты, который на выходе дает кучу html-ек, css и т.п.
С помощью мерукуриала удобно контролировать (что изменилось и нет ли каких-то косяков) перед заливкой на сайт.
Re: Локальное управление исходниками для одного разработчика
От: VladCore  
Дата: 04.02.20 13:11
Оценка: -1 :)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Делаю проекты в MS VS (пока 2008) на C++. Хочется иметь средство для отслеживания изменений, чтобы не вспоминать мучительно, когда и куда вносились изменения.


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


ЕМ>Есть ли сугубо локальные системы отслеживания изменений (в идеале — в виде расширения к VS), удобные в использовании и не требующие организовывать все по-взрослому? Чтобы можно было как-то пометить группу правок, связанную общей тематикой, а потом быстро найти правки, касающиеся тех или иных функций, объектов, переменных и т.п.


шел 2020 год. и тут выяснилось что у некоторых есть иммунитет на git

это не тебя случайно тошнит от одной мысли про Windows 10? это похоже связанно как то
Re: Локальное управление исходниками для одного разработчика
От: Nonmanual Worker  
Дата: 04.02.20 13:15
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Делаю проекты в MS VS (пока 2008) на C++. Хочется иметь средство для отслеживания изменений, чтобы не вспоминать мучительно, когда и куда вносились изменения.


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


ЕМ>Есть ли сугубо локальные системы отслеживания изменений (в идеале — в виде расширения к VS), удобные в использовании и не требующие организовывать все по-взрослому? Чтобы можно было как-то пометить группу правок, связанную общей тематикой, а потом быстро найти правки, касающиеся тех или иных функций, объектов, переменных и т.п.


Mercurial + TortoiseHG уже много лет для этого использую.
Re: Локальное управление исходниками для одного разработчика
От: Sharov Россия  
Дата: 04.02.20 13:22
Оценка: +2 -2
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Делаю проекты в MS VS (пока 2008) на C++. Хочется иметь средство для отслеживания изменений, чтобы не вспоминать мучительно, когда и куда вносились изменения.


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


ЕМ>Есть ли сугубо локальные системы отслеживания изменений (в идеале — в виде расширения к VS), удобные в использовании и не требующие организовывать все по-взрослому? Чтобы можно было как-то пометить группу правок, связанную общей тематикой, а потом быстро найти правки, касающиеся тех или иных функций, объектов, переменных и т.п.


git вполен прост, учитывая, что будете разрабатывать один, то не более 4-5 команд всего.
Кодом людям нужно помогать!
Re: Локальное управление исходниками для одного разработчика
От: akasoft Россия  
Дата: 05.02.20 08:13
Оценка: +2
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Делаю проекты в MS VS (пока 2008) на C++. Хочется иметь средство для отслеживания изменений, чтобы не вспоминать мучительно, когда и куда вносились изменения.


Фигасе ты как долго держишься.

ЕМ>Есть ли сугубо локальные системы отслеживания изменений (в идеале — в виде расширения к VS), удобные в использовании и не требующие организовывать все по-взрослому?


Mercurial или Git, для них есть TortoiseGit/TortoiseHg. Либо из cmd.
Плагины для студии видел, но привык к черепашке.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: Локальное управление исходниками для одного разработчика
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 05.02.20 08:37
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>mercurial?


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

В идеале хочется примочку к студии, которая сама делает коммиты через заданные интервалы, или по накоплению изменений. Такое бывает?
Re[2]: Локальное управление исходниками для одного разработчика
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 05.02.20 08:44
Оценка:
Здравствуйте, velkin, Вы писали:

V>Вопрос ещё и в том, а есть ли такие инструменты в принципе и нужны ли они в таком виде в каком они есть.


Вот как раз вторая часть вопроса меня и смущает.

V>Как связан функционал (features) и коммиты в системе хранения версий?


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

Насколько я понял функциональность популярных систем контроля версий, с ними эта задача может не только не упроститься, но и усложниться. Проще будет только анализ полностью изолированных и функционально завершенных коммитов.

V>пришёл к выводу, что нужны маркеры изменений прямо в коде в виде комментариев.


Поначалу такие комментарии выглядят неплохо, но после нескольких месяцев/лет активного использования в них уже черт ногу сломит.
Re[2]: Локальное управление исходниками для одного разработчика
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 05.02.20 08:52
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>шел 2020 год. и тут выяснилось что у некоторых есть иммунитет на git


И чем бы мне мог помочь Git?

VC>это не тебя случайно тошнит от одной мысли про Windows 10?


Увы, я не могу ограничиться мыслями — приходится держать разные версии в виртуалках для тестирования. Но от вида тошнит, да.
Re: Локальное управление исходниками для одного разработчика
От: vsb Казахстан  
Дата: 05.02.20 09:00
Оценка: +1
Я примерно для такого юз-кейса использую Git. Правда на github пушу, но это по сути бэкап получается. Бывает из двух мест работаю, поэтому заодно помогает синхронизировать работу между ними. Но вообще это всё не обязательно и Git прекрасно работает локально. Не скажу, что он самый простой и удобный, но он точно самый распространённый на сегодня, поэтому могу рекомендовать именно его.
Re[3]: Локальное управление исходниками для одного разработчика
От: vsb Казахстан  
Дата: 05.02.20 09:05
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>В идеале хочется примочку к студии, которая сама делает коммиты через заданные интервалы, или по накоплению изменений. Такое бывает?


Такого точно не будет, т.к. коммиты делают логически связанные. По крайней мере так принято. Но это две команды, можешь хоть bat-файл написать и как-нибудь по таймеру запускать, если уж сильно хочется.
Re[3]: Локальное управление исходниками для одного разработчика
От: VladCore  
Дата: 05.02.20 09:40
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

VC>>шел 2020 год. и тут выяснилось что у некоторых есть иммунитет на git


ЕМ>И чем бы мне мог помочь Git?


Локальное управление исходниками для одного разработчика


VC>>это не тебя случайно тошнит от одной мысли про Windows 10?


ЕМ>Увы, я не могу ограничиться мыслями — приходится держать разные версии в виртуалках для тестирования. Но от вида тошнит, да.


Ужс
Re: Локальное управление исходниками для одного разработчика
От: Wawan Россия http://www.wawan.ru/resume
Дата: 05.02.20 09:48
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Делаю проекты в MS VS (пока 2008) на C++. Хочется иметь средство для отслеживания изменений, чтобы не вспоминать мучительно, когда и куда вносились изменения.


https://www.visualsvn.com/server/
сервер, хватит бесплатной версии

https://tortoisesvn.net
клиент
Re: Локальное управление исходниками для одного разработчика
От: Pzz Россия https://github.com/alexpevzner
Дата: 05.02.20 11:17
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

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


Я давно использую для этих целей Mercurial. Он достаточно простой (не сравнить с Git'ом), абсолютно адекватно работает локально, и в любой момент локальный репозиторий можно превратить в нелокальный.
Re[3]: Локальное управление исходниками для одного разработчика
От: Pzz Россия https://github.com/alexpevzner
Дата: 05.02.20 11:21
Оценка: +2
Здравствуйте, Евгений Музыченко, Вы писали:

_>>mercurial?


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


Да, и это очень полезная возможность. И комментарием, который тебя в этот момент просят ввести, лучше не пренебрегать. Потом, когда через какое-то время возвращаешься к своим исходникам, наличие осмысленных комментариев при изменениях сильно помогает. Да и в момент написания это структурирует мозги: если я не могу в одну строку описать, чего я тут наделал, может и не стоит это коммитить, пока ясность в голове не наступит?
Re[3]: Локальное управление исходниками для одного разработчика
От: Pzz Россия https://github.com/alexpevzner
Дата: 05.02.20 11:24
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>В общем случае — никак. Например, нередко бывает так, что нужно реализовать некую возможность, но системная документация плоха. Делаю одним способом — поначалу вроде работает, затем вылезают косяки. Приходится все возвращать назад и переделывать, но в ходе реализации первым способом где-то были обнаружены и исправлены совершенно посторонние ошибки, тупой откат к раннему состоянию не подходит.


Я не ленюсь их раздельными коммитами проводить: 1) исправлена ошибка XXX 2) сделана фича YYY. Тогда если что, откатывать придется только второе изменение.
Re[2]: Локальное управление исходниками для одного разработчика
От: Pzz Россия https://github.com/alexpevzner
Дата: 05.02.20 11:27
Оценка: :))
Здравствуйте, Wawan, Вы писали:

W>https://www.visualsvn.com/server/

W>сервер, хватит бесплатной версии

Зачем кому-то может быть нужен SVN, когда есть Mercurial?
Re[4]: Локальное управление исходниками для одного разработчика
От: aik Австралия  
Дата: 05.02.20 11:28
Оценка:
Здравствуйте, Pzz, Вы писали:

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

Pzz>Да, и это очень полезная возможность.

Ну оно, конечно, неплохо, но для ретгрограда сразу сложно — копаться в истории — meh. Я б посоветовал скрипт, который по таймеру (раз в 3 часа) делает "git -A && git commit", и у чувака будет на чём запускать "git bisect" (это чуть ли не важнее вменяемых комментариев к коммитам).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.