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