1984263bcSMatthew Dillon.\"
2*a63d9f6fSSascha Wildner.\" Copyright (c) 2008
3*a63d9f6fSSascha Wildner.\" The DragonFly Project. All rights reserved.
4*a63d9f6fSSascha Wildner.\"
5*a63d9f6fSSascha Wildner.\" Redistribution and use in source and binary forms, with or without
6*a63d9f6fSSascha Wildner.\" modification, are permitted provided that the following conditions
7*a63d9f6fSSascha Wildner.\" are met:
8*a63d9f6fSSascha Wildner.\"
9*a63d9f6fSSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
10*a63d9f6fSSascha Wildner.\" notice, this list of conditions and the following disclaimer.
11*a63d9f6fSSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
12*a63d9f6fSSascha Wildner.\" notice, this list of conditions and the following disclaimer in
13*a63d9f6fSSascha Wildner.\" the documentation and/or other materials provided with the
14*a63d9f6fSSascha Wildner.\" distribution.
15*a63d9f6fSSascha Wildner.\" 3. Neither the name of The DragonFly Project nor the names of its
16*a63d9f6fSSascha Wildner.\" contributors may be used to endorse or promote products derived
17*a63d9f6fSSascha Wildner.\" from this software without specific, prior written permission.
18*a63d9f6fSSascha Wildner.\"
19*a63d9f6fSSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20*a63d9f6fSSascha Wildner.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21*a63d9f6fSSascha Wildner.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22*a63d9f6fSSascha Wildner.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23*a63d9f6fSSascha Wildner.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24*a63d9f6fSSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
25*a63d9f6fSSascha Wildner.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26*a63d9f6fSSascha Wildner.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27*a63d9f6fSSascha Wildner.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28*a63d9f6fSSascha Wildner.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29*a63d9f6fSSascha Wildner.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30*a63d9f6fSSascha Wildner.\" SUCH DAMAGE.
31*a63d9f6fSSascha Wildner.\"
3271bdc883SThomas Nikolajsen.\" $DragonFly: src/share/man/man7/development.7,v 1.12 2008/07/27 22:23:42 thomas Exp $
33984263bcSMatthew Dillon.\"
34*a63d9f6fSSascha Wildner.Dd December 1, 2008
35984263bcSMatthew Dillon.Dt DEVELOPMENT 7
36984263bcSMatthew Dillon.Os
37984263bcSMatthew Dillon.Sh NAME
38984263bcSMatthew Dillon.Nm development
39*a63d9f6fSSascha Wildner.Nd quick starter for development with the DragonFly codebase
40984263bcSMatthew Dillon.Sh DESCRIPTION
418c1a5cc4SThomas Nikolajsen.Dx
42*a63d9f6fSSascha Wildneruses the
43*a63d9f6fSSascha Wildner.Xr git 1
44*a63d9f6fSSascha Wildnerdistributed revision control system.
45*a63d9f6fSSascha WildnerIf it is not already on the system, it needs to be installed via
46*a63d9f6fSSascha Wildner.Xr pkgsrc 7
47*a63d9f6fSSascha Wildner.Pa ( /usr/pkgsrc/devel/scmgit ) .
4895b3720cSHiten Pandya.Pp
4995b3720cSHiten PandyaThe
50*a63d9f6fSSascha Wildner.Sx EXAMPLES
51*a63d9f6fSSascha Wildnersection gives initial information to get going with development on
52*a63d9f6fSSascha Wildner.Dx .
53*a63d9f6fSSascha WildnerPlease refer to the
54*a63d9f6fSSascha Wildner.Xr git 1
55*a63d9f6fSSascha Wildnermanual pages and other related documents for further information on git's
56*a63d9f6fSSascha Wildnercapabilities and how to use them.
5795b3720cSHiten Pandya.Pp
58*a63d9f6fSSascha WildnerFor information on how to build the
59*a63d9f6fSSascha Wildner.Dx
60*a63d9f6fSSascha Wildnersystem from source code, see
61*a63d9f6fSSascha Wildner.Xr build 7 .
62*a63d9f6fSSascha WildnerFor information on how to build a LiveCD, see
63*a63d9f6fSSascha Wildner.Xr release 7 .
64*a63d9f6fSSascha Wildner.Sh EXAMPLES
65*a63d9f6fSSascha WildnerA fresh copy of the repository can be cloned anywhere.
66*a63d9f6fSSascha WildnerNote that the directory to clone into
67*a63d9f6fSSascha Wildner.Pa ( /usr/src
68*a63d9f6fSSascha Wildnerin the following example) must not exist, so all previous work in this
69*a63d9f6fSSascha Wildnerdirectory has to be saved and the directory be removed prior to cloning.
70*a63d9f6fSSascha Wildner.Pp
71*a63d9f6fSSascha WildnerTo clone the repository and check out the master branch (this will take
72*a63d9f6fSSascha Wildnersome time):
7395b3720cSHiten Pandya.Bd -literal -offset 4n
74*a63d9f6fSSascha Wildnercd /usr
75*a63d9f6fSSascha Wildnergit clone -o crater git://crater.dragonflybsd.org/dragonfly.git src
76*a63d9f6fSSascha Wildnercd src
7795b3720cSHiten Pandya.Ed
7895b3720cSHiten Pandya.Pp
79*a63d9f6fSSascha WildnerThe repository can be held up to date by pulling frequently (to set up a
80*a63d9f6fSSascha Wildner.Xr cron 8
81*a63d9f6fSSascha Wildnerjob,
82*a63d9f6fSSascha Wildner.Xr git 1 Ap s
83*a63d9f6fSSascha Wildner.Fl Fl git-dir
84*a63d9f6fSSascha Wildneroption can be used):
85984263bcSMatthew Dillon.Bd -literal -offset 4n
86984263bcSMatthew Dilloncd /usr/src
87*a63d9f6fSSascha Wildnergit pull
88984263bcSMatthew Dillon.Ed
89984263bcSMatthew Dillon.Pp
90*a63d9f6fSSascha WildnerIt is not recommended to work directly in the master branch.
91*a63d9f6fSSascha WildnerTo create and checkout a working branch:
92*a63d9f6fSSascha Wildner.Bd -literal -offset 4n
93*a63d9f6fSSascha Wildnergit checkout -b work
94*a63d9f6fSSascha Wildner.Ed
95984263bcSMatthew Dillon.Pp
96*a63d9f6fSSascha WildnerTo create and checkout a branch of the
97*a63d9f6fSSascha Wildner.Dx 2.0
98*a63d9f6fSSascha Wildnerrelease (called
99*a63d9f6fSSascha Wildner.Sy rel2_0 ) :
100*a63d9f6fSSascha Wildner.Bd -literal -offset 4n
101*a63d9f6fSSascha Wildnergit checkout -b rel2_0 crater/DragonFly_RELEASE_2_0
102*a63d9f6fSSascha Wildner.Ed
103*a63d9f6fSSascha Wildner.Pp
104*a63d9f6fSSascha WildnerBranches can be deleted just as easy:
105*a63d9f6fSSascha Wildner.Bd -literal -offset 4n
106*a63d9f6fSSascha Wildnergit branch -d work
107*a63d9f6fSSascha Wildner.Ed
108*a63d9f6fSSascha Wildner.Pp
109*a63d9f6fSSascha WildnerAfter changes have been made to a branch, they can be committed:
110*a63d9f6fSSascha Wildner.Bd -literal -offset 4n
111*a63d9f6fSSascha Wildnergit commit -a
112*a63d9f6fSSascha Wildner.Ed
113*a63d9f6fSSascha Wildner.Pp
114*a63d9f6fSSascha Wildner.Xr git-commit 1 Ap s
115*a63d9f6fSSascha Wildner.Fl m
116*a63d9f6fSSascha Wildnerand
117*a63d9f6fSSascha Wildner.Fl F
118*a63d9f6fSSascha Wildneroptions can be used to specify a commit message on the command line or read
119*a63d9f6fSSascha Wildnerit from a file, respectively.
120*a63d9f6fSSascha Wildner.Pp
121*a63d9f6fSSascha WildnerFinally, branches can be merged with the (updated) master by using
122*a63d9f6fSSascha Wildner.Cm rebase :
123*a63d9f6fSSascha Wildner.Bd -literal -offset 4n
124*a63d9f6fSSascha Wildnergit checkout master
125*a63d9f6fSSascha Wildnergit pull
126*a63d9f6fSSascha Wildnergit checkout work
127*a63d9f6fSSascha Wildnergit rebase master
128*a63d9f6fSSascha Wildner.Ed
129984263bcSMatthew Dillon.Sh SEE ALSO
130*a63d9f6fSSascha Wildner.Xr git 1 Pq Pa pkgsrc/devel/scmgit ,
131984263bcSMatthew Dillon.Xr build 7 ,
13271bdc883SThomas Nikolajsen.Xr committer 7 ,
133*a63d9f6fSSascha Wildner.Xr release 7
134984263bcSMatthew Dillon.Sh HISTORY
135984263bcSMatthew DillonThe
136984263bcSMatthew Dillon.Nm
137984263bcSMatthew Dillonmanual page was originally written by
138