· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
CVS/Tips

CVS ÆÁ



1.1. CVSROOT ÀÇ Á¤È®ÇÑ »ç¿ë

CVSROOT ȯ°æº¯¼ö´Â CVS ·Î i/o µÇ´Â ÆÄÀÏÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â SHELL ȯ°æº¯¼öÀÌ´Ù. ±×·¯³ª CVSROOT ´Â ÃʱâÀÇ ÆÄÀÏ import ³ª checkout ¿¡¼­ ÇÊ¿äÇÒ»Ó ÀÌ¹Ì checkout µÈ ÆÄÀÏÀ» ÀÛ¾÷Çϴµ¥´Â ÇÊ¿äÇÏÁö ¾Ê´Ù.

º¸Åë CVSROOT ´Â ´ÙÀ½ÀÌ µÑ ÁßÀÇ ÇϳªÀÌ´Ù.

# echo $CVSROOT
/home/CVSROOT
#
ÀÌ°ÍÀº ÆÄÀÏÀÇ ÀúÀåÀÌ ·ÎÄýýºÅÛ¿¡ ÀÌ·ç¾î Áú¶§ÀÌ´Ù. ÀÌ °æ¿ì´Â º°·Î ¾Ë¾Æ¾ßÇÒ ³»¿ëÀÌ ¾øÀ¸¹Ç·Î ³Ñ¾î°£´Ù.

# echo $CVSROOT
:ext:@devel.sds.co.kr:/home/CVSROOT
#
ÀÌ °æ¿ì´Â ÆÄÀÏÀÇ ÀúÀåÀÌ ¸®¸ðÆ®½Ã½ºÅÛ¿¡ ÀÌ·ç¾î Áú¶§ÀÌ´Ù. ¿©±â¼­ "ext" ´Â ¸®¸ðÆ®½Ã½ºÅÛÀÓÀ» ³ªÅ¸³»¸ç, "@devel.sds.co.kr" Àº ¼­¹öÀÇ ÁÖ¼Ò¸¦ "@" ¾Õ¿¡´Â °èÁ¤id °¡ µé¾î°¥ ¼ö ÀÖ´Ù. "/home/CVSROOT" ´Â CVS ÆÄÀÏÀÌ ÀúÀåµÇ´Â ÀúÀå¼Ò¸¦ ¸»ÇÑ´Ù. ÇöÀçÀÇ ¿É¼ÇÀ» º¸¸é "@"¾Õ¿¡ °èÁ¤ÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¹Ç·Î ÇöÀç ·Î±×ÀÎµÈ °èÁ¤À¸·Î 󸮸¦ ÇÏ°Ô µÈ´Ù.

CVSROOT °¡ ¾ø´õ¶óµµ 󸮸¦ ÇÒ¼ö ÀÖ´Â °æ¿ì°¡ Àִµ¥, ±× °æ¿ì´Â ÇØ´ç µð·ºÅ丮¿¡ CVS µð·ºÅ丮°¡ Á¸ÀçÇÏ´Â °æ¿ìÀÌ´Ù. CVS µð·ºÅ丮¿¡ º¸¸é Root ¶ó´Â ÆÄÀÏÀÌ Àִµ¥ ³»¿ëÀ» È®ÀÎÇØ º¸¸é ¹Ù·Î CVSROOT ÀÇ ³»¿ë°ú µ¿ÀÏÇÏ´Ù.

# echo CVS/Root
:ext:@devel.sds.co.kr:/home/CVSROOT
#

±×¿Ü¿¡ CVS ÆÄÀÏ¿¡´Â Entries ¿Í Respository ÆÄÀÏÀÌ Àִµ¥ ¸®¸ðÆ®ÀÇ CVS ¿Í µ¿±âÈ­ ÇÏ´Â ÆÄÀÏÀ̹ǷΠÀÓÀ¸·Î ÆíÁýÇϴ°ÍÀº Á¤½Å°Ç°­¿¡ ÇØ·Ó´Ù. --;;

¸®¸ðÆ® CVS ½Ã½ºÅÛ¿¡ Á¢±ÙÇÏ·Á¸é "CVS_RSH" ȯ°æº¯¼ö°¡ ÇÊ¿äÇÏ´Ù. ÁöÁ¤µÇÁö ¾ÊÀ¸¸é rsh ¸¦ ÀÌ¿ëÇϳª ¿äÁò¿¡ rsh Á¢±ÙÀ» Çã¿ëÇÏ´Â ½Ã½ºÅÛÀº ¾øÀ¸¹Ç·Î ssh ¸¦ ÁöÁ¤ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

