-
Notifications
You must be signed in to change notification settings - Fork 1
Tips and Tricks for Chromium Committers
- Make sure you are not on the Intel network to do these steps.
- Open your ~/.subversion/servers
- Make sure you have
store-passwords = yes
- Under
[groups]
addchromium = *.chromium.org
- Create
[chromium]
category and addusername = [email protected]
which will tell subversion to use your intel email as a login for all chromium repository (instead of the shell login).
- Make sure you have
- Run
fetch --dry-run blink
inside your blink/chromium checkout (not in src) to get all the svn commands needed displayed so you can copy/paste them. - Run
svn ls --non-interactive svn://svn.chromium.org/chrome
- Run
svn ls --non-interactive svn://svn.chromium.org/blink/trunk
These two commands will ask you to log-in, you can get the svn password at https://chromium-access.appspot.com/, and no you can't change it (svn will store it for you).
- Go into the src/ of your blink/chromium checkout
- Run
git svn init --prefix=origin/ -T trunk/src svn://svn.chromium.org/chrome
- Run
git config --replace svn-remote.svn.fetch trunk/src:refs/remotes/origin/git-svn
- Run
git svn fetch
- Go into the Blink checkout src/third_party/WebKit
- Run
git svn init --prefix=origin/ -T trunk svn://svn.chromium.org/blink/trunk
- Run
git config --replace svn-remote.svn.fetch trunk:refs/remotes/origin/master
- Run
git svn fetch
You're done!
Unfortunately both Chromium and Blink svn repositories are not using http or https to handle commit transactions, they use the svn:// protocol. This means that it will just plainly fail to connect with the proxy of Intel as svn:// protocol is not an http protocol (it's alike) so even with the settings in ~/.subversion/servers (of the proxy) you won't be able to push changes.
For e.g. : Adding the proxy for svn in [global] like http-proxy-exceptions = localhost, 127.0.0.1, *.intel.com
, http-proxy-host = proxy-us.intel.com
, http-proxy-port = 911
will not help.
We can ask google to open up the http:// and https:// protocols but it will take time.
It is possible to use tsocks
to get svn commands to work so you could potentially do tsocks svn commit
. This plainly fail if you're using git-svn or git cl as tsocks will conflict with GIT_PROXY_COMMAND and mixture of git-svn and git commands of git cl (alexis : I couldn't make it work).
However I found another alternative by tunnelling the svn protocol to another machine not in the Intel network.
- Run
ssh -Nf -L 3690:svn.chromium.org:3690 myaccount@myserver_not_in_intelnetwork
. This will redirect all the traffic of 3690 port (it's what svn:// is using) to the online remote machine. - Test that
svn ls svn://localhost/blink/
is working. It should list the repo online. - Now you'll need to convert your git checkout to use the localhost rather than svn://svn.chromium.org.
- Open your the .git/config of the Blink (or chromium) checkout under MYCHECKOUT/src/third_party/WebKit.
- Change the
[svn-remote "svn"]
url to :url = svn://localhost/blink
- Run
git svn fetch
, it should ask you to login to the chromium repository. You may want to update your ~/.subversion/servers to have localhost being part of the group using your Intel email as login. - Now open the .git/config again and change back the
[svn-remote "svn"]
url tosvn://svn.chromium.org/blink
- Run
git svn rebase -l
which will rebase locally. - Open the the .git/config again and change back the
[svn-remote "svn"]
url tourl = svn://localhost/blink
. - Run
git svn info
, it should work like a charm. - Enjoy!!!!
Source for the svn switch : https://git.wiki.kernel.org/index.php/GitSvnSwitch