Android版本控制软件

作者: wxyass 分类: Android 发布时间: 2014-10-13 16:23

导语

版本控制软件介绍

1 为什么要使用版本控制软件

2 虚拟机的创建

3 常见版本控制软件 五种:

  1. CVS
  2. SVN
  3. ClearCase
  4. VSS
  5. GIT

公司常用的是SVN,GIT

4 SVN服务器端的搭建

Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。

4.1. SVN服务器的下载

官网:http://www.visualsvn.com/server/
VisualSVN是一款图形化svn服务器。
VisualSVN-Server-2.7.3.msi(安装在服务器端)

4.2. 根据文档(VisualSVN-Server.doc)将SVN服务器安装在服务器上。

VisualSVN是一款图形化svn服务器。
VisualSVN-Server-2.7.3.msi(安装在服务器端)

4.3. 检测SVN服务器成功安装在服务器上

在服务器浏览器访问https://127.0.0.1,出现欢迎界面表示成功

4.4. 在服务器端通过开始,找到VisualSVN Server Manager按钮打开SVN

Repository 大仓库,在大仓库中创建小仓库用于管理不同模块的代码,大小仓库按照文件树形式储存数据--包括文件和目录,任意数量的客户端可以连接到SVN,读写这些文件。

4.5. SVN客户端的搭建

TortoiseSVN 是svn版本控制系统的一个免费开源客户端,可以使你避免使用枯燥而且不方便的命令行。它完全嵌入 Windows Explorer(Windows资源管理器),SVN的客户端工具,和资源管理器完美集成,使用时只需在正常的窗口里点击右键操作就可以了。

4.5.1. SVN客户端的下载

http://tortoisesvn.net/downloads

4.5.2. 根据文档(运行TortoiseSVN.docx)将SVN客户端在程序员端安装

32位-TortoiseSVN-1.8.8.25755-win32-svn-1.8.10.msi

4.5.3. 检测SVN客户端成功安装在程序员电脑上

鼠标右击出现有SVN Checkout和TortoiseSVN两个选项

4.5.4. SVN客户端的搭建完成

5. SVN的使用

5.1. SVN客户端:单用户版本控制
5.1.1 在服务器上创建仓库和用户

右键Repository–>第一个选项创建小仓库

5.1.2 程序员客户端下载仓库用Checkout的步骤
  • 1.新建一个空文件夹; 比如:E:\Proj_trunk
  • 2.在此目录中点击右键-> SVN Checkout…
5.1.3 第一个框:指定服务端仓库的路径,直接copy
5.1.3 第二个框:指定本地(工作副本)仓库的路径
5.1.3 Checkout选项作用:将版本库中的内容检出到本地工作副本
5.1.3 本地仓库中.SVN不能删
5.1.3 在下载的仓库文件夹中写代码
5.1.3 add代码文件

新java类对于服务端并不识别,要先计划加入svn管理用add选中文件/文件夹(在新文件/文件夹所在父文件夹点击右键),在菜单中选择“添加Add”命令。不需要受SVN控制的文件请取消打钩。

5.1.3 commit,把代码文件提交至服务器

对工作副本进行编辑后提交到SVN
在右键菜单中点击SVN Commit
提交前写好信息,点击确定

5.1.3 update:下载服务器的代码文件

作用:更新工作副本使其成为版本库中的最新版本
SVN将显示出更新的文件和更新的次数
update:对工作副本右键,点击更新

5.1.3 Show log (显示日志)

工作副本右键–>显示日志
日志信息主要记录的是每次的修改内容。建议把一些重要数据、关键操作写到日志信息中。
注:修改人和提交时间由软件自动记录,无需人工写入日志信息

5.1.3 如何得到历史版本

工作副本右键–>显示日志–>选择所需的版本号–>保存版本至

5.2. SVN服务端版本库的备份和还原

备份:服务器端各个小仓库是保存在C:\Repositories中,把小仓库模块复制粘贴到任意地方(云盘,另一台电脑,其他存储设备等)保存起来(要定期备份);
还原:在新电脑服务器SVN界面中的右击Repositories–>所有任务–>import Existing Repository…找到备份的小仓库添加就行了

