Moving Patches across repositories
Best work flow to deal with cross repository merging is to add both repositories in one local directory. Then you're able to merge and cherry pick across the different repositories.
For the sake of example I'll show how to merge b2_8_fe into b_2_8_fe_sgi. These are two different repositories.
Clone a base repository:
git clone ssh://ashehata@git.hpdd.intel.com:29418/fs/lustre-release-fe-sgi git checkout b2_8_fe_sgi # checkout the remote SGI branch
Add FE remote repository:
git remote add 2.8-fe ssh://ashehata@git.hpdd.intel.com:29418/fs/lustre-release-fe
2.8-fe is the name you give the remote repository.
Do the merge:
git merge 2.8-fe/b2_8_fe
At this point b2_8_fe_sgi has been fast forwarded to b2_8_fe
To list remote branches
git branch -r
To list current repositories being tracked in your local directory
git remote
To create a copy of a branch into another repo
git checkout repo1/branch1 git push repo2 HEAD:branch1
To delete remote branch
git push repoX :branch_to_delete
Also when pushing to create remote branch, the HEAD in the command above you can just be replaced with a hash, if you don't feel like checking out the branch
Same works with merging, if you don't want to merge whole branch, but only up to a certain point, you can use hash id instead of whole branch path
Rebases also work against remote branches in the ways you would expect