【问题标题】:SVN keeps skipping the repo directory when I commit当我提交时,SVN 不断跳过 repo 目录
【发布时间】:2013-11-19 02:15:44
【问题描述】:

所以我完成了所有步骤来制作一个 svn repo。

1) 我通过调用创建了 repo

 svnadmin create /path/to/repo

2) 我在我的仓库中添加了包含我想要的文件的文件夹

svn import /path/to/folder

3) 我还创建了一个 post commit 钩子,在该文件夹上调用 svn update

4) 然后在我的远程系统上,我可以毫无问题地检查它。现在的问题是,当我提交并检查日志时,我看到了这一行

Skipped '/path/to/folder'

基本上它会一直跳过文件夹并且不会应用我提交给它的更改。我检查了该文件夹,发现其中没有 .svn 文件夹,我怀疑其中的存储库通常有这个问题......或者不是。

有人知道可能是什么问题吗?我希望该文件夹在我提交时更新文件

【问题讨论】:

  • 如果没有 .svn 目录,svn 命令将无法对其进行任何操作。你的 svn co 应该给你一个 .svn: 你能发布 svn co 的结果,然后是一个 find 。 -name '.svn'
  • 好吧,我想我的主要问题是当我调用 svn update 时,实际上正在更新哪个目录?也许我对 svn 的工作原理有点困惑。从我的想法来看,我在第 2 步中添加的原始目录会在我提交时更新,但情况似乎并非如此
  • 是的,这听起来很可疑:“我还做了一个提交后挂钩,在那个文件夹上调用 svn update”。提交后挂钩用于提交成功后在 svn 服务器上的操作。 svn update 用于已签出的目录,以将其他人的更改与该目录中的文件同步:svn update 不用于 svn 服务器。典型的工作流程是: (0) svn co; (1) 做一些工作; (2)svn更新; (3) 合并任何冲突; (4) svn ci; (5) goto 1. 在服务器端,没有什么要“更新”的:它总是有最新的提交。
  • 是的,但就是这样。在网络服务器上,我添加到 repo 的文件夹没有。我做了一个似乎成功的提交,但更改没有反映在文件夹中。可能是权限问题吗?
  • 我想我遗漏了一些细节。实际的存储库具有目录 conf、db、hook 等。它编码而不是镜像内容的结构——因此,我不希望实际的存储库具有 .svn 目录。我将能够更好地使用 svn co 使用实际存储库和本地副本的实际命令和实际当前 ls 进行诊断。

标签: svn repository ubuntu-12.04 svncommit


【解决方案1】:

感谢主教和我朋友的帮助,我弄清楚了问题所在。正如主教所说的“它编码而不是镜像内容的结构”,这是我没有意识到的。我认为它直接改变了导入到其中的任何目录

所以基本上我所做的是

  1. 然后执行步骤 1-3(设置目录并将其添加到存储库)
  2. 删除已导入 repo 的现有文件夹并在同一位置结帐

基本上 [2] 允许我在服务器上拥有一个远程工作副本(带有预期的 .svn 文件夹)。

这样,每当我提交本地副本时,提交后挂钩都会按预期更新远程工作副本(在服务器上)。

【讨论】:

  • 是的,删除您导入的内容,然后进行干净的结帐。这就是SVN的方式!
  • 您本可以使用in-place import 并避免第 2 步。
猜你喜欢
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多