Russian Qt Forum

Программирование => Общий => Тема начата: __Heaven__ от Август 12, 2014, 15:24



Название: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 12, 2014, 15:24
Здравствуйте!
Я пытался самостоятельно разобраться с системами контроля версий, но мои попытки были безуспешны. Поставил себе на нетбук Hg, но так и не разобрался, как его запустить, а позже забыл.

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


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: navrocky от Август 12, 2014, 15:36
Попробуй Git.

GUI для него:
1) SmartGit - всем хорош, прост в установке, но бесплатен только для некоммерческого использования
2) SourceTree - тоже говорят годный, но только Windows и Mac (под Windows git и ssh клиент надо ставить отдельно в отличие от SmartGit)

Ну и надо, конечно, что-то по Git почитать предварительно, иначе не раздуплишь что к чему.

Из хостинга могу посоветовать: github.com для открытых проектов, bitbucket.org - для закрытых.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 12, 2014, 15:42
Я никогда не понимал термин "коммерческое использование".
Я могу установить у себя на работе софт для личного использования?
Если нет, то кто догадается, что я использую софт в коммерческих целях?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: vizir.vs от Август 12, 2014, 16:33
Я никогда не понимал термин "коммерческое использование".
Я могу установить у себя на работе софт для личного использования?

Работодатель редко разрешает ставить софт для личного использования. Другое дело что он не следит за тем, что у тебя установлено и как ты этим пользуешься.

А вообще это называется пиратство (если ты нарушаешь лицензию), ловить тебя вряд ли кто-то будет, но я для себя решил использовать либо свободный софт, либо покупать лицензию.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 12, 2014, 16:41
Значит, если я захочу установить читалку STDU Viewer на рабочую станцию, значит это пиратство?

Кстати, git'ом из под QtCreator ведь можно управлять, верно?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 12, 2014, 17:01
Любая система контроля версий подойдёт. В linux'е больше используется git, в windows svn.

Svn мне ближе, т.к. пользовался и под неё сделаны нормальные клиенты.

PS для желающий посрамить моё мнение - нормальные это значит установил и оно работает. И тебе нафиг ничего не надо знать более :D


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 12, 2014, 17:17
При использовании этих систем к коду имеет кто-либо доступ кроме меня?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Командор от Август 12, 2014, 17:47
При использовании этих систем к коду имеет кто-либо доступ кроме меня?

Можно использовать Git или Hg локально (т.е. без всяких github) и сохранять в облаке (dropbox, google.drive). Для защиты можно проект поместить в контейнер truecrypt например (работает в винде и линухе). При этом все коммиты идут в локальный репозиторий. Для "одиночек" самое то.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 12, 2014, 17:51
git имеет своё хранилище в интернете. Но может работать и с локальной копией.
svn позволяет создать свой сервер /репозиторий и работать по сети/локально.

Все системы контроля версий это умеют :D


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: navrocky от Август 12, 2014, 18:15
Я никогда не понимал термин "коммерческое использование".
Я могу установить у себя на работе софт для личного использования?
Если нет, то кто догадается, что я использую софт в коммерческих целях?

Мне нравится ход твоих мыслей )

Правда если придет злобный инспектор и очень захочет денег, а у тебя не окажется палёной 1C, Windows, AutoCAD, MS Office, то, если он окажется очень сообразительным, теоретически он может расковырять лицензию SmartGit и взять тебя на понт. Ну а пользоваться или нет на работе смотри сам )


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: navrocky от Август 12, 2014, 18:24
В linux'е больше используется git, в windows svn.

С этим можно поспорить. SVN уже считается устаревшей системой, такой же как и CVS. Все новые проекты используют распределенные VCS, такие как Git, Mercurial, Bazaar.
Да, пользоваться SVN ощутимо проще чем Git, но в ущерб гибкости и возможностям, которые предоставляют распределенные VCS.

Согласен, что под Windows есть замечательный SVN клиент TortoiseSVN, который интегрируется в explorer, но разобравшись с Git и поняв его мощь уже совсем не тянет пользоваться SVN. Тем более что и под Git есть хорошие и удобные клиенты.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: navrocky от Август 12, 2014, 18:28
При использовании этих систем к коду имеет кто-либо доступ кроме меня?

