From Healthcare Robotics Wiki
Revision as of 21:14, 15 March 2012 by Advaitjain (Talk | contribs) (To release code)

Jump to: navigation, search

Local Clone of a Google Code Repository for Internal Use


  • Advait thinks it might be good for people in lab to be able to push to and pull from a non-google computer that has a clone of gt-ros-pkg
  • The goal would be to use this as an internal git repository with the option of pushing to gt-ros-pkg hosted on when code is ready to be publicly downloadable.

Create bare git repository on internal git server

  1. ssh -lmycroft
  2. mkdir internal_git_bare
  3. cd internal_git_bare
  4. Clone gt-ros-pkg with advait as the user on
    git clone
  5. Convert to a bare repository using steps from here:
    1. cd gt-ros-pkg.hrl/
    2. git config --bool core.bare true
    3. mv .git/ ../
    4. rm -rf *
    5. mv ../.git/ .
  6. create an internal_hrl branch:
    git branch internal_hrl
  7. change default branch to internal_hrl:
    git symbolic-ref HEAD refs/heads/internal_hrl
    • this is the only branch that we should use from the internal server.

Steps on each client machine

Clone from the internal server

  1. cd to whichever directory you want to keep your repo in. (e.g. cd ~/git)
  2. git clone
  3. git checkout --track origin/internal_hrl
    • now you will see two branches (master and internal_hrl)
    • usually Advait would expect people to work in the internal_hrl branch

Add a remote branch to work directly with the google code repository

  1. git remote add -f gt-ros-pkg.hrl_google_code
  2. git checkout -b google_code_master gt-ros-pkg.hrl_google_code/master

To release code

  1. git checkout google_code_master
  2. git checkout internal_hrl <path to files to release>
    • got this command from here and here.
    • this will get the files that we want to release, but the history will not be available in the public repository. It will still be available in the internal repository.
  3. git commit -a
    • type in some descriptive release message.
  4. git checkout internal_hrl
    • switch back to the internal_hrl branch
  5. ssh to skynet and push to google code.

Getting a single folder from svn

  • clone just that folder into a separate git repository.
  • then merge this new git repository into gt-ros-pkg.hrl using these instructions.