-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcurrent_development.tex
112 lines (92 loc) · 8.43 KB
/
current_development.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
\section{Current Development of Distributed Version Control Systems}\label{currentdevelopment}
This section contains information about projects and initiatives in the field of Distributed Version Control Systems.
\subsection{GitHub (\textit{http://github.com})}
\begin{figure}[h]
\centering
\includegraphics{img/github}
\caption{GitHub logo}
\label{}
\end{figure}
GitHub is a web-based hosting service coded in Ruby on Rails for projects using Git to handle their codebase. This service was launched in February 2008 and currently (November 2010) counts more than one million hosted projects. GitHub can be used commercially or for free. By using GitHub for free it is confirmed that everything hosted on GitHub is open source.
Getting started with GitHub is not a problem. The platform offers a large help and support service helping in using GitHub.
Basically, all that has to be done after one successfully installed Git on his computer is generating an SSH keypair, setting the username and e-mail and creating or forking a GitHub repository, and one is ready to work.
The SSH keypair generated is important in terms of security. This keypair identifies the user. It is SSH encoded and secure and not plain text.
Creating a new GitHub projects means setting up a completely new repository. Forking one means creating an own fork of an existing repository. This makes it possible to work on an own fork and modify it in any way, when some time has passed the user can also update the fork with the original repository. This whole service is possible because of the open source philosophy of GitHub.
After being finished with all these steps, GitHub provides an URL to clone the project. From this point users are able to work with Git as usual. Of course, multiple people can join the project. They usually have read-only access to the project, as long as the project leader grants them other rights.
GitHub offers a lot of nice features. For example there is a feature showing which project member impacted how much source code and when. This is displayed in a graph. There is also a feature showing when project branches were merged together along with the states of the branches. This is displayed in a graphas well. Also, GitHub offers a RSS system for all kinds of things like new commits, commentaries etc.
\newline
Popular example projects using GitHub are:
\newline
\begin{itemize}
\item Perl
\item PHP
\item Ruby on Rails
\item jQuery
\end{itemize}
\subsection{Gitorious (\textit{http://gitorious.org})}
\begin{figure}[h]
\centering
\includegraphics{img/gitorious}
\caption{Gitorious logo}
\label{}
\end{figure}
Gitorious is - as well as GitHub a web-based hosting service for projects using Git to handle their codebase. Gitorious was launched in January 2008. So GitHub and Gitorious are competitors, but GitHub is currently (November 2010) leader in the marketplace for hosting services for Git projects.
Gitorious is very similar to GitHub. It's important to mention that Gitorious is also free, but supporting commercial projects. Although Gitorious is quite less popular than GitHub, there are still very popular projects hosted on Gitorious.
\newline
Popular example projects using Gitorious are:
\begin{itemize}
\item Android
\item openSUSE
\item Qt
\item KDevelop
\end{itemize}
\subsection{BitBucket (\textit{http://bitbucket.org})}
\begin{figure}[h]
\centering
\includegraphics{img/bitbucket}
\caption{BitBucket logo}
\label{}
\end{figure}
BitBucket is a free source code web-based hosting service launched in 2008. Compared to other services in that kind, BitBucket hosts Mercurial and Subversion projects. This service is free for projects containing five or less users included in a project. Projects containing more people cost a monthly fee, ranging up to 80 dollars per month for an unlimited number of users.
\newline
Popular example projects using BitBucket are:
\begin{itemize}
\item Opera
\item TortoiseHG
\item Adium
\item CodeIgniter
\end{itemize}
\subsection{Launchpad (\textit{https://launchpad.net})}
\begin{figure}[h]
\centering
\includegraphics{img/launchpad}
\caption{Launchpad logo}
\label{}
\end{figure}
Launchpad is a free software collaboration platform launched in January 2004. The Launchpad project supports the idea of free software. Launchpad a web-based hosting service for projects using Bazaar to manage the development. Launchpad, however, is a lot more than just a hosting service. Launchpad offers a whole bunch of services for their users encouraging to develop free software. Aside from code hosting, Launchpad offers a code review section, where users can review projects hosted on Launchpad. Code review gives a public forum where users can rate and discuss the project. Launchpad also offers a bug tracking feature. In open source software, copying software also means copying potential bugs. Therefore, Launchpad makes it possible to share bug reports, current status and patches and also provides a platform to comment on these.
Another feature of Launchpad is the translations section. Launchpad's philosophy about software and language is that the translators should not be the software engineers. That is why users can allow the Launchpad community to translate their project. Translators are supported by language libraries and suggestions.
Another interesting Launchpad service is the Ubuntu package building and package hosting. This service makes it easy to distribute software to Ubuntu users. Users can build and distribute their Ubuntu packages using their personal APT repository.
Specification tracking is another feature by Launchpad. This offers users to track new features for their software, from the idea to the implementation. This is realized letting the community planning each other's project and it's road-map. There is no reason to worry: Users decide how important a user's idea is and they can also freely ignore them. The last feature of Launchpad is called "`Answers"'. This lets every user build his own knowledgebase. Whenever they come across problems, they can freely add them to their personal FAQ library.
Launchpad is currently (November 2010) hosting more than 20.000 projects. Their services are in heavy use, as there are to-date just for example more than 670.000 bugs tracked and 1.5 million translations made.
\newline
Popular example projects using Launchpad are:
\begin{itemize}
\item Ubuntu
\item Bazaar
\item MySQL
\item Inkscape
\end{itemize}
\subsection{Google Code Gerrit \\(\textit{http://code.google.com/p/gerrit})}
Google Code Gerrit is a free online code reviewing system for Git projects by Google. Google users can provide their Git projects and let them be reviewed by other Google users. Gerrit makes use of the Git philosophy: Every user with authority is allowed to commit changes to the Git repository. This way, the project leader does not have to merge all the changes together. Gerrit also has a large discussion group along with a wiki to help new users getting started.
\subsection{Eclipse with DVCS plugins}
Eclipse, the open source IDE is known for having large plugin support. With the rise of DVCS systems, also DVCS plugins for the popular IDE were developed. Since these plugins (for all the different DVCS) work theoretically the same, just the general use is described here. These plugins add a new bar to Eclipse handling DVCS projects. Inside Eclipse the user will be able to browse through projects including their branches. Also, users are able to perform all the DVCS tasks within Eclipse, thanks to the plugin.
\newline
Popular example DVCS plugins for Eclipse are \cite{eclipseplugins}:
\begin{itemize}
\item EGit (Git)
\item Mercurial Eclipse / HGEclipse (Mercurial)
\item BzrEclipse (Bazaar)
\item EclipseDarcs (Darcs)
\end{itemize}
\subsection{Gazest (\textit{http://ygingras.net/gazest})}
Gazest is a community engine based on the Wiki system, started in 2007. Gazest is still not officially launched yet. It is already usable, but not ready for productive use (November 2010). In comparison to other Wikis, Gazest uses a DVCS storage model, heaviely based on the idea of DVCS tools. The idea behind this is, that parallel changes to the Wiki site will be merged just like any DVCS software does. Gazest even encourages users to try out to produce conflicts on a test wiki page to show how good Gazest is in undoing and merging changes parallelly made. Another idea of Gazest is to develop completely new technologies, including branching and merging of multiple Gazest Wiki pages into one single logical unit.