Можно использовать Git или Hg локально (т.е. без всяких github) и сохранять в облаке (dropbox, google.drive). Для защиты можно проект поместить в контейнер truecrypt например (работает в винде и линухе). При этом все коммиты идут в локальный репозиторий. Для "одиночек" самое то.

У меня знакомый прикрутил шифрование файлов к Git на хуках, это ему позволяло хостить свои приватные проекты на всяких бесплатных github, имея ключ он локально видел репозиторий в расшифрованном виде. Больше подробностей не знаю, если кому надо такое могу выяснить.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Old от Август 12, 2014, 18:46
Согласен, что под Windows есть замечательный SVN клиент TortoiseSVN
Дык есть TortoiseGit. :)


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: _Bers от Август 12, 2014, 22:39
Да, пользоваться SVN ощутимо проще чем Git, но в ущерб гибкости и возможностям, которые предоставляют распределенные VCS.

Слово "удобство" уже подразумевает не только практичность инструмента (простота использования), но и функциональность - способность инструмента удовлетворить потребности своего владельца.

Зачем нужны "гибкость и возможности", которыми неудобно пользоваться? Если можно работать с удобствами?






Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 12, 2014, 22:49
Хз, некоторые вообще клиентом командной строки пользуются. Их не понять, это уже "за гранью".

Каждый день приходить на работу и запускать терминал (в Windows) и писать в нём git bla bla bla server bla bla bla и обновлять рабочую копию. Это нечто :D

PS хотя можно достичь дзен :D


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: kambala от Август 12, 2014, 23:32
о да, написать git pull — это трудно, а написать git commit -a -m "my commit message" && git push — так это точно «за гранью» (хотя часто пушают не сразу, а после нескольких коммитов).

конечно, всякие более сложные вещи через гуй сделать быстрее/проще — для этого был придуман gitk.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 13, 2014, 00:01
Не будем спорить о том что вреднее :) Все системы контроля позволяют делать то, что предложил ТС, разница только в интерфейсах.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: kambala от Август 13, 2014, 00:18
это не спор, а опровержение твоих слов «ой как много букв надо вводить в командной строке» из предыдущего поста.

основной минус SVNа — невозможность сделать коммит без наличия интернета.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: alex312 от Август 13, 2014, 07:45
Для себя я выбрал Mercurial из-за TortoiseHg (http://tortoisehg.bitbucket.org/) (одинаково хорошо работает и на win и на linux).


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Пантер от Август 13, 2014, 07:57
Бери Git, не прогадаешь.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 13, 2014, 08:04
Спасибо. Попробую git.
Естественно все сразу не получится, вопросы задам здесь


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Old от Август 13, 2014, 08:07
Спасибо. Попробую git.
Естественно все сразу не получится, вопросы задам здесь
Есть очень хорошая книга по git (посл нее вопросов не остается). :)
http://git-scm.com/book/ru


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Пантер от Август 13, 2014, 08:09
Спасибо. Попробую git.
Естественно все сразу не получится, вопросы задам здесь
Есть очень хорошая книга по git (посл нее вопросов не остается). :)
http://git-scm.com/book/ru
Полностью поддерживаю, хорошая книга.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 13, 2014, 08:28
Спасибо. Попробую git.
Естественно все сразу не получится, вопросы задам здесь
Есть очень хорошая книга по git (посл нее вопросов не остается). :)
http://git-scm.com/book/ru
Спасибо!


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 13, 2014, 09:21
это не спор, а опровержение твоих слов «ой как много букв надо вводить в командной строке» из предыдущего поста.

основной минус SVNа — невозможность сделать коммит без наличия интернета.

Эмм, то есть невозможно сделать коммит без наличия интернета? По-моему вы дезъинформированы. В случае локального репозитория интернет не нужен. Даже подключение к сети не нужно.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: navrocky от Август 13, 2014, 09:53
это не спор, а опровержение твоих слов «ой как много букв надо вводить в командной строке» из предыдущего поста.

