It seems to me that all it does is add an extra layer
Yes indeed. And that's a good thing, because it allows you to commit
often and very granularly.
I read that you were preparing everything for a committing one big
change to Subversion.
The Git workflow is a bit different.
In Git you would:
- create a branch for your new feature
- commit often (e.g. you fixed that nullpointer that you forgot to
check for > commit; you updated some docs > commit; etc.)
- when the code is ready for your teammates to chime in, you push the
branch (most of the time with multiple commits)
- when the feature is ready, you merge the feature branch into the
'dev' branch and push that
In Subversion you cannot commit until your code is ready to share. In
Git you can.
This granular way of comitting allows you to better dig through the logs
later on; roll back possible small mistakes; merge only small fixes; etc.
You can even select specific lines in a file to commit.
As a side effect because all the branching and committing happens
locally, everything happens a thousand times faster than with
Subversion. Especially with a large code-bases like Flex'. I wouldn't
even want to think about creating a feature branch for the Apache Flex
repo in Subversion. But in Git I would.
Max