Changing the sharing of a project

来源:互联网 发布:连尚网络wifi万能钥匙 编辑:程序博客网 时间:2024/05/19 13:55

http://minyongcheng.iteye.com/blog/1749191

选中项目右键-Properties-CVS-Change Sharing-去掉钩选框-选中显示的cvs地址OK即可

 
 
======
http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Ftasks%2Ftasks-117b.htm

Changing the sharing of a project

If a project is shared with a CVS repository location, you can change the sharing information so it is shared with a different repository location. The new location must map to the same repository but can have a different connection method and/or user name.

To change the sharing of a project:

  1. In one of the navigation views, select the project whose sharing information is to be changed.
  2. Select Properties from the pop-up menu. The properties dialog will open.
  3. Select CVS to see the CVS properties page for the project.
  4. Click Change Sharing.... A repository selection dialog opens containing the compatible repository locations. (Note: You can change the sharing to a non-compatible repository location by unchecking the Show only compatible repository locations button.)
  5. Select the desired location and click OK to change the sharing for the project.

Related concepts
Team programming with CVS
CVS Repositories

Related tasks
Creating a CVS repository location
Changing the properties of a CVS Repository Location

Related references
CVS
CVS Repositories view

 

 

===================

http://www.cnblogs.com/aijava/archive/2009/08/28/2191846.html

http://www.cnblogs.com/aijava/archive/2009/08/28/2191845.html

http://www.cnblogs.com/aijava/archive/2009/08/28/2191847.html

//原文地址:http://hi.baidu.com/xublog/blog/item/8265f309c5d35bc93ac76334.html

5.5 特殊情况及其处理

这里将给出一些您每天或在软件开发周期中可能会碰到的常见情况,以及如何使用Eclipse来处理这些情况的建议。某些情况的解决可能需要使用CVS,但通常只使用Eclipse就可以处理它们。

5.5.1 对项目资源进行重命名、移动和删除

●       避免重命名CVS控制之下的项目。如果您这样做了,那么所做的命名修改只在该项目所处的工作空间中有效。保留在CVS中的仍是该项目的初始名。如果必须修 改项目的名称,那么您最好先使用Team | Disconnect…操作来解除该项目与CVS的关联关系,然后再对该项目重命名。事实上,重命名后的项目会被看作是新项目。在将重命名后的项目重新连 接到CVS时,您必须像定义任何新项目一样将该重命名后的项目定义到CVS中。

●       对文件夹的重命名操作会导致CVS中出现一个新文件夹。幸运的是,原文件夹中的内容会被移动到新文件夹中。如果您启用了CVS首选项Prune empty directories,那么在从CVS检出资源后,该旧文件夹将不会出现在您的工作空间中。

●       如果您将工作空间中的某资源删除了,那么在向CVS提交了更改后,保存在CVS中的该资源也会被删除。要记住的是文件夹决不会在CVS中删除。CVS首选 项Prune empty directories使得这些文件夹隐藏在视图中。默认情况下,CVS首选项Prune empty directories是被启用的。

●       因为修改可能会涉及多个项目,所以在进行全局修改前,您需要确保工作空间中的所有项目是资源库中的最新版本。Java类的重构是一个可能导致工作空间被广泛修改的操作。项目间的资源移动也可能产生这种影响。

●       在CVS透视图中,项目之间资源移动的结果是:所要移动的资源添加到目标项目中,而源项目中的该资源会被删除。移动到目标项目中的资源必须被添加到版本控制中。而资源重命名的效果与此相同。

●       在文件被修改后,如果您要执行诸如同步等CVS操作,那么我们建议您在项目层次上进行同步(即使您的更改可能仅涉及一个单独文件)。例如,如果您对一个文 件进行了重命名这一CVS的删除和添加操作,那么在文件层次上的同步将只会检测添加操作而不检测删除操作。而项目层次上的同步则会对添加和删除操作都进行 检测。

●       在所进行的修改涉及整个应用程序的情况下,您应该将这次修改通知给自己所在的小组,以避免不必要的冲突。此时,一旦条件满足,您就应该提交修改。冲突的解决可能是冗长乏味而又难以解决的。

5.5.2 取消修改:使用替换和比较操作

