Hi Mark,

On Fri, Mar 9, 2012 at 9:20 AM, Mark H. Wood <mw...@iupui.edu> wrote:
> While reviewing the IRC discussion, I came across something that
> seemed to want comment.
> [..]

Good post. I was glad to see that the vote to move DSpace code to
GitHub was a landslide. Although the tools should not dictate the
workflow, they can certainly nudge us in certain directions. So it
seems appropriate to step back and consider workflow on the cusp of a
VCS migration.

I've also been thinking about my preferred workflow with Git in recent
weeks (after using it for about a year), and ended up putting together
a writeup that may interest you:
https://wiki.duraspace.org/display/~cwilper/How+I+Use+Git

Regarding the granularity of commits, I completely agree that
committing large changesets in one go can be problematic for your
fellow developers. But the other extreme (many small changesets) can
be equally hard to decipher. Finding the right balance is about
considering your audience and the state of your work.

The workflow I like to follow is: While the work is in a local branch,
commit early and often so I can rollback easily if I do something dumb
a couple hours from now. Then, before pushing to origin, do surgery on
the commits via "git rebase -i' so they're:
a) in good-sized, meaningful chunks for other people to grok. Ideally
each chunk adds something useful and is well-tested, especially if
you're merging to master. This is the point where you can 'squash' all
those 'minor tweak' commits so people reviewing your changes or
browsing the repo history down the road don't have to wade through all
of them.
b) using commit messages that other people can understand. Ideally,
mentioning or linking to relevant tracker issues or other
documentation,  if available.

> Committing code to a repo. does three good things: (1) your work is
> protected from mishap; (2) you can easily roll back changes that
> didn't work out; (3) anyone with access to the repo. can start to
> review, use, and build on your work.  I see a potential for Git to
> facilitate a workflow that denies us early profit from (3), because
> you get (1) and (2) by committing locally without sharing.

Very true. And I think it would be a mistake to miss out on (3) as
well. People should be encouraged to push their more significant work
(in a branch, of course) up to origin frequently so others can see
what they're up to. Besides getting early feedback, it's a cheap way
to protect against a local data loss event.

- Chris

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Dspace-devel mailing list
Dspace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-devel

Reply via email to