µ¿±âÈ Áö¿ø Á¦°øÀ» °èȹÇÏÁö¸¸ µ¿±âÈ »óŸ¦ °ü¸®ÇÏ´Â ±âÁ¸ ¸ÞÄ¿´ÏÁòÀÌ ¾øÀ» °æ¿ì
ÀÌ ¼½¼Ç¿¡¼´Â óÀ½ºÎÅÍ °¡ÀÔÀÚ¸¦ ±¸ÇöÇÏ´Â ¹æ¹ýÀ»
¼³¸íÇÕ´Ï´Ù. À̰ÍÀº ±âÁ¸ µ¿±âÈ ÇϺΠ±¸Á¶°¡ ¾øÀ½À» ÀǹÌÇϸç,
µ¿±âÈ »óŸ¦ °ü¸®Çϱâ À§ÇØ Á¦°øµÇ´Â ÀϺΠAPI¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ»
¼³¸íÇÕ´Ï´Ù.
ÀÌ ¿¹Á¦ÀÇ ³ª¸ÓÁö¿¡¼´Â ½ÇÇà ÁßÀÎ ¿¹Á¦¸¦ ÀÌ¿ëÇÕ´Ï´Ù. ¼Ò½º ÄÚµå´Â org.eclipse.team.examples.filesystem Ç÷¯±×ÀÎÀÇ ÆÄÀÏ ½Ã½ºÅÛ Á¦°øÀÚ ÆÐŰÁö¿¡¼ ãÀ» ¼ö ÀÖ½À´Ï´Ù. CVS ÀúÀå¼Ò¿¡¼ ÇÁ·ÎÁ§Æ®¸¦ üũ¾Æ¿ôÇÏ¿© ÀÌ ÇнÀ¼¸¦ Àд µ¿¾È ÂüÁ¶·Î »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
ù ¹øÂ° ¿¹Á¦¿¡¼´Â ·ÎÄà ÀÛ¾÷°ø°£ÀÇ µ¿±âÈ »óŸ¦ °ü¸®ÇÏ´Â ±âÁ¸ ÇϺΠ±¸Á¶°¡ ¾ø´Â °ÍÀ¸·Î °¡Á¤ÇÕ´Ï´Ù. óÀ½ºÎÅÍ °¡ÀÔÀÚ¸¦ ±¸ÇöÇÒ ¶§ org.eclipse.team.core Ç÷¯±×Àο¡ Á¦°øµÈ ÀϺΠÃß°¡ API¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. org.eclipse.team.core.variants ÆÐŰÁö¿¡´Â ±¸ÇöÀ» ´Ü¼øÈÇÏ´Â µ¥ »ç¿ëµÉ ¼ö ÀÖ´Â °¡ÀÔÀÚ¿¡ ´ëÇÑ µÎ °³ÀÇ ¼ºêŬ·¡½º°¡ µé¾î ÀÖ½À´Ï´Ù. ù ¹øÂ°´Â ¾Æ·¡ÀÇ µÎ ¹øÂ° ¿¹Á¦¿¡¼ ¼³¸íµÉ ResourceVariantTreeSubscriberÀÔ´Ï´Ù. µÎ ¹øÂ°´Â ù ¹øÂ°ÀÇ ¼ºêŬ·¡½º(ThreeWaySubscriber)ÀÔ´Ï´Ù. ÀÌ °¡ÀÔÀÚ ±¸ÇöÀº ·ÎÄà ÀÛ¾÷°ø°£ÀÇ µ¿±âÈ »óŸ¦ °ü¸®ÇÏ´Â µ¥ ÇÊ¿äÇÑ ¿©·¯ °³ÀÇ À¯¿ëÇÑ Å¬·¡½º¸¦ Á¦°øÇÕ´Ï´Ù. ±âÁ¸ ÇϺΠ±¸Á¶°¡ ¾øÀ» °æ¿ì ¿©±â¼ ½ÃÀÛÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.
óÀ½ºÎÅÍ °¡ÀÔÀÚ¸¦ ±¸ÇöÇÏ´Â °ÍÀº org.eclipse.team.examples.filesystem Ç÷¯±×Àο¡¼ »ç¿ë °¡´ÉÇÑ ÆÄÀÏ ½Ã½ºÅÛ ¿¹Á¦¸¦ »ç¿ëÇÏ¿© ¼³¸íµË´Ï´Ù. ´ÙÀ½ ¼³¸í¿¡¼ ÄÚµå´Â Eclipse CVS ÀúÀå¼Ò¿¡¼ »ç¿ë °¡´ÉÇϱ⠶§¹®¿¡ ÃÖ¼ÒÇÑÀÇ Å©±â·Î ÇÑÁ¤µË´Ï´Ù. ±â¼úÀûÀ¸·Î 3¹æÇâ °¡ÀÔÀÚ°¡ ¾Æ´Ï´õ¶óµµ ÆÄÀÏ ½Ã½ºÅÛ ¿¹Á¦¿¡¼´Â ÀÌ ÇϺΠ±¸Á¶¸¦ °è¼ÓÇØ¼ Àß ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. FTP ¹× WebDav Ç÷¯±×Àεµ ÀÌ ÇϺΠ±¸Á¶¸¦ »ç¿ëÇÏ¿© ºôµåµË´Ï´Ù.
ÆÄÀÏ ½Ã½ºÅÛ ¿¹Á¦¿¡¼ ·ÎÄà ÄÁÅÙÃ÷°¡ ÀÌÁߺ¹»çµÈ ÆÄÀÏ ½Ã½ºÅÛ À§Ä¡¿Í ·ÎÄà ÇÁ·ÎÁ§Æ®¸¦ ¿¬°ü½ÃŲ RepositoryProvider ¿¡ ´ëÇÑ ±¸ÇöÀ» ÀÌ¹Ì ¼öÇàÇß½À´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼ ThreeWaySynchronizer¸¦ ÀÌ¿ëÇÏ¿© ÀÛ¾÷°ø°£ µ¿±âÈ »óŸ¦ °ü¸®Çϱâ À§ÇØ ThreeWaySubscriberÀÇ ¼ºêŬ·¡½º·Î FileSystemSubscriber°¡ ÀÛ¼ºµÇ¾ú½À´Ï´Ù. ÀÌ Å¬·¡½ºÀÇ ¼ºêŬ·¡½º´Â ´ÙÀ½À» ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
°¡ÀÔÀÚ ±¸Çö ¿Ü¿¡ ÆÄÀÏ ½Ã½ºÅÛ Á¦°øÀÚÀÇ °¡Á®¿À±â ¹× ³Ö±â Á¶ÀÛÀÌ ThreeWaySynchronizerÀÇ µ¿±âÈ »óŸ¦ °»½ÅÇϱâ À§ÇØ ¼öÁ¤µÇ¾ú½À´Ï´Ù. Á¶ÀÛÀÌ org.eclipse.team.examples.filesystem.FileSystemOperations Ŭ·¡½º¿¡ ±¸ÇöµË´Ï´Ù.
ThreeWaySynchronizer´Â ·ÎÄà ÀÛ¾÷°ø°£°ú ¿ø°ÝÁö °£ µ¿±âÈ »óŸ¦ °ü¸®ÇÕ´Ï´Ù. ÀÚ¿øÀÇ µ¿±âÈ »óÅ¿¡ ´ëÇÑ È¿À²ÀûÀÎ °è»êÀ» Áö¿øÇϱâ À§ÇØ ·ÎÄÃ, ±âº» ¹× ¿ø°Ý ½Ã°£ ¼ÒÀÎÀ» ij½ÃÇϰí À¯ÁöÇÕ´Ï´Ù. ¶ÇÇÑ µî·ÏµÈ ¸ðµç ¸®½º³Ê¿¡ ´ëÇÑ º¯°æ ¾Ë¸²À» ½ÃÀÛÇÕ´Ï´Ù. ThreeWaySubscriber´Â ÀÌ·¯ÇÑ º¯°æ À̺¥Æ®¸¦ °¡ÀÔÀÚ¿¡ µî·ÏµÈ ¸®½º³Ê·Î º¸³¾ ÀûÀýÇÑ Çü½ÄÀ¸·Î º¯È¯ÇÕ´Ï´Ù.
ThreeWaySynchronizer´Â ÄÚ¾î ½ºÄÉÁÙ¸µ ±ÔÄ¢ ¹× Àá±ÝÀ» »ç¿ëÇÏ¿© ½º·¹µå°¡ ¾ÈÀüÇÔÀ» º¸ÀåÇÏ°í º¯°æ ¾Ë¸² Àϰýó¸® ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.
ThreeWayRemoteTree´Â ThreeWaySubscriber¿¡ ¸Â°Ô Á¶Á¤µÈ ResourceVariantTreeÀÇ ¼ºêŬ·¡½ºÀÔ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡¼ À̸¦ ´ëüÇÏ¿© ¼¹ö¿¡¼ ¿ø°Ý »óŸ¦ ÆäÄ¡ÇÏ´Â ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇØ¾ß ÇÕ´Ï´Ù. ResourceVariantTree´Â ´ÙÀ½ ¿¹Á¦¿¡¼ ÀÚ¼¼È÷ ¼³¸íµË´Ï´Ù.
CachedResourceVariant´Â ÀÏÁ¤ ±â°£(ÇöÀç 1½Ã°£) µ¿¾È ÆäÄ¡µÈ ÄÁÅÙÃ÷¸¦ ij½ÃÇÏ´Â IResourceVariant¿¡ ´ëÇÑ ºÎºÐ ±¸ÇöÀÔ´Ï´Ù. ÀÌ´Â ´Ü±â°£¿¡ ¿©·¯ ¹ø ÄÁÅÙÃ÷¿¡ ¾×¼¼½ºÇÒ ¼ö Àֱ⠶§¹®¿¡ À¯¿ëÇÕ´Ï´Ù(¿¹: µ¿±âÈ »óÅ ÆÇº° ¹× ºñ±³ ÆíÁý±â¿¡ ÄÁÅÙÃ÷ Ç¥½Ã). ¼ºêŬ·¡½º´Â ÀÚ¿ø º¯Çü ÇÚµéÀ» ÀçÀÛ¼ºÇϱâ À§ÇØ À¯ÁöµÉ ¼ö ÀÖ´Â ¹ÙÀÌÆ® ¹è¿°ú ÇÔ²² °íÀ¯ ÄÁÅÙÃ÷ ID¸¦ °è¼Ó Á¦°øÇØ¾ß ÇÕ´Ï´Ù.
´Ù¼öÀÇ ÀúÀå¼Ò Á¦°øÀÚ¿¡°Ô´Â ÀÌ¹Ì µ¿±âÈ »óŸ¦ °ü¸®ÇÏ´Â ¸ÞÄ¿´ÏÁòÀÌ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù(¿¹: ±âÁ¸ Ç÷¯±×ÀÎÀÌ ÀÖ´Â °æ¿ì). ResourceVariantTreeSubscriber ¹× °ü·Ã Ŭ·¡½º´Â ±âÁ¸ µ¿±âÈ ÇϺΠ±¸Á¶¿¡ ºôµåÇÏ´Â ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. ¿¹¸¦ µé¾î À̰ÍÀº ¸ðµç CVS °¡ÀÔÀÚÀÇ ¼öÆÛŬ·¡½ºÀÔ´Ï´Ù.
ÀÌÀü ¿¹Á¦¿¡¼ ¾ð±ÞµÈ °Íó·³ ThreeWaySubscriber´Â ThreeWaySynchronizer¸¦ »ç¿ëÇÏ¿© ·ÎÄà ÀÛ¾÷°ø°£ µ¿±âȸ¦ Á¦°øÇÏ´Â ResourceVariantTreeSubscriberÀÇ ¼ºêŬ·¡½ºÀÔ´Ï´Ù. ResourceVariantTreeSubscriberÀÇ ¼ºêŬ·¡½º´Â ´ÙÀ½À» Á¦°øÇØ¾ß ÇÕ´Ï´Ù.
¿ø°Ý ÀÚ¿ø º¯ÇüÀ» ¼øÈ¸½ÃŰ°í »õ·Î °íÄ¡´Â ÀÛµ¿À» Á¦°øÇϰí, 3¹æÇâ ºñ±³ÀÎ ±âº» ÀÚ¿ø º¯ÇüÀ» Áö¿øÇÏ´Â °¡ÀÔÀÚ¿¡ ´ëÇÑ ÀÛµ¿À» Á¦°øÇÏ´Â ResourceVariantTree(¶Ç´Â AbstractResourceVariantTree)ÀÇ ¼ºêŬ·¡½º
°¡ÀÔÀÚ¿¡ ´ëÇÑ ±âŸ ±â´ÉÀº ´ÙÀ½ ±â´ÉÀ» »ç¿ëÇÏ¿© ±¸ÇöµË´Ï´Ù.
ResourceVariantTree´Â ´ÙÀ½ Ç׸ñÀ» Á¦°øÇÏ´Â IResourceVariantTree¿¡ ´ëÇÑ ±¸Ã¼ÀûÀÎ ±¸ÇöÀÔ´Ï´Ù.
´ÙÀ½Àº ¼ºêŬ·¡½º¿¡¼ ±¸ÇöµÇ¾î¾ß ÇÕ´Ï´Ù.
Workbench È£Ãâ(PersistantResourceVariantByteStore) °£ ¹ÙÀÌÆ®¸¦ À¯Áö°Å³ª ÇöÀç ¼¼¼Ç(SessionResourceVariantByteStore)ÀÇ ¹ÙÀÌÆ®¸¸ ij½ÃÇÏ´Â ResourceVariantByteStoreÀÇ ±¸ÇöÀÌ Á¦°øµÇ¾ú½À´Ï´Ù. ±×·¯³ª ±âÁ¸ ÀÛ¾÷°ø°£ µ¿±âÈ ÇϺΠ±¸Á¶¿¡ °¡ÀÔÀÚ¸¦ ºôµåÇÏ·Á¸é ÀϹÝÀûÀ¸·Î ±âº» µ¿±âȱâ¿Í ÀÎÅÍÆäÀ̽ºÇÏ´Â ResourceVariantByteStore ¼ºêŬ·¡½º¿¡ ´ëÇÑ ±¸ÇöÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ThreeWayRemoteTree´Â ThreeWaySynchronizer¿¡ ¿ø°Ý ¹ÙÀÌÆ®¸¦ ÀúÀåÇÏ´Â ¹ÙÀÌÆ® ÀúÀå ±¸ÇöÀ» »ç¿ëÇÕ´Ï´Ù.
ÀÌ ¿¹Á¦¿¡¼ ÀÚ¿ø º¯Çü ÇÚµéÀÇ ÀÛ¼ºÀº °¡ÀÔÀÚ ´ë½Å ÀÚ¿ø º¯Çü Æ®¸® ÀνºÅϽº¿¡¼ ÇÚµéÀ» ¿äûÇÏ´Â °ÍÀ» Á¦¿ÜÇϸé ÀÌÀü ¿¹Á¦¿Í ´Ù¸£Áö ¾Ê½À´Ï´Ù.