6. git Version Control System
• Distributed Version Control System (DVCS)
• Powerful branching and merging
• Fast!
• Powerful tools
• Open Source
• Via https://gitorious.digitalstrom.org (coming next week)
01/14/10 6
7. Centralized VCS
Central
repository
Commit
Checkout
Local checkout
01/14/10 7
8. Distributed VCS – Scenario #1
Master
repository
Push
Clone
Local
Local commit
repository
01/14/10 8
9. Distributed VCS – Scenario #2
2. Pull
Master User
repository repository
1. Push
Clone
Local
Local commit
repository
01/14/10 9
10. Distributed Version Control
Properties of a DVCS:
• User checks out the whole code history to a local repository
• Changes can be shared easily between repositories
• No need to create user accounts on a central server, which
allows potential contributors to immediately start
development without action from the project
01/14/10 10
12. gitorious git project hosting
• gitorious git hosting web application
• Easy way to follow ”official” development tree
• Allows developers to
− fork the code to implement new features
− request merging of these new features
− Review code and add inline comments on merge requests
01/14/10 12
13. gitorious (continued)
• Hosted by digitalSTROM.org, allowing contributors to start
developing right away
• Provides a well defined workflow for contributors and core
development team
• Open Source
• https://gitorious.digitalstrom.org (coming next week)
01/14/10 13
15. Hudson – Continuous Integration Engine
• Hudson Continuous Integration engine
• Verifies builds after every git commit
• Ensures compilation and unit test success
• Will soon also include cross compiler builds
• Open Source
01/14/10 15
16. Hudson demo
• Build overview
• Project
• Job details
• Build time and trends
01/14/10 16
17. dSS Licensing
Dual licensed:
• Open Source release under the GNU General Public
License 3 (GPL)
• Closed Source dS.org license for dS.org alliance members
Contributor License Agreement
• Defines licensing of features and bugfixes submitted via
gitorious
01/14/10 17
18. GPL Release
Implications of releasing the software under the GPL:
• We make the source code available for everyone to read
• The code may be reused as long as the derivate work is
released under the same terms
01/14/10 18
19. Why Open Source
Reasons for the Open Source release
• Transparency / Privacy considerations
• Avoid vendor lock in
• Improved security thanks to more eyes looking at the code
• Enabling contributors to implement ideas we could not think
of ourselves
01/14/10 19
20. Why the dual licensing
• Open source is not established everywhere yet
• Allows integration with proprietary software systems
01/14/10 20
21. Development Process
Contributor
• Register on https://gitorious.digitalstrom.org
• Clone dss project in gitorious
• Implement changes as wanted
• Push changes back to gitorious
• Request merge in gitorious
Core developer
• Review merge request
• Provide feedback, merge into mainline or reject
01/14/10 21