½¨Á¢ CVS ´¢´æ¿â (repository) - ÒÔ FreeBSD µÄ·½Ê½

Stijn Hoop

$FreeBSD: release/9.1.0/zh_CN.GB2312/articles/cvs-freebsd/article.sgml 38826 2012-05-17 19:12:14Z hrs $

FreeBSD ÊÇ FreeBSD»ù½ð»áµÄ×¢²áÉ̱ê

Ðí¶àÖÆÔìÉ̺;­ÏúÉÌʹÓÃһЩ³ÆÎªÉ̱êµÄͼ°¸»òÎÄ×ÖÉè¼ÆÀ´ÕÃÏÔ×Ô¼ºµÄ²úÆ·¡£ ±¾ÎĵµÖгöÏֵģ¬ Ϊ FreeBSD Project ËùÖªÏþµÄÉ̱꣬ºóÃæ½«ÒÔ '"' »ò '®' ·ûºÅÀ´±ê×¢¡£

¡¡¡¡Õâ·ÝÎļþÃèÊöÁËʹÓÃºÍ FreeBSD ÏîÄ¿ÏàͬµÄÃüÁî½Å±¾À´½¨Á¢ CVS ´¢´æ¿âµÄ²½Öè¡£ ÕâºÍ±ê×¼ CVS ½¨Á¢µÄ´¢´æ¿âÏà½ÏÖ®ÏÂÓÐÐí¶àÓŵ㣬 ËüÌṩÁ˸ü¶à¶ÔÓÚÔ´´úÂëÊ÷µÄϸÁ£¶È·ÃÎÊ¿ØÖÆ£¬ ²¢Äܹ»ÎªÃ¿Ò»´ÎµÄÌá½»Éú³ÉºÍ·¢³öÒ×¶ÁµÄµç×ÓÓʼþ¡£


1 ¼ò½é

¡¡¡¡´ó¶àÊýµÄ¿ª·ÅÔ´´úÂëÈí¼þÏîÄ¿¶¼Ê¹Óà CVS ×÷ΪËüÃǵÄÔ´´úÂë¿ØÖÆÏµÍ³¡£ ¾¡¹Ü CVS ÓÐÐí¶àµÄÓŵ㣬 µ«ËüÒ²Óв¿·ÝµÄ覴úÍȱµã¡£ ÆäÖÐÖ®Ò»µÄÔ­ÒòÊÇºÍÆäËüµÄ¿ª·¢Õß·ÖÏíÔ´´úÂëÊ÷¿ÉÄÜ»áѸËÙ³ÉΪϵͳ¹ÜÀíµÄ¶ñÃΣ¬ ÌØ±ðÊǵ±ÓÐÈËÏ£Íû±£»¤²¿·ÝµÄÔ´´úÂëÊ÷ÃâÊÜÓÚÒ»°ãµÄ´æÈ¡Ê±¡£

¡¡¡¡FreeBSD ÊÇÖÚ¶àʹÓà CVS µÄÏîĿ֮һ£¬ ÒòΪ»ùÓÚËü½øÐпª·¢µÄ¿ª·¢ÈËÔ±±é²¼ÓÚÈ«ÊÀ½ç¡£ ËûÃÇ׫дÁËһЩÃüÁî½Å±¾Ê¹µÃ¹ÜÀí´¢´æ¿â±äµÃ¸ü¼ÓÈÝÒס£ ×î½üÕâЩÃüÁî½Å±¾ÓÉ Josef Karthauser ÖØÐÂÕûÀí¹ýÇÒ¸ü±ê×¼»¯£¬ ʹµÃÔÚÆäËüµÄÏîÄ¿ÉÏÔÙ´ÎʹÓÃÕâЩÃüÁî½Å±¾»á¸ü¼ÓÈÝÒס£ ±¾Îļþ½«ÃèÊöʹÓÃÕâЩеÄÃüÁî½Å±¾µÄ·½·¨¡£

¡¡¡¡ÎªÁËʹ±¾ÎļþÖеÄÐÅÏ¢¶ÔÄúÓÐÓ㬠ÄúÐèÒªÊ×ÏÈÊìϤ CVS µÄ»ù±¾²Ù×÷·½Ê½¡£


2 »ù±¾ÅäÖÃ

¾¯¸æ: ×îºÃµÄ·½Ê½ÊÇÔÚÒ»¸öȫеĴ¢´æ¿âÖÐÖ´ÐÐÕâЩ²½Ö裬 ²¢È·¶¨ÄãÁ˽âËùÓеĺó¹û¡£ ͬʱ£¬ ÇëÈ·¶¨ÄãÓÐ×îÐÂÇҿɶÁµÄ×ÊÁϱ¸·Ý£¡


2.1 ³õʼ»¯´¢´æ¿â

¡¡¡¡Ê×ÏÈÒª×öµÄÊǽ¨Á¢Ò»¸öеĴ¢´æ¿â£¬ Ö´ÐÐÏÂÁÐÃüÁî¸æËß CVS ½¨Á¢²¢³õʼ»¯£º

% cvs -d path-to-repository init

¡¡¡¡ÕâÃüÁî¸æËß CVS ½¨Á¢ CVSROOT µÄĿ¼£¬ Õâ¸öĿ¼Àï·ÅÖÃÁËËùÓеÄÅäÖÃÎļþ¡£


