Mercurial / Hg SubRepos

I’m still trying to catch up on stuff following Develop. I’ve decided to write a post about my experience(s) switching my work over to SubRepos.

I am unaware of the “reason” why they’re considered “bad.” Perhaps it’s a Unix thing? Maybe they don’t work as well as people feel that they should?

Whatever

I have a (secret) project called “nite-nite/” in which I use and develop some public-domain headers. I want this public-domain stuff to be … well … public-domain and visible to all. Putting these into a Sub-Repository seemed appropriate, so I started by setting up a separate repository on BitBucket. Following the basic usage I cloned this into my existing working copy and set it up as directed;

C:\Users\peter\Desktop\nite-nite>hg clone ssh://hg@bitbucket.org/g-pechorin/pal-public-domain
C:\Users\peter\Desktop\nite-nite>echo pal-public-domain = pal-public-domain > .hgsub
C:\Users\peter\Desktop\nite-nite>hg add .hgsub

So far so good right? Well … not so much. The push command won’t work right with the setup we/I just used.

The fix is simple, the file .hgsub looks like this …

pal-public-domain = pal-public-domain

… and it needs to look like this …

pal-public-domain = ssh://hg@bitbucket.org/g-pechorin/pal-public-domain

So commit/amend the previous commit and push

C:\Users\peter\Desktop\nite-nite>hg commit -m "added public domain stuff"
C:\Users\peter\Desktop\nite-nite>hg push

I’m reasonably happy with this. As a bonus, I applied it to my blog and the embedded Unity project can be embedded as the source rather than a binary. Great, now I’ll get on with the actual work of moving those headers into the public-domain project.

comments powered by Disqus
Peter LaValle avatar
Peter LaValle
Any links probably include affiliate ids for that sweet sweet kickback - and some programs require that I tell you. The contents of this blog are likely unrelated - as they include games, paints, and build tools.