遇到这样的问题:需要把svn中一个文件名的某个(某些)字母大小写(如把Abc.sh改为abc.sh)修改一下。第一反应是这样一系列 *** 作:
但是,在第2步失败了。嗯?怎么会呢,然后svn st一下,结果:
很奇怪,既然原来文件已经提示我missing(!表示)了,那为啥不给我从svn库中restore呢?反复svn up,仍无效果。这跟我的认知不一样啊!!(之前,如果删除了文件或文件夹,svn up一下,立马restore回来)。难道rename和delete还不一样对待?
反复尝试、思量半天,终于得到解决:似乎svn是大小写不敏感的,虽svn st中提示?和!,但试图从库中取文件下来高困时,发现有一个 同名 文件,就不取了。所纯袭以,戚裤念我把abc.sh删除,或改为其它名字(忽略大小写不重名),再svn up一下,取到!
所以,上面问题的正确做法应该是下面这样吧?
但是,但是,这仍然没能解决问题!!! svn提示:
其实还是svn不区分大小写的原因。归根结底,还是得先从库中删除,再添加。正确做法:
或者先保存一份文件 (以免误删了劳动成果)
svn服务器架设在linux系统上,svn客户端在windows上,在update的时候可能会出现“Can'topen
file.
XXXX/tmp/text-base/XX.svn-base
系统找不到指定的文件”的错误。
这是由于Linux服务器上的目标文件中存在两个相同文件名的文件。因为linux系统的文件名区分大小写,windows系统不区分文件名的大小写,例如readme.txt和ReadMe.txt在戚州兄linux系统上是两个不同的文件,但是在windows下将是同一个文件,当从linux服务器更新到windows上时,就会出现上述问题。
解决办法:
代码如下
TortoiseSVN
-->
Repo-Browser
在d出的窗口中,选择其中重名的文件之一,右键,delete,Ok
.
Commit!
重新update一下。
有朋友说可以这样处理,但没测试过
解决方案
A)(推荐)
高袭 1.
提交你工作副本中的改变到版本库
2.
使用版本库的浏览器立即重命名该文件的大写(小写)为小写(大写)
3.
更新你的工作副本
解决方案
B)
1.
使用TortoiseSVN子菜单中的重命名命令将UPPERcase重命名为UPPERcase_
格式
2.
提交迹拆该更改
3.
将UPPERcase_重命名为upperCASE格式
4.
提交该更改
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)