<?xml version="1.0" ?>

<kc>

<title>Kernel Traffic</title>

<author contact="mailto:zbrown@tumblerings.org">Zack Brown</author>

<issue num="308" date="28 Apr 2005 00:00:00 -0800" />

<intro>In this issue, several discussions of Linus's git filesystem
and the git-pasky version control wrappers by Petr Baudis are
covered. Readers should be aware that git-pasky has since been renamed
Cogito, and the command syntax has completely changed. No one should
rely on the examples given here to clarify how to use those tools. <a
href="http://www.kernel.org/pub/software/scm/cogito/">Cogito</a> comes
with a somewhat useful README file that lists the correct syntax for many
commands.</intro>

<mailbox-stats>
	<global-stats>
		<generated-at>Thu Apr 28 09:05:50 2005</generated-at>
		<first-message>Wed Mar 30 14:34:09 2005</first-message>
		<last-message>Sat Apr 23 07:25:17 2005</last-message>
		<totals>
			<n-messages>1424</n-messages>
			<n-is-reply>987</n-is-reply>
			<avg-resp-time>25:43:53</avg-resp-time>
			<n-pgp-signed>55</n-pgp-signed>
			<total-size>8MB</total-size>
			<avg-size>6KB</avg-size>
			<n-attachments>24</n-attachments>
			<att-size>152KB</att-size>
			<bussiest-day-in-n day="2005-04-21"><n-msgs>207</n-msgs><n-bytes>2MB</n-bytes></bussiest-day-in-n>
			<bussiest-day-in-bytes day="2005-04-21"><n-msgs>207</n-msgs><n-bytes>2MB</n-bytes></bussiest-day-in-bytes>
			<n-writers>593</n-writers>
			<wrote-more-then-1-message>204</wrote-more-then-1-message>
			<n-lines>131419</n-lines>
			<header-size>75787</header-size>
			<n-user-agents>57</n-user-agents>
			<n-organisations>45</n-organisations>
			<n-toplevel-domains>34</n-toplevel-domains>
			<avg-spam-score>-28.460253</avg-spam-score>
				<spammiest-writer><score>-5.299000</score><name>ivan&#32;irving</name></spammiest-writer>
		</totals>
		<averages>
			<lines-per-message>92</lines-per-message>
			<lines-per-header>53</lines-per-header>
			<header-percent-of-message>57.67%</header-percent-of-message>
			<header-percent-of-total>45.41%</header-percent-of-total>
			<line-length>28</line-length>
		</averages>
		<importance>
			<low>0.00%</low>
			<normal>0.42%</normal>
			<high>0.00%</high>
		</importance>

	</global-stats>
	<top-writers>
		<top-writer rank="1">
			<e-mail-addr>adrian&#32;bunk</e-mail-addr>
			<n-messages>85</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>624KB</total-size>
			<mostly-written-at>09:59</mostly-written-at>
		</top-writer>
		<top-writer rank="2">
			<e-mail-addr>jesper&#32;juhl</e-mail-addr>
			<n-messages>40</n-messages>
			<avg-size>9KB</avg-size>
			<total-size>322KB</total-size>
			<mostly-written-at>14:13</mostly-written-at>
		</top-writer>
		<top-writer rank="3">
			<e-mail-addr>andreas&#32;steinmetz</e-mail-addr>
			<n-messages>27</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>149KB</total-size>
			<mostly-written-at>14:23</mostly-written-at>
		</top-writer>
		<top-writer rank="4">
			<e-mail-addr>tejun&#32;heo</e-mail-addr>
			<n-messages>26</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>141KB</total-size>
			<mostly-written-at>15:25</mostly-written-at>
		</top-writer>
		<top-writer rank="5">
			<e-mail-addr>dmitry&#32;torokhov</e-mail-addr>
			<n-messages>26</n-messages>
			<avg-size>11KB</avg-size>
			<total-size>263KB</total-size>
			<mostly-written-at>04:24</mostly-written-at>
		</top-writer>
	</top-writers>
	<top-subjects>
		<top-subject rank="1">
			<subject>[patch&#32;encrypted&#32;swsusp&#32;1/3]&#32;core&#32;functionality</subject>
			<n-messages>48</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>212KB</total-size>
			<mostly-written-at>13:15</mostly-written-at>
			<first-msg>1113211156</first-msg>
			<last-msg>1113594446</last-msg>
		</top-subject>
		<top-subject rank="2">
			<subject>fortuna</subject>
			<n-messages>41</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>273KB</total-size>
			<mostly-written-at>06:48</mostly-written-at>
			<first-msg>1113440979</first-msg>
			<last-msg>1113995190</last-msg>
		</top-subject>
		<top-subject rank="3">
			<subject>fusyn&#32;and&#32;rt</subject>
			<n-messages>33</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>148KB</total-size>
			<mostly-written-at>12:36</mostly-written-at>
			<first-msg>1113338117</first-msg>
			<last-msg>1113838430</last-msg>
		</top-subject>
		<top-subject rank="4">
			<subject>intercepting&#32;syscalls</subject>
			<n-messages>30</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>123KB</total-size>
			<mostly-written-at>14:25</mostly-written-at>
			<first-msg>1113592321</first-msg>
			<last-msg>1113935529</last-msg>
		</top-subject>
		<top-subject rank="5">
			<subject>exploit&#32;in&#32;2.6&#32;kernels</subject>
			<n-messages>23</n-messages>
			<avg-size>4KB</avg-size>
			<total-size>87KB</total-size>
			<mostly-written-at>12:31</mostly-written-at>
			<first-msg>1113330855</first-msg>
			<last-msg>1113654726</last-msg>
		</top-subject>
	</top-subjects>
	<top-receivers>
		<top-receiver rank="1">
			<e-mail-addr>linux-kernel@vger.kernel.org</e-mail-addr>
			<n-messages>309</n-messages>
			<avg-size>8KB</avg-size>
			<total-size>3MB</total-size>
			<mostly-written-at>13:35</mostly-written-at>
		</top-receiver>
		<top-receiver rank="2">
			<e-mail-addr>andrew&#32;morton</e-mail-addr>
			<n-messages>57</n-messages>
			<avg-size>9KB</avg-size>
			<total-size>457KB</total-size>
			<mostly-written-at>15:51</mostly-written-at>
		</top-receiver>
		<top-receiver rank="3">
			<e-mail-addr>adrian&#32;bunk</e-mail-addr>
			<n-messages>31</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>150KB</total-size>
			<mostly-written-at>14:50</mostly-written-at>
		</top-receiver>
		<top-receiver rank="4">
			<e-mail-addr>linus&#32;torvalds</e-mail-addr>
			<n-messages>31</n-messages>
			<avg-size>7KB</avg-size>
			<total-size>205KB</total-size>
			<mostly-written-at>12:37</mostly-written-at>
		</top-receiver>
		<top-receiver rank="5">
			<e-mail-addr>james&#32;bottomley</e-mail-addr>
			<n-messages>26</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>131KB</total-size>
			<mostly-written-at>12:54</mostly-written-at>
		</top-receiver>
	</top-receivers>
	<top-ccers>
		<top-ccers rank="1">
			<e-mail-addr>linux-kernel@vger.kernel.org</e-mail-addr>
			<n-messages>605</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>4MB</total-size>
			<mostly-written-at>12:56</mostly-written-at>
		</top-ccers>
		<top-ccers rank="2">
			<e-mail-addr>andrew&#32;morton</e-mail-addr>
			<n-messages>92</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>488KB</total-size>
			<mostly-written-at>12:36</mostly-written-at>
		</top-ccers>
		<top-ccers rank="3">
			<e-mail-addr>mingo@elte.hu</e-mail-addr>
			<n-messages>34</n-messages>
			<avg-size>5KB</avg-size>
			<total-size>156KB</total-size>
			<mostly-written-at>12:59</mostly-written-at>
		</top-ccers>
		<top-ccers rank="4">
			<e-mail-addr>gregkh@suse.de</e-mail-addr>
			<n-messages>33</n-messages>
			<avg-size>9KB</avg-size>
			<total-size>296KB</total-size>
			<mostly-written-at>06:23</mostly-written-at>
		</top-ccers>
		<top-ccers rank="5">
			<e-mail-addr>greg&#32;kh</e-mail-addr>
			<n-messages>31</n-messages>
			<avg-size>6KB</avg-size>
			<total-size>165KB</total-size>
			<mostly-written-at>12:12</mostly-written-at>
		</top-ccers>
	</top-ccers>
	<top-level-domains>
		<tld rank="1">
			<name>com</name>
			<freq>517</freq>
			<avg-size>6KB</avg-size>
			<total-size>3MB</total-size>
		</tld>
		<tld rank="2">
			<name>de</name>
			<freq>218</freq>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
		</tld>
		<tld rank="3">
			<name>org</name>
			<freq>202</freq>
			<avg-size>5KB</avg-size>
			<total-size>993KB</total-size>
		</tld>
		<tld rank="4">
			<name>net</name>
			<freq>110</freq>
			<avg-size>6KB</avg-size>
			<total-size>605KB</total-size>
		</tld>
		<tld rank="5">
			<name>cz</name>
			<freq>49</freq>
			<avg-size>4KB</avg-size>
			<total-size>183KB</total-size>
		</tld>
	</top-level-domains>
	<top-timezones>
		<tz rank="1">
			<name>+0200</name>
			<freq>536</freq>
			<avg-size>6KB</avg-size>
			<total-size>3MB</total-size>
		</tz>
		<tz rank="2">
			<name>-0700</name>
			<freq>215</freq>
			<avg-size>5KB</avg-size>
			<total-size>965KB</total-size>
		</tz>
		<tz rank="3">
			<name>-0400</name>
			<freq>203</freq>
			<avg-size>6KB</avg-size>
			<total-size>2MB</total-size>
		</tz>
		<tz rank="4">
			<name>+0100</name>
			<freq>91</freq>
			<avg-size>4KB</avg-size>
			<total-size>356KB</total-size>
		</tz>
		<tz rank="5">
			<name>-0500</name>
			<freq>82</freq>
			<avg-size>8KB</avg-size>
			<total-size>618KB</total-size>
		</tz>
	</top-timezones>
	<top-organisations>
		<org rank="1">
			<name>kihon&#32;technologies</name>
			<freq>18</freq>
			<bytes>97KB</bytes>
		</org>
		<org rank="2">
			<name>university&#32;of&#32;california,&#32;berkeley</name>
			<freq>13</freq>
			<bytes>56KB</bytes>
		</org>
		<org rank="3">
			<name>osdl</name>
			<freq>11</freq>
			<bytes>103KB</bytes>
		</org>
		<org rank="4">
			<name>montavista</name>
			<freq>7</freq>
			<bytes>26KB</bytes>
		</org>
		<org rank="5">
			<name>criun</name>
			<freq>6</freq>
			<bytes>24KB</bytes>
		</org>
	</top-organisations>
	<top-user-agents>
		<useragent rank="1">
			<name>evolution</name>
			<freq>43</freq>
			<bytes>2MB</bytes>
		</useragent>
		<useragent rank="2">
			<name>mozilla</name>
			<freq>43</freq>
			<bytes>616KB</bytes>
		</useragent>
		<useragent rank="3">
			<name>mozilla/5.0</name>
			<freq>22</freq>
			<bytes>261KB</bytes>
		</useragent>
		<useragent rank="4">
			<name>mutt/1.4.1i</name>
			<freq>17</freq>
			<bytes>218KB</bytes>
		</useragent>
		<useragent rank="5">
			<name>mutt/1.5.6+20040907i</name>
			<freq>16</freq>
			<bytes>2MB</bytes>
		</useragent>
	</top-user-agents>
	<messages-per-day>
		<Sunday><msgs>85</msgs><bytes>478KB</bytes></Sunday>
		<Monday><msgs>196</msgs><bytes>2MB</bytes></Monday>
		<Tuesday><msgs>219</msgs><bytes>2MB</bytes></Tuesday>
		<Wednesday><msgs>220</msgs><bytes>2MB</bytes></Wednesday>
		<Thursday><msgs>277</msgs><bytes>2MB</bytes></Thursday>
		<Friday><msgs>317</msgs><bytes>2MB</bytes></Friday>
		<Saturday><msgs>87</msgs><bytes>475KB</bytes></Saturday>
	</messages-per-day>
	<messages-per-month>
		<Jan><msgs>0</msgs><bytes>0</bytes></Jan>
		<Feb><msgs>0</msgs><bytes>0</bytes></Feb>
		<Mar><msgs>11</msgs><bytes>71KB</bytes></Mar>
		<Apr><msgs>1391</msgs><bytes>8MB</bytes></Apr>
		<May><msgs>0</msgs><bytes>0</bytes></May>
		<Jun><msgs>0</msgs><bytes>0</bytes></Jun>
		<Jul><msgs>0</msgs><bytes>0</bytes></Jul>
		<Aug><msgs>0</msgs><bytes>0</bytes></Aug>
		<Sep><msgs>0</msgs><bytes>0</bytes></Sep>
		<Oct><msgs>0</msgs><bytes>0</bytes></Oct>
		<Nov><msgs>0</msgs><bytes>0</bytes></Nov>
		<Dec><msgs>0</msgs><bytes>0</bytes></Dec>
	</messages-per-month>
	<messages-per-day-of-month>
		<day-1><msgs>2</msgs><bytes>14KB</bytes></day-1>
		<day-2><msgs>0</msgs><bytes>0</bytes></day-2>
		<day-3><msgs>0</msgs><bytes>0</bytes></day-3>
		<day-4><msgs>1</msgs><bytes>5KB</bytes></day-4>
		<day-5><msgs>4</msgs><bytes>19KB</bytes></day-5>
		<day-6><msgs>2</msgs><bytes>10KB</bytes></day-6>
		<day-7><msgs>2</msgs><bytes>8KB</bytes></day-7>
		<day-8><msgs>5</msgs><bytes>26KB</bytes></day-8>
		<day-9><msgs>1</msgs><bytes>5KB</bytes></day-9>
		<day-10><msgs>1</msgs><bytes>5KB</bytes></day-10>
		<day-11><msgs>16</msgs><bytes>78KB</bytes></day-11>
		<day-12><msgs>32</msgs><bytes>185KB</bytes></day-12>
		<day-13><msgs>46</msgs><bytes>272KB</bytes></day-13>
		<day-14><msgs>63</msgs><bytes>270KB</bytes></day-14>
		<day-15><msgs>185</msgs><bytes>829KB</bytes></day-15>
		<day-16><msgs>67</msgs><bytes>313KB</bytes></day-16>
		<day-17><msgs>84</msgs><bytes>473KB</bytes></day-17>
		<day-18><msgs>179</msgs><bytes>964KB</bytes></day-18>
		<day-19><msgs>183</msgs><bytes>931KB</bytes></day-19>
		<day-20><msgs>167</msgs><bytes>968KB</bytes></day-20>
		<day-21><msgs>207</msgs><bytes>2MB</bytes></day-21>
		<day-22><msgs>125</msgs><bytes>805KB</bytes></day-22>
		<day-23><msgs>19</msgs><bytes>158KB</bytes></day-23>
		<day-24><msgs>0</msgs><bytes>0</bytes></day-24>
		<day-25><msgs>0</msgs><bytes>0</bytes></day-25>
		<day-26><msgs>0</msgs><bytes>0</bytes></day-26>
		<day-27><msgs>0</msgs><bytes>0</bytes></day-27>
		<day-28><msgs>0</msgs><bytes>0</bytes></day-28>
		<day-29><msgs>0</msgs><bytes>0</bytes></day-29>
		<day-30><msgs>6</msgs><bytes>36KB</bytes></day-30>
		<day-31><msgs>5</msgs><bytes>36KB</bytes></day-31>
	</messages-per-day-of-month>
	<messages-per-hour>
		<hour-1><msgs>49</msgs><bytes>370KB</bytes></hour-1>
		<hour-2><msgs>61</msgs><bytes>462KB</bytes></hour-2>
		<hour-3><msgs>20</msgs><bytes>95KB</bytes></hour-3>
		<hour-4><msgs>23</msgs><bytes>186KB</bytes></hour-4>
		<hour-5><msgs>3</msgs><bytes>9KB</bytes></hour-5>
		<hour-6><msgs>16</msgs><bytes>123KB</bytes></hour-6>
		<hour-7><msgs>14</msgs><bytes>61KB</bytes></hour-7>
		<hour-8><msgs>50</msgs><bytes>210KB</bytes></hour-8>
		<hour-9><msgs>92</msgs><bytes>389KB</bytes></hour-9>
		<hour-10><msgs>84</msgs><bytes>363KB</bytes></hour-10>
		<hour-11><msgs>92</msgs><bytes>561KB</bytes></hour-11>
		<hour-12><msgs>86</msgs><bytes>493KB</bytes></hour-12>
		<hour-13><msgs>91</msgs><bytes>414KB</bytes></hour-13>
		<hour-14><msgs>84</msgs><bytes>368KB</bytes></hour-14>
		<hour-15><msgs>82</msgs><bytes>496KB</bytes></hour-15>
		<hour-16><msgs>77</msgs><bytes>386KB</bytes></hour-16>
		<hour-17><msgs>81</msgs><bytes>504KB</bytes></hour-17>
		<hour-18><msgs>62</msgs><bytes>365KB</bytes></hour-18>
		<hour-19><msgs>59</msgs><bytes>296KB</bytes></hour-19>
		<hour-20><msgs>46</msgs><bytes>210KB</bytes></hour-20>
		<hour-21><msgs>75</msgs><bytes>386KB</bytes></hour-21>
		<hour-22><msgs>60</msgs><bytes>333KB</bytes></hour-22>
		<hour-23><msgs>59</msgs><bytes>322KB</bytes></hour-23>
	</messages-per-hour>
	<urls>
		<url-1><freq>1029</freq><url>http://vger.kernel.org/majordomo-info.html</url></url-1>
		<url-2><freq>1024</freq><url>http://www.tux.org/lkml/</url></url-2>
		<url-3><freq>18</freq><url>http://tuxedo-es.org]</url></url-3>
		<url-4><freq>7</freq><url>http://enigmail.mozdev.org</url></url-4>
		<url-5><freq>7</freq><url>http://wifitux.com/finger/</url></url-5>
	</urls>
	<top-avg-resp>
		<resp-pers rank="1">
			<name>jan-benedict&#32;glaw</name>
			<avg-resp-time>00:07:35</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="2">
			<name>andre&#32;bender</name>
			<avg-resp-time>00:07:59</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="3">
			<name>jean&#32;delvare</name>
			<avg-resp-time>00:11:06</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="4">
			<name>grzegorz&#32;kulewski</name>
			<avg-resp-time>00:17:32</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
		<resp-pers rank="5">
			<name>folkert@vanheusden.com</name>
			<avg-resp-time>00:23:15</avg-resp-time>
			<n-replies>2</n-replies>
		</resp-pers>
		<resp-pers rank="6">
			<name>eric&#32;rannaud</name>
			<avg-resp-time>00:23:58</avg-resp-time>
			<n-replies>1</n-replies>
		</resp-pers>
	</top-avg-resp>
	<created-with><name>mboxstats</name><version>2.8</version><developer>folkert@vanheusden.com</developer><url>http://www.vanheusden.com/mboxstats/</url></created-with>
</mailbox-stats>

<section
  title="New memmap Kernel Command-Line Option"
  subject="[RFC][x86_64] Introducing the memmap= kernel command line option"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/5d73a46a26871527?hl=en"
  posts="3"
  startdate="14 Apr 2005 22:13:55 -0800"
  enddate="18 Apr 2005 04:47:02 -0800"
>

<p>Hariprasad Nellitheertha said:</p>

<quote who="Hariprasad Nellitheertha">

<p>In order to port kdump to x86_64, we need to have the memmap= kernel
command line option available. This is so that the dump-capture kernel can
be booted with a custom memory map.</p>

<p>The attached patch adds the memmap= functionality to the x86_64 kernel. It
is against 2.6.12-rc2-mm3. I have done some amount of testing and it is
working fine.</p>

</quote>

<p>Andi Kleen replied:</p>

<quote who="Andi Kleen">

<p>You should add a __setup somewhere, otherwise the kernel will complain
about unknown arguments or generate a memmap variable in inits environment.</p>

<p>Comma parsing would be nice.</p>

<p>Otherwise it looks ok.</p>

</quote>

<p>Hariprasad said he'd add a __setup, and do comma parsing.</p>

</section>

<section
  title="Status Of Kernel Development Given Switch From BitKeeper"
  subject="where is current kernel ?"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/1c24f23b773d7874"
  posts="4"
  startdate="15 Apr 2005 03:33:45 -0800"
  enddate="15 Apr 2005 11:16:39 -0800"
>
<topic>Version Control</topic>

<p>Maciej Soltysiak asked, <quote who="Maciej Soltysiak">Is there currently a
kernel tree that Linus is working ?  I mean, now that we have 2.6.12-rc2 not
being developed with BK, is that code getting fixes and other patches as we
speak or the development will continue in a while someplace else ?</quote> Petr
Baudis replied, <quote who="Petr Baudis">Linus stopped merging stuff to his
kernel for few days in order to develop his (at least temporary) alternative
to BK, called "git".  See the mailing list archives for details.</quote>
Tom Duffy remarked, <quote who="Tom Duffy">I have received many GIT commits
recently to the old bk-commits mailing list.</quote> And Petr replied,
<quote who="Petr Baudis">And they are clearly marked as "GIT testing". It
isn't nothing official and they can go away randomly - they are mainly for
testing git and they are not guaranteed to stay around. :-)</quote></p>

