如何通过SVN进行协同设计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过SVN进行协同设计相关的知识,希望对你有一定的参考价值。

参考技术A 产品开发当中,我们很多时候代码和部分文档都有svn或者git工具进行管理,但是原型文件其实也需要很好的管理,特别是2个人以上对同一个rp文件进行频繁修改,没有版本管理将非常痛苦,即使用svn或者git对整个rp文件进行同步,但是无法知道内部某个原型页面的变更记录。新版Axure已经可以通过文件共享或者svn实现完整的版本管理功能,基于svn的版本管理操作如下。
1、安装svn客户端
svn工具凡是有开发经验的人员都比较熟悉,他主要是用来管理代码和文档版本,跟git的分布式管理工具是有区别的,这篇文章主要是将Axure的管理,非svn,这里只顺手链接一下下载地址:
https://tortoisesvn.net/downloads.zh.html
根据自己的操作系统选择是64或者32位的,具体安装过程自行百度。
2、创建一个svn目录
这里我以一个托管平台为示例,一般每个公司都有自己的svn服务器
3、创建team project
填写svn地址和工程名称及本地路径
创建成功后,列表左侧的图标多了一个正方形显示。
svn目录对应的结构会生成如下目录结构,不用关心,也不要修改此目录下的东西
4、获取team project
验证另外一个用户是否能够同步原型目录,重新打开Axure软件,空白页面
点击获取项目
填写刚新建的svn地址
并且已经更换目录了,如果本地没有保存过svn用户名密码,会提示用户名密码,因为我是已经保存了svn用户名密码,所以没有提示输入svn用户名密码的截图。
到此处我们已经创建好项目并且已经模拟另外一个用户获取团队项目。
5、签入签出
平时工作的时候就需要像我们熟悉的svn单个文件签入签出,如果要修改文件必须先签出。
签出之后图标会变成绿色,并且可以修改文件
修改之后再签入,会跟平时使用svn一样填写commit。
6、获取修改后的最新文件
此处是单个文件获取,我们也可以获取整个目录,在文件修改比较多的情况下获取。
7、查看历史记录
同样我们也可以像svn一样查看修改的历史记录
点击上面的Browse Team Project History ,即可查看到历史记录。
其他类似svn的功能就不再继续举例了。

用Git进行协同开发

用Git进行协同开发

问题场景描述

常常会遇到这样的协同场景:后台的同事和前端的同事需要共同开发一个新功能,而他们的代码相互依赖,所以需要不停地更新各自的代码进行联调。

对于这种场景,最简单的方式就是,这 2 个同事坐到一起,然后把 svn 当作一个共享代码的中转站来共享开发中的代码。

在这种方式下,大家各自写自己的代码,提交到 svn 上,然后用 svn up 获得对方的代码。在调试问题的时候,大家可能不停地更新代码,然后让对方用 svn up 来更新。最终,虽然开发能够顺利进行,但是 svn 上会积累大量调试中的代码历史。所以,这样把 svn 当作代码中转站是一个很山寨的行为。

在开发 有道云笔记 新的 iPad 版 时,我和前端同事 zyc 尝试用 git 进行了协同开发。在这里把具体方案分享给大家,欢迎大家讨论。

Git 相关协议介绍

Git 对于你本机的代码项目,允许用很方便的方式进行非授权的只读访问 ,相关介绍链接。简单来说,就是可以用 Git 自带的 Git daemon 命令在本机的 9418 端口启动一个守护进程,然后其它机器就可以以只读方式访问你开放出来的项目代码。

具体步骤如下:

  • 在你的 Git 工程下新建一个名为 git-daemon-export-ok 的文件放到 .git 目录下,表明该工程允许非授权访问。示例代码如下:
cd /path/to/project.git
touch git-daemon-export-ok
  • 执行 git daemon 命令,设置你要 Export 出的项目目录的父目录,例如工程的代码地址是:/opt/git/project 的话,则示例代码如下:
git daemon --reuseaddr --base-path=/opt/git/ /opt/git/
  • 告知对方你的机器的 IP,然后在对方的机器,用下列命令即可检出你的代码:
git checkout git://your_ip_address/project
  • 如果对方有更新,只需要 git pull 一下。

协作

对于这种基于 Git 的协作,我们可以在本地随意的提交代码,让对方用 git pull 更新。当开发完成,需要 push 到公共仓库的时候,再用 git rebase -i 将本地的提交进行清理即可。并且由于大家都是在机器间互拷,不依赖 svn 公共服务器,更新代码的速度也要快得多。

以上是关于如何通过SVN进行协同设计的主要内容,如果未能解决你的问题,请参考以下文章

SVN中如何解决文件冲突

指令集数据产品如何设计和实现报表协同系统——基于指令集物联网操作系统的工业协同制造项目开发实践

用Git进行协同开发

svn协同开发下的dll版本管理最佳实践

SVN版本控制服务器安装与配置

如何通过svn,git进行优雅的代码集成