|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Являюсь Delphi - разработчиком. Слышу уже много раз про такое чудо, как системы контроля версий. Кажется, что это решение всех проблем и серебряная пуля. Но вот почему-то у меня никак с ними не получается и хотелось бы понять, что я делаю не так. На данный момент сместо СКВ использую WinMerge - чтобы сравнить разные версии своего приложения. Как мне поможет СКВ - если: 1) Куски кода часто мигрируют между файлами. Например, функция была расположена в одном модуле, перенесла её в другой. Сами модули могут переименовываться и мпенять своё местоположение в структуре каталогов. 2) Файлы проекта часто переименовываются - например, модуль uAddCustomer.pas - переименовано в uAddClient.pas и перемещено из папки \Units в папку \BonusUnits 3) Переменные периодически переименовываются. Например, в проекте переменная называется ShowHints и присутствует в 220 модулях проекта. Потребовалось переименовать её в ShowHints2 - чтобы проверить и обьработать все куски кода, где она используется. Имя переменной оставлено в итоге ShowHints2. Бывают ситуации (и не так уж редко) - когда подбирается более удачное название переменной - и старая переменная заменяется во всём проекте. 4) Куча справочных и прочих файлов, которые меняются и мешаются при Merge. 5) Правки есть не только в pas-файлах - но и в вордовских/excel-файлах проекта, а также в FDB файлах. Они СКВ никак не отслеживаются. 6) Иногда код из одних файлов (например кеуски кода в Блокноте, которые ранее были в проекте - например, скачаны из Интернета "про запас") перекидывается в pas-файлы, а потом сами файлы Блокнота удаляются, либо модифицируются и переименовываются/меняют своё положение. и еще куча различных ситуаций - сразу и не перечислишь В итоге уже через 7 дней после работы с проектом WinMerge показывает кашу и невозможно понять, где именно были сделаны реально важные изменения, а где мелкие правки, какой код, когда и куда был перемещён. Через 30 дней процедура Merge уже становится абсолютно бессмысленной, т. к. может показать, что изменения были, скажем, в 300 файлах. Но ведь тут пишут, что СКВ реально помогают и решают все проблемы, связанные с отслеживанием измннений в проекте. Но у меня вот не получается. Что я делаю не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2022, 23:48 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Наталья87, ККК, Ну или если серьезно, то коммитить надо ежедневно (компилирующийся проект) и после каждых серьезных пертурбаций, а никак не через 7 дней.... И это не только для Дельфи, а везде так ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2022, 23:58 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Наталья87 Что я делаю не так? В вашей ситуации проще всего найти команду, которая уже использует системы контроля версий, и влиться в нее. Вас там всему научат. Если хотите учиться самостоятельно - возьмите настоящую систему контроля версий, а не то, что вам кажется похожим на нее. Я бы git рекомендовал, он мне больше всего нравится. И документация хорошая, и даже на русский переведена, если это вдруг для вас важно. Идея контроля версий простая. Вы написали какой-то код, сделали снимок состояния кода - "комит" (кстати, народ, как по-русски правильно - "комит" или "коммит"? ). Потом сделали какие-то изменения, сделали еще один снимок. И так далее. А потом уже с помощью системы контроля версий будете смотреть, что там вообще происходит, как меняется и т. д. К тому же, каждый комит можно (нужно) снабжать комментариями - что и зачем вы поменяли. Можно делать ветвления кода, возвращаться назад и т. д. Это не сложно, просто к этому надо привыкнуть. Комитить лучше почаще. Не каждые пять минут, конечно, но каждое логически завершенное изменение - имеет смысл. Например, исправили баг - комит. Даже если исправление состоит из одного символа. А если изменение все тянется и тянется и никак не дойдет до логического конца - ну просто раз в какое-то время, раз в день, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 01:44 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Никанор Кузьмич кстати, народ, как по-русски правильно - "комит" или "коммит"? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 03:38 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Я использую Delphi7 и TortoiseSVN - клиент для svn. Для однопользовательской работы он же может сделать локальное хранилище. Мне потом понадобилась многопользовательская работа - я поставил отдельный сервер Subversion. Нужно не забывать что само хранилище тоже нужно бэкапить. У TortoiseSVN есть нормальный перевод интерфейса и документации на русский язык. И не только на русский. Документацию можно скачать отдельно, в PDF или HTML виде. https://tortoisesvn.net/support.html https://tortoisesvn.net/docs/release/TortoiseSVN_ru/index.html В начале там хорошо описаны основы работы с SVN. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 07:04 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Наталья87 4) Куча справочных и прочих файлов, которые меняются и мешаются при Merge. Файлы которые взяты извне, и в данном проекте не меняются - обычно нет смысла контролировать их в СКВ. Для этого их можно либо разместить вне папки под контролем СКВ, либо поставить в игнор в СКВ. Наталья87 5) Правки есть не только в pas-файлах - но и в вордовских/excel-файлах проекта, а также в FDB файлах. Они СКВ никак не отслеживаются. СКВ предназначены для контроля текстовых файлов. Бинарные тоже может, но только в виде поменялся/не поменялся. Что конкретно в них поменялось - увидеть не получится. Если "FDB файлах" - это база Firebird, то как правило нужно фиксировать не данные а метаданные. Можно например сделать экспорт всех метаданных в файл, и система будет смотреть, изменилось ли содержание файла. Но выгружать нужно всегда в одном и том же формате и одним и тем же инструментом. Если делать это через IBExpert то есть риск что формат поменяется (версии IBExpert выходят довольно часто) и тогда СКВ может не увидеть фактических изменений. Я изменения в метаданных провожу патчами - sql-файлы с кодом, который вносят изменения в базу. В самой базе фиксируется какой патч был выполнен последним, и ведется контроль что бы по ошибке не были наложены патчи с непоследовательной нумерацией. В итоге - сами файлы-патчи хорошо и сами по себе показывают что поменялось, но благодаря тому что они включаются в коммит, в котором сделаны изменения и в Delphi-коде - хорошо видно что поменяли в базе и в приложении. Практически все правки в проекте сначала записываю в виде задачи в системе контроля задач, у нас это Redmine. В коммите пишу номер задачи. В самой задаче пишу номер коммита в SVN (номер ревизии). Номер задачи так же пишу в комментариях в Dekphi-коде, и в комментариях объектов в базе, что бы можно было почитать для чего это сделано, и что было еще сделано по этой задаче. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 07:20 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Наталья87, В свое время я пользовался teamsource, потом множеством других. Давненько это было. Хе-хе. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 10:36 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
fraks [li]например git
... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 15:27 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
git весьма прост для изучения и использования, если использовать его не через командную строку, а через какой нибудь приличный GUI. Я например использую GitKraken, он хоть и платный, зато имеет очень низкий порог входа и при этом очень мощный по своему функционалу. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 22:24 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov fraks [li]например git
Если у вас одна команда совместно работающая над проектом - лучше брать svn. Намного удобнее и проще со всех точек зрения. Если у вас несколько независимых команд работают над проектом - берите git. Он такой замороченный не просто чтоб свести своих пользователей с ума. Если работаешь в одиночку, да без сервера, то можно взять rcs - просто, легко, удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 22:41 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl Если у вас одна команда совместно работающая над проектом - лучше брать svn. Намного удобнее и проще со всех точек зрения. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2022, 23:26 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
asutp2 git весьма прост для изучения и использования, если использовать его не через командную строку, а через какой нибудь приличный GUI. Я например использую GitKraken, он хоть и платный, зато имеет очень низкий порог входа и при этом очень мощный по своему функционалу. Это относится ко всем СКВ. Кстати, полноценных халявных оболочек (не плагинов в IDE) я нашел не так уж и много: - SourceTree (git + mercurial (HG)) - Tortoise SVN/HG/Git - древний RapidSVN - чуть менее древний fuel-scm для Fossil (не пробовал) asutp2 White Owl Если у вас одна команда совместно работающая над проектом - лучше брать svn. Намного удобнее и проще со всех точек зрения. Нормальной нумерацией коммитов, отсутствием ректальной системы пуллреквестов, простой командной строкой @White Owl - rcs для топика с дельфями вряд ли подойдет - *nix-only ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 01:10 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl Ага. Вот только 99% процентов людей обожающих git и хающих svn не выходят за рамки возможностей svn. Если у вас одна команда совместно работающая над проектом - лучше брать svn. Намного удобнее и проще со всех точек зрения. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 04:07 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Siemargl @White Owl - rcs для топика с дельфями вряд ли подойдет - *nix-only При отсутствии сети и серверов - rcs единственный выбор. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 04:30 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Никанор Кузьмич White Owl Ага. Вот только 99% процентов людей обожающих git и хающих svn не выходят за рамки возможностей svn. Если у вас одна команда совместно работающая над проектом - лучше брать svn. Намного удобнее и проще со всех точек зрения. Git в принципе не может быть удобнее человеку. Он может быть удобнее компании-корпорации, но не отдельным разработчикам. Объясняю на пальцах: Subversion - это серверная система контроля версий. Не распределенная, а серверная. Тут каждый разработчик является полноценным maintainer'ом. В pull request'ах просто нет нужды. Репозиторий - один единственный и находится на сервере. Ты хочешь исправить код в паре исходников? Делаешь svn update (получаешь текущую ревизию себе в локальную копию), исправляешь код в той паре исходников, делаешь svn commit. Всё. Тебе система сама обнаружит что были изменения в каких-то файлах и отошлет их на сервер. И, кстати, не надо делать add каждый {неприличное_слово} раз, как в git... А вот в git предполагается что ты (человек-developer) делаешь изменения в своем репозитории, потом делаешь этот самый pull request и ждешь когда специальный человек-maintainer проверит твою работу и вытащит из твоего местечкового репозитория в репозиторий выше уровнем, ну или отправит эти изменения обратно на доработку. Это полезно для корпораций и с учетом что ты работаешь в команде отвечающей за малый участок большого проекта. Повторюсь: Каждый разработчик может залезть в любой участок проекта? Тогда бери svn. Хочешь разбить проект на модули и чтоб каждая отдельная команда работала только над своим модулем - бери git. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 05:19 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl Никанор Кузьмич пропущено... Я работал и с тем, и с другим. Мне лично git удобнее. Причем независимо от того, какое количество фич контроля версий мне нужно. Ну и пул-реквесты - как я понимаю, в svn отсутствуют. Git в принципе не может быть удобнее человеку. Он может быть удобнее компании-корпорации, но не отдельным разработчикам. Объясняю на пальцах: Subversion - это серверная система контроля версий. Не распределенная, а серверная. Тут каждый разработчик является полноценным maintainer'ом. В pull request'ах просто нет нужды. Репозиторий - один единственный и находится на сервере. Ты хочешь исправить код в паре исходников? Делаешь svn update (получаешь текущую ревизию себе в локальную копию), исправляешь код в той паре исходников, делаешь svn commit. Всё. Тебе система сама обнаружит что были изменения в каких-то файлах и отошлет их на сервер. И, кстати, не надо делать add каждый {неприличное_слово} раз, как в git... А вот в git предполагается что ты (человек-developer) делаешь изменения в своем репозитории, потом делаешь этот самый pull request и ждешь когда специальный человек-maintainer проверит твою работу и вытащит из твоего местечкового репозитория в репозиторий выше уровнем, ну или отправит эти изменения обратно на доработку. Это полезно для корпораций и с учетом что ты работаешь в команде отвечающей за малый участок большого проекта. Повторюсь: Каждый разработчик может залезть в любой участок проекта? Тогда бери svn. Хочешь разбить проект на модули и чтоб каждая отдельная команда работала только над своим модулем - бери git. А pull - это как раз аналог svn (cvs) update. Да, хочу заметить, что (как минимум для винды) у git вполне удобный родной гуи-интерфейс присутствует (уже). Архи-удобный тем, что ненавязчиво предлагает добавить новые файлы в репозиторий при коммите (не подпадающие под критерий игнорирования). Благодаря чему не надо "не забывать делать add". Так что даже никакие Tortise не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 08:00 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl При отсутствии сети и серверов - rcs единственный выбор. Почему это? Например в том же TortoiseSVN в комплекте идет локальный сервер. С TortoiseGit думаю примерно так же. Git под винду тоже встречал. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 08:08 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Для SVN есть только один бесплатный GUI клиент, которым в принципе как-то можно пользоваться - TortoiseSVN. Но он работает только под Windows. Для Linux есть RabbitVCS, ещё под Eclipse есть Subversive и Subclipse, но непонятно они ещё сопровождаются или нет. Единственный более-менее приличный клиент под Linux - SmartSVN, но он платный. Короче, есть большая проблема с GUI. Если TortoiseSVN по какой-то причине не подходит, то либо покупать SmartSVN, либо мучиться с бесплатными и полузаброшенными клиентами. Вторая большая проблема, что SVN просто капец как тормозит. Для теста запустил команду log на одном из репозиториев - занимает 10-15 секунд. Команда list - 2 секунды. Сравнить допустим две ветки в RabbitVCS/Subversive/Subclipse - наверное полминуты или минуту (отправляется просто гигантское количество запросов в репозиторий). Можно запускать сравнение и идти кофе заваривать. Но это полбеды, эта штука покажет список измененных файлов, а потом ещё чтобы посмотреть изменения в каждом из файлов нужно секунд 5-10. Это делает работу просто невыносимой. TortoiseSVN и SmartSVN работают почему-то быстрее, не сказать что летают, но терпимо. Наконец, третья проблема - не очень удобно ревьювить код. Одно дело я в gitlab вижу назначенные на меня pull-request, могу без особых сложностей и тормозов через веб-интерфейс посмотреть что изменилось в коде, написать комментарии. В SVN всего этого нет. Конечно как-то приходится пользоваться svn, но это больше мучение чем работа. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 10:44 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl Git в принципе не может быть удобнее человеку. Он может быть удобнее компании-корпорации, но не отдельным разработчикам. ...пропущено... А вот в git предполагается что ты (человек-developer) делаешь изменения в своем репозитории, потом делаешь этот самый pull request и ждешь когда специальный человек-maintainer проверит твою работу и вытащит из твоего местечкового репозитория в репозиторий выше уровнем, ну или отправит эти изменения обратно на доработку. Это полезно для корпораций и с учетом что ты работаешь в команде отвечающей за малый участок большого проекта. Я вот например для нескольких своих личных проектов использую git без всяких проблем. Там я единственный разработчик, и нет никаких других специальных людей, но при этом ведутся разные ветки, точно также могу сделать pull реквест из одной в другую и т.д. И выше справедливо заметили, что git очень быстр. Сравниваю свой же опыт работы с svn, когда все реально тормозило не по детски.... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 11:16 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Ну, как я и сказал, в SVN сделали быстрой ровно одну операцию: сравнение текущего состояния рабочей копии с последней закоммиченной. Всё остальное загубили насмерть. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 14:39 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Извините за глупый вопрос. О каких пулл-реквестах в гите идет речь? Разве это к гиту относится? Я почему-то думал, что это фича всяких битбакетов-гитхабов-гитлабов. То есть вот я сделал локально git init, git branch, потом решил перенести изменения из бранча в мастер и... Тут как-то делается пулл-реквест? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 15:22 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Ares_ekb Конечно как-то приходится пользоваться svn, но это больше мучение чем работа. После git работа с svn вспоминается как ад. В git просто надо с самого начала более-менее понять как он работает и тогда с ним никакой проблемы работать нет - хоть с командной строки, хоть с gui - я, например, практически все делаю в нем из командной строки и не вижу в этом ничего сложного, gui обычно только для разруливания конфликтного мержа, или посмотреть какую-нибудь замороченную историю с кучей ветвлений. И я бы наоборот советовал изучение git именно с командной строки и начинать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 15:58 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Alexander A. Sak, да, согласен, это действительно фича не самого git, а разных надстроек. Но для svn я ничего подобного не видел. Обычно просто на словах говорится или где-нибудь в Jira пишется, что нужно посмотреть такую-то ветку или что по ней есть такие-то вопросы или что её можно мержить и т.п. Если бы для SVN был аналог GitLab, то требования к клиенту сильно упростились бы, не нужно было бы сравнивать ветки (в svn это работает достаточно медленно). То, что для SVN таких систем нет (может я о них не знаю) на мой взгляд это тоже минус. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 17:16 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Вспомнил ещё одну фичу, от которой за джва года использования svn уже успел отвыкнуть. В git сначала комитишь, потом обновляешься из основного репозитория и сливаешь ветки, разрешая конфликты. В svn сначала обновляешься, потом разрешаешь конфликты, потом комитишь. В svn есть шанс таким образом похерить свои изменения. У меня такого не было, но поначалу, когда волею судеб переходил с git на svn, то было страшно обновляться из репозитория, незакомитив свои изменения. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 17:23 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Alexander A. Sak Извините за глупый вопрос. О каких пулл-реквестах в гите идет речь? Разве это к гиту относится? Я почему-то думал, что это фича всяких битбакетов-гитхабов-гитлабов. То есть вот я сделал локально git init, git branch, потом решил перенести изменения из бранча в мастер и... Тут как-то делается пулл-реквест? В SVN, насколько я помню, тоже надо руками делать svn add *.x И вообще про Мercurial забыли ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 17:35 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Siemargl Alexander A. Sak Извините за глупый вопрос. О каких пулл-реквестах в гите идет речь? Разве это к гиту относится? Я почему-то думал, что это фича всяких битбакетов-гитхабов-гитлабов. То есть вот я сделал локально git init, git branch, потом решил перенести изменения из бранча в мастер и... Тут как-то делается пулл-реквест? Спасибо, не знал. git request-pull создает текст, который надо просто отправить владельцу репозитория. В этом тексте -- описание того, где находятся изменения (адрес репозитория, ветка, начальный коммит). Ну как-то не тянет на киллер-фичу ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 17:50 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Alexander A. Sak Спасибо, не знал. git request-pull создает текст, который надо просто отправить владельцу репозитория. В этом тексте -- описание того, где находятся изменения (адрес репозитория, ветка, начальный коммит). Ну как-то не тянет на киллер-фичу ИМХО. Ну да. А PR GitHub или MR GitLab - они точно о том же: "Я, типа, хочу, чтобы изменения из моей ветки взяли в общую". Там просто всякого блек-джека больше. Сам термин "pull request" пошел с тех времен, когда git использовали как распределенную систему без центрального репо (ради чего он и задумывался) и кто-то мог получить изменения из ветки кого-то другого сделав "git pull" из его ветки (не давая другому доступа на запись в своем репозитории). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 18:08 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Siemargl В SVN, насколько я помню, тоже надо руками делать svn add *.x Siemargl И вообще про Мercurial забыли ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 19:03 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
fraks White Owl При отсутствии сети и серверов - rcs единственный выбор. Почему это? Например в том же TortoiseSVN в комплекте идет локальный сервер. С TortoiseGit думаю примерно так же. Git под винду тоже встречал. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 19:07 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
asutp2 White Owl Git в принципе не может быть удобнее человеку. Он может быть удобнее компании-корпорации, но не отдельным разработчикам. ...пропущено... А вот в git предполагается что ты (человек-developer) делаешь изменения в своем репозитории, потом делаешь этот самый pull request и ждешь когда специальный человек-maintainer проверит твою работу и вытащит из твоего местечкового репозитория в репозиторий выше уровнем, ну или отправит эти изменения обратно на доработку. Это полезно для корпораций и с учетом что ты работаешь в команде отвечающей за малый участок большого проекта. Я вот например для нескольких своих личных проектов использую git без всяких проблем. Там я единственный разработчик, и нет никаких других специальных людей, но при этом ведутся разные ветки, точно также могу сделать pull реквест из одной в другую и т.д. И выше справедливо заметили, что git очень быстр. Сравниваю свой же опыт работы с svn, когда все реально тормозило не по детски.... А тормоза... не верю. На моих машинах что одно, что другое работают с одинаковой скоростью. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 19:10 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl На моих машинах что одно, что другое работают с одинаковой скоростью. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 19:29 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Ares_ekb White Owl На моих машинах что одно, что другое работают с одинаковой скоростью. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 19:36 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl Ares_ekb пропущено... А сервер на другой машине или той же? Apache Subversion или другой? По какому протоколу работает? https? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 19:40 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl, я находил какую-то противоречивую информацию по производительности. Где-то пишут, что по ssh должно работать ощутимо быстрее, чем по https. Где-то пишут, что в последних версиях особой разницы нет. Вроде по https более гибкие возможности распределения прав доступа и видимо поэтому у нас этот протокол и используется, но сам я это не настраивал, это делали админы. Нужно будет уточнить, может они ssh включат. Плюс у нас всё это ещё работает через vpn. То, что очень тормозит это факт. Но в чем причина... Я пытался смотреть что происходит через Wireshark. SVN-клиент отправляет просто кучу запросов на сервер, и у меня ощущение, что проблема именно в этом, и такая схема быстро работать не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 20:00 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl Siemargl В SVN, насколько я помню, тоже надо руками делать svn add *.x ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2022, 22:48 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Наталья87 Являюсь Delphi - разработчиком. Смешно. Наталья87 Но вот почему-то у меня никак с ними не получается и хотелось бы понять, что я делаю не так. Судя по описанию случаев, Вы устраиваете вместо приложения дикий бардак и надеетесь, что инструмент наведёт в нём порядок. Наталья87 В итоге уже через 7 дней после работы с проектом WinMerge показывает кашу и невозможно понять, где именно были сделаны реально важные изменения, а где мелкие правки, какой код, когда и куда был перемещён. Через 30 дней процедура Merge уже становится абсолютно бессмысленной Похоже, главное, чего Вы не понимаете - система контроля версий позволяет собрать некий набор изменений в единую сущность, присвоить этому набору имя/номер и дальше манипулировать этим набором изменений как единым целым. Например - собрать в версию наборы изменений 1, 3 и 5 - пропустив 4 и 2, либо взять изменения, сделанные в версии 3.2 по задаче 456, и выполнить их же в версии 3.1 Никанор Кузьмич Я бы git рекомендовал, он мне больше всего нравится. Ну Вы даёте. Это всё равно что первокласснику вместо букваря подсовывать Канта. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 01:33 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl Если у вас одна команда совместно работающая над проектом - лучше брать svn. Намного удобнее и проще со всех точек зрения. После того, как я перешёл с SVN на Mercurial, я оценил, насколько лучше в последнем мержи. Возвращаться к SVN с его кошмариками уже категорически не хочу. Git по удобству использования здорово уступает Mercurial-у, но таки лучше SVN. Я согласен с тем, что SVN куда проще, но 95% времени с системой контроля версий занимают сложные мержи - и именно здесь SVN проигрывает в одну калитку. По сравнению с этим выучить нетривиальные особенности гитовых команд - мелочь, просто один раз сесть и разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 01:38 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
softwarer Git по удобству использования здорово уступает Mercurial-у Mercurial был задуман как упрощенный вариант Git. Внутри там по сути все то же самое. Я после SVN как раз начинал с него, но, похоже, что Mercurial он-таки (как по мне, так по непонятным причинам) гонку с Git в итоге проиграл. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 02:02 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
White Owl Ага. Вот только 99% процентов людей обожающих git и хающих svn не выходят за рамки возможностей svn. White Owl Git в принципе не может быть удобнее человеку. White Owl Тут каждый разработчик является полноценным maintainer'ом. White Owl Ты хочешь исправить код в паре исходников? Делаешь svn update (получаешь текущую ревизию себе в локальную копию), исправляешь код в той паре исходников, делаешь svn commit. Всё. White Owl И, кстати, не надо делать add каждый {неприличное_слово} раз, как в git... White Owl А вот в git предполагается что ты (человек-developer) делаешь изменения в своем репозитории, потом делаешь этот самый pull request и ждешь когда специальный человек-maintainer проверит твою работу и вытащит из твоего местечкового репозитория в репозиторий выше уровнем, ну или отправит эти изменения обратно на доработку. Alexander A. Sak git request-pull создает текст, который надо просто отправить владельцу репозитория. В этом тексте -- описание того, где находятся изменения (адрес репозитория, ветка, начальный коммит). Ну как-то не тянет на киллер-фичу ИМХО. softwarer Ну Вы даёте. Это всё равно что первокласснику вместо букваря подсовывать Канта. Сначала первые несколько лет работал на проектах без контроля версий вообще. Потом подумал, что надо бы освоить контроль версий. А то все говорят "маст хэв", а я ни сном ни духом. Почитал холивары в энторнетах. Показалось, что гит таки получше. Начал использовать на своих пет проектах. Ну там все просто - ведешь себе линейную историю изменений и все. Попробовал пару вещей, чисто для себя - ветки посоздавать, мерджи поделать. Потом уже поработал на проектах с большими командами с и git, и с SVN. Как по мне, не так страшен черт, как его малюют. Ну вот если вообще без опыта работы с контролем версий придти на проект с CI, пул-реквестами, гитхабом и прочим фаршем, - да, с непривычки будет тяжело. А если потихоньку вливаться, то какая разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 02:35 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
fkfka2 Mercurial был задуман как упрощенный вариант Git. Внутри там по сути все то же самое. Да на здоровье. Но пользоваться им существенно удобнее. Кроме того, не знаю, насколько это особенность именно системы, а насколько - оболочки, но при использовании Tortoise с Mercurial есть совершенно восхитительная и отсутствующая в Tortoise/git возможность включать в коммит только некоторые изменения из файла. Это очень экономит время. fkfka2 но, похоже, что Mercurial он-таки (как по мне, так по непонятным причинам) гонку с Git в итоге проиграл. Согласен. Если бы я был технологическим лидером большого проекта, то сейчас начинать использовать Mercurial я бы уже не стал. А вот если бы я был начинающим разработчиком, которому для наколеночных поделок надо хоть как-то разобраться с контролем версий - думаю, Mercurial стал бы как раз таки лучшим выбором на ближайшие годы. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 03:49 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Никанор Кузьмич А че такова? Я с гита и начинал Думаю, Вы это делали не так, как Наташа. Судя по её вопросам - с git-ом она окончательно запутается. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 03:51 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
fraks Например в том же TortoiseSVN в комплекте идет локальный сервер. При файловом доступе к репозиторию один и тот же процесс является и клиентом и сервером. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 05:26 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Наталья87 СКВ реально помогают и решают все проблемы, связанные с отслеживанием измннений в проекте. Но у меня вот не получается. Что я делаю не так? Вместе с СКВ, отслеживание изменений в исходниках становится неотъемлемой частью процесса разработки. "Файлики-на-заметку" легко укладываются в репозиторий, меняются, удалятся; бинарники (fbd, exe, dcu ...) легко игнорируются. Что не так делаешь - не используешь нужный тебе инструмент и разгребаешь хаос, вместо того, чтобы предупредить его возникновение. СКВ помогает с этим - задаёт культуру ведения проекта. Плюс git'а - используешь в любое время на то количество процентов заложенного в нем функционала, насколько тебе нужно в конкретном случае; с ним - правила определяешь ты с командой, настолько, насколько комфортно. В этом случае, для захода, git - оптимально. Почитай перед сном книжку , поставь Git for Windows + адекватный gui-клиент ( Git Extensions или SmartGit ) + инструмент сравнения и слияния (знакомый тебе WinMerge или Kdiff3 ). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 05:45 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Если Наталья - новичек в системах версионного контроля и ей надо просто быстрое вхождение - то я-бы все таки предложил SVN. Он проще с точки зрения состояний. Есть просто update,add,commit и вобщем-то этого достаточно чтобы начать работать. И меньше шансов напортачить или закопаться в какой-то пустяк. Чтобы работать с git надо уяснить чуть более широкую концепцию stages, которые проходят файлы в этой системе. Желательно по картинке. В интернетах полно диаграмм которые моделируют состояния файлов в этой системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 11:16 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
softwarer при использовании Tortoise с Mercurial есть совершенно восхитительная и отсутствующая в Tortoise/git возможность включать в коммит только некоторые изменения из файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 11:50 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
mayton, Там, понимаешь, еще в чем дело - у Гита, по сути, нет такого, как "локальный репо" или "удаленный репо". В действительности там все репо полностью равноправны и можно хоть целым кодлом работать вообще без какого-то централизованного сервера. Выделенный репо на сервере (да тот же Гитхаб, например) используется только для более простой синхронизации кода. И, как я писал, достаточно просто слегка понимать как у него устроена система версий, которых и него, на самом деле, в прямом смысле и нет :)), и веток, которых у него тоже на самом деле нет :)) И вся эта с виду сложная картинка она становится абсолютно не нужна, потому все становится совершенно прозрачно. Достаточно просто вместо заучивания каких-то магических команд потратить от силы час и прочитать в гитбуке пару глав про это. Для меня например то как работает SVN (правда, я с ним много меньше работал) это вот действительно какое-то шаманство :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 13:06 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Мой личный опыт с этим не соглашается. У svn пожалуй главный недостаток - нельзя поработать без сети "в самолёте". А в Гите можно и бранчи создавать и переключаться и мёржить все в оффлайне. Это пожалуй мой главный довод против SVN, а в остальном (в дидактическом смысле) svn для начинающих - удобен. Кажущийся либерализм веток такой как принципиальное отсутсвие например trunk или develop может быть как преимуществом так и недостатком. Иногда новичек сам не знает какая ему нужна структура. И здесь может быть лучше как раз предложить типовую структуру бранчевания а потом уже новичек с опытом сам поймет что ему надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 13:37 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
mayton предложить типовую структуру бранчевания При которой в любой момент кто угодно может наложить кривым коммитом в общую ветку. Уже проходили :) Может сейчас с СВН как-то по другому работают, я просто не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 14:11 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Вы (многие) как-то забываете, что топикстартер работает в одно лицо и ничего из "распределённости" git - ей просто не требуется. SVN брать или тот же Fossil - вопрос десятый. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 14:55 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Basil A. Sidorov что топикстартер работает в одно лицо Значит в одно лицо себе и накоммитит в единственную ветку :)) У меня тоже есть проекты, где я один работаю, но я все равно в основную ветку ничего и никогда напрямую не пишу. Только через временную ветку и потом мерж в основную. Благо в гите и то и другое одной командой делается. Не знаю как сейчас это в SVN, но, помню, что когда-то там работа с ветками была целым ритуалом к которому никого ниже лидов не допускали :) А распределенность тут вообще не при чем. Кроме того гит сейчас это фактически стандарт де-факто, так что если учить что-то с нуля, то, по-моему и вопросов никаких. Хотя, можно, конечно, меркуриал попробовать, тем более с него на гит перейти потом вообще элементарно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 15:51 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
git тоже можно использовать локально. Я иногда делаю git init в каталоге с конфигами. Когда эспериментирую. Что понять что сломало базу или сервис. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 15:57 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
asutp2 git весьма прост для изучения и использования, если использовать его не через командную строку, а через какой нибудь приличный GUI ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 18:01 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
git вообще не прост если говорить о подходах в слиянии веток. Просто надо потратить время на git примерно как базовый курс языка программирования. Я-бы предложил 2 недели. И непонятно каким образом UI отвечает на все вопросы? Всё равно матчасть надо пройти. В противном случае кажущаяся простота UI заводит в тупик. И чел приходит в форум - с криком "спосите-помогите" а ему говорят - "вспомни что ты последнее сделал" - а он в ответ - "я не помню... я сделал много-много всего и вот..." ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 20:09 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Кстати svn тоже не прост :) Буквально сегодня я добавил новую папку и другой разработчик добавил такую же папку, но с немного другим содержимым. Всё, трындец, даже TortoiseSVN не может разрешить эти конфликты. Пришлось сливать вручную копированием файлов. Это ещё хорошо, что каждый работал в своей ветке. Иначе это была бы гарантия потерянных изменений. В плане слияния и разрешения конфликтов svn по-моему существенно сложнее. С TortoiseSVN я ещё как-то смог в этом разобраться. А в том же RabbitVCS, SmartSVN или CLI просто невозможно понять что происходит в такой ситуации. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 20:25 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Мы как-то словили забавный дефект в SVN. Был связан с регистро-нечувствительностью файловых имен в Windows и в Linux - наоборот. Не фиксился никак. Надо было просто на linux машине переименовать кучу файлов. И повторить svn update на остальных. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 20:53 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
mayton, ну, этим и гит любит грешить. Скажем, если на винде сказать ему git add somefile.ext - он молча покажет "ок" и ни фига не сделает, потому что SomeFile.ext. SVN, если мне не изменяет память, имел багу с временем файлов. Оно на FAT округляется до двух секунд, поэтому время от времени после svn update на диске оказывался файл, "изменённый" по сравнению с репозиторием. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 21:31 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
mayton git вообще не прост если говорить о подходах в слиянии веток. Я первый раз с rebase вообще втупил. Делаю локально на родительскую, рашрешаю конфликты, и push на сервер (в свою же на сервере). А история-то локально переписалась и он мне говорит - "нефига, делай сначала pull". И при pull, понятно, возникают те же самые конфликты, только в противоположную сторону. И я полчаса тупил, пока понял, что я по кругу разруливаю одни и те же конфликты, еще причем с самим собой же. Запомнил просто после этого уже на автомате, что после rebase надо всегда "push --force" делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 22:15 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
mayton git вообще не прост если говорить о подходах в слиянии веток. Просто надо потратить время на git примерно как базовый курс языка программирования. Я-бы предложил 2 недели. И непонятно каким образом UI отвечает на все вопросы? Всё равно матчасть надо пройти. В противном случае кажущаяся простота UI заводит в тупик. И чел приходит в форум - с криком "спосите-помогите" а ему говорят - "вспомни что ты последнее сделал" - а он в ответ - "я не помню... я сделал много-много всего и вот..." зы. логи то конечно есть, то я как то встрял с гитом, что после мерджа, забыв сначала сделать локальный коммит, нереально восстановить почти совсем свою реплику ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 22:24 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Еще была история про одного разработчика который любил Windows-like переводы строк. А другие - не любили. Ну вобщем его с нами уже нет ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 22:25 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
mayton Еще была история про одного разработчика который любил Windows-like переводы строк. А другие - не любили. Ну вобщем его с нами уже нет Так git давно уже это сам разруливает. Коммитишь с винды в CRLF он потом тебе на юниксе нормально в CR вернет. Вот реальная засада с этим когда ты какой-то конфиг правишь в ноутпаде а потом его на юниксовый сервер по SCP заливаешь и не можешь понять почему он у тебя вообще грузится перестал. Было у меня на одной работе еще в самом начале двухтысячных. У нас был один сервер под каким-то древнючим HPUX. Однажды оказалось что эта первобытная хрень просто вообще не читает /etc/fstab, если ты там вместо табов хоть где-то пробелы поставишь ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 22:46 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
fkthat, ты что, с make не знаком ? он и сейчас так умеет ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 22:57 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Siemargl после мерджа, забыв сначала сделать локальный коммит, нереально восстановить почти совсем свою реплику Ты там что-то просто натворил не то, потому в таком случае гит выдает: giterror: Your local changes to the following files would be overwritten by merge: .... .... Please commit your changes or stash them before you merge. Aborting Он тебе с незакоммиченными или незастешеными изменениями даже на другую ветку переключиться не даст. Может у тебя просто была какая-то специфичная GUI-тулза? Потому что у нас когда-то целый SVN-репозиторий с 5+ лет историей чуваки полностью угробили каким-то кривым GUI-плагином к Visual Studio ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 23:06 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
fkthat, ничего сложного сломать гит. потом я нашел как это разрулить - но там настоящая эльфийская магия я с тех пор про "простоту и дружелюбность" гита и слышать не желаю ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2022, 23:25 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Siemargl fkthat, ничего сложного сломать гит. потом я нашел как это разрулить - но там настоящая эльфийская магия я с тех пор про "простоту и дружелюбность" гита и слышать не желаю Тут многие хают GUI утилиты, а зря. Например в GitKraken есть классная фишка - можно смотреть возможные конфликты еще ДО выполнения слияния/пуллреквеста. Например мы с коллегой сделали две ветки от базовой и каждый пилит функционал своей задачи в своей ветке. Так вот, GUI тулза гиткракен позволят видеть, а нет ли потенциальных конфликтов между нашими ветками, а также между моей веткой и базовой веткой. Т.е. я делаю коммиты в свою ветку и сразу вижу, а нет ли конфликтов с веткой моего коллеги, а также с базовой веткой. Очень удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 10:56 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
asutp2 Siemargl fkthat, ничего сложного сломать гит. потом я нашел как это разрулить - но там настоящая эльфийская магия я с тех пор про "простоту и дружелюбность" гита и слышать не желаю Тут многие хают GUI утилиты, а зря. Например в GitKraken есть классная фишка - можно смотреть возможные конфликты еще ДО выполнения слияния/пуллреквеста. Например мы с коллегой сделали две ветки от базовой и каждый пилит функционал своей задачи в своей ветке. Так вот, GUI тулза гиткракен позволят видеть, а нет ли потенциальных конфликтов между нашими ветками, а также между моей веткой и базовой веткой. Т.е. я делаю коммиты в свою ветку и сразу вижу, а нет ли конфликтов с веткой моего коллеги, а также с базовой веткой. Очень удобно. Тоесть Кракен осущенствляет ненужную активность по сравнению всех веток со всеми. Да и вообще зачем сравнивать всё со всеми? Коллега все равно синхронизирует свою ветку с мастером. Зачем вам нужна ветка коллеги? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 11:03 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
mayton, нда, "не видел, но осуждаю" (c) ? )))) ты не думал, что разработчики гиткракена функционал сравнения веток сделали настраиваемыми и сравнивается не все подряд, а только то, что указано пользователями? и да, где я говорил о ветке master? базовой веткой может быть dev-rel-13-b4, у коллеги feature/se-723, у меня fix/SE-821 и эти наши ветки созданы из dev-rel-13-b4. SVN мозги убил, да?) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 12:29 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
asutp2 Siemargl fkthat, ничего сложного сломать гит. потом я нашел как это разрулить - но там настоящая эльфийская магия я с тех пор про "простоту и дружелюбность" гита и слышать не желаю Нарыл магию michael_v89 04.11.2019 в 09:08Если у вас на локальной машине был изменен файл и не закоммичен, а на другой закоммитили изменения в том же файле, то Git вам не даст сделать pull/merge, в отличие от SVN. Надо сделать git stash save, потом git pull, потом git stash pop , и разрешить конфликты если они будут. Только у меня случился неполный pull/merge и пздс Всего то я работал поочередно на двух машинах - домашней и рабочей А выделенных команд я до сих пор не знаю ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 12:36 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Siemargl А выделенных команд я до сих пор не знаю Сразу бы так и сказал. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 12:56 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
asutp2 mayton, нда, "не видел, но осуждаю" (c) ? )))) ты не думал, что разработчики гиткракена функционал сравнения веток сделали настраиваемыми и сравнивается не все подряд, а только то, что указано пользователями? и да, где я говорил о ветке master? базовой веткой может быть dev-rel-13-b4, у коллеги feature/se-723, у меня fix/SE-821 и эти наши ветки созданы из dev-rel-13-b4. SVN мозги убил, да?) Мда. Может быть. Некоторым мозги убивает SVN. А некоторым графические приложухи. Жизнь - такая странная штука. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 14:11 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
fkthat Было у меня на одной работе еще в самом начале двухтысячных. У нас был один сервер под каким-то древнючим HPUX. Однажды оказалось что эта первобытная хрень просто вообще не читает /etc/fstab, если ты там вместо табов хоть где-то пробелы поставишь Я считал что война Табщиков против Пробельщиков закончилась как только появились IDE, которые просто грамотно считают отступы в пробелах. А вообще последнее полезное применение табам я помню когда изучал Ассемблер. Там както tab органично смотрелся. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2022, 14:36 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Siemargl White Owl пропущено... Только один раз - сказать системе что файл надо держать под контролем. На каждый комит ее повторять не нужно. Все, доехало. В гите для измененных staging надо делать перед каждым коммитом. Неудобно только в командной строке. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 12:22 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Открой для себя ключ -a у git commit. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 14:51 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
У меня был грешок с git. Я в один из репо по ошибке закоммилил *.avi файл. Не очень большой. Но теперь при развёртывании моего проекта на любом удалённом ноутбуке он скачивается даже будучи по факту удалённым в HEAD ревизии мастера. Хорочо-бы иметь возможность "потереть историю". Без пересоздания проекта. Тоесть я прекрасно осознаю действия. Проект - мой личный и никого больше это не аффектит. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 14:55 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
mayton Хорочо-бы иметь возможность "потереть историю". Без пересоздания проекта. Тоесть я прекрасно осознаю действия. Проект - мой личный и никого больше это не аффектит. Пример использования: Код: powershell 1.
После выполнения команды файл file1 и каталог dir1 будут полностью удалены из истории проекта, опция --prune-empty также удалит образовавшиеся пустые коммиты, которые были связаны с этими файлами/каталогами. Поскольку filter-branch формирует бэкап, для возможности отката, то для полной очистки потребуется удалить .git/refs/original/, а затем выполнить очистку и оптимизацию репозитория с помощью git gc: Код: powershell 1.
Следует учесть, что история проекта будет фактически переписана заново, а значит всем пользователям потребуется заново клонировать полученный репозиторий. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 15:06 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
istrebitel, спасибо. А правильно-ли я понимаю что после git push соответсвующие бинари будут удалены и в github? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 15:17 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
О чем я и говорил, простые по сути вещи делаются в гите нетривиально [spoiler] ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 15:17 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
Да как драть зубы через ж.... Можно было простой одной командой что-то сделать. И потом git push. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 16:49 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
mayton Да как драть зубы через ж.... Можно было простой одной командой что-то сделать. И потом git push. Автору просто неведомо, что в SVN его средствами это не делается вообще никак. Только какие-то сторонние утилиты, не имеющие к SVN никакого отношения и поэтому вообще непонятно какого качества. Потому что там это можно сделать только какой-то анусной фильтрацией бинарного дампа всей репы с последующим созданием новой репы из результатов этой фильтрации. Но, человеку, который считает "git stash" китайской магией подобное неведение вполне простительно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 17:11 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
fkthat mayton Да как драть зубы через ж.... Можно было простой одной командой что-то сделать. И потом git push. Автору просто неведомо, что в SVN его средствами это не делается вообще никак. Только какие-то сторонние утилиты, не имеющие к SVN никакого отношения и поэтому вообще непонятно какого качества. Потому что там это можно сделать только какой-то анусной фильтрацией бинарного дампа всей репы с последующим созданием новой репы из результатов этой фильтрации. Но, человеку, который считает "git stash" китайской магией подобное неведение вполне простительно :) Мне кажется что на линейке истории SVN - тоже не самая древняя технология. Что там было? CVS и копирование diff-файлов через почту. Тоесть вся эта байда возникала ситуативно как "дорогая ложка к обеду". И когда финский парень создавал git он тоже наверное архитектурно не закладыал туда модификацию истории. У него-то узкая задача была. Отвязаться от коммерческих систем и перейти на своё. Зато движение вперед (fast-forward) быстро идет. Я думаю что если идти на компромиссы - то он что-то терял-бы. Видимо не хотел терять. Характер такой скверный. Мудаковатый я-бы сказал. Типа будет так как я захотел... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2022, 19:32 |
|
Системы контроля версий и Delphi
|
|||
---|---|---|---|
#18+
fkthat mayton Да как драть зубы через ж.... Можно было простой одной командой что-то сделать. И потом git push. Автору просто неведомо, что в SVN его средствами это не делается вообще никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2022, 16:01 |
|
|
Start [/forum/topic.php?all=1&fid=16&tid=1339595]: |
0ms |
get settings: |
31ms |
get forum list: |
10ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
98ms |
get topic data: |
17ms |
get forum data: |
3ms |
get page messages: |
2311ms |
get tp. blocked users: |
2ms |
others: | 178ms |
total: | 2660ms |
0 / 0 |