5 ms·
>Git does not do this. Because git does not have this concept of named branches. It doesn't pre-bake the information in the commit, because it's entirely usele
by justinlaster 10y ago
>Git does not do this. Because git does not have this concept of named branches.
It doesn't pre-bake the information in the commit, because it's entirely useless information to bake into a commit; and even in the case of Mercurial can paint the wrong picture about the nature of a commit given branches that it's on.
>This gives much more possible workflows in case of Mercurial.
That is the exact opposite of what it gives you. I'm not even sure how you possibly arrived at that conclusion.
>Mercurial contains vastly more querying capabilities in the form of revsets.
Git doesn't need a query language, because you can literally do everything revsets will give you with git log and then maybe some very elementary bash script knowledge. You are literally arguing that Mercurial having its own arbitrary DSL is somehow better than git being able to seamlessly use popular tooling with conventional command line syntax; which seems to be at odds with the whole "mercurial is easier to use." I take extreme issue with your claim that Mercurial has "vastly" more querying capabilities and then you not even give one measly example.
- babyrainbow 10y ago>because it's entirely useless information to bake into a commit; I have found it very useful in untangling a complex history. You might not see the value in it becuase git does not care to maintain a truthful history, but promotes building a "clean" history. It makes sense to do that if you are maintaing somethign like linux kernal. But for smaller projects, maintaining a truthful history is much more valuable. So I would say that it is extremely valuable information in the context of Mercurial. And there are other version control systems that follow similar model. Take a look at the '3.3 Branches' heading in another fantastic version control system called 'Fossil' here [1]. >That is the exact opposite of what it gives you. I'm not even sure how you possibly arrived at that conclusion. Well, Mercurial supports git's branching model and a lot of others. I am not sure how that is not clear. >Git doesn't need a query language... Of course. It is not meant to be used by mere mortals.. >because you can literally do everything revsets will give you with git log ... Are you seriously saying that using command line flags is more powerful and easier than using a query language that lets you use arbitrarily expressions to query a data set? > I take extreme issue with your claim that Mercurial has "vastly" more querying capabilities and then you not even give one measly example. Checkout the link I mentioned in my earlier comment. This is the manual page for revsets [2]. Please take a look. [1] http://www.fossil-scm.org/fossil/doc/trunk:2012-01-01/www/fossil-v-git.wiki http://www.fossil-scm.org/fossil/doc/trunk:2012-01-01/www/fo... [2] https://www.mercurial-scm.org/repo/hg/help/revsets https://www.mercurial-scm.org/repo/hg/help/revsets
- justinlaster 10y ago>But for smaller projects, maintaining a truthful history is much more valuable. Elaborate. >Mercurial supports git's branching model and a lot of others. Except, it doesn't completely. >Are you seriously saying that using command line flags is more powerful and easier than using a query language that lets you use arbitrarily expressions to query a data set? Yes, because command line flags are ubiquitous in nearly every single tool, versus an arbitrary DSL that has no convention behind it, or can be easily parsed by other tools in the same ecosystem. > Please take a look. You seem to be under the impression that I have not or do not use Mercurial. You would be mistaken. Both of those pages do not lend support to your claim that the ability to "query" (with or without a DSL) the history graph is somehow superior in Mercurial. They merely document the feature, but do not draw any meaningful comparisons highlighting what it can do that git log or even git rev-list (which git log uses) can't.
- babyrainbow 10y ago> Elaborate For example, to answer questions like "What feature was this commit part of, originally". "How and where did the merges happened?". To answer these questions months after the merges happened, even after you did't think that you would need to answer these questions, something like the workflows mercurial is essential. >Except, it doesn't completely. Elaborate? >Yes, because command line flags are ubiquitous in nearly every single tool Ok. But that does not mean that it is powerful enough and can be a replacement for or better than a proper query laguage.. > arbitrary DSL that has no convention behind it What convention? I am not getting you. >can be easily parsed by other tools in the same ecosystem. Parse what exactly? >Both of those pages do not lend support to your claim that the ability to "query" (with or without a DSL) the history graph is somehow superior in Mercurial. They merely document the feature, but do not draw any meaningful comparisons highlighting what it can do that git log or even git rev-list (which git log uses) can't. Oh it does support it plenty. Take a look at the vocabulary supported by revsets in form of intuitive and easy to remember predicates. I don't think you are really impartial if you are not convinced by it.
- justinlaster 10y ago