3 ms·
External projects that use fbshipit each live in a subdirectory of an internal project. We don't use branches or merge commits, and commits are exported in orde
by spicyj 9y ago
External projects that use fbshipit each live in a subdirectory of an internal project. We don't use branches or merge commits, and commits are exported in order.
- Cogito 9y agoHow does the other side work? Do third party changes get brought into the external project, and how do they get brought back into the internal project? For example, would a third party contributor need to rebase their work when pushing in order to make history linear? Do you ever get situations where different internal projects are trying to use fbshipit on the same external project, at the same time?
- spicyj 9y ago> Do third party changes get brought into the external project, and how do they get brought back into the internal project? There's a feature of fbshipit called "importit" that allows for importing an external pull request from GitHub and reversing the path mapping in order to create an internal commit. That's how we land all changes on projects that use fbshipit. The internal repo is the source of truth and an employee always needs to land that commit internally, then it gets synced back out automatically and the PR closed. > For example, would a third party contributor need to rebase their work when pushing in order to make history linear? We typically end up squashing each PR into one commit. > Do you ever get situations where different internal projects are trying to use fbshipit on the same external project, at the same time? Each external project lives in only one internal repo and that is the source of truth. Occasionally we have scripts to automatically copy files between internal repos when pieces need to be shared but we try to avoid it. We prefer merging repos together and making larger single repos. Most of our developers work in one of two large repos – one for all our web products, and one for all our backend services and mobile apps.
- Cogito 9y agoThat's really cool, thanks for taking the time to go through the details. It's always interesting to see how other people manage projects and collaboration.