Git, the D package manager

Joseph Rushton Wakeling via Digitalmars-d digitalmars-d at puremagic.com
Mon Feb 2 13:37:13 PST 2015


On 02/02/15 15:40, Dicebot via Digitalmars-d wrote:
> Quick summary of my opinion can look like this:
>
> 1) dub is a horrible build tool
> 2) git submodules is a horrible way for dependency management
>
> First thing is something we can improve on in future and, actually, dub supports
> using rdmd as a build tool already.
>
> Second thing is an inherent issue that won't change without some fundamental
> breaking changes in how hit submodules are implemented.
>
> Because of that I am trying to push dub despite the fact I don't like lot of
> things about it personally.

Very well put.  If there are issues with dub, we can and should address them -- 
not turn to a tool that isn't actually intended to solve the problem we are 
trying to address.

> 4) Inherently coupled with specific DVCS
>
> git and GitHub are most common (and officially endorsed) ways of version control
> in D world but those are not the only one. dub registry allows to use GitHub,
> GitBucket and source tarball packages in the same project - in simple uniform
> matter. It is a 100% in-house tool that does no depend on decisions of external
> project maintainers that provides a common API for everything else to interoperate

Yup.  It would be very presumptuous to assume that just because git works well 
for the core D project, that everyone out there should use it for their projects.

By the way, talking of other VCS, I recently discovered a neat little trick for 
visualizing a complex git history in a "clean" way.  You need to install bzr, 
and the qbzr and bzr-git plugins (this might also require bzrtools).  Then, in a 
git branch, type,

     bzr qlog

... and you'll have a rather beautiful linear history of the master branch, with 
the option to expand out any individual merge that you want and review the 
commits therein.

It'll take a little longer to load a large history, because it's solving a more 
complex problem than the standard git log tools, but I've found it a rather nice 
way of simplifying the view of complex, multi-branch history.  I know some 
people have complained about the allegedly tangled mess of dmd/druntime/phobos 
commit history, and this might be a useful trick to help with that.

I'm not aware of any git history visualizer that supports this functionality, 
which is a shame, because it must be possible.


More information about the Digitalmars-d mailing list