Гг. Вот такие люди и говорят «я работал с Mercurial», хотя на самом деле они знают о hg чуть более, чем нифига. mq - это инкрементальная итеративная разработка, когда задача разбивается на несколько этапов, и всегда есть возможность быстро и удобно вернуться к любому этапу и поправить его. Каждый из этапов становится отдельным патчем. Само собой, быстрое создание нового патча, объединение существующих и все возможности Mercurial. И да, rebase тоже есть, но используется редко.
Как сказал Мортон в свое время: 'The key philosophical concept is that your primary output is patches. Not ".c" files, not ".h" files. But patches. So patches are the first-class object here.'.
А этот ваш git - просто распиаренное средство передачи патчей.
А mq, выходит, позволяет изолированно друг от друга схоронять патчи с разными фичами внутри одной бранчи? И как это дело обновлять потом? Прошлый век какой-то
Ты просто не врубился. Вот такие люди и пополняют ряды гит-хомя^H^H^H^Hфанбоев %)
>Вот такие люди и пополняют ряды гит-хомя^H^H^H^Hфанбоев %)
Я, вот, тоже [ещё?] не проникся [т.е. не пробовал] mq, но всё равно не вижу преимуществ у Git'а :) А на Mercurial подсел исторически, когда Git не умел работать с репозиториями на sshfs/ftpfs.
> Я, вот, тоже [ещё?] не проникся [т.е. не пробовал] mq
А я уже давно не представляю себе работы без mq или подобного средства. Возможность по-быстрому вернуться назад и что-то поправить - это киллерфича. Поэтому, когда я вижу очередное признание «я люблю git/я ушел с hg на git», и в нем никак не упоминаются mq и stgit/guilt/topgit/git-subtree/whatever, я понимаю, что вижу высер хомячка :)
Почему должна быть? git reset --hard всего лишь переключает HEAD на нужный коммит, все последующие остаются, хотя ссылок на них уже нет. Клонироваться они не должны, но место занимать будут. Выброшенные коммиты можно восстановить, если помнишь хэш прошлого HEAD. А git gc нужен, чтобы удалить объекты, на которые нет ссылок (то есть, вернуть убитые коммиты будет уже нельзя).
Почитайте лучше Git magic, там о всем этом написано.
Который из ты считаешь некостыльным? В гите тоже несколько способов.
Для hg нативным является hg branch, всё остальное - костыли. Для git нативный git branch, и других способов создания веток нет (все остальное сводится к git branch).
Гг. Вот такие люди и говорят «я работал с Mercurial», хотя на самом деле они знают о hg чуть более, чем нифига. mq - это инкрементальная итеративная разработка, когда задача разбивается на несколько этапов, и всегда есть возможность быстро и удобно вернуться к любому этапу и поправить его. Каждый из этапов становится отдельным патчем. Само собой, быстрое создание нового патча, объединение существующих и все возможности Mercurial.
Чем оно лучше git stash?
А этот ваш git - просто распиаренное средство передачи патчей.
Чем он не VCS? Почему вы считаете, что он хуже hg?
Посмотрел man и сразу углядел стандартный гитовкий косяк — взаимнообратные операции называются не взаимнообратно. Для stash взаимнообратны save/pop, а не push/pop. Аналогично, для git взаимнообратны push/fetch, а не push/pull ...
Студент, ты дислектик штоле? Я только что объяснил, что такое mq. Теперь ты попробуй объяснить, чем stash лучше.
А этот ваш git - просто распиаренное средство передачи патчей.
Чем он не VCS?
Git - это ядро DVCS, используемое обычно в режиме передатчика патчей. Так понятно?
Почему вы считаете, что он хуже hg?
Потому что его UI сделан по деццкому принципу «я ненавижу SVN и буду делать всё не так, как SVN». Потому что это не настоящая DVCS, ориентированная на конечного пользователя, а ядро DVCS (кто-нибудь вообще читал git@gelato в те времена, когда гитоюзерами были старые юниксоиды и понятия plumbing и porcelain были в ходу?). И главное, потому что гитояюзеры - орава хомячков, которые считают, что, освоив git pull, они уже поняли, как нужно применять DVCS. Git плох не столько сам по себе, сколько потому, что создает у пользователя иллюзии.
Посмотрел man и сразу углядел стандартный гитовкий косяк
Это стандартный комплекс фанов хг. Считают, что система команд меркуриала не нуждается в чтении манов. Обычно, такие аргументы идут в ход, когда по функционалу крыть нечем и остается: «а у меня шарик — зеленый».
> Это стандартный комплекс фанов хг. Считают, что система команд меркуриала не нуждается в чтении манов.
Комплекс насчет манов - у фанатов git, потому что они не могут сделать вообще ничего без чтения манов %) А Mercurial просто расширил всем привычный набор команд SVN специфичными DVCS-вещами. А mq - это практически quilt.
А Mercurial просто расширил всем привычный набор команд SVN
Угу. Только не говори, что любой может просто вот так сесть и начать работать как с свн. Команды это дело привычки, дело десятое. Проблема в том, что для гита надо по особому руки выворачивать и наслаждаться болью.
> Только не говори, что любой может просто вот так сесть и начать работать как с свн.
Мне хватило clone, честно. И дело даже не в том, можно ли совсем без манов, или придется что-то почитать - я согласен учиться чему-то новому, если оно реально необходимо, но интерфейс git специально сделан непохожим на SVN из-за тараканов в голове Линуса.