</section>

<section
  title="Serial ATA Status Reports Updated; SATA Still Developed On BitKeeper"
  subject="[SATA] status reports updated"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/a03a81634b094138"
  posts="12"
  startdate="15 Apr 2005 10:09:57 -0800"
  enddate="16 Apr 2005 02:58:18 -0800"
>
<topic>Disks: IDE</topic>
<topic>Serial ATA</topic>
<topic>Version Control</topic>

<p>Jeff Garzik said:</p>

<quote who="Jeff Garzik">

<p>My Linux SATA software/hardware status reports have just been updated.
To see where libata (SATA) support stands for a particular piece of hardware,
or a particular feature, go to</p>

<p><a href="http://linux.yyz.us/sata/">http://linux.yyz.us/sata/</a></p>

<p>I've still got several patches from EMC (Brett) and IBM (Albert) to go
through, as well as a few scattered ones from random authors.</p>

<p>I'm still working in BitKeeper for the time being.</p>

</quote>

</section>

<section
  title="New 'Kernel Mentors' Project"
  subject="[ANNOUNCE] Kernel Mentors Project"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/2757f5020d276283?hl=en"
  posts="1"
  startdate="15 Apr 2005 12:10:57 -0800"
>

<p>Matt Mackall said:</p>

<quote who="Matt Mackall">

