Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

GWT Source Code Repo - GIT and SVN - which is the one to track for changes?

Tags:

git

svn

gwt

gwt2

Which is the official gwt source code repo to be tracked for changes?

The git way is here - https://gwt.googlesource.com/gwt/

The old svn way is here - http://code.google.com/p/google-web-toolkit/source/list

Currently the git one is always updated slower than svn one. Is there any other?

like image 278
appbootup Avatar asked Jan 28 '13 04:01

appbootup


2 Answers

If you want the latest changes, including those under review look at https://gwt-review.googlesource.com ( but changes/fixes exist as code branches (find the branch ref via the gerrit review URL) ).

If you want the latest master code, then it is in SVN (for now!) but will move to Git in the future.

Thomas Broyer wrote:

I think the idea was to wait until the move to Git is complete. For now the Git repo is still a mirror of the SVN repo (git-svn) which is a mirror of Google's internal Perforce. To complete the move, we'll rewrite the history to remove all big files (prebuilt plugins and api-checker reference jars) so all contributors will have to re-sync their Git repo. So in the mean time, SVN and Rietveld is still OK, though "deprecated".


Addendum: I actually contributed 2 fixes to 2.5.0, so can comment a bit on the process (I won't say I understand it fully though - more on that below).

Here was my path:

  1. Found the issue that I had on Google Code, created a patch, submitted the patch via Google Code. http://code.google.com/p/google-web-toolkit/issues/detail?id=7513 http://code.google.com/p/google-web-toolkit/issues/detail?id=7863 - Huzzah, I thought, the night before Christmas and I gave something back to GWT.

  2. After delivering my gift, I found out this is not how to submit code these days. (see the link at the very bottom which Thomas Broyer pointed me to). So, I then checked out the git version of the project (not SVN), created a branch with my changes: https://gwt-review.googlesource.com/#/c/1540/ - this is how it works with Gerrit.

  3. I screwed up some code formatting, so I had to amend the commit with the change (this is how you make a fix in Gerrit - I did not know this and submitted a new commit which was the wrong way - Thomas kindly and patiently pointed me on the right path).

  4. Once the code was reviewed and passed muster, it was Accepted and then Abandoned! Yes, Abandoned. I believe what Abandoned means here is that the branch with the change is abandoned since the code is merged in to the master branch. That confused me as well. :) (EDIT: actually, I'm wrong here - it is abandoned because it was not merged into the git repo. I suspect this is because the git repo mirrors SVN - so you cannot merge changes into it! - great writeup on gerrit process here: http://qt-project.org/wiki/Gerrit-Introduction )

As I said, if you want the absolute latest changes, you can get all the code branches from https://gwt.googlesource.com/gwt (as I said earlier. :) ). If there is a particular fix you need you can probably rebase that onto the master branch yourself.

Now, what I don't understand is why the googlecode repo is still open. It was quite confusing and frustrating to submit a patch there only to find out I needed to do it all again with Gerrit (fortunately they were tiny changes). I suspect keeping the googlecode repo alive is a legacy thing.

Finally, as to why the SVN was merged before the Git master I do not know - perhaps ask on the contributor list ( https://groups.google.com/forum/?fromgroups=#!forum/google-web-toolkit-contributors ). It may well be the case that SVN is still the the source and Git master feeds from SVN (as some projects do when they transition).

Also, be patient - the GWT steering committee is new and have already done great work but have a lot more to do. It is fantastic that Google has passed control of releases over to them as the steering committee has some really great people on it.


Here is the official word on code contributions: https://groups.google.com/forum/#!topic/google-web-toolkit-contributors/fmHDlsnfdEQ/discussion

Gerrit Crash Course

In case you’re not familiar with Gerrit already, here are a few beginner steps to get started with:

Going to https://gwt.googlesource.com/ or https://gwt-review.googlesource.com/ you should be able to see the “gwt” project.  You should also be able to anonymously check this out by simply running “git clone https://gwt.googlesource.com/gwt”.

Further, you should be able to go to https://gwt-review.googlesource.com/ and sign in using your Google Account.  Once signed in you should be able to comment and code review existing issues like the sample issue I created at https://gwt-review.googlesource.com/#/c/1020/.

Finally, to actually create an issue is slightly more involved, but most of the steps only need to be done once:

Complete a Contributor Agreement: go to https://gwt-review.googlesource.com, click “Settings” and then “Agreements”, and follow the instructions.  If you previously submitted an individual CLA electronically via Google Code, please do so again via Gerrit (sorry!).  If you previously submitted a corporate CLA and Gerrit does not reflect this already, please email me privately and I’ll check with Google’s Open Source Program Office to get this resolved.
Setup your HTTP Password: Still under Settings, go to “HTTP Password” and click “Obtain Password” and follow the steps to get your HTTP Password and/or to setup your .netrc file.
Setup your Gerrit commit-msg hook (optional, but recommended): Gerrit provides a commit hook at https://gwt-review.googlesource.com/tools/hooks/commit-msg to automatically add Change-Id lines to your commits.  Download this and add it to your checkout’s .git/hooks directory (e.g., “curl -o .git/hooks/commit-msg https://gwt-review.googlesource.com/tools/hooks/commit-msg && chmod +x .git/hooks/commit-msg”).
Make a change and commit it locally using git (e.g., edit a file foo and then run “git commit -m ‘my first change’ foo”).
Push the commit to Gerrit for review: git push origin HEAD:refs/for/master.

Further details can be found in the Git and Gerrit documentations:
http://git-scm.com/documentation
https://gerrit-review.googlesource.com/Documentation/index.html
like image 186
Tom Carchrae Avatar answered Nov 18 '22 17:11

Tom Carchrae


I just bumped into the new Official GWT Project site which is for open source community.

Update on the site states -

GWT Git repo: https://gwt.googlesource.com/
GWT Gerrit code review: https://gwt-review.googlesource.com/
Old Google Code project: http://code.google.com/p/google-web-toolkit/
like image 31
appbootup Avatar answered Nov 18 '22 17:11

appbootup