основной минус SVNа — невозможность сделать коммит без наличия интернета.

Эмм, то есть невозможно сделать коммит без наличия интернета? По-моему вы дезъинформированы. В случае локального репозитория интернет не нужен. Даже подключение к сети не нужно.

А при появлении интернета как ты изменения отправишь на удаленный сервер с локального?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: kambala от Август 13, 2014, 12:36
это не спор, а опровержение твоих слов «ой как много букв надо вводить в командной строке» из предыдущего поста.

основной минус SVNа — невозможность сделать коммит без наличия интернета.

Эмм, то есть невозможно сделать коммит без наличия интернета? По-моему вы дезъинформированы. В случае локального репозитория интернет не нужен. Даже подключение к сети не нужно.
про локальный репозиторий — это очевидно :D

обратим внимание на первый пост:
Цитировать
Меня интересует возможность синхронизации между ними через интернет


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 13, 2014, 12:38
Вы меня заинтересовали. А git позволяет сделать коммит в интернет репозиторий без интернета?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Пантер от Август 13, 2014, 12:43
Вы меня заинтересовали. А git позволяет сделать коммит в интернет репозиторий без интернета?

Да. В удаленный репозиторий все отправится по команде пуш. Для коммитов вообще сеть не нужна.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: kambala от Август 13, 2014, 12:44
коммит (да и вообще любые действия) сохраняется в локальной копии репозитория, потом при появлении интернета надо просто «пушнуть» свои изменения


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 13, 2014, 13:40
Т.е. для коммита - фиксации изменений в репозитории, которые станут доступными для других клиентов необходимо выполнять 2 команды? Commit/push?
Да, именно так и есть.

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

Не буду рассуждать что лучше или хуже, но svn проще и порог вхождения в него раз эдак в 5 ниже, чем в git.

PS вопрос специалистам по гиту - что будет если 2 локальных репозитория сделают ~ 2-5 коммитов на одни и те же файлы, а потом сделают push в любом порядке. Допустим сначала 1 потом 2.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Пантер от Август 13, 2014, 13:44
Первый запушает, второй обломится - ему будет предложено сначала запулать. Человек запулает, гит смержит версии и, если не сможет разрулить конфликты, предложит их разрулить.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 13, 2014, 13:48
Т.е. нормальными словами нельзя объяснить? :) pull и push для меня слова английского языка, применительно к Гиту их значение я взял из вики :)

Но в целом ясно - он выдаст количествоФайлов * количествоКоммитов конфликтов... Мдэээ... Тут svn выиграет - гораздо проще при текущем коммите разрулить конфликты.

Ну да ладно, на вкус и цвет :)   


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Пантер от Август 13, 2014, 13:55
Т.е. нормальными словами нельзя объяснить? :) pull и push для меня слова английского языка, применительно к Гиту их значение я взял из вики :)

Но в целом ясно - он выдаст количествоФайлов * количествоКоммитов конфликтов... Мдэээ... Тут svn выиграет - гораздо проще при текущем коммите разрулить конфликты.

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


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 13, 2014, 14:09
Ситуация:
Имеется 2 компьютера. Один из них offline. Редактируется файл на обоих.
А как гит разрулит такой конфликт?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Пантер от Август 13, 2014, 14:14
Ситуация:
Имеется 2 компьютера. Один из них offline. Редактируется файл на обоих.
А как гит разрулит такой конфликт?
Это лучше в документации прочитать, там несколько алгоритмов. Грубо говоря, если кто-то правил начало файла, а кто-то конец, то просто объединяются обе версии.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 13, 2014, 14:33
И на svn и на гите имеется автоматическое слияние. И там и там алгоритмы :)

В специфике svn такая ситуация может возникнуть только с одним коммитом. При попытке коммита будет получена версия текущего и вашего файла. Если автоматическое слияние возможно оно произойдёт. Если нет, будет получен конфликт и предложена двухпанельная система. (в гите трехпанельная, если верить вики).

