1、常用命令
svn info : 查看svn信息
svn ci :(svn commit)提交更新
svn co [Path]:(svn check out [Path])将XXX下载到当前目录
svn up :(svn update)更新,同步服务器内容
2、命令使用
这里记录我常用的一些命令,可能会比较搓,如有更好的替代命令或方法,欢迎告知。
1、svn st -q | xargs rm -rf
把一些本地与服务器有不同的文件删掉,然后可以重新up。
当然revert命令会更好,不过习惯这样了。
2、svn up . --username xxx --password xxxx
临时切换账户,--username和--password可以放到很多命令后面进行账户的强制使用
永久切换账户的处理,是rm -rf ~/.subversion/auth/ 。下次操作就可以重新输入账户。
3、svn co --depth immediates http://...
这样可以只下载svn地址所处目录的所有文件,包括文件夹,而不会下载子目录内容。
然后可以选择你要下载的目录,cd进去,执行svn up . --set-depth infinity即可下载该目录及子目录所有内容。
实现svn下载需要用到的文件。
此命令参考--depth ARG选项的使用
3、问题记录
No.1
问题:
Tortoise SVN Commit,出现以下提示,无法提交成功。
Commit failed (details follow):
svn: E195022: File 'xxxx' is locked in another working copy
svn: E170007: No lock on path 'xxxx'
(Status 423 on PUT Request)
svn: E175002: Server sent unexpected return value (423 Locked) in response to PUT request for 'xxxx'
解决办法:
在svn处理目录,右键选择“TortoiseSVN” –>“Get Lock”,勾选 “Steal the locks”,等待完成后,再次进行提交即可。
No.2
问题:
svn up时,出现以下提示,无法将服务器代码更新到本地。
svn: E155017: Checksum mismatch while updating 'xxxxxxfile':
expected: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
actual: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
解决办法:
文件的标识码本地与远程不一致,最省力的办法是,在文件所在目录执行:
svn up . --set-depth empty(注意这个命令会将该目录下所有文件删除,可先行备份)
svn up . --set-depth infinity(重新up下载)