Просмотр полной версии : контроль версий: CVCS или DVCS?
Какой системой контроля версий (Version Control System) пользуетесь для коммерческих проектов:
1) Centralized VCS (SVN, CVS, ...)
2) Distributed VCS (Git, Mercurial, ...)
?
честно говоря не понял приемущества git/mercual, кроме "лёгких" комитов. в svn это решал с помощью release/test серверов. Которые сами по себе только клиенты и качали нужную ревизию.
Распределённость тоже не сть хорошо. Для работы в команде по-любому нужен централ.
честно говоря не понял приемущества git/mercual
Как я понял преимущества еще и в "легких" merge (в CVCS это был "pain in the ass"), возможность работать независимо от централа (например без инета).
А вообще мне кажется было бы здорово заюзать что-то среднее между CVCS и DVCS, т.е. минорные изменения коммитим в свой локальный реп, а законченные фичи - в централ. Кто-нибудь встречал подобное?
... Распределённость тоже не сть хорошо. Для работы в команде по-любому нужен централ.
Централ и так по любому есть и у SCN и у GIT, только с гитом можно камититься и без наличия коннекции к централу. Кроме того, т.к. у каждого члена команды есть копия централа, то повышается сохранность данных по отношению к сбоям серевера на котором хранится "централ".
... А вообще мне кажется было бы здорово заюзать что-то среднее между CVCS и DVCS, т.е. минорные изменения коммитим в свой локальный реп, а законченные фичи - в централ. Кто-нибудь встречал подобное?
Встречал, в гите есть возможность отбранчить новую ветку, ваять в ней, а когда изменения в ней переросли в фичу, мержить свою фичу в главную ветку.
Пользуюсь GIT; с того момента как перешли с Subversion на GIT не было дня, когда что-нубудь случайно не сломалось. Начиная с того, что сервер документации не получается настроить на работу с ним, так еще и чисто организационные вопросы (кто внес последние правки? куда делись изменения? почему файлы origin сидят в репозитори? и так без конца). Общий уровень понимания происходящего и владения ситуацией среди рабочего персонала снизился практически до нуля. Тривиальная раньше задача, типа вытащить случайно удаленный 10 версий назад файл из репозитория стала совсем не такой тривиальной и т.д. Из самых плохих последствий, не возможно оперативно определить тестирует ли QA последний билд или нет. Вобщем если вам не хватало хаоса в повседневной жизни - перейдите на GIT, как минимум несколько часов брейнсторминга посвященного решению самых тривиальных задач в день вам обеспечено.
К автору опроса: пожалуйста добавьте опций. Потому что если я чесно признаюсь, что использую GIT, это ему поднимет репутацию, а я совсем этого не хочу.
Пользуюсь GIT; с того момента как перешли с Subversion на GIT не было дня, когда что-нубудь случайно не сломалось. ... Тривиальная раньше задача, ... стала совсем не такой тривиальной и т.д. ... перейдите на GIT, как минимум несколько часов брейнсторминга посвященного решению самых тривиальных задач в день вам обеспечено.
Это все симптомы самой общей проблемы смены рабочего инструмента, а не проблемы гита как такового. Адекватно оценить инструмент можно только полностью им овладев, то есть спустя время. Крепитесь, грызите гранит, и скоро попустит и даже станет лучше чем було. Удачи.
Я не хочу им овладевать, мне, для того, чтобы писать мои проекты это вообще не нужно (Я не хочу заниматься допиливанием и "файн-тюнингом" инструментов, мне хватает того, что нужно допиливать IDE). К Subversion не нужно было привыкать, потому, что это просто удобный инструмент. Git - это интересно, но в производсвте не пригоден пока ни на что.
EDIT: Или, скажем по-другому, vim - замечательный редактор... для 0.0001% програмистов. В написании сколь-нибудь сложных проектов не применим в приниципе. Потому что если програмисты начнут гуглить "как скопипастить произвольный текст", то работа встанет. Точно так же и Git. Если хочется с комфортом, без головной боли просто работать, то про него можно забыть.
Я не хочу им овладевать, ... Я не хочу заниматься допиливанием и "файн-тюнингом" инструментов, ... Git - это интересно, но в производсвте не пригоден пока ни на что.
кмк первый стейтмент перевесит любые доводы :)
допиливать его не надо, надо сделать памятку - что-то вроде этого, но короче (http://git-scm.com/course/svn.html) и раздать команде.
гит используют в таких немаленьких проектах, как: Linux Kernel, Perl, Eclipse, Gnome, KDE, Qt, Ruby on Rails, Android, PostgreSQL, Debian, X.org.
ps_spectre
18.01.2011, 21:07
GIT. (сам только начинаю им пользоваться)
для тех кто интересуется, можно начать с хабра:
Почему Git (http://habrahabr.ru/blogs/Git/104198/)
Про Git на пальцах (для переходящих с SVN) (http://habrahabr.ru/blogs/development/68341/)
Git Workflow (http://habrahabr.ru/blogs/Git/60030/)
Git Wizardry (http://habrahabr.ru/blogs/Git/60347/)
Использование git во Flash разработке (http://habrahabr.ru/blogs/Git/104704/)
Проголосовал за гит просто потому что им пользуюсь локально.
Тривиальная раньше задача, типа вытащить случайно удаленный 10 версий назад файл из репозитория...
И раз уж на то пошло, может кто из знатоков гита подсказать как решить данную задачу?
Что есть - собственно гит, ну и для него же тортилла (некоторые вещи в ней привычней делать). Последней хотелось бы избежать, т.к. для работы одной программы использовать больше одной программы - не есть признак адекватности. И еще не хотелось бы ковыряться в консоли, если это возможно, и заниматься переводами. Спасибо.
кмк первый стейтмент перевесит любые доводы :)
допиливать его не надо, надо сделать памятку [...]
Не надо ничего раздавать команде. Анинстал и забыть до лучших времен. Я не говорю, что идея плохая. Просто на данный момент применение на практике приводит к худшим результатам, чем другие уже существующие решения. Лучшее - враг хорошего. Никакие статьи меня не убедят - мне хватило нескольких месяцев (я другой язык програмирования за это же время выучил, пересел не другую операционку, а это как было невминяемым бредом, так и осталось). Еще раз, думать, что разработчик должен быть фанатом вашего любимого редактора/системы версий/языка - это глубокое заблуждение (разработчики Realaxy тому пример). Любят то, чем просто пользоваться. У гита кривые АПИ, все без исключения делающие не то, что написано (т.е. clone ничего не клонирует, commit ничего не коммитит и т.д.) Их написал человек, которому нравилось быть "особенным" для узкого круга своих почитателей. А тем, кому от его ауры ни тепло и не холодно и от этого творения как-то никак.
ЗЫ: Большая часть населения земного шара верит в бога в том или ином виде, считает, что курение вредит здоровью и т.д. что не делает эти утверждения истинными.
ЗЫЫ: С другой стороны, Lisp однозначно и безапеляционно лучше C++, но опять же, статистика вовсе не в его пользу.
TanaTiX:
$ git checkout full/path/to/file revision-hash
Да, а вот теперь найти в какой из версий был нужный файл... нужен репо-браузер и искать. А если файл бинарник, то тут уже только методом проб и ошибок.
ps_spectre
18.01.2011, 22:14
как вариант можно использовать:
Вернуть файл (или просто вытащить из прошлого коммита) позволяет команда вида:
git checkout somefile — вернуть somefile к состоянию последнего коммита
git checkout HEAD~2 somefile — вернуть somefile к состоянию на два коммита назад по ветке.
еще можно из консоли стандартно запустить gitk для большей наглядности.
Во-во, тут и начинается суета при ловле блох - это хорошо, если вы знаете сколько комитов назад файл был удален, и если вы единственный человек, который делает пуш. А когда таких несколько - опции типа "Х ревизий назад" становятся ультимативно бесполезными. Просто Линус Торвальд, когда задумывал Гит предполагал, что каждый пользователь персонального компьютера помнит свой РСА ключ, а если и не помнит, то сможет легко его вычислить помня мак-адресс и еще кое-какую тривиальную информацию о своей машине. Так же Линус предполагал, что разработчик, после того как сделать коммит повторит вслух пятдесят раз хеш последнего коммита (просто чтобы не забыть, и потом не перепутать с хешем следующего коммита, или коммита сделаного сослуживцем). Вот, не далее как десять минут назад произошел следующий разговор между нашим QA в Индии и вашим покорным слугой (в скайпе):
-- Кумар, а скажи пожалуйста, какую версию вы сейчас тестируете?
-- Сейчас гляну... а, 7650cdc6621cd15b047d!
-- Подожди-подожди, какая там была [санскрит] восьмая цифра?
-- 6! [санскрит, вполголоса]
-- Не-е, Кумар, ты чет путаешь, одной цифры не хватает, нука давай еще раз [санскрит].
И так далее, а все птому, что версия показывается в контекстном меню, откуда ее не скопировать, а еще и в линуксовом Хроме и Опере текст из флеша вообще не копируется, если wmode=transparent.
-- Сейчас гляну... а, 7650cdc6621cd15b047d!
не, ну а зачем тогда именование версий, зачем теги? Хеши хороши как автоматически создаваемые идентификаторы. И еще необязательно указывать все цифры, достаточно только пять первых 7650c
Лучшее - враг хорошего...
Любят то, чем просто пользоваться....
Да, а вот теперь найти в какой из версий был нужный файл... нужен репо-браузер и искать.
+100500 ...
+100600 ...
git log -- app/views/snippets/show.html.erb - покажет все злоключения этого файла, а можно
git log df29a -- app/views/snippets/show.html.erb - то же с начала и до камита df29a. Можно также указать с .. по камиты. Вообще, если кажется что что-то делается неудобно, скорее всего есть более что-ли правильный способ.
Ессно чтобы мигрировать нужны веские основания. Но гит категорически не хуже svn :)
Именно, что категорически хуже - прочитайте еще раз - какого я должен запоминать "имена" версий? У меня что других проблем мало? Или может Гит не называется "системой контроля версий" - пока что, кроме все возрастающего беспорядка я ничего не вижу. Тот же лог, он бестолковый, потому, что в нем нет ясности, что случилось раньше, а что пожже. В Гите это в принципе не возможно реализовать. Т.е. система "контроля", на самом деле превращает пусть и худо-бедно существовавший порядок в абсолютный бардак. Тимлид видя номер версии в продакшене не может сказать, последняя ли это версия, и сколько версий назад она была скомпилирована, если она не последняя - вы же понимаете, что это идиотизм в высшей степени?
Кроме того, у нас процесс коммита заложен в компиляцию, т.е. коммиты и пуш делаются автоматически (это было безумно просто в SVN, и вплоть до невозможного запутано и неудобно в Git). Так что "именования версий" идут лесом. Если я вместо Git'a буду сам организовывать систему слежения за версиями - за каким лешим мне тогда этот самый гит нужен? Это просто десятикратно ухудшеный rsync получится (последний хотябы предсказуем и прост в эксплуатации).
Да, и еще, Git безумно плохо сравнивает файлы. Т.е. например, закоментировали вы > 10 строк, вы все это получите в конфликте, который Git автоматически разрешить не может. Следовательно, автоматический merge не получится, следовательно, куча впустую потраченого времени на разрешение очевидных конфликтов.
Да, и еще, из AS3 програмистов 90% работают в виндовсе, 10% - маки, и практически никто в линуксе / юниксе. Следовательно, для типичного AS3 програмиста, програма без графического интерфейса, если не в новинку, то, как минимум не удобна в обращении. Принимая во внимание то, что большая часть функционала Гита никак не реализована в существующем на сегодняшний день интерфейсе, а та, что есть не выдерживает даже самой вежливой критики - зачем?.. Мучаться потому, что это сейчас модно? Не знаю... девушки тоже по каким-то мистическим причинам носят высокие каблуки, и жалуются о том, как это неудобно. Но это девушки...
Dukobpa3
19.01.2011, 03:05
Проголосовал за гит просто потому что им пользуюсь локально.
А у меня локально свн:)))
До этого ничем не пользовался, а сейчас вот [отредактировано] читаю и думаю что не ошибся в выборе)
Насчет неинтуитивности на гит матерятся даже заядлые гитовцы, чего не скажешь про свн. Та и документации поболе. Та и греет душу ощущение контроля за репозитарием, а то договораиваться с кем-то решать что-то(ну это если допустим помощника нанимаю, то репозитарий свой расшариваю), у кого там центральный репо и в таком духе... Нафиг надо;)
alexcon314
19.01.2011, 09:07
Dukobpa3, про туалетный лексикон (http://www.flasher.ru/forum/showthread.php?t=140022) тему не читали?
wvxvw, твои эмоции меня тронули :) Почему ваша команда работает на гите? Кто-то злой заставил?
Примерно так :)
До того, как меня взяли на работу, они пригласили "специалиста", чтобы он им все настроил. В итоге специалист пропал с концами, а то, что он настроил... вобщем работает, если не трогать и не предъявлять особенных требований, но поменять или добавить - никак. Кроме того есть явные недостатки, которые у специалиста "не получились", например, вики и репозитори не связаны (Редмайн), но что-то там попытаться перенастроить... я пробовал, пару раз уронил сервер, на том и закончилось :) Кроме того, есть такой синдром, забыл, как называется, это когда недавние изменения привели к ухудшениям, но все равно боятся поменять обратно потому что то ли боятся, что "а вдруг вообще работать перестанет", то ли потому что лень... как тот митек, который с похмелья отпил ацетону из бутылки, но когда осознал, что произошло, решил все равно не останавливаться и довести дело до конца.
EDIT: да, забыл уточнить, у специалиста не получилось настроить сервер версий, и в итоге все комиты идут через github... потому что у Gita нет родного веб-интерфейса, а то, что можно к нему приткнуть - ну очень бажное. А настройки доступа оказались вообще непосильной задачей и для нас (хостеров) и для фрилансеров с которыми время от времени работаем (флешер средней руки, проработавший всю жизнь в виндовсе прям сходу научится генерить РСА ключ!)
EDIT2: Да, и еще! :) Не, ну правда же! Гит выдает разрешения основываясь на РСА ключах, это значит, что чтобы авротизировать фрилансера, нужно разрешить всем его компьютерам доступ (включая ситуации, когда фрилансер купил новых жесткий диск, ЦПЮ, развелся с женой и уехал к родителям поработать и т.д.). Процесс этот очень утомительный, а еще хуже, что авторизировав комп бабушки с дедушкой фрилансера, вообще не понятно кому даешь полномочия на комит в твой репозитори. Это всегда вызывает кучу проблем. И главное, что этого никогда ведь не было в SVN...
Тот же лог, он бестолковый, потому, что в нем нет ясности, что случилось раньше, а что пожже. В Гите это в принципе не возможно реализовать.
... Следовательно, для типичного AS3 програмиста, програма без графического интерфейса, если не в новинку, то, как минимум не удобна в обращении.
Так ли это? Не поленитесь, запустите лог команду. Список изменений мало того что сортирован по времени, так там еще и даты приведены.
Если проблемы с консолью, то тогда да, лучше не гит. Хотя я почти уверен, что ни для какой VCS системы гуй полностью не заменит консоли.
Примерно так :)
... Кроме того есть явные недостатки, которые у специалиста "не получились", например, вики и репозитори не связаны (Редмайн), ...
(флешер средней руки, проработавший всю жизнь в виндовсе прям сходу научится генерить РСА ключ!)
В Редмайне, насколько я помню, вики не связана с репо бай дизайн. Если нужна связь - пишите тикет разработчикам редмайна или опять же оформляйте задание фрилансу. Ладно, это другая тема.
Зачем флешеру учиться генерировать RCA ключ? На то должна быть внятная инструкция.
зы
У вас проблемы не только с гитом, а в принципе с инфраструктурой. Вы выпишите в столбик все ваши проблемы, оформите заданием и разместите в открытом доступе. Попросите людей вам помочь, глядишь, победите ваши проблемы. Удачи!
Или вот вам, реальное проишествие, сегодня с утра было потрачено около часа на то, чтобы просто проапдейтить мою локальную копию... (в итоге часть сорцев пришлось пересылать по почте и т.п.)
wvxvw@wvxvw-desktop:~/Projects/rounds$ git pull
remote: Counting objects: 144, done.
remote: Compressing objects: 100% (72/72), done.
remote: Total 73 (delta 54), reused 0 (delta 0)
Unpacking objects: 100% (73/73), done.
From github.com:gadisr/rounds
c410ef7..ca69521 master -> origin/master
Auto-merging LIB/com/gixoo/view/GixooSimpleButton.as
Auto-merging VideoRound/com/gixoo/videoRound/controllers/ViewController.as
Auto-merging VideoRound/com/gixoo/videoRound/net/p2p/P2PStream.as
Auto-merging VideoRound/com/gixoo/videoRound/view/VideoRoundView.as
CONFLICT (content): Merge conflict in VideoRound/com/gixoo/videoRound/view/VideoRoundView.as
Auto-merging VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentView.as
CONFLICT (content): Merge conflict in VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentView.as
Automatic merge failed; fix conflicts and then commit the result.
wvxvw@wvxvw-desktop:~/Projects/rounds$ git commit -a
[master eaee5a5] Merge branch 'master' of github.com:gadisr/rounds
wvxvw@wvxvw-desktop:~/Projects/rounds$ git log VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
commit 7684a3d26e077cd636bb62399f82324084a1631c
Author: Yogev Shelly <yogev@rounds.com>
Date: Wed Jan 19 10:15:02 2011 +0200
stream changes
commit ad36371cb40a25b98c43e8b3bac476a78fe589db
Author: Yogev Shelly <yogev@rounds.com>
Date: Mon Nov 29 16:41:24 2010 +0200
added lib and videoRound - tcp version
wvxvw@wvxvw-desktop:~/Projects/rounds$ git log -p VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
commit 7684a3d26e077cd636bb62399f82324084a1631c
Author: Yogev Shelly <yogev@rounds.com>
Date: Wed Jan 19 10:15:02 2011 +0200
stream changes
diff --git a/VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as b/VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
index 0fc1a81..1304c31 100644
--- a/VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
+++ b/VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
@@ -31,19 +31,10 @@ package com.gixoo.videoRound.view.participant.opponentView
*/
//Add remove code
- if(ns == null)
- {
- if(neaveNs)
- {
- if(contains(neaveNs))
- removeChild(neaveNs);
- }
- }
- else if(neaveNs)
- {
- if(!contains(neaveNs))
- addChild(neaveNs);
- }
+ if(!ns && neaveNs && contains(neaveNs))
+ removeChild(neaveNs);
+ else if(neaveNs && !contains(neaveNs))
+ addChild(neaveNs);
//Set NS code
if(!neaveNs)
@@ -69,7 +60,6 @@ package com.gixoo.videoRound.view.participant.opponentView
neaveNs.activateEffects(EffectType[effectType] != EffectType.NORMAL)
neaveNs.effects.effectType = EffectType[effectType];
neaveNs.activateEffects(EffectType[effectType] != EffectType.NORMAL)
-
}
private function handleEffectFailed(evt:Event):void
wvxvw@wvxvw-desktop:~/Projects/rounds$ git whatchanged -p VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
commit 7684a3d26e077cd636bb62399f82324084a1631c
Author: Yogev Shelly <yogev@rounds.com>
Date: Wed Jan 19 10:15:02 2011 +0200
stream changes
diff --git a/VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as b/VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
index 0fc1a81..1304c31 100644
--- a/VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
+++ b/VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
@@ -31,19 +31,10 @@ package com.gixoo.videoRound.view.participant.opponentView
*/
//Add remove code
- if(ns == null)
- {
- if(neaveNs)
- {
- if(contains(neaveNs))
- removeChild(neaveNs);
- }
- }
- else if(neaveNs)
- {
- if(!contains(neaveNs))
- addChild(neaveNs);
- }
+ if(!ns && neaveNs && contains(neaveNs))
+ removeChild(neaveNs);
+ else if(neaveNs && !contains(neaveNs))
+ addChild(neaveNs);
//Set NS code
if(!neaveNs)
@@ -69,7 +60,6 @@ package com.gixoo.videoRound.view.participant.opponentView
neaveNs.activateEffects(EffectType[effectType] != EffectType.NORMAL)
neaveNs.effects.effectType = EffectType[effectType];
neaveNs.activateEffects(EffectType[effectType] != EffectType.NORMAL)
-
}
private function handleEffectFailed(evt:Event):void
wvxvw@wvxvw-desktop:~/Projects/rounds$ git diff head -- VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
fatal: bad revision 'head'
wvxvw@wvxvw-desktop:~/Projects/rounds$ git diff HEAD -- VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
wvxvw@wvxvw-desktop:~/Projects/rounds$ git commit -v
# On branch master
# Your branch is ahead of 'origin/master' by 3 commits.
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .build.xml.swp
# LIB/.project
. . .
# obsolete/logger/
nothing added to commit but untracked files present (use "git add" to track)
wvxvw@wvxvw-desktop:~/Projects/rounds$ git diff
wvxvw@wvxvw-desktop:~/Projects/rounds$ git difftool
wvxvw@wvxvw-desktop:~/Projects/rounds$ git diftool
git: 'diftool' is not a git command. See 'git --help'.
Did you mean this?
difftool
wvxvw@wvxvw-desktop:~/Projects/rounds$ git diftool --help
No manual entry for gitdiftool
wvxvw@wvxvw-desktop:~/Projects/rounds$ git difftool --help
wvxvw@wvxvw-desktop:~/Projects/rounds$ git pull
Already up-to-date.
wvxvw@wvxvw-desktop:~/Projects/rounds$ git blame VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
ad36371c (Yogev Shelly 2010-11-29 16:41:24 +0200 1) package com.gixoo.videoRound.view.participant.opponentView
... реальное содержание файла вырезано ...
ad36371c (Yogev Shelly 2010-11-29 16:41:24 +0200 73) }
wvxvw@wvxvw-desktop:~/Projects/rounds$ git push
Counting objects: 116, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (62/62), done.
Writing objects: 100% (64/64), 7.83 KiB, done.
Total 64 (delta 43), reused 0 (delta 0)
To git@github.com:gadisr/rounds.git
ca69521..eaee5a5 master -> master
wvxvw@wvxvw-desktop:~/Projects/rounds$ git blame VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentVideo.as
ad36371c (Yogev Shelly 2010-11-29 16:41:24 +0200 1) package com.gixoo.videoRound.view.participant.opponentView
... реальное содержание файла вырезано ...
ad36371c (Yogev Shelly 2010-11-29 16:41:24 +0200 73) }
wvxvw@wvxvw-desktop:~/Projects/rounds$ git log
commit eaee5a580210ccd058671fc79de054cbc80fe3d5
Merge: 1668281 ca69521
Author: wvxvw <oleg@rounds.com>
Date: Wed Jan 19 10:56:07 2011 +0200
Merge branch 'master' of github.com:gadisr/rounds
Conflicts:
VideoRound/com/gixoo/videoRound/view/VideoRoundView.as
VideoRound/com/gixoo/videoRound/view/participant/opponentView/OpponentView.as
commit ca6952120620b38168a3d772a01190ee94c92194
Merge: 7684a3d c410ef7
Author: Yogev Shelly <yogev@rounds.com>
Date: Wed Jan 19 10:17:47 2011 +0200
Merge branch 'master' of github.com:gadisr/rounds
Conflicts:
VideoRound/com/gixoo/videoRound/net/tcp/TcpClient.as
commit 7684a3d26e077cd636bb62399f82324084a1631c
Author: Yogev Shelly <yogev@rounds.com>
Date: Wed Jan 19 10:15:02 2011 +0200
stream changes
commit 1668281f71e3c6ff8b7c06fdd735edd5655399c8
Author: wvxvw <oleg@rounds.com>
Date: Tue Jan 18 14:25:41 2011 +0200
Couple of cosmetic changes in VideoRoundView
commit 15ee9d379e03d333cfb11787eb779ec5f942250f
Author: wvxvw <oleg@rounds.com>
Date: Tue Jan 18 10:22:06 2011 +0200
Rewriting ChatData so it could send > and < signs
commit c410ef7ef145a84b96a9f8997ae6322c75ba4cc7
Author: wvxvw <oleg@rounds.com>
Date: Mon Jan 17 11:28:26 2011 +0200
wvxvw@wvxvw-desktop:~/Projects/rounds$ git push
^C
wvxvw@wvxvw-desktop:~/Projects/rounds$ git push origin master
Everything up-to-date
wvxvw@wvxvw-desktop:~/Projects/rounds$
zhoran:
Так ли это?
> Именно так, даты и вся прочая информация о версии и времени коммита сгенеренная Гитом - фикция ничего не стоящая. Она работает только при условии, что вы всегда работаете на одном кмпьютере и никогда не делаете ролбеки и т.п. В реальном мире, где над кодом рабоатет больше чем один человек, больше чем на одном компьютере, и по-настоящему иногда нужно вернуть файлы к предыдущему состянию эта система с треском рушится.
В Редмайне, насколько я помню, вики не связана с репо бай дизайн.
> плохо помните, связана. Редмайн - это отдельное убожество, но не о нем сейчас речь.
Зачем флешеру учиться генерировать RCA ключ? На то должна быть внятная инструкция.
> Флешер должен заниматься своей работой и не лезть в ИТ. Для этого ИТ нанимали на работу. Внятной инструкции в этом случае по определению быть не может, т.как эти ключи для работы не нужны. Они нужны Линусу Торвальду, зачем-то.
Пожалуйста не рассказывайте мне, с чем у меня проблемы, мне есть с чем сравнить, и как оценить.
В реальном мире, где над кодом рабоатет больше чем один человек, больше чем на одном компьютере, и по-настоящему иногда нужно вернуть файлы к предыдущему состянию эта система с треском рушится.
То, что не получается у вас, не означает, что с гитом проблема. Я уже приводил выше список проектов, которые используют гит. Довольно много людей работают в этих проектах, в разных часовых поясах, в разных локалях, а проблемы, о которых вы пишете, вероятно имеют простые решения, о которых вы сейчас не знаете.
Пожалуйста не рассказывайте мне, с чем у меня проблемы, мне есть с чем сравнить, и как оценить.
не я рассказываю с чем у вас проблемы - вы сами это делаете.
Пожалуй дискуссию на этом стоит свернуть, но я готов поучаствовать в другой более конструктивной. Для повышения конструктивности я бы предложил все ж таки составить списочек ваших проблем, и обсудить их пункт за пунктом.
Пожалуйста:
Git
- предоставляет противоречивую, или недостаточную информацию о времени когда произошли изменения.
- плохо (ощутимо хуже чем Subversion) опредлеяет разницу между файлами.
- не предоставляет никакой информации о том, в какой последовательности были сделаны изменения (взамен этому формирует ложную информацию, которую человек не делавший эти изменения не сможет однозначно интерпретировать).
- может самостоятельно сделать merge на сервере, без участия человека то есть...
- имеет ощутимо худшую систему контроля доступа (вместо того, чтобы авторизировать пользователей, авторизируются компьютеры, котоые могут не всегда принадлежать пользователю получившему права).
- не имеет родного веб-представления (Subversion - это сразу же и веб-сервер, который позволяет просматривать содержимое репозитори через интернет, этого нет в Git).
- документация на уровне ниже плинтуса. Она не понятна никому. Почему-то люди работающие на коммерческих платформах склонны думать, что она должна быть понятнее "линуксоидам". В реальности она одинаково не понятна никому, потому что названия АПИ выдуманы в горячечном бреду и на столько не отражают то, что програма на самом деле делает, что иногда складывается впечатление, что это просто плохая "практическая шутка", а не серьезный проект.
- АПИ просто плохо организованы, есть очень много дублирующих функций, либо функций делающих одно и то же в определенной ситуации, в то время как для того, чтобы сделать примитивные вещи приходится зачастую писать длинные конструкции.
- требует углубленного изучения для того, чтобы случайно не навредить. Т.е. типичный пользователь будет вынужден пройти курс, или самостоятельно потратить много времени на изучение. Попытки "интуитивно" воспользоваться, как правило заканчиваются очень плохо, не только для неопытного пользователя, но и для остальных. Предыдущий опыт использования похожих инструментов скорее навредит начинающему, чем сделает использование проще.
Как-то хаотично получается. Эдак мы ни с чем не разберемся, да и ветку текущую с голосованием захламим. Полагаю, будет всем лучше, если мы откроем новую тему и перенесем обсуждение туда. Я ее открыл тут (http://www.flasher.ru/forum/showthread.php?t=149102)
Dukobpa3
19.01.2011, 16:29
Dukobpa3, про туалетный лексикон тему не читали?
Попандос:)) Ну а как еще это назвать? Самый что ни есть холивар...... НИ к чему в итоге не приведет, вон адепты ГИТа уже темы расплодили, дабы доказать кому-то что-то.... Несерьезно это.
Ну пока все доказательства можно свести к одной фразе: "это не баг – это фича".
Dukobpa3
19.01.2011, 16:43
Ну и я о том же
Хотя я почти уверен, что ни для какой VCS системы гуй полностью не заменит консоли.
Черепашка для svn меня вполне устраивает. Не помню когда последний раз использовал консоль. Разве что через putty на Linux сервере для up.
Ну, устраивает/не устраивает - вопрос субъективный, заменит полностью/не заменит - объективный. К тому же черепашка - это только гуй клиент, а есть же еще такой зверь как консольный svnadmin.
P.S. Вообще-то хуже/лучше тоже вопрос субъективный )
К автору опроса: пожалуйста добавьте опций.
Опрос уже начат, поэтому, на сколько я понимаю, добавить опций не получится.
Потому что если я чесно признаюсь, что использую GIT, это ему поднимет репутацию, а я совсем этого не хочу.
Проголосуйте честно :). Исходя из существующих трёх страниц обсуждения, Ваша мнение вполне понятно.
Кстати... Мозила используют Mercurial (сегодня понадобились исходники Феника, и вот они: http://hg.mozilla.org/mozilla-central ) :)
Кстати... Мозила используют Mercurial (сегодня понадобились исходники Феника, и вот они: http://hg.mozilla.org/mozilla-central ) :)
Мыши плакали и кололись, но продолжали жевать кактус..
Но самом деле в DCVS что-то есть.. идея лёгких коммитов и псевдонезависимости прикольная.. но я подожду пока всё утрясётся.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.