Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn 颠覆,更名,什么?_Svn_Tortoisesvn_Rename_File Rename - Fatal编程技术网

Svn 颠覆,更名,什么?

Svn 颠覆,更名,什么?,svn,tortoisesvn,rename,file-rename,Svn,Tortoisesvn,Rename,File Rename,所以我有一个有趣的问题。 Subversion,如果唯一的区别是大写,则不允许重命名具有相同名称的项。Netbeans有subversion。Netbeans允许您在大小写更改时重命名文件 我在subversion中将一个名为eventCreator.php的东西重命名为eventCreator.php并上传(它是一个类)。Netbeans中的一切都很顺利。事实上,我又做了10次承诺。我试图在另一台计算机上下载它,这就是发生的错误 “无法打开文件C:\xampp\htdocs\MyProject

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

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

我在subversion中将一个名为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下载它。
有任何帮助吗?

删除不必要的文件

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

或者您甚至可以打开
repo浏览器
(从subversion上下文菜单)并删除其中的文件,而无需使用枯燥的控制台命令;-)

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

为了解决这个问题,虫族的答案是正确的。使用repo浏览器或直接与服务器上的存储库配合使用的工具(如果需要,可以使用命令行)删除不需要的文件的格式副本

为了防止这种情况再次发生,请在预提交钩子脚本中使用Subversion项目中的。当提交添加文件时,它将进行检查,以查看存储库中是否已经存在具有不同大小写的文件。如果有,它将允许您拒绝提交,直到它得到解决


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

Subversion 1.7现在似乎可以在Windows上处理。

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

问题不是Subversion,而是Windows(不,Mac也有同样的问题,所以不要在这一点上感觉优越——fanboy)

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

  • myfile.txt
  • MYfile.TXT
  • MYFILE.TXT
  • MyFiLe.TxT
不幸的是,Unix(Mac除外)既保留大小写,又很重要。对于Unix,所有这些文件都是不同的文件

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

  • 使用Linux计算机进行签出、修复问题并将其签入
  • 使用
    svn删除http://....
    URL语法删除一个恶意副本,因此只有一个文件具有该名称

ment commits not updates显示“10次以上提交/更新”的行您的意思是subversion区分大小写。@JeremyP:不,subversion在文件名和目录名方面不区分大小写。就像Windows一样,它不在乎是否有20个文件具有相同的名称,只要它们没有一个具有相同的大小写。这是错误的。在subversion中,
foo.c
foo.c
指的是两个不同的对象。这被称为区分大小写。i、 e.含义对具体情况敏感。在Windows NTFS文件系统中,
foo.c
foo.c
引用相同的对象。这被称为不区分大小写。@JeremyP:我被纠正了。你是对的:而且。我已经编辑了我的答案,以符合你的评论。我投了更高的票,因为除了那个问题,这是一个好的答案。1.7已经过时了?哇!我希望netbeans至少可以更新到1.6