源代码管理

0. 在吹牛之前,先回答这个问题: 如果你的团队来了一个新队员,有一台全新的机器, 你们是否有一个文档,只要设置了相应的权限,她就可以根据文档,从头开始搭建环境,并成功地把最新、最稳定版本的软件编译出来,并运行必要的单元测试? (在这过程中,不需要和老队员做任何交流)

答:我们并没有专门的文档介绍项目执行过程。我们提供搭建环境地址源代码地址。此外,还是需要与老队员进行交流才可真正了解项目。

1. 你的团队的源代码控制在哪里?用的是什么系统?如何处理文件的锁定问题?

答:项目源代码提交在Github上,采用git的方式进行版本控制。团队对文件并没有锁定,采用成员自由迁入迁出的方式对文件进行处理。

2. 如何看到这个文件和之前版本的差异? 如何看到代码修改和工作项 (work item),缺陷修复 (bug fix) 的关系。

答:通过git pull进行更新,则可以看到这个文件和之前版本的差异。

在项目的commit的记录中,查看相应代码,白色部分代表没有修改,绿色部分指的就是原文件基础上的增加部分,而粉红色部分则指的是原文件基础上的删除部分。

3. 如果某个文件在你签出之后已经被别人修改,并且签入了,那么你在签入你的修改的时候, 如何合并不同的修改(merge)? 你用了什么工具来帮助你?

答:通过在git中执行合并即可自动合并不同的修改。但是,如果在远程数据库和本地数据库的同一个地方都发生了修改的情况下,因为无法自动判断要选用哪一个修改,就会发生冲突。git会显示本地数据库和远程数据库同一个地方的不同修改,百度查询并没有什么工具可以进行帮助,只能通过大家协商,手动解决冲突。

Git代码合并方法参考

4. 你有20个文件都是关于同一个功能的修改,你要如何保证这些文件都同时签入成功(修改的原子性),或者同时签入不成功?

答: 使用git进行代码管理,git作为一个成熟的源代码版本管理系统本身就可以保证在签入时的原子性。

5. 你的PC 上有关于三个功能的修改, 但是都没有完成,有很多文件处于半完工的状态,这时你要紧急修改一个新的 bug,如何把本地修改放一边,保证在干净的环境中修改这个 bug, 并成功地签入你的修改 --- changelist management

答:在本地新建一个分支,在此分支上进行bug的修复。

6. 规范操作和自动化

你的团队规定开发者签入的时候要做这些事情:

- 运行单元测试,相关的代码质量测试

- 代码复审 (要有别的员工的名字)

- 和这次签入相关的issue 编号, 任务/task, 缺陷/bug 编号,等等, 以备查询。

请问你的团队有这样的自动化工具让开发者方便地一次性填入所有信息然后提交么?  (高级功能, 代码提交之后, 相关bug 的状态会改动为  “fixed”, 并且有链接指向这次签入。)

答:我们团队并没有自动化工具让开发者能够一次性填入所有信息然后提交。

7. 如何给你的源代码建立分支?

答:例如题5通过git命令建立分支。

8. 一个源文件,如何知道它的每一行都是什么时候签入的,为了什么目的签入的 (解决了哪个任务,或者哪个bug)?

答:在git提交源文件时就会写清楚该文件目的,因此从github上面可以看见是什么时候签入,为了什么签入,而查看修改的部分即可知道该部分的目的。

9. 如何给一个系统的所有源文件都打上标签,这样别人可以同步所有有这个标签的文件版本?

代码每天都在变, 有时质量变好,有时变差,我们需要一个 Last Known Good (最后稳定的好版本) 版本, 这样新员工就可以同步这个版本, 我们如果需要发布,也是从这个版本开始。  那么如何标记这个 Last Known Good 版本呢?

答:团队的Last Known Good 版本是根据大家互相讨论后决定后再最后签入的。

10. 你的项目的源代码和测试这些代码的单元测试,以及其他测试脚本都是放在一起的么? 修改源代码会确保相应的测试也更新么?你的团队是否能部署自动构建的任务?

在签入之前,程序员能否自动在自己的机器上运行自动测试,以保证本地修改不会影响整个软件的质量?

在程序员提交签入之后,服务器上是否有自动测试程序, 完成编译,测试,如果成功,就签入,否则,就取消签入?

团队是否配置了服务器,它自动同步所有文件,自动构建,自动运行相关的单元测试,碰到错误能自动发邮件给团队?

答:项目的源代码和测试这些代码的单元测试,以及其他测试脚本都是通过git提交到github上。团队的测试是在本地手动完成的,修改源代码不能保证相应的测试更新,并不支持自动测试。没有配置服务器,因此不能够做到自动同步所有文件,自动构建,自动运行相关的单元测试,碰到错误能自动发邮件给团队,这些都需要成员自行构建、运行、调试及修改。

时间: 2025-02-01 08:58:22

源代码管理的相关文章

iOS源代码管理svn

01. SVN介绍 SVN 是集中式源代码管理工具 概念: 1> Repository   代码仓库,保存代码的仓库 2> Server       服务器,保存所有版本的代码仓库 3> Client       客户端,只保存当前用户的代码仓库 4> 用户名&密码   访问代码仓库需要使用自己的"用户名和密码",从而可以区分出不同的人对代码做的修改 操作: 1> checkout     将服务器上最新的代码仓库下载到本地,"只需要做一

