<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jun 1, 2016 at 1:07 PM, Manuel Jacob 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">On 2016-05-31 22:45, Mehdi Amini via llvm-dev wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On May 31, 2016, at 1:31 PM, Renato Golin <<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</a>> wrote:<br>
<br>
On 31 May 2016 at 21:28, Mehdi Amini <<a href="mailto:mehdi.amini@apple.com" target="_blank">mehdi.amini@apple.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Ideally, I'd prefer the cross-repository to be handled with an extra layer, in a way similar as described in: <a href="https://gerrit-review.googlesource.com/Documentation/user-submodules.htm" rel="noreferrer" target="_blank">https://gerrit-review.googlesource.com/Documentation/user-submodules.htm</a> (somehow conceptually similar to Android manifests XML files).<br>
It would be easy to have tooling/scripts for llvm that would easily say "checkout llvm+clang+compiler-rt+libcxx+clang-extra here", or "update all llvm subproject under this root", or "checkout this specific revision for all these" (with a monotonic number for the revision).<br>
</blockquote>
<br>
At Linaro, we already have a set of scripts that do that. We're now<br>
moving to git worktree, and I think it's going to simplify our work<br>
considerably. But honestly, I'd rather not force anyone to use any set<br>
of scripts, and let people work directly with git, so I'd be more in<br>
favour of having a server-side solution, if at all possible.<br>
</blockquote>
<br>
Apparently I wasn't very clear: llvm and clang (and the others<br>
projects) would be simple decoupled, individual git repositories. You<br>
would be able to check them out however you want and commit to them<br>
individually.<br>
There would be an extra "integration repository" on top that would<br>
only provide the service that tells "r12345 is llvm:36c941c<br>
clang:eaf492b compiler-rt:6d77ea5". This repository should be managed<br>
transparently by some server-side integration.<br>
The provided scripting I was referring to would just be a convenience<br>
that is using this extra layer of metadata ("integration repository")<br>
to be able checkout the other individual repositories together at the<br>
right "rev-lock" revision.<br>
This is not on your way if you don't want to use it, but it provides<br>
this "single increase monotonic revision number across multiple<br>
repository" that is convenient for some people.<br>
<br>
Makes sense?<br>
</blockquote>
<br></div></div>
How would you ensure that two dependent changes on different repositories get the same revision number?</blockquote><div><br></div><div>That is not the case today and isn't (in my opinion) a problem we need to solve with this migration. If there's a small (1-2 revision) window in which things are broken, that's annoying but not a showstopper and not a regression.</div></div></div></div>