SVN使用FAQ

SVN使用FAQ

2023年6月30日发(作者:)

目录

1、Revert changes from this revision 跟Revert to this revision的区别 ........................................ 1

2、SVN的合并方法 ........................................................................................................................ 2

3、svn反应变慢的原因 .................................................................................................................. 2

4、svn取消自动合并的方法: ...................................................................................................... 3

5、SVN关于忽略文件的配置 ........................................................................................................ 3

6、为什么有时候svn switch不能工作? ...................................................................................... 5

7、重定向SVN仓库地址 ............................................................................................................... 7

8、提示"object of the same name already exists" ............................................................................ 7

9、svn碰到“Cannot accept non-LF line endings in 'svn:log' property”而无法提交时 .................. 8

10、win7系统的error:Can't set file 'I:ries' read-write 拒绝访问 ........................ 8

11、svn1.7以上版本update错误database is locked, executing statement 'RELEASE s0' ........... 8

12、多人update报错:Working copy „E:****‟lock .................................................................... 9

13、svn的账号密码怎么重新输入 ................................................................................................ 9

14、sqlite:disk I/O error ................................................................................................................ 9

15、忘记svn的密码 ....................................................................................................................... 9

16、show log 出错 ........................................................................................................................ 10

17、checksum mismatch while updating ....................................................................................... 10

18、update的时候能看到更新的目录,实际上没取下来 ......................................................... 11

19、Can't open file `D:**.svnpristine**** 系统找不到指定文件 .......................................... 11

20、show log只显示no date ........................................................................................................ 11

21、Unknown hostname ................................................................................................................. 12

22、svn Replacing Actions看不到之前的历史 ............................................................................ 12

23、文件死活更新不到最新的解决方案 ..................................................................................... 12

24、network connection closed unexpectedly ................................................................................ 12

25、看不到log的原因.................................................................................................................. 13

26、 svn: REPORT of '/kisengine/!svn/vcc/default': Could not read response body: ................... 13

27、cleanup failed to proccess the following paths: ...................................................................... 13

1、Revert changes from this revision 跟Revert to this revision的区别

譬如有个文件,有十个版本,假定版本号是1,2,3,4,5,6,7,8,9,10。

Revert to this revision: 如果是在版本6这里点击“Revert to this revision”,表示7~10的修改全部作废,历史倒退到了版本6那个年代。 Revert changes from this revision:如果是在版本6这里点击“Revert changes from this revision”,表示版本6这个历史事件被抹杀了,只剩下除版本6外的9个历史事件了。

如果俺是同时选择了6,7,8三个历史时期并点击“Revert changes from this revision”,表示抹杀6~8这仨历史时期。

同理,如果同时选择7~10,然后点击“Revert changes from this revision”,则效果跟在版本6这里点击“Revert to this revision”是一样的。

2、SVN的合并方法

一、首先要保证源位置文件为库中最新版本,所以更新trunk目录;

二、更新目的位置文件,使其为库中最新版本;

三、选中目的位置文件,右键单击tortoiseSVN-->merge

1 from下的目录为源位置的目录,例如:svn://192.168.27.40/sword3-products/trunk

2 版本号选择你要合并的范围的起始版本号

3 end目录与from目录相同

4 版本号选择你要合并的范围的结束版本号

四、点击merge按钮

五、如果没有冲突的文件,直接点击commit按钮提交,如果有冲突的文件,则首先解决冲突后,点击resoved,然后再点击commit 提交。

3、svn反应变慢的原因

使用了一段SVN后,有些同事发现SVN工作速度慢,性能低,原因是svn启动了一个遍历所有目录的进程,使得svn的每一个相关操作变得很慢,现在提供一个提高性能的办法:

右键单击tortoiseSVN,选择—〉settings,选中Icon Overlays选项,

将Status cache栏中的单选框由default改为shell

Drive Types栏所有选项所有复选框均设为空

Include paths中填写svn需要监控的目录,也就是你的 产品库所在的目录(目录不同,填写就不同),记得后边要加上*,这样才能递归的监控。

点应用按钮,再点确定按钮。 示例:

4、svn取消自动合并的方法:

然后在高级里面选进去添加 tab 和 txt

5、SVN关于忽略文件的配置

基于本地工作拷贝,选中要设置属性的目录,选择快捷菜单中“TortoiseSVN->Properties”,出现属性设置对话框,选择ignore 从属性设置对话框的下拉列表框选择svn:ignore,并设置其属性值,结果如下:

格式:以列表形式组织忽略的文件/文件夹.,支持通配符及正则表达式(*多字符,?单字符) 最后, 检测效果, 对设置忽略属性值的目录进行svn status, svn add, svn import操作将自动忽略相关类型的文件或文件夹,如这里的*.bak,*.list等文件或文件夹debug.

注意点: 该属性对文件夹或多文件的操作起作用,如果你选中某个具体要忽略掉的文件或文件夹,则忽略将是失效的。 6、为什么有时候svn switch不能工作?