<p>Perhaps the hardest part of becoming a kernel developer is submitting your
first major feature. There are technical and social hurdles to overcome and
the process can be daunting to someone who is new to the community.</p>

<p>Thus, I'm proposing an informal project to get experienced developers
to mentor new developers and coach them on the best ways to get their code
ready for submission.</p>

<p>Developers will submit a description of their project and its current state
as well as pointer to the code to the kernel-mentors mailing list. Mentors
will pick for themselves which projects and developers they'd like to work
with and offer their assistance.</p>

<p>The mentor will help the developer get their code accepted by:</p>

<ul>

<li>reviewing the code and suggesting how to improve it further</li>

<li>acquainting the developer with best practices for code submission</li>

<li>letting the developer know what to expect in the submission process</li>

</ul>

<p>For their part, new developers will be expected to use the feedback
they're given productively and eventually get their code merged!</p>

<p>The project list is at kernel-mentors@selenic.com with a web interface
at:</p>

<p><a
href="http://selenic.com/mailman/listinfo/kernel-mentors">http://selenic.com/mailman/listinfo/kernel-mentors</a></p>

<p>If you're interested in helping out, come join us.</p>

</quote>

</section>

<section
  title="Some Kernel Developers Using git"
  subject="[GIT PATCH] I2C and W1 bugfixes for 2.6.12-rc2"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/3931f8d2899a58cd?hl=en"
  posts="18"
  startdate="18 Apr 2005 20:39:38 -0800"
  enddate="19 Apr 2005 15:41:57 -0800"
