教程说明


《SVN系列教程-第五章-IDEA集成SVN的使用》

五、idea集成SVN插件

5.1 SVN插件基本使用

在xiaohui工作空间创建一个新的项目:

5.1.1 绑定SVN插件

1)打开Settings—>Version Control—>Subversion;选择SVN命令

2)打开VCS—>Enable Version Control Integration...;开启版本控制:

3)选择Subversion:

4)打开Settings—>Version Control;选择添加需要控制的项目:

5)添加成功:

5.1.2 提交项目

1)在需要提交的项目右键—>Subversion—>Share Directory...

2)选择要提交到的分支:

3)提交项目:

查看VisualSVN:

项目提交成功;

5.2.3 忽略文件

我们在开发工具创建项目或者模块时,开发工具会有一些默认的项目配置文件,如.idea文件夹、.iml文件等,这些都是供idea识别的配置文件,其中内容包含项目所在的磁盘地址、模块信息等;每个开发人员实际的存放的项目磁盘地址很可能是不一样的,我们应该把这些与项目本身无关的文件忽略掉,不应该提交到svn服务器;

Tips:.gitignore文件是Git用来忽略文件用的,SVN不可用,所以我们将其忽略;

  • 打开Settings—>Editor—>File Types

选择要忽略的文件:

添加忽略后,发现项目中的.idea文件夹不见了:

删除SVN仓库中的项目:

删除项目中的.idea.svn.iml.gitignore等项目相关的配置文件:

重新打开项目,按照我们之前的方式重新分享到SVN服务器中;

重新提交后,查看VisualSVN服务器:

5.1.4 检出项目

一般情况下,我们进入公司项目组开发,都是检出公司中已有的项目进行开发;

我们在打开idea界面时选择Get from VCS,如图所示:

5.1.5 其他操作

SVN的大多数操作都在Subversion菜单中:

5.2 解决冲突

5.2.1 模拟冲突

  • 1)在xiaohui工作目录创建Demo01.java

文件内容:

public class Demo01 {
    public static void main(String[] args) {
        System.out.println(111);
    }
}

  • 2)执行add、commit操作;

  • 3)在xiaolan工作空间执行update:

  • 4)在xiaolan工作空间修改文件内容:
public class Demo01 {
    public static void main(String[] args) {
        System.out.println(111222);
    }
}
  • 5)提交

  • 6)在xiaohui工作目录修改Demo01.java

文件内容:

public class Demo01 {
    public static void main(String[] args) {
        System.out.println(111333);
    }
}

7)执行update(此时与svn服务器中的文件内容不一样),出现冲突

5.2.2 解决冲突

解决冲突之后,记得要提交:

可以在xiaolan工作空间更新最新的代码;

5.3 回退版本

5.3.1 查看历史提交版本

1)查看历史回退

作者之所以都是xiaohui,那是因为我们都是通过xiaohui的账号拉取项目到本地空间的;

2)切换账号

删除xiaolan工作空间的项目,我们使用xiaolan账号来重新检出一份;

关闭所有项目,打开IDEA全局设置:

在xiaolan工作空间编辑代码,提交,查看日志:

public class Demo01 {
    public static void main(String[] args) {
        System.out.println(111333);
        System.out.println(111222);
        System.out.println(333333);
    }
}

此时idea保存的凭证就是xiaolan的凭证,使用idea进行提交之后(不管是xiaohui还是xiaolan工作空间),作者将会显示xiaolan

5.3.2 回退版本

在xiaolan工作空间操作

1)工作空间回退

工作空间回退只是将工作空间的代码回退到指定版本,一般用于查看某个版本的代码,回退之后即使编辑了也不可提交;

选择文件右键,更新文件:

选择指定版本回退:

点击OK

将工作空间回退到指定版本:

编辑代码后提交,出现旧版本冲突:

2)历史回退

按之前的方式重新回退到最新版本;

查看历史版本,在指定的版本上右击—>Get:

编辑Demo01.java:

public class Demo01 {
    public static void main(String[] args) {
        System.out.println(111333);
        System.out.println(111222);
        System.out.println(000000);
    }
}

使用xiaohui工作空间,执行update,发现代码被更新到本地了;

5.6 分支操作

在xiaolan工作空间重新创建一个项目Demo,使用之前的方法分享到SVN服务器;

5.6.1 拷贝分支

首先将trunk分支下的Demo01项目拷贝到branches/test分支下:

查看VisualSVN:

检出test分支下的Demo01项目到xiaohui工作目录中:

选择检出的磁盘路径:

5.6.2 合并分支

合并分支就是将其他分支的代码合并到指定分支中;

  • 1)在xiaolan工作空间,编辑内容如下,并提交:
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        System.out.println("111");
    }
}
  • 2)在xiaohui工作空间合并xiaolan工作空间;

xiaohui工作空间是test分支的代码,xiaolan工作空间是trunk分支的代码,现在需要将truck分支的代码合并到test分支中:

Tips:

  • 1)是谁要合并别人的代码,就在谁的项目上右键
  • 2)合并分支代码时,必须保证当前工作空间版本是最新的

在xiaohui工作空间的项目右键—>Subversion—>Integrate Director

合并完成,在xiaohui工作空间提交:

  • 3)将test分支的代码合并到trunck分支

修改xiaohui工作空间的代码,然后提交:

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        System.out.println("111");
        System.out.println("222");
    }
}

然后再xiaolan工作空间项目处右键—>Subversion—>Integrate Director

提交xiaolan工作空间刚刚合并的代码:

5.6.3 合并分支注意事项

当需要合并的分支代码代码与本地工作空间的代码不一致时,那么本地空间的代码将会被覆盖掉;

  • 1)修改xiaolan工作空间(trunck分支)的代码:
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        System.out.println("111");
        System.out.println("222aaa");
    }
}

提交项目;

  • 2)修改xiaohui工作空间(test分支)的代码:
public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
        System.out.println("111");
        System.out.println("222bbb");
    }
}

提交项目;

使用trunck分支(xiaolan)合并test分支(xiaohui),在xiaolan工作空间项目处右键:

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