А конфликты деревьев что здесь, что там - ужас. Но это неизбежно :D


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Пантер от Август 13, 2014, 14:39
Конфликты деревьев в гите совершенно не ужас, а очень даже наоборот. У меня над проектом трудится 4 человека, ветки создаем для каждой задачи - проблем со слиянием пока еще не было.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: kambala от Август 13, 2014, 15:26
merge-conflict в SVN, особенно когда мержишь новые наработки (а то и целую новую версию) в trunk — вот это ужас. в гите все в разы проще и быстрее.

и еще есть такая замечательная штука под названием git-flow.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: navrocky от Август 13, 2014, 18:45
и еще есть такая замечательная штука под названием git-flow.

А есть еще такая штука - gource. Такого уж точно в SVN нет :)


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 13, 2014, 18:52
А можно ещё написать названия хз-каких утилит без указаний их назначения? :)

Практические утилиты приводите, а не "красивостей" :D


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: gil9red от Август 13, 2014, 19:34
*gil9red, пользующийся svn и mercurial на работе, а git'ом дома, с ироничной улыбкой наблюдает за разворачивающимся холиваром*


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 13, 2014, 19:44
Да эт не холивар :) По эмоциональности не дотягивает :)


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: kambala от Август 13, 2014, 19:50
и еще есть такая замечательная штука под названием git-flow.

А есть еще такая штука - gource. Такого уж точно в SVN нет :)
Currently Gource includes built-in log generation support for Git, Mercurial, Bazaar and SVN (as of 0.29). :)
А можно ещё написать названия хз-каких утилит без указаний их назначения? :)

Практические утилиты приводите, а не "красивостей" :D
git-flow - a successful branching model. утилита, с помощью которой удобно вести ветки проекта (особенно большого): мастер (основная, куда попадают релизы), девелоп (понятно для чего), фича-бранчи (работаешь над фичей в отдельной ветке и потом мержишь в девелоп), хотфикс-бранчи (берутся из мастера для исправления текущей релизной версии).

программисты конечно должны быть ленивыми, но не настолько, чтобы даже не мочь открыть гугл. к git-flow есть еще красивая картинка цикла разработки.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: _Bers от Август 13, 2014, 23:13
о да, написать git pull — это трудно, а написать git commit -a -m "my commit message" && git push — так это точно «за гранью» (хотя часто пушают не сразу, а после нескольких коммитов).

Здравый смысл подсказывает: смысл в относительной простоте. Простые вещи должны делаться просто.
Жмакнуть на кнопачку, не вылазия из ИДЕ - это просто. Запускать консольку, и вручную вбивать текст - это сложнее.

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

Зачем делать сложнее, если можно сделать тоже самое, но проще?

конечно, всякие более сложные вещи через гуй сделать быстрее/проще — для этого был придуман gitk.

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

А к гуёвой оболочке SmartGit.

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


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

Свн просто сделает откат.

Гит начнет компостировать мозги.

Конечно, возможно и есть какая то консольная команда, которая позволить поиметь профит.
Вот только лично мне влом втыкать во все эти консольные команды (ну или нахрена нужен такой гуй? )

Простые вещи должны делаться просто.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: _Bers от Август 13, 2014, 23:15
merge-conflict в SVN, особенно когда мержишь новые наработки (а то и целую новую версию) в trunk — вот это ужас. в гите все в разы проще и быстрее.

Не заметил никакой разницы.

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


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 13, 2014, 23:33
Ну у нас svn победил после вопроса - а как нам распространить и заставить всех пользоваться системой контроля версий.
Смысл - обучить пользоваться/обновлять/коммитить/улаживать конфликты/улаживать конфликты клиентов/ откатываться до версии.

SVN - установил, скопировал папку с сервера, нажал на ней правой кнопкой - обновить и вуаля. Коммит - правой кнопкой - коммит + ввод комментария. Конфликт - легко, желтое конфликтует в первом файле, оранжевое -  во втором, зелёное - всё в порядке и 4 кнопки (использовать блок слева, справа, использовать все блоки слева, справа). Конфликт деревьев чуть посложнее, но приемлемо для инженеров.

