blob: ad44cb54e43fac3f10d0d03c7550f0340869c6e9 [file] [log] [blame]
Some us are using git for managing quickly changing code. This file has
directions/notes for setting that up.
[Cloning]
`git clone \
ssh://username@robotics.mvla.net/www/https/git/frc971/somebody/2013.git`
where username is your login on the server and somebody is whoever's git
repo you want to clone
[Adding Other People's Repositories]
`git remote add somebody \
ssh://username@robotics.mvla.net/www.https/git/frc971/somebody/2013.git`
where username is your login on the server and somebody is another person's
git repository
[Working with Other People's Repositories]
`git fetch somebody` will pull their changes, and then you can rebase on top of
them etc.
`git push --mirror` will push all of your local branches so that everybody else
can see them.
[Synchronizing with SVN]
In order to synchronize the git commits with svn, somebody has to get git-svn
set up in their local git repo and then push/pull commits.
To do that, `git svn init https://robotics.mvla.net/svn/frc971/2013/trunk/src`
Then, unless you want git-svn to pull down everything from SVN again, you have
to do `vim .git/refs/remotes/git-svn` (or whatever you name the remote) and
put in the commit ID of the latest commit in the repository that's from SVN.
After doing that (and a `git svn fetch`), git-svn works like usual.
To pull changes from svn, do `git-svn fetch`. To push changes to svn, do
`git svn dcommit`, which will take all of your git commits between the
latest commit from svn and your HEAD and make them into svn commits.
Multiple people dealing with svn works out because the git commit IDs end up
the same, so they all just become the same.