Subversion、TortoiseSVN、Ankhsvn+VS使用

时间:2022-02-09 16:39:16

Subversion为版本控制软件的服务器端。VisualSVN Server 可以在Windows平台安装和管理全功能的Subversion server。

TortoiseSVN为Subversion版本控制系统的一个免费开源客户端。

AnkhSVN是一款在VS中管理Subversion的插件。

TortoiseSVN将源代码迁入到svn服务器中

找到你新建的项目文件夹(项目已经包含在里面),右击—TortoiseSVN—Import,在弹出的对话框中输入仓库所在的url,点击ok完成迁入源代码到svn服务器中。

Subversion、TortoiseSVN、Ankhsvn+VS使用

Subversion、TortoiseSVN、Ankhsvn+VS使用

Ankhsvn:将源代码迁入Visual Studio中

打开Visual Studio,工具—选项—SourceControl—插件选择,选择Ankhsvn。

Subversion、TortoiseSVN、Ankhsvn+VS使用

点击文件—Subversion—open from Subversion,在弹出的窗口中输入仓库的url后会弹出输入用户名和密码对话框,输入用户名和密码选择要迁入的代码文件将代码迁入到Visual studio中。在解决方案资源管理其中可以看到迁入的项目文件,如果项目文件前有问号跟感叹号则代表此文件当前用户无访问权限。

Subversion、TortoiseSVN、Ankhsvn+VS使用

Subversion、TortoiseSVN、Ankhsvn+VS使用

Subversion、TortoiseSVN、Ankhsvn+VS使用

从服务器中更新项目为最新版本

右击解决方案资源管理器中的项目,选择update protect to latest version.

Subversion、TortoiseSVN、Ankhsvn+VS使用

项目修改后提交到服务器中

项目修改后,项目文件前面的对勾显示为橘红色,在解决方案资源管理器中选择某一个项目文件或整个项目文件,右击—Commit完成提交。如果此文件对于当前用户是只读的,提交时系统会提示禁止修改等信息。

Subversion、TortoiseSVN、Ankhsvn+VS使用

查看版本更新历史

右击——View History,在弹出的对话框中可以查看版本更新时间、作者、版本信息等

SVN忽略提交

第一种情况: 全局忽略

运行日志,.class编译文件,IDE工具建立工程的一些文件.这样的一类文件一般没必要提交到远程库.设置全局忽略的方法:

格式:*.iml *logs *target

patten之间以空格分格,一般在前面加通配符*

VS使用的忽略列表:

*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db bin obj *.suo *.user .vs *.pdb packages .vs

用TortoiseSVN客户端工具:右键-->TortoiseSVN-->Settings-->General-->Global ignore patten处添加自己想要忽略的文件或目录。也可以直接编辑Subversion配置文件,根据自己需求,修改为global-ignores,前面的#注释都要删除哦

Subversion、TortoiseSVN、Ankhsvn+VS使用Subversion、TortoiseSVN、Ankhsvn+VS使用

Subversion、TortoiseSVN、Ankhsvn+VS使用

第二情况: 提交时忽略

一些项目配置文件.每人都要自己的习惯,比如日志输出级别的配置,.properties,pom.xml等等一些文件.这样的文件又想放上远程库,但大多时候想忽略提交.

一般是通过changelist来实现的,把不想提交的文件放到ignore--on-commit这个changelist.其它的更改的文件放到default的另一个changelist.提交时,按changelist来提交就可以了.

修改文件的changelist

如果用TortoiseSVN客户端工具:右键某文件-->SVN Commit-->在提交文件列表,右键这个文件-->Move to changelist-->ignore-on-commit-->done.

以后提交时,不要勾上这些文件就可以了.

Subversion、TortoiseSVN、Ankhsvn+VS使用

第三种情况: 局部忽略(只在当前目录有效):

Subversion、TortoiseSVN、Ankhsvn+VS使用

也可以这么操作:

Subversion、TortoiseSVN、Ankhsvn+VS使用

Subversion、TortoiseSVN、Ankhsvn+VS使用

完成后文件夹的图标如下:

Subversion、TortoiseSVN、Ankhsvn+VS使用

右键Commit这个文件夹,可以看到svn将会在 服务器上删除这个文件夹。

Subversion、TortoiseSVN、Ankhsvn+VS使用

提交后的图标如下:

Subversion、TortoiseSVN、Ankhsvn+VS使用

完成后的上层文件夹如下:

Subversion、TortoiseSVN、Ankhsvn+VS使用

重新编译一下VS里面的工程,虽然bin, obj, package等文件夹下面的文件都重新生成了,但是上层文件夹的图标还是显示为没有更改。

Subversion、TortoiseSVN、Ankhsvn+VS使用