Git - 3 программиста пытались понять что с ним делать в течении 2 часов, читали манулы, руководства. Объяснить это кому то другому - реально, но нужны двухмесячные курсы.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: navrocky от Август 14, 2014, 08:36
Ну у нас svn победил после вопроса - а как нам распространить и заставить всех пользоваться системой контроля версий.
А "все" это кто у вас? От этого, конечно, многое зависит. Но с другой стороны и под Git есть клиенты в использовании не намного сложнее чем TortoiseSvn, выше я о них писал. По сути там есть даже кнопка Commit&Push, которая делает то-же самое, что и Commit в SVN. И разрешение конфликтов тоже с двухпанельным интерфейсом. Всё как вы хотите.

PS. А вообще, вы как из прошлого вещаете, у меня все знакомые во всех известных мне ИТ-фирмах моего города уже давно используют Git. В инете проектов, сидящих на SVN, уже практически не осталось.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 14, 2014, 10:29
Не надо так категорично. SVN не умер, он ещё здравствует, а ваш и мой ареол знакомых не позволяет сказать что git или svn умер и в прошлом :)


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: vizir.vs от Август 14, 2014, 14:21
Не надо так категорично. SVN не умер, он ещё здравствует, а ваш и мой ареол знакомых не позволяет сказать что git или svn умер и в прошлом :)
Хватает контор, где систем контроль вообще нет. Просто создают раровский архив и в таком виде хранят релизы/ветки и так далее. Некоторые используют CSV. Но как мне кажется последние веенья моды это распределенные системы контроля версий, типа git|bazaar|mercurial. В больших проектах удобнее распределенные системы, а для маленьких групп или домашних проектов вполне хватит и SVN, он в целом проще.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: kamre от Август 16, 2014, 20:25
Вот в svn можно сделать check out любой поддиректории из репозитория, в git/hg разве так можно делать?

Еще в svn можно хранить большие бинарники, при этом локально хранится только самая последняя версия и место не тратится, gi/hg это умеют?

Ну и externals еще есть в svn, это когда можно делать ссылки на другие репозитории или их части и потом все удобно обновлять одной командой. Можно так в hg/git?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: navrocky от Август 17, 2014, 10:25
Вот в svn можно сделать check out любой поддиректории из репозитория, в git/hg разве так можно делать?

Еще в svn можно хранить большие бинарники, при этом локально хранится только самая последняя версия и место не тратится, gi/hg это умеют?

Ну и externals еще есть в svn, это когда можно делать ссылки на другие репозитории или их части и потом все удобно обновлять одной командой. Можно так в hg/git?

1. не умеет
2. не умеет
3. такое есть, gg submodules

Еще одна возможность Git - он умеет работать с репозиториями SVN, т.е. можно забирать изменения и коммитить обратно новые коммиты, при этом локальная копия в формате Git.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Kolobok от Август 17, 2014, 15:51
Насколько я знаю у Git'а нет разделения прав доступа, а у SVN есть.

Еще в svn можно хранить большие бинарники, при этом локально хранится только самая последняя версия и место не тратится, gi/hg это умеют?

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


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 17, 2014, 16:02
Ну вот и разгорается холиварчик.
Однако тут не о чём спорить.

Гибкость, большие возможности => сложность в обращении. Git.
Простота, отсутствие больших возможностей - только необходимое => простота в обращении. SVN.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 17, 2014, 18:05
Ну вот и разгорается холиварчик.
ой, ребят, забыл спросить, а что лучше, gui или консоль версия?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 17, 2014, 18:23
Гуи Гуи  ;D ;D ;D


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: vizir.vs от Август 18, 2014, 08:19
Ну вот и разгорается холиварчик.
ой, ребят, забыл спросить, а что лучше, gui или консоль версия?
С гуи проще, но консоль знать не помещает. Хотя бы базовые команды и их ключи.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 18, 2014, 11:45
На мой взгляд терминал нужен для "автоматизации". Других причин усложнять работу с программой я не вижу.

