Based on kernel version 2.6.33. Page generated on 2010-02-24 15:37 EST.
1 Chinese translated version of Documentation/SubmittingPatches 2 3 If you have any comment or update to the content, please contact the 4 original document maintainer directly. However, if you have a problem 5 communicating in English you can also ask the Chinese maintainer for 6 help. Contact the Chinese maintainer if this translation is outdated 7 or if there is a problem with the translation. 8 9 Chinese maintainer: TripleX Chung <triplex[AT]zh-kernel[DOT]org> 10 --------------------------------------------------------------------- 11 Documentation/SubmittingPatches çä¸æç¿»è¯ 12 13 妿æ³è¯è®ºææ´æ°æ¬æçå 容ï¼è¯·ç´æ¥èç³»åææ¡£çç»´æ¤è ãå¦æä½ ä½¿ç¨è±æ 14 äº¤æµæå°é¾çè¯ï¼ä¹å¯ä»¥å䏿çç»´æ¤è æ±å©ã妿æ¬ç¿»è¯æ´æ°ä¸åæ¶æè ç¿» 15 è¯åå¨é®é¢ï¼è¯·èç³»ä¸æçç»´æ¤è ã 16 17 䏿çç»´æ¤è ï¼ éå® TripleX Chung <triplex[AT]zh-kernel[DOT]org> 18 䏿çç¿»è¯è ï¼ éå® TripleX Chung <triplex[AT]zh-kernel[DOT]org> 19 ä¸æçæ ¡è¯è ï¼ æé³ Li Yang <leo[AT]zh-kernel[DOT]org> 20 çèª Wang Cong <xiyou.wangcong[AT]gmail[DOT]com> 21 22 以ä¸ä¸ºæ£æ 23 --------------------------------------------------------------------- 24 25 å¦ä½è®©ä½ çæ¹å¨è¿å ¥å æ ¸ 26 æè 27 è·å¾äº²ç±ç Linus Torvalds çå ³æ³¨åå¤ç 28 ---------------------------------- 29 30 å¯¹äºæ³è¦å°æ¹å¨æäº¤å° Linux å æ ¸ç个人æè å ¬å¸æ¥è¯´ï¼å¦æä¸çæâè§ç©âï¼ 31 æäº¤çæµç¨ä¼è®©äººçæ§ãæ¬ææ¡£æ¶éäºä¸ç³»å建议ï¼è¿äºå»ºè®®å¯ä»¥å¤§å¤§çæé«ä½ 32 çæ¹å¨è¢«æ¥åçæºä¼ã 33 é 读 Documentation/SubmitChecklist æ¥è·å¾å¨æäº¤ä»£ç åéè¦æ£æ¥ç项ç®çå 34 表ãå¦æä½ å¨æäº¤ä¸ä¸ªé©±å¨ç¨åºï¼é£ä¹åæ¶é 读ä¸ä¸ 35 Documentation/SubmittingDrivers ã 36 37 38 -------------------------- 39 第ä¸è - å建并åéä½ çæ¹å¨ 40 -------------------------- 41 42 1) "diff -up" 43 ----------- 44 45 ä½¿ç¨ "diff -up" æè "diff -uprN" æ¥å建补ä¸ã 46 47 ææå æ ¸çæ¹å¨ï¼é½æ¯ä»¥è¡¥ä¸çå½¢å¼åç°çï¼è¡¥ä¸ç± diff(1) çæãå建补ä¸ç 48 æ¶åï¼è¦ç¡®è®¤å®æ¯ä»¥ "unified diff" æ ¼å¼å建çï¼è¿ç§æ ¼å¼ç± diff(1) ç '-u' 49 åæ°çæãèä¸ï¼è¯·ä½¿ç¨ '-p' åæ°ï¼é£æ ·ä¼æ¾ç¤ºæ¯ä¸ªæ¹å¨æå¨çC彿°ï¼ä½¿å¾ 50 产ççè¡¥ä¸å®¹æè¯»å¾å¤ãè¡¥ä¸åºè¯¥åºäºå æ ¸æºä»£ç æ çæ ¹ç®å½ï¼è䏿¯éè¾¹çä»» 51 ä½åç®å½ã 52 为ä¸ä¸ªåç¬çæä»¶å建补ä¸ï¼ä¸è¬æ¥è¯´è¿æ ·åå°±å¤äºï¼ 53 54 SRCTREE= linux-2.6 55 MYFILE= drivers/net/mydriver.c 56 57 cd $SRCTREE 58 cp $MYFILE $MYFILE.orig 59 vi $MYFILE # make your change 60 cd .. 61 diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch 62 63 为å¤ä¸ªæä»¶å建补ä¸ï¼ä½ å¯ä»¥è§£å¼ä¸ä¸ªæ²¡æä¿®æ¹è¿çå æ ¸æºä»£ç æ ï¼ç¶ååä½ èª 64 å·±çä»£ç æ ä¹é´å diff ãä¾å¦ï¼ 65 66 MYSRC= /devel/linux-2.6 67 68 tar xvfz linux-2.6.12.tar.gz 69 mv linux-2.6.12 linux-2.6.12-vanilla 70 diff -uprN -X linux-2.6.12-vanilla/Documentation/dontdiff \ 71 linux-2.6.12-vanilla $MYSRC > /tmp/patch 72 73 "dontdiff" æ¯å æ ¸å¨ç¼è¯çæ¶å产ççæä»¶çå表ï¼å表ä¸çæä»¶å¨ diff(1) 74 产ççè¡¥ä¸éä¼è¢«è·³è¿ã"dontdiff" æä»¶è¢«å å«å¨2.6.12åä¹åçæ¬çå æ ¸æºä»£ 75 ç æ ä¸ãå¯¹äºæ´æ©çå æ ¸çæ¬ï¼ä½ å¯ä»¥ä» 76 <http://www.xenotime.net/linux/doc/dontdiff> è·åå®ã 77 ç¡®å®ä½ çè¡¥ä¸é没æå å«ä»»ä½ä¸å±äºè¿æ¬¡è¡¥ä¸æäº¤çé¢å¤æä»¶ãè®°å¾å¨ç¨diff(1) 78 çæè¡¥ä¸ä¹åï¼å®¡é 䏿¬¡è¡¥ä¸ï¼ä»¥ç¡®ä¿åç¡®ã 79 å¦æä½ çæ¹å¨å¾æ£ä¹±ï¼ä½ åºè¯¥ç ç©¶ä¸ä¸å¦ä½å°è¡¥ä¸å岿ç¬ç«çé¨åï¼å°æ¹å¨å 80 岿ä¸ç³»ååä¹é»è¾çæ¥éª¤ãè¿æ ·æ´å®¹æè®©å ¶ä»å æ ¸å¼åè å®¡æ ¸ï¼å¦æä½ æ³ä½ ç 81 è¡¥ä¸è¢«æ¥åï¼è¿æ¯å¾éè¦çãä¸é¢è¿äºèæ¬è½å¤å¸®å©ä½ åè¿ä»¶äºæ ï¼ 82 Quilt: 83 http://savannah.nongnu.org/projects/quilt 84 85 Andrew Morton çè¡¥ä¸èæ¬: 86 http://www.zip.com.au/~akpm/linux/patches/ 87 ä½ä¸ºè¿äºèæ¬çæ¿ä»£ï¼quilt æ¯å¼å¾æ¨èçè¡¥ä¸ç®¡çå·¥å ·(çä¸é¢ç龿¥)ã 88 89 2)æè¿°ä½ çæ¹å¨ã 90 æè¿°ä½ çæ¹å¨å å«çææ¯ç»èã 91 92 è¦å¤å ·ä½å°±åå¤å ·ä½ãæç³ç³çæè¿°å¯è½æ¯åä¸é¢è¿äºè¯å¥ï¼âæ´æ°äºæé©±å¨ç¨ 93 åºâï¼âä¿®æ£äºæé©±å¨ç¨åºçbugâï¼æè âè¿ä¸ªè¡¥ä¸å å«äºæåç³»ç»çä¿®æ¹ï¼è¯· 94 使ç¨ãâ 95 96 å¦æä½ çæè¿°å¼å§åé¿ï¼è¿è¡¨ç¤ºä½ ä¹è®¸éè¦æåä½ çè¡¥ä¸äºï¼è¯·ç第3å°èï¼ 97 ç»§ç»ã 98 99 3)æåä½ çæ¹å¨ 100 101 å°æ¹å¨æåï¼é»è¾ç±»ä¼¼çæ¾å°åä¸ä¸ªè¡¥ä¸æä»¶éã 102 103 ä¾å¦ï¼å¦æä½ çæ¹å¨éåæ¶æbugä¿®æ£åæ§è½ä¼åï¼é£ä¹æè¿äºæ¹å¨æåå°ä¸¤ä¸ªæ 104 è æ´å¤çè¡¥ä¸æä»¶ä¸ãå¦æä½ çæ¹å¨å å«å¯¹APIçä¿®æ¹ï¼å¹¶ä¸ä¿®æ¹äºé©±å¨ç¨åºæ¥é 105 åºè¿äºæ°çAPIï¼é£ä¹æè¿äºä¿®æ¹åæä¸¤ä¸ªè¡¥ä¸ã 106 107 å¦ä¸æ¹é¢ï¼å¦æä½ å°ä¸ä¸ªåç¬çæ¹å¨åæå¤ä¸ªè¡¥ä¸æä»¶ï¼é£ä¹å°å®ä»¬åå¹¶æä¸ä¸ª 108 åç¬çè¡¥ä¸æä»¶ãè¿æ ·ä¸ä¸ªé»è¾ä¸åç¬çæ¹å¨åªè¢«å å«å¨ä¸ä¸ªè¡¥ä¸æä»¶éã 109 110 妿æä¸ä¸ªè¡¥ä¸ä¾èµå¦å¤ä¸ä¸ªè¡¥ä¸æ¥å®æå®çæ¹å¨ï¼é£æ²¡é®é¢ãç®åçå¨ä½ çè¡¥ 111 ä¸æè¿°éæåºâè¿ä¸ªè¡¥ä¸ä¾èµæè¡¥ä¸â就好äºã 112 113 å¦æä½ ä¸è½å°è¡¥ä¸æµç¼©ææ´å°çæä»¶ï¼é£ä¹æ¯æ¬¡å¤§çº¦åéåº15个ï¼ç¶åçå¾ å®¡æ¥ 114 åæ´åã 115 116 4)éæ© e-mail çæ¶ä»¶äºº 117 118 çä¸é MAINTAINERS æä»¶åæºä»£ç ï¼ççä½ æçæ¹å¨æå¨çå æ ¸åç³»ç»ææ²¡ææ 119 å®çç»´æ¤è ã妿æï¼ç»ä»ä»¬åe-mailã 120 121 å¦ææ²¡ææ¾å°ç»´æ¤è ï¼æè ç»´æ¤è 没æåé¦ï¼å°ä½ çè¡¥ä¸åéå°å æ ¸å¼åè ä¸»é® 122 ä»¶å表 linux-kernel[AT]vger.kernel[DOT]orgã大é¨åçå æ ¸å¼åè é½è·è¸ªè¿ä¸ªé®ä»¶å 123 表ï¼å¯ä»¥è¯ä»·ä½ çæ¹å¨ã 124 125 æ¯æ¬¡ä¸è¦åéè¶ è¿15个补ä¸å° vger é®ä»¶å表ï¼ï¼ï¼ 126 127 Linus Torvalds æ¯å³å®æ¹å¨è½å¦è¿å ¥ Linux å æ ¸çæç»è£å³è ãä»ç e-mail 128 å°åæ¯ <torvalds[AT]linux-foundation[DOT]org> ã仿¶å°ç e-mail å¾å¤ï¼æä»¥ä¸è¬ 129 çè¯´ï¼æå¥½å«ç»ä»å e-mailã 130 131 é£äºä¿®æ£bugï¼âæ¾èæè§âçä¿®æ¹æè æ¯ç±»ä¼¼çåªéè¦å¾å°è®¨è®ºçè¡¥ä¸å¯ä»¥ç´æ¥ 132 åéæè CCç»Linusãé£äºéè¦è®¨è®ºæè 没æå¾æ¸ æ¥ç好å¤çè¡¥ä¸ï¼ä¸è¬å åéå° 133 linux-kernelé®ä»¶å表ãåªæå½è¡¥ä¸è¢«è®¨è®ºå¾å·®ä¸å¤äºï¼ææäº¤ç»Linusã 134 135 5)éæ©CC( e-mail æé)å表 136 137 é¤éä½ æçç±ä¸è¿æ ·åï¼å¦åCC linux-kernel[AT]vger.kernel[DOT]orgã 138 139 é¤äº Linus ä¹å¤ï¼å ¶ä»å æ ¸å¼åè ä¹éè¦æ³¨æå°ä½ çæ¹å¨ï¼è¿æ ·ä»ä»¬æè½è¯è®ºä½ 140 çæ¹å¨å¹¶æä¾ä»£ç 审æ¥å建议ãlinux-kernel æ¯ Linux å æ ¸å¼åè 主é®ä»¶å表 141 ãå ¶å®çé®ä»¶å表为ç¹å®çåç³»ç»æä¾æå¡ï¼æ¯å¦ USBï¼framebuffer 设å¤ï¼è 142 ææä»¶ç³»ç»ï¼SCSI åç³»ç»ï¼ççãæ¥ç MAINTAINERS æä»¶æ¥è·å¾åä½ çæ¹å¨æ 143 å ³çé®ä»¶å表ã 144 145 Majordomo lists of VGER.KERNEL.ORG at: 146 <http://vger.kernel.org/vger-lists.html> 147 148 妿æ¹å¨å½±åäºç¨æ·ç©ºé´åå æ ¸ä¹é´çæ¥å£ï¼è¯·ç» MAN-PAGES çç»´æ¤è ï¼åå¨ 149 MAITAINERS æä»¶éçï¼åéä¸ä¸ªæå页ï¼man-pagesï¼è¡¥ä¸ï¼æè è³å°éç¥ä¸ä¸æ¹ 150 åï¼è®©ä¸äºä¿¡æ¯æéå¾è¿å ¥æå页ã 151 152 å³ä½¿å¨ç¬¬åæ¥çæ¶åï¼ç»´æ¤è 没æä½åºååºï¼ä¹è¦ç¡®è®¤å¨ä¿®æ¹ä»ä»¬ç代ç çæ¶å 153 ï¼ä¸ç´å°ç»´æ¤è æ·è´å°CCå表ä¸ã 154 155 对äºå°çè¡¥ä¸ï¼ä½ ä¹è®¸ä¼CCå° Adrian Bunk 管ççæéçç¢è¡¥ä¸çé®ä»¶å表 156 (Trivial Patch Monkey)trivial[AT]kernel[DOT]orgï¼é£éä¸é¨æ¶éçç¢çè¡¥ä¸ãä¸é¢è¿æ · 157 çè¡¥ä¸ä¼è¢«çä½âçç¢çâè¡¥ä¸ï¼ 158 ææ¡£çæ¼åä¿®æ£ã 159 ä¿®æ£ä¼å½±åå° grep(1) çæ¼åã 160 è¦åä¿¡æ¯ä¿®æ£(é¢ç¹çæå°æ ç¨çè¦åæ¯ä¸å¥½çã) 161 ç¼è¯é误修æ£ï¼ä»£ç é»è¾çç¡®æ¯å¯¹çï¼åªæ¯ç¼è¯æé®é¢ãï¼ 162 è¿è¡æ¶ä¿®æ£ï¼åªè¦ççä¿®æ£äºé误ãï¼ 163 ç§»é¤ä½¿ç¨äºè¢«åºå¼ç彿°/å®ç代ç (ä¾å¦ check_regionã) 164 èç³»æ¹å¼åææ¡£ä¿®æ£ã 165 ç¨å¯ç§»æ¤çä»£ç æ¿æ¢ä¸å¯ç§»æ¤ç代ç ï¼å³ä½¿å¨ä½ç³»ç»æç¸å ³ç代ç ä¸ï¼æ¢ç¶æ 166 人æ·è´ï¼åªè¦å®æ¯çç¢çï¼ 167 任使件çä½è /ç»´æ¤è 对该æä»¶çæ¹å¨ï¼ä¾å¦ patch monkey å¨éä¼ æ¨¡å¼ä¸ï¼ 168 169 URL: <http://www.kernel.org/pub/linux/kernel/people/bunk/trivial/> 170 171 (è¯æ³¨ï¼å ³äºâçç¢è¡¥ä¸âçä¸äºè¯´æï¼å 为åæçè¿ä¸é¨åå徿¯è¾ç®åï¼æä»¥ä¸å¾ä¸ 172 è¿ä¾åä¸ä¸è¯æ³¨ã"trivial"è¿ä¸ªè±æåè¯çæ¬ææ¯âçç¢çï¼ä¸éè¦çãâ使¯å¨è¿é 173 æç¨å¾®æä¸äºååï¼ä¾å¦å¯¹ä¸äºææ¾çNULLæéçä¿®æ£ï¼å±äºè¿è¡æ¶ä¿®æ£ï¼ä¼è¢«å½ç±» 174 å°çç¢è¡¥ä¸éãè½ç¶NULLæéçä¿®æ£å¾éè¦ï¼ä½æ¯è¿æ ·çä¿®æ£å¾å¾å¾å°èä¸å¾å®¹æå¾å° 175 æ£éªï¼æä»¥ä¹è¢«å½å ¥çç¢è¡¥ä¸ãçç¢è¡¥ä¸æ´ç²¾ç¡®çå½ç±»åºè¯¥æ¯ 176 âsimple, localized & easy to verifyâï¼ä¹å°±æ¯è¯´ç®åçï¼å±é¨çåæäºæ£éªçã 177 trivial[AT]kernel[DOT]orgé®ä»¶å表çç®çæ¯éå¯¹è¿æ ·çè¡¥ä¸ï¼ä¸ºæäº¤è æä¾ä¸ä¸ªä¸å¿ï¼æ¥ 178 éä½æäº¤ç鍿§ã) 179 180 6)没æ MIME ç¼ç ï¼æ²¡æé¾æ¥ï¼æ²¡æåç¼©ï¼æ²¡æéä»¶ï¼åªæçº¯ææ¬ã 181 182 Linus åå ¶ä»çå æ ¸å¼åè éè¦é 读åè¯è®ºä½ æäº¤çæ¹å¨ã对äºå æ ¸å¼åè æ¥è¯´ 183 ï¼å¯ä»¥âå¼ç¨âä½ çæ¹å¨å¾éè¦ï¼ä½¿ç¨ä¸è¬ç e-mail å·¥å ·ï¼ä»ä»¬å°±å¯ä»¥å¨ä½ ç 184 代ç çä»»ä½ä½ç½®æ·»å è¯è®ºã 185 186 å 为è¿ä¸ªåå ï¼ææçæäº¤çè¡¥ä¸é½æ¯ e-mail ä¸âå åµâçã 187 è¦åï¼å¦æä½ 使ç¨åªå-ç²è´´ä½ çè¡¥ä¸ï¼å°å¿ä½ çç¼è¾å¨çèªå¨æ¢è¡åè½ç ´åä½ ç 188 è¡¥ä¸ã 189 190 ä¸è¦å°è¡¥ä¸ä½ä¸º MIME ç¼ç çéä»¶ï¼ä¸ç®¡æ¯å¦å缩ãå¾å¤æµè¡ç e-mail è½¯ä»¶ä¸ 191 æ¯ä»»ä½æ¶åé½å° MIME ç¼ç çéä»¶å½ä½çº¯ææ¬åéçï¼è¿ä¼ä½¿å¾å«äººæ æ³å¨ä½ ç 192 代ç ä¸å è¯è®ºãå¦å¤ï¼MIME ç¼ç çéä»¶ä¼è®© Linus å¤è±ä¸ç¹æ¶é´æ¥å¤çï¼è¿å°± 193 éä½äºä½ çæ¹å¨è¢«æ¥åçå¯è½æ§ã 194 195 è¦åï¼ä¸äºé®ä»¶è½¯ä»¶ï¼æ¯å¦ Mozilla ä¼å°ä½ çä¿¡æ¯ä»¥å¦ä¸æ ¼å¼åéï¼ 196 ---- é®ä»¶å¤´ ---- 197 Content-Type: text/plain; charset=us-ascii; format=flowed 198 ---- é®ä»¶å¤´ ---- 199 é®é¢å¨äº âformat=flowedâ ä¼è®©æ¥æ¶ç«¯çæäºé®ä»¶è½¯ä»¶å°é®ä»¶ä¸çå¶è¡¨ç¬¦æ¿æ¢ 200 æç©ºæ ¼ä»¥ååä¸äºç±»ä¼¼çæ¿æ¢ãè¿æ ·ï¼ä½ åéçæ¶åçèµ·æ¥æ²¡é®é¢çè¡¥ä¸å°±è¢«ç ´ 201 åäºã 202 203 è¦ä¿®æ£è¿ä¸ªé®é¢ï¼åªéè¦å°ä½ ç mozilla ç defaults/pref/mailnews.js æä»¶ 204 éç 205 pref("mailnews.send_plaintext_flowed", false); // RFC 2646======= 206 ä¿®æ¹æ 207 pref("mailnews.display.disable_format_flowed_support", true); 208 å°±å¯ä»¥äºã 209 210 7) e-mail çå¤§å° 211 212 ç» Linus åéè¡¥ä¸çæ¶åï¼æ°¸è¿æç §ç¬¬6å°è说çåã 213 214 å¤§çæ¹å¨å¯¹é®ä»¶å表ä¸åéï¼å¯¹æäºç»´æ¤è ä¹ä¸åéãå¦æä½ çè¡¥ä¸ï¼å¨ä¸å缩 215 çæ åµä¸ï¼è¶ è¿äº40kBï¼é£ä¹ä½ æå¥½å°è¡¥ä¸æ¾å¨ä¸ä¸ªè½éè¿ internet 访é®çæ 216 å¡å¨ä¸ï¼ç¶åç¨æåä½ çè¡¥ä¸ç URL æ¿ä»£ã 217 218 8) æåºä½ çå æ ¸çæ¬ 219 220 卿 é¢åå¨è¡¥ä¸çæè¿°ä¸ï¼æåºè¡¥ä¸å¯¹åºçå æ ¸ççæ¬ï¼æ¯å¾éè¦çã 221 222 å¦æè¡¥ä¸ä¸è½å¹²åç卿æ°çæ¬çå æ ¸ä¸æä¸ï¼Linus æ¯ä¸ä¼æ¥åå®çã 223 224 9) ä¸è¦æ°é¦ï¼ç»§ç»æäº¤ã 225 226 å½ä½ æäº¤äºæ¹å¨ä»¥åï¼èå¿å°çå¾ ã妿 Linus 忬¢ä½ çæ¹å¨å¹¶ä¸åæå®ï¼é£ä¹ 227 å®å°å¨ä¸ä¸ä¸ªå æ ¸åå¸çæ¬ä¸åºç°ã 228 229 ç¶èï¼å¦æä½ çæ¹å¨æ²¡æåºç°å¨ä¸ä¸ä¸ªçæ¬çå æ ¸ä¸ï¼å¯è½æè¥å¹²åå ãåå°é£ 230 äºåå ï¼ä¿®æ£é误ï¼éæ°æäº¤æ´æ°åçæ¹å¨ï¼æ¯ä½ èªå·±çå·¥ä½ã 231 232 Linusä¸ç»åºä»»ä½è¯è®ºå°±â丢å¼âä½ çè¡¥ä¸æ¯å¸¸è§çäºæ ãå¨ç³»ç»ä¸è¿æ ·çäºæ å¾ 233 平常ã妿仿²¡ææ¥åä½ çè¡¥ä¸ï¼ä¹è®¸æ¯ç±äºä»¥ä¸åæ¬ï¼ 234 * ä½ çè¡¥ä¸ä¸è½å¨ææ°çæ¬çå æ ¸ä¸å¹²åçæä¸ã 235 * ä½ çè¡¥ä¸å¨ linux-kernel é®ä»¶åè¡¨ä¸æ²¡æå¾å°å åç讨论ã 236 * 飿 ¼é®é¢ï¼åç §ç¬¬2å°èï¼ 237 * é®ä»¶æ ¼å¼é®é¢ï¼é读æ¬èï¼ 238 * ä½ çæ¹å¨æææ¯é®é¢ã 239 * 仿¶å°äºæå¨ç e-mailï¼èä½ ç卿··ä¹±ä¸ä¸¢å¤±äºã 240 * ä½ è®©äººä¸ºé¾ã 241 242 æçé®çæ¶åï¼å¨ linux-kernel é®ä»¶å表ä¸è¯·æ±è¯è®ºã 243 244 10) 卿 é¢ä¸å ä¸ PATCH çåæ · 245 246 Linus å linux-kernel é®ä»¶å表ç e-mail æµéé½å¾é«ï¼ä¸ä¸ªé常ççº¦å®æ¯æ 247 é¢è¡ä»¥ [PATCH] å¼å¤´ãè¿æ ·å¯ä»¥è®© Linus åå ¶ä»å æ ¸å¼å人åå¯ä»¥ä» e-mail 248 ç讨论ä¸å¾è½»æçå°è¡¥ä¸åè¾¨åºæ¥ã 249 250 11ï¼ä¸ºä½ çå·¥ä½ç¾å 251 252 为äºå 强对è°åäºä½äºç追踪ï¼å°¤å ¶æ¯å¯¹é£äºéè¿å¥½å å±çç»´æ¤è çè¡¥ä¸ï¼æä»¬ 253 建议å¨åéåºå»çè¡¥ä¸ä¸å ä¸ä¸ª âsign-offâ çè¿ç¨ã 254 255 "sign-off" æ¯å¨è¡¥ä¸ç注éçæåçç®åçä¸è¡æåï¼è®¤è¯ä½ ç¼åäºå®æè å ¶ä» 256 人ææåå°å®ä½ä¸ºå¼æ¾æºä»£ç çè¡¥ä¸ä¼ éãè§åå¾ç®åï¼å¦æä½ è½è®¤è¯å¦ä¸ä¿¡æ¯ 257 ï¼ 258 å¼åè æ¥æºè¯ä¹¦ 1.1 259 å¯¹äºæ¬é¡¹ç®çè´¡ç®ï¼æè®¤è¯å¦ä¸ä¿¡æ¯ï¼ 260 ï¼aï¼è¿äºè´¡ç®æ¯å®å ¨æè é¨åçç±æåå»ºï¼æææå©ä»¥æä»¶ä¸æåº 261 ç弿¾æºä»£ç 许å¯è¯æäº¤å®ï¼æè 262 ï¼bï¼è¿äºè´¡ç®åºäºä»¥åçå·¥ä½ï¼æ®ææç¥ï¼è¿äºä»¥åçå·¥ä½åæ°å½ç弿¾ 263 æºä»£ç 许å¯è¯ä¿æ¤ï¼èä¸ï¼æ ¹æ®è®¸å¯è¯ï¼ææææäº¤ä¿®æ¹åçè´¡ç®ï¼ 264 æ 论æ¯å®å ¨è¿æ¯é¨åç±æåé ï¼è¿äºè´¡ç®é½ä½¿ç¨åä¸ä¸ªå¼æ¾æºä»£ç 许å¯è¯ 265 ï¼é¤éæè¢«å 许ç¨å ¶å®ç许å¯è¯ï¼ï¼æ£å¦æä»¶ä¸æåºçï¼æè 266 ï¼cï¼è¿äºè´¡ç®ç±è®¤è¯ï¼aï¼ï¼ï¼bï¼æè ï¼cï¼çäººç´æ¥æä¾ç»æï¼è 267 ä¸ææ²¡æä¿®æ¹å®ã 268 ï¼dï¼æç解并åæè¿ä¸ªé¡¹ç®åè´¡ç®æ¯å ¬å¼çï¼è´¡ç®çè®°å½ï¼å æ¬æ 269 ä¸èµ·æäº¤ç个人记å½ï¼å æ¬ sign-off ï¼è¢«æ°¸ä¹ ç»´æ¤å¹¶ä¸å¯ä»¥åè¿ä¸ªé¡¹ç® 270 æè 弿¾æºä»£ç ç许å¯è¯åæ¥å°ååè¡ã 271 é£ä¹å å ¥è¿æ ·ä¸è¡ï¼ 272 Signed-off-by: Random J Developer <random[AT]developer.example[DOT]org> 273 274 使ç¨ä½ ççåï¼æ±æï¼ä¸è½ä½¿ç¨ååæè å¿åãï¼ 275 276 æäººå¨æåå 䏿 ç¾ãç°å¨è¿äºä¸è¥¿ä¼è¢«å¿½ç¥ï¼ä½æ¯ä½ å¯ä»¥è¿æ ·åï¼æ¥æ è®°å ¬å¸ 277 å é¨çè¿ç¨ï¼æè åªæ¯æåºå ³äº sign-off çä¸äºç¹æ®ç»èã 278 279 12ï¼æ åè¡¥ä¸æ ¼å¼ 280 281 æ åçè¡¥ä¸ï¼æ é¢è¡æ¯ï¼ 282 Subject: [PATCH 001/123] åç³»ç»:ä¸å¥è¯æ¦è¿° 283 284 æ åè¡¥ä¸çä¿¡ä½åå¨å¦ä¸é¨åï¼ 285 286 - ä¸ä¸ª "from" è¡æåºè¡¥ä¸ä½è ã 287 288 - ä¸ä¸ªç©ºè¡ 289 290 - 说æç主ä½ï¼è¿äºè¯´ææåä¼è¢«æ·è´å°æè¿°è¯¥è¡¥ä¸çæ°¸ä¹ æ¹å¨è®°å½éã 291 292 - ä¸ä¸ªç±"---"ææçæ è®°è¡ 293 294 - ä¸å鿾尿¹å¨è®°å½éçé¢å¤ç注解ã 295 296 - è¡¥ä¸æ¬èº«ï¼diff è¾åºï¼ 297 298 æ é¢è¡çæ ¼å¼ï¼ä½¿å¾å¯¹æ é¢è¡æåæ¯åºæåºé常ç容æ - å¾å¤ e-mail 客æ·ç«¯é½ 299 å¯ä»¥æ¯æ - å 为åºåå·æ¯ç¨é¶å¡«å çï¼æä»¥ææ°åæåºåæåæ¯æåºæ¯ä¸æ ·çã 300 301 e-mail æ é¢ä¸çâåç³»ç»âæ è¯åªä¸ªå æ ¸åç³»ç»å°è¢«æè¡¥ä¸ã 302 303 e-mail æ é¢ä¸çâä¸å¥è¯æ¦è¿°âæ¼è¦çæè¿° e-mail ä¸çè¡¥ä¸ãâä¸å¥è¯æ¦è¿°â 304 ä¸åºè¯¥æ¯ä¸ä¸ªæä»¶åã对äºä¸ä¸ªè¡¥ä¸ç³»åï¼âè¡¥ä¸ç³»åâæä¸ç³»åçå¤ä¸ªç¸å ³è¡¥ 305 ä¸ï¼ï¼ä¸è¦å¯¹æ¯ä¸ªè¡¥ä¸é½ä½¿ç¨åæ ·çâä¸å¥è¯æ¦è¿°âã 306 307 è®°ä½ e-mail çâä¸å¥è¯æ¦è¿°âä¼æä¸ºè¯¥è¡¥ä¸çå ¨å±å¯ä¸æ è¯ãå®ä¼èå»¶å° git 308 çæ¹å¨è®°å½éãç¶åâä¸å¥è¯æ¦è¿°âä¼è¢«ç¨å¨å¼åè ç讨论éï¼ç¨æ¥æä»£è¿ä¸ªè¡¥ 309 ä¸ãç¨æ·å°å¸æéè¿ google æ¥æç´¢"ä¸å¥è¯æ¦è¿°"æ¥æ¾å°é£äºè®¨è®ºè¿ä¸ªè¡¥ä¸çæ 310 ç« ã 311 312 ä¸äºæ é¢çä¾åï¼ 313 314 Subject: [patch 2/5] ext2: improve scalability of bitmap searching 315 Subject: [PATCHv2 001/207] x86: fix eflags tracking 316 317 "from" è¡æ¯ä¿¡ä½éçæä¸é¢ä¸è¡ï¼å ·æå¦ä¸æ ¼å¼ï¼ 318 From: Original Author <author[AT]example[DOT]com> 319 320 "from" è¡ææå¨æ°¸ä¹ æ¹å¨æ¥å¿éï¼è°ä¼è¢«ç¡®è®¤ä¸ºä½è ãå¦ææ²¡æ "from" è¡ï¼é£ 321 ä¹é®ä»¶å¤´éç "From: " è¡ä¼è¢«ç¨æ¥å³å®æ¹å¨æ¥å¿ä¸çä½è ã 322 323 说æç主é¢å°ä¼è¢«æäº¤å°æ°¸ä¹ çæºä»£ç æ¹å¨æ¥å¿éï¼å æ¤å¯¹é£äºæ©å·²ç»ä¸è®°å¾å 324 è¿ä¸ªè¡¥ä¸ç¸å ³ç讨论ç»èçæè½åçè¯»è æ¥è¯´ï¼æ¯ææä¹çã 325 326 "---" æ è®°è¡å¯¹äºè¡¥ä¸å¤çå·¥å ·è¦æ¾å°åªéæ¯æ¹å¨æ¥å¿ä¿¡æ¯çç»æï¼æ¯ä¸å¯ç¼ºå° 327 çã 328 329 å¯¹äº "---" æ è®°ä¹åçé¢å¤æ³¨è§£ï¼ä¸ä¸ªå¥½çç¨éå°±æ¯ç¨æ¥å diffstatï¼ç¨æ¥æ¾ 330 示修æ¹äºä»ä¹æä»¶åæ¯ä¸ªæä»¶é½å¢å åå é¤äºå¤å°è¡ãdiffstat å¯¹äºæ¯è¾å¤§çè¡¥ 331 ä¸ç¹å«æç¨ãå ¶ä½é£äºåªæ¯åæ¶å»æè å¼åè ç¸å ³ç注解ï¼ä¸å鿾尿°¸ä¹ çæ¹ 332 卿¥å¿éçï¼ä¹åºè¯¥æ¾è¿éã 333 ä½¿ç¨ diffstatçé项 "-p 1 -w 70" è¿æ ·æä»¶åå°±ä¼ä»å æ ¸æºä»£ç æ çç®å½å¼å§ 334 ï¼ä¸ä¼å ç¨å¤ªå®½ç空é´ï¼å¾å®¹æéå80åç宽度ï¼ä¹è®¸ä¼æä¸äºç¼©è¿ãï¼ 335 336 å¨åé¢çåèèµæä¸è½çå°éå½çè¡¥ä¸æ ¼å¼çæ´å¤ç»èã 337 338 ------------------------------- 339 第äºè æç¤ºï¼å»ºè®®åè¯çª 340 ------------------------------- 341 342 æ¬èå å«å¾å¤åæäº¤å°å æ ¸çä»£ç æå ³çé常ç"è§å"ãäºæ æ°¸è¿æä¾å¤...使¯ 343 ä½ å¿ é¡»ççæå¥½ççç±è¿æ ·åãä½ å¯ä»¥ææ¬èå«åLinusçè®¡ç®æºç§å¦å ¥é¨è¯¾ã 344 345 1) 读 Document/CodingStyle 346 347 Nuff 说è¿ï¼å¦æä½ ç代ç åè¿ä¸ªå离太å¤ï¼é£ä¹å®æå¯è½ä¼è¢«æç»ï¼æ²¡ææ´å¤ç 348 审æ¥ï¼æ²¡ææ´å¤çè¯ä»·ã 349 350 2) #ifdef æ¯ä¸éç 351 æ··æäº ifdef ç代ç é¾ä»¥é 读åç»´æ¤ãå«è¿æ ·åãä½ä¸ºæ¿ä»£ï¼å°ä½ ç ifdef æ¾ 352 å¨å¤´æä»¶éï¼ææ¡ä»¶å°å®ä¹ "static inline" 彿°ï¼æè å®ï¼å¨ä»£ç éç¨è¿äºä¸ 353 西ã让ç¼è¯å¨æé£äº"空æä½"ä¼åæã 354 355 ä¸ä¸ªç®åçä¾åï¼ä¸å¥½ç代ç ï¼ 356 357 dev = alloc_etherdev (sizeof(struct funky_private)); 358 if (!dev) 359 return -ENODEV; 360 #ifdef CONFIG_NET_FUNKINESS 361 init_funky_net(dev); 362 #endif 363 364 æ¸ çåçä¾å: 365 366 (头æä»¶é) 367 #ifndef CONFIG_NET_FUNKINESS 368 static inline void init_funky_net (struct net_device *d) {} 369 #endif 370 371 (ä»£ç æä»¶é) 372 dev = alloc_etherdev (sizeof(struct funky_private)); 373 if (!dev) 374 return -ENODEV; 375 init_funky_net(dev); 376 377 3) 'static inline' æ¯å®å¥½ 378 379 Static inline 彿°ç¸æ¯å®æ¥è¯´ï¼æ¯å¥½å¾å¤çéæ©ãStatic inline 彿°æä¾äº 380 ç±»åå®å ¨ï¼æ²¡æé¿åº¦éå¶ï¼æ²¡ææ ¼å¼éå¶ï¼å¨ gcc ä¸å¼éåå®ä¸æ ·å°ã 381 382 å®åªå¨ static inline 彿°ä¸æ¯æä¼çæ¶å[å¨ fast paths éæå¾å°çç¬ç«ç 383 æ¡ä¾]ï¼æè ä¸å¯è½ç¨ static inline 彿°çæ¶å[ä¾å¦å符串åé ]ã 384 åºè¯¥ç¨ 'static inline' è䏿¯ 'static __inline__', 'extern inline' å 385 'extern __inline__' ã 386 387 4) ä¸è¦è¿åº¦è®¾è®¡ 388 389 ä¸è¦è¯å¾é¢è®¡æ¨¡ç³çæªæ¥äºæ ï¼è¿äºäºæ ä¹è®¸æç¨ä¹è®¸æ²¡æç¨ï¼"è®©äºæ å°½å¯è½ç 390 ç®åï¼è䏿¯æ´ç®å"ã 391 392 ---------------- 393 第ä¸è åèæç® 394 ---------------- 395 396 Andrew Morton, "The perfect patch" (tpp). 397 <http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt> 398 399 Jeff Garzik, "Linux kernel patch submission format". 400 <http://linux.yyz.us/patch-format.html> 401 402 Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer". 403 <http://www.kroah.com/log/2005/03/31/> 404 <http://www.kroah.com/log/2005/07/08/> 405 <http://www.kroah.com/log/2005/10/19/> 406 <http://www.kroah.com/log/2006/01/11/> 407 408 NO!!!! No more huge patch bombs to linux-kernel[AT]vger.kernel[DOT]org people! 409 <http://marc.theaimsgroup.com/?l=linux-kernel&m=112112749912944&w=2> 410 411 Kernel Documentation/CodingStyle: 412 <http://sosdg.org/~coywolf/lxr/source/Documentation/CodingStyle> 413 414 Linus Torvalds's mail on the canonical patch format: 415 <http://lkml.org/lkml/2005/4/7/183> 416 --