基于git的源代码管理模型——git flow

说明: 本文以nvie的“a successful git branching model”为蓝本,结合我个人理解写成.如有谬误,还请各位指出.多谢! Note: This article is highly based on nvie's a successful git branching model. Thanks nvie. Git Flow 是什么 Git Flow是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践.Git Flow是一套使用Git

tfs2012迁移,只用到源代码管理

背景:在虚拟机里面安装的tfs,后来发觉C盘空间太少了,运行卡,准备重新配置一台虚拟机当做tfs服务器.安装相同版本的tfs.数据库(至少比原来的版本一样或者更高版本,要不附加不了数据库). 1.确保所有代码都已签入 2.在tfs管理控制台,分离要迁移的项目集合.下一步下一步就行 3.在sqlserver中右键分离项目集合对应的数据库,一般默认Tfs_你的项目 4.在数据库安装目录找到分离后的数据库文件(C:\Program Files\Microsoft SQL Server\MSSQL11.

源代码管理工具TFS2013安装与使用

最近公司新开发一个项目要用微软的TFS2013进行项目的源代码管理,以前只是用过SVN,从来没有用过TFS,所以在网上百度.谷歌了好一阵子来查看怎么安装和配置,还好花了一天时间总算是初步的搞定了,下面就简单介绍一下安装和配置过程.    一.安装和配置过程介绍            要安装TFS2013当然要先进行下载了,可以在下面的地址下载:http://www.microsoft.com/zh-cn/download/details.aspx?id=43728:文件有2.5G 下载完成后,双

IOS SVN源代码管理工具使用

01.    源代码管理工具概述(PPT)===================================================* 源代码管理工具的作用:# 能追踪一个项目从诞生一直到定案的过程# 记录一个项目的所有内容变化# 方便地查阅特定版本的修订情况 * 如果是团队开发,使用源代码管理工具是强制性的!* 如果是单人开发,也强烈建议现在就开始使用源代码管理工具 * 使用源代码管理工具# 由于使用简单,不会增加工作量# 不会对现有工作造成任何损害(坏的影响)# 是一位合格的软件

git源代码管理工具

git是一款源代码管理工具 是分布式版本管理工具 分布式管理必须先在本地提交然后才能提交到服务器: svn集中式版本管理工具 集中式版本管理工具离开服务器就做不了版本管理: 初始化仓库 1.用git初始化过的文件夹会建立一个仓库 2.创建git仓库的步骤 a) 创建一个文件夹 b) 在当前文件夹当中右键打开git bash c) 执行git init 注意: 1..git是隐藏文件夹,一定要把查看文件选项打开 配置用户信息 "git config user.name = 'bicycle'&qu

源代码管理工具简介

#一. 源代码管理工具简介* 有必要给大家的介绍一下,如果不说的话,大家都不知道它是干嘛的,首先我们要逐渐的建立器一个感受,对源代码管理工具的一个感觉. * 为什么会出现源代码管理工具? * 首先它得有一定的功能,对不对?任何的发明创造,都是为了解决人类的问题的,对不对?甚至一些语法规则的发明也是为了解决一定的问题的,对不对? * 我随便举个例子啊,举个简单的例子同学们理解一下,比如说像以前我们为了存储一个整形数据,是不是发明了一个叫int 类型的.后来发现不太靠谱,因为他只能存一个整数,所以就

源代码管理工具GIT

01.GIT简介 svn是集中式的源代码管理工具,必须联网才能操作 git是分布式的. 有两中:一个是本地代码仓库,一个是远程代码仓库 分布式源代码管理工具 02.GIT - 本地代码仓库使用流程 1.创建本地代码仓库:    git init 2.配置git仓库信息,姓名和邮箱(可以用命令行,也可以直接打开config 文件) 3.提交文件之前先查看状态.git status 4.添加文件到暂存区 git add   5.提交文件 git commit -m"日志信息" [Path]

Git 源代码管理工具

Git 源代码管理工具 Git基本信息 Git :Git是一个“分布式”的版本控制工具 Git的作者是Linux之父 Linus Benedict Torvolds,当初开发Git仅仅是为了辅助Linux内核的开发 Git在国外已经很普及,在国内也慢慢开始普及 Git与SVN的区别 结构:SVN是“集中式”的版本控制,Git是“分布式”的版本控制 速度:(多数情况下) Git速度高于SVN的速度 分支:SVN的分支比较笨拙,可Git可以轻松的创建无限个分支 安全:Git的数据备份比SVN更安全,

源代码管理工具概述

### 1. 源代码管理工具的作用? > 能追踪一个项目从诞生一直到定案的过程> 记录一个项目的所有内容变化,无限制返回> 查看特定版本的修订情况 ### 2. 常见的源代码管理工具有哪些? > CVS- 开启版本控制之门- 1990年诞生,“远古时代”的主流源代码管理工具> SVN- 全称是Subversion,集中式版本控制之王者- 是CVS的接班人,速度比CVS快,功能比CVS多且强大- 在国内软件企业中使用最为普遍(70%-90%)> GIT- 一款伟大的分布式