>
<topic>I2C</topic>

<p>Greg KH tried using git for real kernel work, and asked Linus Torvalds to
pull from Greg's tree, at
kernel.org/pub/scm/linux/kernel/git/gregkh/i2c-2.6.git/</p>

<p>Afterwards, Greg said:</p>

<quote who="Greg KH">

<p>Nice, it looks like the merge of this tree, and my usb tree worked just
fine.</p>

<p>So, what does this now mean?  Is your kernel.org git tree now going to
be the "real" kernel tree that you will be working off of now?  Should we
crank up the nightly snapshots and emails to the -commits list?</p>

<p>Can I rely on the fact that these patches are now in your tree and I can
forget about them? :)</p>

<p>Just wondering how comfortable you feel with your git tree so far.</p>

</quote>

<p>Linus confirmed that everything seemed to be working, but he added, <quote
who="Linus Torvalds">I'm still working out some performance issues with merges
(the actual "merge" operation itself is very fast, but I've been trying to
make the subsequent "update the working directory tree to the right thing"
be much better).</quote> As for his total comfort level, he said:</p>

<quote who="Linus Torvalds">

<p>Hold off for one more day. I'm very comfortable with how well git has
worked out so far, and yes, mentally I consider this "the tree", but the
fact is, git isn't exactly easy on "normal users".</p>

