blob: 292df3643f4543bfb8e0185b1a458298fd23552e [file] [log] [blame]
briansaede41c2013-02-18 04:41:19 +00001Some us are using git for managing quickly changing code. This file has
jerrymcea3b8d2013-03-11 07:57:37 +00002notes for setting that up.
3
4ssh to robotics.mvla.net and add the git executables to your .bashrc:
5 PATH=$PATH:/www/https/files/frc971/2013/brian/
briansaede41c2013-02-18 04:41:19 +00006
7[Cloning]
8`git clone \
jerrymcea3b8d2013-03-11 07:57:37 +00009 ssh://USERNAME@robotics.mvla.net/www/https/git/frc971/SOMEBODY/2013.git`
10 where USERNAME is your login on the server and SOMEBODY is whoever's git
briansaede41c2013-02-18 04:41:19 +000011 repo you want to clone
12
13[Adding Other People's Repositories]
jerrymcea3b8d2013-03-11 07:57:37 +000014`git remote add SOMEBODY \
15 ssh://USERNAME@robotics.mvla.net/www.https/git/frc971/SOMEBODY/2013.git`
16 where USERNAME is your login on the server and SOMEBODY is another person's
briansaede41c2013-02-18 04:41:19 +000017 git repository
18
briansae54f072013-02-18 05:24:06 +000019[Working with Other People's Repositories]
jerrymcea3b8d2013-03-11 07:57:37 +000020`git fetch SOMEBODY` will pull their changes, and then you can rebase on top of
briansae54f072013-02-18 05:24:06 +000021 them etc.
22`git push --mirror` will push all of your local branches so that everybody else
jerrymcea3b8d2013-03-11 07:57:37 +000023 can see them. (This is the default if the configuration option remote.<remote>.mirror is set.)
brians66d57302013-02-18 05:10:42 +000024
briansaede41c2013-02-18 04:41:19 +000025[Synchronizing with SVN]
jerrymcea3b8d2013-03-11 07:57:37 +000026In 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.
27
28To do that, `git svn init https://robotics.mvla.net/svn/frc971/2013/trunk/src`
29
30Then, 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.
31
32After doing that (and a `git svn fetch`), git-svn works like usual.
33
34To 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.
35
36Multiple people dealing with svn works OK because the git commit SHAs end up the same so they all just become the same.