PS процессор рассчитывает несколько миллиардов операций в секунду, чтобы запустить ОС, которая запускает движок Chromium, который запускает Java, который создаёт Flash, который отрисовывает с частотой 25 кадров в секунду изображение котика, потому что человек - вершина эволюции :D


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: vizir.vs от Август 19, 2014, 15:51
Мне периодически приходится работать по ssh без иксов или просто на машине без гуев как таковых. Так, что воле не волей выучить консольные команды пришлось. В любом случае знать хотя бы базу полезно. Не всегда есть доступ к гуи, и не везде стоят гуевые программы.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 21, 2014, 17:59
Я только что зарегистрировался на github.com. Так понял, что бесплатно мне никто не разрешит хранить свои проекты в закрытом виде на этом ресурсе. Существуют ли ресурсы, которые могут хотя бы дать место под 1 репозиторий, к которому буду иметь доступ только я?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Bepec от Август 21, 2014, 18:14
svn на собственном сервере самое надёжное.
http://www.mysvn.ru/Home/Plans - я одно время им пользовался, пока не поднял свой.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: alex312 от Август 21, 2014, 18:35
Я только что зарегистрировался на github.com. Так понял, что бесплатно мне никто не разрешит хранить свои проекты в закрытом виде на этом ресурсе. Существуют ли ресурсы, которые могут хотя бы дать место под 1 репозиторий, к которому буду иметь доступ только я?
https://bitbucket.org/


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 21, 2014, 19:14
Спасибо


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 22, 2014, 15:18
Я только начал вникать в прелести git. Мне нетерпится узнать, возможно ли автоматическое получение последних изменений с сервера, или нужно писать скрипт?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Old от Август 22, 2014, 15:42
Я только начал вникать в прелести git. Мне нетерпится узнать, возможно ли автоматическое получение последних изменений с сервера, или нужно писать скрипт?
Вы хотите автоматически делать git pull?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 22, 2014, 16:09
Я только начал вникать в прелести git. Мне нетерпится узнать, возможно ли автоматическое получение последних изменений с сервера, или нужно писать скрипт?
Вы хотите автоматически делать git pull?
Да. Я работаю один и мне не страшно, что мои файлы перетрутся кем-то.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 22, 2014, 16:27
Вообще, в идеале, я бы хотел иметь с 3х компьютеров доступ к коду и забыть, что у меня установлен git. Хочу вспоминать о нём только при инициализации.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Old от Август 22, 2014, 19:32
Вообще, в идеале, я бы хотел иметь с 3х компьютеров доступ к коду и забыть, что у меня установлен git. Хочу вспоминать о нём только при инициализации.
Вам нужен dropbox, yandex.диск или подобное облачное хранилище.
С git в начале дня нужно сделать pull, а в конце push. Это нет смысла автоматизировать.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 22, 2014, 20:04
Ну да, согласен. Слишком много хочу от него.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 25, 2014, 08:55
Я не разобрался, в чём преимущество внедрения git в QtCreator.
Этим пользуются?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Old от Август 25, 2014, 09:01
Я не разобрался, в чём преимущество внедрения git в QtCreator.
Этим пользуются?
Что бы сделать commit - да, для всего остального исключительно консоль.
В креаторе удобно разделять изменения на разные коммиты.
Например, мы начали что-то исправлять и исправление этого вызвало переделку второго. Тогда в креаторе мы можем отметить файлы для первого исправления и описать их в коммите, а потом выбрать фалы второго исправления и описать уже его.
Это если хочется иметь разные коммиты для каждого из исправлений... Но можно это все описать и в одном коммите. :)


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Август 25, 2014, 10:24
У меня имеется папка с проектами (подпапками), в которой я провожу операции с git. Если я открою один из проектов, то к его названию подписывается [master]. Ничего дополнительного из функционала я не нашёл.
На данный момент я вижу, что проще иметь свёрнутый cmd, из которого и выполнять всяческие коммиты.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Old от Август 25, 2014, 10:31
У меня имеется папка с проектами (подпапками), в которой я провожу операции с git. Если я открою один из проектов, то к его названию подписывается [master]. Ничего дополнительного из функционала я не нашёл.
На данный момент я вижу, что проще иметь свёрнутый cmd, из которого и выполнять всяческие коммиты.
Инструменты -> git


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: gil9red от Август 25, 2014, 10:32
У меня имеется папка с проектами (подпапками), в которой я провожу операции с git. Если я открою один из проектов, то к его названию подписывается [master]. Ничего дополнительного из функционала я не нашёл.
На данный момент я вижу, что проще иметь свёрнутый cmd, из которого и выполнять всяческие коммиты.

