5

所以我有一个有趣的问题。

Subversion,如果唯一的区别是大写,则不允许重命名具有相同名称的项目。Netbeans 有颠覆性。如果大小写更改,Netbeans 允许您重命名文件。

我在颠覆中将名为 eventCreator.php 的东西重命名为 EventCreator.php 并上传(它是一个类)。Netbeans 一切顺利。事实上,我又做了大约 10 次提交。我试图在另一台计算机上下载它,这是发生的错误
“无法打开文件
C:\xampp\htdocs\MyProject\scripts.svn\tmp\text-base\eventCreator.php.svn-base”:
该系统找不到指定的文件。”

我的存储库位于 DreamHost。所以我去了dreamhost,我可以进入脚本文件夹并在存储库中看到eventCreator.php和EventCreator.php,但我无法使用netbeans或tortoiseSVN下载它。
有什么帮助吗?

4

5 回答 5

6

删除不需要的文件

svn del http://domain/path/to/eventCreator.php

或者您甚至可以打开repo browser(从颠覆上下文菜单)并删除那里的文件,而无需使用无聊的控制台命令;-)

于 2010-12-14T05:17:17.883 回答
3

Subversion 1.7 现在似乎可以处理Windows 上的仅大小写重命名

于 2011-10-18T03:00:10.103 回答
2

Subversion 区分大小写。如果你告诉它存储 20 个不同大小写组合的文件,它会存储它。现在,当您从存储库中签出这些文件时,您所在的平台可能会警告您,拒绝签出(就像您的情况一样),或者只是覆盖用第二个文件写入的第一个文件的内容,第三,你明白了。

为了解决这个问题,zerkms 的回答是正确的。使用 repo 浏览器或直接与服务器上的存储库一起使用的某些工具(如果需要,命令行)删除您不想要的文件的再现。

为了防止这种情况再次发生,请在预提交挂钩脚本中使用 Subversion 项目中的case-insensitive.py脚本。当提交添加文件时,它将检查存储库中是否已经存在文件,但情况不同。如果有,它将允许您拒绝提交,直到它得到解决。

由于您有第三方托管您的 Subversion 存储库,因此如果您无法使用他们的管理工具,请联系他们以应用此挂钩。

于 2010-12-14T14:41:45.270 回答
1

另一种方法是简单地将项目复制(右键单击项目上的复制)到新名称。这将删除 .svn 目录的所有痕迹,您可以重新提交它。但是,您也将失去与之前在 SVN 中完成和提交的所有编辑的链接。

于 2013-08-01T13:42:01.890 回答
1

问题不在于 Subversion,而在于 Windows(不,Mac 也有同样的问题,所以不要开始在这个问题上感觉优越——粉丝。)

在 Windows 中,会保留大小写,但在文件名中并不重要。在 Windows 中,这些都是同一个文件:

  • 我的文件.txt
  • 我的文件.TXT
  • 我的文件.TXT
  • 我的文件.txt

不幸的是,Unix(Mac 除外)既保留大小写又很重要。对于 Unix,所有这些文件都是不同的文件。

当您将 Subversion 存储库存储在 Linux/Unix 主机上,但使用 Windows/Mac 客户端时,就会发生欢闹。Unix Subversion 存储库将每个大小写变体作为不同的文件进行跟踪,但您 PC 上的 subversion 客户端认为它们都是相同的。有两种解决方案:

  • 使用 Linux 计算机进行结帐、修复问题并重新签入。
  • 使用svn delete http://....URL 语法删除其中一个恶意副本,因此只有一个具有该名称的文件。
于 2014-02-05T16:32:15.730 回答