Patch preparation for GSoC evaluation
Denis Obrezkov
denisobrezkov at gmail.com
Fri Aug 11 16:21:20 UTC 2017
2017-08-11 17:34 GMT+02:00 Christian Mauderer <list at c-mauderer.de>:
> Am 11.08.2017 um 17:24 schrieb Denis Obrezkov:
> > 2017-08-11 17:17 GMT+02:00 Christian Mauderer <list at c-mauderer.de
> > <mailto:list at c-mauderer.de>>:
> >
> > Am 11.08.2017 um 12:14 schrieb Denis Obrezkov:
> > > 2017-08-11 11:53 GMT+02:00 Sebastian Huber
> > > <sebastian.huber at embedded-brains.de
> > <mailto:sebastian.huber at embedded-brains.de>
> > > <mailto:sebastian.huber at embedded-brains.de
> > <mailto:sebastian.huber at embedded-brains.de>>>:
> > >
> > > On 11/08/17 11:44, Denis Obrezkov wrote:
> > >
> > > during our last meeting I didn't completely understand
> what to do
> > > with my commits.
> > >
> > > I have a set of commits made during the GSoC, they are, of
> course,
> > > a bit chaotic. And the only last few commits make my code
> look
> > > better.
> > > So, I have a question: should I take all my commits,
> > > merge them into one big commit which changes the state of
> the code
> > > from the initial to the current state? Or how should I
> clean my
> > > commit history?
> > >
> > >
> > > Ideally, there should be a patch set, that can be integrated
> into
> > > RTEMS with clean, self-contained, well described and easy to
> review
> > > patches.
> > >
> > > --
> > > Sebastian Huber, embedded brains GmbH
> > >
> > > Address : Dornierstr. 4, D-82178 Puchheim, Germany
> > > Phone : +49 89 189 47 41-16
> > <tel:%2B49%2089%20189%2047%2041-16> <tel:%2B49%2089%20189%2047%
> 2041-16>
> > > Fax : +49 89 189 47 41-09
> > <tel:%2B49%2089%20189%2047%2041-09> <tel:%2B49%2089%20189%2047%
> 2041-09>
> > > E-Mail : sebastian.huber at embedded-brains.de
> > <mailto:sebastian.huber at embedded-brains.de>
> > > <mailto:sebastian.huber at embedded-brains.de
> > <mailto:sebastian.huber at embedded-brains.de>>
> > > PGP : Public key available on request.
> > >
> > > Diese Nachricht ist keine geschäftliche Mitteilung im Sinne
> des EHUG.
> > >
> > >
> > > Would it be appropriate to provide a set of patches, for example,
> > > for uart, clock and linkcmd related code, but without saving a
> commit
> > > history?
> > > I mean - to make a git reset --mixed and then make new commits with
> > > relatively
> > > clean code.
> > > > --
> > > Regards, Denis Obrezkov
> > >
> >
> > Hello Denis,
> >
> > if I understood you correct, that would be the right form for your
> > patches. Just remember that you must never change a commit that is
> > already in the public master branch. So as long as you are in your
> own
> > development repository you can merge patches. Like Sebastian said,
> the
> > final patches should be compilable, readable and contain only one
> > feature.
> >
> > It's good practice to do the rework of the patches on an extra
> branch or
> > rename the old branch so that it is still there for reference.
> >
> > Let me shortly describe my typical workflow. Maybe that makes it
> clear:
> >
> > If I implement a new feature, the first for me is to create a
> branch. If
> > you haven't done that, that is no problem. Then your branch is just
> your
> > local "master".
> >
> > I then make a lot of intermediate commits. Most of the time, the
> commit
> > message is just a rough note for myself, what I have done. Often it's
> > quite short. Something like "FIXME: Partial function xyz()." If you
> > would check out any of them, a lot wouldn't even compile.
> >
> > As soon as my feature is done, I create a new branch from that (so I
> can
> > keep the old for backup) and then I start to reorder and squash the
> > commits on this new branch together. My preferred method for that is
> a
> > "git rebase origin/master" (or on top of the commit before I branched
> > the feature). If something goes wrong during the rebase (which
> happens
> > more often then I would like) I just check out my old backup branch
> and
> > do the rebase again.
> >
> > Most of the time, I check the result of the rebase with a "git diff
> > my-old-branch" to make sure I didn't loose any changes.
> >
> > After the rebase, I have only very few (often only one or two)
> commits
> > left. All of these commits should be compilable. Every commit
> contains a
> > set of changes that belongs together. It's quite possible that it is
> > only one patch that adds exactly one driver without the whole history
> > how I developed that driver. That patch will be sent to the mailing
> > list.
> >
> > That works quite well for a feature that is developed by a single
> > person. There are some other cases too:
> >
> > If you imported some files from other sources, you should check in
> these
> > sources unchanged in one commit (ideally don't add them to a
> Makefile or
> > similar so that the whole tree is still compilable) and then add your
> > changes and enable the compile process in a separate one. So it is
> easy
> > to see what has been changed and maybe update to a more recent
> version
> > of the original sources.
> >
> > If someone provided parts of the development, you should handle the
> > commits of that person in a way that the author is still clearly
> stated.
> >
> > I'm sure there are a lot of other edge cases. But these two are the
> most
> > common ones for me.
> >
> > Please don't hesitate to ask if something isn't clear.
> >
> > Kind regards
> >
> > Christian Mauderer
> >
> >
> > Thanks, I am pretty familiar with the workflow, I just wanted to know,
> > should I keep
> > my commits history (may be there is such a requirement for GSoC)?
> >
> > --
> > Regards, Denis Obrezkov
>
> Hello Denis,
>
> sorry, I didn't wanted to offend you with the detailed description. I
> just thought it would be better to offer some details.
>
> The patches that you send to the mailing list for integration into main
> RTEMS should be small ones with only one feature per patch. I would
> suggest to keep the original history on a branch on github (or wherever
> you hosted your GSoC-repo) for at least a few weeks. As far as I know
> there is no such requirement by Google. But it might is possible that
> your mentor wants the full history during evaluation or that it is
> useful if someone continues to work on that or a similar project. Please
> ask your mentor regarding that.
>
> Kind regards
>
> Christian Mauderer
>
I am not offended, I wanted only to make my question as clear as possible :)
--
Regards, Denis Obrezkov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20170811/04eca0fe/attachment-0002.html>
More information about the devel
mailing list