<div dir="ltr">With submodules, the current hash of each submodule is recorded in each master commit. If you check out a different master repository commit then you run 'git submodule update' and it checks out the corresponding commit in each submodule. I'm not sure why this isn't automatic with the master repo commit checkout, but in any case it's not difficult.<div><br></div><div>So when you do a git bisect, you just need to make sure there is a 'git submodule update' at the start of your bisect script.</div><div><br></div><div>It will be fun to get all the correct hashes recorded in the master repo during initial import. But not all that difficult: check out next svn revision; check and push in any submodules with changes in that revision; then commit the master repo for that revision.</div><div> </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 1, 2016 at 2:06 AM, Robinson, Paul via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
<br>
> -----Original Message-----<br>
> From: <a href="mailto:mehdi.amini@apple.com">mehdi.amini@apple.com</a> [mailto:<a href="mailto:mehdi.amini@apple.com">mehdi.amini@apple.com</a>]<br>
> Sent: Tuesday, May 31, 2016 3:54 PM<br>
> To: Robinson, Paul<br>
> Cc: Bill Kelly; Clang Dev; LLDB Dev; <a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
> Subject: Re: [llvm-dev] GitHub anyone?<br>
><br>
><br>
> > On May 31, 2016, at 3:38 PM, Robinson, Paul <<a href="mailto:paul.robinson@sony.com">paul.robinson@sony.com</a>><br>
> wrote:<br>
> ><br>
> ><br>
> ><br>
> >> -----Original Message-----<br>
> >> From: llvm-dev [mailto:<a href="mailto:llvm-dev-bounces@lists.llvm.org">llvm-dev-bounces@lists.llvm.org</a>] On Behalf Of<br>
> Mehdi<br>
> >> Amini via llvm-dev<br>
> >> Sent: Tuesday, May 31, 2016 2:38 PM<br>
> >> To: Bill Kelly<br>
> >> Cc: LLVM Dev; Clang Dev; LLDB Dev<br>
> >> Subject: Re: [llvm-dev] GitHub anyone?<br>
> >><br>
> >><br>
> >>> On May 31, 2016, at 2:01 PM, Bill Kelly via llvm-dev <llvm-<br>
> >> <a href="mailto:dev@lists.llvm.org">dev@lists.llvm.org</a>> wrote:<br>
> >>><br>
> >>> Chris Lattner via llvm-dev wrote:<br>
> >>>> Personally, I’m hugely in favor of moving llvm’s source hosting to<br>
> >> github at<br>
> >>>> some point, despite the fact that I continue to dislike git as a tool<br>
> >> and<br>
> >>>> consider monotonicly increasing version numbers to be hugely<br>
> >> beneficial.<br>
> >>><br>
> >>> For whatever it's worth, our projects define a `buildnum` git alias:<br>
> >>><br>
> >>> alias.buildnum=!sh -c "git rev-list --all | wc -l"<br>
> ><br>
> > Or the cheaper "git rev-list --count --all" if your git is new enough.<br>
> > We do something like this as well.<br>
> ><br>
> >>><br>
> >>> So from the shell:<br>
> >>><br>
> >>> $ git buildnum<br>
> >>> 17475<br>
> >>><br>
> >>> This number increases monotonically per commit.<br>
> >><br>
> >> It does not work with branches though (we're not really planning to<br>
> have<br>
> >> branches I believe),<br>
> ><br>
> > You can get a per-branch unique number with this tactic. On our local<br>
> > branches we use "rev-list origin/master.." which is the number of<br>
> commits<br>
> > since branching from master, and that's enough for our local purposes.<br>
> ><br>
> >> but more importantly it won't handle cross-repository<br>
> >> versioning (how do you relate the number this command prints in the<br>
> llvm<br>
> >> repo to the number it'll print in the clang repo?), which I believe is<br>
> >> something important considering our setup.<br>
> ><br>
> > Is it really that important? Or are we just used to the convenience?<br>
><br>
> I don't know how important it is. How would you bisect without this<br>
> "convenience" for instance?<br>
> (There is nothing like "push date" in git)<br>
<br>
</div></div>I know that on a single branch, "git bisect" deals with that for you.<br>
I've seen the talk about submodules but I have no clue how that works<br>
or whether git-bisect can operate cleanly in that situation.<br>
--paulr<br>
<div class="HOEnZb"><div class="h5"><br>
><br>
> --<br>
> Mehdi<br>
><br>
><br>
> > If the Clang build number is a tuple (cfe-number, llvm-number) instead<br>
> > of a single number, how horrible is that really? If you consider what<br>
> > an out-of-tree front end probably does, it's exactly the same thing.<br>
> ><br>
> > (I admit that locally we mush cfe+llvm into a single branch and do the<br>
> > rev-list count to get a single number. But that's more for our own<br>
> > convenience than anything else.)<br>
> > --paulr<br>
> ><br>
> >><br>
> >> --<br>
> >> Mehdi<br>
> >><br>
> >><br>
> >><br>
> >>><br>
> >>><br>
> >>> Our build scripts make this number available in various #define forms.<br>
> >>><br>
> >>> (We use a little extra scripting logic to also determine whether there<br>
> >>> are currently any unmerged or uncommitted changes, and add an<br>
> annotation<br>
> >>> to the program version in that case, e.g. "9.3.17475 [unmerged]")<br>
> >>><br>
> >>><br>
> >>> It's all stupidly simple, but seems to work well enough for us.<br>
> >>><br>
> >>><br>
> >>><br>
> >>> Regards,<br>
> >>><br>
> >>> Bill<br>
> >>><br>
> >>> _______________________________________________<br>
> >>> LLVM Developers mailing list<br>
> >>> <a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
> >>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
> >><br>
> >> _______________________________________________<br>
> >> LLVM Developers mailing list<br>
> >> <a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
> >> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</div></div></blockquote></div><br></div>