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:[email protected]]
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:[email protected]] 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