Difference between revisions of "GIT Repository"

From Vlsiwiki
Jump to: navigation, search
(Setup)
(Including Separate Project)
Line 41: Line 41:
 
  git add foo.cpp
 
  git add foo.cpp
  
===Including Separate Project===
+
===QEMU Inclusion in ESESC===
  
 
ESESC includes code from the QEMU git repository.  This is merged into the ESESC repository using the [http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html subtree merge strategy].
 
ESESC includes code from the QEMU git repository.  This is merged into the ESESC repository using the [http://www.kernel.org/pub/software/scm/git/docs/howto/using-merge-subtree.html subtree merge strategy].
Line 59: Line 59:
  
 
  git remote add -f qemu-mainline git://git.savannah.nongnu.org/qemu.git
 
  git remote add -f qemu-mainline git://git.savannah.nongnu.org/qemu.git
 +
 +
===SYNOS vs SCOORE===
 +
 +
SYNOS repository is the public version of SCOORE. SCOORE is regularly updated with patches sent to SYNOS, and once the code is stable, code from SCOORE is updated in SYNOS.
 +
 +
====Merge Code from SYNOS to SCOORE====
 +
 +
First, you should add the SYNOS as a remote branch in your SCOORE local repository
 +
 +
git remote add ucsc git://mada0.cse.ucsc.edu/synos.git
 +
git fetch ucsc
 +
 +
Second, you should create a branch in the local SCOORE repository that tracks the remote SYNOS repository
 +
 +
git checkout --track -b ucsc remotes/ucsc/master
 +
 +
Third, you should merge/import all the SYNOS edits to the latest SCOORE master branch
 +
 +
git checkout master
 +
git merge ucsc
 +
git config push.default matching
 +
git push
 +
 +
====Merge Code from SCOORE to SYNOS====

Revision as of 07:08, 18 June 2009

Setup

You need to setup your name and email

git config --global user.name  "Your Username"
git config --global user.email foo@soe.ucsc.edu

Checkout/clone once ESESC

git clone git+ssh://mada0.cse.ucsc.edu/mada/server/git/esesc

Checkout/clone once MTHD

git clone git+ssh://mada0.cse.ucsc.edu/mada/server/git/mthd

Checkout/clone once SCOORE

git clone git+ssh://mada0.cse.ucsc.edu/mada/server/git/scoore.git

Checkout/clone once SYNOS (the public branch of SCOORE)

git clone git+ssh://mada0.cse.ucsc.edu/mada/server/git/synos.git

Operation

Every day synchronize with other people modifications

git pull

Whenever you perform a task commit the changes

git commit -a

Remember that a commit does not make the changes visible. Do frequent pushes to the server

git push

To add/rename files uses the git command

git mv foo foo2
git add foo.cpp

QEMU Inclusion in ESESC

ESESC includes code from the QEMU git repository. This is merged into the ESESC repository using the subtree merge strategy.

The initial steps to merge the qemu git repository were:

git remote add -f qemu-mainline git://git.savannah.nongnu.org/qemu.git
git merge -s ours --no-commit qemu-mainline/master
git read-tree --prefix=emul/qemu/ -u qemu-mainline/master
git commit -m "adding qemu-mainline code"

Getting updates from QEMU git is done with

git pull -s subtree qemu-mainline master

Since QEMU is already included in ESESC the initial configuration steps are not all needed for new repository clones. The only step needed is add the remote ref:

git remote add -f qemu-mainline git://git.savannah.nongnu.org/qemu.git

SYNOS vs SCOORE

SYNOS repository is the public version of SCOORE. SCOORE is regularly updated with patches sent to SYNOS, and once the code is stable, code from SCOORE is updated in SYNOS.

Merge Code from SYNOS to SCOORE

First, you should add the SYNOS as a remote branch in your SCOORE local repository

git remote add ucsc git://mada0.cse.ucsc.edu/synos.git
git fetch ucsc

Second, you should create a branch in the local SCOORE repository that tracks the remote SYNOS repository

git checkout --track -b ucsc remotes/ucsc/master

Third, you should merge/import all the SYNOS edits to the latest SCOORE master branch

git checkout master
git merge ucsc
git config push.default matching
git push

Merge Code from SCOORE to SYNOS