Rcs Tutorial
RCS °ÁÂ
ÀӴ뿵 <RAXIS@hitel.net> v1.0h, 1997³â 8¿ù 28ÀÏ
À±ÇöÈ£ <hhyoon@kldp.org> HTML¹®¼¸¦ À§Å°¹®¼·Î º¯È¯. 2005³â 2¿ù 23ÀÏ
°·ÂÇÑ ¹öÀü °ü¸® µµ±¸ÀÎ RCS¿¡ ´ëÇÏ¿© ¼³¸íÇÑ´Ù.
1. µé¾î°¡¸é¼ (¹öÀüÀ̶õ) ¶ÇÁ·Î±×·¥ °³¹ß°ú À¯Áö¿¡ ÀÖ¾î¼ °¡Àå Áß¿äÇÑ ¹®Á¦ ÁßÀÇ Çϳª°¡ ¹Ù·Î ¹öÀü °ü¸®(version management)ÀÔ´Ï´Ù. ¿©·¯ºÐÀº ¹öÀüÀ̶ó´Â °ÍÀ» ¾î¶² Àǹ̷ΠÀÌÇØÇÏ°í °è»ê°¡¿ä? ÇÑ±Û 3.0 À̳ª MS windows 3.1, Windows 95 µî¿¡¼ ÇÁ·Î±×·¥ µÚ¿¡ ÀÌ»óÇÑ ¼Ò¼öÁ¡ ´Þ¸° ¼ýÀÚ°¡ ¾Æ´Ï³Ä°í ´äÇϽðÚÁö¿ä. ¸Â½À´Ï´Ù.
±×·¯¸é ¹öÀüÀ̶ó´Â °ÍÀº ÀÌ·¸°Ô ÀÌ¹Ì Á¦Ç°ÈµÇ¾î ÀÖ´Â ÇÁ·Î±×·¥¿¡ ºÙÀÌ´Â °ÍÀϱî¿ä? ¾Æ´Õ´Ï´Ù.
¿©·¯ºÐµéÀÌ ÇÁ·Î±×·¥À» © ¶§µµ ¾ö¿¬È÷ ¹öÀüÀº Á¸ÀçÇÏ´Â °ÍÀÔ´Ï´Ù. °¡·É 100Á٠¥¸® ÇÁ·Î±×·¥À» Çϳª ®´Ù°í °¡Á¤ÇսôÙ. ±×¸®°í ¿©±â¼ ÇÔ¼ö¸¦ Çϳª Ãß°¡Çß½À´Ï´Ù. ±×¸®°í ¸çÄ¥ ÀÖ´Ù°¡ ´Ù½Ã ÇÔ¼ö ¸î °³¸¦ Ãß°¡ÇÏ°í, ÇÊ¿ä ¾ø´Â ÇÔ¼ö ÇÑ °³¸¦ ¾ø¾Ý½À´Ï´Ù. º¸Åë ÀϾ ¼ö ÀÖ´Â °æ¿ìÀÌ°ÚÁö¿ä. ÀÌ·¸°Ô ÇÁ·Î±×·¥À» °³¹ßÇÒ ¶§ ±× ±¸¼º ¿ä¼Ò°¡ ¹Ù²ñ¿¡ µû¶ó¼ ÇÁ·Î±×·¥Àº ÀüÇô »õ·Î¿î °ÍÀÌ µÉ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÇÁ·Î±×·¥¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ´Â °¢ ´Ü°è¸¦ ¹öÀü(version)À̶ó´Â ¸»·Î Ç¥ÇöÇÏ°Ô µÇÁÒ.
ÀÌ °Á´ ÀÌ·± ÇÁ·Î±×·¥¿¡ ÀÖ¾î¼ÀÇ ¹öÀüÀ̶ó´Â °³³äÀ» ÀÌÇØÇÏ°í, ¹öÀüÀ» Àü¹®ÀûÀ¸·Î °ü¸®ÇÏ´Â RCS(Reversion Control System)¿¡ ´ëÇؼ ¼Ò°³ÇÏ´Â °ÍÀÔ´Ï´Ù. Çѹø õõÈ÷ Àо½Ã°í Çѹø µû¶óÇØ º¸¼¼¿ä. Àç¹Õ¾î¿ä.
2. RCS ¶õ ¹«¾ùÀΰ¡? ¶¿©·¯ºÐµéÀº Àß ¸ð¸£°ÚÁö¸¸ ¹öÀü °ü¸® ÇÁ·Î±×·¥Àº ¾ÆÁÖ ¸¹½À´Ï´Ù. ¸î °³¸¸ ¿°ÅÇØ º¸ÁÒ. IBMÀÇ CLEAR/CASTER, AT&TÀÇ SCCS, CMU(Ä«³×±â ¸á·Ð ´ëÇÐ)ÀÇ SDC, DECÀÇ CMS, ±×¸®°í ¿À´Ã ¼Ò°³ÇÒ RCS °¡ ÀÖ½À´Ï´Ù. ¿À´Ã³¯ÀÇ RCS ´Â ÇÑ »ç¶÷ÀÌ ¸¸µç °ÍÀÌ ¾Æ´Õ´Ï´Ù. Linux°¡ ±×·¯ÇϵíÀÌ RCSµµ ¼ö¸¹Àº »ç¶÷µéÀÌ ±â´É Çϳª Çϳª¸¦ Ãß°¡ÇÏ°í °íÃļ ¿À´Ã³¯ÀÇ RCS °¡ µÇ¾ú½À´Ï´Ù.
Áö±Ý±îÁö ´ëºÎºÐÀÇ »ç¶÷µéÀÌ ÇÁ·Î±×·¥À» © ¶§ Çϳª °íÄ¡°í ÀÌ°ÍÀ» temp ÆÄÀÏ·Î Çϳª ÀúÀåÇØ ³õ°í, Çϳª °íÄ¡°í ¶Ç Çϳª temp ÆÄÀÏ ¸¸µé°í ÀÌ·± ¹æ½ÄÀ̾úÀ» °Ì´Ï´Ù. RCS´Â ÀÚµ¿À¸·Î ¹öÀüÀ» ÀúÀåÇÏ°í, ²¨³»°í, ºñ±³ÇÏ°í, ÃßÀûÇÏ°í, ÇÕÄ¡´Â ¿©·¯ °¡Áö ÀÏÀ» ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. UNIX °è¿¿¡¼¸¸ ÀÖ´Â °ÍÀÌ ¾Æ´Ï°í, ¿äÁòÀº µµ½º¿ëµµ ³ª¿Í ÀÖ´õ±º¿ä, RCS¸¦ ÀÌ¿ëÇؼ ´Ü¼øÇÏ°Ô C ÇÁ·Î±×·¥ ¼Ò½ºÀÇ ¹öÀü¸¸À» °ü¸®ÇÑ´Ù°í »ý°¢ÇÏ½Ã¸é ¿À»êÀÔ´Ï´Ù. RCS ´Â C, C++, Fotran µîÀÇ ÀÏ¹Ý ÇÁ·Î±×·¥»Ó¸¸ ¾Æ´Ï¶ó ÀÏ¹Ý ¹®¼, ³í¹®, ±×¸² µîµî »ý°¢ÇØ º¸¸é ¹öÀüÀ̶ó´Â °ÍÀ» °®´Ù ºÙÀÏ ¼ö ÀÖ´Â °ÅÀÇ ¸ðµç °÷¿¡ ÀÌ¿ëÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù.
3. RCSÀÇ ±â´É°ú ±¸¼º ¶±×·³ RCS¿¡´Â ¾î¶² ±â´ÉµéÀ» Á¦°øÇÏ°í ÀÖÀ¸¸ç, ¶Ç ¾î¶² ÆÄÀÏ·Î ±¸¼ºµÇ¾î ÀÖ´ÂÁö Çѹø »ý°¢ÇØ º¸ÁÒ.
3.1. RCS ÀÇ ±â´É ¶RCS ¿¡¼ Á¦°øÇÏ´Â ±â´ÉÀ» Çѹø Á¤¸®ÇØ º¼±î¿ä.
3.2. RCS ÀÇ ±¸¼º ¶Áö±Ý±îÁö RCSÀÇ ±â´Éµé¿¡ ´ëÇؼ ¾à°£Àº Áߺ¹µÇ°Ô ¸»¾¸µå·È½À´Ï´Ù. ±×·³ µµ´ëü RCS°¡ ¾î´À µð·ºÅ丮¿¡ ÀÖ´Â ÇÁ·Î±×·¥Àΰ¡, ¸®´ª½º¿¡´Â ÀÌ°ÍÀÌ Àִ°¡ ÇÏ°í Áú¹®ÇϽðÚÁö¿ä.
RCS ´Â ¾Æ·¡ÀÇ ÇÁ·Î±×·¥À¸·Î ÀÌ·ç¾îÁ® ÀÖ´Â °Å´ëÇÑ ÇÁ·Î±×·¥ Áý´ÜÀÔ´Ï´Ù.
4. RCS¸¦ »ç¿ëÇØ º¾½Ã´Ù. (ÃʱÞ) ¶À̹ø ÆíÀº RCSÀÇ ±¸Ã¼ÀûÀÎ ¿¹Á¦ÀÔ´Ï´Ù. ÃÊ±Þ °úÁ¤À» ´Ù·ç±â ¶§¹®¿¡ ¾à°£ º¹ÀâÇÑ ¿ä¼Ò´Â Á¦¿Ü½ÃÄ×½À´Ï´Ù. ¿©±â¼´Â ci, co, rcs ¸í·É¾îÀÇ ¿¹¸¦ µé¾î Àü°³µË´Ï´Ù.
4.1. ±âº»ÀûÀÎ ci, coÀÇ »ç¿ë¹ý ¶ÀÌÁ¦ºÎÅÍ º»°ÝÀûÀ¸·Î RCS ¸í·É¾î¸¦ ÀÌ¿ëÇØ º¸±â·Î ÇսôÙ. ±×·³ ¸ÕÀú Áغñ¸¦ Çؾ߰ڱº¿ä. ¿ì¼± RCS¸¦ ¿¬½ÀÇÒ ¼ö ÀÖ´Â Àû´çÇÑ µð·ºÅ丮¸¦ Çϳª ¸¸µå½Å ´ÙÀ½¿¡ °Å±â¿¡¼ ½ÃÀÛÇսôÙ. ±×¸®°í, RCS ÆÄÀÏÀ» ÀúÀåÇÒ µð·ºÅ丮¸¦ ¸¸µì´Ï´Ù. À̸§Àº 'RCS'. RCS°¡ °íÁ¤ÀûÀ¸·Î ¾²´Â À̸§ÀÔ´Ï´Ù.
% mkdir RCS ±×¸®°í ¾Æ·¡¿Í °°Àº °£´ÜÇÑ ÆÄÀÏÀ» °¡Áö°í ½ÃÀÛÇÕ´Ï´Ù.
exam.c
/* $Log: RcsTutorial,v $
* Revision 1.1 2005/02/23 01:46:02 kss * 203.237.51.80;;À±ÇöÈ£;; * */ #include <stdio.h> main() { printf(' Hello \n' ); } À§¿¡¼ `/*
À§¿¡¼ `/* Revision 1.1 2005/02/23 01:46:02 kss
À§¿¡¼ `/* 203.237.51.80;;À±ÇöÈ£;;
À§¿¡¼
/* */ ¶ó´Â ¾´ ºÎºÐÀÌ º¸À̽ʴϱî? ÀÌ ºÎºÐÀº ¿ø·¡´Â ¾ø¾îµµ µË´Ï´Ù. ÇÏÁö¸¸ °¢ ¹öÀüÀÇ Æ¯Â¡À» ¼Ò½º ÆÄÀÏ¿¡ ±âÀçÇÔÀ¸·Î½á »ç¿ëÀÚ¿¡°Ô Á¤º¸¸¦ Á¦°øÇØ Áֱ⠶§¹®¿¡ Àú´Â ¾²±â·Î ÇÏ°Ú½À´Ï´Ù. Âü°í·Î ÀÌ ºÎºÐÀÌ ¸¸¾à ¾ø´Ù°í °¡Á¤ÇÑ´Ù¸é RCS ÆÄÀÏÀº ¿ø·¡ ¼Ò½º ÆÄÀÏ¿¡ ¾Æ¹«·± Ç¥½Ãµµ ÇÏÁö ¾Ê±â ¶§¹®¿¡ »ç¿ëÀÚ°¡ º¸±â¿£ ¾î´À ¹öÀüÀÎÁö Á» ÀÌÇØÇϱ⠾î·Æ°ÚÁÒ.
À§¿¡¼ /* */ ¶ó´Â ¾´ ºÎºÐÀÌ º¸À̽ʴϱî? ÀÌ ºÎºÐÀº ¿ø·¡´Â ¾ø¾îµµ µË´Ï´Ù. ÇÏÁö¸¸ °¢ ¹öÀüÀÇ Æ¯Â¡À» ¼Ò½º ÆÄÀÏ¿¡ ±âÀçÇÔÀ¸·Î½á »ç¿ëÀÚ¿¡°Ô Á¤º¸¸¦ Á¦°øÇØ Áֱ⠶§¹®¿¡ Àú´Â ¾²±â·Î ÇÏ°Ú½À´Ï´Ù. Âü°í·Î ÀÌ ºÎºÐÀÌ ¸¸¾à ¾ø´Ù°í °¡Á¤ÇÑ´Ù¸é RCS ÆÄÀÏÀº ¿ø·¡ ¼Ò½º ÆÄÀÏ¿¡ ¾Æ¹«·± Ç¥½Ãµµ ÇÏÁö ¾Ê±â ¶§¹®¿¡ »ç¿ëÀÚ°¡ º¸±â¿£ ¾î´À ¹öÀüÀÎÁö Á» ÀÌÇØÇϱ⠾î·Æ°ÚÁÒ. Revision 1.1 2005/02/23 01:46:02 kss
À§¿¡¼ /* */ ¶ó´Â ¾´ ºÎºÐÀÌ º¸À̽ʴϱî? ÀÌ ºÎºÐÀº ¿ø·¡´Â ¾ø¾îµµ µË´Ï´Ù. ÇÏÁö¸¸ °¢ ¹öÀüÀÇ Æ¯Â¡À» ¼Ò½º ÆÄÀÏ¿¡ ±âÀçÇÔÀ¸·Î½á »ç¿ëÀÚ¿¡°Ô Á¤º¸¸¦ Á¦°øÇØ Áֱ⠶§¹®¿¡ Àú´Â ¾²±â·Î ÇÏ°Ú½À´Ï´Ù. Âü°í·Î ÀÌ ºÎºÐÀÌ ¸¸¾à ¾ø´Ù°í °¡Á¤ÇÑ´Ù¸é RCS ÆÄÀÏÀº ¿ø·¡ ¼Ò½º ÆÄÀÏ¿¡ ¾Æ¹«·± Ç¥½Ãµµ ÇÏÁö ¾Ê±â ¶§¹®¿¡ »ç¿ëÀÚ°¡ º¸±â¿£ ¾î´À ¹öÀüÀÎÁö Á» ÀÌÇØÇϱ⠾î·Æ°ÚÁÒ. 203.237.51.80;;À±ÇöÈ£;;
À§¿¡¼ /* */ ¶ó´Â ¾´ ºÎºÐÀÌ º¸À̽ʴϱî? ÀÌ ºÎºÐÀº ¿ø·¡´Â ¾ø¾îµµ µË´Ï´Ù. ÇÏÁö¸¸ °¢ ¹öÀüÀÇ Æ¯Â¡À» ¼Ò½º ÆÄÀÏ¿¡ ±âÀçÇÔÀ¸·Î½á »ç¿ëÀÚ¿¡°Ô Á¤º¸¸¦ Á¦°øÇØ Áֱ⠶§¹®¿¡ Àú´Â ¾²±â·Î ÇÏ°Ú½À´Ï´Ù. Âü°í·Î ÀÌ ºÎºÐÀÌ ¸¸¾à ¾ø´Ù°í °¡Á¤ÇÑ´Ù¸é RCS ÆÄÀÏÀº ¿ø·¡ ¼Ò½º ÆÄÀÏ¿¡ ¾Æ¹«·± Ç¥½Ãµµ ÇÏÁö ¾Ê±â ¶§¹®¿¡ »ç¿ëÀÚ°¡ º¸±â¿£ ¾î´À ¹öÀüÀÎÁö Á» ÀÌÇØÇϱ⠾î·Æ°ÚÁÒ. ¶ó´Â ºÎºÐÀº Á¦°¡ ³ªÁß¿¡ ¼³¸íÇÒ ÀÚµ¿ ÀνÄÇ¥(Auto Identification)ÀÇ ÇϳªÀÔ´Ï´Ù.
±×·³ ÀÌÁ¦ RCS ÆÄÀÏÀ» ¸¸µé¾î º¼±î¿ä. ÆÄÀÏÀ» RCS¿¡ ¿Ã¸®´Â ¸í·É¾î°¡ ¹Ù·Î ci(check in)ÀÔ´Ï´Ù. óÀ½ ¹öÀüÀº 1.1ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù.
% ci exam.c RCS/exam.c,v <- exam.c enter description, terminated with single '.' or end of file: NOTE: This is NOT the log message! >> This is our First RCS test file >> . initial revision: 1.1 done RCS ¿¡¼´Â ¹öÀü 1.1 ÀÇ Æ¯Â¡À» ±â·ÏÇÒ ¼ö ÀÖµµ·Ï ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÕ´Ï´Ù. Àú´Â ±×³É This is our First RCS test file À̶ó°í ±â·ÏÇÏ°Ú½À´Ï´Ù. ¸Þ½ÃÁö¸¦ ¸¶Ä¡·Á¸é '.' À» ÀÔ·ÂÇÏ¸é µË´Ï´Ù. ±×·¯¸é RCS/exam.c,v ¶ó´Â ÆÄÀÏÀÌ ¸¸µé¾îÁöÁÒ. Ãʱ⠹öÀüÀº ÀÌ¹Ì ¸»¾¸µå¸° °Í°ú °°ÀÌ 1.1 ÀÔ´Ï´Ù.
À̶§ ls¸¦ Ãĺ¸½Ã°í ÆÄÀÏÀÌ ¾ø¾îÁ³´Ù°í ³î¶óÁö ¸¶¼¼¿ä. ¾Æ´Ï RCS¿¡ ¹ö±×°¡ ÀÖ´Â °Í ¾Æ´Ï³Ä°í ¹Ý¹®ÇϽô ºÐÀÌ °è½Ã°ÚÁö¿ä. ¾Æ´Õ´Ï´Ù. ¿ì¸®´Â ÆÄÀÏÀ» RCS ¿¡´Ù°¡ ÀúÀåÇÑ °ÍÀÔ´Ï´Ù. ÀúÀ常 ÇÏ¸é ¾ÈµÇ°ÚÁö¿ä. ±×·³ ²¨³»´Â ¹æ¹ýÀ» ¸»¾¸µå¸®ÁÒ. co(check out)À̶ó´Â ¸í·É¾î¸¦ »ç¿ëÇÕ´Ï´Ù.
% co exam.c RCS/exam.c,v -> exam.c revision 1.1 done ±×·¯¸é ´Ù½Ã exam.c¶ó´Â ÆÄÀÏÀÌ »ý¼ºÀÌ µË´Ï´Ù. ÀÌ°ÍÀÌ RCS ÀÇ ´ë·«ÀûÀÎ ¸ÞÄ«´ÏÁòÀÔ´Ï´Ù. °£´ÜÇÏÁÒ. exam.c°¡ ¾î¶»°Ô º¯Çß³ª º¼±î¿ä.
`exam.c `
/* $Log: RcsTutorial,v $
* Revision 1.1 2005/02/23 01:46:02 kss * 203.237.51.80;;À±ÇöÈ£;; * * Revision 1.1 1995/10/12 14:22:08 raxis * Initial revision * */ #include <stdio.h> main() { printf(' Hello \n' ); } ¿ø·¡´Â ¾ø´ø ¸Þ½ÃÁö°¡ ÀÜ¶à »ý°å³×¿ä. ÀÌ°ÍÀº RCS¿¡¼ ÀÚµ¿ÀûÀ¸·Î »ý¼º½ÃÄÑ ÁÖ´Â Á¤º¸µéÀÔ´Ï´Ù. ·Î±× ÆÄÀÏ(log file) À̸§ÀÌ º¸ÀÌ°í¿ä... ¹öÀüÀÌ 1.1 ÀÌ°í 1995/10/12 ¿ÀÈÄ 2½Ã¿¡ ¸¸µé¾ú±º¿ä. ±×¸®°í RCS ÆÄÀÏÀ» »ý¼ºÇÑ »ç¶÷Àº raxis(Á¦ ¸®´ª½ºÀÇ »ç¿ëÀÚ À̸§)À̳׿ä. ¿©±â¼ ¼Ò¼öÁ¡ ¾ÕÀÇ 1Àº release numberÀ̱¸¿ä, ¼Ò¼öÁ¡ ù° ÀÚ¸®ÀÇ 1Àº level number ¶ó°í ÇÕ´Ï´Ù. ¿©±â¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº 3¹ø° °Á¿¡¼ ´Ù·çµµ·Ï ÇÏ°Ú½À´Ï´Ù.
ÇÑ°¡Áö ¾Æ¹«·± ¿É¼ÇÀ» ºÙÀÌÁö ¾Ê°í ±×³É co exam.c¸¸ Çϸé Àбâ Àü¿ë(read only)¸ðµå·Î ¸¸µé¾îÁý´Ï´Ù. Èì. ±×·¯¸é "ÆÄÀÏÀÇ ³»¿ëÀ» ¹Ù²Ù·Á¸é exam.cÀÇ Æ۹̼ÇÀ» ¹Ù²Ù¾î¾ß Çϳª¿ä?" ÇÏ°í ¹¯´Â ºÐÀÌ °è½Ã°Ú³×¿ä. ¾Æ´Õ´Ï´Ù.
co ÀÇ ¿É¼ÇÁß¿¡ -l(lockÀ» ÀǹÌ)ÀÌ ÀÖ½À´Ï´Ù. ÀÌ°ÍÀº ºÙÀ̸é exam.c¸¦ »ý¼º½ÃÄÑ Áִµ¥ ¾²±â(write)°¡ °¡´ÉÇϵµ·Ï ÇÕ´Ï´Ù.
% co -l exam.c RCS/exam.c,v -> exam.c revision 1.1 (locked) done ±×·±µ¥ ¾Æ±î¶û ¸Þ½ÃÁö°¡ ¾à°£ ´Ù¸£Áö¿ä. (locked)¶ó´Â ¸»ÀÌ Ãß°¡ µÇ¾ú½À´Ï´Ù. 'lock'ÀÇ ¶æÀÌ ÀÚ¹°¼è¶ó´Â °ÍÀ» ¾Æ½Ã³ª¿ä. ¾²±â °¡´ÉÇÏ°Ô ÇÏ´Â °Í°ú ÀÚ¹°¼è¸¦ ´Ù´Â °ÍÀÌ ¹«½¼ °ü°èÀϱî¿ä? (ÀÌ»óÇÏÁÒ?)
Á¦°¡ RCSÀÇ ±â´ÉÀ» ¼³¸íÇÑ ºÎºÐ¿¡ RCS´Â ¿©·¯ »ç¿ëÀÚ°¡ ÇϳªÀÇ ÆÄÀÏÀ» Á¢±ÙÇÔÀ¸·Î½á »ý±â´Â ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ´Ù°í Çß½À´Ï´Ù. ´Ù¸¥ »ç¿ëÀÚ°¡ ³»¿ëÀ» °íÄ¡·Á°í ÇÏ¸é ¸Þ½ÃÁö¸¦ ³½´Ù°í ÇßÁÒ. ±×·¯´Ï±î RCSÆÄÀÏÀ» ¸¸µç »ç¶÷ÀÌ ¾Æ´Ï¶ó¸é Àý´ë·Î ±× ÆÄÀÏ¿¡ lockÀ» °É ¼ö°¡ ¾ø½À´Ï´Ù. ¿À·ÎÁö co exam.c¸¸ °¡´ÉÇÏ´Ù´Â °ÍÀÔ´Ï´Ù.(Àб⸸) ±×·³ »ó´ëÀûÀ¸·Î RCSÆÄÀÏÀ» ¸¸µç »ç¶÷Àº ±× ¹Ý´ë·Î ¾²±â°¡ °¡´ÉÇÏ¿©¾ß µÈ´Ù´Â °á·ÐÀÌ À̸£°Ô µÇ³×¿ä. ¾à°£ ÀÌ»óÇÑ °á·ÐÀÌÁö¸¸ Çö½ÇÀÌ ±×·±°É ¾î¼°Ú½À´Ï´Ù. (^^)
´Ù¸¥ »ç¶÷ÀÌ ´ÙÀ½°ú °°ÀÌ ÇÑ´Ù°í °¡Á¤ÇÕ´Ï´Ù. Áï RCS µð·ºÅ丮¸¦ ÀÚ½ÅÀÇ µð·ºÅ丮·Î ¸µÅ©(link)½ÃÄѼ, exam.c¸¦ check out ÇÕ´Ï´Ù.
%co -l exam.c co error: RCS/exam.c,v: Permission denied %co exam.c RCS/exam.c,v -> exam.c revision 1.1 done Á¦ÀÛ ¼³¸í µå¸° ´ë·Î ¿ª½Ã lock¸¦ °É ¼ö°¡ ¾ø±º¿ä. ÆÄÀÏÀÇ ¸ðµå¸¦ Çѹø »ìÆ캾½Ã´Ù. Àб⠸ðµå·Î¸¸ µÇ¾î ÀÖ°ÚÁÒ.
%ls -al exam.c 1 -r--r--r-- 1 guest users 157 Oct 12 23:48 exam.c ´Ù½Ã Çѹø ¸»¾¸µå¸³´Ï´Ù. ÀÌ¹Ì lockÀÌ °É·Á ÀÖ´Â ÆÄÀÏÀº ´Ù¸¥ »ç¶÷ÀÌ Àý´ë·Î ±× ³»¿ëÀ» °Çµå¸®Áö ¸øÇÕ´Ï´Ù. Èì. µ¥ÀÌÅÍÀÇ ¾ÈÀü¼ºÀ» º¸ÀåÇϳ׿ä. ±×·±µ¥ RCS ¸ñ·Ï¿¡ ¿Ã¸± ¶§¸¶´Ù ci, co¸¦ ÀÏÀÏÀÌ ´Ù ¾´´Ù¸é Á» ±ÍÂúÀº ÀÛ¾÷ °°Àº ±âºÐÀÌ µé °Ì´Ï´Ù. ±×·¡¼ ci ¿É¼Ç¿¡µµ -l (lock) ÀÌ ÀÖ½À´Ï´Ù. Áï, ci -l exam.c ¶ó°í ÇÑ´Ù¸é RCS/exam.c,v ¶õ ÆÄÀÏÀ» º¯°æÇÏ°Ô µÇ°í ¿ø·¡ exam.c´Â °í´ë·Î ³õ¾ÆµÎ°Ô µÇÁÒ.
±×·³ À̹ø¿£ exam.c¸¦ ÀÏÁÖÀÏ µ¿¾È »ý°¢Çؼ ¹öÀü¾÷À» Çϱâ·Î °áÁ¤Çß½À´Ï´Ù. print¶ó´Â ÇÔ¼ö¸¦ Ãß°¡Çϱâ·Î ÇÑ °ÍÀÌÁÒ. ¹ãÀ» »õ´Â µð¹ö±× ³¡¿¡ µåµð¾î ´ÙÀ½ ¹öÀüÀ» ¿Ï¼º½ÃÄѼ RCS¿¡ ´Ù½Ã µî·Ï½ÃÅ°±â·Î ÇÏ°Ú½À´Ï´Ù.
% ci -l exam.c ( -l ÀÌ ¹«½¼ ÀǹÌÀÎÁö ¾Æ½Ã°ÚÁÒ ) RCS/exam.c,v <- exam.c new revision: 1.2; previous revision: 1.1 enter log message, terminated with single '.' or end of file: >> function print() is added (ŸÀÌÇÎÇÏ´Â ºÎºÐÀÌÁÒ.) >> . done ¹öÀüÀÌ 1.2·Î ¿Ã¶ó°¬±º¿ä. »ÑµíÇÕ´Ï´Ù. ÀÚ½ÅÀÇ ÇÁ·Î±×·¥µµ ÀÌ·¸°Ô ÈûÂ÷°Ô ¹öÀü¾÷À» ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·³ ±× °á°ú¸¦ Çѹø º¾½Ã´Ù.
exam.c
/* $Log: RcsTutorial,v $
* Revision 1.1 2005/02/23 01:46:02 kss * 203.237.51.80;;À±ÇöÈ£;; * * Revision 1.2 1995/10/12 15:05:58 raxis * function print() is added * * Revision 1.1 1995/10/12 14:22:08 raxis * Initial revision * */ #include <stdio.h> void print( char* pszMsg ) { puts( pszMsg); } main() { print(' Hello '); } ¹öÀü 1.2°¡ º¸À̽ÃÁÒ. 1.2°¡ ¸¸µé¾îÁø ³¯Â¥µµ º¸À̱¸¿ä. raxis¶õ ºÐ²²¼ ´Ù½Ã ¹öÀü¾÷À» ÇØÁּ̱º¿ä. ±×·±µ¥ À§¿¡¼ RCSÀÇ ¸ðµç ¸Þ½ÃÁöµéÀº ¸ðµÎ ÄÚ¸àÆ®(comment)󸮵Ǿî ÀÖ´Ù´Â °ÍÀ» ´«Ä¡Ã¤¼Ì´ÂÁö.. Áï ÄÄÆÄÀÏÇÒ¶§ RCSºÎºÐÀº ¾ø´Â °Å³ª ¸¶Âù°¡Áö°ÚÁÒ(´ç¿¬ÇÑ ¼Ò¸®).
Á¦°¡ 1ºÎ¿¡¼ RCS·Î °ü¸® ÇÒ ¼ö ÀÖ´Â ÆÄÀÏÀº C ÇÁ·Î±×·¥ ¼Ò½º¸¸ÀÌ ¾Æ´Ï¶ó°í ÇßÁö¿ä. ±â¾ïÀÌ ³ª½Ç·±Áö... RCS´Â ÀϹÝÀûÀ¸·Î C(.c), ÆĽºÄ®(.p), C++(.cc, .C), latex(.tex) µîÀÇ ÇÁ·Î±×·¥Àº È®ÀåÀÚ¿¡ ±âÃÊÇؼ ÄÚ¸àÆ® ¸¶Å©¸¦ ´Þ°Ô µË´Ï´Ù. ±×¸®°í ³ª¸ÓÁö ÆÄÀϵ鿡 ´ëÇؼ´Â ´ëºÎºÐÀÇ UNIX ½© ½ºÅ©¸³Æ®¿¡¼ ÄÚ¸àÆ®·Î »ç¿ëµÇ´Â '#' ¸¶Å©¸¦ »ç¿ëÇÏ°Ô µÇ´Âµ¥..(Á» ¸ÛûÇÑ°¡¿ä... ÈÄÈÄ.) ±×·³ postscript¿Í °°ÀÌ '%'¸¦ ÄÚ¸àÆ®·Î ó¸®ÇÏ´Â ÆÄÀϵéÀº ¾î¶»°Ô ÇÒ±î¿ä.
% rcs -c'%' beauty.ps rcs¶ó´Â ¸í·É¾î´Â RCS ÆÄÀÏÀÇ ¼Ó¼ºÀ» ¹Ù²Û´Ù´Â °ÍÀ» ±â¾ïÇÏ°í °è½Ã³ª¿ä. beauty.ps·ÎºÎÅÍ ¸¸µé¾îÁø RCS ÆÄÀÏÀÇ ÄÚ¸àÆ® ºÎºÐÀº '%'¸¶Å©¸¦ »ç¿ëÇ϶ó´Â ¸í·É¾îÀÔ´Ï´Ù.
Âü°í
RCS ¿¡ ´ëÇÑ ÀÔ¹®Àº man rcsintro¸¦ ÇÏ½Ã¸é µË´Ï´Ù. RCS ¿¡ ´ëÇÑ ¼³¸íÀÌ ¾ÆÁÖ ±ä ¿µ¾î·Î ³ª¿É´Ï´Ù. Çؼ®ÇÏ½Ã¸é¼ ¸Ó¸®¸¦ Çѹø ½ÄÇô º¸½ÉÀÌ... ±×¸®°í, ci, co, rcs ¿¡ ´ëÇؼ ´õ Àß ¾Ë°í ½ÍÀ¸½Å ºÐÀº manÀ» ÀÌ¿ëÇØ º¸½ÃÁÒ. UNIX¿¡¼ Àü¹®°¡°¡ µÇ±â À§Çؼ´Â ¸Å´º¾óÀ» ¿½ÉÈ÷ ºÁ¾ß µÈ´Ù°í ÇÏ´Â Àü¼³(?)ÀÌ ÀÖ½À´Ï´Ù.
5.1. RCS¿¡¼ÀÇ ¹öÀü (¹öÀüÆ®¸®) ¶RCS¸¦ »ç¿ëÇؼ ÀÚ²Ù ¹öÀü¾÷(version up)À» ÇÏ´Ù º¸¸é ÇÑ ÁÙ·Î ÀÌ¾î¼ ¹öÀüÀÌ ¸¸µé¾îÁú ²®´Ï´Ù. ¹öÀüÆ®¸®ÀÇ °³³äÀ» ¼³¸íÇϱâ Àü¿¡ RCS¿¡¼ÀÇ ¹öÀü ü°è¿¡ ´ëÇؼ ¸»¾¸µå¸®ÁÒ. RCSÆÄÀÏÀÌ Ã³À½À¸·Î ¸¸µé¾îÁö¸é 1.1ºÎÅÍ ½ÃÀÛÇÕ´Ï´Ù. ±×¸®°í ´ÙÀ½ ¹öÀüÀº 1.2,1.3 ÀÌ·¸°Ô ¼Ò¼öÁ¡ ÀÌÇÏÀÇ ¼ýÀÚ¸¸ °è¼Ó ´Ã¾î³ª°Ô µË´Ï´Ù. °áÄÚ 2.0ÀÇ ÆÄÀÏÀº ¸¸µé¾îÁöÁö ¾Ê½À´Ï´Ù. RCS¿¡¼´Â °Á¦ÀûÀ¸·Î ¹öÀü¾÷À» ½Ãų ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.
% ci -r2.0 -l exam.c À§¿Í °°ÀÌ ÇÏ¸é ¹öÀü 2.0À¸·Î °Á¦ÀûÀ¸·Î ¸¸µé ¼ö°¡ ÀÖ½À´Ï´Ù. ¿©±â¼ -r Àº revisionÀ» ¶æÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù. À§ÀÇ ¿¹Á¦´Â exam.c¸¦ ¹öÀü 2.0À¸·Î ¿Ã¸®°í µ¿½Ã¿¡ lockµµ °É¶ó´Â Ç¥½ÃÀÔ´Ï´Ù. ¹öÀüÀÌ 2.0ÀÌ µÇ°í ºÎÅÍ´Â ci¸¦ ÇÏ¸é ´Ù½Ã 2.1 -> 2.2 -> 2.3 ÀÇ ¼ø¼·Î ¹öÀüÀÌ Áõ°¡ÇÕ´Ï´Ù.
±×·¸´Ù¸é °¢ ¹öÀüÀÇ ÆÄÀÏÀ» Ç® ¼öµµ ÀÖ°Ú±º¿ä.
% co -r1.2 -l exam.c À§¿Í °°ÀÌ Çϸé exam.c°¡ ¾î¶»°Ô µÇ¾î ÀÖ´õ¶óµµ ¹öÀü 1.2 ¿¡ ÇØ´çÇÏ´Â RCS ÆÄÀÏÀÌ Ç®·Á³ª¿É´Ï´Ù. ±×³É co -l exam.c¶ó°í¸¸ ÇÑ´Ù¸é exam.cÀÇ °¡Àå ³ôÀº ¹öÀüÀÌ Ç®·Á³ª¿É´Ï´Ù. ¸¸¾à ÇÊ¿ä¿¡ ÀÇÇØ 1.2 ¹öÀüÀ» ¸î °¡Áö °íÄ£ ´ÙÀ½¿¡ ´Ù½Ã ÀÌ°ÍÀ» RCS¿¡ ¿Ã¸°´Ù°í °¡Á¤ÇÕ´Ï´Ù. ±×·³ ´ÙÀ½ ¹öÀüÀº ¹«¾ùÀϱî¿ä? ´äÀº °¡Àå ³ôÀº ¹öÀüÀÇ ´ÙÀ½ ¹öÀüÀÔ´Ï´Ù. Áï 2.1ÀÌ µÇ°Ú±º¿ä.
±×·±µ¥ ÇÑ°¡Áö ³í¸®ÀûÀ¸·Î ÀÌ»óÇÏÁö ¾Ê³ª¿ä. ´ÙÀ½ÀÇ ¹öÀü Æ®¸®¸¦ Çѹø º¾½Ã´Ù.
+-----+ +-----+ +-----+ +-----+ | 1.1 |---->| 1.2 |---->| 2.0 | | 2.1 | +-----+ +--+--+ +-----+ +--+--+ | | +------------------------+ °¢ 2.0ÀÇ ´ÙÀ½ÀÌ 2.1Àε¥ 1.2 ¹öÀüÀÇ ´ÙÀ½ÀÌ 2.1À̶ó´Ï ¸»ÀÔ´Ï´Ù. ¿ÏÀüÈ÷ ÇҾƹöÁö ´ÙÀ½¿¡ ¾Æ¹öÁö »©°í ¾Æµé·Î ¹Ù·Î ³»·Á°¡´Â °Å¶û °°±º¿ä. ±×·³ 2.0À» ¹Ù²Ù¸é ´ÙÀ½Àº 2.2°¡ µÇ°Ú±º¿ä. ÀÌ°ÍÀº ¹öÀüÀÇ ¿¬¼Ó¼ºÀÌ ±ú¾îÁö°Ô µÇ´Â ³ª»Û °á°úÀÔ´Ï´Ù.
RCS¿¡¼´Â ¹öÀüÀÇ ¿¬¼Ó¼ºÀ» º¸ÀåÇϱâ À§Çؼ branch ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. °¡·É 1.2¸¦ ¼öÁ¤ÇÑ ÈÄ ÀÌ°ÍÀ» ´Ù¸¥ ¹öÀüÀ¸·Î ´Ù½Ã °ü¸®ÇÏ°í ½Í´Ù°í »ý°¢ÀÌ µé ¶§ ¹öÀüÀ» 1.2.1·Î ÀúÀåÇÏ´Â °ÍÀÔ´Ï´Ù. ¸Ç ³¡ÀÇ 1Àº branch number¸¦ °¡¸®Å²´Ù°í »ý°¢ÇÏ½Ã¸é µË´Ï´Ù. 1.2.1ÀÇ Ã¹ ¹ø° branch ´Â 1.2.1.1·Î ½ÃÀÛÇÕ´Ï´Ù. ±×·¯´Ï±î ¾ÕÀÇ 1.2¸¦ »©¸é ´Ù½Ã ¹öÀüÀÌ 1.1·Î ½ÃÀÛÇÏ´Â °Í°ú °°´Ù°í ÇÒ ¼ö°¡ ÀÖ±º¿ä. ÀÌ°ÍÀ» ¹öÀü Æ®¸®·Î Ç¥ÇöÇÑ´Ù¸é ¾Æ·¡¿Í °°ÀÌ µÉ ¼ö°¡ ÀÖ½À´Ï´Ù.
+-----+ +-----+ +-----+ +-----+ +-----+ | 1.1 |---->| 1.2 |---->| 2.0 |----->| 2.1 |----->| 2.2 | +-----+ +--+--+ +-----+ +-----+ +-----+ | +--+----+ +--------+ |1.2.1.1|---->|1.2.1.2 | +-------+ +--------+ ¹öÀü Æ®¸®¸¦ º¸´Ï±î ´ëÃæ ÀÌÇØ°¡ µÇ½ÃÁÒ. ±×·±µ¥ ¶Ç ÇÑ°¡Áö ¹®Á¦°¡ ÀÖ½À´Ï´Ù. ¹¹³Ä Çϸé 1.2.1.1 À» °íÃļ ci½ÃÅ°¸é ¿¡·¯°¡ ³´Ù´Â °ÍÀÔ´Ï´Ù. ¿ø·¡´Â 1.2.1.2 °¡ µÇ¾î¾ß Çϴµ¥ ¸»ÀÔ´Ï´Ù. Áï ¾Æ·¡¿Í °°ÀÌ
%ci -l exam.c RCS/exam.c,v <- exam.c ci error: multiple revisions locked by raxis; please specify one ÀÌ°Ô ¹«½¼ ³¯º¶ô °°Àº ¼Ò¸®. lockÀÌ ¿©·¯°³°¡ °É·ÁÀÖ´Ù´Ï¿ä. lockÀ» ÀßÀº ¸ð¸£Áö¸¸ Çϳª¹Û¿¡ °ÉÁö ¾ÊÀº °Í °°Àºµ¥ ¸»ÀÔ´Ï´Ù. ±×·³ RCS/exam.c,vÀÇ ³»¿ë(ÀºÎºÐ)¸¸ Àá½Ã º¸±â·Î ÇÒ±î¿ä. ¹®Á¦ÀÇ ´äÀÌ Àֱ⠶§¹®ÀÌÁÒ.
`RCS/exam.c,v `
head 2.0; access; symbols; locks raxis:1.2.1.1 raxis:1.2 raxis:2.0; strict; comment @ * @; À§¿¡ º¸¸é locks ¶ó´Â °÷ÀÌ º¸À̽ʴϱî? Èì... ¾Ë°Ô ¸ð¸£°Ô lockÀÌ 3±ºµ¥³ª °É·Á ÀÖ±º¿ä. À§¿¡¼ strict¶ó°í ¾²¿©Áø ºÎºÐÀº Àúµµ ¾ÆÁ÷ ÀßÀº ¸ð¸£Áö¸¸ ÁüÀÛÄÁ´ë ¾Æ¸¶µµ ¹öÀü Æ®¸®°¡ Çü¼ºµÉ °¡¸Á¼ºÀÌ ÀÖ´Â ºÎºÐÀ» °¡¸®Å°°í ÀÖ´Â °Í °°½À´Ï´Ù. Á¦°¡ ¿©·¯ °¡Áö Å×½ºÆ®¸¦ °ÅÃļ ¾òÀº °á·ÐÀº strict°¡ ÀÖ´Â ¹öÀüÀ» Áß½ÉÀ¸·Î ¹öÀü Æ®¸®°¡ Çü¼ºµÈ´Ù´Â °ÍÀÔ´Ï´Ù. 1.2 ¿¡ ¸¸¾à strict°¡ ÀÖ´Ù¸é ÀÌ°ÍÀº 1.2.2 (µÎ¹ø° branch)°¡ Çü¼ºµÉ ¼ö ÀÖ´Ù´Â ¸»ÀÌ µË´Ï´Ù.
±×·³ strict ¶ó´Â °ÍÀÌ 1.2.1.1¿¡ ¿À°Ô ÇÏ¸é µÇ°Ú±º¿ä. ¸Â½À´Ï´Ù. °á·ÐÀº 2.0°ú 1.2ÀÇ lock¸¦ ÇØÁ¦ÇØ¾ß ÇÑ´Ù´Â ¸»ÀÌ µÇ´Â±º¿ä. °ÁÂ1¿¡¼ rcs¶õ ¸í·É¾î´Â RCSÆÄÀÏÀÇ ¼Ó¼ºÀ» ¹Ù²Û´Ù°í Çß½À´Ï´Ù. rcsÀÇ ¿É¼ÇÁß¿¡ º¸¸é -u°¡ ÀÖ½À´Ï´Ù. unlock À̶õ ¶æÀÌ µË´Ï´Ù.
% rcs -u2.0 exam.c RCS file: RCS/exam.c,v 2.0 unlocked done % rcs -u1.2 exam.c RCS file: RCS/exam.c,v 1.2 unlocked done ÀÌÁ¦´Â strict °¡ 1.2.1.1 ¿¡ ÀÖ´Â °ÍÀ» º¸°Ô µÇ½Ç °Ì´Ï´Ù. locks¶ó°í ºÒ¸° °÷¿¡´Â strict°¡ ÀÖ´Â ¹öÀü Çϳª¸¸ Á¸ÀçÇØ¾ß ÇÕ´Ï´Ù. ³ª¸ÓÁö´Â ¸ðµÎ unlock ½ÃÄѼ ¾ø¾Ö¾ß µÇ°Ú±º¿ä. ÀÌÁ¦ºÎÅÍ´Â 1.2.1·ÎºÎÅÍ ¹öÀü Æ®¸®°¡ Çü¼ºµË´Ï´Ù. ¸¸¾à ¹öÀü 2.0¿¡¼ ¹öÀü Æ®¸®¸¦ Çü¼ºÇÏ°í ½ÍÀ¸½Ã´Ù¸é ¾Æ·¡¿Í °°ÀÌ Çϼ¼¿ä.
% rcs -u1.2.1 exam.c % rcs -l2.0 exam.c Âü°í
»ç½Ç ¹öÀü Æ®¸® ºÎºÐÀº Ãʺ¸ÀÚ°¡ º¸±â¿£ Âü ¾Ö¸Å¸ðÈ£ÇÑ ºÎºÐÀÔ´Ï´Ù. ¶Ç lockÀ̶ó´Â °³³ä ÀÚüµµ ¾î·ÆÁÒ. Á˼ÛÇÕ´Ï´Ù. ´õ ÀÌ»ó ¼³¸íÀ» ½±°Ô ÇÒ ¼ö°¡ ¾ø³×¿ä. ±×·¯³ª ¹öÀü¾÷ÀÌ µÉ ¶§ ¹öÀü Æ®¸®°¡ Çü¼ºµÈ´Ù´Â °ÍÀº ±â¾ïÇÏ°í °è¼¼¿ä. ¸ðµç °ÍÀ» ¹öÀü Æ®¸®·Î ÀÌÇØÇϸé À§ÀÇ °Íµµ ´ëÃæ ÀÌÇØ°¡ µÉ °Ì´Ï´Ù.
5.2. Auto Identification ±â´É ¶ÀÌÁ¦ Á» ÈÁ¦¸¦ ´Ù¸¥ µ¥·Î µ¹¸®±â·Î ÇÏÁÒ. º¸Åë Á¦Ç°À» »ý»êÀ» ÇÑ´Ù¸é ±× Á¦Ç°¿¡´Â »ý»ê ³¯Â¥, »ý»êÁö µîµîÀÇ Á¤º¸°¡ ÂïÇôÁö°Ô µÇÁÒ. RCS¿¡¼´Â ÀÌ¿Í À¯»çÇÑ °ÍÀ» Áö¿øÇÕ´Ï´Ù. Áï, ¼Ò½º¿Í ¸ñÀû ÄÚµå(object code)¿¡ ÀÚ½ÅÀÇ ÇÁ·Î±×·¥ÀÓÀ» È®½Å½ÃÄÑ Áִ Ưº°ÇÑ ¹®ÀÚ¿À» »ðÀÔÇÏ°Ô µÇÁÒ.
¼Ò½º¿¡ ¾Æ·¡¿Í °°Àº ¶óÀÎÀ» Ãß°¡ÇØ º¾½Ã´Ù.
static char rcsid[] = '$Id: RcsTutorial,v 1.1 2005/02/23 01:46:02 kss Exp kss $' ; ±×·³ RCSÀÇ ci ¸í·É¾î ÀÌÈÄ¿¡´Â ´ÙÀ½°ú °°Àº ÇüÅ·Π¹Ù²î¾îÁ® ÀÖ½À´Ï´Ù.
static char rcsid[] = '$Id: exam.c,v 1.1 1995/10/13 14:54:09 raxis Exp raxis (ÁÙÀÌ ±æ¾î¼ ºÐ¸®) »ý¼º³¯Â¥, ½Ã°£, ¸¸µçÀÌ µîµîÀÇ Á¤º¸°¡ ³ª¿Í ÀÖ±º¿ä. ÇÁ·Î±×·¥ ³»ºÎ¿¡¼ static º¯¼öÀ̹ǷΠ´ç¿¬È÷ ÇÁ·Î±×·¥ ÄÄÆÄÀÏ°ú ÇÔ²² ÇÁ·Î±×·¥¿¡ ¿µ¿øÈ÷(?) ³»ÀåÀÌ µÇ°ÚÁö¿ä. ´©°¡ ÀڱⲨ ÈÉÃÄ °¡µµ ±Ý¹æ ¾Ë ¼ö°¡ ÀÖ°ÚÁÒ.
¿ì¸®°¡ Áö±Ý±îÁö ¾Æ¹« »ý°¢ ¾øÀÌ ½á ¿Â
¿ì¸®°¡ Áö±Ý±îÁö ¾Æ¹« »ý°¢ ¾øÀÌ ½á ¿Â Revision 1.1 2005/02/23 01:46:02 kss
¿ì¸®°¡ Áö±Ý±îÁö ¾Æ¹« »ý°¢ ¾øÀÌ ½á ¿Â 203.237.51.80;;À±ÇöÈ£;;
¿ì¸®°¡ Áö±Ý±îÁö ¾Æ¹« »ý°¢ ¾øÀÌ ½á ¿Â ¶ó´Â °Íµµ ÀÚµ¿ ÀνÄÇ¥ÀÇ ÇϳªÀÔ´Ï´Ù. ¿¹Á¦¿¡¼ º¸´Ù½ÃÇÇ °¢ ¹öÀü¿¡ ´ëÇÑ ¸ðµç Á¤º¸°¡ ¼Ò½º ÆÄÀÏ¿¡ Ç¥½Ã°¡ µÇ°Ô µÇÁÒ. ´ë½Å ÀÌ°ÍÀº ÄÚ¸àÆ®(comment)¾È¿¡ ÀÖÀ¸¹Ç·Î ÄÄÆÄÀÏÇÒ¶§ ¾ø´Â °Å³ª ¸¶Âù°¡Áö°ÚÁÒ. Id¿ÍÀÇ Â÷ÀÌÁ¡ÀÔ´Ï´Ù.
5.3. rlog, rcsdiff ¸í··¾î ¶rlog´Â log¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í rcsdiff ´Â RCS ÆÄÀÏ¿¡¼ °¢ ¹öÀü°£ÀÇ Â÷À̸¦ diff À¯Æ¿¸®Æ¼ÀÇ Ãâ·Â °á°ú¿Í °°Àº ÇüÅ·ΠÃâ·ÂÇÕ´Ï´Ù.
% rlog exam.c(exam.cÀÇ log ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÑ´Ù.) % rcsdiff -r1.2 -r2.0 exam.c (exam.c¿¡¼ 1.2 ¹öÀü°ú 2.0 ¹öÀüÀ» ºñ±³ÇÑ´Ù.)
µÎ ¸í·É¾î ¸ðµÎ ÇÊ¿äÇؼ ÀÖ°ÚÁö¸¸ Á¦ »ý°¢À¸·Î´Â º°·Î ¾µ ÇÊ¿ä´Â ¾ø´Â °Í °°½À´Ï´Ù. ¿ì¼± ¸ðµç ¸Þ½ÃÁö°¡ ¼Ò½º ÆÄÀÏ¿¡ ÀÖÀ¸´Ï±î rlog°¡ ÇÊ¿ä¾ø±¸¿ä, rcsdiff¿¡ ÀÇÇÑ Ãâ·Â °á°ú´Â º¸Åë½Ã¶÷ÀÌ º¸±â¿£ Âü ¾îÁö·´±â ¶§¹®¿¡ ¶Ç ÇÊ¿ä°¡ ¾ø±¸... °á·ÐÀº ci, co, rcs¸¸ Àß ¾Ë°í ÀÖÀ½ µÈ´Ù´Â ¼Ò¸®Áö¿ä.
5.4. GNU make¿ÍÀÇ ¿¬°á ¶GNU make¿Í RCS´Â Âû¶±±ÃÇÕÀ̶ó°í ÇÒ¸¸Å ¼·Î ÀνÄÀ» ÀßÇÕ´Ï´Ù. Áï make°¡ MakefileÀÇ ³»ºÎ¿¡¼ ÀÇÁ¸¼º(dependency - ÀÌ°ÍÀÌ ¸óÁö ¾Æ½Ç·±Áö. Make °Á¿¡¼ ÀÚ¼¼ÇÏ°Ô ÇÏÁÒ.)À» Á¶»çÇÏ´Ù°¡ ÆÄÀÏÀÌ ¹ß°ßµÇÁö ¾ÊÀ¸¸é ÀÚµ¿ÀûÀ¸·Î RCS µð·ºÅ丮¸¦ µÚÁ®¼ co ¸í·É¾î¸¦ ¾Ë¾Æ¼ ¼öÇà½ÃŲ´Ù. µû¶ó¼ °¡Àå ÃֽŠ¹öÀüÀÇ ÆÄÀϵéÀÌ ÀÚµ¿ÀûÀ¸·Î ÄÄÆÄÀϵǴ ÀÌÁ¡À» ´©¸± ¼ö°¡ ÀÖ´Ù. RCS¿¡¼ ÀÐÇôÁø ÆÄÀϵéÀº ÄÄÆÄÀÏÀÌ ¼º°øÇϸé ÀÚµ¿ÀûÀ¸·Î »èÁ¦°¡ µÇ¹Ç·Î µð½ºÅ© °ø°£µµ ¾Æ³¥ ¼ö°¡ ÀÖ´Ù.
¿©±â¼ ÇÑ°¡Áö ´õ. Makefile ÀÚüµµ RCS ÆÄÀÏ·Î ¸¸µé¾î Áú ¼ö ÀÖ´Ù´Â °Í. Áï, make ¸í·É¾î¸¦ ¼öÇà½ÃÄ״µ¥ MakefileÀÌ ¹ß°ßµÇÁö ¾ÊÀ» ¶§ RCS¿¡¼ Makefile,v¸¦ ã¾Æ¼ ÀÚµ¿ÀûÀ¸·Î Makefile À» Ǭ´Ù´Â °Í. (»ó´çÈ÷ ¶È¶ÈÇÏÁö¿ä.)
6.1. RCS·Î ÀÎÇÑ Æĸê(?) ¶RCS¸¦ »ç¿ëÇÔÀ¸·Î½á »ý±æ ¼ö ÀÖ´Â ¹®Á¦Á¡ÀÌ ¹«¾ùÀÎÁö ¾Ë¾Æº¾½Ã´Ù.
6.2. RCS »ç¿ëÀÇ ±âº»ÀûÀÎ Áöħ(guideline) ¶±×·³ RCS¸¦ »ç¿ëÇÔ¿¡ ÀÖ¾î ¹«¾ùÀΰ¡ ÁöħÀÌ ¾øÀ»±î. Àß ¾²½Ã´Â ºÐµé¿¡°Õ ÀúÀÇ ¸»ÀÌ Æ²¸° °Íó·³ µé¸± ¼ö°¡ ÀÖ½À´Ï´Ù¸¸. ±×µé ³ª¸§´ë·ÎÀÇ Ã¶ÇÐÀ» °¡Áö°í ÇϽô ÀÏÀ̶ó¼. ±×·³ ¾î¶² ÁöħÀÌ ÀÖ´ÂÁö ¾Ë¾Æº¸ÁÒ.
RCS ¿¡¼ °¡Àå Áß¿äÇÑ °ÍÀº ¾ðÁ¦ ci, co¸¦ ÇÏ´À³Ä ÀÔ´Ï´Ù. ¿©±â¿¡´Â ÀúÀÇ ¾ÆÁÖ ½Ç·Â ÁÁÀº ¼±¹è´ÔÀÇ ÁöħµéÀ» Á¦ ³ª¸§´ë·Î ±¸¼ºÇؼ Àû°Ú½À´Ï´Ù.
6.2.1. ciÀÇ ½ÃÁ¡ ¶ci(check in)Àº ÀϹÝÀûÀ¸·Î ÇϳªÀÇ ÀÛ¾÷ ´ÜÀ§·Î ÀÌ·ç¾îÁ®¾ß ÇÑ´Ù. ÀÛ¾÷ ´ÜÀ§ ¶ó´Â °ÍÀÌ ¿Ï¼ºÀÌ µÇ¾î¾ß¸¸ üũÀÎÀ» ÇÏ¿©¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ¸¸¾à ÀÛ¾÷ ´ÜÀ§ º°·Î üũÀÎÀ» ÇÏÁö ¾Ê°í ¹«ÀÛÀ§·Î ÇÏ°Ô µÇ¸é ¹öÀüÀ̶ó´Â Àǹ̰¡ Åð»öÇÏ°Ô µÇ¸ç, Àڽŵµ Çò°¥¸± »Ó ¾Æ´Ï¶ó, À̸¦ üũ¾Æ¿ô Çؼ »ç¿ëÇÏ´Â ´Ù¸¥ °øµ¿ »ç¿ëÀÚ(°°ÀÌ ÇÁ·Î±×·¥À» °³¹ßÇÏ´Â »ç¶÷)¿¡°Ô ÇÇÇظ¦ ÁÙ ¼ö ÀÖ´Ù´Â °ÍÀ» ¸í½ÃÇØ¾ß ÇÑ´Ù. ¿©±â¼ ÀÛ¾÷ ´ÜÀ§¶ó´Â °ÍÀÇ Á¤ÀǸ¦ ³»·Áº¸±â·Î ÇÏÁÒ.
6.2.2. coÀÇ ½ÃÁ¡ ¶co(check out)Àº üũÀΰú´Â ´Þ¸® ¿øÇÏ´Â ¹öÀüÀ» °¡Á®¿À±â¸¸ ÇÏ¸é µÇ¹Ç·Î ¿øº»¿¡ ÇÇÇظ¦ ÁÖÁö ¾ÊÀ¸¹Ç·Î üũÀο¡ ºñÇؼ´Â ´ë´ÜÇÑ ÁÖÀÇ´Â ÇÊ¿äÇÏÁö ¾Ê´Ù. ´Ù¸¸ ¾Æ·¡¿Í °°Àº °æ¿ì´Â ÀϾÁö ¾Êµµ·Ï ÇսôÙ.
7.1. ´ë±Ô¸ð ÇÁ·ÎÁ§Æ®¶õ ¶Á¦°¡ ´ë±Ô¸ð ÇÁ·ÎÁ§Æ®¶ó°í Çß½À´Ï´Ù. ´ë±Ô¸ð ÇÁ·ÎÁ§Æ®¶ó´Ï. ÇÁ·ÎÁ§Æ®¶õ ȸ»ç¿¡¼ ¸¹ÀÌ ¾²´ø ¿ë¾î °°Àºµ¥. ¶ó°í ¹¯´Â ºÐÀÌ °è½Ç °Ì´Ï´Ù. ±×·³ Àú´Â ¸ÕÀú ¿©·¯ºÐÀÌ Áö±Ý±îÁö Â¥ º¸½Å ÇÁ·Î±×·¥ Áß¿¡ °¡Àå ±ä °ÍÀÌ ¾ó¸¶³ª µÇ´À³Ä°í ¹¯°í ½Í³×¿ä.
ÀϹÝÀûÀ¸·Î ¾î¶² ¸ñÀûÀ» ´Þ¼ºÇϱâ À§Çؼ ²Ï ¼ö°í¸¦ ±â¿ï¿©¼ ÇÁ·Î±×·¥À» Â¥¾ß ÇÒ °æ¿ì ¿ì¸° ÀÌ°ÍÀ» ÇÁ·ÎÁ§Æ®¶ó°í ÇÕ´Ï´Ù. Çб³¿¡¼ ³ª¿Â ÇÁ·Î±×·¥ ¼÷Á¦¸¦ ÇÁ·ÎÁ§Æ®¶ó°í ÇÒ ¼öµµ ÀÖ°Ú±º¿ä. ±×·³ ´ë±Ô¸ð ÇÁ·ÎÁ§Æ®¶ó¸é, ÇÁ·Î±×·¥ÀÇ Å©±â°¡ ¾öû³ª¼ Àå³ÀÌ ¾Æ´Ñ °ÍÀ̶ó°í Á¤ÀÇÇÏ¸é µÉ±î¿ä.
º¸Åë GCC °¡ 10¸¸ ¶óÀÎÀÌ ³Ñ¾î¼·´Ï´Ù. ¸ðƼÇÁ ¶óÀ̺귯¸®°¡ ¾à 15¸¸ ¶óÀÎ ÀΰɷΠ¾Ë°í ÀÖ±¸¿ä. ÇÏÁö¸¸ º¸Åë ¼öõ ¶óÀÎ Á¤µµÀÇ ÇÁ·Î±×·¥À̶ó¸é ¾î´À Á¤µµ ´ë±Ô¸ð¶ó°í ¸»ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ´ë±Ô¸ð ÇÁ·ÎÁ§Æ®ÀÇ ¸î °¡Áö Ư¡À» °£´ÜÇÏ°Ô ¿°ÅÇØ º¸°Ú½À´Ï´Ù.
7.2. RCS µð·ºÅ丮¸¦ °øÀ¯ÇÏÀÚ ¶°¡·É µÎ»ç¶÷ÀÌ °°ÀÌ ÇÁ·Î±×·¥À» §´Ù°í °¡Á¤ÇսôÙ. ÇÁ·Î±×·¥À» Ä®·Î ¹«¿ì ÀÚ¸£µí À߶ó¼ A°¡ ¾î´À ºÎºÐÀ» Â¥°í, B°¡ ´Ù¸¥ ºÎºÐÀ» Â¥´Â ÀÏÀÇ ºÐ´ãÀÌ ÀÌ·ç¾î Á³½À´Ï´Ù. ´ç¿¬È÷ ±×¸®°í ¼·Î°¡ ´Ù¸¥ »ç¶÷ÀÌ Â§ ÇÔ¼ö³ª µ¥ÀÌÅ͸¦ ½á¾ß ÇÏ´Â °ÍÀº ´ç¿¬ÇÑ ÀÏÀÌÁö¿ä. ¿©±â¼ ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù. ¸¸¾à ÇÑ µð·ºÅ丮¿¡¼ ÆÄÀÏÀ» °øÀ¯ÇÑ´Ù°í °¡Á¤ÇÑ´Ù¸é A°¡ ¹Ù²Û ÆÄÀÏÀ» ¶Ç B°¡ ÇÊ¿ä¿¡ ÀÇÇØ °íÄ¡°í, ¶Ç A°¡ °íÄ¡°í.. ÀÌ·± °úÁ¤À» ¹Ýº¹ÇÏ´Ù º¸¸é ¼·Î Çò°¥¸®°Ô µÇÁÒ.
À̶§´Â RCS µð·ºÅ丮¸¸ °øÀ¯ÇÏ°Ô µÇ¸é ¸ðµç ¹®Á¦´Â ÇØ°áµË´Ï´Ù. ÇÑ »ç¶÷ÀÇ µð·ºÅ丮¿¡ RCS¸¦ ¸¸µé¾î ³õ°í ´Ù¸¥ »ç¶÷Àº ±×°÷À» ¸µÅ© ½Ãŵ´Ï´Ù. ±×·¯¸é µÎ»ç¶÷Àº ÇϳªÀÇ RCS µð·ºÅ丮¸¦ °øÀ¯ÇÏ°Ô µÇ´Â °ÍÀÌÁÒ. ´ç¿¬È÷ ¾²±â°¡ °¡´ÉÇϵµ·Ï permissionÀ» ¿¾î¾ß °ÚÁÒ. µÎ »ç¶÷Àº ¹Ì¸® ÇÕÀÇµÈ ´ë·Î ÀÚ½ÅÀÇ ¸ðµâÀ» ÀÛ¼ºÇÑ ´ÙÀ½ ¾î´À Á¤µµ ±â´ÉÀÇ ¼öÇàÀÌ °¡´ÉÇÏ°Ô µÇ¸é RCS µð·ºÅ丮¿¡ ¿Ã¸®°Ô µË´Ï´Ù. ±×¸®°í ´Ù¸¥ »ç¶÷ÀÌ ÇÊ¿ä¿¡ ÀÇÇØ RCS ¿¡ ÀÖ´Â ÆÄÀÏÀ» co¸¦ ½á¼ Ç®°Ô µÇ±¸¿ä.
+--------------+ | R C S | +--+--------+--+ | | +------+-+ +-+------+ | A | | B | +--------+ +--------+ ±×¸²À¸·Î ¼³¸íÇϸé À§¿Í °°½À´Ï´Ù. ÀÌ·¸°Ô µÇ¸é ¼·Î ÆÄÀÏÀ» °øÀ¯ÇÔÀ¸·Î½á »ý±â´Â ¹®Á¦´Â »ç¶óÁö°Ô µÇ°í, ÆÄÀÏÀ» ¸¸µç »ç¶÷¸¸ÀÌ lock À» °É ¼ö°¡ Àֱ⠶§¹®¿¡ RCS µð·ºÅ丮¿¡ ÀÖ´Â ¿øº»Àº ¾ÆÁÖ ¾ÈÀüÇÏ°Ô º¸È£µÇÁÒ. ±×¸®°í Ǫ´Â »ç¶÷µµ ÀÚ½ÅÀÌ ÇÊ¿äÇÑ ¹öÀü¸¸ Ç® ¼ö°¡ ÀÖÀ¸¹Ç·Î ¸Å¹ø ´Ù¸¥ »ç¶÷ÇÑÅ× ÀÌ°ÍÁ» °íÃÄ ´Þ¶ó, ÀÌ°Ç ¿Ö ¾ÈµÇ´À³Ä ÇÏ¸é¼ ¼·Î ½Î¿ï ÇÊ¿ä°¡ ¾ø°ÚÁÒ. ÀÌ°ÍÀº RCS µð·ºÅ丮¿¡ °¢ ¹öÀüº°·Î Á¦´ë·Î µ¿ÀÛÇÏ´Â ÇÁ·Î±×·¥ÀÌ ¿Ã¶ó¿Í ÀÖ´Ù°í °¡Á¤ÇÒ ¶§ °¡´ÉÇÕ´Ï´Ù. ¶Ç µÎ »ç¶÷ »çÀÌÀÇ °³¹ß ¼Óµµ°¡ ´Þ¶óµµ µÇ°ÚÁÒ. A°¡ ¾ÆÁÖ ½Ç·ÂÀÌ ÁÁ¾Æ¼ »¡¸® Â¥´õ¶óµµ, B´Â ¿ì¼± ÀÚ½ÅÀÇ ÇÁ·Î±×·¥°ú ±ÃÇÕÀÌ ¸Â´Â AÀÇ ¿¾³¯ ¹öÀüÀ» °®´Ù°¡ ¾²¸é µÇ°Åµç¿ä.
Èì. ¾î¶°¼¼¿ä. ±×·²µíÇÏÁö ¾Ê¾Æ¿ä? ¿©±â¼ A ¿Í B°¡ µ¿ÀÏ Àι°ÀÌ µÇ¾îµµ µË´Ï´Ù. ¿Ö³ÄÇÏ¸é °°Àº »ç¶÷ÀÌ ¿©·¯ ±ºµ¥¿¡¼ ÀÏÀ» ÇÒ ¼öµµ ÀÖÀ¸´Ï±î¿ä. À§¿Í °°Àº ·ê¸¸ Á¦´ë·Î ÁöŲ´Ù¸é ÇÁ·Î±×·¥ °³¹ß Áß¿¡ ¼·Î ¾È ½Î¿ö¼ ÁÁ°í, ¼·Î ÀÚ½ÅÀÇ ÇÁ·Î±×·¥À» ½ÃÇèÇØ º¼ ¼ö ÀÖ¾î¼ ÁÁ°í. ¾Æ¹«Æ° ´Ù ÁÁ¾Æ¿ä.
8. ¸¶Ä¡¸é¼ ¶Á¦°¡ ³ª¸§´ë·Î Á¤ÇØ º» ù ¹ø° °ÀÇ°¡ ¿©±â¼ ³¡ÀÌ ³µ±º¿ä. ³Ê¹« ¸¹ÀÌ °¡¸£ÃÄ µå¸®·Á°í ÇÏ´Ù º¸´Ï±î ³»¿ëÀÌ ³ÇØÇϱ⵵ ÇÏ°í ¹®ÀåÀÌ ¾û¼ºÇÑ ºÎºÐµµ ¸¹À» °ÍÀÔ´Ï´Ù. Á¦ °ÀÇÀÇ ¸ñÀûÀº ´Ù¾çÇÑ ¸®´ª½º »ç¿ëÀڵ鿡°Ô ¸®´ª½º·Î ¹«¾ùÀ» ÇÒ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇÑ ¹°À½¿¡ ´ëÇÑ ´äÀ̶ó°í ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ¸®´ª½º¿¡¼ ÇÒ ¼ö ÀÖ´Â ÇÁ·Î±×·¥Àº ¿øÇϽŴٸé Á¦°¡ Ã¥ÀÓÁö°í °ÀǸ¦ Çص帱¼ö°¡ ÀÖ½À´Ï´Ù. ´ë½Å ³Ê¹« Çϵå¿þ¾îÀûÀÎ ¹®Á¦´Â Á¦ ÄÄÇ»ÅÍ°¡ °í¹°À̶ó¼(486DX 33Mhz) º¸ÀåÀ» ÇÒ ¼ö°¡ ¾ø½À´Ï´Ù.
¿©±â±îÁö Àоî ÁֽŠºÐµé¿¡°Ô °¨»çµå¸®¸é¼ ÇÑ°¡Áö ºÎŹ ¸»¾¸ µå¸³´Ï´Ù. Á¦ ÆÇ´Ü ±âÁØ¿¡ ÀÇÇØ °ÀÇ ¼ÒÀ縦 ÅÃÇÏ´Ù º¸¸é ³Ê¹« ¿©·¯ºÐÀÇ °ü½É°ú µ¿¶³¾î Áú ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. Á¦ µý¿¡´Â ¿©·¯ °¡Áö Èï¹Ì·Î¿î ¼ÒÀ縦 ´Ù·ç°í ½Í½À´Ï´Ù¸¸, ¿©·¯ºÐÀÇ µµ¿òÀÌ ÇÊ¿äÇÕ´Ï´Ù.
¿©·¯ºÐÀÇ ¿äûÀÌ ÀÖÀ¸½Ã´Ù¸é RCS ¸í·É¾îµéÀ» Á¤¸®Çؼ °£´ÜÇÏ°Ô ¿ä¾àÇؼ ¿Ã¸®°Ú½À´Ï´Ù.
|
Everybody ought to have a friend. |