1、当天站立式会议照片

会议内容:

本次会议为第六次会议

本次会议在陆大楼3楼召开,本次会议内容:

①:检查总结上次任务完成情况

②:安排今天的分工

③:对昨天的问题进行讨论

④:遇到困难,及时群里反馈

2. 每个人的工作 (有work item 的ID)

工作中遇到的困难:

随着beta计划的进行,到现在已经六天了,渐渐的我们的项目越来越完善,同时也会遇到很多困难,但是我们每天都会召开团队会议,对前一天遇到的问题进行讨论并想方法解决,马上beta计划就也要结束了,相信我们会成功发布项目。

3. 发布项目燃尽图;请用专业的工具完成



横坐标:工作日,以天为单位,一共七天,代表着beta冲刺阶段的时间一共为7天

纵坐标:剩余卡片数,以卡片数为单位,代表着每一个任务。

黄线:代表设置的卡片数在规定的工作日内的理想的完成情况。

蓝线:表示我们实际完成的卡片数。

4. 代码签入记录:

https://coding.net/u/hts-technology/p/CodeManagement/git/tree/master

部分代码:

  1. /**
  2. * 打开远程仓库
  3. *
  4. * @param repositoryPath
  5. * @return
  6. */
  7. public static Repository openRepository(String repositoryPath) {
  8. Repository repository = null;
  9. try {
  10. Git git = Git.open(new File(repositoryPath));
  11. repository = git.getRepository();
  12. } catch (IOException e) {
  13. // TODO Auto-generated catch block
  14. e.printStackTrace();
  15. } // 將本地倉庫打開
  16. return repository;
  17. }
  18. /**
  19. * git pull
  20. *
  21. * @param repositoryPath
  22. */
  23. public static Repository pullFromRemoteRepository(Git git) {
  24. try {
  25. git.pull().call();
  26. } catch (GitAPIException e) {
  27. // TODO Auto-generated catch block
  28. e.printStackTrace();
  29. }
  30. return git.getRepository();
  31. }
  32. /**
  33. * 統計給定commitID后所有commit信息
  34. *
  35. */
  36. public static void diffBetweenCommit(String repositoryPath, String lastcommitId) {
  37. Git git;
  38. Repository repository;
  39. try {
  40. git = Git.open(new File(repositoryPath));
  41. repository = pullFromRemoteRepository(git);
  42. RevWalk walk = new RevWalk(repository);
  43. Ref head = repository.findRef("HEAD");
  44. List<RevCommit> commitList = new ArrayList<>();
  45. Iterable<RevCommit> commits;
  46. try {
  47. commits = git.log().all().call();
  48. for (RevCommit commit : commits) {
  49. commitList.add(commit);
  50. }
  51. int numCommit = commitList.size();
  52. // 获取上一次的commit在list中的位置
  53. int fromIdToWirte = 0;
  54. for (int i = numCommit - 1; i > 0; i--) {
  55. if (commitList.get(i).getId().getName().equals(lastcommitId)) {
  56. fromIdToWirte = i;
  57. break;
  58. }
  59. }
  60. for (int i = fromIdToWirte; i > 0; i--) {
  61. // 得到commit的时间
  62. long sec = commitList.get(i).getCommitTime() * 1000;
  63. Date dat = new Date(sec);
  64. GregorianCalendar gc = new GregorianCalendar();
  65. gc.setTime(dat);
  66. java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
  67. String newCommitTime = format.format(gc.getTime());
  68. // 得到两次commit的不同之处
  69. AbstractTreeIterator oldTree = prepareTreeParser(repository, commitList.get(i));
  70. AbstractTreeIterator newTree = prepareTreeParser(repository, commitList.get(i - 1));
  71. List<DiffEntry> diff = git.diff().setOldTree(oldTree).setNewTree(newTree)
  72. .setShowNameAndStatusOnly(true).call();
  73. // 格式化输出格式
  74. ByteArrayOutputStream out = new ByteArrayOutputStream();
  75. DiffFormatter df = new DiffFormatter(out);
  76. df.setDiffComparator(RawTextComparator.WS_IGNORE_ALL);// 设置比较器为忽略空白字符对比(Ignores
  77. // all
  78. // whitespace)
  79. df.setRepository(git.getRepository());
  80. //统计newCommit与OldCommit新增了多少行,减少了多少行
  81. for (DiffEntry diffEntry : diff) {
  82. // 获取文件差异位置,从而统计差异的行数,如增加行数,减少行数
  83. FileHeader fileHeader;
  84. fileHeader = df.toFileHeader(diffEntry);
  85. List<HunkHeader> hunks = (List<HunkHeader>) fileHeader.getHunks();
  86. int addSize = 0;
  87. int subSize = 0;
  88. for (HunkHeader hunkHeader : hunks) {
  89. EditList editList = hunkHeader.toEditList();
  90. for (Edit edit : editList) {
  91. subSize += edit.getEndA() - edit.getBeginA();
  92. addSize += edit.getEndB() - edit.getBeginB();
  93. }
  94. }
  95. out.reset();
  96. }
  97. }
  98. } catch (GitAPIException e) {
  99. // TODO Auto-generated catch block
  100. e.printStackTrace();
  101. }
  102. } catch (IOException e) {
  103. // TODO Auto-generated catch block
  104. e.printStackTrace();
  105. }
  106. }
  107. public static AbstractTreeIterator prepareTreeParser(Repository repository, RevCommit commit) throws IOException {
  108. System.out.println(commit.getId());
  109. try (RevWalk walk = new RevWalk(repository)) {
  110. System.out.println(commit.getTree().getId());
  111. RevTree tree = walk.parseTree(commit.getTree().getId());
  112. CanonicalTreeParser oldTreeParser = new CanonicalTreeParser();
  113. try (ObjectReader oldReader = repository.newObjectReader()) {
  114. oldTreeParser.reset(oldReader, tree.getId());
  115. }
  116. walk.dispose();
  117. return oldTreeParser;
  118. } catch (Exception e) {
  119. }
  120. return null;
  121. }

