File: Basics-of-Generating-a-Changeset.html

package info (click to toggle)
octave 3.8.2-4
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 84,396 kB
  • ctags: 45,547
  • sloc: cpp: 293,356; ansic: 42,041; fortran: 23,669; sh: 13,629; objc: 7,890; yacc: 7,093; lex: 3,442; java: 2,125; makefile: 1,589; perl: 1,009; awk: 974; xml: 34
file content (199 lines) | stat: -rw-r--r-- 8,706 bytes parent folder | download | duplicates (3)
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Octave: Basics of Generating a Changeset</title>

<meta name="description" content="GNU Octave: Basics of Generating a Changeset">
<meta name="keywords" content="GNU Octave: Basics of Generating a Changeset">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Contributing-Guidelines.html#Contributing-Guidelines" rel="up" title="Contributing Guidelines">
<link href="General-Guidelines.html#General-Guidelines" rel="next" title="General Guidelines">
<link href="Building-the-Development-Sources.html#Building-the-Development-Sources" rel="prev" title="Building the Development Sources">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Basics-of-Generating-a-Changeset"></a>
<div class="header">
<p>
Next: <a href="General-Guidelines.html#General-Guidelines" accesskey="n" rel="next">General Guidelines</a>, Previous: <a href="Building-the-Development-Sources.html#Building-the-Development-Sources" accesskey="p" rel="prev">Building the Development Sources</a>, Up: <a href="Contributing-Guidelines.html#Contributing-Guidelines" accesskey="u" rel="up">Contributing Guidelines</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Basics-of-Generating-a-Changeset-1"></a>
<h3 class="section">D.3 Basics of Generating a Changeset</h3>

<p>The best way to contribute is to create a Mercurial changeset and submit it to
the <a href="http://savannah.gnu.org/bugs/?group=octave">bug</a> or
<a href="http://savannah.gnu.org/patch/?func=additem&amp;group=octave">patch</a>
trackers<a name="DOCF13" href="#FOOT13"><sup>13</sup></a>.
Mercurial is the source code management system currently used to develop
Octave.  Other forms of contributions (e.g., simple diff patches) are
also acceptable, but they slow down the review process.  If you want to
make more contributions, you should really get familiar with Mercurial.
A good place to start is
<a href="http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial">http://www.selenic.com/mercurial/wiki/index.cgi/Tutorial</a>.  There
you will also find help about how to install Mercurial.
</p>
<p>A simple contribution sequence could look like this:
</p>
<div class="example">
<pre class="example">hg clone http://www.octave.org/hg/octave
                             # make a local copy of the octave
                             # source repository
cd octave
# change some sources&hellip;
hg commit -m &quot;make Octave the coolest software ever&quot;
                             # commit the changeset into your
                             # local repository
hg export -o ../cool.diff tip
                             # export the changeset to a diff
                             # file
# attach ../cool.diff to your bug report
</pre></div>

<p>You may want to get familiar with Mercurial queues to manage your
changesets.  To work with queues you must activate the extension
mq with the following entry in Mercurial&rsquo;s configuration file
<samp>.hgrc</samp> (or <samp>Mercurial.ini</samp> on Windows):
</p>
<div class="example">
<pre class="example">[extensions]
mq=
</pre></div>

<p>Here is a slightly more complex example using Mercurial
queues, where work on two unrelated changesets is done in parallel and
one of the changesets is updated after discussion on the bug tracker:
</p>
<div class="example">
<pre class="example">hg qnew nasty_bug            # create a new patch
# change sources&hellip;
hg qref                      # save the changes into the patch
# change even more&hellip;
hg qref -m &quot;solution to nasty bug!&quot;
                             # save again with commit message
hg export -o ../nasty.diff tip
                             # export the patch
# attach ../nasty.diff to your bug report
hg qpop                      # undo the application of the patch
                             # and remove the changes from the
                             # source tree
hg qnew doc_improvements     # create an unrelated patch
# change doc sources&hellip;
hg qref -m &quot;could not find myfav.m in the doc&quot;
                             # save the changes into the patch
hg export -o ../doc.diff tip
                             # export the second patch
# attach ../doc.diff to your bug report
hg qpop
# discussion in the bug tracker &hellip;
hg qpush nasty_bug           # apply the patch again
# change sources yet again &hellip;
hg qref
hg export -o ../nasty2.diff tip
# attach ../nasty2.diff to your bug report
</pre></div>

<p>Mercurial has a few more useful extensions that really should be enabled.
They are not enabled by default due to a number of factors
(mostly because they don&rsquo;t work in all terminal types).
</p>
<p>The following entries in the <samp>.hgrc</samp> are recommended
</p>
<div class="example">
<pre class="example">[extensions]
graphlog=
color=
progress=
pager=
</pre></div>

<p>For the color extension, default color and formatting
of <code>hg status</code> can be modified by
</p>
<div class="example">
<pre class="example">[color]
status.modified = magenta bold
status.added = green bold
status.removed = red bold
status.deleted = cyan bold
status.unknown = black  bold
status.ignored = black bold
</pre></div>

<p>Sometimes a few further improvements for the pager extension are
necessary.  The following options should not be enabled unless paging
is not working correctly.
</p>
<div class="example">
<pre class="example">[pager]
# Some options for the less pager, see less(1) for their meaning.
pager = LESS='FSRX' less

# Some commands that aren't paged by default; also enable paging
# for them
attend = tags, help, annotate, cat, diff, export, status, \
         outgoing, incoming
</pre></div>

<p>Enabling the described extensions should immediately lead to a difference
when using the command line version of hg.  Of these options, the
only one that enables a new command is graphlog.  It is recommanded
that to use the command <code>hg glog</code>, instead of <code>hg log</code>, for a better
feel about what commits are being based on.
</p>
<div class="footnote">
<hr>
<h4 class="footnotes-heading">Footnotes</h4>

<h3><a name="FOOT13" href="#DOCF13">(13)</a></h3>
<p>Please use the patch tracker only for patches which add new
features.  If you have a patch to submit that fixes a bug, you should use the
bug tracker instead.</p>
</div>
<hr>
<div class="header">
<p>
Next: <a href="General-Guidelines.html#General-Guidelines" accesskey="n" rel="next">General Guidelines</a>, Previous: <a href="Building-the-Development-Sources.html#Building-the-Development-Sources" accesskey="p" rel="prev">Building the Development Sources</a>, Up: <a href="Contributing-Guidelines.html#Contributing-Guidelines" accesskey="u" rel="up">Contributing Guidelines</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>



</body>
</html>