SVN常用的命令

add 2015.04.22

添加一个目录时出现以下问题

dzt@uu:~/workarea/5701_kk_t6/android_mtk_kk1_6592_mp/vendor/mediatek$ svn add 92_cwet_kk
svn:  警告: W150002: “/home/dzt/workarea/5701_kk_t6/android_mtk_kk1_6592_mp/vendor/mediatek/92_cwet_kk”已纳入版本控制
svn: E200009: 因为一些目标已经版本化,所以不能增加全部目标
svn: E200009: 此请求操作的目标非法
可以加上强制添加

svn add 92_cwet_kk --force

-------------------------------------------------------------------------

SVN是一个开源的版本控制系统,它是一种集中式的版本控制系统,工作时需要联网;而现在比较流行的Git是一种分布式的版本控制系统,关于两者的比较可以参考SVN和Git的比较

下面只是来介绍下SVN中常用的命令,我安装的版本是Ubuntu 12.04 SVN 1.7

一、如果不清楚SVN可以使用哪些命令,只要help就会列出所有的命令,但常用的命令只有几个而已

svn help — Help!
别名:?,h
描述:显示帮助信息
访问库:否。
eg:
dzt@dzt-All-Series:~/D/dzt/workarea/7301_mp/android_mtk_mp$ svn help
用法: svn <subcommand> [options] [args]
Subversion 命令行客户端,版本 1.7.18。
使用“svn help <subcommand>” 显示子命令的帮助信息。
使用“svn --version”查看程序的版本号和版本库访问模块,或者
使用“svn --version --quiet”只查看程序的版本号。

大多数的子命令可接受文件或目录参数,对目录进行递归处理。
如果没有指定参数,默认对当前目录(包含当前目录)递归处理。

可用的子命令: (下面括号中就是命令的别名、简写)
   add
   blame (praise, annotate, ann)
   cat
   changelist (cl)
   checkout (co)
   cleanup
   commit (ci)
   copy (cp)
   delete (del, remove, rm)
   diff (di)
   export
   help (?, h)
   import
   info
   list (ls)
   lock
   log
   merge
   mergeinfo
   mkdir
   move (mv, rename, ren)
   patch
   propdel (pdel, pd)
   propedit (pedit, pe)
   propget (pget, pg)
   proplist (plist, pl)
   propset (pset, ps)
   relocate
   resolve
   resolved
   revert
   status (stat, st)
   switch (sw)
   unlock
   update (up)
   upgrade

Subversion 是版本控制工具。
欲取得详细资料,请参阅 http://subversion.apache.org/

二、

svn info [TARGET[@REV]...]
别名:无
描述:显示指定WC和URL信息。
访问库:仅当访问的是库路径时。
eg:
dzt@dzt-All-Series:~/D/dzt/workarea/7301_mp/android_mtk_mp$ svn info
路径: .
工作副本根目录: /home/dzt/D/dzt/workarea/7301_mp/android_mtk_6752_mp
URL: http://192.168.110.97/svn/android_mtk_6752_mp/trunk
版本库根: http://192.168.110.97/svn/android_mtk_6752_mp
版本库 UUID: 70e49d97-b16d-481c-ab8a-a723f641743d
版本: 2146
节点种类: 目录
调度: 正常
最后修改的作者: admin
最后修改的版本: 2010
最后修改的时间: 2014-11-18 12:09:20 +0800 (二, 2014-11-18)

三、

svn status [PATH...]
别名:stat, st
描述:输出WC中文件和目录的状态。如果WC提交,这些状态就会同步到库里。
一般状态有         ' '  没有修改
'A'  新增
'D'  删除
'M'  修改
'R'  替代
'C'  冲突
'I'  忽略
'?'  未受控
'!'  丢失,一般是将受控文件直接删除导致
访问库:加上--show-updates参数时会
eg:
dzt@dzt-All-Series:~/D/dzt/workarea/7301_mp/android_mtk_mp$ svn status
!       .
M       auto_sync_android.log
M       bionic/libc/kernel/common/linux/hwmsensor.h
M       bionic/libc/kernel/common/linux/sensors_io.h
?       bionic/libc/kernel/common/linux/spi/spidev.h
?       bionic/libgn_prt
?       bionic/librsa_decrypt
?       bootable/bootloader/lk/dev/logo/fhd/fhd_amigo_charger_ov.bmp
?       bootable/bootloader/lk/dev/logo/fhd/fhd_amigo_kpoc_charge.bmp
?       bootable/bootloader/lk/dev/logo/fhd/fhd_amigo_low_battery.bmp
?       bootable/bootloader/lk/dev/logo/fhd/fhd_bat_empty_01.bmp
?       bootable/bootloader/lk/dev/logo/fhd/fhd_bat_empty_02.bmp
?       bootable/bootloader/lk/dev/logo/fhd/fhd_bat_empty_03.bmp