export CVS_RSH=ssh

¸ðµç ºÎºÐÀÌ ÁغñµÇ¾úÀ¸¸é CVS ¸¦ ½ÃÀÛÇÏ´Â ¸í·ÉÀº?

# cvs import -m "CVS start" CVS_START CVS_START init

±×·¯¸é ÇöÀçÀÇ µð·ºÅ丮 ¾Æ·¡¿¡ ÀÖ´Â ¸ðµç ÆÄÀÏÀ» "CVS_START" ¶ó´Â ÇÁ·ÎÁ§Æ®·Î CVS ¿¡ µî·ÏÇÑ´Ù.

1.2. »èÁ¦µÈ ÆÄÀÏÀÇ º¹±¸

´õ ÀÌ»ó ÇÊ¿ä ¾øÀ»°Í °°¾Æ¼­ »èÁ¦µÈ ÆÄÀÏÀÇ º¹±¸´Â ´Ù½Ã add ·Î¼­ Ãß°¡ ½ÃŲ´Ù. ÆÄÀÏÀÌ Çö µð·ºÅ丮¿¡ ¾øÀ» °æ¿ì¿¡´Â »èÁ¦µÇ±â ÀÌÀü ¹öÀüÀÇ ÆÄÀÏÀ» ¶³¾î ¶ß¸®¸é¼­ Ãß°¡µÈ´Ù.

$ cvs add mail_view_origin.tpl
winchild@devel.sds.co.kr's password:
cvs add: Resurrecting file `mail_view_origin.tpl' from revision 1.1.
cvs add: Re-adding file `mail_view_origin.tpl' (in place of dead revision 1.2).
U mail_view_origin.tpl
cvs add: use 'cvs commit' to add this file permanently
#

Áï ¹öÀü 1.1 ÆÄÀÏÀ» ¶³¾î¶ß¸®¸é¼­ add °¡ µÈ°ÍÀ» º¸¿© ÁÖ°í ÀÖ´Ù. ±×·¯¸é ÇÊ¿äÇÑ ´ë·Î ÆÄÀÏÀ» Ãß°¡·Î ÆíÁýÇÑ ÈÄ¿¡ commit À¸·Î Ãß°¡ÇÑ´Ù.

# vi mail_view_origin.tpl
# cvs commit mail_view_origin.tpl
winchild@devel.sds.co.kr's password:
Checking in mail_view_origin.tpl;
/data/mailnara/webmail-v2.x/templates/templates/main/blue1/korean/mail/mail_view_origin.tpl,v  <--  mail_view_origin.tpl
new revision: 1.3; previous revision: 1.2
done
#

±×·¯¸é »èÁ¦ ¹öÀüÀÎ 1.2 ¿¡¼­ 1.3 À¸·Î º¯°æµÇ¸é¼­ ÆÄÀÏÀÌ º¹±¸°¡ µÈ´Ù.



1.3. ±¸ ¹öÀü ÆÄÀÏÀ» »õ ¹öÀüÆÄÀÏ·Î

ÀÛ¾÷À» ÇÏ´Ù°¡ º¸¸é, Áö±Ý ÁøÇàÁßÀÎ ¹öÀüÀ» ¹«½ÃÇÏ°í, ±¸ ¹öÀüÀ» ÇöÀçÀÇ ¹öÀüÀ¸·Î ´ëÄ¡ÇÏ¿© °è¼Ó ÀÛ¾÷À» ÇØ°¡¾ß ÇÒ »óȲÀÌ ¹ß»ýÇÏ°Ô µÈ´Ù. log ¸¦ È®ÀÎÇØ º¸¸é 1.2 ±îÁö ÁøÇàµÈ°ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.

$ cvs log testfile.php

RCS file: /data/CVSROOT/PJWKREPORT/testfile.php,v
Working file: testfile.php
head: 1.2
branch:
locks: strict
access list:
symbolic names:
keyword substitution: kv
total revisions: 2;     selected revisions: 2
description:
----------------------------
revision 1.2
date: 2006/02/01 16:13:55;  author: winchild;  state: Exp;  lines: +2 -1
TEST2
----------------------------
revision 1.1
date: 2006/02/01 16:13:17;  author: winchild;  state: Exp;
Å×&#49853;.
=============================================================================

¿ì¼± ¸®ºñÀü 1.1 ÀÇ ÆÄÀÏÀ» ¾ò¾î¿Â´Ù.

$ cvs update -r1.1 testfile.php
U testfile.php

