I agree with Tony. Sub-repos (or submodules as they are called in git) can be quite painful. However, I'm not completely opposed to them.
Based on my limited research on the topic, there seems to be two popular alternatives. One is to use the repo tool that Tony already mentioned. I only have limited experience using repo. The good thing is that it is used by Android, which means it'll be maintained for the foreseeable future. On the other hand, it adds another step when checking out gem5 and seems to make some aspects of branch management a bit harder. The other option is to use subtree merging in git. This basically assimilates a repository as a subdirectory in an existing repository while maintaining history. This obviously doesn't solve the repository size problem, but it makes it easier to track what's happening in the subrepos and merge new changes. Another benefit is that users won't need a separate tools or commands to checkout gem5. Atlassian has a blog entry [1] describing this strategy. Having played a bit with subtrees, I think that's my preferred option at the moment. //Andreas [1] http://blogs.atlassian.com/2013/05/alternatives-to-git-submodule-git-subtree/ On 03/03/2017 22:59, Gutierrez, Anthony wrote:
As an aside, I would prefer to avoid sub repos if at all possible. I am not sure how sub-repos work in Git, but if it is anything like HG they are a pain IMO. -----Original Message----- From: gem5-dev [mailto:[email protected]] On Behalf Of Gutierrez, Anthony Sent: Friday, March 03, 2017 2:57 PM To: gem5 Developer List <[email protected]> Subject: Re: [gem5-dev] Best method for adding code to ext/ Another possibility is that we could use the Git Repo tool from Google. If any of these external libs have corresponding Git repos out there somewhere, it could automatically pull those (even at specific revs if need be), or we could mirror them in separate Git repos on googlesource. -Tony -----Original Message----- From: gem5-dev [mailto:[email protected]] On Behalf Of Jason Lowe-Power Sent: Friday, March 03, 2017 11:36 AM To: gem5 Developer List <[email protected]> Subject: [gem5-dev] Best method for adding code to ext/ Hi all, There are a couple of patches in review that add a large chunk of code from other repositories to gem5 in ext/. Andreas S. has a patch that adds PyBind11 and Matthias is updating DRAMPower. And we're thinking about including SystemC in a similar way. Is there a better way for us to include these other projects in gem5's source tree? For instance, we could use subrepos. What is the community's thoughts on this? A few things I don't like about including the code in gem5: 1) It increases the amount of code in our repository 2) It is hard to track updates to these systems 3) The code cannot be GPL. Good thing about including the code in gem5: 1) Updates to external code won't break our system 2) It's easy to build gem5 without having to download other software Any other opinions or options for this? Thanks, Jason _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. _______________________________________________ gem5-dev mailing list [email protected] http://m5sim.org/mailman/listinfo/gem5-dev
