使用 Subversion (SVN) 获取和存回文件
 

2009-03-27 来源:网络

 

Dreamweaver 可以连接到使用 Subversion (SVN) 的服务器,Subversion 是一种版本控制系统,它使用户能够协作编辑和管理远程 Web 服务器上的文件。Dreamweaver 不是一个完整的 SVN 客户端,但却可使用户获取文件的最新版本、更改和提交文件。 重要说明: Dreamweaver CS4 使用 Subversion 1.4.5 客户端库。更高版本的 Subversion 客户端库不向后兼容。注意,如果您更新第三方客户端应用程序(如 TortoiseSVN)以使用 Subversion 1.5 或更高版本,则更新后的 Subversion 应用程序将更新本地 Subversion 元数据,Dreamweaver 将无法再与 Subversion 进行通信。Subversion 服务器的更新不会引起此问题,因为这类更新可向后兼容。有关此问题的详细信息,请参阅 www.adobe.com/go/dw_svn_cn。

Adobe 建议,使用 SVN 版本控制的文件时,最好同时使用第三方文件比较工具。比较文件差异时,您可以确切了解其他用户对文件做了哪些更改。有关文件比较工具的详细信息,请使用 Web 搜索引擎(如 Google 搜索)搜索“文件比较”或“diff”工具。Dreamweaver 可与大多数第三方工具配合使用。

有关使用 SVN 和 Dreamweaver 的视频概览,请访问 www.adobe.com/go/lrvid4049_dw_cn。

建立 SVN 连接

使用 Subversion (SVN) 作为 Dreamweaver 的版本控制系统之前,必须建立与 SVN 服务器的连接。与 SVN 服务器的连接是在“站点定义”对话框的“版本控制”类别中建立的。

SVN 服务器是一个文件存储库,可供您与其他用户获取和提交文件。它与 Dreamweaver 中通常使用的远程服务器不同。使用 SVN 时,远程服务器仍是网页的“实时”服务器,SVN 服务器用于承载存储库,存储希望进行版本控制的文件。典型的工作流程是:在 SVN 服务器之间来回获取和提交文件,然后通过 Dreamweaver 发布到远程服务器。远程服务器的设置完全独立于 SVN 的设置。

开始此设置之前,必须获得对 SVN 服务器和 SVN 存储库的访问权限。有关 SVN 的详细信息,请访问 Subversion 网站,网址:http://subversion.tigris.org/。

若要建立 SVN 连接,请执行以下步骤:

  1. 选择“站点”>“管理站点”,选择要为其设置版本控制的站点,然后单击“编辑”按钮。 注: 如果还没有为 Dreamweaver 站点设置本地文件夹和远程文件夹,则至少需要设置先本地站点,然后再继续。(此阶段不要求设置远程站点,但最终将文件发布到 Web 之前,还是需要进行设置。)有关详细信息,请参阅设置 Dreamweaver 站点。
  2. 务必在“站点定义”对话框中选择“高级”选项卡。
  3. 从“站点定义”对话框的“类别”栏中,选择“版本控制”类别。
  4. 从“访问”弹出菜单中,选择“Subversion”。
  5. 按以下步骤设置访问选项:
    • 从“协议”弹出菜单中选择协议。可选协议包括 HTTP、HTTPS、SVN 和 SVN+SSH。 注: 使用 SVN+SSH 协议要求具备特殊配置。有关详细信息,请访问 www.adobe.com/go/learn_dw_svn_ssh_cn。
    • 在“服务器地址”文本框中,输入 SVN 服务器的地址。通常形式为:服务器名称.域.com
    • 在“存储库路径”文本框中,输入 SVN 服务器上存储库的路径。通常类似于:/svn/your_root_directory,SVN 存储库根文件夹的命名由服务器管理员确定。
    • (可选)如果希望使用的服务器端口不同于默认服务器端口,请选择“非默认值”,并在文本框中输入端口号。
    • 输入 SVN 服务器的用户名和密码。
  6. 单击“测试”来测试连接,或单击“确定”关闭对话框。然后单击“完成”,关闭“管理站点”对话框。

与服务器建立连接后,可在“文件”面板中查看 SVN 存储库。若要查看 SVN 存储库,可以从“视图”弹出菜单中选择“存储库视图”,或在展开的“文件”面板中,单击“存储库文件”按钮 

安装 SVN 存储库中的文件夹

将 SVN 存储库中的文件夹安装到本地计算机期间,会创建 SVN 存储库中文件夹结构的精确映射。安装 SVN 存储库中的文件夹时,Dreamweaver 将获取此文件夹及其所有子文件夹中的所有文件。 注: 首次从存储库中获取文件时,应使用本地空目录,或使用所含文件与存储库中文件不同名的本地目录。如果本地驱动器包含的文件与远程存储库中的文件同名,Dreamweaver 不会在第一次尝试时,便将存储库文件装入本地驱动器。
  1. 确保已成功建立 SVN 连接。
  2. 按此步骤显示 SVN 存储库文件:在“文件”面板的“视图”弹出菜单中,选择“存储库视图”;或在展开的“文件”面板中,单击“存储库文件”按钮。
  3. 右键单击 (Windows) 或按住 Control 键单击 (Macintosh) 要安装的 SVN 存储库文件夹,然后选择“安装文件夹”。

