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

5. RCS¸¦ »ç¿ëÇØ º¾½Ã´Ù. (°í±Þ)

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:$' ;

±×·³ RCSÀÇ ci ¸í·É¾î ÀÌÈÄ¿¡´Â ´ÙÀ½°ú °°Àº ÇüÅ·Π¹Ù²î¾îÁ® ÀÖ½À´Ï´Ù.

static char rcsid[] = '$Id: exam.c,v 1.1
1995/10/13 14:54:09
raxis Exp raxis (ÁÙÀÌ ±æ¾î¼­ ºÐ¸®)

»ý¼º³¯Â¥, ½Ã°£, ¸¸µçÀÌ µîµîÀÇ Á¤º¸°¡ ³ª¿Í ÀÖ±º¿ä. ÇÁ·Î±×·¥ ³»ºÎ¿¡¼­ static º¯¼öÀ̹ǷΠ´ç¿¬È÷ ÇÁ·Î±×·¥ ÄÄÆÄÀÏ°ú ÇÔ²² ÇÁ·Î±×·¥¿¡ ¿µ¿øÈ÷(?) ³»ÀåÀÌ µÇ°ÚÁö¿ä. ´©°¡ ÀڱⲨ ÈÉÃÄ °¡µµ ±Ý¹æ ¾Ë ¼ö°¡ ÀÖ°ÚÁÒ. ÈÄÈÄ...

¿ì¸®°¡ Áö±Ý±îÁö ¾Æ¹« »ý°¢ ¾øÀÌ ½á ¿Â $Log:$ ¶ó´Â °Íµµ ÀÚµ¿ ÀνÄÇ¥ÀÇ ÇϳªÀÔ´Ï´Ù. ¿¹Á¦¿¡¼­ º¸´Ù½ÃÇÇ °¢ ¹öÀü¿¡ ´ëÇÑ ¸ðµç Á¤º¸°¡ ¼Ò½º ÆÄÀÏ¿¡ Ç¥½Ã°¡ µÇ°Ô µÇÁÒ. ´ë½Å ÀÌ°ÍÀº ÄÚ¸àÆ®(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 À» Ǭ´Ù´Â °Í... (»ó´çÈ÷ ¶È¶ÈÇÏÁö¿ä...)

Âü°í

³Ê¹« ¾îÁö·´Áö ¾ÊÀ¸½Å Áö... °­Á¸¦ ÅëÇØ ³²À» ÀÌÇؽÃŲ´Ù´Â °ÍÀÌ Âü Èûµé´Ù´Â °ÍÀº Àý½ÇÈ÷ ´À³¢°í ÀÖ½À´Ï´Ù.

´ÙÀ½Àå ¿¹°í

5ÀåÀÌ ³Ê¹« ±æ¾î¼­ ´ÙÀ½ÀåÀ¸·Î ¿¬°áÀÌ µÇ°Ô µÇ¾ú½À´Ï´Ù. ´ÙÀ½Àå¿¡¼­´Â RCS¸¦ »ç¿ëÇÒ ¶§ Á¶½ÉÇØ¾ß ÇÒ ¿©·¯ °¡Áö »ç½Çµé¿¡ ´ëÇؼ­ ¸»¾¸µå¸®±â·Î ÇÏÁÒ.


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