测试 svn REPO 更改是否反映在工作副本中

测试 svn REPO 更改是否反映在工作副本中

要求

将对 REPO 目录进行更改,并且这应该更新为 wc(工作副本),而不是正常的 WC > REPO 方式。

场景:

我的 svn 仓库- /var/www/svn/drupal

我的 checkout-dir/working-copy- /var/www/html/drupalsite

所以我做了:

  1. 编辑提交后钩子以包含:“/usr/bin/svn update /var/www/html/drupalsite”

  2. 我不会对 svn WC 进行任何更改。我将对 svn REPO- /var/www/svn/drupal 进行更改。

  3. 对 svn repo 进行更改后,运行“svn commit /var/www/html/drupalsite”。这将触发提交后挂钩。这反过来将运行“svn update /var/www/svn/drupal”,因此我的 WC 将使用 REPO 的更改进行更新。

询问

a. 上述步骤 1-3 是否有助于实现我的“要求”?

b. 我需要建议如何测试上述设置是否成功运行。我不知道步骤 1-3 是否成功,也不知道为什么存在查询 (a)。这对我来说有点令人担忧。

注意:我是 Subversion 的新手。到目前为止,我所做的任何配置都是通过阅读在线文章完成的。提出问题 (b) 的原因是我不从事开发。它似乎是一个 php drupal 网站,我恰好正在设置它。所以我不知道如何在 REPO 中进行“正确”更改,以便它反映在 WC 中。如果反映出来,我的配置是正确的,团队可以开始开发。我手动将一个随机文件/文件夹放入 REPO 目录中以查看 WC 中的变化,并运行步骤 1-3,但无济于事,后来我了解到这不是更改 REPO 的方法。

请提供意见。谢谢

答案1

  1. 您不能直接在存储库中进行更改 - 它是数据库,而不是“真实树的镜像”
  2. 你不能执行“奇怪的”、错误的命令(svn commit /var/www/html/drupalsite)并等待并得到预期的结果好的命令结果

当你有固定的工作流程时,你的工作流程(“站点作为工作流,通过钩子更新来自另一个工作流的提交”)将会起作用

如何运作

  1. 在路径上创建(或拥有)SVN 存储库/var/www/svn/drupal
  2. 定义自己的工作副本(以下简称 WC-Work)的位置,您将在其中更改代码(可以是包含 Repo 和站点的同一主机,或者任何其他可从中访问 Repo 的主机)
  3. 根据 WC-Work 位置的选择,可能需要在 Repo 主机上配置并运行 SVN 服务器(远程访问时使用 svn:// 或 http://)。检测并记住存储库的 URL(以下简称 REPO-URL)
  4. 转换/var/www/html/drupalsite为存储库的工作副本(以下简称 WC-Site):svn co REPO-URL
  5. 使用 .htaccess 规则保护 WC-Site 的 .svn 目录
  6. 准备 WC-Work:svn co REPO-URL
  7. 将提交后钩子添加到 repo(你的钩子是可接受的起点
  8. 在 WC-Work 中工作-工作-工作
  9. 提交来自 WC-Work 的更改
  10. 检查站点状态

需要改进的地方

对于第 3 点:你可以将 WC-Site 的用户定义为只读用户,该用户在任何情况下都不能提交到网站

对于第 7 页:hook 只能从 WC-Work 用户发布到 WC-Site 修订版,仅一些 URL可能必须发布(不止一个,最初签出,如果它是正确的 - WC-Site 必须在更新之前重新定位),在“单点发布”策略的情况下:发布点之外的提交可以被忽略(如果只提升主干,我们对提交到分支|标签什么也做不了)

答案2

只需做一个差异 - 看看svn 差异

或者买一本笔记本。

另请参阅主干和分支 -http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.diff.html

相关内容