= CVSNotify Project Home Page = == ¼³Ä¡ == === ±¸Çϱâ === http://kldp.net/projects/cvsnotify/ À§ ÇÁ·ÎÁ§Æ® ȨÆäÀÌÁö¿¡¼­ ÆÄÀÏ ¸±¸®Á ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´Ù¿î·Îµå ¸µÅ©´Â http://kldp.net/download.php/1224/cvsnotify-1.1.0.tar.gz ¿Í °°½À´Ï´Ù. http://cvsnotify.kldp.net/ À§ ȨÆäÀÌÁö¿¡¼­ ÃÖÁ¾ ¸±¸®Áî¿¡ ´ëÇÑ ±â´É ¼³¸í°ú È­¸é ½º³À¼¦À» º¼ ¼ö ÀÖ½À´Ï´Ù. === ¾ÐÃà Ç®±â === ¹ÞÀº `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 }}} === Á¦°Å === Á¦°ÅÇÏ´Â ¹æ¹ýÀº µ¿ÀÏÇÏ°Ô CVSROOT ȯ°æº¯¼ö¸¦ ¼¼ÆÃÇÏ°í, {{{ $ make uninstall }}} ÀÔ´Ï´Ù. === script ¿À·ù ´ëó¹ý === °©ÀÚ±â script ¿À·ù°¡ ³ª¸ç µ¿ÀÛÇÏÁö ¾ÊÀ» ¶§, ´ëó¹æ¹ý. {{{ $ make clean-checkout $ cd CVSROOT $ vi commitinfo }}} DEFAULT ¶õÀ» ÁÖ¼®Ã³¸®ÇÕ´Ï´Ù. {{{ $ cvs ci }}} ¾Æ¹« ·Î±× ¸Þ½ÃÁö³ª ³Ö°í ¿¡µðÅ͸¦ Á¾·áÇÕ´Ï´Ù. === ¼öµ¿¼³Ä¡/Á¦°Å === ÀÏ´Ü ¼öµ¿À¸·Î ¼³Ä¡ Á¦°ÅÇϱâÀ§Çؼ­´Â CVSROOT ¶ó´Â ¸ðµâÀ» ¹Þ¾Æ¿Í¾ß ÇÕ´Ï´Ù. ÀÌ ¸ðµâÀº Àü¹ÝÀûÀÎ CVS RepositoryÀÇ Çൿ¿¡ ´ëÇÑ ³»¿ëÀÌ µé¾î ÀÖ½À´Ï´Ù. {{{ $ cvs co CVSROOT $ cd CVSROOT $ cp /.indent.pro . $ cp /cvsnotify-* . $ cp /cvsnotify.cf.sample . $ cp /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`¸¦ ÁÖ¼®Ã³¸®Çϼ¼¿ä. ---- CategoryProject