无法将 Visual Studio 项目中的多个文件提交到 subversion

2024-05-07

几周以来,我在使用 Subversion 时遇到了一些问题。当我尝试从 Visual Studio 2017 项目提交文件时,有些文件无法提交到我的 Visual SVN 服务器。准确地说,项目文件夹中的所有文件,如 *.cs、*.config、*.csproj、*.resx、...

我的设置:
客户端:Windows 10 上的 TortoiseSVN 1.9.7
服务器:Windows Server 2012r2 上运行的 IIS-ReverseProxy 后面的 VisualSVN

当我尝试提交例如 *.cs 文件时出现的错误:

Commit
D:\Test\branches\ScaraControl\ScaraControl\Form1.cs
D:\Test\branches\ScaraControl\ScaraControl\Form1.cs
Commit failed (details follow):
File 'D:\Test\branches\ScaraControl\ScaraControl\Form1.cs' is out of date
'/svn/Test/!svn/txr/5-9/branches/ScaraControl/ScaraControl/Form1.cs' path not found
You have to update your working copy first.

更新工作副本已成功完成,但未解决问题。

您可以在下图中看到我的项目。为了进行测试,我创建了一个全新的空存储库。正如您所看到的,.vs、bin 和 obj 文件夹及其内部的所有文件都将被忽略,所有其他文件夹都将提交到服务器(不包含其中的文件)。在第二张图片中,您可以看到我可以提交 *.sln 文件,但项目文件夹中没有其他文件。

为了进行测试,我创建了一个空文本文件并将其重命名为 text.cs。即使这个空文件也无法提交到服务器,并出现相同的错误消息。

由于所有客户端都会发生这种情况,我猜这更有可能是服务器端的问题,但我不知道是什么可能导致此错误。不幸的是,VisualSVN 服务器没有错误日志记录,或者至少没有我正在使用的免费版本。

如果我能得到任何解决这个恼人问题的提示,我将非常感激。

Edit1:问题是由 IIS 反向代理引起的

通过端口 8443 直接连接到 VisualSVN 服务器(绕过反向代理)后,一切都恢复正常。所以肯定是URL Rewrite模块的配置有问题。老实说,我花了很长时间才让它正常工作,因为我对所有设置的了解非常有限。

这是我的 Web.config,其中包含 URL 重写模块的设置。也许有些东西没有按应有的方式配置。如果您需要更多信息,请询问。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <outboundRules>
                <rule name="ReverseProxyOutboundRule1" preCondition="ResponseIsHtml1" enabled="true">
                    <match filterByTags="A, Form, Img" pattern="^http(s)?://svn.example.org:8443/(.*)" />
                    <action type="Rewrite" value="http{R:1}://svn.example.org/{R:2}" />
                </rule>
                <preConditions>
                    <preCondition name="ResponseIsHtml1">
                        <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
                    </preCondition>
                </preConditions>
            </outboundRules>
            <rules>
                <rule name="ReverseProxyInboundRule1" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{CACHE_URL}" pattern="^(https?)://" />
                    </conditions>
                    <action type="Rewrite" url="{C:1}://svn.example.org:8443/{R:1}" />
                </rule>
            </rules>
        </rewrite>
        <security>
            <authorization>
                <remove users="*" roles="" verbs="" />
                <add accessType="Allow" users="" roles="Users" />
                <add accessType="Allow" users="*" />
                <add accessType="Allow" users="?" />
            </authorization>
        </security>
        <urlCompression doStaticCompression="false" doDynamicCompression="false" />
        <httpRedirect enabled="false" destination="https://svn.example.org" exactDestination="true" childOnly="true" />
        <directoryBrowse enabled="false" />
    </system.webServer>
</configuration>

我遇到过同样的问题。 失败是因为 IIS 禁止 URL 后缀,例如.cs and .config

您可以通过将其添加到 IIS 代理的 web.config 来解决此问题

<system.webServer>
  <security>
    <requestFiltering>
      <fileExtensions allowUnlisted="true" applyToWebDAV="true">
        <clear />
      </fileExtensions>
      <verbs allowUnlisted="true" applyToWebDAV="true" />
      <hiddenSegments applyToWebDAV="true">
        <clear />
      </hiddenSegments>
    </requestFiltering>
  </security>
</system.webServer>

归功于这篇文章IIS7 和 ARR 作为 Subversion 的反向代理 https://stackoverflow.com/questions/1483531/iis7-and-arr-as-reverse-proxy-for-subversion

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法将 Visual Studio 项目中的多个文件提交到 subversion 的相关文章

