<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Jun 3, 2016 at 1:18 AM, Renato Golin 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">    The issues that were raised:<br>
<br>
 * Co-dependent patches already break buildbots, but the sequential ID<br>
helps us identify and ignore. They will continue to break, even if we<br>
use git sub-modules, so that doesn't change much, but it will be<br>
harder to spot the issue. Server side hooks may help, as well as<br>
sub-modules.<br></blockquote><div><br></div><div>So as I understand it, there will be a master repository with it's own commit history. </div><div>Each commit in this repo should be automatically generated as a consistent snapshot of all sub-projects after they have passed build-bot smoke tests.</div><div><br></div><div>No matter how this master repo is maintained, I'm fairly certain we can make sure that this doesn't become an issue in practice.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
   - won't replace SVN's monotonic IDs, but do we *really* need them?<br>
 Sub-modules have a bad fame, I gather, but people in the thread<br>
reported success on using it to build validation and release<br>
infrastructure as well as doing bisects, checking out code, etc. We<br>
probably need some documentation on how to do these things, as well as<br>
some scripts to help people work out the dependencies (or use them).<br>
<br></blockquote><div>This master repo could replicate svn's ID's. I mean if the commits are created by a bot / script, each commit message could automatically include `git rev-list --count`+1.</div><div><br></div><div>Note however that each subproject might have more than one commit in their history between the commits in the master repo.</div><div><br></div><div>For example;</div><div>write a new feature as a series of patches against both llvm & clang</div><div>open a pull request</div><div>somebody pushes some "approval" button (in Phabricator?)</div><div>both patch series are rebased onto llvm & clang's TOT</div><div>a single commit is created in the master repo, capturing how the llvm & clang submodules jumped from the commit before my patches, to the last commit in each series.</div><div><br></div></div></div></div>