Announcing the existence of dlang-workspace

Jesse Phillips Jesse.K.Phillips+D at gmail.com
Fri Dec 7 07:29:07 PST 2012


In response to an email Nathan wrote:

>Submodules seem to be meant for including a project you're not 
>working on, just >referencing (i.e. a library).
>
>dlang-workspace is built for contributors for D in mind, so 
>there will be a lot >of forking/branching, something submodules 
>to not handle well.
>
>I'm not experienced in this though, so tell if I'm wrong.
>
>Thanks,
>NMS

Wrong, all submodules will do is store the hash for each repo. 
This is really good because even with projects you work on you'll 
require all three (Phobos, druntime, dmd) to be in a specific 
version that is compatible with your changes. It does mean that 
by default you are unlikely to check out the latest of all three 
(since I doubt you'll be updating the repo for that.

However, consider the developer here. They are making some 
changes, then need to test a pull request, this pull request uses 
a newer version of dmd. They will then be able to commit all 
their changes including the current commit of the dependent DMD, 
checkout the new development branch with whatever version of dmd 
is needed. When testing is done they checkout their branch update 
the submodules and continue  their work updating and testing dmd 
when ready for the pull request.

It does actually make it more complicated as to get the latest it 
would be:
$ git submodule update --init
$ cd dir
$ git --rebase pull
...

But really a utility can have that: ./latest.sh


More information about the Digitalmars-d-announce mailing list