2.2 ÅäÖô¢´æ¿âµÄÓû§×é

¡¡¡¡ÏÖÔÚÎÒÃǽ«½¨Á¢Ò»¸öÓµÓиô¢´æ¿âµÄÓû§×飬 ËùÓеĿª·¢Õß±ØÐë¼ÓÈëÕâ¸öÓû§×飬 ÕâÑùËûÃDzÅÄܹ»´æÈ¡¸Ã´¢´æ¿â¡£ ÎÒÃǼÙÉèÓû§×éÃû³ÆÊÇÒÔ FreeBSD ÄÚ²¿Ëù²ÉÓÃµÄ ncvs¡£

# pw groupadd ncvs

¡¡¡¡½Ó×ÅÄãÐèҪʹÓà chown(8) ½«Ä¿Â¼ËùÓÐÕßÖ¸¶¨¸ø¸Õ¸ÕÐÂÔöµÄÓû§×飺

# chown -R :ncvs path-to-your-repository

¡¡¡¡Èç´ËÒ»À´£¬ ûÓÐÊʵ±µÄÓû§×éÐí¿ÉµÄÓû§£¬ ¾Í²»ÔÙÄܹ»Ð´Èë¸Ã´¢´æ¿â¡£


2.3 È¡»ØÔ´Îļþ

¡¡¡¡ÏÖÔÚÄãÐèÒª´Ó FreeBSD ´¢´æ¿âÖÐÈ¡»Ø CVSROOT Ŀ¼£¬ ´Ó FreeBSD ÄäÃûµÄ CVS ¾µÏñÕ¾À´È¡»Ø»áÊÇ×î¼òµ¥µÄ·½·¨¡£Çë²éÔÄ ÔÚ Ê¹ÓÃÊÖ²á ÖеÄÏà¹ØÕÂ½Ú À´»ñµÃ¸ü¶àÐÅÏ¢¡£ ÎÒÃǼÙÉèÈ¡»ØµÄÎļþ´æ·ÅÔÚÏàͬĿ¼Ï嵀 CVSROOT-freebsd Ŀ¼ÖС£


2.4 ¸´ÖÆ FreeBSD µÄÃüÁî½Å±¾

¡¡¡¡½ÓÏÂÀ´ÎÒÃÇÒª¸´ÖÆ FreeBSD CVSROOT ÀïµÄÎļþµ½ÄãµÄ´¢´æ¿âÖС£ Èç¹ûÄãÊìϤ CVS£¬ ÄãÒ²Ðí»áÏëÄã¿ÉÒÔÖ±½Ó»ãÈë (import) ÕâЩÃüÁî½Å±¾£¬ ´Ó¶ø¸üÈÝÒ×µØÔÚδÀ´ÓÐаæÊ±½øÐа汾ͬ²½£» ²»¹ý£¬ÊÂʵÊÇ CVS ÔÚÕâ¸ö²¿·ÝÓÐȱµã£º µ±»ãÈëÎļþµ½ CVSROOT ʱ£¬ Ëü²¢²»»á¸üÐÂÅäÖÃÎļþ¡£ ΪÁËÒªÈϳöÕâЩÎļþ£¬ Ä㻹ÐèÒªÔÚ»ãÈëËüÃǺóÒ»Ò»ÖØÐÂÌá½»£¬ Õâ¾ÍʧȥÁË cvs import µÄ¼ÛÖµ¡£ Òò´Ë£¬ ÍÆ¼öµÄ·½·¨ÊÇÖ±½Ó½«ÕâЩÃüÁî½Å±¾¸´ÖƹýÈ¥¡£

¡¡¡¡Èç¹ûÄú²»Á˽âÕâЩ²Ù×÷ҲûÓйØÏµ ©¤©¤ ÒòΪ×îºóµÄ½á¹û¶¼ÊÇÒ»ÑùµÄ¡£ Ê×ÏÈ»ã³ö (checkout) ÄãµÄ CVSROOT£¬ È»ºó¸´ÖƸոÕÈ¡»ØµÄ FreeBSD Îļþµ½±¾µØµÄĿ¼ÖУ¨ÉÐδ±ä¶¯¹ý£©£º

