You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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

  • No labels