如何修复"无法创建原始安装流"

时间:2016-03-12 20:23:54

标签: svn

由于大约一到两周我收到此错误消息,而且我不知道如何解决此问题。

  

提交失败(详情如下):

     

无法创建原始安装流

     

系统找不到指定的路径。

SVN screenshot

我既不知道Pristine Install Stream是什么,也不知道该消息是否包含有关未找到路径的提示。

我尝试过cleanup,但仍然会出现同样的错误。

googled,但在撰写本文时,只有9个结果可用,其中一些提交了SVN更改的历史记录,其他一些未提问题。

3 个答案:

答案 0 :(得分:77)

我用Process Monitor挖了它,我发现了一条线(下面每行一列)

21:06:17,6337584    
TortoiseProc.exe    
14144   
CreateFile  
[...]\.svn\tmp\svn-4F235F40 
PATH NOT FOUND  
Desired Access: Generic Write, Read Attributes, Delete, 
Disposition: Create, 
Options: Synchronous IO Non-Alert, Non-Directory File, 
Attributes: N, 
ShareMode: None, 
AllocationSize: 0

查看我的硬盘,我看到tmp文件夹中没有.svn文件夹。

手动创建tmp文件夹解决了问题。

答案 1 :(得分:4)

在我的系统上,tmp文件夹位于.svn目录中。所以我在.svn目录中输入了'rm -rf tmp'。然后,.svn目录中的'mkdir tmp',它解决了我的问题。

答案 2 :(得分:0)

使用以下 PowerShell 脚本在给定的 ...\.svn\tmp 中递归创建缺失的 $path 目录。如果您的目录未隐藏(通常是隐藏的),请移除 -Hidden 标志。

function CreateTmpDirInSvnRepos($path) 
{ 
Get-ChildItem -Path $path -Recurse -Directory -Hidden | 
  Where-Object { $_.BaseName -match '.svn' } | 
    ForEach-Object { Join-Path -Path $_.FullName -ChildPath 'tmp' } |
      ForEach-Object { if (!(Test-Path $_)) { New-Item $_ -ItemType 'Directory' } }
}

CreateTmpDirInSvnRepos "C:\SVN"

我的备份程序忽略了 tmp 文件夹,这是我要说的常见行为。
从我的角度来看,SVN 可以修复它。如果该目录不存在,则创建它。
从 SVN 的角度来看,该声明将是“不要触摸我的隐藏文件”。
双方观点全面。
我认为如果 SVN 团队知道这个问题,他们会在缺少时创建 tmp 目录。我会要求他们这样做。

[编辑] 刚刚在 apache SVN 中创建了问题:https://issues.apache.org/jira/browse/SVN-4868