Jump to content

Learning patterns/Git repository for software: Difference between revisions

From Meta, a Wikimedia project coordination wiki
Content deleted Content added
Hjfocs (talk | contribs)
Undo revision 15517508 by Hjfocs (talk)
Hjfocs (talk | contribs)
added StrepHit example
Line 46: Line 46:
<!--optional. examples of situations where you would apply this pattern, or real-world situations where it has been used (links and images are encouraged!-->
<!--optional. examples of situations where you would apply this pattern, or real-world situations where it has been used (links and images are encouraged!-->
* Almost all bigger successful opensource projects host their source code with either git or SVN now: MediaWiki, DokuWiki, WordPress, Drupal.
* Almost all bigger successful opensource projects host their source code with either git or SVN now: MediaWiki, DokuWiki, WordPress, Drupal.

== Examples ==
*[https://github.com/ GitHub] is especially useful, as it does not only enable version control and external contributions, but also a lightweight yet effective system to manage technical activities.<ref>[[Grants:IEG/StrepHit:_Wikidata_Statements_Validation_via_References/Midpoint]]</ref>


== See also ==
== See also ==
Line 76: Line 79:
[[Category:Wiki design patterns]]
[[Category:Wiki design patterns]]
[[Category:Moderate complexity patterns]]
[[Category:Moderate complexity patterns]]
*The [[Grants:IEG/StrepHit:_Wikidata_Statements_Validation_via_References|StrepHit]] codebase is on [https://github.com/Wikidata/StrepHit GitHub]: this not only enables version control and external contributions, but also a lightweight yet effective system to manage technical activities. [[User:Hjfocs|Hjfocs]] ([[User talk:Hjfocs|talk]]) 14:11, 11 April 2016 (UTC)
*The [[Grants:IEG/StrepHit:_Wikidata_Statements_Validation_via_References|StrepHit]] codebase is on [https://github.com/Wikidata/StrepHit GitHub] as well. [[User:Hjfocs|Hjfocs]] ([[User talk:Hjfocs|talk]]) 14:11, 11 April 2016 (UTC)

Revision as of 14:22, 11 April 2016

A learning pattern forOnline engagement patterns‎
Git repository for software
problemDealing with multiple versions of software or components of it can easily become messy
solutionUsing a Git repository, having a clone of it publicly available on a service that is known for its speed and stability solves several challenges, including versionning, speed, attribution, availability and tidiness at once.
creatorRillke
endorse
created on17 September, 2014


What problem does this solve?

  • In-transparent code development using funds spent for software is disadvantageous as it does not allow tracking activity and progress by the grant maker.
  • Collaborative software engineering easily becomes messy without a source code management system.
  • Most source code management systems require an internet connection to submit.
  • A good way to find out which solution is the best is try&fail but most source code management systems do not have the concept of offline-branches.


What is the solution?

Git and having a repository online, publicly available.


General considerations

  • Git is probably less intuitive to use than SVN or other popular source code revision management systems. It comes with a lot of features but also has a steep learning curve.
  • All contributors who want to contribute will have to have a basic understanding how to use Git in order to submit a patch or to clone a repo in order to test.
  • Review & Merge frequently if you have multiple collaborators. Otherwise you'll run into merge conflicts and manual re-basing can consume enormous parts of your time.

When to use

  • Almost all bigger successful opensource projects host their source code with either git or SVN now: MediaWiki, DokuWiki, WordPress, Drupal.

Examples

  • GitHub is especially useful, as it does not only enable version control and external contributions, but also a lightweight yet effective system to manage technical activities.[1]

See also

References

Endorsements