<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jun 30, 2020, at 12:59 PM, Stella Laurenzo <<a href="mailto:stellaraccident@gmail.com" class="">stellaraccident@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><blockquote class="gmail_quote" style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><br class="">I’m contributing to an external project based on MLIR (which should become public soon). That project is using the LLVM monorepo as a git submodule, allowing us to update it and track at project-specific times. It seems to work well.<br class=""></blockquote><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br class=""></div><div style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">The only problem I've had with that approach (other than the well-known usability issues of git submodules in general) is when you end up with more complicated dependency structures that bottom out on LLVM. In these diamond scenarios, it is really easy to end up with a ton of LLVM repo clones on your workstation. In general, though, I do prefer the simplicity of clone, submodule init/update and build.</div></div></blockquote></div><br class=""><div class="">Sure - no doubt. I’m not a fan of submodules either in practice, but having one that you manage seems to be working ok. It is just a balance between all the other suboptimal answers to this problem.</div><div class=""><br class=""></div><div class="">-Chris</div></body></html>