-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Just wanted to start a discussion about how to operate a BEP like this separate from the main spec, particularly with respect to keeping things in sync so that when you're getting ready for merging back in, merge conflicts don't arise. Because this was created with the full git history, this should be fairly easy, technically speaking.
So I'm going to propose a model. Feel free to reject or adapt, but hopefully this will be helpful nonetheless.
Initial setup
I have done some initial work that I detailed in #6. That involved:
- Pushing the current state of upstream
masterandcommon-derivativesto this repository - Reinstating the diffusion derivatives only in a
bep-016branch, that I propose treating as equivalent to your master branch. All PRs should go against that. - Rebasing the commits from [ENH] Restructuring of DWI derivatives #5 against
bep-016, so that PR can be picked back up with as little interruption as possible. (@Lestropie, please ask if you need help switching to that branch.)
Maintaining
I would suggest that you identify one maintainer to periodically (perhaps weekly) update the common-derivatives and master branches, so that changes in the main spec get reflected here, and makes any potential merge conflicts evident. To set up a new repository:
git clone git@github.com:<USER>/bids-specification.git
cd bids-specification
git remote add bids git@github.com:bids-standard/bids-specification.git
git remote add bep16 git@github.com:bids-standard/bids-bep016.git
git fetch --all
git branch --set-upstream-to=bids/master master
git checkout -t bids/common-derivativesTo update:
git fetch bids bep16
git push bep16 bids/master:master
git push bep16 bids/common-derivatives:common-derivativesAs long as the master and common-derivatives stay in sync, this should work smoothly. If things get messed up, I'm happy to help figure out what happened and get things back to a clean state.
There's nothing wrong with multiple maintainers, but assigning one person (or one person at a time) might reduce the likelihood of messes.
Contributing
Otherwise, I would recommend you treat this like a normal repository, but with PRs against the bep-016 branch.
Merging back
When this PR is in a state where you're ready for final review to merge back into the primary spec, I would recommend the maintainer do:
git fetch bids bep16
git checkout -t bep16/bep-016
git push bids bep-016This assumes you don't have a copy of the bep-016 branch already on your local repository and that you have write access to the main repository.