ÀÌÀüÆäÀÌÁö ´ÙÀ½ÆäÀÌÁö Â÷·Ê

4. RCS¸¦ »ç¿ëÇØ º¾½Ã´Ù. (ÃʱÞ)

À̹øÆíÀº RCSÀÇ ±¸Ã¼ÀûÀÎ ¿¹Á¦ÀÔ´Ï´Ù. ÃÊ±Þ °úÁ¤À» ´Ù·ç±â ¶§¹®¿¡ ¾à°£ º¹ÀâÇÑ ¿ä¼Ò´Â Á¦¿Ü½ÃÄ×½À´Ï´Ù. ¿©±â¼­´Â ci, co, rcs ¸í·É¾îÀÇ ¿¹¸¦ µé¾î Àü°³µË´Ï´Ù.

4.1 ±âº»ÀûÀÎ ci, coÀÇ »ç¿ë¹ý

ÀÌÁ¦ºÎÅÍ º»°ÝÀûÀ¸·Î RCS ¸í·É¾î¸¦ ÀÌ¿ëÇØ º¸±â·Î ÇսôÙ. ±×·³ ¸ÕÀú Áغñ¸¦ Çؾ߰ڱº¿ä. ¿ì¼± RCS¸¦ ¿¬½ÀÇÒ ¼ö ÀÖ´Â Àû´çÇÑ µð·ºÅ丮¸¦ Çϳª ¸¸µå½Å ´ÙÀ½¿¡ °Å±â¿¡¼­ ½ÃÀÛÇսôÙ. ±×¸®°í...

RCS ÆÄÀÏÀ» ÀúÀåÇÒ µð·ºÅ丮¸¦ ¸¸µì´Ï´Ù. À̸§Àº 'RCS'. RCS°¡ °íÁ¤ÀûÀ¸·Î ¾²´Â À̸§ÀÔ´Ï´Ù.

% mkdir RCS 

±×¸®°í ¾Æ·¡¿Í °°Àº °£´ÜÇÑ ÆÄÀÏÀ» °¡Áö°í ½ÃÀÛÇÕ´Ï´Ù.

exam.c


/* $Log:$ */

#include <stdio.h>

main()
{
     printf(' Hello \n' );
}

À§¿¡¼­ /* $Log:$ */ ¶ó´Â ¾´ ºÎºÐÀÌ º¸À̽ʴϱî? ÀÌ ºÎºÐÀº ¿ø·¡´Â ¾ø¾îµµ µË´Ï´Ù. ÇÏÁö¸¸ °¢ ¹öÀüÀÇ Æ¯Â¡À» ¼Ò½º ÆÄÀÏ¿¡ ±âÀçÇÔÀ¸·Î½á »ç¿ëÀÚ¿¡°Ô Á¤º¸¸¦ Á¦°øÇØ Áֱ⠶§¹®¿¡ Àú´Â ¾²±â·Î ÇÏ°Ú½À´Ï´Ù. Âü°í·Î ÀÌ ºÎºÐÀÌ ¸¸¾à ¾ø´Ù°í °¡Á¤ÇÑ´Ù¸é RCS ÆÄÀÏÀº ¿ø·¡ ¼Ò½º ÆÄÀÏ¿¡ ¾Æ¹«·± Ç¥½Ãµµ ÇÏÁö ¾Ê±â ¶§¹®¿¡ »ç¿ëÀÚ°¡ º¸±â¿£ ¾î´À ¹öÀüÀÎÁö Á» ÀÌÇØÇϱ⠾î·Æ°ÚÁÒ. $Log:$ ¶ó´Â ºÎºÐÀº Á¦°¡ ³ªÁß¿¡ ¼³¸íÇÒ ÀÚµ¿ ÀνÄÇ¥(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: exam.c,v $
* 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: exam.c,v $
* 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¿¡¼­ Àü¹®°¡°¡ µÇ±â À§Çؼ­´Â ¸Å´º¾óÀ» ¿­½ÉÈ÷ ºÁ¾ß µÈ´Ù°í ÇÏ´Â Àü¼³(?)ÀÌ ÀÖ½À´Ï´Ù.

´ÙÀ½Àå ¿¹°í

RCS °­Á´ 8ÀåÀ¸·Î ÀÌ·ç¾îÁ® ÀÖ½À´Ï´Ù. À¢¸¸ÇÑ »ç¿ëÀÚ´Â Áö±Ý±îÁöÀÇ ³»¿ëÀ» ÃæºÐÈ÷ ÀÌÇØÇÑ´Ù¸é 5Àå ÀÌÈķδ ±¸Å¿© º¼ ÇÊ¿ä´Â ¾ø´Ù°í »ý°¢Àº ÇÕ´Ï´Ù¸¸... Àڱ⠳ª¸§´ë·ÎÀÇ ¿¬½À¸¸ ¾î´À Á¤µµ ÇÏ½Ã¸é µÉ²¨¶ó°í »ý°¢Çϰŵç¿ä. 5Àå ÀÌÈÄ¿¡¼­´Â ¾à°£ÀÇ °í±Þ ±â´ÉÀ» ¼Ò°³ÇÏ°í, Make¿Í RCS¿ÍÀÇ °ü°è, ±×¸®°í RCS°¡ ¸¸º´ÅëÄ¡°¡ ¾Æ´Ï¶ó´Â °Í, Áï RCS¸¦ »ç¿ëÇÒ ¶§´Â ¾î´À Á¤µµ ÁÖÀÇ°¡ ÇÊ¿äÇÏ´Ù´Â °ÍÀ» ¿¹¸¦ µé¾î ¼³¸íÇØ µå¸®°Ú½À´Ï´Ù.


ÀÌÀüÆäÀÌÁö ´ÙÀ½ÆäÀÌÁö Â÷·Ê