<p>I think my merge stuff and Pasky's scripts are getting there, but I want
to make sure that we have a version of Pasky's scripts that use the new
"read-tree -m" optimizations to make tracking a tree faster, and I'd like
to have them _tested_ a bit first.</p>

<p>In other words, I want it to be at the point where people can do</p>

<blockquote>

<p>        git pull &lt;repo-address&gt;</p>

</blockquote>

<p>and it will "just work", at least for people who don't have any local
changes in their tree. None of this "check out all the files again" crap.</p>

<p>But how about a plan that we go "live" tomorrow - assuming nobody finds
any problems before that, of course.</p>

</quote>

<p>Greg offered a couple more trees for Linus to pull from if he wanted
practice. Linus replied:</p>

<quote who="Linus Torvalds">

<p>Done, pushed out. Can you verify that the end result looks sane to you? I
just cheched that the diffstat looks similar (mine claims just 108 lines
changed in aoecmd.c - possibly due to different diff formats).</p>

<p>And yes, my new merge thing seems to have kept the index-cache much better
up-to-date, allowing an optimized checkout-cache -f -a to work and only get
the new files.</p>

<p>Pasky? Can you check my latest git stuff, notably read-tree.c and the
changes to git-pull-script?</p>

</quote>

<p>Greg confirmed that the end result of Linus's pull looked sane, though he did
notice slight anomalies in the changelog entries (a date was in the future).
Petr Baudis (a.k.a Pasky) also said to Linus:</p>

