blob: 1e4b4233609c6a002e21b0e69d454462333a8eee [file] [log] [blame]
Some us are using git for managing quickly changing code. This file has
notes for setting that up.
ssh to robotics.mvla.net and add the git executables to your .bashrc:
PATH=$PATH:/www/https/files/frc971/2013/brian/
[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
If you don't gave a login on the server, then cloning
https://robotics.mvla.net/git/frc971/somebody/2013.git instead should work
(with your SVN username and password). However, that form of URL is read-
only.
[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
The https:// URL should work too.
[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. (This is the default if the configuration option remote.<remote>.mirror is set.)
However, you can not do that with an https:// URL.
[Synchronizing with SVN]
In order to synchronize the git commits with svn, somebody has to set up git-svn 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 edit .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 OK because the git commit SHAs end up the same so they all just become the same.
[Repository Setup]
In order for https:// access to work, you have to make sure to rename
.git/hooks/post-update.sample to .git/hooks/post-update (and then run
`git update-server-info` if you're not going to push immediately).