Hi N Ravi, How familiar are you with Git?
In case you're not familiar, Git is a source control system for project(s) where there may be more than one person applying changes to codebase. Please see the following link for getting to know Git. http://rogerdudler.github.io/git-guide/ Now that you know Git, you need to understand Gerrit. Gerrit is what we use for our review process. To properly enforce review policies, Gerrit must control all inputs (ie. commits) into our version control (aka codebase). When using Gerrit you will see that each commit gets another identification (ie. "ChangeID"). (If you've followed the instructions at wiki.iotivity.org, then you shouldn't have to worry about the ChangeIDs all too much at this point.) Therefore, it will not allow you push directly to the main repository that everyone else has cloned. It also enforces developers to "sign-off" their commits. It allows you to push to the codebase after it's been properly reviewed. So, instead of using the "git push" command directly as shown in the link above, you will use the following Gerrit-managed way to do it (please note that example will only push to the "master" branch; please read up on Gerrit further if you're interested how branching works when using Gerrit): git push origin HEAD:refs/for/master The above command will cause a changeset (identified by the Gerrit ChangeID and correlates with the Git commitID) to be created at gerrit.iotivity.org. From the web-based dashboard found at gerrit.iotivity.org, you will select your newly created changeset. The changeset will hold 1 patch set named "patchset 1". The first creation & push to any changeset will always be "patchset 1". From here, people will review your "patchset 1", you will take their comments into consideration, use regular Git commands to amend your commit, and then re-push using the above 'Gerrit-Managed' way. This will create an addendum to your changeset called "patchset 2". This process may repeat itself as many times as it takes for all parties to be happy. Once all reviewers, yourself, the Continuous Integration System (AKA "Jenkins" in our use case -- a whole other topic), and the maintainer(s) are happy with your latest patchset of your changeset, the maintainer will mark your latest patchset with a "+2" and it will be cherry-picked (ie. for now, read this as 'pushed') in to the main repository. Anyone else can now pull down your changes! The cycle has completed itself. Does this explanation answer your question? I wanted to make sure you understood the whole picture (ie. the difference between a Git Commit, Gerrit Changeset, and a Gerrit Patchset). Please reply to this thread if you have any more questions. Thanks, Joey Morrow -----Original Message----- From: RAVI NANJUNDAPPA [mailto:nrav...@samsung.com] Sent: Monday, June 1, 2015 11:02 PM To: Morrow, Joseph L; RAVI NANJUNDAPPA; iotivity-dev at lists.iotivity.org Subject: Re: RE: [dev] Contribution to Iotivity Hi Joey , Yes. I've gone through this wiki link and I've already done the necessary setup required for gerrit access. Let me know which areas to look in for patches. Thanks and Best Regards, N Ravi ------- Original Message ------- Sender : Morrow, Joseph L<joseph.l.morrow at intel.com> Date : Jun 01, 2015 19:34 (GMT+05:30) Title : RE: [dev] Contribution to Iotivity Hello N Ravi, Have you checked out our wiki article at the following link, yet? https://wiki.iotivity.org/how_to_use_gerrit Thanks & Good Luck! J Joey Morrow From: iotivity-dev-bounces at lists.iotivity.org [mailto:iotivity-dev-boun...@lists.iotivity.org] On Behalf Of RAVI NANJUNDAPPA Sent: Monday, June 1, 2015 7:50 AM To: iotivity-dev at lists.iotivity.org Subject: [dev] Contribution to Iotivity Hi All, Am new to this IoTivity. I'd like to contribute some valuable patches to this community. Am reading the documentation available @ Iotivity.org and trying to understand the IoTivity on a high-level. Any pointers on how to start with the contribution in terms of patches ? Thanks and Best Regards, N Ravi