Skip to content

Tips and Tricks for Chromium Committers

Alexis Menard edited this page Jul 12, 2013 · 1 revision

Convert your non-committer checkout to a committer one

  • 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] add chromium = *.chromium.org
    • Create [chromium] category and add username = [email protected] which will tell subversion to use your intel email as a login for all chromium repository (instead of the shell login).
  • 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!

Commit to Chromium/Blink inside the Intel Network.

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 to svn://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 to url = 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

Clone this wiki locally