komar
30.06.2011 12:28 pavilion
Написал статью «Git sucks, or why do I use darcs instead»:
http://komar.bitcheese.net/en/tech/git_s...
Буду в холиварах на нее ссылаться.
Recommended by:
@Minoru
чем interactive mode в darcs отличается от такого же в git?
чем не нраа git revert?
В первую очередь тем, что я не смог осилить последний.
"No unicode support" ШТО БЛЯТЬ?
ололо, а чего там осиливать-то?
Там написано.
"Sharing you code" а чем webdav в гите не ок?
Он ОК, и костыль на питоне тоже ОК, но писал я как раз о том, что без этого можно обойтись.
> git diff <commit>..<commit>^ <file> | git apply -
Оно умеет <file>?
Энивей, я написал хуйню из черновика трехлетней давности, спасибо.
нет, конечно, он коммиты целиком откатывает, дабы потом история не превратилась в тыкву.
Для расшаривания репозитория есть git-daemon. С его помощью и полноценный центральный сервер поднять можно, это одним параметром делается.
> If you really need to use branches, use git.
Я пока что про darcs знаю очень мало, но неужели там и вправду нет веток?! А как вести разработку нескольких фич параллельно?
Я знаю, как можно. Я веду речь о том, что можно справиться и без этого.
Нет веток.
Разработку нескольких фитч — либо разными рекордами (они немного заменяют ветки, см. видео), либо веловетками в виде копии репозитария. Потом все мержится.
делать несколько рабочих копий:
project-master, project-feature1, project-feature2, project-feature-2011-06-25, project-2011-06-25, ...
зато алдскульненько, как раньше, до cvs ещо
O_O
O_O
Типа того.
У меня, вон, валяются:
http://komar.bitcheese.net/darcs/textile...
http://komar.bitcheese.net/darcs/textile...
http://komar.bitcheese.net/darcs/textile...
Правда, там не фитчи, а совсем несовместимые друг с другом ветки, две из которых похоронены и оставлены на память.
блядь, я же пошутил. это же пиздец нахуй, зачем тогда vcs, если всё по папочкам раскладывать???
If you really need to use branches, use git.
Мне пока really не надо. И huge repos пока не надо.
http://wiki.darcs.net/BestPractices#when...
Хуйня какая-то.
А то.
буууу. Не осилил меркурил
Съеби отсюда, петоноблядь.
ну давай, чем гит лучше меркурила?
Шел бы ты отсюда, петушок.
а еще аргументы есть?
ПЕТОООН.
Какие аргументы тебе еще нужны?
какой блядь питон? там 70% на сях. А остальное на кавайном питоне, да...
Да хоть на перле. Раз зараза проникла, то даже запускать нельзя — не то, что контроль версий ей поручать.
к тому же питон офигенен. Да и вообще, какая разница, на чем написано?
Такая, что софт на питоне тормозит, глючит и показывает мне бектрейс каждый второй раз.
в кривых руках и палка глючит.
КРИВЫЕ РУКИ ПЕТОН НЕВИНОВАТ
с тобой даже не интересно по этому поводу разговаривать. Покажи мне хоть один бектрейс с меркурила, а я пока поду посплю. бб
Не могу, у меня его нету. Могу загуглить.
думаешь я не смогу сделать что бы даркс крешанулся? а вообще попробуй загуглить, как меркурил в последней версии выдает трейбеки.
Тебе чи заняться нехуя? Тут людей от самого слова «петон» блевать тянет, уже весь жуйк нопетоном засрали и сюда срать начинают, а ты, блять, изменения с его помощью хранить предлагаешь.
вообще, люди не знают на чем он написан. Вообще пофигу им. Работает хорошо — и отлично.
Все, что написано на петоне, как правило работает хуево.
заебато работает!
oh god
кстате, а статья вообще на каком языке?
На хуевом английском.
не надо себе льстить, она на русском
просто слова английские
Так и есть.
Да ты редкостнейший долбоёб!
Обычный нопетонщик.
s/нопетонщик/долбоёб/
Давеча читал Mercurial Guide ( http://mercurial.selenic.com/guide/ ), оказалось, что в там веток тоже нет! И тоже советую велосипедизм с отдельными клонами…
Ну ок, я приврал немного — какие-то ветки таки есть, но их *нельзя* *удалить*, можно только закрыть, чтобы они в hg branches не показывались.
Facepalm, facepalm, facepalm. Git таки рулит.
ладно бы, их просто не было, а то ведь они то, что есть, выдают за великое свершение и благодать. тьху, срамота.
Подождите, я щвову не разбанил.
ты пидзанутый? у меня нормально много веток в одной репе
Там бранчами теги обозвали. ПЕТОНОЯЗЫК
и что с этими "ветками" делать?
Там нельзя влить ветку %name% в другую и удалить её к ебеням, например.
Хотя это не так часто и требуется, но вот это в гите мне нравится: иногда удобно :)
довольно часто это требуется. разумеется, если есть ветки.
блядь, там ее можно закрыть. Что значит "удалить ветку"? И смерджить тоже можно
ШТО?
Mercurial supports giving names to branches, by using the branch name property of the changeset
Зачем? Ты просто вливаешь ветку в мастер/дефолт/транк/этц и закрываешь её. Эффект тот же. Проблнмы будут только если захочешь ветку с таким же именем зопейлить
Смёржил и удалил. После этого создал другую ветку с таким же именем и работаешь так, юудто удалённой никогда и не было :)
типа того. Удалять ветки не логично, и хуевый костыль
> Удалять ветки не логично
бля, а как же чейнжсеты с ветки? Их тоже удалять? Или типа мердж один большой ченжсет? Нефиг голимые гитокостыли совать в няшный меркурил
И? Ты не поверишь, но теги там тоже есть и работает это всё ровно так как должно. Алсо, по-твоему гит и прочее не хранят в коммите информацию о том, в какой ветке его сотворили?
не хранят
если ветка смержена, то ченджсеты в новой ветке. Если не смержена, то, очевидно, их удалять
Што? Даже для меня, человека использующего меркуриал в большинстве проектов, это толсто.
ШТО? Да ты совсем с ума спрыгнул?
хуйня твоя идея. Для таких как ты придумали костыль гита, где все делается через жопу, в прочем как и во всем что сделал Линакс.
По существу что-нибудь скажешь?
А как он определяет в какой ветке находится тот или иной коммит? :3
И да, /r/ формат чейнжсета в гите.
я уже сказал. ДЕРЬМО репа с которой можно удалать то что в ней сделал.
Зачем ему это определять? К тому же коммит может находиться в бесконечном количестве веток.
Это почему?
формат чейнжсета в студию, иначе ты сможешь отмазаться от чего угодно.
общим, некоторые люди имеют концепции, например как система контроля версий должна хранить версии. А не блядь тупорылый хаос гита
Git хранит версии. Не согласен?
общим, гит — не нужет. Линус Торвальдс — криворукое мудило
Кстати, вот гитоёбам задачка:
есть два репа "repo1" и "repo2".
Нужно втянуть все коммиты из "repo2" в "repo1", уложив все файлы в папку repo1/repo2 так, будто все изменения проводились в ней.
В меркуриале это оказалось очень простой задачей :)
ты объяснишь почему VCS, имеющая возможность переписать историю (hg, кстати, тоже умеет, правда, не через удобные команды гита), говно, или будешь дальше истерично кукарекать?
Историю даже свн умеет переписывать :)
я тебе уже сказал. Если не долшо, то больше говорить не нужно. Я вообще сомневаюсь, что человек готовый отсосать и Гита что-то способен понять
В ответ на мой вопрос ты сказал, что > система контроля версий должна хранить версии
Гит умеет хранить версии. В чем проблема?
Телепатией не владею.
я уже написал, или ты настолько туп что не можешь понимать больше чем один ответ?
общим, нах. может подростешь, и поймешь
Я выше процитировал, что ты написал. В этом явно не содержится ответа на конкретный вопрос. Может, кто-нибудь другой из треда его там видит?
ИМХО, ты — тупой хуец, который ниасилил гит и только и умеет, что делать commit/push/pull в меркуриале и то через tortoisehg, а теперь фапает не него, так как больше ничего не в силах освоить :3
тебя туда же
% git cat-file -p a687814610ecf
tree 10ace4b20f12e0113d0f7dec9f27c799b1999831
parent 3255d0deb229e043bc5d7934409cb56290a490e4
author Voker57 <voker57@gmail.com> 1309168070 +0400
committer Voker57 <voker57@gmail.com> 1309168070 +0400
-debug
Правда в пукан долбит?
А теперь как посмотреть первые тысячу коммитов в ветке test за этот месяц? :)
нет, просто бугурт школоты заебал
Кстати, вчера понадобилось сделать такое в дарксе. Не нашел как, забил.
Хотя можно было, наверное, darcs mv попробовать.
Господа, почему вы все пидорасы, а щвова — д'артаньян?
не пидерася. Просто маленькие, тупые имбицылы
git log -1000 test@{01.07.2011}..master@{today}, как-то так
* test{today}
:)
В дарксе это как раз элементарно делается. Покури формат, в котором он хранит патчи и метаинформацию и скриптик на хаскеле напишется за пару минут (если всё не решится простым копированием патчей и файлов).
Ты пошутил, или тебя нахуй послать?
Гм, попробовал — с darcs mv встало.
Лучше сам нахуй пойди: пару лет назад я с ним и более суровые вещи делал, но сейчас уже полностью перешел на mercurial с git'ом и доволен до усрачки :)
По нечетным дням меркуриал юзаешь?
Да ну нахуй. Что мне, заняться больше нечем?
Тебе просто папку переименовать? Он в истории записал что папка перемещена или историю "переписал"?
По проектам, не форкнутым с гитхаба :)
Записал, что перемещена, и мне этого хватает.
А раньше их в даркс конвертировал?
А я говорил про втягивание папки из другого репа :)
Ну рад за тебя.
Раньше не форкал.
А ты ж таки прав — удалять нелогично. Даже фичу, которая внесла регрессию и потому не была смержена с основной веткой, не обязательно выбрасывать — пусть хранится, вдруг пригодится. Другое дело, что не всем хочется тащить с собой всё, что накопилось за время разработки. Мне таки больше импонирует Git.
удалять логично. я в среднем раз в три месяца такое делаю. пробую что-нибудь сделать, если зашло слишком далеко, но вижу, что неудачно, просто грохаю бранч и следа от него не остаётся
Я тоже так делаю. Но подумай — а вдруг тебе позже придётся снова вернутся к этой идее? Ну, например, разговоритесь там с кем-то, и ты захочешь показать, что вот, мол, пробовал, но вот здесь не вышло.
Учитывая, что закрытые бранчи по умолчанию в Mercurial не отображаются, всё ок.
Впрочем, эти рассуждения верны только для больших проектов, мне кажется. Для всякой мелочевки вроде курсача я таки не вижу смысла хранить *всё*.
код быстро становится неактуальным, и вероятность, что такая необходимость возникнет, крайне мала, настолько, что проще будет заново воспроизвести уже на актуальном коде
erlyvideo — большой проект или курсач?
Большой проект, настолько я понял :) Но @Shchvova реально сделал меня сомневаться.
дык вот, не надо сомневаться. удаление бранчей — реально используемая штука.
Без форкнутых кролика и явса не такой и большой :)
где там кролик и явс?
Так, стоп. Либо я туплю, либо что-то не то вспомнил, но там стриминг-контент явсом отдаётся, не?
щьто? каким явсом? там несколько протоколов: rtmp, rtsp, sip, http. явса нет совсем
Значит я с чем-то перепутал, сорь. Щас посмотрел: всё-равно среднего размера проект, не большой :)
в бóльших проектах подобных действий ещё больше будет, уверяю
Я и не спорю :)
Пожалуй, вброшу немного:
Гитобляди соснули у меркуриалобогов: http://habrahabr.ru/blogs/development_to...
Все в курсе уже.