SVN cleanup / BeyondCompare 配置 / SVN命令详解

WinMerge
C:\Program Files\WinMerge\WinMergeU.exe -e -x -ub -dl %bname -dr %yname %base %mine

BeyondCompare 3
C:\Program Files\BeyondCompare 3\BComp.exe %base %mine
C:\Program Files (x86)\Beyond Compare 3\BComp.exe %base %mine

 

svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted
Usually, an svn cleanup fixes most issues with tortoise svn. However, I ran into an issue which caused me some grief.

The specific error I was seeing:
Previous operation has not finished; run 'cleanup' if it was interrupted

Solution: Somehow, svn is stuck on the previous operation. We need to remove this operation from it’s ‘work queue’.

The data is stored in the wc.db sqllite database in the offending folder.
1. Install sqllite (32 bit binary for windows) from here
2. sqlite .svn/wc.db “select * from work_queue”
The SELECT should show you your offending folder/file as part of the work queue. What you need to do is delete this item from the work queue.
3. sqlite .svn/wc.db “delete from work_queue*
That’s it. Now, you can run cleanup again – and it should work. Or you can proceed directly to the task you were doing before being prompted to run cleanup (adding a new file etc.)

Also, svn.exe (a command line tool) is part of the Tortoise installer – but is unchecked for some reason. Just run the installer again, choose ‘modify’ and select the ‘command line tools’.

解决方法:清空svn的队列
1.下载sqlite3.exe
2.找到你项目的.svn文件,查看是否存在wc.db
3.将sqlite3.exe放到.svn的同级目录
4.启动cmd执行sqlite3 .svn/wc.db "select * from work_queue"

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

 

提高svn的图标刷新速度

15180355_PQXX.jpg

 

svn help
svn help ci

svn list(ls) PATH
显示path目录下的所有属于版本库的文件和目录

svn checkout(co) PATH
svn checkout svn://192.168.1.1/pro/domain

svn add file
svn add test.php
svn add *.php

svn commit(ci) -m "LogMessage" [-N] [--no-unlock] PATH
svn commit -m "add test file for my test" test.php

svn lock -m "LockMessage" [--force] PATH
svn unlock PATH

svn lock -m "lock test file" test.php

svn update(up) -r m PATH
svn update -r 200 test.php(将版本库中的文件test.php还原到版本200)
svn update test.php(更新,于版本库同步。如果在提交的时候提示过期的话,是因为冲突,需要先update,修改文件,然后清除svn resolved,最后再提交commit)

B  锁破坏
D  删除
U  更新
C  冲突
G  合并
E  存在的

svn merge -r m:n PATH
将版本200与205之间的差异合并到当前文件,但是一般都会产生冲突,需要处理一下
svn merge -r 200:205 test.php

svn resolved PATH
移除工作副本的目录或文件的“冲突”状态
注意: 本子命令不会依语法来解决冲突或是移除冲突标记;它只是移除冲突的相关文件,然后让 PATH 可以再次提交

svn status(st) -v PATH
目录下的文件和子目录的状态,正常状态不显示
【?:不在svn的控制中;M:内容被修改;C:发生冲突;A:预定加入到版本库;K:被锁定】
注:svn status、svn diff和 svn revert这三条命令在没有网络的情况下也可以执行的,原因是svn在本地的.svn中保留了本地版本的原始拷贝。

'A'  新增
'D'  删除
'M'  修改
'R'  替代
'C'  冲突
'I'  忽略
'?'  未受控
'!'  丢失,一般是将受控文件直接删除导致

svn delete(del, remove, rm) PATH -m "delete test fle"
svn delete svn://192.168.1.1/pro/domain/test.php -m "delete test file"
或者直接svn delete test.php 然后再svn ci -m 'delete test file‘,推荐使用这种

svn log PATH
svn log test.php (显示这个文件的所有修改记录,及其版本号的变化)

svn info PATH
svn info test.php

svn diff PATH
将修改的文件与基础版本比较
svn diff test.php
svn diff -r m:n path(对版本m和版本n比较差异)
svn diff -r 200:201 test.php
svn di

svn mkdir
mkdir PATH...
mkdir URL...
创建版本控制的目录。
1、每一个以工作副本 PATH 指定的目录,都会创建在本地端,并且加入新增调度,以待下一次的提交。
2、每个以URL指定的目录,都会透过立即提交于仓库中创建。
在这两个情况下,所有的中间目录都必须事先存在。

svn revert PATH
恢复原始未改变的工作副本文件
注意: 本子命令不会存取网络,并且会解除冲突的状况。但是它不会恢复被删除的目录

svn switch (sw) PATH: 
更新工作副本至不同的URL
用法: 1、switch URL [PATH]
         2、switch --relocate FROM TO [PATH...]

1、更新你的工作副本,映射到一个新的URL,其行为跟“svn update”很像,也会将
     服务器上文件与本地文件合并。这是将工作副本对应到同一仓库中某个分支或者标记的
     方法。

2、改写工作副本的URL元数据,以反映单纯的URL上的改变。当仓库的根URL变动 
    (比如方案名或是主机名称变动),但是工作副本仍旧对映到同一仓库的同一目录时使用
    这个命令更新工作副本与仓库的对应关系。

 

转载于:https://my.oschina.net/robslove/blog/267342

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值