有时,我们都希望事情能够重新开始。在人的一生中, 这可能不容易。但是对于Eclipse和CVS来说,这要简单得多。根据您的需要,您有多种选择。在先前的几章中,您看到了如何使用快捷菜单操作 Replace With和Compare With用工作空间中的本地历史记录来替换和比较资源。通过使用CVS,您对资源的替换和比较操作就有了额外的选择。如果您尚未最终完成某个修改,而且之 后一段时间里根本就没有继续这次修改。这种情况下,Compare With操作可能会非常有用,它会使您记起上次停止修改的地方。在使用上述Replace With和Compare With操作时,您是用来自HEAD流(或者其他分支/版本、某一个具体版本)的最新资源来替换或比较当前资源的。

5.5.3 通过建立分支来进行版本维护和新版本开发

在小组已经交付了您的应用程序并准备开始下一个版本的开发工作时,您可能喜欢所有的后续开发能在下一版本所指派的特定分支处开始,同时还要允许先前版本的服务。这里所给出的就是在Eclipse中可用的一种方法。

●       在包含了最近已完成版本的分支(或HEAD)中,请选择所有的项目。然后在所选项目上使用Branch…快捷菜单,并输入该新版本的新分支名。这样,所选 择的全部项目以及这些项目的内容将用下一个版本分支名来标记。在CVS Repositories视图中,这些项目会被列在那个分支名之下。在从那个分支处将这些项目检出到您的工作空间之后,接下来的操作是基于该新版本分支 的。

●       您可重复上述过程以创建一个单独的维护分支。该维护分支独立于上面所创建的新版本分支。

●       为了能以维护分支为基础,在工作空间中对新版本分支进行合适的前向修改,您可以通过使用Compare With | Another Branch or Version…操作来确定这两个分支之间的差别。在Compare视图中,您可以手动合并从维护分支到新版本分支的更改。

 

 

5.6 其他功能

在这一节中,我们将介绍几个非常有用的Eclipse功能。这些功能有助于您提高CVS和Eclipse的使用效率。

5.6.1 编辑器中的快速差别功能对CVS的支持

在本书第2章“Eclipse入门”中,您知道编辑 器所支持的快速差别功能可对文件的添加和修改操作加上注释。如果您在Workbench | Editor | Quick Diff首选项页面中启用了Latest CVS Revision选项,那么快速差别功能所添加的文件注释是在参考CVS中该文件最新版本的基础之上添加的。在将更改提交到CVS或用CVS中该文件的某 一版本来替换该文件时,快速差别功能所添加的注释会被删除。

5.6.2 补丁程序:快速而又简单地共享更改

补丁程序(patch)是一个包含了某一资源的资源库实例和该资源的工作空间实例之间差别的文件。补丁程序可表示出一个单独文件(或完整项目)中的差别。补丁程序允许您共享尚未提交到CVS的更改。有很多原因使得补丁程序非常有用。

●       由于您没有向CVS提交资源的权限,所以您需要将该补丁程序发送给具有资源提交权限的人,然后再由他向CVS提交资源。

●       您需要为所遇到的问题准备一个应急修改或临时工作空间。

●       在将重要的更改提交到CVS之前,您可能想让别人对您的更改进行校验。在这种情况下,您可以将补丁程序发送给校验人以让他们进行测试。

通过使用快捷菜单Team | Create Patch…,我们就可以创建补丁文件。该操作会调用Create Patch向导来指导您完成补丁文件的创建。若要应用某补丁程序,则使用快捷菜单Team | Apply Patch…。该操作会调用Apply Patch向导。Eclipse联机文档Workbench User Guide的Working with patches 一节中有关上述两个操作的描述非常精彩。

5.6.3 项目集:加快新工作空间

小组支持为工作空间中的项目(一个或多个)提供了版 本控制信息的封装功能。该封装功能被称为项目集。项目集的目的是从执行任务所需的资源库中把需要的全部项目都预先准备到一个工作空间中。在应用程序构建过 程中可能要用到存在相互依赖关系的多个项目。下述操作可能是单调乏味而又容易产生错误的:决定所需项目,然后再将这些所需的正确项目从资源库中手动添加到 工作空间中。项目集是Eclipse的一个功能单元。资源库提供程序可对是否支持该功能进行选择(很多资源库提供程序都会选择是)。CVS对项目集提供了 支持。一个项目集所封装的项目可能是由不同资源库管理的。