»óŸ¦ È®ÀÎÇØ º¸¸é 1.1 ¿¡¼­ Sticky Tag °¡ °É¸°°ÍÀ» È®ÀÎÇØ º¼¼ö ÀÖ´Ù.

$ cvs status testfile.php
===================================================================
File: testfile.php      Status: Locally Modified

   Working revision:    1.1     Wed Feb  1 16:14:06 2006
   Repository revision: 1.1     /data/CVSROOT/PJWKREPORT/testfile.php,v
   Sticky Tag:          1.1
   Sticky Date:         (none)
   Sticky Options:      (none)

¿ì¼± ÇöÀçÀÇ ÆÄÀÏÀ» ÀÓ½ÃÀå¼Ò·Î ¿Å±ä´Ù.

$ mv testfile.php /tmp

±×¸®°í ÇöÀçÀÇ ¹öÀü ÆÄÀÏÀ» ´Ù½Ã ¹Þ´Â´Ù. À̶§ ½ºÆ¼Å°Å±׸¦ ¾ø¾Ö±â À§Çؼ­ "-A" ¿É¼ÇÀ» »ç¿ëÇÑ´Ù.

]$ cvs update -A testfile.php
cvs update: warning: testfile.php was lost
U testfile.php
[winchild@sdsmngr intranet]$ cvs status testfile.php
===================================================================
File: testfile.php      Status: Up-to-date

   Working revision:    1.2     Wed Feb  1 16:19:45 2006
   Repository revision: 1.2     /data/CVSROOT/PJWKREPORT/testfile.php,v
   Sticky Tag:          (none)
   Sticky Date:         (none)
   Sticky Options:      (none)

ÀÌ·¸°Ô ÇØ¾ß "commit" ¿¡¼­ ÃֽŹöÀüÀ¸·Î Ä¿¹Ô µÇ°Ô µÈ´Ù. ÆÄÀÏÀ» µÇµ¹·Á ³õ°í (Overwrite) ÇÊ¿äÇÑ ºÎºÐÀ» ¼öÁ¤ÇÑ ÈÄ Ä¿¹ÔÇÑ´Ù.

$ mv /tmp/testfile.php .
$ vi testfile.php
$ cvs commit testfile.php
Checking in testfile.php;
/data/CVSROOT/PJWKREPORT/testfile.php,v  <--  testfile.php
new revision: 1.3; previous revision: 1.2
done


1.4. CVS ·Î µ¥ÀÌÅ͸¦ »ý¼ºÇÒ ¶§ ÆÄÀÏ ÆÛ¹Ì¼Ç ¹®Á¦

CVS ¿¡¼­ µ¥ÀÌÅ͸¦ ´ç°Ü¿Ã¶§¿¡ ´Ù¸¥ »ç¶÷ÀÌ ÀÛ¼ºÇÑ ÆÄÀÏÀÌ 644 ·Î µÇ¾î ÀÖ´Â °æ¿ì °»½ÅÀ» ÇÒ¼ö ¾ø´Â ¹®Á¦°¡ ¹ß»ýÇÑ´Ù.

È®Àΰá°ú CVS ÀÇ ¿É¼ÇÀÌ ¾Æ´Ñ ÀÚ½ÅÀÌ ·Î±×ÀÎÇÑ °èÁ¤ÀÇ umask °¡ 0022 ÀÏ °æ¿ì¿¡ CVS ¿¡¼­ ÆÄÀÏÀ» °¡Á®´Ù ÀúÀåÇÒ°æ¿ì¿¡ 644 ·Î ÀúÀåµÇ´Â °ÍÀ» È®ÀÎ ÇÏ¿´´Ù. µû¶ó¼­ ±âº»ÀûÀ¸·Î ÀÚ½ÅÀÇ °èÁ¤ÀÌ umask 0002 ·Î ¼³Á¤µÇ¾î¾ß ÇÑ´Ù. ¿ø·¡ÀÇ °èÁ¤¸¸µé¶§ default ´Â 0022 ÀÌ´Ù. µû¶ó¼­ °øµ¿ÀÛ¾÷À» À§Çؼ­´Â umask 0002 ¸¦ .bash_profile ¿¡ ³Ö¾î µÎ¾î¾ß ÇÑ´Ù.

±Ùº»ÀûÀ¸·Î´Â /etc/skel/.bash_profile ¿¡ ³Ö¾î³õ´Â°ÍÀÌ ÁÁ´Ù. ±×·¡¾ß °èÁ¤À» »ý¼ºÇÒ¶§ ÀÚµ¿À¸·Î »ý¼ºÀÌ µÇ±â ¶§¹®ÀÌ´Ù.

