DarkMatter in Cyberspace
  • Home
  • Categories
  • Tags
  • Archives

Subversion Command Line Notes


在Ubuntu上安装Subversion: sudo apt-get install subversion.

用Subversion客户端添加新文件的流程是:

  1. 检出Subversion库中的文件夹svn co repo_url;

  2. 将要添加的新文件放入repo_url中:mv newFile repo_url

  3. 将新文件加入版本控制系统:svn add newFile

  4. 提交新文件: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命令,在提示中输入用户名;



Published

Aug 7, 2013

Last Updated

Jan 24, 2018

Category

Tech

Tags

  • command line 14
  • svn 12

Contact

  • Powered by Pelican. Theme: Elegant by Talha Mansoor