CVS Notify
±¸Çϱ⠶À§ ÇÁ·ÎÁ§Æ® ȨÆäÀÌÁö¿¡¼ ÆÄÀÏ ¸±¸®Á ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¿î·Îµå ¸µÅ©´Â http://kldp.net/download.php/1224/cvsnotify-1.1.0.tar.gz ¿Í °°½À´Ï´Ù.
À§ ȨÆäÀÌÁö¿¡¼ ÃÖÁ¾ ¸±¸®Áî¿¡ ´ëÇÑ ±â´É ¼³¸í°ú È¸é ½º³À¼¦À» º¼ ¼ö ÀÖ½À´Ï´Ù.
¾ÐÃà Ç®±â ¶¹ÞÀº
cvsnotify-1.1.0.tar.gz ¸¦ ´ÙÀ½°ú °°ÀÌ Ç±´Ï´Ù.
$ gunzip -c cvsnotify-1.1.0.tar.gz | tar xvf - gnu tar¸¦ ¾´´Ù¸é, ´ÙÀ½°ú °°ÀÌ Ç® ¼ö ÀÖ½À´Ï´Ù.
$ tar xvzf cvsnotify-1.1.0.tar.gz ¼³Ä¡ ¶¼öµ¿À¸·Î Çϳª¾¿ ¼³Ä¡ÇÏ°íÀÚÇÏ´Â ºÐÀº ¾Æ·¡ 6. ¼öµ¿¼³Ä¡/Á¦°Å·Î À̵¿ÇϽʽÿÀ. ¼³Ä¡¿¡ ¾Õ¼, ¼³Ä¡ÇÏ°íÀÚÇÏ´Â CVS Repository¸¦ ÀǹÌÇϴ ȯ°æº¯¼ö CVSROOT ¸¦ ¸ÕÀú ÁöÁ¤ÇؾßÇÕ´Ï´Ù.
$ export CVSROOT $ CVSROOT=/work/cvsrepository ¶Ç´Â, ¿ø°ÝÁö ¼³Ä¡¸ðµå¿¡¼´Â
$ export CVSROOT $ CVSROOT=:pserver:yourid@hostname:/work/cvsrepository ¿Í °°ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í, CVSROOT Á¢±ÙÀ» ¸Å¹ø ¾ÏÈ£¸¦ ¹¯´Â ¹æ½ÄÀ¸·Î ÇÏ´Â °æ¿ì´Â »ó´çÈ÷ ¸¹Àº ¾ÏÈ£¸¦ ³Ö¾î¾ßÇϹǷÎ, Âü°íÇϼż ÇѹøÀÇ ¾ÏÈ£¸¦ ÀÔ·ÂÇÏ´Â °æ¿ì·Î ¹Ù²ãÁֽô°͵µ ÁÁ½À´Ï´Ù.
´ÙÀ½ ¸í·ÉµéÀº
cvsnotify-1.1.0 µð·ºÅ丮¿¡¼ ÇϽñ⠹ٶø´Ï´Ù.
$ make install script ¿À·ù ´ëó¹ý ¶°©ÀÚ±â script ¿À·ù°¡ ³ª¸ç µ¿ÀÛÇÏÁö ¾ÊÀ» ¶§, ´ëó¹æ¹ý.
$ make clean-checkout $ cd CVSROOT $ vi commitinfo DEFAULT ¶õÀ» ÁÖ¼®Ã³¸®ÇÕ´Ï´Ù.
$ cvs ci ¾Æ¹« ·Î±× ¸Þ½ÃÁö³ª ³Ö°í ¿¡µðÅ͸¦ Á¾·áÇÕ´Ï´Ù.
¼öµ¿¼³Ä¡/Á¦°Å ¶ÀÏ´Ü ¼öµ¿À¸·Î ¼³Ä¡ Á¦°ÅÇϱâÀ§Çؼ´Â CVSROOT ¶ó´Â ¸ðµâÀ» ¹Þ¾Æ¿Í¾ß ÇÕ´Ï´Ù. ÀÌ ¸ðµâÀº Àü¹ÝÀûÀÎ CVS RepositoryÀÇ Çൿ¿¡ ´ëÇÑ ³»¿ëÀÌ µé¾î ÀÖ½À´Ï´Ù.
$ cvs co CVSROOT $ cd CVSROOT $ cp <souce-of-cvsnotify-make untarred dir>/.indent.pro . $ cp <souce-of-cvsnotify-make untarred dir>/cvsnotify-* . $ cp <souce-of-cvsnotify-make untarred dir>/cvsnotify.cf.sample . $ cp <souce-of-cvsnotify-make untarred dir>/cvsnotify.pm . $ mv cvsnotify.cf.sample cvsnotify.cf ¼öµ¿À¸·Î ¼³Ä¡/Á¦°ÅÇÏ´Â °ÍÀº
checkoutlist ÀÇ ¿ø¸®¸¦ ¾Ë°í Àß ÀÌ¿ëÇÏ´Â °Í¿¡ ÀÖ½À´Ï´Ù. CVS Repository¿¡ ÀúÀåµÇ´Â °ÍÀº ¹öÀü ÄÁÆ®·Ñ ÆÄÀÏÀÎ ÆÄÀÏ ³¡ÀÌ ",v "·Î ³¡³ª´Â °Íµé¸¸ ¿À°Ô µÇ¾î ÀÖ½À´Ï´Ù. ÇÏÁö¸¸, ¿©±â¼ Á¦°øÇÏ´Â ½ºÅ©¸³Æ®µéÀº CVS Repository»ó¿¡ ±×´ë·Î Á¸ÀçÇؾ߸¸ ÇÕ´Ï´Ù. À̸¦ À§Çؼ,
$ vi checkoutlist .indent.pro .indent.pro checkout failure cvsnotify.pm cvsnotify.pm checkout failure cvsnotify.cf cvsnotify.cf checkout failure cvsnotify-lang-ko.tpl cvsnotify-lang-ko.tpl checkout failure cvsnotify-lang-en.tpl cvsnotify-lang-en.tpl checkout failure cvsnotify-filenamechk.pl cvsnotify-commitinfo.pl checkout failure cvsnotify-commitinfo.pl cvsnotify-commitinfo.pl checkout failure cvsnotify-loginfo.pl cvsnotify-loginfo.pl checkout failure cvsnotify-indent.pl cvsnotify-indent.pl checkout failure cvsnotify-doxygenchk.pl cvsnotify-doxygenchk.pl checkout failure cvsnotify-logsend.pl cvsnotify-logsend.pl checkout failure cvsnotify-contentsend.pl cvsnotify-contentsend.pl checkout failure cvsnotify-lock.pl cvsnotify-lock.pl checkout failure À§ ³»¿ëÀ» ³Ö½À´Ï´Ù.
±×¸®°í,
commitinfo , logininfo ÆÄÀÏ¿¡ °¢°¢ ´ÙÀ½°ú °°ÀÌ ³Ö½À´Ï´Ù.
$ vi commitinfo CVSROOT echo Skip.. DEFAULT $CVSROOT/CVSROOT/cvsnotify-commitinfo.pl $ vi loginfo CVSROOT echo Skip.. DEFAULT $CVSROOT/CVSROOT/cvsnotify-loginfo.pl %{sVv} À§¿Í °°ÀÌ Çؾ߸¸, commit, log ³²±æ °æ¿ì¿¡ ÀÚµ¿À¸·Î ºÒ·ÁÁö°Ô µË´Ï´Ù.
¸ðµç ³»¿ëÀ» ³Ö°í¼
$ cvs up Çϸé "?" ·Î ³ª¿À´Â ÆÄÀϵéÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¸ðµç ÆÄÀϵéÀ» CVSROOT¸ðµâ¿¡ Ãß°¡ÇؾßÇÕ´Ï´Ù.
$ cvs add cvsnotify* $ cvs add .indent.pro ±×¸®°í, ¹Ý¿µ ÇÏ´Â °ÍÀÌÁÒ.
$ cvs ci ÀÌ»óÀ¸·Î ¼³Ä¡¸¦ ¸¶Ä¨´Ï´Ù.
±â´ÉÀ» ÀϽÃÀûÀ¸·Î ÁßÁö ½ÃÅ°·Á¸é,
commitinfo , loginfo ÆÄÀϸ¸ ¿ø·¡´ë·Î µ¹·Á³õÀ¸¸é µË´Ï´Ù. ¿ÏÀüÈ÷ ¾ø¾Ö·Á¸é, checkoutlist ±îÁö ¼öÁ¤Çϼ¼¿ä.
½ÇÀü ÀÀ¿ë ¶´ÙÀ½Àº CVSROOT ¸ðµâ¾È¿¡
cvsnotify.cf ȤÀº °¢ ¸ðµâÀÇ ÇØ´ç µð·ºÅ丮¾ÈÀÇ CVSADMIN ÆÄÀÏÀ» ¼öÁ¤ÇÏ´Â ¿¹Á¦ÀÔ´Ï´Ù.
·Î±×, ³»¿ë Àü¼Û ¶Q. Àú´Â silvermoon À̶ó´Â ¸ðµâ¿¡¼ ÀÛ¾÷ÇÏ°í ÀÖÀ¸¸ç, ÀÌ silvermoonÀÇ ·Î±×¸¦ dev@mymail.com ¶ó´Â ÁÖ¼Ò·Î º¸³»°í ½Í½À´Ï´Ù. ¶ÇÇÑ silvermoon-doc À̶ó´Â ¸ðµâ¿¡´Â .txt ÆÄÀÏ°ú .doc ÆÄÀÏÀÌ µé¾î ÀÖ½À´Ï´Ù. À̵éÀÇ º¯°æ »çÇ×À» ¸ÞÀÏ·Î ¾Ë·ÁÁÖ¼Ò ½Í½À´Ï´Ù.
A.
CVSROOT/cvsnotify.cf ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÏ½ÅµÚ cvs commit Çϼ¼¿ä.
# silvermoonÀÌ µé¾î ÀÖ´Â ¸ðµç ¸ðµâ¿¡ ´ëÇØ dev@mymail.com ·Î ·Î±×¸¦ Àü¼ÛÇÕ´Ï´Ù. log_notify = /silvermoon/ dev@mymail.com log_notify´Â
cvsnotify.cf ¿¡¼ ¾²À̸ç, ÇöÀç ÀÛ¾÷ÁßÀÎ µð·ºÅ丮°¡ Æò°¡µË´Ï´Ù. ¿¹¸¦ µé¾î ÇöÀç silvermoon/src/main.c ¶ó´Â ÆÄÀÏÀ» ¼öÁ¤ÇÒ °æ¿ì, silvermoon/src ¶ó´Â µð·ºÅ丮¸íÀÌ Á¤±Ô½Ä¿¡ Âü¿©ÇÏ°Ô µË´Ï´Ù.
silvermoon-doc/CVSADMIN À̶ó´Â ÆÄÀÏÀ» Çϳª ¸¸µå½Ã°í Add ÇϽñ⠹ٶø´Ï´Ù. ³»¿ëÀº ´ÙÀ½°ú °°½À´Ï´Ù.
diff_notify = /.*txt$/ dev@mymail.com attach_notify = /.*doc$/ dev@mymail.com diff_notify, attach_notify ´Â ´ÜÁö ÆÄÀÏ¸í¸¸ Æò°¡Çϱ⠶§¹®¿¡,
cvsnotify.cf ¿¡ µÎ¸é commitµÇ´Â ¸ðµç ÆÄÀÏ¿¡ ´ëÇØ À¯È¿ÇÏ°Ô µË´Ï´Ù. µû¶ó¼ ƯÁ¤ µð·ºÅ丮¾È¿¡¼ ÀϾ´Â Çൿ¿¡´ëÇÑ notify¸¦ ¿øÇÑ´Ù¸é Áö¿ª configurationÀÎ CVSADMINÀ» »ç¿ëÇÏ´Â°Ô ÁÁ½À´Ï´Ù.
·Î±× Àü¼Û ³»¿ë ÆíÁý ¶Q. ÀúÈñ ÆÀ¿¡¼ CVS¸¦ »ç¿ëÇÏ´Â ¸ðµç »ç¶÷µé¿¡°Ô ±àÁö¸¦ ³Ö¾îÁÖ°íÀÚ, ¸Þ½ÃÁö ¾È¿¡ ÆÀ ¸ñÇ¥µîÀ» ³Ö°í ½Í½À´Ï´Ù.
A. cvsnotify´Â skinÀ» Á¦°øÇϹǷÎ, ´Ù¸¥ ³ª¶ó ¾ð¾î·Î Æ÷ÆÃÇϰųª ´Ù¸¥ ¸Þ½ÃÁö¸¦ ³ÖÀ» ¼ö ÀÖ½À´Ï´Ù.
cvsnotify.cf ÀÇ ³»¿ëÁß,
template = cvsnotify-lang-ko.tpl ÀÌ ÁöÁ¤ÇÏ´Â
cvsnotify-lang-ko.tpl À» ÀûÀýÇÏ°Ô ¼öÁ¤ÇÏ½Ã¸é µË´Ï´Ù. ÆÀ ·Î°íµîÀ» ³ÖÀ» ¼ö ÀÖ°ÚÁö¿ä.
À̸§ ±ÔÄ¢ ¶Q. ȸÀÇ·ÏÀ» ÆÄÀÏ·Î ÀÛ¼ºÇÏ°í ½ÍÀºµ¥, Ç×»ó ¾Õ¿¡ ³¯Â¥¸¦ ³Öµµ·Ï Á¦ÇÑÇÏ°í ½Í½À´Ï´Ù. ´Ù¸¥ À̸§À¸·Î´Â ¸øµé¾î¿À°Ô ÇÒ ¼ö ¾øÀ»±î¿ä? ±×¸®°í, ³¯Â¥¿Ü¿¡ Review¶ó°í ½ÃÀÛÇÏ´Â ÆÄÀϸíÀº ¿ù¿¡ ÇÑ ¹ø¾¿ »ç¿ëÇϹǷΠÇã¿ëÇÏ°í ½Í½À´Ï´Ù.
A.
cvsnotify.cf ¿¡ ´ÙÀ½°ú °°ÀÌ µé¾î ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ.
commitinfo = name ¿øÇÏ´Â ¸ðµâÀÇ µð·ºÅ丮¿¡ Áö¿ª ¼³Á¤ÆÄÀÏ(CVSADMIN)À» Ãß°¡ÇÏ°í ´ÙÀ½°ú °°ÀÌ ³Ö½À´Ï´Ù.
file_name_permit = /^\d{8}_.*/ ¹Ýµå½Ã YYYYMMDD_ Çü½ÄÀ¸·Î ½ÃÀÛÇؾßÇÕ´Ï´Ù. file_name_permit = /^Review_.*/ Review_ Çü½ÄÀ¸·Î ¿ù°£º¸°í¿ë ÆÄÀÏÀÔ´Ï´Ù. Q. ´ë¹®ÀÚ·Î µÈ ÆÄÀϸíÀº ¿Ã ¼ö ¾ø°Ô ÇÏ°í ½Í½À´Ï´Ù. ±×¸®°í,
README , Makefile Àº Çã¿ëÇÏ°í ½Í½À´Ï´Ù.
A. ÇØ´ç µð·ºÅ丮³»¿¡ CVSADMIN ÆÄÀÏÀ» µÎ°í, ´ÙÀ½°ú °°ÀÌ ³Ö¾î ÁÝ´Ï´Ù.
file_name_permit = /^[a-z]+$/ ÆÄÀϸíÀº ¼Ò¹®ÀÚ¸¸ ³ÖÀ¸½Ê½Ã¿À file_name_permit = /README/ README°¡ µé¾î°£ ÆÄÀÏÀº ±¦Âú½À´Ï´Ù. file_name_permit = /Makefile/ MakefileÀº ±¦Âú½À´Ï´Ù. file_name_permit Àº ¹Ýµå½Ã CVSADMIN ¿¡¸¸ ¿Í¾ßÇÕ´Ï´Ù. file_name_permit ÀÌ ¾øÀ¸¸é ¸ðµç ÆÄÀϸíÀ» Çã¿ëÇϸç, ÀÖÀ¸¸é ÀÏ´Ü ¸ðµÎ Á¦ÇÑÇÏ°í, Çã¿ëµÈ Á¤±Ô½ÄÀ» Æò°¡Çغ¾´Ï´Ù. ¸¸¾à À̵éÁß¿¡ Çϳª¶óµµ °É¸®Áö ¾ÊÀ¸¸é ¸Ç µÚ¿¡ ±â¼úÇÑ ¸Þ½ÃÁö¿Í ÇÔ²² ¿¡·¯¸¦ Ãâ·ÂÇÏ°í commitÀ» ½ÇÆзΠ¸¸µì´Ï´Ù.
indent ¿¬µ¿ ¶Q. ¿ì¸®ÆÀÀº µé¿©¾²±â ¸ÂÃß´Â °ÍÀ» ÅëÀÏÇÏ°í ½ÍÀºµ¥, ¸»À» µèÁö ¾Ê½À´Ï´Ù. °Á¦·Î ÇÏ°í ½Í½À´Ï´Ù.
A. indent¸¦ ¼¹ö¿¡ ¼³Ä¡ÇؾßÇÕ´Ï´Ù. ±×¸®°í, indentÀÇ optionÀ» Àß ¼±ÅÃÇؾßÇÕ´Ï´Ù. ¼±ÅÃµÈ optionµéÀº
.indent.pro ¶ó´Â À̸§À¸·Î CVSROOT¿¡ µÎ¾î¾ßÇÕ´Ï´Ù. ¹èÆ÷µÇ´Â .indent.pro ´Â ¹«³ÇÑ ÇüÅÂÀÇ »ùÇÃÀ̹ǷΠÂü°íÇϽðí optionÀ» ¹Ù²Ù½Ã±â ¹Ù¶ø´Ï´Ù. ±×¸®°í, Àû´çÇÑ cvsnotify.cf ÀÇ º¯¼ö¸¦ È®ÀÎÇϽʽÿÀ.
commitinfo = indent indent_ext = h hxx c cc C cxx È®ÀåÀÚ°¡
indent_ext ¿¡ ÀÖ´Â °ÍµéÀº ¸ðµç ÆÄÀϵéÀº °Á¦·Î ¸ÂÃçÁö°Ô µË´Ï´Ù. ±â´ÉÀ» »ç¿ëÇÏ°í ½ÍÁö ¾ÊÀ» °æ¿ì commitinfo = indent ¸¦ ÁÖ¼®Ã³¸®Çϼ¼¿ä.
|
Like winter snow on summer lawn, time past is time gone. |