获取最新版本的文件

从 SVN 存储库中获取最新版本的文件时,Dreamweaver 会将该文件的内容和其相应本地副本的内容进行合并。(即,如果您上次提交文件后,有其他用户更新了该文件,这些更新将合并到您计算机上的本地版本文件中。)如果本地硬盘上不存在此文件,Dreamweaver 会径直获取该文件。 注: 首次从存储库中获取文件时,应使用本地空目录,或使用所含文件与存储库中文件不同名的本地目录。如果本地驱动器包含的文件与远程存储库中的文件同名,Dreamweaver 不会在第一次尝试时,便将存储库文件装入本地驱动器。
  1. 确保已成功建立 SVN 连接。
  2. 执行以下操作之一:
    • 按以下步骤在“文件”面板中显示 SVN 文件的本地版本:从“视图”弹出菜单中,选择“本地视图”。(如果正在使用展开的“文件”面板,将自动显示“本地视图”。)然后右键单击 (Windows) 或按住 Control 键单击 (Macintosh) 所需文件或文件夹,并选择“版本控制”>“获取最新版本”。
    • 按此步骤显示 SVN 存储库文件:在“文件”面板的“视图”弹出菜单中,选择“存储库视图”;或在展开的“文件”面板中,单击“存储库文件”按钮。然后右键单击 (Windows) 或按住 Control 键单击 (Macintosh) 所需文件或文件夹,并选择“获取最新版本”。
注: 为获取最新版本,您还可以右键单击文件,然后从上下文菜单中选择“取出”,或者选择文件并单击“取出”按钮。但因为 SVN 不支持取出工作流程,所以此动作并不是传统意义上的实际取出文件。

提交文件

  1. 确保已成功建立 SVN 连接。
  2. 执行以下操作之一:
    • 按以下步骤在“文件”面板中显示 SVN 文件的本地版本:从“视图”弹出菜单中,选择“本地视图”。(如果正在使用展开的“文件”面板,将自动显示“本地视图”。)然后选择要提交的文件,并单击“存回”按钮。
    • 按此步骤显示 SVN 存储库文件:在“文件”面板的“视图”弹出菜单中,选择“存储库视图”;或在展开的“文件”面板中,单击“存储库文件”按钮。然后右键单击 (Windows) 或按住 Control 键单击 (Macintosh) 要提交的文件,并选择“存回”。
  3. 在“提交”对话框中查看动作,根据需要修改,然后单击“确定”。

    选择要更改其动作的文件,然后单击“提交”对话框底部的按钮,这样可以更改动作。提供的选择有两个:提交和忽略。

注: 在“文件”面板中,文件上的绿色选中标记表示此文件有更改,但尚未提交到存储库。

更新存储库中文件或文件夹的状态

您可以更新单个文件或文件夹的 SVN 状态。此更新操作不会刷新整个显示。
  1. 确保已成功建立 SVN 连接。
  2. 按此步骤显示 SVN 存储库文件:在“文件”面板的“视图”弹出菜单中,选择“存储库视图”;或在展开的“文件”面板中,单击“存储库文件”按钮。
  3. 右键单击 (Windows) 或按住 Control 键单击 (Macintosh) 存储库中的任一文件夹或文件,然后选择“更新状态”。

更新本地文件或文件夹的状态

您可以更新单个文件或文件夹的 SVN 状态。此更新操作不会刷新整个显示。
  1. 确保已成功建立 SVN 连接。
  2. 按以下步骤在“文件”面板中显示 SVN 文件的本地版本:从“视图”弹出菜单中,选择“本地视图”。(如果正在使用展开的“文件”面板,将自动显示“本地视图”。)
  3. 右键单击 (Windows) 或按住 Control 键单击 (Macintosh)“文件”面板中的任一文件夹或文件,然后选择“更新状态”。

查看文件的修订版

  1. 确保已成功建立 SVN 连接。
  2. 执行以下操作之一:
    • 按以下步骤在“文件”面板中显示 SVN 文件的本地版本:从“视图”弹出菜单中,选择“本地视图”。(如果正在使用展开的“文件”面板,将自动显示“本地视图”。)然后选择要查看其修订版的文件,并选择“版本控制”>“显示修订版”。
    • 按此步骤显示 SVN 存储库文件:在“文件”面板的“视图”弹出菜单中,选择“存储库视图”;或在展开的“文件”面板中,单击“存储库文件”按钮。然后右键单击 (Windows) 或按住 Control 键单击 (Macintosh) 要查看其修订版的文件,并选择“显示修订版”。
  3. 在“修订历史记录”对话框中,选择所需一个或多个修订版,然后执行以下操作之一:
    • 单击“与本地文件比较”,比较文件的所选修订版和本地版本。 注: 对比文件前,必须安装第三方文件对比工具。有关文件比较工具的详细信息,请使用 Web 搜索引擎(如 Google 搜索)搜索“文件比较”或“diff”工具。Dreamweaver 可与大多数第三方工具配合使用。
    • 单击“比较”,比较所选的两个修订版。按住 Control 键单击,同时选择两个修订版。
    • 单击“查看”,查看所选修订版。此动作不会覆盖该文件的当前本地副本。您可以像保存任何其它文件一样,将所选修订版保存到硬盘。
    • 单击“提升”,使所选修订版成为存储库中的最新版本。