项目集信息包含在一个文件中。若要创建该项目集信息 文件,则在菜单栏上选择File | Export | Team Project Set选项。若要使用该项目集信息文件,则在菜单栏上选择File | Import | Team Project Set选项。通过使用Export向导,我们可以对项目集中所包含的项目进行定义。出于通用的考虑,最终的项目集信息文件可被发送给别人以在CVS中进行 导入或维护。对于所开发的应用程序来说,您可以为其开发生命周期关键节点处的快照维护多个项目集文件。

在导入过程中,项目集文件中定义的所有项目都被从 CVS中自动检出到您的工作空间中。在导入过程中,一种可能比较稳健的做法是禁用自动构建首选项设置(Workbench首选项页面中的Build Automatically设置)。通过禁用Build Automatically设置,我们就可以在导入过程中避免编译和构建操作,进而加快资源的导入。但在导入操作完成后,请记住要重新启用该首选项。

5.6.4 断开项目与CVS的连接或为项目重分派一个CVS资源库

通过使用Team | Disconnect…操作,您可以断开项目与CVS的连接。在选择了快捷菜单Team | Disconnect…后会出现一个对话框。该对话框会对您进行询问,以让您对是否保存该项目的CVS元数据作出决定。如果选择了保留该项目的CVS元数 据,那么通过使用Team | Share Project…操作,我们就可以将该项目与同一CVS资源库进行重新连接。如果您删除了该CVS元数据,那么可以将该项目共享给其他资源库。

作为选择,如想将项目重新分派给另外一个CVS资源库,那么您可以先为该项目打开CVS资源库页面,然后再选择Change Sharing…按钮。该操作与使用Disconnect…以及Share Project…操作在逻辑上等价。

 

 

 

5.4.9 处理同一文件的并发更新

首先,我们讨论一下一个被建议用来进行修改操作的协 议。当在工作空间中使用资源时,您的操作是独立于CVS资源库的。因为发生在资源库中的更改可能是在您不知道的情况下发生的,所以非常重要的一点是,如果 还未检查资源库中是否有更新取代了您的更改,那么您一定不要提交任何更改。Team | Update…操作会用资源库中那些取代了您的更改的任何更改来更新项目的本地副本。对于文本文件(包括Java类)来说,Team | Update…操作会自动对任何更改进行合并(从资源库到工作空间),即使这些更改可能造成冲突。在遇到冲突时,合并操作会用特定的CVS标记文本来标识 文件中的冲突,以帮助您识别出冲突行。标记文本并不是与任何类型的文件都兼容,例如它可能导致编译错误。

Update… 操作是一个非常强大的操作,我们在练习时一定要小心。在下面这个例子中,Pat和Lynn更新了一个简单的文本文件。无需知道它,它们都对以“B”和 “C”开始的行进行了更新。标记文本会对冲突的那些行以及引入了冲突的版本号(1.2)进行了标识。对于一个带有众多冲突的复杂Java文件来说,您可能 很难解决其中的冲突。

A is for apple

<<<<<<< sample.txt

B is for bird             (updated by pat )

C is for crow             (updated by pat )

=======

B is for bobcat           (updated by lynn )

C is for cow             (updated by lynn )

>>>>>>> 1.2

D is for dog

E is for excellent

F is for farm

G is for goat...

Team | Synchronize with Repository…操作也支持更新,但是该操作不会自动进行更新。在执行该操作后会显示Synchronize视图,并会列出工作空间副本和资源库最 新资源之间那些不一致的资源。在Synchronize视图中,您可以对这些差别进行检查,并决定所要采取的操作。由于Team | Synchronize with Repository…操作可使您拥有更多的控制权,所以我们建议您使用该操作来代替Update…操作。

下面总结一下文件并发更新的基本规则:在对工作空间 中的文件进行修改之前,您必须用资源库中的所有更改来更新工作空间中的资源。为了安全起见,此时请使用Team | Synchronize with Repository…操作。在Synchronize视图中,您可执行更新操作,还可提交更改,并可协调冲突。

5.4.10 使用CVS的Watch/Edit支持以避免对同一文件的并行更新

