在Ubuntu上安装Subversion: sudo apt-get install subversion
.
用Subversion客户端添加新文件的流程是:
-
检出Subversion库中的文件夹
svn co repo_url
; -
将要添加的新文件放入
repo_url
中:mv newFile repo_url
-
将新文件加入版本控制系统:
svn add newFile
-
提交新文件:
svn ci -m 'some comments' newFile
常用命令
-
svn help
: 列出所有可用命令,svn help查询某个命令的使用方法。 -
svn mkdir -m "some notes" <svn_url>
: 在svn_url指定的位置建立文件夹,一般用于建立项目根目录; -
svn import -m "some notes" <local_folder_to_be_imported> <svn_url>
: 注意只有文件夹下的内容(文件和文件夹)会被导入,文件夹本身不会被导入, 所以如果想导入当前目录下的testProject文件夹到svn根目录下, 应执行下面的指令(testProject要写两次):svn import -m "initial import project" testProject svn://10.0.7.141/testProject
常用的用法是导入当前文件夹下的所有文件,这时svn import -m "..." svn://10.0.7.141/testProject
.
-
svn info
:显示当前repo对应的SVN路径、版本号、用户名等; -
svn st
: 显示文件改动状态; -
svn ci -m "..." <filename>
: 提交改动,首先用svn st
查看改动情况;如果没有配置默认用户, 增加--username <user>
指定使用哪个用户提交; -
svn co svn://localhost/Trunk/Project1 [targetFolder]
: 将repo中Project1的内容检出到当前目录的targetFolder文件夹中; -
svn log -l 3:显示当前目录对应的repo文件夹的最近3次提交,可以在log后面增加目标repo地址指定要显示的目标;
svn log -l 3 <file_name>: 针对某一个文件的最近3次提交;
-
svn ls <svn://repoPath [-R]>
: 列出repo中的内容(加-R
表示包含子目录内容); -
svn add <file>
: 将svn st查到的未纳入版本控制的文件加入到版本控制中; -
svn up
:更新working directory,当在working dir中提交版本后, 需要用svn up
更新svn客户端库,才能在svn log中看到新提交的版本; update之前先用status查看一下本地有没有未提交的修改,否则易造成冲突; -
svn diff <file_name>
: 比较head revision与本地working copy之间的差异:svn diff -r 1345:1346 <file_name>
: 比较文件file_name
的r1345版本与 r1346版本的区别(先用svn log ...确定要比较的版本号; -
svn move <source> <destination>
-
svn revert <file_name>
: If you add some file but not commit yet, and you find it's useless and want to remove it,you can use this command; -
svn cat [-r<version_number>] <file_path_on_server>
-
svn blame <file_name>
: show author and revision information of each line; -
svn log [-q] [file_name]
: show author and revision history of the file; -
svn rm $( svn status | sed -e '/^!/!d' -e 's/^!//' )
: 将已被物理删除的文件标记为删除 -
svn add --force path/to/dir
: 将所有新文件add到svn中
设置忽略列表
一次性设置
-
svn propset svn:ignore folder .
: 将folder放入ignore列表中;如果多次使用此命令,后面的会覆盖前面的(而不是追加); -
如果需要忽略多个项目,用多行命令,每行一个忽略元素:
svn propset svn:ignore "folder1 folder2 folder3" .
-
列出当前的忽略列表:
svn propget svn:ignore
不同于git,svn:ignore
属性不是使用普通文件(.gitignore),而是保存在版本控制系统中
(项目的.svn目录中的某处),其他人更新代码时也会得到相同的ignore属性,
所以这个ignore设置对所有人都有效。
编辑忽略列表
svn propedit svn:ignore .
这样会打开一个文本编辑器,内容是当前的忽略列表(每行一个元素),编辑之后保存即可修改忽略列表。
用"echo $EDITOR"查看默认编辑器,用"export EDITOR=vi"将其改为vi;
查看默认用户
~/.subversion/auth/svn.simple下的文件中保存着默认用户名,如果想更改默认用户,删掉这个保存默认用户的文件,然后使用一个svn命令,在提示中输入用户名;