由于大约一到两周我收到此错误消息,而且我不知道如何解决此问题。
提交失败(详情如下):
无法创建原始安装流
系统找不到指定的路径。
我既不知道Pristine Install Stream是什么,也不知道该消息是否包含有关未找到路径的提示。
我尝试过cleanup
,但仍然会出现同样的错误。
我googled,但在撰写本文时,只有9个结果可用,其中一些提交了SVN更改的历史记录,其他一些未提问题。
答案 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