On 2 February 2014 09:30, Gennadiy Rozental
Hi,
Trying to start using modular boost (and git for that matter). I have several questions about this. These are in no particular order:
It's best to ask unrelated questions in separate mails, and not to combine so many questions in a single mail. It makes it easier to track what has and hasn't been answered, and makes it less work for someone to answer. It will also be easier to find answers in the archives.
1. Why does ./b2 headers on windows creates hardlink for each file instead of directories? The process takes forever.
That's a question for the build list.
2. What the story about cmake based build? What state is it in? Can I try it now? How? Can I help with anything to push this further? I got a bit of experience with cmake since last time I see n this discussed.
If you're lucky a cmake person might read this, but there would be more chance if you sent an email with 'cmake' in the title.
5. What the status of testing of the new tree? How is it setup? Where can I read it? Specifically I am interested in what being tested against what.
It's pretty much as it was before. But with 'develop' and 'master' instead of 'trunk' and 'branches/release'.
4. First command to switch to develop branch produces warning(?)
...\modular-boost\libs\test>git checkout develop Previous HEAD position was 954d3ab... Thread: merge [81791]-tools dir missing
"tools dir missing" is the latest commit on the master branch, not a warning.
5. After I switched to development branch headers directory still "points to" master branch files. Actually I am not sure what it points to now since master files are nowhere anymore. How should I switch headers?
It should happen automatically when you build, but won't if the inclusion of headers is obscured by macros (i.e. #include MACRO). You can run "b2 headers" again. If we were using soft links we wouldn't have this problem, I thought there was consensus to do that, but no one seems to be doing it.
6. What the corresponding action with git, which does what svn up from root of tree did before? What I am after is comamnd(s) which updates other libs, but keep my lib as is (maybe merge changes from other developers). If "git submodule update" is one of these commands, why does it takes forever on fresh just cloned boost tree?
You can configure git to leave your module alone when updating, see the 'gitmodules' man page. Something like: git config submodule.test.update none I haven't tested that, so it might be wrong. I'm finding it easy enough to check out the branch I want every time. 'git submodule update' takes a long time as a fresh tree because it has to clone over a 100 modules.
7. How do I run the test which will check how my changes affect other libraries (their master branch at least). Should I just run the test from root in my local copy? How do I test against develop branch of other libs and develop branch of other libs against me?
Let the automated testing do it for you? If I wanted to do this locally, I'd just use a separate clone of master and develop. I think you can use 'git clone --recursive -b develop url' to get a develop copy.
8. Dependency specification. This actually a big question, which can be split into several: 8.1 Is there place where I can see "released versions" for particular library/submodule?
Tags.
8.2. Is there way to tell which other boost submodules I depend on?
Bcp.
8.3 Can I specify specific release version I want to depend on (per submodule)?
You can do this manually, or with a bit of scripting.
8.4 Can I somehow only checkout/pull the submodules I depend on?
By combing the last two answers.
8.5 Can I check which submodules depend on me and checkout only those?
I think you'll need to work that out for yourself.
8.6 Is there place where I can see which submodule version constitute specific boost release?
Tags again.
9. One of the wiki pages refers to "git submodule summary" command. I do not understand what this command supposed to do.
I can't really answer this without a link to the page.
10. How do I create private branch? IOW branch which is not publicized on github, but one I can share with the team?
You need to have a private repo somewhere. This costs money with github, but you can create one for free with bitbucket. I think there are other providers which offer them as well (I saw an advert somewhere, but I forget the details).
11. This page is not clear to me: https://svn.boost.org/trac/boost/wiki/PostCvtMergePoint
What do I need to do to merge my development branch into master, given that it is significantly differ now (at the time of svn->git conversion)?
Creating a merge base for test isn't really practical as the two branches are completely different. You'll just need to manage the branches manually until you're reading to release the new version. Either that, or you could create a new branch for the new version, and make develop identical to master.