CVS 的Watch/Edit支持是Eclipse本身就提供的。如果您同意使用CVS的Watch/Edit支持,那么在提交资源时,您和小组其他成员之间就 可以避免冲突。在启用了CVS的Watch/Edit支持之后,您的项目小组可以更好地理解在所有具体项目中,当前谁正更新文件。相反,前面所讨论的 CVS Annotate视图为您所显示的是先前的更改以及谁做的更改。CVS的Watch/Edit支持是在项目层次上被启用的。如果在Team | CVS >Watch/Edit的首选项设置页面中选中了Configure projects to use Watch/Edit on checkout复选框,那么在项目被检出时,Watch/Edit支持将被自动激活。您也可以通过设置项目的CVS属性在受CVS管理的现有项目上启用 Watch/Edit支持。在CVS的Watch/Edit支持被启用时,该项目中的文件处于只读状态。此时,如果您在编辑器中打开了某文件后又试图对该 文件进行修改,那么CVS服务器会被询问。在编辑文件时,如果其他人也正在编辑该文件,那么就会出现一个对话框以通知您小组中其他成员也正在编辑该文件 (见图5-9)。这时,您可以继续对该文件进行编辑,但是在您提交该文件时需要进行冲突管理。在文件被修改时,检查标记修饰符 会被添加到该文件上。

图5-9 显示其他人正在编辑同一文件的对话框

在项目、文件夹以及文件上执行Team | Show Editors操作后会打开CVS Editors视图。CVS Editors视图中列出的是所有正在被其他人更新的资源(见图5-10)。无论是否处于Watch/Edit的控制之下,您在任何项目及项目资源上都可 以使用Team | Show Editors操作。但是Team | Show Editors操作只会对启用了Watch/Edit支持的项目资源进行标识。

图5-10 列出了哪个用户正在更新文件夹中文件的CVS Editors视图

您可以使用Team | Edit操作来显式地通知CVS服务器,让CVS服务器知道您想对文件进行更新。您还可以使用Team | Unedit操作来通知CVS服务器,让CVS服务器知道您不想再编辑该文件。这样,您所做的任何更改都会被从CVS资源库中检出。表5-3给出了有关这 些操作的信息。在向CVS提交了更改之后,Watch/Edit列表中的资源会被隐式删除掉。

Watch/Edit是一个非常有用的工具。但是该 工具的使用需要遵循一些规则,并要注意一些考虑事项。首先,如果要使Watch/Edit功能高效,那么小组中的每个成员都必须在存在潜在冲突的项目中启 动Watch/Edit功能。其次,您必须连接到CVS服务器上。如果您没有和CVS服务器相连,并且想更新一个文件,那么您将不得不显式地将该文件的只 读状态(从该文件的属性页面中可获得该属性)取消掉。当然,该支持现在是折中的。这是因为,没有任何人知道该更新,而且在提交过程中存在潜在的冲突。如果 您删除了一个项目并且该项目资源的Watch/Edit首选项设置没有被启用,那么CVS服务器将不会被通知,并且CVS服务器会继续向外报告您正在对这 些资源进行编辑。如果您的小组计划使用Watch/Edit支持,那么明智的做法是小组中所有人都启用被标注为Configure projects to use Watch/Edit on checkout的CVS Watch/Edit首选项设置。

5.4.11 恢复被删除的文件

有时候,在文件被删除并且更改被提交给CVS后,您 可能需要恢复所删除的文件。幸运的是,CVS不会将所删除的文件从该文件所在的资源库中移除。您可以使用Team | Restore from Repository操作来恢复所删除的文件。如果被删除的文件在资源库中存在,那么您将看到一个对话框。在该对话框中,您可以选择所要恢复的文件的具体 修订版(见图5-11)。而文件的最新修订版则是一个对所删除文件的引用。这是因为文件删除是一个CVS修订操作。

图5-11 显示可恢复的被删除文件的Restore from Repository对话框

当一个文件被恢复到工作空间中的时候,该文件被看作是一个新文件。在提交该文件之前或提交该文件时,必须将该新文件添加到版本控制中。

5.4.12 其他CVS用户界面元素

1. Checkout向导

在New wizard对话框中获得的是CVS向导中的检出项目。通常,您会使用CVS Repositories视图来检出项目。但是,有些CVS资源库是不允许被浏览的。在这种情况下,检出向导可能就比较有用。但是在这种情况下,您必须预先知道该项目的名称。

2. CVS备忘单

若要打开Cheat Sheet Selection对话框,则选择Help | Cheat Sheets…命令。对于CVS任务来说,备忘单用来为分支和合并操作提供帮助。

 

原创粉丝点击