.. _cn_submittingpatches: .. include:: ../disclaimer-zh_CN.rst :Original: :ref:`Documentation/process/submitting-patches.rst <submittingpatches>` è¯è :: ä¸æçç»´æ¤è ï¼ éå® TripleX Chung <xxx.phy@gmail.com> ä¸æçç¿»è¯è ï¼ éå® TripleX Chung <xxx.phy@gmail.com> æ¶å¥äº® Alex Shi <alex.shi@linux.alibaba.com> ä¸æçæ ¡è¯è ï¼ æé³ Li Yang <leoyang.li@nxp.com> çèª Wang Cong <xiyou.wangcong@gmail.com> å¦ä½è®©ä½ çæ¹å¨è¿å ¥å æ ¸ ====================== 对äºæ³è¦å°æ¹å¨æäº¤å° Linux å æ ¸ç个人æè å ¬å¸æ¥è¯´ï¼å¦æä¸çæâè§ç©âï¼ æ交çæµç¨ä¼è®©äººçæ§ãæ¬ææ¡£æ¶éäºä¸ç³»å建议ï¼è¿äºå»ºè®®å¯ä»¥å¤§å¤§çæé«ä½ çæ¹å¨è¢«æ¥åçæºä¼. 以ä¸ææ¡£å«æ大éç®æ´çå»ºè®®ï¼ å ·ä½è¯·è§ï¼ :ref:`Documentation/process <development_process_main>` åæ ·ï¼:ref:`Documentation/translations/zh_CN/process/submit-checklist.rst <cn_submitchecklist>` ç»åºå¨æ交代ç åéè¦æ£æ¥ç项ç®çå表ãå¦æä½ å¨æ交ä¸ä¸ªé©±å¨ç¨åºï¼é£ä¹ åæ¶é 读ä¸ä¸: :ref:`Documentation/process/submitting-drivers.rst <submittingdrivers>` å ¶ä¸è®¸å¤æ¥éª¤æè¿°äºGitçæ¬æ§å¶ç³»ç»çé»è®¤è¡ä¸ºï¼å¦ææ¨ä½¿ç¨Gitæ¥åå¤è¡¥ä¸ï¼ æ¨å°åç°å®ä¸ºæ¨å®æç大é¨åæºæ¢°å·¥ä½ï¼å°½ç®¡æ¨ä»ç¶éè¦åå¤åè®°å½ä¸ç»åçç è¡¥ä¸ãä¸è¬æ¥è¯´ï¼ä½¿ç¨gitå°ä½¿æ¨ä½ä¸ºå æ ¸å¼å人åççæ´»æ´è½»æ¾ã 0) è·åå½åæºç æ ----------------- å¦ææ¨æ²¡æä¸ä¸ªå¯ä»¥ä½¿ç¨å½åå æ ¸æºä»£ç çåå¨åºï¼è¯·ä½¿ç¨gitè·åä¸ä¸ªãæ¨å°è¦ ä»ä¸»çº¿åå¨åºå¼å§ï¼å®å¯ä»¥éè¿ä»¥ä¸æ¹å¼è·å:: git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git ä½æ¯ï¼è¯·æ³¨æï¼æ¨å¯è½ä¸å¸æç´æ¥é对主线æ è¿è¡å¼åã大å¤æ°åç³»ç»ç»´æ¤äººåè¿ è¡èªå·±çæ ï¼å¹¶å¸æçå°é对è¿äºæ åå¤çè¡¥ä¸ã请åè§MAINTAINERSæ件ä¸åç³» ç»ç **T:** 项以æ¥æ¾è¯¥æ ï¼æè ç®åå°è¯¢é®ç»´æ¤è 该æ æ¯å¦æªå¨å ¶ä¸ååºã ä»ç¶å¯ä»¥éè¿tarballsä¸è½½å æ ¸çæ¬ï¼å¦ä¸ä¸èæè¿°ï¼ï¼ä½è¿æ¯è¿è¡å æ ¸å¼åç ä¸ç§å°é¾çæ¹å¼ã 1) "diff -up" ------------- ä½¿ç¨ "diff -up" æè "diff -uprN" æ¥å建补ä¸ã ææå æ ¸çæ¹å¨ï¼é½æ¯ä»¥è¡¥ä¸çå½¢å¼åç°çï¼è¡¥ä¸ç± diff(1) çæãå建补ä¸ç æ¶åï¼è¦ç¡®è®¤å®æ¯ä»¥ "unified diff" æ ¼å¼å建çï¼è¿ç§æ ¼å¼ç± diff(1) ç '-u' åæ°çæãèä¸ï¼è¯·ä½¿ç¨ '-p' åæ°ï¼é£æ ·ä¼æ¾ç¤ºæ¯ä¸ªæ¹å¨æå¨çCå½æ°ï¼ä½¿å¾ 产ççè¡¥ä¸å®¹æ读å¾å¤ãè¡¥ä¸åºè¯¥åºäºå æ ¸æºä»£ç æ çæ ¹ç®å½ï¼èä¸æ¯éè¾¹çä»» ä½åç®å½ã 为ä¸ä¸ªåç¬çæ件å建补ä¸ï¼ä¸è¬æ¥è¯´è¿æ ·åå°±å¤äº:: SRCTREE=linux MYFILE=drivers/net/mydriver.c cd $SRCTREE cp $MYFILE $MYFILE.orig vi $MYFILE # make your change cd .. diff -up $SRCTREE/$MYFILE{.orig,} > /tmp/patch 为å¤ä¸ªæ件å建补ä¸ï¼ä½ å¯ä»¥è§£å¼ä¸ä¸ªæ²¡æä¿®æ¹è¿çå æ ¸æºä»£ç æ ï¼ç¶ååä½ èª å·±ç代ç æ ä¹é´å diff ãä¾å¦:: MYSRC=/devel/linux tar xvfz linux-3.19.tar.gz mv linux-3.19 linux-3.19-vanilla diff -uprN -X linux-3.19-vanilla/Documentation/dontdiff \ linux-3.19-vanilla $MYSRC > /tmp/patch "dontdiff" æ¯å æ ¸å¨ç¼è¯çæ¶å产ççæ件çå表ï¼å表ä¸çæä»¶å¨ diff(1) 产ççè¡¥ä¸éä¼è¢«è·³è¿ã ç¡®å®ä½ çè¡¥ä¸é没æå å«ä»»ä½ä¸å±äºè¿æ¬¡è¡¥ä¸æ交çé¢å¤æ件ãè®°å¾å¨ç¨diff(1) çæè¡¥ä¸ä¹åï¼å®¡é ä¸æ¬¡è¡¥ä¸ï¼ä»¥ç¡®ä¿åç¡®ã å¦æä½ çæ¹å¨å¾æ£ä¹±ï¼ä½ åºè¯¥ç 究ä¸ä¸å¦ä½å°è¡¥ä¸åå²æç¬ç«çé¨åï¼å°æ¹å¨å å²æä¸ç³»ååä¹é»è¾çæ¥éª¤ãè¿æ ·æ´å®¹æè®©å ¶ä»å æ ¸å¼åè å®¡æ ¸ï¼å¦æä½ æ³ä½ ç è¡¥ä¸è¢«æ¥åï¼è¿æ¯å¾éè¦çã请åé ï¼ :ref:`cn_split_changes` å¦æä½ ç¨ ``git`` , ``git rebase -i`` å¯ä»¥å¸®å©ä½ è¿ä¸ç¹ãå¦æä½ ä¸ç¨ ``git``, ``quilt`` <https://savannah.nongnu.org/projects/quilt> å¦å¤ä¸ä¸ªæµè¡çéæ©ã .. _cn_describe_changes: 2) æè¿°ä½ çæ¹å¨ --------------- æè¿°ä½ çé®é¢ãæ 论æ¨çè¡¥ä¸æ¯ä¸è¡é误修å¤è¿æ¯5000è¡æ°åè½ï¼é½å¿ é¡»æä¸ä¸ªæ½å¨ çé®é¢æ¿å±æ¨å®æè¿é¡¹å·¥ä½ã让审稿人ç¸ä¿¡æä¸ä¸ªé®é¢å¼å¾è§£å³ï¼è®©ä»ä»¬è¯»å®ç¬¬ä¸æ®µ æ¯ææä¹çã æè¿°ç¨æ·å¯è§çå½±åãç´æ¥å´©æºåéå®æ¯ç¸å½æ说æåçï¼ä½å¹¶ä¸æ¯ææçé误é½é£ä¹ æç®å¼ èãå³ä½¿å¨ä»£ç 审æ¥æé´åç°äºè¿ä¸ªé®é¢ï¼ä¹è¦æè¿°ä¸ä¸æ¨è®¤ä¸ºå®å¯è½å¯¹ç¨æ·äº§ ççå½±åã请记ä½ï¼å¤§å¤æ°Linuxå®è£ è¿è¡çå æ ¸æ¥èªäºçº§ç¨³å®æ æç¹å®äºä¾åºå/产å çæ ï¼åªä»ä¸æ¸¸ç²¾éç¹å®çè¡¥ä¸ï¼å æ¤è¯·å å«ä»»ä½å¯ä»¥å¸®å©æ¨å°æ´æ¹å®ä½å°ä¸æ¸¸çå å®¹ï¼ è§¦åçåºæ¯ãDMESGçæå½ãå´©æºæè¿°ãæ§è½åå½ã延è¿å°å³°ãéå®çã éåä¼ååæè¡¡ãå¦ææ¨å£°ç§°å¨æ§è½ãå åæ¶èãå æ å ç¨ç©ºé´æäºè¿å¶å¤§å°æ¹é¢ææ æ¹è¿ï¼è¯·å æ¬æ¯æå®ä»¬çæ°åãä½ä¹è¦æè¿°ä¸ææ¾çææ¬ãä¼åé常ä¸æ¯å è´¹çï¼èæ¯ å¨CPUãå ååå¯è¯»æ§ä¹é´è¿è¡æè¡¡ï¼æè ï¼æ¢ç´¢æ§çå·¥ä½ï¼å¨ä¸åçå·¥ä½è´è½½ä¹é´è¿ è¡æè¡¡ã请æè¿°ä¼åçé¢æ缺ç¹ï¼ä»¥ä¾¿å®¡é è å¯ä»¥æè¡¡ææ¬åæ¶çã ä¸æ¦é®é¢å»ºç«èµ·æ¥ï¼å°±è¦è¯¦ç»å°æè¿°ä¸ä¸æ¨å®é å¨åä»ä¹ã对äºå®¡é è æ¥è¯´ï¼ç¨ç®åç è±è¯æ述代ç çååæ¯å¾éè¦çï¼ä»¥éªè¯ä»£ç çè¡ä¸ºæ¯å¦ç¬¦åæ¨çææ¿ã å¦ææ¨å°è¡¥ä¸æè¿°åå¨ä¸ä¸ªè¡¨åä¸ï¼è¿ä¸ªè¡¨åå¯ä»¥å¾å®¹æå°ä½ä¸ºâæ交æ¥å¿âæ¾å ¥Linux çæºä»£ç 管çç³»ç»gitä¸ï¼é£ä¹ç»´æ¤äººåå°é常æè°¢æ¨ãè§ :ref:`cn_explicit_in_reply_to`. æ¯ä¸ªè¡¥ä¸åªè§£å³ä¸ä¸ªé®é¢ãå¦æä½ çæè¿°å¼å§åé¿ï¼è¿å°±è¡¨æä½ å¯è½éè¦æåä½ çè¡¥ä¸ã è¯·è§ :ref:`cn_split_changes` æ交æéæ°æ交修补ç¨åºæ修补ç¨åºç³»åæ¶ï¼è¯·å æ¬å®æ´ç修补ç¨åºè¯´æåçç±ãä¸è¦ åªè¯´è¿æ¯è¡¥ä¸ï¼ç³»åï¼ç第å çãä¸è¦ææåç³»ç»ç»´æ¤äººåå¼ç¨æ´æ©çè¡¥ä¸çæ¬æå¼ç¨ URLæ¥æ¥æ¾è¡¥ä¸æ述并å°å ¶æ¾å ¥è¡¥ä¸ä¸ãä¹å°±æ¯è¯´ï¼è¡¥ä¸ï¼ç³»åï¼åå ¶æè¿°åºè¯¥æ¯ç¬ç«çã è¿å¯¹ç»´æ¤äººåå审æ¥äººåé½æ好å¤ãä¸äºè¯å®¡è å¯è½çè³æ²¡ææ¶å°è¡¥ä¸çæ©æçæ¬ã æè¿°ä½ å¨å½ä»¤è¯æ°ä¸çååï¼ä¾å¦âmake xyzzy do frotzâèä¸æ¯â[è¿ä¸ªè¡¥ä¸]make xyzzy do frotzâæâ[æ]changed xyzzy to do frotzâï¼å°±å¥½åä½ å¨å½ä»¤ä»£ç åºæ¹å å®çè¡ä¸ºä¸æ ·ã å¦æ修补ç¨åºä¿®å¤äºä¸ä¸ªè®°å½çbugæ¡ç®ï¼è¯·æç¼å·åURLå¼ç¨è¯¥bugæ¡ç®ãå¦æè¡¥ä¸æ¥ èªé®ä»¶å表讨论ï¼è¯·ç»åºé®ä»¶å表åæ¡£çURLï¼ä½¿ç¨å¸¦æ ``Message-ID`` ç https://lkml.kernel.org/ éå®åï¼ä»¥ç¡®ä¿é¾æ¥ä¸ä¼è¿æ¶ã ä½æ¯ï¼å¨æ²¡æå¤é¨èµæºçæ åµä¸ï¼å°½éè®©ä½ ç解éå¯ç解ãé¤äºæä¾é®ä»¶å表åæ¡£æ bugçURLä¹å¤ï¼è¿è¦æ»ç»éè¦æ交补ä¸çç¸å ³è®¨è®ºè¦ç¹ã å¦ææ¨æ³è¦å¼ç¨ä¸ä¸ªç¹å®çæ交ï¼ä¸è¦åªå¼ç¨æ交ç SHA-1 IDãè¿è¯·å æ¬æ交çä¸è¡ æè¦ï¼ä»¥ä¾¿äºå®¡é è äºè§£å®æ¯å ³äºä»ä¹çãä¾å¦:: Commit e21d2170f36602ae2708 ("video: remove unnecessary platform_set_drvdata()") removed the unnecessary platform_set_drvdata(), but left the variable "dev" unused, delete it. æ¨è¿åºè¯¥ç¡®ä¿è³å°ä½¿ç¨å12ä½ SHA-1 ID. å æ ¸åå¨åºå å«*许å¤*对象ï¼ä½¿ä¸è¾ççID åçå²çªçå¯è½æ§å¾å¤§ãè®°ä½ï¼å³ä½¿ç°å¨ä¸ä¼ä¸æ¨çå 个å符IDåçå²çªï¼è¿ç§æ åµ å¯è½äºå¹´åæ¹åã å¦æ修补ç¨åºä¿®å¤äºç¹å®æ交ä¸çé误ï¼ä¾å¦ï¼ä½¿ç¨ ``git bisct`` ï¼è¯·ä½¿ç¨å¸¦æå 12个å符SHA-1 ID ç"Fixes:"æ è®°ååè¡æè¦ã为äºç®åä¸è¦å°æ è®°æå为å¤ä¸ªï¼ è¡ãæ è®°ä¸ååæèæ¬â75åæ¢è¡âè§åçéå¶ãä¾å¦:: Fixes: 54a4f0239f2e ("KVM: MMU: make kvm_mmu_zap_page() return the number of pages it actually freed") ä¸å ``git config`` 设置å¯ä»¥æ·»å 让 ``git log``, ``git show`` æ¼äº®çæ¾ç¤ºæ ¼å¼:: [core] abbrev = 12 [pretty] fixes = Fixes: %h (\"%s\") .. _cn_split_changes: 3) æåä½ çæ¹å¨ --------------- å°æ¯ä¸ªé»è¾æ´æ¹åéæä¸ä¸ªåç¬çè¡¥ä¸ã ä¾å¦ï¼å¦æä½ çæ¹å¨éåæ¶æbugä¿®æ£åæ§è½ä¼åï¼é£ä¹æè¿äºæ¹å¨æåå°ä¸¤ä¸ªæ è æ´å¤çè¡¥ä¸æ件ä¸ãå¦æä½ çæ¹å¨å å«å¯¹APIçä¿®æ¹ï¼å¹¶ä¸ä¿®æ¹äºé©±å¨ç¨åºæ¥é åºè¿äºæ°çAPIï¼é£ä¹æè¿äºä¿®æ¹åæ两个补ä¸ã å¦ä¸æ¹é¢ï¼å¦æä½ å°ä¸ä¸ªåç¬çæ¹å¨åæå¤ä¸ªè¡¥ä¸æ件ï¼é£ä¹å°å®ä»¬å并æä¸ä¸ª åç¬çè¡¥ä¸æ件ãè¿æ ·ä¸ä¸ªé»è¾ä¸åç¬çæ¹å¨åªè¢«å å«å¨ä¸ä¸ªè¡¥ä¸æ件éã å¦ææä¸ä¸ªè¡¥ä¸ä¾èµå¦å¤ä¸ä¸ªè¡¥ä¸æ¥å®æå®çæ¹å¨ï¼é£æ²¡é®é¢ãç®åçå¨ä½ çè¡¥ ä¸æè¿°éæåºâè¿ä¸ªè¡¥ä¸ä¾èµæè¡¥ä¸â就好äºã å¨å°æ¨çæ´æ¹åå为ä¸ç³»åè¡¥ä¸æ¶ï¼è¦ç¹å«æ³¨æç¡®ä¿å æ ¸å¨ç³»åä¸çæ¯ä¸ªè¡¥ä¸ä¹å é½è½æ£å¸¸æ建åè¿è¡ãä½¿ç¨ ``git bisect`` æ¥è¿½è¸ªé®é¢çå¼åè å¯è½ä¼å¨ä»»ä½æ¶ ååå²ä½ çè¡¥ä¸ç³»åï¼å¦æä½ å¨ä¸é´å¼å ¥é误ï¼ä»ä»¬ä¸ä¼æè°¢ä½ ã å¦æä½ ä¸è½å°è¡¥ä¸æµç¼©ææ´å°çæ件ï¼é£ä¹æ¯æ¬¡å¤§çº¦åéåº15个ï¼ç¶åçå¾ å®¡æ¥ åéæã 4) æ£æ¥ä½ çæ´æ¹é£æ ¼ ------------------- æ£æ¥æ¨çè¡¥ä¸æ¯å¦åå¨åºæ¬æ ·å¼å²çªï¼è¯¦ç»ä¿¡æ¯å¯å¨ :ref:`Documentation/translations/zh_CN/process/coding-style.rst <cn_codingstyle>` ä¸æ¾å°ãå¦æä¸è¿æ ·åï¼åªä¼æµªè´¹å®¡ç¨¿äººçæ¶é´ï¼å¹¶ä¸ä¼å¯¼è´ä½ çè¡¥ä¸è¢«æç»ï¼çè³ å¯è½æ²¡æ被é 读ã ä¸ä¸ªéè¦çä¾å¤æ¯å¨å°ä»£ç ä»ä¸ä¸ªæ件移å¨å°å¦ä¸ä¸ªæ件æ¶ââå¨è¿ç§æ åµä¸ï¼æ¨ä¸åº 该å¨ç§»å¨ä»£ç çåä¸ä¸ªè¡¥ä¸ä¸ä¿®æ¹ç§»å¨ç代ç ãè¿æ¸ æ¥å°æè¿°äºç§»å¨ä»£ç åæ¨çæ´æ¹ çè¡ä¸ºãè¿å¤§å¤§æå©äºå®¡æ¥å®é å·®å¼ï¼å¹¶å è®¸å·¥å ·æ´å¥½å°è·è¸ªä»£ç æ¬èº«çåå²ã å¨æ交ä¹åï¼ä½¿ç¨è¡¥ä¸æ ·å¼æ£æ¥ç¨åºæ£æ¥è¡¥ä¸ï¼scripts/check patch.plï¼ãä¸è¿ï¼ 请注æï¼æ ·å¼æ£æ¥ç¨åºåºè¯¥è¢«è§ä¸ºä¸ä¸ªæåï¼èä¸æ¯ä½ä¸ºäººç±»å¤æçæ¿ä»£åãå¦ææ¨ ç代ç çèµ·æ¥æ´å¥½ï¼ä½æè¿è§è¡ä¸ºï¼é£ä¹æ好ä¸è¦ä½¿ç¨å®ã æ£æ¥è æ¥åä¸ä¸ªçº§å«ï¼ - ERRORï¼å¾å¯è½åºéçäºæ - WARNINGï¼éè¦ä»ç»å®¡æ¥çäºé¡¹ - CHECKï¼éè¦æèçäºæ æ¨åºè¯¥è½å¤å¤ææ¨çè¡¥ä¸ä¸åå¨çææè¿è§è¡ä¸ºã 5) éæ©è¡¥ä¸æ¶ä»¶äºº ----------------- æ¨åºè¯¥æ»æ¯å¨ä»»ä½è¡¥ä¸ä¸å¤å¶ç¸åºçåç³»ç»ç»´æ¤äººåï¼ä»¥è·å¾ä»ä»¬ç»´æ¤ç代ç ï¼æ¥ç ç»´æ¤äººåæ件åæºä»£ç 修订åå²è®°å½ï¼ä»¥äºè§£è¿äºç»´æ¤äººåæ¯è°ãèæ¬ scripts/get_Maintainer.plå¨è¿ä¸ªæ¥éª¤ä¸é常æç¨ãå¦ææ¨æ¾ä¸å°æ£å¨å·¥ä½çåç³»ç» çç»´æ¤äººåï¼é£ä¹Andrew Mortonï¼akpm@linux-foundation.orgï¼å°å å½æåçç»´æ¤ äººåã æ¨é常è¿åºè¯¥éæ©è³å°ä¸ä¸ªé®ä»¶å表æ¥æ¥æ¶è¡¥ä¸éçãlinux-kernel@vger.kernel.org ä½ä¸ºæåä¸ä¸ªè§£å³åæ³çå表ï¼ä½æ¯è¿ä¸ªå表ä¸çä½ç§¯å·²ç»å¼èµ·äºè®¸å¤å¼å人åçæç»ã å¨MAINTAINERSæ件ä¸æ¥æ¾åç³»ç»ç¹å®çå表ï¼æ¨çè¡¥ä¸å¯è½ä¼å¨é£éå¾å°æ´å¤çå ³æ³¨ã ä¸è¿ï¼è¯·ä¸è¦åéåå¾é®ä»¶å°æ å ³çå表ã 许å¤ä¸å æ ¸ç¸å ³çå表æ管å¨vger.kernel.orgä¸ï¼æ¨å¯ä»¥å¨ http://vger.kernel.org/vger-lists.html ä¸æ¾å°å®ä»¬çå表ãä¸è¿ï¼ä¹æä¸å æ ¸ç¸å ³ çå表æ管å¨å ¶ä»å°æ¹ã ä¸è¦ä¸æ¬¡åéè¶ è¿15个补ä¸å°vgeré®ä»¶å表ï¼ï¼ï¼ï¼ Linus Torvalds æ¯å³å®æ¹å¨è½å¦è¿å ¥ Linux å æ ¸çæç»è£å³è ãä»ç e-mail å°åæ¯ <torvalds@linux-foundation.org> ãä»æ¶å°ç e-mail å¾å¤ï¼æ以ä¸è¬ ç说ï¼æ好å«ç»ä»å e-mailã å¦ææ¨æä¿®å¤å¯å©ç¨å®å ¨æ¼æ´çè¡¥ä¸ï¼è¯·å°è¯¥è¡¥ä¸åéå° security@kernel.orgãå¯¹äº ä¸¥éçbugï¼å¯ä»¥èèçææå以å 许åéååç¨æ·åå¸è¡¥ä¸ï¼å¨è¿ç§æ åµä¸ï¼æ¾ç¶ä¸åº å°è¡¥ä¸åéå°ä»»ä½å ¬å ±å表ã ä¿®å¤å·²åå¸å æ ¸ä¸ä¸¥éé误çè¡¥ä¸ç¨åºåºè¯¥æå稳å®çç»´æ¤äººåï¼æ¹æ³æ¯æ¾è¿æ ·çä¸è¡:: Cc: stable@vger.kernel.org è¿å ¥è¡¥ä¸çç¾ååºï¼æ³¨æï¼ä¸æ¯çµåé®ä»¶æ¶ä»¶äººï¼ãé¤äºè¿ä¸ªæ件ä¹å¤ï¼æ¨è¿åºè¯¥é 读 :ref:`Documentation/process/stable-kernel-rules.rst <stable_kernel_rules>` ä½æ¯ï¼è¯·æ³¨æï¼ä¸äºåç³»ç»ç»´æ¤äººåå¸æå¾åºä»ä»¬èªå·±çç»è®ºï¼å³åªäºè¡¥ä¸åºè¯¥è¢«æ¾å° 稳å®çæ ä¸ãå°¤å ¶æ¯ç½ç»ç»´æ¤äººåï¼ä¸å¸æçå°å个å¼å人åå¨è¡¥ä¸ä¸æ·»å åä¸é¢è¿æ · çè¡ã å¦ææ´æ¹å½±åå°ç¨æ·åå æ ¸æ¥å£ï¼è¯·åæå页维æ¤äººåï¼å¦ç»´æ¤äººåæ件ä¸æåï¼åé æå页补ä¸ï¼æè³å°åéæ´æ¹éç¥ï¼ä»¥ä¾¿ä¸äºä¿¡æ¯è¿å ¥æå页ãè¿åºå°ç¨æ·ç©ºé´API æ´æ¹å¤å¶å° linux-api@vger.kernel.orgã 对äºå°çè¡¥ä¸ï¼ä½ ä¹è®¸ä¼CCå°æéçç¢è¡¥ä¸çé®ä»¶å表(Trivial Patch Monkey) trivial@kernel.orgï¼é£éä¸é¨æ¶éçç¢çè¡¥ä¸ãä¸é¢è¿æ ·çè¡¥ä¸ä¼è¢«çä½âçç¢çâ è¡¥ä¸ï¼ - ææ¡£çæ¼åä¿®æ£ã - ä¿®æ£ä¼å½±åå° grep(1) çæ¼åã - è¦åä¿¡æ¯ä¿®æ£(é¢ç¹çæå°æ ç¨çè¦åæ¯ä¸å¥½çã) - ç¼è¯é误修æ£ï¼ä»£ç é»è¾çç¡®æ¯å¯¹çï¼åªæ¯ç¼è¯æé®é¢ãï¼ - è¿è¡æ¶ä¿®æ£ï¼åªè¦ççä¿®æ£äºé误ãï¼ - 移é¤ä½¿ç¨äºè¢«åºå¼çå½æ°/å®ç代ç (ä¾å¦ check_regionã) - èç³»æ¹å¼åæ档修æ£ã - ç¨å¯ç§»æ¤ç代ç æ¿æ¢ä¸å¯ç§»æ¤ç代ç ï¼å³ä½¿å¨ä½ç³»ç»æç¸å ³ç代ç ä¸ï¼æ¢ç¶æ - 人æ·è´ï¼åªè¦å®æ¯çç¢çï¼ - ä»»ä½æ件çä½è /ç»´æ¤è 对该æ件çæ¹å¨ï¼ä¾å¦ patch monkey å¨éä¼ æ¨¡å¼ä¸ï¼ (è¯æ³¨ï¼å ³äºâçç¢è¡¥ä¸âçä¸äºè¯´æï¼å 为åæçè¿ä¸é¨ååå¾æ¯è¾ç®åï¼æ以ä¸å¾ä¸ è¿ä¾åä¸ä¸è¯æ³¨ã"trivial"è¿ä¸ªè±æåè¯çæ¬ææ¯âçç¢çï¼ä¸éè¦çãâä½æ¯å¨è¿é æç¨å¾®æä¸äºååï¼ä¾å¦å¯¹ä¸äºææ¾çNULLæéçä¿®æ£ï¼å±äºè¿è¡æ¶ä¿®æ£ï¼ä¼è¢«å½ç±» å°çç¢è¡¥ä¸éãè½ç¶NULLæéçä¿®æ£å¾éè¦ï¼ä½æ¯è¿æ ·çä¿®æ£å¾å¾å¾å°èä¸å¾å®¹æå¾å° æ£éªï¼æ以ä¹è¢«å½å ¥çç¢è¡¥ä¸ãçç¢è¡¥ä¸æ´ç²¾ç¡®çå½ç±»åºè¯¥æ¯ âsimple, localized & easy to verifyâï¼ä¹å°±æ¯è¯´ç®åçï¼å±é¨çåæäºæ£éªçã trivial@kernel.orgé®ä»¶å表çç®çæ¯é对è¿æ ·çè¡¥ä¸ï¼ä¸ºæ交è æä¾ä¸ä¸ªä¸å¿ï¼æ¥ éä½æ交çé¨æ§ã) 6) 没æ MIME ç¼ç ï¼æ²¡æé¾æ¥ï¼æ²¡æå缩ï¼æ²¡æé件ï¼åªæ纯ææ¬ ----------------------------------------------------------- Linus åå ¶ä»çå æ ¸å¼åè éè¦é 读åè¯è®ºä½ æ交çæ¹å¨ã对äºå æ ¸å¼åè æ¥è¯´ ï¼å¯ä»¥âå¼ç¨âä½ çæ¹å¨å¾éè¦ï¼ä½¿ç¨ä¸è¬ç e-mail å·¥å ·ï¼ä»ä»¬å°±å¯ä»¥å¨ä½ ç 代ç çä»»ä½ä½ç½®æ·»å è¯è®ºã å 为è¿ä¸ªåå ï¼ææçæ交çè¡¥ä¸é½æ¯ e-mail ä¸âå åµâçã .. warning:: å¦æä½ ä½¿ç¨åªå-ç²è´´ä½ çè¡¥ä¸ï¼å°å¿ä½ çç¼è¾å¨çèªå¨æ¢è¡åè½ç ´åä½ çè¡¥ä¸ ä¸è¦å°è¡¥ä¸ä½ä¸º MIME ç¼ç çé件ï¼ä¸ç®¡æ¯å¦å缩ãå¾å¤æµè¡ç e-mail è½¯ä»¶ä¸ æ¯ä»»ä½æ¶åé½å° MIME ç¼ç çé件å½ä½çº¯ææ¬åéçï¼è¿ä¼ä½¿å¾å«äººæ æ³å¨ä½ ç 代ç ä¸å è¯è®ºãå¦å¤ï¼MIME ç¼ç çé件ä¼è®© Linus å¤è±ä¸ç¹æ¶é´æ¥å¤çï¼è¿å°± éä½äºä½ çæ¹å¨è¢«æ¥åçå¯è½æ§ã ä¾å¤ï¼å¦æä½ çé®éåå¼åäºè¡¥ä¸ï¼é£ä¹æ人å¯è½ä¼è¦æ±ä½ 使ç¨mimeéæ°åéè¡¥ä¸ è¯·åé :ref:`Documentation/translations/zh_CN/process/email-clients.rst <cn_email_clients>` 以è·åæå ³é ç½®çµåé®ä»¶å®¢æ·ç«¯ä»¥ä½¿å ¶ä¸åå½±åå°åé修补ç¨åºçæ示ã 7) e-mail çå¤§å° ---------------- 大çæ¹å¨å¯¹é®ä»¶å表ä¸åéï¼å¯¹æäºç»´æ¤è ä¹ä¸åéãå¦æä½ çè¡¥ä¸ï¼å¨ä¸å缩 çæ åµä¸ï¼è¶ è¿äº300kBï¼é£ä¹ä½ æ好å°è¡¥ä¸æ¾å¨ä¸ä¸ªè½éè¿ internet 访é®çæ å¡å¨ä¸ï¼ç¶åç¨æåä½ çè¡¥ä¸ç URL æ¿ä»£ãä½æ¯è¯·æ³¨æï¼å¦ææ¨çè¡¥ä¸è¶ è¿äº 300kbï¼é£ä¹å®å ä¹è¯å®éè¦è¢«ç ´åã 8ï¼åå¤è¯å®¡æè§ --------------- ä½ çè¡¥ä¸å ä¹è¯å®ä¼å¾å°è¯å®¡è 对补ä¸æ¹è¿æ¹æ³çè¯è®ºãæ¨å¿ 须对è¿äºè¯è®ºä½åº ååºï¼è®©è¡¥ä¸è¢«å¿½ç¥çä¸ä¸ªå¥½åæ³å°±æ¯å¿½ç¥å®¡é è çæè§ãä¸ä¼å¯¼è´ä»£ç æ´æ¹ç æè§æé®é¢å ä¹è¯å®ä¼å¸¦æ¥æ³¨éæåæ´æ¥å¿çæ¹åï¼ä»¥ä¾¿ä¸ä¸ä¸ªè¯å®¡è æ´å¥½å°äºè§£ æ£å¨åççäºæ ã ä¸å®è¦åè¯å®¡ç¨¿äººä½ å¨åä»ä¹æ¹åï¼å¹¶æè°¢ä»ä»¬çæ¶é´ã代ç 审æ¥æ¯ä¸ä¸ªç´¯äººä¸ èæ¶çè¿ç¨ï¼å®¡æ¥äººåææ¶ä¼åå¾æ´èºãå³ä½¿å¨è¿ç§æ åµä¸ï¼ä¹è¦ç¤¼è²å°ååºå¹¶ 解å³ä»ä»¬æåºçé®é¢ã 9ï¼ä¸è¦æ³æ°æä¸èç¦ ------------------- æ交æ´æ¹åï¼è¯·èå¿çå¾ ã审é è æ¯å¿ç¢ç人ï¼å¯è½æ æ³ç«å³è®¿é®æ¨ç修补ç¨åºã æ¾å ä½æ¶ï¼è¡¥ä¸æ¾å¨æ²¡æè¯è®ºçæ åµä¸æ¶å¤±å¨ç©ºç½ä¸ï¼ä½å¼åè¿ç¨æ¯ç°å¨æ´å 顺å©ã æ¨åºè¯¥å¨ä¸å¨å·¦å³çæ¶é´å æ¶å°è¯è®ºï¼å¦æ没ææ¶å°è¯è®ºï¼è¯·ç¡®ä¿æ¨å·²å°è¡¥ä¸åé å°æ£ç¡®çä½ç½®ãå¨éæ°æ交æè系审é è ä¹åè³å°çå¾ ä¸å¨-å¨è¯¸å¦å并çªå£ä¹ç±»ç ç¹å¿æ¶é´å¯è½æ´é¿ã 10ï¼ä¸»é¢ä¸å å« PATCH -------------------- ç±äºå°linusålinuxå æ ¸ççµåé®ä»¶æµéå¾é«ï¼é常ä¼å¨ä¸»é¢è¡åé¢å ä¸[PATCH] åç¼. è¿ä½¿Linusåå ¶ä»å æ ¸å¼å人åæ´å®¹æå°è¡¥ä¸ä¸å ¶ä»çµåé®ä»¶è®¨è®ºåºåå¼ã 11ï¼ç¾ç½²ä½ çä½å-å¼åè åå§è®¤è¯ ------------------------------- 为äºå 强对è°åäºä½äºç追踪ï¼å°¤å ¶æ¯å¯¹é£äºéè¿å¥½å å±çç»´æ¤è çè¡¥ä¸ï¼æ们 建议å¨åéåºå»çè¡¥ä¸ä¸å ä¸ä¸ª âsign-offâ çè¿ç¨ã "sign-off" æ¯å¨è¡¥ä¸ç注éçæåçç®åçä¸è¡æåï¼è®¤è¯ä½ ç¼åäºå®æè å ¶ä» äººææåå°å®ä½ä¸ºå¼æ¾æºä»£ç çè¡¥ä¸ä¼ éãè§åå¾ç®åï¼å¦æä½ è½è®¤è¯å¦ä¸ä¿¡æ¯: å¼åè æ¥æºè¯ä¹¦ 1.1 ^^^^^^^^^^^^^^^^^^ 对äºæ¬é¡¹ç®çè´¡ç®ï¼æ认è¯å¦ä¸ä¿¡æ¯ï¼ ï¼aï¼è¿äºè´¡ç®æ¯å®å ¨æè é¨åçç±æå建ï¼æææå©ä»¥æ件ä¸æåº çå¼æ¾æºä»£ç 许å¯è¯æ交å®ï¼æè ï¼bï¼è¿äºè´¡ç®åºäºä»¥åçå·¥ä½ï¼æ®ææç¥ï¼è¿äºä»¥åçå·¥ä½åæ°å½çå¼æ¾ æºä»£ç 许å¯è¯ä¿æ¤ï¼èä¸ï¼æ ¹æ®è®¸å¯è¯ï¼ææææ交修æ¹åçè´¡ç®ï¼ æ 论æ¯å®å ¨è¿æ¯é¨åç±æåé ï¼è¿äºè´¡ç®é½ä½¿ç¨åä¸ä¸ªå¼æ¾æºä»£ç 许å¯è¯ ï¼é¤éæ被å 许ç¨å ¶å®ç许å¯è¯ï¼ï¼æ£å¦æ件ä¸æåºçï¼æè ï¼cï¼è¿äºè´¡ç®ç±è®¤è¯ï¼aï¼ï¼ï¼bï¼æè ï¼cï¼ç人ç´æ¥æä¾ç»æï¼è ä¸æ没æä¿®æ¹å®ã ï¼dï¼æç解并åæè¿ä¸ªé¡¹ç®åè´¡ç®æ¯å ¬å¼çï¼è´¡ç®çè®°å½ï¼å æ¬æ ä¸èµ·æ交ç个人记å½ï¼å æ¬ sign-off ï¼è¢«æ°¸ä¹ ç»´æ¤å¹¶ä¸å¯ä»¥åè¿ä¸ªé¡¹ç® æè å¼æ¾æºä»£ç ç许å¯è¯åæ¥å°ååè¡ã é£ä¹å å ¥è¿æ ·ä¸è¡:: Signed-off-by: Random J Developer <random@developer.example.org> 使ç¨ä½ ççåï¼æ±æï¼ä¸è½ä½¿ç¨ååæè å¿åãï¼ æ人å¨æåå ä¸æ ç¾ãç°å¨è¿äºä¸è¥¿ä¼è¢«å¿½ç¥ï¼ä½æ¯ä½ å¯ä»¥è¿æ ·åï¼æ¥æ è®°å ¬å¸ å é¨çè¿ç¨ï¼æè åªæ¯æåºå ³äº sign-off çä¸äºç¹æ®ç»èã å¦ææ¨æ¯åç³»ç»æåæ¯ç»´æ¤äººåï¼ææ¶éè¦ç¨å¾®ä¿®æ¹æ¶å°çè¡¥ä¸ï¼ä»¥ä¾¿å并å®ä»¬ï¼ å 为æ åæ交è ä¸ç代ç ä¸å®å ¨ç¸åãå¦æä½ ä¸¥æ ¼éµå®è§åï¼cï¼ï¼ä½ åºè¯¥è¦æ±æ交è éæ°åå¸ï¼ä½è¿å®å ¨æ¯å¨æµªè´¹æ¶é´åç²¾åãè§åï¼bï¼å 许æ¨è°æ´ä»£ç ï¼ä½æ¯æ´æ¹ä¸ä¸ª æ交è ç代ç 并让ä»è®¤å¯æ¨çé误æ¯é常ä¸ç¤¼è²çãè¦è§£å³æ¤é®é¢ï¼å»ºè®®å¨æåä¸ä¸ª ç±ç¾åè¡åæ¨çè¡ä¹é´æ·»å ä¸è¡ï¼æ示æ´æ¹çæ§è´¨ãè½ç¶è¿å¹¶ä¸æ¯å¼ºå¶æ§çï¼ä½ä¼¼ä¹ å¨æè¿°åå ä¸æ¨çé®ä»¶å/æå§åï¼å ¨é¨ç¨æ¹æ¬å·æ¬èµ·æ¥ï¼ï¼è¿è¶³ä»¥è®©äººæ³¨æå°æ¨å¯¹æ åä¸åéçæ´æ¹è´æ责任ãä¾å¦:: Signed-off-by: Random J Developer <random@developer.example.org> [lucky@maintainer.example.org: struct foo moved from foo.c to foo.h] Signed-off-by: Lucky K Maintainer <lucky@maintainer.example.org> å¦ææ¨ç»´æ¤ä¸ä¸ªç¨³å®çåæ¯æºæï¼åæ¶å¸æ对ä½è è¿è¡è´è°¢ãè·è¸ªæ´æ¹ãå并修å¤å¹¶ ä¿æ¤æ交è ä¸åæè¯ï¼é£ä¹è¿ç§åæ³å°¤å ¶æç¨ã请注æï¼å¨ä»»ä½æ åµä¸é½ä¸è½æ´æ¹ä½è çIDï¼From 头ï¼ï¼å 为å®æ¯åºç°å¨æ´æ¹æ¥å¿ä¸çæ è¯ã 对ååï¼back-portersï¼çç¹å«è¯´æï¼å¨æ交æ¶æ¯ç顶é¨ï¼ä¸»é¢è¡ä¹åï¼æå ¥ä¸ä¸ªè¡¥ä¸ çèµ·æºæ示似ä¹æ¯ä¸ç§å¸¸è§ä¸æç¨çå®è·µï¼ä»¥ä¾¿äºè·è¸ªãä¾å¦ï¼ä¸é¢æ¯æ们å¨3.xç¨³å® çæ¬ä¸çå°çå 容:: Date: Tue Oct 7 07:26:38 2014 -0400 libata: Un-break ATA blacklist commit 1c40279960bcd7d52dbdf1d466b20d24b99176c8 upstream. è¿æï¼ è¿éæ¯ä¸ä¸ªæ§çå æ ¸ä¸çä¸ä¸ªååè¡¥ä¸:: Date: Tue May 13 22:12:27 2008 +0200 wireless, airo: waitbusy() won't delay [backport of 2.6 commit b7acbdfbd1f277c1eb23f344f899cfa4cd0bf36a] 12ï¼ä½æ¶ä½¿ç¨Acked-by:ï¼CC:ï¼åCo-Developed by: ---------------------------------------------- Singed-off-by: æ 记表示ç¾åè åä¸äºè¡¥ä¸çå¼åï¼æè ä»/她å¨è¡¥ä¸çä¼ éè·¯å¾ä¸ã å¦æä¸ä¸ªäººæ²¡æç´æ¥åä¸è¡¥ä¸çåå¤æå¤çï¼ä½å¸æ表示并记å½ä»ä»¬å¯¹è¡¥ä¸çæ¹åï¼ é£ä¹ä»ä»¬å¯ä»¥è¦æ±å¨è¡¥ä¸çåæ´æ¥å¿ä¸æ·»å ä¸ä¸ª Acked-by: Acked-byï¼é常ç±åå½±å代ç çç»´æ¤è 使ç¨ï¼å½è¯¥ç»´æ¤è æ¢æ²¡æè´¡ç®ä¹æ²¡æ转åè¡¥ä¸æ¶ã Acked-by: ä¸åç¾å人é£æ ·æ£å¼ãè¿æ¯ä¸ä¸ªè®°å½ï¼ç¡®è®¤äººè³å°å®¡æ¥äºè¡¥ä¸ï¼å¹¶è¡¨ç¤ºæ¥åã å æ¤ï¼è¡¥ä¸å并ææ¶ä¼æå¨å°AckerçâYepï¼looks good to meâ转æ¢ä¸º Acked-Byï¼ï¼ä½ 请注æï¼é常æ好è¦æ±ä¸ä¸ªæç¡®çAckï¼ã Acked-byï¼ä¸ä¸å®è¡¨ç¤ºå¯¹æ´ä¸ªè¡¥ä¸ç确认ãä¾å¦ï¼å¦æä¸ä¸ªè¡¥ä¸å½±åå¤ä¸ªåç³»ç»ï¼å¹¶ä¸ æä¸ä¸ªï¼æ¥èªä¸ä¸ªåç³»ç»ç»´æ¤è ï¼é£ä¹è¿é常表示åªç¡®è®¤å½±åç»´æ¤è 代ç çé¨åãè¿é åºè¯¥ä»ç»å¤æãå¦æçé®ï¼åºåèé®ä»¶å表档æ¡ä¸çåå§è®¨è®ºã å¦ææ人ææºä¼å¯¹è¡¥ä¸è¿è¡è¯è®ºï¼ä½æ²¡ææä¾æ¤ç±»è¯è®ºï¼æ¨å¯ä»¥éæ©å¨è¡¥ä¸ä¸æ·»å ``Cc:`` è¿æ¯å¯ä¸ä¸ä¸ªæ ç¾ï¼å®å¯ä»¥å¨æ²¡æ被å®å½åç人æ¾å¼æä½çæ åµä¸æ·»å ï¼ä½å®åºè¯¥è¡¨æ è¿ä¸ªäººæ¯å¨è¡¥ä¸ä¸æéçã讨论ä¸å å«äºæ½å¨å©çç¸å ³æ¹ã Co-developed-by: 声æè¡¥ä¸æ¯ç±å¤ä¸ªå¼å人åå ±åå建çï¼å½å 个人å¨ä¸ä¸ªè¡¥ä¸ä¸å·¥ ä½æ¶ï¼å®ç¨äºå°å±æ§èµäºå ±åä½è ï¼é¤äº From: æèµäºçä½è ä¹å¤ï¼ãå 为 Co-developed-by: 表示ä½è 身份ï¼æ以æ¯ä¸ªå ±åå¼å人ï¼å¿ 须紧è·å¨ç¸å ³åä½ä½è ç ç¾åä¹åãæ åçç¾æ ¸ç¨åºè¦æ±ï¼æ è®°çç¾æ ¸é¡ºåºåºå°½å¯è½åæ è¡¥ä¸çæ¶é´åå²ï¼èä¸ ç®¡ä½è æ¯éè¿ From ï¼è¿æ¯ç± Co-developed-by: å ±åå¼åçãå¼å¾æ³¨æçæ¯ï¼æåä¸ ä¸ªç¾å人ï¼å¿ é¡»å§ç»æ¯æ交补ä¸çå¼å人åã 注æï¼å½ä½è ä¹æ¯çµåé®ä»¶æ é¢âå件人ï¼âè¡ä¸ååºç人æ¶ï¼âFrom: â æ è®°æ¯å¯éçã ä½è æ交çè¡¥ä¸ç¨åºç¤ºä¾:: <changelog> Co-developed-by: First Co-Author <first@coauthor.example.org> Signed-off-by: First Co-Author <first@coauthor.example.org> Co-developed-by: Second Co-Author <second@coauthor.example.org> Signed-off-by: Second Co-Author <second@coauthor.example.org> Signed-off-by: From Author <from@author.example.org> åä½å¼åè æ交çè¡¥ä¸ç¤ºä¾:: From: From Author <from@author.example.org> <changelog> Co-developed-by: Random Co-Author <random@coauthor.example.org> Signed-off-by: Random Co-Author <random@coauthor.example.org> Signed-off-by: From Author <from@author.example.org> Co-developed-by: Submitting Co-Author <sub@coauthor.example.org> Signed-off-by: Submitting Co-Author <sub@coauthor.example.org> 13ï¼ä½¿ç¨æ¥å人ï¼ãæµè¯äººï¼ãå®¡æ ¸äººï¼ã建议人ï¼ãä¿®å¤äººï¼ -------------------------------------------------------- Reported-by: ç»é£äºåç°é误并æ¥åé误ç人è´è°¢ï¼å®å¸ææ¿å±ä»ä»¬å¨å°æ¥åæ¬¡å¸®å© æ们ã请注æï¼å¦æbugæ¯ä»¥ç§ææ¹å¼æ¥åçï¼é£ä¹å¨ä½¿ç¨Reported-byæ è®°ä¹åï¼è¯· å 请æ±æéã Tested-by: æ 记表示补ä¸å·²ç±æå®ç人ï¼å¨æäºç¯å¢ä¸ï¼æåæµè¯ãè¿ä¸ªæ ç¾éç¥ ç»´æ¤äººåå·²ç»æ§è¡äºä¸äºæµè¯ï¼ä¸ºå°æ¥çè¡¥ä¸æä¾äºä¸ç§å®ä½æµè¯äººåçæ¹æ³ï¼å¹¶ç¡® ä¿æµè¯äººåçä¿¡èªã Reviewed-byï¼ç¸åï¼æ ¹æ®å®¡æ¥äººç声æï¼è¡¨æ该补ä¸å·²è¢«å®¡æ¥å¹¶è¢«è®¤ä¸ºæ¯å¯æ¥åçï¼ å®¡æ¥äººççç£å£°æ ^^^^^^^^^^^^^^^^ éè¿æä¾æç Reviewed-byï¼æ声æï¼ (a) æå·²ç»å¯¹è¿ä¸ªè¡¥ä¸è¿è¡äºä¸æ¬¡ææ¯å®¡æ¥ï¼ä»¥è¯ä¼°å®æ¯å¦éå被å å«å° 主线å æ ¸ä¸ã (b) ä¸è¡¥ä¸ç¸å ³çä»»ä½é®é¢ã顾èæé®é¢é½å·²åé¦ç»æ交è ãæ对æ交è 对 æçè¯è®ºçååºæå°æ»¡æã (c) è½ç¶è¿ä¸æ交å¯è½ä¼æ¹è¿ä¸äºä¸è¥¿ï¼ä½æç¸ä¿¡ï¼æ¤æ¶ï¼ï¼1ï¼å¯¹å æ ¸ è¿è¡äºæä»·å¼çä¿®æ¹ï¼ï¼2ï¼æ²¡æå å«äºè®ºä¸æ¶åçå·²ç¥é®é¢ã (d) è½ç¶æå·²ç»å®¡æ¥äºè¡¥ä¸å¹¶è®¤ä¸ºå®æ¯å¥å ¨çï¼ä½æä¸ä¼ï¼é¤éå¦ææç¡® 说æï¼ä½åºä»»ä½ä¿è¯æä¿è¯å®å°å¨ä»»ä½ç»å®æ åµä¸å®ç°å ¶è§å®çç®ç ææ£å¸¸è¿è¡ã Reviewed-by æ¯ä¸ç§è§ç¹å£°æï¼å³è¡¥ä¸æ¯å¯¹å æ ¸çéå½ä¿®æ¹ï¼æ²¡æä»»ä½éçç严éææ¯ é®é¢ãä»»ä½æå ´è¶£ç审é è ï¼å®æå·¥ä½ç人ï¼é½å¯ä»¥ä¸ºä¸ä¸ªè¡¥ä¸æä¾ä¸ä¸ª Review-by æ ç¾ãæ¤æ ç¾ç¨äºå审é è æä¾è´è°¢ï¼å¹¶éç¥ç»´æ¤è å·²å¨ä¿®è¡¥ç¨åºä¸å®æç审é ç¨åº¦ã Reviewed-by: å½ç±å·²ç¥äºè§£ä¸»é¢åºå并æ§è¡å½»åºæ£æ¥ç审é è æä¾æ¶ï¼é常ä¼å¢å è¡¥ä¸è¿å ¥å æ ¸çå¯è½æ§ã Suggested-by: 表示补ä¸çæ³æ³æ¯ç±æå®ç人æåºçï¼å¹¶ç¡®ä¿å°æ¤æ³æ³å½åäºæå®ç 人ã请注æï¼æªç»è®¸å¯ï¼ä¸å¾æ·»å æ¤æ ç¾ï¼ç¹å«æ¯å¦æ该æ³æ³æªå¨å ¬å ±è®ºåä¸åå¸ã è¿å°±æ¯è¯´ï¼å¦ææ们å¤å¿«å°è´è°¢æ们çåæè ï¼ä»ä»¬å¾æå¸æå¨æªæ¥å¾å°é¼èï¼å次 帮å©æ们ã Fixes: æ示补ä¸å¨ä»¥åçæ交ä¸ä¿®å¤äºä¸ä¸ªé®é¢ãå®å¯ä»¥å¾å®¹æå°ç¡®å®é误çæ¥æºï¼ è¿æå©äºæ£æ¥é误修å¤ãè¿ä¸ªæ è®°è¿å¸®å©ç¨³å®å æ ¸å¢éç¡®å®åºè¯¥æ¥æ¶ä¿®å¤ç稳å®å æ ¸ çæ¬ãè¿æ¯æ示补ä¸ä¿®å¤çé误çé¦éæ¹æ³ã请åé :ref:`cn_describe_changes` æè¿°æ¨çæ´æ¹ä»¥äºè§£æ´å¤è¯¦ç»ä¿¡æ¯ã .. _cn_the_canonical_patch_format: 12ï¼æ åè¡¥ä¸æ ¼å¼ ---------------- æ¬èæè¿°å¦ä½æ ¼å¼åè¡¥ä¸æ¬èº«ã请注æï¼å¦ææ¨çè¡¥ä¸åå¨å¨ ``Git`` åå¨åºä¸ï¼å å¯ä»¥ä½¿ç¨ ``git format-patch`` è¿è¡æ£ç¡®çè¡¥ä¸æ ¼å¼è®¾ç½®ãä½æ¯ï¼è¿äºå·¥å ·æ æ³å建 å¿ è¦çææ¬ï¼å æ¤è¯·å¡å¿ é 读ä¸é¢ç说æã æ åçè¡¥ä¸ï¼æ é¢è¡æ¯:: Subject: [PATCH 001/123] åç³»ç»:ä¸å¥è¯æ¦è¿° æ åè¡¥ä¸çä¿¡ä½åå¨å¦ä¸é¨åï¼ - ä¸ä¸ª "from" è¡æåºè¡¥ä¸ä½è ãåè·ç©ºè¡ï¼ä» å½åé修补ç¨åºç人ä¸æ¯ä½è æ¶æéè¦ï¼ã - 解éçæ£æï¼è¡ä»¥75åå è£ ï¼è¿å°è¢«å¤å¶å°æ°¸ä¹ åæ´æ¥å¿æ¥æè¿°è¿ä¸ªè¡¥ä¸ã - ä¸ä¸ªç©ºè¡ - ä¸é¢æè¿°çâSigned-off-byâ è¡ï¼ä¹å°åºç°å¨æ´æ¹æ¥å¿ä¸ã - åªå å« ``---`` çæ 记线ã - ä»»ä½å ¶ä»ä¸éåæ¾å¨åæ´æ¥å¿ç注éã - å®é è¡¥ä¸ï¼ ``diff`` è¾åºï¼ã æ é¢è¡çæ ¼å¼ï¼ä½¿å¾å¯¹æ é¢è¡æåæ¯åºæåºé常ç容æ - å¾å¤ e-mail 客æ·ç«¯é½ å¯ä»¥æ¯æ - å 为åºåå·æ¯ç¨é¶å¡«å çï¼æ以ææ°åæåºåæåæ¯æåºæ¯ä¸æ ·çã e-mail æ é¢ä¸çâåç³»ç»âæ è¯åªä¸ªå æ ¸åç³»ç»å°è¢«æè¡¥ä¸ã e-mail æ é¢ä¸çâä¸å¥è¯æ¦è¿°âæ¼è¦çæè¿° e-mail ä¸çè¡¥ä¸ãâä¸å¥è¯æ¦è¿°â ä¸åºè¯¥æ¯ä¸ä¸ªæ件åã对äºä¸ä¸ªè¡¥ä¸ç³»åï¼âè¡¥ä¸ç³»åâæä¸ç³»åçå¤ä¸ªç¸å ³è¡¥ ä¸ï¼ï¼ä¸è¦å¯¹æ¯ä¸ªè¡¥ä¸é½ä½¿ç¨åæ ·çâä¸å¥è¯æ¦è¿°âã è®°ä½ e-mail çâä¸å¥è¯æ¦è¿°âä¼æ为该补ä¸çå ¨å±å¯ä¸æ è¯ãå®ä¼èå»¶å° git çæ¹å¨è®°å½éãç¶åâä¸å¥è¯æ¦è¿°âä¼è¢«ç¨å¨å¼åè ç讨论éï¼ç¨æ¥æ代è¿ä¸ªè¡¥ ä¸ãç¨æ·å°å¸æéè¿ google æ¥æç´¢"ä¸å¥è¯æ¦è¿°"æ¥æ¾å°é£äºè®¨è®ºè¿ä¸ªè¡¥ä¸çæ ç« ãå½äººä»¬å¨ä¸¤ä¸ä¸ªæå使ç¨è¯¸å¦ ``gitk`` æ ``git log --oneline`` ä¹ç±» çå·¥å ·æ¥çæ°å个补ä¸æ¶ï¼ä¹ä¼å¾å¿«çå°å®ã åºäºè¿äºåå ï¼æ¦è¿°å¿ é¡»ä¸è¶ è¿70-75个å符ï¼å¹¶ä¸å¿ é¡»æè¿°è¡¥ä¸çæ´æ¹ä»¥å为 ä»ä¹éè¦è¡¥ä¸ãæ¢è¦ç®æ´åè¦æè¿°æ§å¾ææææ§ï¼ä½åå¾å¥½çæ¦è¿°åºè¯¥è¿æ ·åã æ¦è¿°çåç¼å¯ä»¥ç¨æ¹æ¬å·æ¬èµ·æ¥ï¼âSubject: [PATCH <tag>...] <æ¦è¿°>âãæ è®° ä¸è¢«è§ä¸ºæ¦è¿°çä¸é¨åï¼èæ¯æè¿°åºè¯¥å¦ä½å¤çè¡¥ä¸ãå¦æè¡¥ä¸çå¤ä¸ªçæ¬å·²å éåºæ¥ä»¥ååºè¯å®¡ï¼å³âv1ï¼v2ï¼v3âï¼æârfcâï¼ä»¥æ示è¯å®¡è¯·æ±ï¼é£ä¹éç¨æ è®° å¯è½å æ¬çæ¬æ述符ãå¦æä¸ä¸ªè¡¥ä¸ç³»åä¸æå个补ä¸ï¼é£ä¹å个补ä¸å¯ä»¥è¿æ · ç¼å·ï¼1/4ã2/4ã3/4ã4/4ãè¿å¯ä»¥ç¡®ä¿å¼å人åäºè§£è¡¥ä¸åºç¨ç顺åºï¼å¹¶ä¸ä»ä»¬ å·²ç»æ¥çæåºç¨äºè¡¥ä¸ç³»åä¸çææè¡¥ä¸ã ä¸äºæ é¢çä¾å:: Subject: [patch 2/5] ext2: improve scalability of bitmap searching Subject: [PATCHv2 001/207] x86: fix eflags tracking "From" è¡æ¯ä¿¡ä½éçæä¸é¢ä¸è¡ï¼å ·æå¦ä¸æ ¼å¼ï¼ From: Patch Author <author@example.com> "From" è¡ææå¨æ°¸ä¹ æ¹å¨æ¥å¿éï¼è°ä¼è¢«ç¡®è®¤ä¸ºä½è ãå¦æ没æ "From" è¡ï¼é£ ä¹é®ä»¶å¤´éç "From: " è¡ä¼è¢«ç¨æ¥å³å®æ¹å¨æ¥å¿ä¸çä½è ã 说æç主é¢å°ä¼è¢«æ交å°æ°¸ä¹ çæºä»£ç æ¹å¨æ¥å¿éï¼å æ¤å¯¹é£äºæ©å·²ç»ä¸è®°å¾å è¿ä¸ªè¡¥ä¸ç¸å ³ç讨论ç»èçæè½åç读è æ¥è¯´ï¼æ¯ææä¹çãå æ¬è¡¥ä¸ç¨åºå®ä½ é误çï¼å æ ¸æ¥å¿æ¶æ¯ãOOPSæ¶æ¯çï¼çç¶ï¼å¯¹äºæç´¢æ交æ¥å¿ä»¥å¯»æ¾éç¨è¡¥ä¸ç人 å°¤å ¶æç¨ãå¦æä¸ä¸ªè¡¥ä¸ä¿®å¤äºä¸ä¸ªç¼è¯å¤±è´¥ï¼é£ä¹å¯è½ä¸éè¦å å«ææç¼è¯å¤±è´¥ï¼ åªè¦è¶³å¤è®©æ索补ä¸ç人è½å¤æ¾å°å®å°±è¡äºãä¸æ¦è¿°ä¸æ ·ï¼æ¢è¦ç®æ´åè¦æè¿°æ§ã "---" æ è®°è¡å¯¹äºè¡¥ä¸å¤çå·¥å ·è¦æ¾å°åªéæ¯æ¹å¨æ¥å¿ä¿¡æ¯çç»æï¼æ¯ä¸å¯ç¼ºå° çã å¯¹äº "---" æ è®°ä¹åçé¢å¤æ³¨è§£ï¼ä¸ä¸ªå¥½çç¨éå°±æ¯ç¨æ¥å diffstatï¼ç¨æ¥æ¾ 示修æ¹äºä»ä¹æ件åæ¯ä¸ªæ件é½å¢å åå é¤äºå¤å°è¡ãdiffstat 对äºæ¯è¾å¤§çè¡¥ ä¸ç¹å«æç¨ãå ¶ä½é£äºåªæ¯åæ¶å»æè å¼åè ç¸å ³ç注解ï¼ä¸åéæ¾å°æ°¸ä¹ çæ¹ å¨æ¥å¿éçï¼ä¹åºè¯¥æ¾è¿éã ä½¿ç¨ diffstatçé项 "-p 1 -w 70" è¿æ ·æ件åå°±ä¼ä»å æ ¸æºä»£ç æ çç®å½å¼å§ ï¼ä¸ä¼å ç¨å¤ªå®½ç空é´ï¼å¾å®¹æéå80åç宽度ï¼ä¹è®¸ä¼æä¸äºç¼©è¿ãï¼ å¨åé¢çåèèµæä¸è½çå°éå½çè¡¥ä¸æ ¼å¼çæ´å¤ç»èã .. _cn_explicit_in_reply_to: 15) æç¡®åå¤é®ä»¶å¤´(In-Reply-To) ------------------------------- æå¨æ·»å åå¤è¡¥ä¸ççæ é¢å¤´(In-Reply_To:) æ¯æ帮å©çï¼ä¾å¦ï¼ä½¿ç¨ ``git send-email`` ï¼ å°è¡¥ä¸ä¸ä»¥åçç¸å ³è®¨è®ºå ³èèµ·æ¥ï¼ä¾å¦ï¼å°bugä¿®å¤ç¨åºé¾æ¥å°çµåé®ä»¶åbugæ¥åã ä½æ¯ï¼å¯¹äºå¤è¡¥ä¸ç³»åï¼æ好é¿å å¨åå¤æ¶ä½¿ç¨é¾æ¥å°è¯¥ç³»åçæ§çæ¬ãè¿æ ·ï¼ è¡¥ä¸çå¤ä¸ªçæ¬å°±ä¸ä¼æ为çµåé®ä»¶å®¢æ·ç«¯ä¸æ æ³ç®¡ççå¼ç¨åºåãå¦æé¾æ¥æç¨ï¼ å¯ä»¥ä½¿ç¨ https://lkml.kernel.org/ éå®åå¨ï¼ä¾å¦ï¼å¨å°é¢çµåé®ä»¶ææ¬ä¸ï¼ é¾æ¥å°è¡¥ä¸ç³»åçæ©æçæ¬ã 16) åégit pullè¯·æ± -------------------- å¦ææ¨æä¸ç³»åè¡¥ä¸ï¼é£ä¹è®©ç»´æ¤äººåéè¿git pullæä½å°å®ä»¬ç´æ¥æå ¥åç³»ç»åå¨ åºå¯è½æ¯ææ¹ä¾¿çãä½æ¯ï¼è¯·æ³¨æï¼ä»å¼å人åé£éè·åè¡¥ä¸æ¯ä»é®ä»¶å表ä¸è·åè¡¥ ä¸éè¦æ´é«ç信任度ãå æ¤ï¼è®¸å¤åç³»ç»ç»´æ¤äººåä¸æ¿ææ¥å请æ±ï¼ç¹å«æ¯æ¥èªæ°ç æªç¥å¼å人åç请æ±ãå¦ææçé®ï¼æ¨å¯ä»¥å¨å°é¢é®ä»¶ä¸ä½¿ç¨pull 请æ±ä½ä¸ºè¡¥ä¸ç³»å æ£å¸¸åå¸çä¸ä¸ªé项ï¼è®©ç»´æ¤äººåå¯ä»¥éæ©ä½¿ç¨å ¶ä¸ä¹ä¸ã pull 请æ±ç主é¢è¡ä¸åºè¯¥æ[Git Pull]ã请æ±æ¬èº«åºè¯¥å¨ä¸è¡ä¸å å«åå¨åºå称å æå ´è¶£çåæ¯ï¼å®åºè¯¥çèµ·æ¥å:: Please pull from git://jdelvare.pck.nerim.net/jdelvare-2.6 i2c-for-linus to get these changes: pull 请æ±è¿åºè¯¥å å«ä¸æ¡æ´ä½æ¶æ¯ï¼è¯´æ请æ±ä¸å°å å«ä»ä¹ï¼ä¸ä¸ªè¡¥ä¸æ¬èº«ç ``Git shortlog`` 以åä¸ä¸ªæ¾ç¤ºè¡¥ä¸ç³»åæ´ä½ææç ``diffstat`` ãå½ç¶ï¼å°ææè¿äºä¿¡æ¯æ¶éå¨ä¸èµ· çæç®åæ¹æ³æ¯è®© ``git`` ä½¿ç¨ ``git request-pull`` å½ä»¤ä¸ºæ¨å®æè¿äºå·¥ä½ã ä¸äºç»´æ¤äººåï¼å æ¬Linusï¼å¸æçå°æ¥èªå·²ç¾åæ交ç请æ±ï¼è¿å¢å äºä»ä»¬å¯¹ä½ ç 请æ±ä¿¡å¿ãç¹å«æ¯ï¼å¨æ²¡æç¾åæ ç¾çæ åµä¸ï¼Linus ä¸ä¼ä»å Github è¿æ ·çå ¬å ± æ管ç«ç¹æ请æ±ã å建æ¤ç±»ç¾åç第ä¸æ¥æ¯çæä¸ä¸ª GNRPG å¯é¥ï¼å¹¶ç±ä¸ä¸ªæå¤ä¸ªæ ¸å¿å æ ¸å¼å人å对 å ¶è¿è¡ç¾åãè¿ä¸æ¥å¯¹æ°å¼å人åæ¥è¯´å¯è½å¾å°é¾ï¼ä½æ²¡æåæ³ç»è¿å®ãåå ä¼è®®æ¯ æ¾å°å¯ä»¥ç¾ç½²æ¨çå¯é¥çå¼å人åç好æ¹æ³ã ä¸æ¦æ¨å¨Git ä¸åå¤äºä¸ä¸ªæ¨å¸ææ人æçè¡¥ä¸ç³»åï¼å°±ç¨ ``git tag -s`` åå»ºä¸ ä¸ªç¾åæ è®°ãè¿å°å建ä¸ä¸ªæ°æ è®°ï¼æ è¯è¯¥ç³»åä¸çæåä¸æ¬¡æ交ï¼å¹¶å å«ç¨æ¨çç§ é¥å建çç¾åãæ¨è¿å¯ä»¥å°changelogæ ·å¼çæ¶æ¯æ·»å å°æ è®°ä¸ï¼è¿æ¯ä¸ä¸ªæè¿°æè¯·æ± æ´ä½ææççæ³ä½ç½®ã å¦æç»´æ¤äººåå°è¦ä»ä¸æåçæ ä¸æ¯æ¨æ£å¨ä½¿ç¨çåå¨åºï¼è¯·ä¸è¦å¿è®°å°å·²ç¾åçæ è®° æ¾å¼æ¨éå°å ¬å ±æ ã çææ请æ±æ¶ï¼è¯·ä½¿ç¨å·²ç¾åçæ è®°ä½ä¸ºç®æ ãè¿æ ·çå½ä»¤å¯ä»¥å®ç°:: git request-pull master git://my.public.tree/linux.git my-signed-tag åèæç® -------- Andrew Morton, "The perfect patch" (tpp). <https://www.ozlabs.org/~akpm/stuff/tpp.txt> Jeff Garzik, "Linux kernel patch submission format". <https://web.archive.org/web/20180829112450/http://linux.yyz.us/patch-format.html> Greg Kroah-Hartman, "How to piss off a kernel subsystem maintainer". <http://www.kroah.com/log/linux/maintainer.html> <http://www.kroah.com/log/linux/maintainer-02.html> <http://www.kroah.com/log/linux/maintainer-03.html> <http://www.kroah.com/log/linux/maintainer-04.html> <http://www.kroah.com/log/linux/maintainer-05.html> <http://www.kroah.com/log/linux/maintainer-06.html> NO!!!! No more huge patch bombs to linux-kernel@vger.kernel.org people! <https://lkml.org/lkml/2005/7/11/336> Kernel Documentation/process/coding-style.rst: :ref:`Documentation/translations/zh_CN/process/coding-style.rst <cn_codingstyle>` Linus Torvalds's mail on the canonical patch format: <http://lkml.org/lkml/2005/4/7/183> Andi Kleen, "On submitting kernel patches" Some strategies to get difficult or controversial changes in. http://halobates.de/on-submitting-patches.pdf