³í¸® ¸ðµ¨¿¡ ´ëÇÑ ¸ðµç Áö¿øÀ» Á¦°øÇÏ·Á¸é ÀúÀå¼Ò Á¦°øÀÚ°¡ ´ÙÀ½ ´Ü°è¸¦ ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
ResourceMapping
¿¡
¸Â°Ô ¼öÁ¤µÇ´Â ¿ä¼Ò¿¡ ÇØ´ç ÀúÀå¼Ò Á¶ÀÛÀ» ÄÁÆ®¸®ºä¼ÇÇÕ´Ï´Ù.ISynchronizationScope
¹× Áö¿ø API¸¦ »ç¿ëÇÏ¿© ÀÚ¿ø ¸ÊÇο¡ ´ëÇØ ¼öÇàµÈ Á¶ÀÛ¿¡
¸ðµç ÇØ´ç ¸ðµ¨ ¿ä¼Ò ¹× ÀÚ¿øÀÌ Æ÷ÇԵǴÂÁö È®ÀÎÇÕ´Ï´Ù.IMergeContext
ÀÎÅÍÆäÀ̽º ¹× Áö¿ø API¸¦ ÅëÇØ ¸ðµ¨ Á¦°øÀÚ°¡
headless º´ÇÕ¿¡ Âü¿©ÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÕ´Ï´Ù.teamContentProviders
¸¦ »ç¿ëÇÏ¿©
¸ðµ¨ Á¦°øÀÚ°¡ º´ÇÕ ¹Ì¸®º¸±â¿¡ Âü¿©ÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÕ´Ï´Ù. ¸ðµ¨
ÄÁÅÙÃ÷, º´ÇÕ ÄÁÅØ½ºÆ® ¹× ºñ±³ ÇÁ·¹ÀÓ¿öÅ© °£ÀÇ °ü°è °ü¸®¿¡ µµ¿òÀ»
ÁÖ´Â ModelSynchronizeParticipant
Ŭ·¡½º°¡ Á¦°øµË´Ï´Ù.IFileHistoryProvider
API¸¦ ÅëÇØ ÀÛ¾÷°ø°£ ÆÄÀÏ È÷½ºÅ丮¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù.ProjectSetCapability
¸¦
ÅëÇØ ÀÛ¾÷°ø°£ ÇÁ·ÎÁ§Æ®¿¡ ¸µÅ©ÇÕ´Ï´Ù.
SynchronizationStateTester
API¿¡ »ç¿ëÇÒ
Subscriber
ÀÛ¾÷°ø°£À» Á¦°øÇÏ¿© ³í¸® ¸ðµ¨ ¿ä¼Ò µ¥ÄÚ·¹À̼ÇÀ» Áö¿øÇÕ´Ï´Ù. ´ÙÀ½ ¼½¼ÇÀº À§ÀÇ °¢ »çÇ׿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù. org.eclipse.team.examples.filesystem Ç÷¯±×ÀÎÀº ÀÌ·¯ÇÑ »çÇ× Áß ¸î °¡Áö¿¡ ´ëÇØ ¼³¸íÇÏ´Â ¿¹Á¦¸¦ Æ÷ÇÔÇÕ´Ï´Ù. CVS ÀúÀå¼Ò¿¡¼ ÇÁ·ÎÁ§Æ®¸¦ üũ¾Æ¿ôÇÏ¿© ÀÌ ÇнÀ¼¸¦ Àд µ¿¾È ÂüÁ¶·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸éÃ¥»çÇ×: ¿¹Á¦ Ç÷¯±×ÀÎÀÇ ¼Ò½º ÄÚµå´Â ½Ã°£ÀÌ È帣¸é¼ º¯°æµÉ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼ »ç¿ëµÇ´Â ³»¿ë°ú ÀÏÄ¡ÇÏ´Â »çº»À» °¡Á®¿Ã °æ¿ì 3.2 ¹öÀü ű×(´ëºÎºÐÀÇ °æ¿ì R3_2) ¶Ç´Â 2006³â 6¿ù 28ÀÏÀÇ ³¯Â¥ ű׸¦ »ç¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®¸¦ üũ¾Æ¿ôÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÀÚ¿ø ¸ÊÇÎ API´Â ´ÙÀ½ Ŭ·¡½º·Î ±¸¼ºµË´Ï´Ù.
Object getModelObject()
: ¸ÊÇÎÀÌ
ÆÄ»ýµÇ°Å³ª ¼öÁ¤µÈ ±âÁØ ¸ðµ¨ ¿ÀºêÁ§Æ®ResourceTraversal[]
getTraversals(ResourceMappingContext, IProgressMonitor)
: ¸ðµ¨
¿ÀºêÁ§Æ®¸¦ ±¸¼ºÇÏ´Â ÀÚ¿ø¿¡ Àû¿ëµÇ´Â ÀÚ¿ø ¼øÈ¸ ResourceTraversal
¿¡´Â ÀÚ¿ø ¼¼Æ®¿Í,
¼øÈ¸ÀÇ ÀÚ¿øÀÌ ¿ø·¡ ¸ðµ¨ ¿ÀºêÁ§Æ®¿Í ¿¬°üµÇ´Â
±íÀ̸¦ ³ªÅ¸³»´Â ±íÀÌ Ç÷¡±×°¡ Æ÷ÇԵ˴ϴÙ. Ŭ¶óÀ̾ðÆ®(¿¹:
ÀúÀå¼Ò Á¦°øÀÚ)°¡ ÃÖ´ëÇÑ È¿À²ÀûÀÎ ¹æ¹ýÀ¸·Î ÇØ´ç
Á¶ÀÛÀ» ¼öÇàÇÒ ¼ö ÀÖ´Â ¹æ½ÄÀ¸·Î ¸ðµ¨ ÄÁÅÙÃ÷¸¦ ¼³¸íÇϱâ
À§ÇØ ÀÚ¿ø ¸ÊÇÎÀ¸·Î Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÚ¿ø ¼øÈ¸°¡
Á¦°øµË´Ï´Ù. ÁÖ¿ä ¸Þ¼Òµå´Â ´ÙÀ½°ú °°½À´Ï´Ù.
getResources()
getDepth()
ResourceMappingContext
¹× RemoteResourceMappingContext
»ç¿ëÀº ¾à°£ ´õ º¹ÀâÇϹǷΠ³ªÁß¿¡ ¼³¸íÇÕ´Ï´Ù.ÀÚ¿ø ¸ÊÇο¡´Â µÎ °¡Áö À¯ÇüÀÇ Ç÷¯±×ÀÎÀÌ Áß¿äÇÕ´Ï´Ù. ÇØ´ç Ç÷¯±×ÀÎÀº ÀÛ¾÷°ø°£ÀÇ ÀÚ¿øÀ¸·Î ±¸¼ºµÇ°Å³ª Æ÷ÇԵǴ ¸ðµ¨À» Á¦°øÇÏ´Â Ç÷¯±×Àΰú ÀÚ¿ø¿¡ ´ëÇÑ Á¶ÀÛÀ» ¼öÇàÇÏ·Á´Â Ç÷¯±×ÀÎÀÔ´Ï´Ù. ÀüÀÚÀÇ °æ¿ì´Â ¸ðµ¨ ·Îµå¸Ê¿¡¼ ¼³¸íÇϰí ÈÄÀÚÀÇ °æ¿ì´Â ´ÙÀ½ ¼½¼Ç¿¡¼ ¼³¸íÇÕ´Ï´Ù.
¼öÁ¤ °¡´ÉÇÑ È®ÀåÁ¡¿¡ È®ÀåÀ» ÄÁÆ®¸®ºä¼ÇÇÏ´Â
Ç÷¯±×ÀÎÀº »õ ResourceMapping
API¸¦ Áö¿øÇϱâ
À§ÇØ ´ÙÀ½°ú °°Àº µÎ °¡Áö º¯°æ ÀÛ¾÷À» ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
IResource
´ë½Å ´ë»ó ResourceMapping
À¸·Î
°»½ÅÇÕ´Ï´Ù(ÇØ´çµÇ´Â °æ¿ì).IResource
´ë½Å ResourceMapping
¿¡
´ëÇÑ ÀÛ¾÷ Á¶Ä¡¸¦ °»½ÅÇÏ°í ¼øÈ¸¿¡
Á¦°øµÈ ±íÀÌ Á¦ÇÑÁ¶°ÇÀ» ÁؼöÇÕ´Ï´Ù.IResource
¿¡ ¿ÀºêÁ§Æ® ÄÁÆ®¸®ºä¼ÇÀ» Ãß°¡ÇÏ´Â Ç÷¯±×ÀÎÀº
ÀÌÁ¦ ´ë½Å ResourceMapping
¿¡ ÇØ´ç ÄÁÆ®¸®ºä¼ÇÀ» Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù(¿©·¯
ÀÚ¿ø¿¡ Á¶Ä¡¸¦ Àû¿ëÇÒ ¼ö ÀÖ´Â °æ¿ì). ´ÙÀ½Àº ÀÚ¿ø ¸ÊÇο¡ ¸Â°Ô
¼öÁ¤µÇ´Â ¿ÀºêÁ§Æ®¿¡ ¸Þ´º Á¶Ä¡¸¦ ÄÁÆ®¸®ºä¼ÇÇÏ´Â XML ½º´ÏÆêÀÔ´Ï´Ù.
<extension point="org.eclipse.ui.popupMenus"> <objectContribution objectClass="org.eclipse.core.resources.mapping.ResourceMapping" adaptable="true" id="org.eclipse.team.ccvs.ui.ResourceMapperContributions"> <enablement>
<adapt type="org.eclipse.core.resources.mapping.ResourceMapping">
<test
property="org.eclipse.core.resources.projectPersistentProperty"
args="org.eclipse.team.core.repository,org.eclipse.team.cvs.core.cvsnature" />
</adapt>
</enablement>
<action
label="%UpdateAction.label"
definitionId="org.eclipse.team.cvs.ui.update"
class="org.eclipse.team.internal.ccvs.ui.actions.UpdateAction"
tooltip="%UpdateAction.tooltip"
menubarPath="team.main/group2"
id="org.eclipse.team.cvs.ui.update">
</action>
...
</objectContribution>
</extension>
ResourceMapping
¿¡ ´ëÇÑ ÄÁÆ®¸®ºä¼ÇÀº
IResource
¿¡ ¸Â°Ô ¼öÁ¤µÇ´Â ¿ÀºêÁ§Æ®¿¡ ÀÚµ¿À¸·Î Àû¿ëµË´Ï´Ù. ÀÌ·¯ÇÑ
Àüȯ ¿¬°üÀº Workbench¿¡¼ ó¸®ÇÕ´Ï´Ù. ÀÚ¿ø ¸ÊÇο¡ ´ëÇÑ ÄÁÆ®¸®ºä¼Ç
ÇÊÅ͸µÀº Àο¡À̺í¸ÕÆ® Ç¥Çö½ÄÀ» »ç¿ëÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÎÁ§Æ®
Áö¼Ó Ư¼º¿¡ ÀÇÇÑ ÇÊÅ͸µ Ç¥Çö½ÄÀÌ Ãß°¡µÇ¾î
ÀúÀå¼Ò Á¦°øÀÚ°¡ ÇØ´ç ÀúÀå¼Ò¿¡ ¸ÊÇεǴÂ
ÇÁ·ÎÁ§Æ®¿¡¼ ÇØ´ç ¸Þ´º¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
ResourceMapping
Ŭ·¡½º¿¡ ÄÁÆ®¸®ºä¼ÇµÈ Á¶Ä¡¿¡ Çϳª
ÀÌ»óÀÇ ResourceMapping
À» Æ÷ÇÔÇÏ´Â ¼±ÅûçÇ×ÀÌ Á¦°øµË´Ï´Ù.
ÇØ´ç Á¶Ä¡´Â Á¶ÀÛÀÌ ¼öÇàµÉ ÀÚ¿ø ¼¼Æ®·Î ÀÚ¿ø ¸ÊÇÎÀ» º¯È¯Çؾß
ÇÕ´Ï´Ù. ÀÌ ÀÛ¾÷Àº ¸ÊÇÎ ¼øÈ¸¸¦ °¡Á®¿À´Â getTraversals
¸¦
È£ÃâÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼øÈ¸´Â ¼øÈ¸ Ŭ¶óÀÌ¾ðÆ®°¡
¼øÈ¸ ´ë»ó ÀÚ¿øÀÇ ±íÀ̸¦ ±â¹ÝÀ¸·Î ÇØ´ç Á¶ÀÛÀ» ÃÖÀûÈÇÒ
¼ö ÀÖµµ·Ï ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ¿øÀ» ¼öµ¿À¸·Î
¼øÈ¸Çϰųª, Á¶Ä¡°¡ ÀÛ¾÷ ¼öÇàÀ» À§ÀÓÇÏ´Â Á¶ÀÛ¿¡ ´ëÇÑ ÀÔ·ÂÀ¸·Î
ÀÚ¿ø ¹× ±íÀ̸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î,
»ç¿ëÀÚ°¡ Java ÆÐŰÁö¿¡ ´ëÇØ CVS °»½ÅÀ» ¼öÇàÇϰí ÇØ´ç Java
ÆÐŰÁö ÀÚ¿ø ¸ÊÇÎÀÌ ±íÀ̰¡ 1ÀÎ Æú´õ¿¡ ¸ÊÇεǴ °æ¿ì, CVS´Â
ÆÐŰÁö°¡ ³ªÅ¸³»´Â Æú´õ¿¡ ´ëÇÑ ¾èÀº °»½ÅÀ» ¼öÇàÇÏ´Â ÀûÀýÇÑ
¸í·É(°ü½ÉÀÖ´Â »ç¿ëÀÚÀÇ °æ¿ì "cvs update -l")À» ¹ßÇàÇÕ´Ï´Ù.
¼±ÅÃµÈ ÀÚ¿ø ¸ÊÇο¡¼ Á÷Á¢ ¼øÈ¸ ¼¼Æ®¸¦ ¾òÀ» ¼ö ÀÖÁö¸¸ ƯÁ¤ Á¶ÀÛ¿¡ Ãß°¡ ÀÚ¿ø ¶Ç´Â ¸ðµ¨ ¿ä¼Ò¸¦ Æ÷ÇÔÇØ¾ß ÇÏ´Â ¸ðµ¨ °ü°è(¶Ç´Â ÀúÀå¼Ò °ü°è)°¡ Á¸ÀçÇÕ´Ï´Ù. ´ÙÀ½ ¼½¼ÇÀº ¸ðµç Çʼö ÀÚ¿øÀ» ´ÜÀÏ Á¶ÀÛ¿¡ Æ÷ÇÔÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
ÆÀ Á¶ÀÛÀÇ °æ¿ì, ¼±ÅÃµÈ ¸ÊÇÎÀ» Á¶ÀÛÀÌ ¼öÇàµÉ ¸ÊÇÎ ¼¼Æ®·Î º¯È¯ÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÇÁ·Î¼¼½º¿¡´Â ¸ðµç ¸ðµ¨ Á¦°øÀÚ ÂüÁ¶¸¦ ÅëÇØ ÇØ´ç Àο¡À̺í¸ÕÆ® ±ÔÄ¢°ú ÀÏÄ¡ÇÏ´Â ÀÚ¿ø¿¡ ´ëÇÑ Á¶ÀÛ¿¡ ÇØ´ç Á¦°øÀÚ¸¦ Æ÷ÇÔÇÏ´Â ÀÛ¾÷ÀÌ Æ÷ÇԵ˴ϴÙ. Á¶ÀÛÀÌ ¼öÇàµÉ ÀÚ¿ø ¸ÊÇÎÀÇ Àüü ¼¼Æ®¸¦ ¼³¸íÇϱâ À§ÇØ »ç¿ëÇÏ´Â ¿ë¾î°¡ Á¶ÀÛ ¹üÀ§ÀÔ´Ï´Ù. À̸¦ À§ÇØ ´ÙÀ½ API°¡ Á¦°øµË´Ï´Ù.
ISynchronizationScope
:
Á¶ÀÛ ¹üÀ§¿¡ ¾×¼¼½ºÇϱâ À§ÇÑ API¸¦ Á¤ÀÇÇÏ´Â
ÀÎÅÍÆäÀ̽º. ÀÌ ÀÎÅÍÆäÀ̽º´Â Á¶ÀÛÀÌ ¼öÇàµÇ´Â ¸ðµç ÀÚ¿ø
¸ÊÇΰú ÇØ´ç ¸ÊÇÎÀÇ ¼øÈ¸¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Á¦°øÇÕ´Ï´Ù. ÇØ´ç
ÀÚ¿ø ¸ÊÇÎ ¹× ¼øÈ¸´Â ¹üÀ§ ºôµå ÇÁ·Î¼¼½º¿¡¼ °è»êµÇ¾ú½À´Ï´Ù.ISynchronizationScopeManager
:
¹üÀ§ ÀÛ¼º ¹× °ü¸®¸¦ À§ÇÑ API¸¦ Á¤ÀÇÇÏ´Â ÀÎÅÍÆäÀ̽ºSynchronizationScopeManager
:
ISynchronizationScopeManager
APIÀÇ
±âº» ±¸ÇöÀ» Á¦°øÇÏ´Â È®Àå °¡´É Ŭ·¡½ºModelOperation
:
Á¦°øµÈ ¹üÀ§ °ü¸®ÀÚ¸¦ »ç¿ëÇÏ¿© ¹üÀ§¸¦ »ý¼ºÇÏ°í ¸ðµ¨
Á¦°øÀÚ °ü°è·Î ÀÎÇØ Ãß°¡ ÀÚ¿ø ¶Ç´Â ¸ÊÇÎÀÌ Á¶ÀÛ¿¡
Æ÷ÇԵǾú´ÂÁö ¿©ºÎ¸¦ ÇÁ·ÒÇÁÆ®ÇÏ´Â È®Àå °¡´É Á¶ÀÛ Å¬·¡½ºSynchronizationScopeManager
Ŭ·¡½ºÀÇ
initialize(IProgressMonitor) ¸Þ¼Òµå´Â ÀÚ¿ø ¸ÊÇÎÀÇ ÀÔ·Â
¼¼Æ®¸¦ Á¶ÀÛÀÌ ¼öÇàµÇ¾î¾ß ÇÏ´Â Àüü ¸ÊÇÎ ¼¼Æ®¿Í ÇØ´ç ¸ÊÇο¡ Àû¿ëµÇ´Â
Àüü ¼øÈ¸ ¼¼Æ®·Î º¯È¯ÇÏ´Â Àüü ÇÁ·Î¼¼½º¸¦ ó¸®ÇÕ´Ï´Ù. ÀúÀå¼Ò
Á¦°øÀÚ´Â ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î ÇÁ·Î¼¼½º¸¦ Á¶Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
RemoteResourceMappingContext
¸¦ Á¦°øÇÕ´Ï´Ù.SynchronizationScopeManager
¸¦
´ëüÇÏ¿© Çʿ信 µû¶ó ¹üÀ§ °ü¸® ÇÁ·Î¼¼½º¸¦ Á¶Á¤ÇÕ´Ï´Ù.´ÙÀ½ µÎ ¼½¼ÇÀº À§ÀÇ »çÇ׿¡ ´ëÇØ ÀÚ¼¼È÷ ¼³¸íÇÕ´Ï´Ù.
ÇÊ¿äÇÑ ÀÚ¿øÀ» ¸ðµÎ ÆÀ Á¶ÀÛ¿¡ Æ÷ÇÔÇÏ·Á¸é ¸ðµ¨ Á¦°øÀÚ°¡ ÀúÀå¼Ò¿¡¼ Çϳª ÀÌ»óÀÇ ÀÚ¿ø »óŸ¦ ÆÄ¾ÇÇÒ ¼ö ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀϺΠ¸ðµ¨ÀÇ °æ¿ì, ÀÌ ±â´ÉÀÌ ÇÊ¿äÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Java ÆÐŰÁö´Â ¸ðµ¨ÀÇ ¿ø°Ý »óÅ¿¡ °ü°è ¾øÀÌ ±íÀÌ 1·Î ¹æ¹®ÇÒ ¼ö ÀÖ´Â ÄÁÅ×À̳ÊÀÔ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì, ÀúÀå¼Ò Á¦°øÀÚ´Â È®¾à ½Ã Ãâ·Â »èÁ¦¸¦ Æ÷ÇÔÇØ¾ß ÇÏ¸ç °»½Å ½Ã ÀÔ·Â Ãß°¡¸¦ Æ÷ÇÔÇØ¾ß ÇÔÀ» ½±°Ô ÆÇº°ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ÀϺΠ³í¸® ¸ðµ¨À» ±¸¼ºÇÏ´Â ÀÚ¿øÀº ½Ã°£ÀÌ Áö³²¿¡ µû¶ó º¯°æµÉ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ¸ðµ¨ ¿ä¼Ò¸¦ ±¸¼ºÇÏ´Â ÀÚ¿øÀº Manifest ÆÄÀÏÀÇ ÄÁÅÙÃ÷ ¶Ç´Â ±âŸ À¯»çÇÑ ¸ÞÄ¿´ÏÁò¿¡ µû¶ó ´Ù¸¦ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¿ø ¸ÊÇÎÀÌ ¿Ã¹Ù¸¥ ¼øÈ¸¸¦ ¸®ÅÏÇÏ·Á¸é Manifest ÆÄÀÏÀÇ ¿ø°Ý ÄÁÅÙÃ÷(·ÎÄà ÄÁÅÙÃ÷¿Í ´Ù¸¥ °æ¿ì)¿¡ ¾×¼¼½ºÇÏ¿© Ãß°¡ ÀÚ¿øÀ» Æ÷ÇÔÇØ¾ß ÇÏ´ÂÁö ¿©ºÎ¸¦ È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Ãß°¡ ÀÚ¿øÀÌ ÀÛ¾÷°ø°£¿¡ ¾øÀ» ¼öµµ ÀÖÁö¸¸ ÀúÀå¼Ò Á¦°øÀÚ´Â ¼±ÅÃµÈ Á¶Ä¡°¡ ¼öÇàµÉ ¶§ ÀÚ¿ø ±â´ÉÀ» È®ÀÎÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ÀÖ½À´Ï´Ù.
ÀÌó·³ º¸´Ù º¹ÀâÇÑ ¸ðµ¨À» Áö¿øÇϱâ À§ÇØ RemoteResourceMappingContext
¸¦
ResourceMapping#getTraversals
¸Þ¼Òµå·Î Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÄÁÅØ½ºÆ®°¡ Á¦°øµÇ¸é ¸ÊÇο¡¼ ÇØ´ç ÄÁÅØ½ºÆ®¸¦ »ç¿ëÇÏ¿© ÇÊ¿äÇÑ ¸ðµç
ÀÚ¿øÀÌ ¼øÈ¸¿¡ Æ÷ÇԵǾú´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÄÁÅØ½ºÆ®°¡
Á¦°øµÇÁö ¾Ê´Â °æ¿ì ¸ÊÇÎÀº ·ÎÄà »óŸ¸
ÇØ´çµÇ´Â °ÍÀ¸·Î °¡Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¿ø°Ý ÀÚ¿ø ¸ÊÇÎ ÄÁÅØ½ºÆ®´Â ´ÙÀ½°ú °°Àº ¼¼ °¡Áö ±âº» Á¶È¸¸¦ Á¦°øÇÕ´Ï´Ù.
ù ¹øÂ° Áú¹®¿¡ ´ëÇÑ ´ë´äÀº ¼öÇàµÇ´Â Á¶ÀÛ À¯Çü¿¡ µû¶ó ´Ù¸¨´Ï´Ù. ÀϹÝÀûÀ¸·Î, °»½Å ¹× º´ÇÕÀº 3-¹æÇâ Á¶ÀÛÀÌ°í ºñ±³ ¹× ¹Ù²Ù±â(ÃÖ¼ÒÇÑ CVSÀÇ °æ¿ì)´Â 2-¹æÇâ Á¶ÀÛÀÔ´Ï´Ù.
Eclipse ÆÀ API¿¡´Â ·ÎÄà ÀÛ¾÷°ø°£°ú ¿ø°Ý ¼¹ö °£ÀÇ
µ¿±âÈ »óŸ¦ Á¦°øÇÏ´Â API¸¦ Á¤ÀÇÇÏ´Â Subscriber
Ŭ·¡½º°¡ Æ÷ÇԵ˴ϴÙ. ¶ÇÇÑ Subscriber
¸¦
»ç¿ëÇÏ¿© ÇÊ¿äÇÑ ¿ø°Ý »óÅ¿¡ ¾×¼¼½ºÇÏ´Â SubscriberResourceMappingContext
°¡
Á¦°øµË´Ï´Ù. Subscriber
°¡ Àִ Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ¿ø
¸ÊÇÎ ÄÁÅØ½ºÆ®¸¦ °¡Á®¿À±â À§ÇÑ Ãß°¡ ÀÛ¾÷À» ¼öÇàÇÏÁö ¾Ê¾Æµµ µË´Ï´Ù.
SynchronizationScopeManager
Ŭ·¡½º´Â ¹üÀ§ »ý¼º ¹× °ü¸®
ÇÁ·Î¼¼½º¸¦ »ç¿ëÀÚ Á¶Á¤Çϱâ À§ÇØ ¼ºêŬ·¡½º¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹üÀ§
°ü¸®ÀÚÀÇ ¼ºêŬ·¡½º¸¦ ÁöÁ¤ÇÏ´Â µÎ °¡Áö ÁÖ¿ä ÀÌÀ¯´Â ´ÙÀ½°ú °°½À´Ï´Ù.
ISynchronizationScopeParticipant
ÀÎÅÍÆäÀ̽º´Â ¸ðµ¨ Á¦°øÀÚ°¡ ¹üÀ§ °ü¸® ÇÁ·Î¼¼½º¿¡ Âü¿©Çϱâ
À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â API¸¦ Á¤ÀÇÇÕ´Ï´Ù. SubscriberScopeManager
Ŭ·¡½º´Â ¹üÀ§ °ü¸® ÇÁ·Î¼¼½ºÀÇ Âü¿©ÀÚ¸¦ Æ÷ÇÔÇÏ´Â SynchronizationScopeManager
ÀÇ
Subscriber
±â¹Ý ¼ºêŬ·¡½ºÀÔ´Ï´Ù. ÀÌ·¯ÇÑ À¯ÇüÀÇ ÇÁ·Î¼¼½º°¡
ÇÊ¿äÇÑ ÀÌÀ¯ÀÇ ÇÑ ¿¹·Î ÀÛ¾÷ ¼¼Æ®¸¦ µé ¼ö ÀÖ½À´Ï´Ù. ÀÛ¾÷
¼¼Æ®°¡ ¹üÀ§ ³» ÀÚ¿ø ¸ÊÇÎ Áß ÇϳªÀÎ °æ¿ì,
ÇØ´ç ÀÛ¾÷ ¼¼Æ®¿¡ ÀÚ¿øÀÌ Ãß°¡µÇ¸é ÇØ´ç
¹üÀ§¿¡ Æ÷ÇԵǴ ¼øÈ¸ ¼¼Æ®°¡ È®ÀåµË´Ï´Ù.¸ðµ¨ Âü¿©°¡ ÇÊ¿äÇÑ ±âº» ÀúÀå¼Ò Á¶ÀÛ À¯ÇüÀº
º´ÇÕÀÔ´Ï´Ù. ¸¹Àº °æ¿ì, ¸ðµ¨Àº ÆÄÀÏ ·¹º§¿¡¼¸¸ Âü¿©Çؾß
ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ °æ¿ì ¸ðµ¨ Á¦°øÀÚ°¡ ƯÁ¤ È®Àå ¶Ç´Â ÄÁÅÙÃ÷
À¯ÇüÀÇ ÆÄÀÏÀ» º´ÇÕÇϱâ À§ÇØ »ç¿ëÇØ¾ß ÇÏ´Â º´ÇÕÀÚ¸¦ ÄÁÆ®¸®ºä¼ÇÇÒ ¼ö
ÀÖ´Â IStorageMerger
API°¡ µµÀԵǾú½À´Ï´Ù. ±×·¯³ª
°æ¿ì¿¡ µû¶ó ¿Ã¹Ù¸¥ º´ÇÕ Âü¿©¸¦ À§ÇÑ Ãß°¡ ÄÁÅØ½ºÆ®°¡ ¸ðµ¨¿¡ ÇÊ¿äÇÒ
¼ö ÀÖ½À´Ï´Ù. À̸¦ À§ÇØ IResourceMappingMerger
¹× IMergeContext
API¸¦ µµÀÔÇß½À´Ï´Ù.
º´ÇÕ Á¶ÀÛÀº ÀúÀå¼Ò Á¦°øÀÚ¿Í ¿¬°üµÈ Á¶Ä¡·Îµµ °è¼Ó Æ®¸®°ÅµË´Ï´Ù. ±×·¯³ª »ç¿ëÀÚ°¡ º´ÇÕ À¯Çü Á¶ÀÛÀ» ¿äûÇϸé ÀúÀå¼Ò Á¦°øÀÚ°¡ º´ÇÕ ÇÁ·Î¼¼½º¿¡ ¸ðµ¨ Á¦°øÀÚ¸¦ Æ÷ÇÔ½ÃÄÑ º´ÇÕÀ¸·Î ÀÎÇØ ¸ðµ¨ÀÌ ¼Õ»óµÇÁö ¾Êµµ·Ï ÇØ¾ß ÇÕ´Ï´Ù.
¸ðµ¨ ±â¹Ý º´ÇÕ Áö¿ø°ú °ü·ÃµÈ µÎ °¡Áö ±âº» ÀúÀå¼Ò Á¦°øÀÚ API´Â ´ÙÀ½°ú °°½À´Ï´Ù.
¸ðµ¨ ±â¹Ý º´ÇÕÀÇ Áß¿äÇÑ Ãø¸é Áß Çϳª´Â °ü·Ã ÀÚ¿øÀÇ µ¿±âÈ »óŸ¦ ¸ðµ¨ Á¦°øÀÚ¿¡°Ô ¾Ë¸®´Â µ¥ »ç¿ëµÇ´Â APIÀÔ´Ï´Ù. ´ÙÀ½ ÀÎÅÍÆäÀ̽º´Â µ¿±âÈ »óŸ¦ ¼³¸íÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù.
Ŭ·¡½º À̸§ÀÌ "I" Á¢µÎºÎ°¡ Á¦°ÅµÈ ÀÎÅÍÆäÀ̽º
À̸§°ú ÀÏÄ¡ÇÏ´Â ±ÔÄ¢¿¡ µû¶ó ÀÌ ÀÎÅÍÆäÀ̽º ¸ðµÎ¿¡
Ãß»ó Ŭ·¡½º°¡ Á¦°øµË´Ï´Ù. ÀúÀå¼Ò Á¦°øÀÚ´Â
ResourceDiff
Ŭ·¡½º¸¸ ´ëüÇÏ¸é µÇ¹Ç·Î
ÇØ´ç ÀÌÀü ¹× ÀÌÈÄ ÆÄÀÏ °³Á¤À» Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.
IMergeContext ÀÎÅÍÆäÀ̽º´Â º´ÇÕÀ» Áö¿øÇÏ´Â Ãß°¡ ¸Þ¼Òµå·Î µ¿±âÈ ÄÁÅØ½ºÆ®¸¦ È®ÀåÇÕ´Ï´Ù. ´ÙÀ½°ú °°Àº ±â´ÉÀÇ ÄÝ¹é ¸Þ¼Òµå°¡ Á¸ÀçÇÕ´Ï´Ù.
¸¹Àº º´ÇÕ µ¿ÀÛ¿¡ ´ëÇÑ ±âº» ±¸ÇöÀ» Æ÷ÇÔÇÏ´Â Ãß»ó MergeContext Ŭ·¡½º°¡ Á¦°øµË´Ï´Ù. ÀÌ Å¬·¡½º´Â ¶ÇÇÑ IStorageMerger¸¦ »ç¿ëÇÏ¿© 3-¹æÇâ º´ÇÕÀ» ¼öÇàÇÕ´Ï´Ù. º´ÇÕ ÄÁÅØ½ºÆ®¿Í ¿¬°üµÈ µ¿±âÈ »óÅ ¼³¸íÀ» ä¿ì°í À¯Áöº¸¼öÇÏ´Â SubscriberMergeContext Ŭ·¡½ºµµ Á¦°øµË´Ï´Ù.
IResourceMappingMerger
API¸¦
»ç¿ëÇÏ¿© ¸ðµ¨ ±â¹Ý º´ÇÕ Á¶ÀÛÀ» ¼öÇàÇÏ´Â ModelMergeOperation
Á¶ÀÛ Å¬·¡½º°¡ Á¦°øµË´Ï´Ù. initializeContext(IProgressMonitor)
¸Þ¼Òµå¸¦
´ëüÇÏ¿© º´ÇÕ ÄÁÅØ½ºÆ®¸¦ ¸®ÅÏÇϱâ À§ÇÑ ¼ºêŬ·¡½º°¡ ÇÊ¿äÇÕ´Ï´Ù. Á¶ÀÛÀº ÀÌ
ÄÁÅØ½ºÆ®¸¦ »ç¿ëÇÏ¿© headless ¸ðµ¨ ±â¹Ý º´ÇÕÀ» ½ÃµµÇÕ´Ï´Ù. Ãæµ¹ÀÌ ¹ß»ýÇÏ´Â °æ¿ì,
¼ºêŬ·¡½º¿¡ ´ëÇÑ º´ÇÕ ¹Ì¸®º¸±â°¡ Á¦°øµË´Ï´Ù. ´ÙÀ½
¼½¼ÇÀÇ ³»¿ë´ë·Î, ModelSynchronizeParticipant¸¦ »ç¿ëÇÏ´Â ¹Ì¸®º¸±â ±â´ÉÀ» Á¦°øÇÏ´Â ModelParticipantMergeOperationÀÌ
Á¸ÀçÇÕ´Ï´Ù.
Eclipse 3.2¿¡¼ µµÀÔµÈ °øÅë ³×ºñ°ÔÀÌÅÍ ÇÁ·¹ÀÓ¿öÅ©¸¦
»ç¿ëÇÏ¿© ÆÀ Á¶ÀÛÀÇ ³í¸® ¸ðµ¨ Ç¥½Ã¿¡ ´ëÇÑ Áö¿øÀÌ
Á¦°øµË´Ï´Ù. ³í¸® ¸ðµ¨Àº org.eclipse.team.ui.teamContentProvider
È®ÀåÁ¡À» »ç¿ëÇÏ¿© ÄÁÅÙÃ÷ È®Àå°ú ¸ðµ¨
Á¦°øÀÚ¸¦ ¿¬°ü½Ãų ¼ö ÀÖ½À´Ï´Ù. ÆÀ Á¦°øÀÚ´Â
ITeamContentProviderManager
¸¦ ÅëÇØ ÀÌ ÄÁÅÙÃ÷ Á¦°øÀÚ¿¡ ¾×¼¼½ºÇÕ´Ï´Ù.
ÆÀ Á¦°øÀÚ°¡ ³í¸® ¸ðµ¨À» Ç¥½ÃÇÏ´Â °æ¿ì´Â ´ÙÀ½°ú °°ÀÌ ´Ù¾çÇÕ´Ï´Ù.
ModelOperation
Ŭ·¡½º´Â
µî·ÏµÈ ÆÀ ÄÁÅÙÃ÷ Á¦°øÀÚ¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ¿¡°Ô
¹üÀ§ È®ÀåÀ» ¾Ë·ÁÁÖ´Â ÇÁ·ÒÇÁÆ®¸¦ Á¦°øÇÕ´Ï´Ù.ModelSynchronizeParticipant
´Â µ¿±âÈ º¸±â ¶Ç´Â
iSynchronizePages
¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ´Â ÄÁÅ×À̳ʿ¡ ´ëÇÑ ÅëÇÕÀ» Á¦°øÇÕ´Ï´Ù.
Âü¿©ÀÚ´Â ±âÁ¸ µ¿±âÈ Âü¿©ÀÚ ±â´É ¹× °øÅë ³×ºñ°ÔÀÌÅÍ
±â´ÉÀ» ¸ðµÎ »ç¿ëÇÏ¿© ÆÀ Á¦°øÀÚ ¹× ¸ðµ¨ÀÌ µµ±¸ ¸ðÀ½, ÄÁÅØ½ºÆ®
¸Þ´º ¹× º´ÇÕ ¹Ì¸®º¸±âÀÇ ±âŸ Ãø¸éÀ» »ç¿ëÀÚ Á¶Á¤ÇÒ ¼ö ÀÖµµ·Ï
Çã¿ëÇÕ´Ï´Ù. ModelSynchronizeParticipant
´Â ´ÙÀ½À» Á¦°øÇÕ´Ï´Ù.
´ÙÀ½Àº ƯÁ¤ ÆÀ Á¦°øÀÚÀÇ ¸ðµ¨ µ¿±âÈ Âü¿©ÀÚ¸¦ »ç¿ëÀÚ Á¶Á¤ÇÏ´Â ´Ü°èÀÇ Ã¼Å©¸®½ºÆ®ÀÔ´Ï´Ù.
ModelSynchronizeParticipant
¼ºêŬ·¡½º¸¦ ÀÛ¼ºÇØ¾ß ÇÕ´Ï´Ù.ISynchronizePageConfiguration.P_VIEWER_ID
¸¦
ÀÌÀü ´Ü°è¿¡¼ ÁöÁ¤ÇÑ Ç¥½Ã±âÀÇ ID·Î ¼³Á¤ÇÏ·Á¸é Âü¿©ÀÚÀÇ
initializeConfiguration ¸Þ¼Òµå¸¦ ´ëüÇϽʽÿÀ.MergeActionGroup
»ç¿ëÀÚ Á¤ÀÇ ¼ºêŬ·¡½º¸¦ Á¦°øÇϽʽÿÀ.ModelParticipantMergeOperation
¼ºêŬ·¡½º¸¦ ±¸ÇöÇϽʽÿÀ.´ÙÀ½ XML ½º´ÏÆêÀº CVS Âü¿©ÀÚ Å¬·¡½ºÀÇ µî·Ï ¹æ¹ý°ú ÇØ´ç Ç¥½Ã±âÀÇ Á¤ÀÇ ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.
<extension point="org.eclipse.team.ui.synchronizeParticipants"> <participant name="CVS" icon="$nl$/icons/full/eview16/cvs_persp.gif" class="org.eclipse.team.internal.ccvs.ui.mappings.WorkspaceModelParticipant" id="org.eclipse.team.cvs.ui.workspace-participant"> </participant> </extension> <extension point="org.eclipse.ui.navigator.viewer"> <viewer viewerId="org.eclipse.team.cvs.ui.workspaceSynchronization"> <popupMenu allowsPlatformContributions="false" id="org.eclipse.team.cvs.ui.workspaceSynchronizationMenu"> <insertionPoint name="file"/> <insertionPoint name="edit" separator="true"/> <insertionPoint name="synchronize"/> <insertionPoint name="navigate" separator="true"/> <insertionPoint name="update" separator="true"/> <insertionPoint name="commit" separator="false"/> <insertionPoint name="overrideActions" separator="true"/> <insertionPoint name="otherActions1" separator="true"/> <insertionPoint name="otherActions2" separator="true"/> <insertionPoint name="sort" separator="true"/> <insertionPoint name="additions" separator="true"/> <insertionPoint name="properties" separator="true"/> </popupMenu> </viewer> </extension>
¸ðµ¨ÀÌ ÆÄÀÏ È÷½ºÅ丮¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÏ´Â ÆÄÀÏ È÷½ºÅ丮 API°¡ Ãß°¡µÇ¾ú½À´Ï´Ù. ÆÄÀÏ È÷½ºÅ丮 API´Â ´ÙÀ½ ÀÎÅÍÆäÀ̽º·Î ±¸¼ºµË´Ï´Ù.
ÀÌ API¿Í ÇÔ²² ÀÏ¹Ý ÆÄÀÏ È÷½ºÅ丮 º¸±â°¡ Ãß°¡µÇ¾ú½À´Ï´Ù. ÆÀ Á¦°øÀÚ´Â ÀÌ º¸±â¸¦ »ç¿ëÇÏ¿© °øÀ¯ º¸±â¿¡ ÇØ´ç ÆÄÀÏ/Áö¿ø È÷½ºÅ丮¸¦ Ç¥½ÃÇÒ ¼ö ÀÖÀ¸¸ç ¸ðµ¨Àº ÆÄÀÏ¿¡ Á÷Á¢ ¸ÊÇεÇÁö ¾Ê´Â ¿ä¼Ò¿¡ ´ëÇÑ ¸ðµ¨ ¿ä¼Ò È÷½ºÅ丮¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù. È÷½ºÅ丮 º¸±â´Â ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î ¼±ÅÃµÈ ¿ä¼Ò¿¡ ´ëÇÑ ÆäÀÌÁö¸¦ ¾ò´Â ÆäÀÌÁö ±â¹Ý º¸±âÀÔ´Ï´Ù.
RepositoryProvider
¸¦ IHistoryPageSource¿¡
¸Â°Ô ¼öÁ¤Çϸé ÀÛ¾÷°ø°£ ÀÚ¿øÀÇ
È÷½ºÅ丮 ÆäÀÌÁö°¡ »ý¼ºµË´Ï´Ù.IHistoryPageSource
¿¡ ¸Â°Ô ¼öÁ¤ÇÏ¿© ¾ò½À´Ï´Ù.ÇÁ·ÎÁ§Æ®¿Í ¿ø°Ý ÄÁÅÙÃ÷ °£ ¸ÊÇÎÀ»
½Äº°ÇÏ´Â µ¥ »ç¿ëµÇ´Â ÂüÁ¶ ¹®ÀÚ¿°ú org.eclipse.core.filesystem.filesystems
È®ÀåÁ¡À¸·Î µî·ÏµÈ ÆÄÀÏ ½Ã½ºÅÛ
¼³°è¸¦ ½Äº°ÇÏ´Â URI °£ÀÇ »óÅÂ
ÀüÀ̸¦ Áö¿øÇϱâ À§ÇØ ProjectSetCapability
¿¡
¸Þ¼Òµå°¡
Ãß°¡µÇ¾ú½À´Ï´Ù. ÆÀ Á¦°øÀÚ´Â ³í¸® ¸ðµ¨ÀÌ ¿ø°Ý
ã¾Æº¸±â ¹× ÇÁ·ÎÁ§Æ® ·ÎµùÀ» ¼öÇàÇÒ ¼ö ÀÖµµ·Ï
ÀÌ¿¡ ´ëÇÑ Áö¿øÀ» ¼±ÅÃÀûÀ¸·Î Á¦°øÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÆÀ Á¦°øÀÚ´Â ¿ÀºêÁ§Æ® ÄÁÆ®¸®ºä¼ÇÀÌ ÀÚ¿ø ¸ÊÇÎ ÀÛ¾÷À» ¼öÇàÇϵµ·Ï º¯È¯µÇ´Â °Í°ú µ¿ÀÏÇÑ ¹æ½ÄÀ¸·Î °£´ÜÇÑ µ¥ÄÚ·¹ÀÌÅͰ¡ ÀÚ¿ø ¸ÊÇÎ ÀÛ¾÷À» ¼öÇàÇϵµ·Ï º¯È¯ÇÏ¿© ¸ðµ¨ ¿ä¼Ò¸¦ µ¥ÄÚ·¹À̼ÇÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ³í¸® ¸ðµ¨ ¿ä¼Ò µ¥ÄÚ·¹À̼ǿ¡´Â ÇÑ °¡Áö ¹®Á¦Á¡ Ãø¸éÀÌ ÀÖ½À´Ï´Ù. Áï, ¸ðµ¨ ¿ä¼Ò°¡ ÀÚ¿ø¿¡ ´ëÇØ ÀÏ´ëÀÏ·Î ¸ÊÇεÇÁö ¾Ê´Â °æ¿ì ±âº» ÀÚ¿øÀÌ º¯°æµÇ¸é ¸ðµ¨ ¿ä¼Ò°¡ ·¹ÀÌºí °»½ÅÀ» ¹ÞÁö ¸øÇÕ´Ï´Ù.
ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ, ¸ðµ¨ Á¦°øÀÚ¿¡°Ô ÆÀ µ¥ÄÚ·¹À̼ǿ¡
¿µÇâÀ» ÁÙ ¼ö ÀÖ´Â »óÅ º¯°æ»çÇ׿¡ ´ëÇØ ¾×¼¼½º ±ÇÇÑÀ» ºÎ¿©ÇÏ´Â ITeamStateProvider
°¡ µµÀԵǾú½À´Ï´Ù. ¶ÇÇÑ
¸ðµ¨ º¸±â´Â SynchronizationStateTester
¸¦
»ç¿ëÇÏ¿© ³í¸® ¸ðµ¨ ¿ä¼ÒÀÇ ·¹À̺íÀ» °»½ÅÇØ¾ß ÇÏ´Â ½ÃÁ¡À» ÆÇº°ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ API´Â
ITeamStateProvider
ÀÎÅÍÆäÀ̽º¿¡ ÀÇÁ¸ÇÏ¿© ÀÚ¿øÀÇ ÆÀ »óŰ¡ º¯°æµÇ¾î IDecorationContext
ÀÇ
ÀϺημ ÆÀ µ¥ÄÚ·¹ÀÌÅÍ¿¡ Àü´ÞÇÒ ¼ö ÀÖ´Â ½ÃÁ¡À» ÆÇº°ÇÕ´Ï´Ù.