title: What is an effective project setup for cloning rocket-chip if you want to develop your own cores?
body: <p>We are developing our own RISC-V core, and want to insert it into rocket-chip, to replace the rocket core.  However, this brings up project level organization issues because rocket-chip keeps evolving, and we want to cherry pick updates from particular submodules when we're ready for them.  To make life as easy as possible we would like to simply clone the rocket-chip repo and then make our own branch to develop within.  Then we push changes to our own remote repo, but still periodically pull changes from the original Berkeley repo. </p>
  
  <p>However, we have been encountering issues with submodules.  Many of the rocket-chip submodules need to be modified during development, and git is difficult to use when we set up a different remote to push to, but still try to pull from the same original source repo for submodules.  The submodules approach seems prone to breaking in non-obvious ways, and slows our workflow.  See <a href="https://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/" rel="nofollow">https://codingkilledthecat.wordpress.com/2012/04/28/why-your-company-shouldnt-use-git-submodules/</a>.  The three or more levels of nesting, with one remote for pushes and a different remote for periodic pulls exacerbates the issues.
     Are there any more effective ways to set things up?  Has anyone tried subtrees instead?  Or some other arrangement?</p>