<quote who="Petr Baudis">

<p>I've made git merge to use read-tree -m, HTH.</p>

<p>I will probably not buy git-export, though. (That is, it is merged, but
I won't make git frontend for it.) My "git export" already does something
different, but more importantly, "git patch" of mine already does effectively
the same thing as you do, just for a single patch; so I will probably just
extend it to do it for an (a,b] range of patches.</p>

</quote>

<p>Linus replied, <quote who="Linus Torvalds">That's fine. It was a
quick hack, just to show that if somebody wants to, the data is trivially
exportable.</quote></p>

</section>

<section
  title="New 'Mercurial' Version Control System Proposed For Linux"
  subject="Mercurial v0.1 - a minimal scalable distributed SCM"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/f666944b265ecb1a?hl=en"
  posts="2"
  startdate="20 Apr 2005 02:10:54 -0800"
  enddate="22 Apr 2005 08:21:04 -0800"
>
<topic>Big O Notation</topic>
<topic>Compression</topic>
<topic>Version Control</topic>

<mention>Bill Davidsen</mention>

<p>Matt Mackall said:</p>

<quote who="Matt Mackall">

<p><a href="http://selenic.com/mercurial/">http://selenic.com/mercurial/</a></p>

<p>April 19, 2005</p>

<p>I've spent the past couple weeks working on a completely new
proof-of-concept SCM. The goals:</p>

<ul>

<li>to initially be as simple (and thereby hackable) as possible</li>

<li>to be as scalable as possible</li>

<li>to be memory, disk, and bandwidth efficient</li>

<li>to be able to do "clone/branch and pull/sync" style development</li>

</ul>

<p>It's still very early on, but I think I'm doing surprisingly well. Now
that I've got something that actually does some interesting things if
you poke at it right, I figure it's time to throw it out there.
Here's what I've got so far:</p>

<ul>

<li>O(1) file revision storage and retrieval with efficient delta
compression</li>
<li>efficient append-only layout for rsync and http range protocols</li>
<li>bare bones commit, checkout, stat, history</li>
<li>working "clone/branch" and "pull/sync" functionality</li>
<li>functional enough to be self-hosting (though the repository format is still
in flux)</li>
<li>all in less than 600 lines of Python</li>

</ul>

<p>When I say "pull/sync" works, that means I can do:</p>

<p> hg merge other-repo</p>

<p>and it will pull all "changesets/deltas" that are in other-dir that I
don't have, merge them into the changeset history graph, and do the
same for all files changed for those deltas. It will call out to
a user-specified merge tool like tkdiff for a proper 3-way merge with
the nearest common ancestor in the case of conflicts.</p>

<p>Right now, "cloning/branching" is simply a matter of "cp -al" or
"rsync" (mercurial knows how to break hardlinks if needed).</p>

<p>Some benchmarks from my laptop:</p>

<ul>
<li>prepare for commit of Linux 2.6.10: ~1s</li>
<li>commit Linux 2.6.10: 27s</li>
<li>checkout Linux 2.6.10: 45s</li>
<li>full tree stat for added/changed/deleted files: &lt;1s</li>
<li>local hardlink clone: 1.5s</li>
<li>empty merge between full trees: &lt;.1s</li>
<li>trivial 3-way merge with changes to Makefile: ~1s</li>
</ul>

<p>Much thought has gone into what the best asymptotic performance can be
for the various things an SCM has to do and the core algorithms and
data structures here should scale relatively painlessly to arbitrary
numbers of changesets, files, and file revisions.</p>

<p>What remains to be done:</p>

<ul>
<li>a halfway-usable command line tool</li>
<li>remote (network) repository support</li>
<li>diff generation</li>
<li>changelog entry editing</li>
<li>various manual interventions for merge</li>
<li>handle rename</li>
<li>handle rollback</li>
<li>all sorts of other error handling</li>
<li>all sorts of cleanup, packaging, documentation, testing...</li>
</ul>

<p>Sample usage:</p>

<pre> export HGMERGE=tkmerge   # set a 3-way merge tool
 mkdir foo
 hg create                # create a repository in .hg/
 echo foo &gt; Makefile
 hg add Makefile          # add a file to the current changeset
 hg commit                # commit files currently marked for add or delete
 hg history               # show all changesets
 hg index Makefile        # show change
 touch Makefile
 hg stat                  # find changed files
 cd ..; cp -al foo branch  # make a branch
 hg merge ../branch-foo    # sync changesets from a branch</pre>

</quote>

<p>Bill Davidsen thought the project looked interesting, and said he'd give it a
try.</p>

</section>

<section
  title="Mercurial Version 0.2 Released"
  subject="Mercurial distributed SCM v0.2"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/53baa4f109e7e7c5?hl=en"
  posts="1"
  startdate="21 Apr 2005 09:18:24 -0800"
>
<topic>Version Control</topic>

<p>Matt Mackall said:</p>

<quote who="Matt Mackall">

<p>This is my continuing attempt to make an SCM suitable for kernel
hacking. It supports a distribution model similar to BK and Monotone
but is orders of magnitude simpler than both (about 1k lines of code).</p>

<p><a href="http://selenic.com/mercurial/">http://selenic.com/mercurial/</a></p>

<p>New in this version:</p>

<ul>

<li>much improved command line tool</li>

<li>installation instructions</li>

<li>commit log editing</li>

<li>experimental network pull support</li>

</ul>

<p>Some example usage:</p>

<p>Setting up a Mercurial project:</p>

<pre> $ cd linux/
 $ hg init         # creates .hg
 $ hg status       # show differences between repo and working dir
 $ hg addremove    # add all unknown files and remove all missing files
 $ hg commit       # commit all changes, edit changelog entry</pre>

<p>Mercurial commands:</p>

<pre> $ hg history      # show changesets
 $ hg log Makefile # show commits per file
 $ hg checkout     # check out the tip revision
 $ hg checkout &lt;hash&gt; # check out a specified changeset
 $ hg add foo      # add a new file for the next commit
 $ hg remove bar   # mark a file as removed</pre>

<p>Branching and merging:</p>

<pre> $ cd ..
 $ cp -al linux linux-work   # create a new hardlink branch
 $ cd linux-work
 $ &lt;make changes&gt;
 $ hg commit
 $ cd ../linux
 $ hg merge ../linux-work    # pull changesets from linux-work</pre>

<p>Network support (highly experimental):</p>

<pre> # export your .hg directory as a directory on your webserver
 foo$ ln -s .hg ~/public_html/hg-linux

 # merge changes from a remote machine
 bar$ hg merge http://foo/~user/hg-linux

 This is just a proof of concept of grabbing byte ranges, and is not
 expected to perform well yet.</pre>

</quote>

</section>

<section
  title="Some Discussion Of Linus' Preferred git Usage"
  subject="Re: ia64 git pull"
  archive="http://groups-beta.google.com/group/fa.linux.kernel/msg/01338cb96877a4c3?hl=en"
  posts="14"
  startdate="21 Apr 2005 13:55:43 -0800"
  enddate="21 Apr 2005 19:37:44 -0800"
>

<mention>Horst von Brand</mention>

<p>Tony Luck said to Linus Torvalds:</p>

<quote who="Tony Luck">

<p>I can't quite see how to manage multiple "heads" in git.  I notice that
in your tree on kernel.org that .git/HEAD is a symlink to heads/master ...
perhaps that is a clue.</p>

<p>I'd like to have at least two, or perhaps even three "HEADS" active
in my tree at all times.  One would correspond to my old "release" tree
... pointing to changes that I think are ready to go into the Linus tree.
A second would be the "testing" tree ... ready for Andrew to pull into "-mm",
but not ready for the base. The third (which might only exist in my local
tree) would be for changes that I'm playing around with.</p>

<p>I can see how git can easily do this ... but I don't know how to set up
my public tree so that you and Andrew can pull from the right HEAD.</p>

</quote>

<p>Petr Baudis (a.k.a Pasky) explained that to have multiple heads, the user
would have to:</p>

<quote who="Petr Baudis">

<p>go into your "master" working directory, and do:</p>

<p>        git fork release ~/release<br />
        git fork testing ~/testing</p>

<p>Then in ~/release or ~/testing respectively, you have working trees for
the respective branches.</p>

</quote>

<p>As for Linus and Andrew pulling from the proper head, Petr said:</p>

<quote who="Petr Baudis">

<p>Currently, git pull will _never_ care about your internal heads
structure in the remote repository. It will just take HEAD at the given
rsync URI, and update the remote branch's head in your repository to
that commit ID.  This actually seems to be one of the very common
pitfalls for people.</p>

<p>The way to work around that is to setup separate rsync URIs for each of
the trees. ;-) I think I will make git-pasky (Cogito) accept also URIs
in form</p>