мне вот проще гуи (git-gui) для коммитов использовать :)
а вот консоль (git-bash) чтобы клонировать репозитории или обновить текущий :)


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Авварон от Август 25, 2014, 11:22
В креаторе есть чудная штука, называется локатор. СКВ туда тоже интегрирутся, поэтому можно тупо писать git pull/git push/git commit/git amend и он будет тыркать соответствующий  пункты меню. Да, сам локатор вызывается по нажатию Ctrl+L. Имхо, это гораздо удобнее гитовских шорткатов, для юзания к-ых нужно быть пианистом.
Из гуевых клиентов мне нравится СорсТри, иногда юзаю его для интерактивного добавления (git add -i не осилил).
Ну а так да, консоль рулит, кто не юзает - тот неосилятор:)


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: kambala от Август 25, 2014, 12:39
git add -p норм штука, позволяет дробить куски (hunk) еще мельче, на что сорстри неспособен к сожалению. хотя, без сомнения, через гуи намного быстрее «стейджить» куски изменений.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Октябрь 14, 2014, 11:13
Не подскажите, каким образом можно из под QtCreator выполнить git push при условии, что сервер (bitbucket.org) запрашивает пароль?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: Авварон от Октябрь 17, 2014, 09:36
Не подскажите, каким образом можно из под QtCreator выполнить git push при условии, что сервер (bitbucket.org) запрашивает пароль?
насколько я знаю, никак, но можно заставить гит сохранить пароль и не спрашивать каждый раз при помощи git config credential.helper store


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: vregess от Октябрь 17, 2014, 12:23
Перед этим лучше попробовать ssh-ключи.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Октябрь 17, 2014, 17:02
Спасибо


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Февраль 10, 2015, 16:51
Появился вопрос.
Я имею 2 машины. На одной я написал какую-то часть и хотел бы закончить её на другой машине.
Как мне с помощью сервера перекинуть мой код без создания коммита на сервере. Или ка затереть временный коммит?


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: kambala от Февраль 10, 2015, 17:37
не рекомендуется изменять историю, если коммиты запушены. но если ты работаешь один с репозиторием, то вроде можно. загугли git rewriting history.

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


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Февраль 10, 2015, 17:57
Да, работаю я один.
пока смотрю в сторону
Код:
git commit --amend
и
Код:
git push --force


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: vregess от Февраль 11, 2015, 08:41
Используй ветки. Сначала push ветки на удаленный сервер, на втором компе pull этой ветки. Потом удаляешь ветку. В результате история master-ветки останется не тронутой.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Февраль 11, 2015, 09:18
Используй ветки. Сначала push ветки на удаленный сервер, на втором компе pull этой ветки. Потом удаляешь ветку. В результате история master-ветки останется не тронутой.
О, спасибо. Интересный совет. Ветками пока ещё не пользовался - прочту.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: vregess от Февраль 11, 2015, 10:46
Кстати, ветку можно не удалять, а продолжать вести в ней разработку нестабильной версии. Вряд ли эта ситуация у тебя будет единичной. Так что просто заведи удаленную ветку develop.


Название: Re: Помогите выбрать контроль версий под мои нужды
Отправлено: __Heaven__ от Февраль 11, 2015, 11:47
Кстати, ветку можно не удалять, а продолжать вести в ней разработку нестабильной версии. Вряд ли эта ситуация у тебя будет единичной. Так что просто заведи удаленную ветку develop.
Да, сейчас сделал ветку tmp. Удалять не буду. Правда, из-за того, что побежал вперёд паровоза и разбираюсь как сделать push.
Выдается сообщение о том, что мне необходимо настроить
Код:
git config --global push.default
Ветку, кстати, создал средствами QtCreator