四、

svn update [PATH...]
别名:up
描述:更新WC,更新反馈有如下几种分类。
A  新增
B  锁破坏
D  删除
U  更新
C  冲突
G  合并
E  存在的
访问库:是
eg:
dzt@dzt-All-Series:~/D/dzt/workarea/7301_mp/android_mtk_mp/frameworks/base/core/java/android/app$ svn up
正在升级 '.':
已还原“AlarmManager.java”
版本 2271

五、

svn checkout URL[@REV]... [PATH]
别名:co
描述:检出(下载)
访问库:否
eg:
dzt@dzt-All-Series:~/D/dzt/workarea/7301_mp$ svn co http://192.168.110.110/svn/android_mtk_mp/trunk/frameworks/base/core/java/android/app app
A    app/SearchManager.java
A    app/IActivityPendingResult.aidl
A    app/IActivityController.aidl
A    app/DownloadManager.java
A    app/ApplicationThreadNative.java
A    app/LocalActivityManager.java
A    app/WallpaperInfo.java
A    app/Application.java
A    app/Instrumentation.java
A    app/SearchableInfo.java
A    app/ResourcesManager.java
A    app/ActivityOptions.java
A    app/IUserSwitchObserver.aidl
A    app/ApplicationPackageManager.java
A    app/Presentation.java
A    app/IThumbnailRetriever.aidl
A    app/ApplicationLoaders.java
A    app/UiModeManager.java
A    app/Notification.aidl
A    app/LauncherActivity.java
A    app/IntentService.java
A    app/AppGlobals.java
A    app/IBackupAgent.aidl
A    app/AppOpsManager.aidl
A    app/AlertDialog.java
A    app/AlarmManager.java
A    app/DatePickerDialog.java
A    app/ListFragment.java
A    app/IStopUserCallback.aidl
A    app/IApplicationThread.java
A    app/ISearchManagerCallback.aidl
A    app/package.html
A    app/ITransientNotification.aidl

六、

svn commit [PATH...]
别名:ci
描述:把你WC的更改提交到仓库(上传)
访问库:是
eg:
svn commit -m "added howto section." ##默认情况下提交必须提供log message
eg:
dzt@dzt-All-Series:~/D/dzt/workarea/7301_mp/widget/widget$ svn ci AbsListView.java   
正在发送       AbsListView.java  
传输文件数据.  
提交后的版本为 2081。

七、

svn cleanup [PATH...]
别名:无
描述:递归的清理WC中过期的锁和未完成的操作。有提交失败的情况也可以命令这个命令清除锁
访问库:否
eg:svn cleanup

八、

svn diff
别名:di
描述:用来比较并显示修改点。
访问库:
eg:svn diff   ##最常用的方式,用来显示WC基于最近一次更新以后的所有的本地修改点。
eg:svn diff -r 301 bin ## 比较WC和版本301中的bin目录的修改点
eg:svn diff -r 3000:3500 file:///var/svn/repos/myProject/trunk   ##比较库里主干3000版和3500版的差异。
eg:svn diff --summarize --xml http://svn.red-bean.com/repos/test@r2 http://svn.red-bean.com/repos/test  ##--summarize --xml 参数将差异情况以xml文档的方式显示出来
eg:
dzt@dzt-All-Series:~/D/dzt/workarea/7301_mp/app$ svn diff AlarmManager.java
Index: AlarmManager.java
===================================================================

SVN常用的命令_第1张图片

使用SVN管理代码时,在提交命令前这个命令是很有必要的,确保我在更新代码时不会把别人的覆盖掉

add for 2014.12.03    SVN使用小技巧

在同步服务代码流有个最快的方法,使用下面的命令,去掉冲突然后更新

svn status | grep ^M | xargs svn revert && svn status | grep ? | xargs rm -rf && svn update


------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

安装完SVN 1.7后需要作如下配置

配置SVN 2014.10.10
dzt@dzt-All-Series:~$ sudo gedit .subversion/config
##################################
1.editor-cmd = vim
### Set diff-cmd to the absolute path of your 'diff' program.
### This will override the compile-time default, which is to use
### Subversion's internal diff implementation.
2.diff-cmd = meld #需要安装meld
3.global-ignores = .*.swp .DS_Store
##################################

你可能感兴趣的:(SVN,UP,CI,co)