有时候,工作拷贝中包含了一些未被纳入版本控制的文件,这个时候svn switch就会发生错误。switch的过程就会停止,这会导致工作拷贝一半被switch,另一半却保持原样。

不幸的是,如果这个时候你采取的措施不正确的话,那么你的工作拷贝将会不能使用。有时候,svn会提示用户执行清理(svn cleanup)。但清理命令又有可能造成错误。参考:[issue

#2505]。

用户可以手动的删除那些造成问题的文件或目录,然后再执行清理命令,接着继续swich,这样便可以恢复。

注意,对从版本库中检出的原始副本进行switch通常不会发生错误。如果你正在开发过程中需要使用到svn switch命令,那么有3种方式可以使用:

在进行路径切换之前,完整地清理一下你的工作拷贝中的未被纳入版本控制的文件(包括那些被忽略的文件) 警告!这会删除所有未被版本控制的目录或文件,一定要确定你即将删除的文件是你已经不再需要了的。

# Check and delete svn unversioned files:

svn status --no-ignore | grep '^[I?]' | sed 's/^[I?]//'

svn status --no-ignore | grep '^[I?]' | sed 's/^[I?]//' | xargs rm -rf

保持最原始的干净的检出,更新到最新版本,然后复制到你原先希望switch到某个分支的工作拷贝上。 这个方法比较危险 :不需要预先进行清理,直接在分支之间进行switch,但如果你遇到一个switch错误,你要知道你必须对这次switch进行适当的修复。删除错误提示中提到的未被版本控制的文件及目录,如果需要的话,使用svn cleanup,然后再继续进行切换工作,除非你删除了所有的未被版本控制的文件,否则你会重复好几次刚才遇到的错误。

在 issue 2505 中有更详细的例子。这个问题的产生是因为svn客户端为了保险起见,不会直接删除所有未被版本控制的文件。 下面还有两个更具体的例子描述了类似的问题。还有其他的svn switch错误在这里没有提及,你只有在从一个干净检出的工作拷贝中执行swich才能避免。

如果分支中的任何目录被移动或者改名,那么任何没有被版本控制的东西都会造成错误。在这种情况下,你会看到如下的错误:

wc/$ svn switch $SVNROOT/$project/branches/$ticket-xxx

svn: Won't delete locally modified directory '

'

svn: Left locally modified or unversioned files

删除所有未被版本控制的文件,然后继续切换过程,这样可以恢复。

如果一个临时的编译文件(刚编译完)被加入版本库或者从版本库中删除了,那么从包含这个未被版本控制文件的版本库中检出就会失败你会看到和下面一摸一样的错误。

wc/$ svn switch $SVNROOT/$project/branches/$ticket-xxx

svn: Won't delete locally modified directory '

'

svn: Left locally modified or unversioned files

在这种情况下,删除未被版本控制的文件并不能恢复,执行cleanup的时候会出错,但是svn

switch会提示你去执行svn cleanup。

wc/$ svn switch $SVNROOT/$project/branches/$ticket-xxx

svn: Directory '

/.svn' containing working copy admin area is missing

wc/$ svn cleanup

svn: '

' is not a working copy directory

wc/$ svn switch $SVNROOT/$project/branches/$ticket-xxx

svn: Working copy '.' locked

svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

删除目录(还有其他所有未被版本控制的文件,这样可以避免转换命令不会再重复出现类似的错误。然后继续转换的过程,这样可以恢复。

TortoiseSVN的cleanup错误有一点不同,你可能会遇到下面的错误:

Subversion reported an error while doing a cleanup!

/ is not a working copy directory

在这里讲到的每一个例子中,svn switch命令会失败,使到你的工作拷贝变成只有一半发生转换成功的,svn status会显示出所有发生转换的文件,用S标记出来(在根目录看到的情况可能有所不同),用!标记出发生问题的目录,~标记出出错的问题文件(可能还有L用来标记锁定的文件),就像下面列举的一样:

wc/$ svn status

! .

!

S ~

/

7、重定向SVN仓库地址

将本地的SVN工作目录转移至新的地址,可以使用TSVN自带的 Relocate 功能。

使用说明请参见TortoiseSVN的帮助。图例:

8、提示"object of the same name

exists"

SVN update時出現object of the same name already exists錯誤訊息

already

"Error: Failed to add directory 'C:Documents and SettingsAdministrator111hooks': object of

the same name already exists ":'(

那是因为版本库里已经有一个和你本地一样的文件或目录,可能是你同一项目组的其他成员加入的, 你可以把你本地的那个文件移到其它目录再update

9、svn碰到“Cannot accept non-LF line

endings in 'svn:log' property”而无法提交时

我使用svn一直很顺利,今天在改了两个地方之后,提交时输入了两句话(只有两行)做为注释,但是确定提交时失败,说“Cannot accept non-LF line endings in 'svn:log' property”

我晕,以前都是很正常的,没有碰到过这种情况,好像注释多少没有什么关系的

把第二行的结尾处增加了一个回车,这样有三行,第三行是空的,但提交还是一样的错误,

然后只好上网上查了一下,很多是英文的,找了三篇文章,其中一篇中文的解决了:每一行以空格结尾

我删除第三个空行,在前两行的后面都增加了一个空格,然后就提交成功了

这篇文章上还有人说需要以标点符号做为结尾,但我试了,以“.”结尾还是无法提交

终于发现,很“牛”的软件,也有这么傻瓜式的bug存在

本文来自CSDN博客,转载请标明出处:

/jszj/archive/2009/05/25/

10、win7系统的error:Can't set file

'I:ries' read-write 拒绝访问

点击.svn目录,右键-属性-安全,看下对登陆用户的权限设置,设置成完全控制

11、svn1.7以上版本update错误database is

locked, executing statement 'RELEASE s0'

执行svn cleanup,再次update 12、多人update报错:Working copy

„E:****‟lock

报错原因不详,下次出现可试下重启svn服务器

13、svn的账号密码怎么重新输入

右键->TortoiseSVN->settings,选择Saved Data,点击Authentication data的clear就OK了

14、sqlite:disk I/O error

试下把本地的杀毒软件关掉,如毒霸等

15、忘记svn的密码

进入以下页面,点击忘记密码按钮

/submin/login/

16、show log 出错

报错图示:

解决方法:

17、checksum mismatch while updating

解决办法:对出错目录NpcRelive用update to reversion 然后在Update Depth这里,选only this

item,点ok按钮更新,然后再选Fully recursive再更新一遍,如果本地有修改,注意备份。

18、update的时候能看到更新的目录,实际上没取下来

解决办法同上:对出错目录用update to reversion 然后选only this item 置空一次,然后再选Fully recursive取新的,如果本地有修改,注意备份。

19、Can't open file `D:**.svnpristine****

系统找不到指定文件

出错图

方法:知道报错报在哪个文件,重新找个地方checkout下来,接着把里面的pristine下面的文件全部拷贝到自己的目录里

20、show log只显示no date

在SVN中选中一个目录show log时,出现了某些版本只显示版本号和(no date),没有其他信息 原因是其他人修改了你所没有权限访问的某个目录下的文件(可能发生在权限变更时,原来有权限,变更为没有,只能看到那个目录以前的log,权限变更后的log看不到,显示no date) 21、Unknown hostname

svn报错:Unknown hostname ''

检查计算机是否入域,如果入域了,再查看IP和DNS的设置是否是自动获取,有时候会被软件篡改成其他地址

22、svn Replacing Actions看不到之前的历史

症状:svn对文件show log的时候有Replacing的标识,之前的历史无法查询,该情形是下面的操作引起的 用TSVN客户端删除一个文件, 然后再新建一个同名文件, 可以看到该文件上的图标被打上了TSVN的小红叉. 然后Add, Commit, 就会出现一条replace记录. replace的操作会有个提示, 就是Add(as replacement)...命令项与普通的Add不同. 意思应该是该文件被替换了. 邪恶之处是以前的更改日志显示不出来了. 用revision graph可以看到所有历史,

只是在replace处是断裂的. 也就是说替换的效果是重新开启一个文件的更改记录, 隐藏之前的记录.

解决方法:1、可以在目录级别show log,然后根据文件名筛选 2、把文件delete然后commit,在show log里选择replacing之前的版本revert to this revision,然后提交,这个缺点是replacing之后修改的版本历史就看不到了,当然,在上级目录show log还是可以看的

23、文件死活更新不到最新的解决方案

尝试以下2种操作:

不要在目录里边更新,到上级目录,选中需要更新的目录,然后update to revision选fully

recursive

对出错目录用update to reversion 然后选only this item 置空一次,然后再选Fully recursive取新的,如果本地有修改,注意备份。

24、network connection closed unexpectedly

看下底层权限或者提交单的权限有没有开 25、看不到log的原因

对于限制了必须写log才能提交的svn库,log显示为空,是因为该次提交了你没有权限的目录

26、

svn: REPORT of

'/kisengine/!svn/vcc/default': Could not read

response body:

删除C:Users用户名AppDataRoamingSubversionauth下的文件。删除svn登录信息即可。

27、cleanup failed to proccess the following

paths:

解决方法:清空svn的队列

1.下载,地址:192.168.1.8Software数据库

2.找到你项目的.svn文件,查看是否存在

3.将放到.svn的同级目录

4.启动cmd执行sqlite3 "select * from work_queue"

5.看到很多记录,下一步执行sqlite3 "delete from work_queue"

了,现在在到项目里面,执行cleanup,完全没问题了,图标状态也已经恢复了。

参考:/luojian520025/article/details/22196865

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688077562a76907.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信