团队作业8——第二次项目冲刺(Beta阶段)5.25的更多相关文章

  1. 团队作业8 ----第二次项目冲刺(Beta阶段)博客汇总

    一.冲刺计划安排 团队作业8--Beta版本冲刺计划及安排 二.七天冲刺汇总 [Beta]第一次Daily Scrum Meeting [Beta]第二次Daily Scrum Meeting [Be ...

  2. 团队作业7——第二次项目冲刺-Beta版本项目计划

    上一个阶段的总结: 在Alpha阶段,我们小组已近完成了大部分的功能要求,小组的每一个成员都发挥了自己的用处.经过了这么久的磨合,小组的成员之间越来越默契,相信在接下来的合作中,我们的开发速度会越来越 ...

  3. 团队作业7——第二次项目冲刺(Beta版本)

    团队作业7——第二次项目冲刺-Beta版本项目计划 团队作业7——第二次项目冲刺(Beta版本)-第一篇 团队作业7——第二次项目冲刺(Beta版本)-第二篇 团队作业7——第二次项目冲刺(Beta版 ...

  4. 【集美大学1411_助教博客】团队作业8——第二次项目冲刺(Beta阶段)

    写在前面的话 此次团队作业8可以拆分成两部分:1.beta阶段冲刺计划安排,2.7天敏捷冲刺."我们很低调"没有使用leangoo,经过与张老师的商议,张老师同意他们不使用lean ...

  5. 【1414软工助教】团队作业8——第二次项目冲刺(Beta阶段) 得分榜

    题目 团队作业8--第二次项目冲刺(Beta阶段) 往期成绩 个人作业1:四则运算控制台 结对项目1:GUI 个人作业2:案例分析 结对项目2:单元测试 团队作业1:团队展示 团队作业2:需求分析&a ...

  6. 团队作业8——第二次项目冲刺(Beta阶段)--5.19 first day

    团队作业8--第二次项目冲刺(Beta阶段)--5.19 Day one: 会议照片 项目进展 由于今天是Beta版本项目冲刺的第一天,所以没有昨天已完成任务.以下是今日具体的任务安排. 队员 今日计 ...

  7. 团队作业8——第二次项目冲刺(Beta阶段)--5.21 second day

    团队作业8--第二次项目冲刺(Beta阶段)--5.21 second day Day two: 会议照片 项目进展 今天是beta冲刺的第二天,组长还在准备考试当中,我们继续做前端改进和后端安排,今 ...

  8. 团队作业8——第二次项目冲刺(Beta阶段)--5.23 third day

    团队作业8--第二次项目冲刺(Beta阶段)--5.23 third day Day three: 会议照片 项目进展 今天是beta冲刺的第三天,组长回到了队伍当中,正式开始改进alpha中存在的功 ...

  9. 团队作业8——第二次项目冲刺(Beta阶段)--5.24 forth day

    团队作业8--第二次项目冲刺(Beta阶段)--5.24 forth day Day four: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...

  10. 团队作业8——第二次项目冲刺(Beta阶段)--5.25 5th day

    团队作业8--第二次项目冲刺(Beta阶段)--5.25 fifth day Day five: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...

随机推荐

  1. 自制刻度尺-前端简易实现"腾讯信用"界面

    依据我现有的知识,在前端上"简易"的实现了腾讯信用的界面,同时自己自制了一个竖直的刻度尺插件,曲线的位置可以根据传入的数值动态的改变,这次主要也想总结一下关于jQuery中exte ...

  2. iPhone 尺寸

    http://tool.lanrentuku.com/guifan/ui.html 这是本人复制的链接,,

  3. pentaho专题系列之kettle篇--kettle源码编译

    最近看了一些kettle的文章,都是kettle7.0以前的,已经跟不上时代了.截止笔者写这篇文章的时候,github上面的已经是7.1.0.3了,而且是发行版的,最新的快照版本已经是8.0的了.基于 ...

  4. Redis-入门笔记-15min带你一览redis

            如果转载,请注明博文来源: www.cnblogs.com/xinysu/   ,版权归 博客园 苏家小萝卜 所有.望各位支持!       少年入门笔记,整理出来一起入坑!入门的视屏 ...

  5. python爬虫url带中文解决方案之一

    import urllib2 urllib2.quote("呵呵哒") #输出 '%BA%C7%BA%C7%DF%D5'

  6. 总结一些php的面试题

    1.PHP语言的一大优势是跨平台,什么是跨平台?一.PHP基础: PHP的运行环境最优搭配为Apache+MySQL+PHP,此运行环境可以在不同操作系统(例如windows.Linux等)上配置,不 ...

  7. Django编写RESTful API(一):序列化

    欢迎访问我的个人网站:www.comingnext.cn 关于RESTful API 现在,在开发的过程中,我们经常会听到前后端分离这个技术名词,顾名思义,就是前台的开发和后台的开发分离开.这个技术方 ...

  8. Action和Fuc的区别

    Action和Fuc的区别,参数和具体用法

  9. Json-Server模拟数据接口开发

    前端开发过程中调用后台接口是常事,在前后台定义好接口规范和参数后,后台接口的进度有时会成为我们的掣肘,这里推荐使用一款简单的小工具json-server,小而轻便. 确保本地已有node环境. 一:安 ...

  10. 【Js应用实例】javascript管理cookie

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...