随机推荐

  • 预注册 ATL 窗口类

    我在一个项目中使用了 ATL 和 WTL 的组合 并从中派生了我自己的类CWindowImpl 看起来像这样 class CMyControl public CWindowImpl
  • 浮点型、双精度型和十进制最大值与大小的关系[重复]

    这个问题在这里已经有答案了 我在 C 中遇到了这些数据类型的大小和最大值的令人困惑的模式 在使用 Marshal SizeOf 比较这些大小时 我发现了以下结果 Float 4 bytes Double 8 bytes Decimal 16
  • Symfony2 -> Twig -> 表单 -> 字段 -> 设置渲染 = true

    我有一个简单的问题 我有一个带有字段的表单 例如 builder gt add x gt add y gt add z 在我的树枝文件中 我使用了多个块 并且我想停止渲染字段 我查看了 b html twig 文件 a html twig
  • LibGDX dispose() 方法应该如何使用?

    我很不清楚如何dispose LibGDX 框架中的方法有效并且应该使用 据我所知 当你不需要某种资源后 你必须进行处置以确保你的程序运行最佳 我正在开发一个移动应用程序 并且我有一个AssetManager在启动时在特殊指定的加载屏幕中加
  • 消息:Hive 架构版本 1.2.0 与 Metastore 的架构版本 2.1.0 不匹配 Metastore 未升级或损坏

    环境 spark2 11 hive2 2 hadoop2 8 2 hive shell 运行成功 并且没有错误或警告 但是当运行application sh时 启动失败 usr local spark bin spark submit cl
  • Android 中如何获取帧

    实际上 我需要从视频中获取所有帧 但在使用 Mediametadataretriever 缩略图 时间戳获取帧时 我经常重复获取第一帧 然后获取特定时间帧 我通过更改所有 GetFrameAtTime options 尝试了很多修复 但仍然
  • 如何避免javascript中for循环内的for循环

    我已经编写了一段运行良好的代码 我想要一个新数组 其中包含 myArr 中的元素 按照 orderArr 中指定的顺序 但是 它在另一个 for 循环中使用 for 循环来匹配数组元素 var myArr a b c d e var ord
  • 从所有通讯组中删除所有前雇员

    因此 今天我被分配的任务是从所有 DL 中删除域中的所有前员工 他们在 AD 中拥有自己的文件夹 有没有什么方法可以快速做到这一点 或者至少比单独检查每个并转到 gt 的成员删除所有更快 Thanks 编辑以添加更多信息 有 822 个用户
  • API 错误 (500):清单未知:清单未知

    it failes to pull the image with SHA256 digest identifier 不幸的是 这是 DockerHub 消除 Docker 1 9 守护进程的向后兼容性的副作用 当使用 Docker 1 10
  • PHP 命名空间和 use 即使我已经使用 use 指定了类,也找不到致命错误类

    我在 PHP 中的名称空间方面遇到了麻烦 例如我有一个这样的文件 namespace App Models Abstracts abstract class Country 然后是另一个像这样的文件 namespace App Models
  • 是否可以使用 Kafka Streams 访问消息头?

    随着添加Headers http apache spinellicreations com kafka 0 11 0 0 javadoc org apache kafka common header Header html到记录 生产者记录
  • 如何使用户输入与变量相关?

    我不知道如何准确地表达这个问题 但这就是我想要实现的目标 我正在使用堆栈实现河内塔插图 这是里面的main 功能 System out println Type the source pole number and the destinat
  • 在Python中为什么ifrank:比ifrank!= 0更快:

    当我改变的时候 for i in range 0 100 rank ranks i if rank 0 pass to for i in range 0 100 rank ranks i if rank pass 我发现第二个代码效率更高
  • 使用 qTip2 确认工具提示对话框?

    因此 当用户单击删除按钮时 我尝试创建一个小型确认对话框 内联 工具提示 我想象它看起来有点像这样 但带有小文本和 确定 和 取消 按钮 但我不是来问如何设计它的 我更喜欢使用 qTip2 作为该工作的插件 但如果你有更好的选择 我也会选择
  • SQL Server 2008 中 CLR 中的线程

    我有一个CLR运行在下面的进程SQL Server2008 它构建了多个表数据的缓存以保存在静态类中以供其他调用稍后使用 我的问题是 我可以通过生成线程来加载缓存中的每个数据集 表来改进加载此缓存的过程吗 我过去一直回避这一点 因为各种帖子
  • AutoCompleteTextView sqlite填充异常

    我的第一篇文章只有不到一半的文字 因此是第二篇 完整的 文章 我正在开发一个测试应用程序 使用 sqlite 填充两个 AutoCompleteTextView 我正在使用汽车制造商和模型进行测试 自动完成的 使自动完成 模型自动完成 ma
  • Android 中无网络、断线的情况如何处理?

    我有一个应用程序需要连接到 Internet 才能执行某些操作 但当没有可用的 Internet 时 它会崩溃 我读到 如果没有互联网 我需要使用 try catch 括号 我尝试使用它 正如您在 AsyncTask 中看到的那样 但它不起
  • 使用 Task.Run() 写入控制台失败

    我的一位同事发现我们的代码存在问题 花了一段时间才弄清楚究竟发生了什么 但可以通过这个简单的示例来最好地证明这一点 Fails class Program static void Main string args Task Run gt C
  • Android 2.x 天城文 unicode 问题

    我正在尝试使用以下代码支持 android 2 x 的梵文字体 即使 android 2 x 无法渲染梵文字体 除了 raswa 和 dirga 存在一些问题之外 代码工作正常 是否有可能在 android 2 x 中获得正确的梵文表示形式
  • 无法将 Visual Studio 项目中的多个文件提交到 subversion

    几周以来 我在使用 Subversion 时遇到了一些问题 当我尝试从 Visual Studio 2017 项目提交文件时 有些文件无法提交到我的 Visual SVN 服务器 准确地说 项目文件夹中的所有文件 如 cs config c