ÇÑ°¡Áö ´õ À¯ÀÇÇÒ°ÍÀº ¸¹Àº »ç¶÷µéÀÌ EditPlus ¿Í °°Àº FTP ±â¹ÝÀÇ ÆíÁýÅøÀ» »ç¿ëÇÏ´Â °æ¿ì PC ¿¡¼­ ÀÛ¾÷ÇÑ ÆÄÀÏÀÌ, FTP ·Î Àü¼ÛµÇ°Ô µÈ´Ù. ÀÌ°æ¿ì FTP ÀÇ ÆÄÀÏÀúÀå¿É¼Çµµ default ·Î 0022 ·Î µÇ¾î ÀÖ´Ù. À̰͵µ ¹Ù²Ù¾î Áà¾ß ÇÑ´Ù. ÀÌ°ÍÀº vsftp ÀÇ °æ¿ì /etc/vsftpd/vsftpd.conf ¿¡¼­ umask ¿É¼ÇÀ» 002 ·Î ¹Ù²Ù¾î ÁÖ¸é µÈ´Ù. (vsftpd.conf ¿¡¼­ ¼³Á¤ÇÒ°æ¿ì 0002 °¡ ¾Æ´Ï¶ó 002 ÀÓÀ» À¯ÀÇ)


¸¸¾à¿¡ ´Ù¸¥ »ç¶÷ÀÌ umask 0022 ·Î ÀÛ¾÷Çؼ­ º¯°æÀÌ ºÒ°¡´ÉÇÒ °æ¿ì, ÆÄÀÏÀ» »èÁ¦ (º¯°æ¿©ºÎ´Â È®ÀÎ - »èÁ¦°¡ °¡´ÉÇÑ°ÍÀº ´ë°³ ÇØ´çµð·ºÅ丮´Â 775 ·Î µÇ¾î ÀÖÀ½) Çϰųª, root ·Î ÆÄÀÏÆ۹̼ÇÀ» º¯°æÈÄ (ÆÄÀÏ 1-2 °³ÀÇ °æ¿ì) ÀÛ¾÷À» ÇÏ¸é ´ëü°¡ µÈ´Ù. ¸¹Àº ÆÄÀÏÀ» º¯°æÇØ¾ß ÇÒ °æ¿ì, find ¸í·ÉÀ» ÀÌ¿ëÇÏ¿© º¯°æ ÇÒ ¼ö ÀÖ´Ù.


ÀÌ°ÍÀº ÆÐÅ°ÁöÀÇ ÆÄÀϼӼºÀ̳ª µð·ºÅ丮ÀÇ ¼Ó¼ºÀ» º¯°æÇϴµ¥ À¯¿ëÇÑ°Í À¸·Î CVS ÀÛ¾÷Áß¿¡ ÇϺΠÆÄÀÏÀÇ ¼Ó¼ºÀÌ °øµ¿ÀÛ¾÷ÀÌ °ï¶õÇÏ°Ô µÇ¾î ÀÖÀ» °æ¿ì ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù.


ÇöÀçÀÇ µð·ºÅ丮 ¾Æ·¡ÀÇ ¸ðµç µð·ºÅ丮ÀÇ access ¸ðµå¸¦ 775 ·Î º¯°æÇϱâ.
 
# find . \( -type d -a -exec chmod 775 {} \; \)
ÇöÀçÀÇ µð·ºÅ丮 ¾Æ·¡ÀÇ .php È®ÀåÀÚÀÇ ÆÄÀÏÀÇ access ¸ðµå¸¦ 664 ·Î º¯°æÇϱâ.
# find . \( -name "*.php" -a -exec chmod 664 {} \; \)
ÇöÀçÀÇ µð·ºÅ丮 ¾Æ·¡ÀÇ .tpl È®ÀåÀÚÀÇ ÆÄÀÏÀÇ access ¸ðµå¸¦ 664 ·Î º¯°æÇϱâ.
# find . \( -name "*.tpl" -a -exec chmod 664 {} \; \)
-o (OR) ¿É¼Ç¿¡ ÀÇÇÑ µ¿½Ã󸮵µ °¡´É
# find . \( -type d -a -exec chmod 775 {} \; \) -o \( -name "*.php" -a -exec chmod 664 {} \; \)

See also CVS/FAQ



sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2006-02-02 18:37:07
Processing time 0.0054 sec