Android Studio With SVN

##环境
系统使用Ubuntu 12.04,SVN版本1.8.8,AS使用最新稳定1.2.2。

1
2
svn, version 1.8.8 (r1568071)
compiled Aug 13 2014, 17:12:39 on x86_64-pc-linux-gnu

##配置AS
配置AS很简单。
1、配置SVN执行目录:
File -> Settings -> Version Control -> Subversion -> General Tab里面的Use command line client,如果你已经安装SVN,AS应该默认是配置好的。
2、上传你的文件到SVN:
VCS -> Import into Version Control -> Import into Subversion…之后就可在线上版本查看到文件已经同步。
3、为项目新增SVN管理:
VCS -> Enable Version Control Integration… 简单配置,即可在面板上有UP和CI等版本操作的图标。
至此,AS配置完成。

##设置SVN IGNORE
一直不知道SVN如何设置忽略命令,网上看的很多都是不准确或者理解有偏差。
1、设置全局忽略文件列表:
编辑~/.subversion/config文件,修改此文件中的global-ignores,里面也有提供实例。
当然,如果你想修改所有用户的ignore,文件目录在/etc/subversion/config。

1
2
# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
# *.rej *~ #*# .#* .*.swp .DS_Store

2、设置某目录svn ignore:
关键是使用svn的property set命令,此命令不可递归,只能设置当前目录下的ignore规则。

1
2
3
4
5
6
svn pe svn:ignore path
# svn propedit svn:ignore path
svn pd svn:ignore path
# svn propdel svn:ignore path
svn ps svn:ignore path
# svn propset svn:ignore path

如果当前目录结构为:
.
|
|-Android
| |
| - trunk
| - branches
| - tags
|-iOS
想要过滤trunk目录下某些文件或目录:

1
svn pe svn:ignore Android/trunk

之后会打开编辑窗口,输入下方文件即可:

1
2
3
4
5
6
.gradle
local.properties
.DS_Store
build
captures
proguard

附带完整svn ignore命令(svn st命令,可以查看当前状态):

1
2
3
4
cd project-path
svn pe Android/trunk
svn pe Android/trunk/.idea
svn pe Android/trunk/app

Android/trunk的ignore:

1
2
3
4
5
6
.gradle
local.properties
.DS_Store
build
captures
proguard

Android/trunk/.idea下的ignore:

1
2
workspace.xml
libraries

Android/trunk/app下的ignore:

1
build

设置完成,使用svn ci -m ‘ignore files’即可。
附带.ignore文件为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Built application files
*.apk
*.ap_

# Files for the Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/

# Gradle files
.gradle/
build/
/*/build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

/.idea/workspace.xml
/.idea/libraries
.DS_Store
/capture

附带命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
svn ps svn:ignore 'ignorefile' dir
svn up
svn commit -m 'ignore ignorefile'

svn export dir dir_bak
svn rm dir
svn commit -m 'delete dir'
mv dir-bak dir
svn ps svn:ignore 'ignorefile' dir
svn up
svn commit -m 'ignore ignorefile'

svn ps svn:ignore 'ignorefile1
ignorefile2
ignorefile3' dir

##SVN常用命令
Show The Code:

1
2
3
4
5
6
7
8
9
10
11
svn co svn://xxx
svn checkout svn://
svn export [-r version] svn://
svn add file
svn commit -m ''
svn ci -m ''
svn up
svn update
svn update -r 200 file
svn delete svn:// -m ''
svn delete file