<p>        rsync://host/path!branchname</p>

<p>which will allow you to select the particular branch in the given
repository, defaulting to the "master" branch.</p>

<p>Would that work for you?</p>

</quote>

<p>Horst von Brand said the '!' character should be changed to something that
wouldn't confuse the shell.</p>

<p>Elsewhere, Linus replied to Tony's original question, saying:</p>

<quote who="Linus Torvalds">

<p>I personally like the "one repository, one head" approach, and if you want
multiple heads you just do multiple repositories (and you can then mix just
the object database - set your SHA1_FILE_DIRECTORY environment variable to
point to the shared object database, and you're good to go).</p>

<p>But yes, if you want to mix heads in the same repo, you can do so, but
it's a bit dangerous to switch between them, since you'll have to blow any
dirty state away, or you end up having checked-out state that is inconsistent
with the particular head you're working on.</p>

<p>Switching a head is pretty easy from a _technical_ perspective: make sure
your tree is clean (ie fully checked in), and switch the .git/HEAD symlink
to point to a new head. Then just do</p>

<p>        read-tree .git/HEAD<br />
        checkout-cache -f -a</p>

<p>and you're done. Assuming most checked-out state matches, it should be
basically instantaneous.</p>

<p>Oh, and you may want to check that yoy didn't have any files that are
now stale, using "show-files --others" to show what files are _not_ being
tracked in the head you just switched to.</p>

<p>I think Pasky has helper functions for doing this, but since I think
multiple heads is really too confusing for mere mortals like me, I've not
looked at it.</p>

</quote>

<p>He added, <quote who="Linus Torvalds">In contrast, having separate
directories, all with their own individual heads, you are much more
likely to know what you're up to by just getting the hints from the
environment.</quote></p>

<p>Tony replied that maybe there was a bit of terminology confusion. He
said:</p>

<quote who="Tony Luck">

<p>I want to have one "shared objects database" which I keep locally and
mirror publicly at kernel.org/pub/scm/...</p>

<p>I will have several "repositories" locally for various grades of patches,
each of which use SHA1_FILE_DIRECTORY to point to my single repository.
So I never have to worry about getting all the git commands to switch
context ... I just use "cd ../testing", and "cd ../release".</p>

<p>But now I need a way to indicate to consumers of the public shared object
data base which HEAD to use.</p>

<p>Perhaps I should just say "merge 821376bf15e692941f9235f13a14987009fd0b10
from rsync://rsync.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6.git"?</p>

<p>That works for interacting with you, because you only pull from me when
I tell you there is something there to pull.</p>

<p>But Andrew had a cron job or somthing to keep polling every day.  So he
needs to see what the HEAD is.</p>

</quote>

<p>Linus replied that with the current state of git, he was still pulling all
objects from each developer's repository, and going over everything with a
fine-toothed comb, just to make sure the system worked properly. He said this
situation would change, but he would still prefer to pull from a known tree
instead of specifically identified '821376bf15e692941f9235f13a14987009fd0b10'
states. He said:</p>

<quote who="Linus Torvalds">

<p>I think you could just define a head name, and say something like:</p>

<p>  rsync://rsync.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6.git/HEAD.for-linus</p>

<p>and we're all done. Give andrew a different filename, and you're done. The
above syntax is trivial for me to automate.</p>

</quote>

</section>

<section
  title="SCSI Development Migrates From BitKeeper To git"
  subject="[ANNOUNCE] SCSI repository move from BK to git"
  archive="http://groups-beta.google.com/group/linux.kernel/msg/dc00464c71ce5686?hl=en"
  posts="1"
  startdate="21 Apr 2005 14:12:43 -0800"
>
<topic>Disks: SCSI</topic>
<topic>Version Control</topic>

<mention>Kay Sievers</mention>

<p>James Bottomley said:</p>

<quote who="James Bottomley">

<p>This is more or less forced by the fact that the 2.6.12-rc3 is now
git based.  So as of now I won't be updating linux-scsi.bkbits.net</p>

<p>Hopefully I've set up broadly similar functionality on www.parisc- linux.org
(with thanks to Dann Frazier and Paul Bame, the parisc-linux web admins).</p>

<p>To view the currently available SCSI trees, go to</p>

<p><a
href="http://www.parisc-linux.org/cgi-bin/gitweb.pl">http://www.parisc-linux.org/cgi-bin/gitweb.pl</a></p>

<p>This is using Kay Sievers' scripts and should give you broadly similar
browsing capabilities to bkbits.</p>

<p>I'm still pushing the diffs and the change logs for all the trees into</p>

<p><a
href="http://www.parisc-linux.org/~jejb/scsi_diffs">http://www.parisc-linux.org/~jejb/scsi_diffs</a></p>

<p>which has almost the exact same content as the old BK based ones used
to have.  Since git is a very mobile target at the moment, I suspect the
diffs and the changelogs will be of most use to people.</p>

<p>P.S. if you have any general git questions, please,
I don't want to hear them.  Ask on the git mailing list:
git@vger.kernel.org (preferably after having searched the archives <a
href="http://marc.theaimsgroup.com/?l=git">http://marc.theaimsgroup.com/?l=git</a>
first).</p>

</quote>

</section>

</kc>