5.3 多用户权限控制

当进行提交文件操作的时候您将看到权限提示信息,类似用户登录界面
输入您的用户名和密码
保存权限设置,可以避免将来重复输入用户名和密码

5.4 多用户版本控制

文件锁

如果你给一个文件设置了svn:needs-lock属性,Subversion会让此文件只读,直到你获得文件锁。只读文件具有(灰色对勾)这个重载图标来表示你必须在编辑之前先得到一个锁。
被锁住的文件不能修改
申请文件锁后方能修改和提交
提交后自动释放文件锁
提交时如果没有申请到锁,会自动申请,若锁已被其他程序员申请,则自动申请失败

5.5 多用户冲突合并

多个程序员同时处理同一个代码文件
客户端版本比服务器低,不能提交,需要先update,再commit

5.5.1.什么是冲突?

团队协同工作时,当多位团队成员同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况

5.5.2.冲突产生的原因

当团队协同工作的时候,多位团队成员同时操作一个文件。团队成员A操作完成后,将该文件提交到SVN上。此时,其他团队成员的本地文件与SVN上的文件版本不一致。当团队成员B操作完成并对文件进行提交操作时,就会产生冲突 at drönare räckvidd https://xn--topp-drnare-xfb.se/

5.5.3.产生冲突会有提示页面
5.5.4.遇到冲突时,需要update该文件。

我们将看到三个带问号的文件
filename.mine
filename.rOLDREV
filename.rNEWREV

5.5.5.面对文件冲突,我们可以选择以下两种方式解决冲突

①使用工具解决冲突
②用revert放弃所做的修改

5.5.5.1.使用工具解决冲突

①右键三角黄色叹号的文件–>TortoiseSVN–>编辑冲突
②对比两个版本的文件,解决冲突
③工具中会列出两个版本冲突的部分,并让我们选择使用哪个版本的内容

5.5.5.2.用revert放弃所做的修改

①右键三角黄色叹号的文件–>TortoiseSVN–>选择SVN还原(revert) 放弃自己所做的修改

5.5.5.3解决冲突后

①通过上面2种所说的方法,解决冲突后要,右键三角黄色叹号的文件–>TortoiseSVN–>选择已解决的(resolved)
②解决后,带问号的三个文件将自动删除
③最后选择commit提交到SVN

6.关于冲突的建议

①修改文件之前,先进行一次update操作
②修改完成后,及时commit,不要在本地停留过长时间
③在多位团队成员协作时,尽量修改自己撰写的部分,尽量不要修改不属于自己撰写的部分
④出现冲突很正常,可以通过前面的方法解决,不要相互覆盖

7 SVN提交代码的规范

先更新,再提交
多提交
不要提交不能通过编译的代码
每次提交必须书写明晰的标注
提交时注意不要提交本地自动生成的文件
不要提交自己不明白的代码
慎用锁定功能

8 采用svn管理android项目

???

9 常见ignore文件类型

例如eclipse中的,Windows生成的缩略图Thumbs.db,项目编译生成的临时文件.obj, .class等等。
Add to Ignore List (忽略文件)
SVN不再理会该文件,该文件删除或者修改的动作,都不会上传至服务器
添加忽略文件
右键一个单独的未进入版本控制文件–>TortoiseSVN –>(加入忽略列表)Add to Ignore List,会出现一个子菜单允许你仅选择该文件,或者所有具有相同后缀的文件。
删除忽略文件:
如果你想从忽略列表中移除一个或多个条目,右击这些条目,选择TortoiseSVN → 从忽略列表删除。
已进入版本控制的文件或目录不能够忽略

10 项目版本管理实战

???

11 svn获取开源代码(google开源代码平台)

11.1.百度搜索关于gifview的源代码

gifview site:code.google.com

11.2.找到很多网站地址选择其一,跳转到https://code.google.com/p/gifview/
11.3.一般从http://code.google.com获取源代码地址都是固定的 p是Project的缩写,gifview是作者给自己项目起的名称
11.4.找到Source中的svn checkout地址https://gifview.googlecode.com/svn/trunk/gifview-read-only
11.5.在本地下载仓库得到源代码,注意去空格,如果还不能下载,把最后面gifview-read-only去掉,用https://gifview.googlecode.com/svn/trunk/下载就可以了