% cvs -d path-to-your-repository checkout CVSROOT
% cd CVSROOT
% cp ../CVSROOT-freebsd/* .
% cvs add *

¡¡¡¡×¢Ò⣺ ÄãºÜ¿ÉÄÜ»áµÃµ½Ò»¶Î¹ØÓÚijЩĿ¼ûÓб»¸´ÖƵľ¯¸æ£¬ÕâÊÇÕý³£µÄ£¬ Äã²¢²»ÐèÒªÓõ½ÕâЩĿ¼¡£


2.5 ÃüÁî½Å±¾ËµÃ÷

¡¡¡¡ÏÖÔÚÄãµÄ¹¤×÷Ŀ¼ÖÐÓÐÁËÍêÕû FreeBSD ÏîÄ¿ÔÚËûÃǵĴ¢´æ¿âÖÐʹÓõÄÃüÁî½Å±¾µÄ¸±±¾£¬ ÒÔÏÂÊÇÿ¸öÎļþ¼òµ¥µÄ½éÉÜ¡£

  • access - ´ËÎļþÔÚÔ¤ÉèµÄ°²×°ÖÐûÓб»Óõ½¡£ ËüÊÇÔÚ FreeBSD µÄרÓÃÅäÖà ÖÐÓÃÀ´¿ØÖÆ´¢´æ¿âµÄ´æÈ¡µÄ¡£ Èç¹ûÄ㲻ϣÍûʹÓÃÕâ¸öÅäÖõϰ£¬ Ôò¿ÉÒÔɾ³ýÕâ¸öÎļþ¡£

  • avail - ´ËÎļþ¿ØÖÆ´¢´æ¿âµÄ´æÈ¡¡£ ÔÚ´ËÎļþÖÐÄã¿ÉÒÔÖ¸¶¨ÔÊÐí´æÈ¡´¢´æ¿âµÄÓû§×飬 Ò²¿ÉÒÔÕë¶ÔĿ¼»òÎļþÀ´¾Ü¾øÌá½»¡£ ÄãÓ¦¸Ãµ÷ÕûΪÔÚÄãµÄ´¢´æ¿âÖн«°üº¬µÄÓû§×éºÍĿ¼¡£

  • cfg.pm - ´ËÎļþ˵Ã÷ÁËÅäÖÃÄÚÈÝ£¬²¢ÌṩԤÉèµÄÅäÖᣠÄã ²» Ó¦Ð޸ĴËÎļþ£¬ ¶øÓ¦½«Ð޸ĵÄÅäÖ÷ŵ½ cfg_local.pm¡£

  • cfg_local.pm - ´ËÎļþ°üº¬ËùÓеÄϵͳÅäÖÃÖµ¡£ ÄãÓ¦¸ÃÅäÖÃËùÓÐÁÐÔڴ˵ÄÅäÖ㬠ÀýÈçÌá½»µÄÓʼþÒª¼Äµ½ÄÄ¡¢ ÔÚÄÄЩÖ÷»úÉϵÄʹÓÃÕß¿ÉÒÔÌá½»µÈµÈ¡£ ¸ü¶àµÄÏà¹ØÐÅÏ¢ÔÚÉÔºó»áÌáµ½¡£

  • checkoutlist - ´ËÎļþÁгöËùÓÐÔÚ CVS ¿ØÖÆÏ´ËĿ¼ÖеÄÎļþ£¬ ³ýÁ˱ê×¼ÔÚ cvs init ½¨Á¢³öµÄÎļþ¡£ Äã¿ÉÒÔɾ³ýijЩ²»ÐèÒªµÄ FreeBSD רÓõÄÎļþ¡£

  • commit_prep.pl - ´ËÃüÁî½Å±¾Ö´Ðи÷ÖÖÌύǰµÄ¼ì²é£¬ ÕâЩ¼ì²éÊÇ·ñÆôÓ㬠ȡ¾öÓÚÄúÔÚ cfg_local.pm ÖÐËù½øÐеÄÅäÖᣠÄã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • commitcheck - ´ËÃüÁî½Å±¾»áÖ±½ÓÓ°Ïì CVS¡£ Ê×ÏÈËü»áʹÓà cvs_acls.pl À´¼ì²éÌá½»ÕßÊÇ·ñ¿ÉÒÔ´æÈ¡Ö¸¶¨µÄÔ´´úÂëÊ÷£¬ È»ºóÖ´ÐÐ commit_prep.pl À´È·Èϸ÷ÖÖÌύǰµÄ¼ì²é¡£ Èç¹ûÒ»ÇÐÕý³££¬CVS ½«ÔÊÐí´Ë´ÎÌá½»¼ÌÐøÖ´ÐС£ Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • commitinfo - ´ËÎļþÊÇ CVS ÓÃÀ´¶¨ÒåÔÚÌύǰËùÒªÖ´ÐеijÌÐò ©¤©¤ ÔÚ´ËÀýÖÐÊÇ commitcheck¡£Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • config - ´¢´æ¿âµÄÅäÖÃÑ¡Ïî¡£ Äã¿ÉÒÔÐÞ¸ÄΪÄãÏëÒªµÄ£¬ µ«´ó¶àÊýµÄ¹ÜÀíÕß¿ÉÄܻᱣÁôĬÈÏÖµ¡£ ¸ü¶à¹ØÓÚ¿ÉÒÔÔÚ´ËÅäÖõÄÑ¡ÏîÐÅÏ¢¿ÉÒÔ²éÔÄ CVS Êֲᡣ

  • cvs_acls.pl - ´ËÃüÁî½Å±¾¶¨ÒåÌá½»ÕßµÄÉí·Ö£¬ ÒÔ¼°Ëû/ËýÊÇ·ñÔÊÐí´æÈ¡Ô´´úÂëÊ÷£¬ ÕâЩÅжϻùÓÚ avail ÖеÄÅäÖᣠÄã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • cvsignore - ´ËÎļþÁгöÄÄЩÎļþ CVS ²»Óô¦Àíµ½´¢´æ¿âÖУ¬ Äã¿ÉÒÔÐ޸ijÉÄãÏëÒªµÄ¡£ ¸ü¶à¹ØÓÚ¿ÉÒÔ´ËÎļþµÄ˵Ã÷¿ÉÒÔ²éÔÄ CVS Êֲᡣ

  • cvswrappers - ´ËÎļþÊÇ CVS ÓÃÀ´ÆôÓûòÍ£Óùؼü´ÊÕ¹¿ª£¬ »òÕßÊÇ·ñÓ¦½«ÎļþÊÓΪ¶þ½øÖÆÎļþ¡£ Äã¿ÉÒÔÐ޸ijÉÄãÏëÒªµÄ¡£ ¸ü¶à¹ØÓÚ¿ÉÒÔ´ËÎļþµÄ˵Ã÷¿ÉÒÔ²éÔÄ CVS Êֲᡣ ×¢Òâ -t ºÍ -f Ñ¡ÏîÔÚ CVS ¿Í»§¶Ë/·þÎñÆ÷ ²¢²»Äܹ»ÕýÈ·µØÔË×÷¡£

  • edithook - ´ËÎļþÒѾ­²»ÔÙʹÓÃÁË£¬ ½öΪÀúÊ·Ô­Òò±£Áô¡£ Äã¿ÉÒÔ°²È«µØÉ¾³ý´ËÎļþ¡£

  • editinfo - CVS ʹÓÃÕâ¸öÎļþÀ´Ç¿ÆÈÄãʹÓÃÌØ¶¨µÄ±à¼­Æ÷¡£ FreeBSD ûÓÐʹÓÃÕâ¸ö¹¦ÄÜ£¬ ¶ø¶ÔÊäÈëµÄÈÕÖ¾ÐÅÏ¢µÄ¼ì²é£¬ ÔòÓÉ verifymsg ºÍ logcheck À´Íê³É¡£ ÕâÊÇÒòΪ editinfo ¹¦ÄÜÔÚ´ÓÔ¶³ÌÌá½»»òÊÇʹÓà -m »ò -F Ñ¡Ïîʱ²»»áÖ´ÐС£ Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • exclude - ´ËÎļþÁгö±» commit_prep.pl ¶¨Òå²»Äܰüº¬ÐÞÕý°æ±êÍ·µÄÎļþ¡£ ÔÚ FreeBSD °æ±¾µÄÅäÖÃÖУ¬ ËùÓÐÔÚÐÞÕý°æ¿ØÖÆÏµÄÎļþÐèÓÐÒ»¸öÐÞÕý°æ±êÍ·£¬ (ÀàËÆ $FreeBSD$ ÕâÑù)¡£ ´ËÎļþÖðÐÐÁгö²»Ó¦½øÐмì²éµÄÎļþÃû×Ö¡£ Äã¿ÉÒÔÔÚ´ËÎļþÖÐΪ²»ÐèÒªÐÞÕý°æ±êÍ·µÄÎļþÐÂÔöÒ»¸öÕýÔò±í´ïʽ¡£ ΪÁ˰²×°ÕâЩÃüÁî½Å±¾£¬ ×îºÃµÄ·½·¨Êǽ« CVSROOT/ ´Ó±êÍ·¼ì²éÖÐÅųý¡£

  • log_accum.pl - ´ËÃüÁî½Å±¾»á´¦ÀíÓÉ logcheck ËùÌṩµÄÈÕÖ¾ÐÅÏ¢£¬ ²¢ÇÒ½«Ö®Îª±¸·ÝÄ¿µÄ¸½¼ÓÓÚ´¢´æ¿âÖеļǼÎļþ¡£ ͬʱҲִÐÐÒª½«Óʼþ¼Äµ½ÄãÌṩµÄÐÅÏäÖеijÌÐò (ÔÚ cfg_local.pm ÖÐ)¡£ ËüºÍ CVS Ö®¼äÊÇÓÉ loginfo ¸ºÔð¹µÍ¨¡£ Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • logcheck - ´ËÎļþ·ÖÎöÌá½»ÕßÌṩµÄÈÕÖ¾ÐÅÏ¢£¬ ²¢ÊÔͼ¶ÔÆä×÷ÇåÀí¶¯×÷¡£ ËüºÍ CVS Ö®¼äÊÇÓÉ verifymsg ¸ºÔð¹µÍ¨¡£ Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

    ×¢Òâ: ´ËÃüÁî½Å±¾ÒÀÀµÓÚ¾­¹ý FreeBSD ÐÞ¸ÄµÄ CVS£º FreeBSD °æ±¾ÔÚ´ËÃüÁî½Å±¾Ð޸Ĺýºó²Å¶ÁÈ¡ÈÕÖ¾ÐÅÏ¢£» ±ê×¼µÄ CVS °æ±¾ËäÈ»Äܹ»¼ì²éÓï·¨ÉÏÊÇ·ñÕýÈ·£¬ µ«²¢²»»áÇåÀíÈÕÖ¾ÐÅÏ¢¡£CVS 1.11.2 ¿ÉÒÔͨ¹ýÔÚ config ÅäÖà RereadLogAfterVerify=always À´ºÍ FreeBSD °æ±¾ÓÐÏàͬµÄ×÷Óá£

  • loginfo - ´ËÎļþÊÇ CVS ÓÃÀ´¿ØÖÆÈÕÖ¾ÐÅÏ¢Òª¼Äµ½ÄÄÀ¶ø log_accum.pl ¸ºÔð´¦Àí¡£Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • modules - ´ËÎļþ±£ÁôÁË CVS ԭʼµÄÒâÒå¡£ ÄãÓ¦¸Ãɾ³ýÐÂÔöµÄ FreeBSD Ä£¿é£¬ ²¢ÐÞ¸ÄΪÄãÏëÒªµÄÄÚÈÝ¡£ ¸ü¶à¹ØÓÚ¿ÉÒÔ´ËÎļþµÄ˵Ã÷¿ÉÒÔ²éÔÄ CVS Êֲᡣ

  • notify - ´ËÎļþΪ CVS ÓÃÀ´¿ØÖƼ࿴ij¸öÎļþ¡£ ÔÚ FreeBSD µÄ´¢´æ¿âÖÐûÓÐÓõ½´ËÎļþ£¬ Äã¿ÉÒÔÐ޸ijÉÄãÏëÒªµÄ¡£ ¸ü¶à¹ØÓÚ¿ÉÒÔ´ËÎļþµÄ˵Ã÷£¬ ¿ÉÒÔ²éÔÄ CVS Êֲᡣ

  • options - ´ËÎļþ½öÏÞʹÓÃÓÚ FreeBSD ºÍ Debian µÄ CVS °æ±¾¡£ Ëü°üº¬ÁËÐèÒªÔÚÐÞÕý°æ±êÍ·ÖÐÕ¹¿ªµÄ¹Ø¼ü´Ê¡£ Äã¿ÉÒÔÐÞ¸ÄΪ·ûºÏÄãÔÚ cfg_local.pm ÖÐÖ¸¶¨µÄ¹Ø¼ü´Ê¡£

  • rcsinfo - ´ËÎļþ¶¨ÒåÌύʱ£¬ ´¢´æ¿âËùҪʹÓõÄÈÕÖ¾ÐÅÏ¢Ñùʽģ°å£¬ Èç rcstemplate¡£ FreeBSD Ô¤ÉèΪËùÓеĴ¢´æ¿âʹÓÃͬһ¸öÑùʽģ°å£¬ Äã¿ÉÒÔ¼ÓÈëÆäËüÄãÏëÒªµÄ¡£

  • rcstemplate - ´ËÎļþÊÇÌá½»ÕßÔÚÌύʱ»á¿´µ½µÄÈÕÖ¾ÐÅÏ¢Ñùʽģ°å£¬ ÄãÓ¦¸ÃÐÞ¸ÄΪÄãÔÚ cfg_local.pm Öж¨ÒåµÄ¸÷ÖÖ²ÎÊý¡£

  • tagcheck - ´ËÎļþ¿ØÖÆÔÚ´¢´æ¿âÖÐÌùÉϱêÇ©µÄ´æÈ¡¡£ ±ê×¼µÄ FreeBSD °æ±¾¾Ü¾øÃûΪ RELENG* µÄ±êÇ©£¬ÒòΪÕâÊÇ ½»¸¶¹¤³Ì×é µÄ¹¤×÷¡£ Äã¿ÉÒÔ¸ù¾ÝÐèÒªÀ´Ð޸ĴËÎļþ¡£

  • taginfo - ´ËÎļþ¿ØÖÆÖ´ÐÐÔÚ´¢´æ¿âÖÐÌùÉϱêÇ©µÄ´æÈ¡µÄÃüÁî½Å±¾£¬ Èç tagcheck¡£Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • unwrap - ´ËÃüÁî½Å±¾¿ÉÒÔÓÃÀ´ÔÚ»ã³öʱ×Ô¶¯ ¡°½â¿ª¡± ¶þ½øÖÆÎļþ (Çë¼û cvswrappers)¡£ Ŀǰ FreeBSD ²¢Ã»ÓÐʹÓôËÅäÖ㬠ÒòΪ´Ë¹¦ÄÜÔÚÔ¶³ÌÌύʱִÐеIJ¢²»Ê®·ÖÍêÉÆ¡£ Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • verifymsg - ´ËÎļþÓÃÀ´Ö´ÐкÍÈÕÖ¾ÐÅÏ¢Ïà¹ØµÄÃüÁî½Å±¾£¬ Èç logcheck¡£Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • wrap - ´ËÃüÁî½Å±¾¿ÉÒÔÓÃÀ´ÔÚÌύʱ×Ô¶¯ ¡°°ü¹ü¡± ¶þ½øÖÆÎļþ (Çë¼û cvswrappers)¡£ Ŀǰ FreeBSD ²¢Ã»ÓÐʹÓôËÅäÖ㬠ÒòΪ´Ë¹¦ÄÜÔÚÔ¶³ÌÌύʱִÐеIJ¢²»Ê®·ÖÍêÉÆ¡£ Äã²»Ó¦¸ü¶¯´ËÎļþ¡£


2.6 ¶¨ÖÆÃüÁî½Å±¾

¡¡¡¡½ÓÏÂÀ´µÄ²½ÖèÒªÅäÖÃÕâЩÃüÁî½Å±¾Ê¹µÃËüÃÇ¿ÉÒÔÔÚÄãµÄ»·¾³ÖÐÔË×÷¡£ ÄãÓ¦¸Ã¼ì²éËùÓÐÔÚĿ¼ÖеÄÎļþ£¬ ²¢ÐÞ¸ÄΪ·ûºÏÄãµÄÅäÖᣠÓÈÆä£¬ Äã»áÏëÒªÐÞ¸ÄÏÂÁеÄÎļþ£º

  1. Èç¹ûÄ㲻ϣÍûʹÓà FreeBSD µÄרÓÃÅäÖ㬠Äã¿ÉÒÔ°²È«µØÉ¾³ý access£º

    % cvs rm -f access
    
  2. ±à¼­ avail À´°üº¬ÄãÏë¿ØÖÆ´æÈ¡µÄ¸÷ÖÖ´¢´æ¿âĿ¼£¬ ÇëÈ·¶¨ÄãÓб£Áô avail||CVSROOT ÕâÒ»ÐУ¬ ·ñÔòÄ㽫»áÔÚÏÂÒ»²½°ÑÄã×Ô¼ºËøÔÚÍâÃæ¡£

    ÁíÍâÄã¿ÉÒÔÔÚ´ËÎļþÖÐÐÂÔö¿ª·¢ÕßµÄÓû§×飬FreeBSD Ô¤ÉèʹÓà access À´ÁгöËùÓеĿª·¢Õߣ¬ µ«Äã¿ÉÒÔʹÓÃÈκÎÄãÏëÒªÓõÄÎļþ¡£ Èç¹ûÄãÏëµÄ»°Ò²¿ÉÒÔÐÂÔöÓû§×é (ÇëʹÓÃÖ¸¶¨ÔÚ cvs_acls.pl Ç°ÃæËù½éÉܵÄÓï·¨)¡£

  3. ±à¼­ cfg_local.pm À´°üº¬ÄãÐèÒªµÄÑ¡Ïî¡£ ÄãÓ¦¸ÃÌØ±ð¼ìÊÓÒ»ÏÂÏÂÁеÄÅäÖÃÏîÄ¿£º

    • %TEMPLATE_HEADERS - ÕâÊÇÓÃÀ´È¡µÃÈÕÖ¾ÐÅÏ¢ÄÚÈݵijÌÐò£¬ ²¢¼ÓÈ뽫³ÊÏÖµÄÓʼþÏîÄ¿ºÍÌṩ·Ç¿ÕÖµµÄÐÅÏ¢¡£ Äã¿ÉÒÔɾ³ý PR ºÍ MFC after ÐðÊö£¬µ±È»Ò²¿ÉÒÔ¼ÓÈëÄãÏëÒªµÄ¡£

    • $MAIL_BRANCH_HDR - Èç¹ûÄãÏëÒªÔÚÿһ·âÌá½»µÄÓʼþÖмÓÈëÃèÊöÊÇÔÚÄÄÒ»¸ö·ÖÖ§ÖÐÌá½»µÄ±êÍ·£¬ ÄÇôÇ붨ÒåΪ·ûºÏÄãµÄÅäÖᣠÈç¹ûÄã²»ÏëʹÓÃÕâÑùµÄ±êÍ·£¬ ÄÇôÇëÅäÖÃΪ¿ÕÖµ¡£

    • @COMMIT_HOSTS - ¶¨ÒåʹÓÃÕßÄܹ»Ìá½»µÄÖ÷»ú¡£

    • $MAILADDRS - ÅäÖÃÓ¦¸ÃÊÕµ½Ìá½»ÓʼþµÄÓʼþµØÖ·¡£

    • @LOG_FILE_MAP - ÒÔÄãËùÐèÒªµÄÀ´ÐÞ¸ÄÕâ¸öÊý×飬 ÿ¸öÅäÖÃÖµÓ¦¸Ã·ûºÏ±»Ìá½»µÄĿ¼£¬¶øÌá½»µÄÈÕÖ¾ÐÅÏ¢»áÒÔ commitlogs µÄÃû³Æ´¢´æÔÚÿ¸ö±»ÅäÖõÄĿ¼Ï¡£

    • $COMMITCHECK_EXTRA - Èç¹ûÄã²»ÏëʹÓà FreeBSD רÓõĴæÈ¡¿ØÖÆ ¹¦ÄÜ£¬ Äã¿ÉÒÔÔÚ´ËÎļþÖÐɾ³ý¶Ô $COMMITCHECK_EXTRA µÄ¶¨Òå¡£

    ×¢Òâ: ÐÞ¸Ä $IDHEADER µÄ¹¦ÄÜÖ»ÓÐÔÚ FreeBSD ƽ̨ÉÏ¿ÉÒÔÔË×÷£¬ ËüÒÀÀµÓÚ FreeBSD רÓÃµÄ CVS ÅäÖá£

    Äã¿ÉÒÔ¼ì²é cfg.pm ÊÇ·ñÓÐÆäËüµÄ²ÎÊý¿ÉÒÔÐ޸ģ¬ µ«ÊÇÐÞ¸Ä×îºÃÊÇÓÐÔ­ÒòµÄ¡£

  4. ɾ³ý exclude ÖйØÓÚFreeBSD µÄרÓÃÅäÖõÄÐðÊö (ÈçÒÔ ^ports/ Ϊ¿ªÍ·µÄÿһÐеÈ)¡£ ´ËÍ⣬ ×¢Ê͵ôÒÔ ^CVSROOT/ Ϊ¿ªÍ·µÄÐÐÁУ¬ È»ºóÐÂÔöÒ»ÐÐÖ»ÓÐ ^CVSROOT/¡£ µÈµ½¹Ø¼ü´ÊÕ¹¿ªµÄÃüÁî½Å±¾°²×°ºÃºó£¬ Äã¿ÉÒÔÔÚ CVSROOT Ŀ¼ÖеÄÎļþÀï¼ÓÉϱêÍ·£¬ È»ºóÔÙ»Ö¸´¸Õ¸Õ×¢Ê͵ÄÐÐÁУ¬ µ«ÔÚÄ㻹ûÓÐÌύǰÔòÖ»±£³ÖÕâÑù¡£

  5. ±à¼­ modules£¬ ²¢É¾³ýËùÓÐ FreeBSD µÄÄ£¿é¡£ ¼ÓÈëÄãÐèÒªµÄÄ£¿é¡£

  6. ×¢Òâ: ´Ë²½ÖèÖ»ÓÐÔÚÄãÓÚ cfg_local.pm ÖÐÖ¸¶¨ÁË $IDHEADER ²ÅÓбØÒªÅäÖà (Ö»ÓÐÔÚ FreeBSD רÓÃµÄ CVS ÅäÖÃÉϲÅÄܹ»Ö´ÐÐ)¡£

    ±à¼­ options ÒÔ·ûºÏÄãÔÚ cfg_local.pm ÖÐÅäÖõıêÇ©Ãû³Æ¡£ ÔÚËùÓеÄÎļþÖÐËÑѰ FreeBSD ²¢Ì滻ΪÄãÅäÖõıêÇ©Ãû³Æ¡£

  7. ÐÞ¸Ä rcstemplate ΪºÍÔÚ cfg_local.pm ÖÐÏàͬµÄÅäÖá£

  8. Ñ¡ÔñÐÔµÄɾ³ýÔÚ tagcheck ÖÐÕë¶Ô FreeBSD ¼ì²éµÄÅäÖá£Äã¿ÉÒÔ½ö½öÔÚÎļþµÄ×îÉϲã¼ÓÉÏ exit 0 À´È¡ÏûËùÓбêÇ©µÄ¼ì²é¡£

  9. ÔÚÄãÍê³ÉǰµÄ×îºóÒ»¼þÊÂÊÇÈ·ÈÏ commitlogs ¿ÉÒÔÕýÈ·´¢´æ¡£ Ô¤Éè»á´¢´æÔÚ´¢´æ¿âÖÐ CVSROOT ÀïµÄ commitlogs ×ÓĿ¼ÖУ¬ ¶øÕâ¸öĿ¼ÐèÒªÊÂÏȽ¨Á¢£º

    % mkdir commitlogs
    % cvs add commitlogs
    

¡¡¡¡ÏÖÔÚ£¬ ÔÚϸÐĵļìÊÓ¹ýºó£¬ Äã¿ÉÒÔÌá½»ÄãµÄÐÞ¸ÄÁË¡£ È·¶¨ÄãÏÈǰÓÐÔÚ avail ÖÐÔÊÐíÄã×Ô¼º´æÈ¡ CVSROOT Ŀ¼£¬ ÒòΪÈç¹ûûÓÐÕâÑù×öµÄ»°Äã»á°ÑÄã×Ô¼ºËøÔÚÍâÃæ¡£ ÍêÕûÈ·ÈϹýºóÇëÖ´ÐÐÏÂÁÐÃüÁ

% cvs commit -m '- Initial FreeBSD scripts commit'

2.7 ²âÊÔÅäÖÃ

¡¡¡¡ÄãÒѾ­×¼±¸ºÃ×ö»ù±¾µÄ²âÊÔÁË£º Ç¿ÖÆÌá½» avail ÒÔÈ·ÈÏÿ¼þʶ¼ÈçÔ¤ÆÚµÄÔË×÷¡£

% cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' avail

¡¡¡¡Èç¹ûÒ»ÇÐÕý³££¬ ÄÇô¹§Ï²ÁË£¡ ÄãÏÖÔÚÒѾ­ÎªÄãµÄ´¢´æ¿â½¨Á¢ºÃ FreeBSD µÄÃüÁî½Å±¾ÁË¡£ Èç¹û CVS ÈÔÈ»Óо¯¸æÊ²Ã´£¬ »ØÍ·¼ìÊÓÉÏÊöµÄ²½ÖèÊÇ·ñÓÐÕýÈ·µÄÖ´ÐС£


3 FreeBSD µÄרÓÃÅäÖÃ

¡¡¡¡FreeBSD ÏîÄ¿×Ô¼ºÊ¹ÓÃÒ»¸öÓе㲻ͬµÄÅäÖã¬ÄǾÍÊÇͬʱҲʹÓà FreeBSD CVSROOT ÖÐµÄ freebsd ×ÓĿ¼¡£ ÒòΪ´óÁ¿µÄ committer ±ØÐëÔÚÏàͬµÄÓû§×éÖУ¬ Òò´ËÏîĿдÁËÒ»¸ö¼òµ¥µÄ wrapper À´È·±£ committer ¿ÉÒÔÕýÈ·µÄÌá½»£¬ ²¢ÅäÖô¢´æ¿âµÄÓû§×éÃû³Æ¡£

¡¡¡¡Èç¹ûÄãµÄ´¢´æ¿âÒ²ÐèÒªÕâÑùµÄ¹¦ÄÜ£¬ÄÇôÏÂÃæ¾Í»á½éÉÜÈçºÎ½¨Á¢£¬ ²»¹ýÊ×ÏÈÒªÏÈÀ´¿´Ò»¶Î¸´ÔӵĸÅÊö¡£


3.1 FreeBSD ÅäÖÃÖÐʹÓõÄÎļþ

  • access - ´ËÎļþÓÃÀ´¿ØÖÆ´¢´æ¿âµÄ´æÈ¡¡£ ÄãÓ¦¸Ã±à¼­²¢¼ÓÈëËùÓÐÔÚÏîÄ¿ÖеijÉÔ±¡£

  • freebsd/commitmail.pl - ´ËÎļþÒѾ­²»ÔÙʹÓÃÁË£¬ Ö»ÊÇÒòΪÀúÊ·Ô­Òò¶ø±£Áô¡£ Äã²»Ó¦¸ü¶¯´ËÎļþ¡£

  • freebsd/cvswrap.c - ´Ë CVS wrapper Ô´´úÂëÊÇÓÃÀ´½¨Á¢¼ì²éËùÓдæÈ¡µÄ¹¤×÷¡£¸ü¶àµÄÐÅÏ¢ÔÚÉÔºó»áÌá³ö¡£ ÄãÓ¦¸Ã±à¼­ ACCESS ºÍ REALCVS µÄ·¾¶ÒÔ·ûºÏÄãµÄÅäÖá£

  • freebsd/mailsend.c - ´ËÎļþÊÇ FreeBSD É趨 mailing lists ÐèÒªµÄ£¬ Äã²»Ó¦¸ü¶¯´ËÎļþ¡£


3.2 ²½Öè

  1. Ö»°ÑÄãµÄÓû§Ãû¼Óµ½ access ÖС£

  2. ±à¼­ cvswrap.c µÄ·¾¶ÒÔ·ûºÏÄãµÄÅäÖ㬠¶¨ÒåÔÚ´óдµÄ ACCESS ÖС£ ͬʱÈç¹ûĬÈÏÖµ²»·ûºÏÄãµÄÇé¿öµÄ»°Ò²Ó¦¸ÃÐ޸ı¾µØÊµ¼ÊµÄ cvs ³ÌÐòËùÔÚλÖᣠԭʼµÄ cvswrap.c Ï£ÍûÌæ´ú·þÎñÆ÷¶ËµÄ CVS ³ÌÐò£¬ ÀýÈ罫Æä¸ÄÃûΪ /usr/bin/ncvs¡£

    ÎÒµÄ cvswrap.c ÊÇÕâÑù£º

    #define ACCESS "/local/cvsroot/CVSROOT/access"
    #define REALCVS "/usr/bin/ncvs"
    
  3. ½ÓÏÂÀ´Êǽ¨Á¢ wrapper À´È·ÈÏÄãÔÚÌύʱÊÇÔÚÕýÈ·µÄÓû§×éÖС£ ÔÚÄãµÄ CVSROOT ÖÐµÄ cvswrap.c ÒªÄܹ»Ê¹Óá£

    ÔÚÄãÍê³É±à¼­²¢¼ÓÈëÕýÈ·µÄ·¾¶ºóÎÒÃÇÒªÀ´±àÒëÔ´´úÂ룺

    % cc -o cvs cvswrap.c
    

    È»ºó½øÐÐÐèÒªÅäÖ㨴˲½ÖèÐèÒª root ȨÏÞ£©£º

    # mv /usr/bin/cvs /usr/bin/ncvs
    # mv cvs /usr/bin/cvs
    # chown root:ncvs /usr/bin/cvs /usr/bin/ncvs
    # chmod o-rx /usr/bin/ncvs
    # chmod u-w,g+s /usr/bin/cvs
    

    Õâ»á½« wrapper °²×°³ÉÔ¤ÉèµÄ cvs ³ÌÐò£¬ ÇëÈ·¶¨ÈκÎҪʹÓô¢´æ¿âµÄÈËÓ¦¸ÃÓÐÕýÈ·µÄ´æÈ¡È¨ÏÞ¡£

  4. ÏÖÔÚÄã¿ÉÒÔɾ³ýËùÓÐÔÚ´¢´æ¿âÓû§×éÖеÄʹÓÃÕߣ¬ËùÓеĴæÈ¡¿ØÖƻᾭÓÉ wrapper Íê³É£¬Í¬Ê± wrapper »áÅäÖôæÈ¡µÄÕýÈ·Óû§×é¡£


3.3 ²âÊÔÅäÖÃ

¡¡¡¡ÄãµÄ wrapper ÏÖÔÚÓ¦¸ÃÒѾ­°²×°ºÃÁË£¬Ä㵱ȻҲ¿ÉÒÔÇ¿ÖÆÌá½» access À´²âÊÔÊÇ·ñÕý³££º

% cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access

¡¡¡¡Í¬ÑùµØ£¬Èç¹ûÓдíÎ󣬼ì²éÊÇ·ñÉÏÊöËùÓв½Öè¶¼ÓÐÕýÈ·µÄÖ´ÐС£


±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.