锁定和解锁文件

通过锁定 SVN 存储库中的文件,可以让其他用户知道您正在处理该文件。其他用户仍可在本地编辑文件,但必须等到您解锁该文件后,才可提交该文件。在存储库中锁定文件时,该文件上将显示一个开锁图标。其他用户会看到完全锁定的图标。
  1. 确保已成功建立 SVN 连接。
  2. 执行以下操作之一:
    • 按此步骤显示 SVN 存储库文件:在“文件”面板的“视图”弹出菜单中,选择“存储库视图”;或在展开的“文件”面板中,单击“存储库文件”按钮。然后右键单击 (Windows) 或按住 Control 键单击 (Macintosh) 所需文件,并选择“锁定”或“解锁”。
    • 按以下步骤在“文件”面板中显示 SVN 文件的本地版本:从“视图”弹出菜单中,选择“本地视图”。(如果正在使用展开的“文件”面板,将自动显示“本地视图”。)然后选择所需文件,并选择“锁定”或“解锁”。

向存储库添加新文件

在“文件”面板中,文件上的蓝色加号表示 SVN 存储库中尚没有此文件。
  1. 确保已成功建立 SVN 连接。
  2. 在“文件”面板中,选择要添加到存储库的文件,然后单击“存回”按钮。
  3. 确保选择要提交的文件已位于“提交”对话框中,然后单击“确定”。

解析冲突的文件

如果您的文件与服务器上其它文件冲突,您可以编辑您的文件,然后将其标记为已解析。例如,如果您尝试存回的文件与其他用户的更改有冲突,SVN 将不允许您提交文件。此时,您可以从存储库中获取该文件的最新版本,手动更改工作副本,然后将您的文件标记为已解析,这样就可以提交了。
  1. 确保已成功建立 SVN 连接。
  2. 按以下步骤在“文件”面板中显示 SVN 文件的本地版本:从“视图”弹出菜单中,选择“本地视图”。(如果正在使用展开的“文件”面板,将自动显示“本地视图”。)
  3. 右键单击 (Windows) 或按住 Control 键单击 (Macintosh) 要解析的文件,然后选择“版本控制”>“标记为已解析”。

脱机

您可能已发现,在其它文件传输活动期间,利用脱机来避免访问存储库非常有用。您一调用要求连接的活动(“获取最新版本”、“提交”等),Dreamweaver 就将重新连接到 SVN 存储库。
  1. 确保已成功建立 SVN 连接。
  2. 按以下步骤在“文件”面板中显示 SVN 文件的本地版本:从“视图”弹出菜单中,选择“本地视图”。(如果正在使用展开的“文件”面板,将自动显示“本地视图”。)
  3. 右键单击 (Windows) 或按住 Control 键单击 (Macintosh)“文件”面板中的任一文件或文件夹,然后选择“版本控制”>“脱机”。

清理本地 SVN 站点

此命令允许您删除文件上的锁定,因而能够继续未完成的操作。在收到“工作副本已锁定”的错误信息时,应使用此命令来删除旧有锁定。
  1. 确保已成功建立 SVN 连接。
  2. 按以下步骤在“文件”面板中显示 SVN 文件的本地版本:从“视图”弹出菜单中,选择“本地视图”。(如果正在使用展开的“文件”面板,将自动显示“本地视图”。)
  3. 右键单击 (Windows) 或按住 Control 键单击 (Macintosh) 要清理的文件,然后选择“版本控制”>“清理”。

关于移动 Subversion 控制站点中的文件和文件夹

对于 Subversion 控制站点中的文件或文件夹,当您移动它们的本地版本时,可能会给正在向 SVN 存储库同步的其他用户带来问题。例如,如果您在本地移动了某个文件,且有数小时未将其提交到存储库,则另一个用户可能尝试从该文件的旧位置获取其最新版本。因此,在本地移动文件后,始终应立即将其提交回 SVN 服务器。

文件和文件夹会保留在 SVN 服务器上,除非您手动删除。所以,即使您将文件移动到其它本地文件夹并提交该文件,其旧版本仍保留服务器上的原先位置。为避免冲突,在移动文件和文件夹后,请删除它们的旧副本。

在本地移动文件并将其提交回 SVN 服务器时,该文件的版本历史记录将丢失。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织