上面第4步发现有的作者没有提供仓库下载源代码选项,可以类推获取地址

比如你搜droidwall site:code.google.com,可能会选一个地址为https://code.google.com/p/droidwall/的网址进去

所以svn checkout地址可能为https://droidwall.googlecode.com/svn/trunk/
若不成功进入 右键TortoiseSVN–>Repo-browser进入仓库浏览https://droidwall.googlecode.com/svn/

或者用IE去观察仓库目录结构https://droidwall.googlecode.com/svn/
通过观察发现源码放在droidwall.googlecode.com/svn/tags下有很多不同版本,
所以在本地下载源码svn checkout地址https://droidwall.googlecode.com/svn//tags/v1.3.1下载不同版本

12 图标

绿色对勾:SVN状态正常,文件或文件夹与服务器版本一致
蓝色问号:该文件svn不知道怎么处理
蓝色加号:该文件被计划加入svn管理
红色叹号:该文件与服务器版本不一致
三角黄色叹号:该文件中出现代码冲突
灰色对勾:该文件被添加了文件锁
锁头:已经申请到该文件的文件锁
红叉:计划从SVN中删除该文件

GIT
集中式服务器:一个服务器带若干个终端,所有逻辑运算的业务都在服务器进行
分布式服务器:一个公共服务器带若干个终端,每个终端都包含一个完整的服务器数据的拷贝,也就是说每个终端既是客户端,也是服务器
Git版本控制软件一般在同一台电脑上既要安装服务端又要安装客户端

GIT版本控制软件服务端安装(也安装在客户端,电脑本身既是客户端又是服务端)

Git-1.9.4-preview20140611.exe(一个红色的logo)
安装:
一直下一步下一步
安装成功:
右键出现Git选项
此软件需要命令行操作
GIT版本控制软件客户端安装(也安装在服务端,电脑本身既是客户端又是服务端)

TortoiseGit-1.8.9.0-32bit.msi
安装:
一直下一步(其中有一个不要puTTy,要第二个)下一步
注意:老师提供的xp系统需要更新windowsInstaller服务才能继续安装
WindowsXP-KB942288-v3-x86.exe安装后重启电脑
安装成功:
右键出现Git图形化选项
GIT版本控制软件的使用

1.单用户本地Git仓库创建和使用

桌面新建文件夹,在文件夹中右键Get Creat repasitory here 后这个文件夹就变成仓库,文件夹会变绿色对勾(若不变,重启explorer)
因为本地电脑既是客户端又是服务端,创建仓库直接就是绿色对勾
在本地仓库文件夹中写代码
add –>commit 本地提交本地服务器 (可能需要用户名,邮箱,因为是本地两者都任意填)
2.多用户远程Git仓库创建和使用

github网站一般作为公共服务端

注册github帐号并登陆(此账号作为主开发者,可以push代码,其他程序员只能pull代码)
push:上传代码到服务端仓库,相当于commit
pull:更新服务端仓库代码到本地,相当于update
主开发者在github创建仓库上传源码,
1.set up Git(在自己电脑安装 Git-1.9.4-preview20140611.exe和TortoiseGit-1.8.9.0-32bit.msi)
2.点击网页创建仓库按钮去创建仓库(创建在github网站中央服务器)并上传项目源码。
仓库名,描述,仓库公共,许可证开源免费
3.世界各地不同程序员想参与项目开发,通过在网页clone选项获取url
4.程序员在本地仓库文件夹中,右键git clone下载仓库代码,才能参与开发
5.当程序员开发项目完成后,想push到服务器上,必须要github主开发者的账号密码,如果没有主开发者账号密码,只能commit程序员本地服务器上
没有push权限的程序员可以通过创建补丁发送给主开发者,然后由主开发者push到仓库
创建补丁步骤
1.先commit到本地服务器
2.右键整个项目文件夹–>TortoiseGit–>Creat Patch Serial…,去创建补丁
3.通过邮件将创建的补丁发给主开发者,主开发者通过补丁就清晰知道项目在什么地方被修改了

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注