Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Recommended way to coordinate versions of multiple dependent mercurial repositories?

Well, after many hours of reading and trial and error, it has finally hit me. Mercurial doesn't really want to do SubRepos...at least not with TortoiseHg and Bitbucket. If I am mistaken, and you don't want a down vote for a rude response similar to "of course it works, didn't you read the official docs", then please provide a simple example of how to do so via TortoiseHg latest that will successfully push to Bitbucket. Maybe a open source project that utilizes mercurial and bitbucket and subrepos?

All that said, if we keep our class libraries in seperate repos, and the recommended approach is to not use subrepos ("as a last resort"), what is the recommended way to capture a version for all dependent mercurial repos whereby i can quickly jump all dependency repos to the correct version for bug fixes and the like.

I suspect I would use Tags to tag a version. So, is the recommended way to manually go to all libraries and tag each repo with the common version tag and then revert back to that tag for all assemblies, manually?

Please refrain from all the of the technical jargon about the complexities of workflow management. There is a ton of great reading regarding this on SO. I am hoping for a simple single main exe project with a few DLL class libraries.

like image 913
faldeland Avatar asked Dec 18 '12 13:12

faldeland


1 Answers

Thanks to @SteveKaye, I have a working solution. When using TortoiseHg to "Add a subrepository", TortoiseHg was formatting the .hgsub file like this

subrepo = subrepo

instead of like his example

subrepo = ../subrepo

If someone would like to comment why the relative "../" is required, that would be great. My directory structure is the following:

MainRepo/
         .hgsub
         SubRepo/
         SubRepo2/

if "../SubRepo" is relative to .hgsub, wouldn't the ../ go up one directory and then look for the folder called SubRepo? Oh well, I can conform :) or be corrected if ../

Having Steve's example helped me to see what was off.

like image 65
faldeland Avatar answered Oct 13 '22 11:10

faldeland