1.1 获取源代码树

这一节讲如何获取MySQL源代码树,它当前已经在GitHub上可以获得。

MySQL正式加入GitHub是在2014年9月。关于MySQL搬迁至GitHub更多的信息,请参阅MySQL Release Engineering博客的申明:MySQL on GitHub

从GitHub上获取MySQL源代码树,请遵循下面步骤:

1. 克隆MySQL Git仓库到你的机器。 如下命令克隆MySQL Git仓库到一个名为mysql-server的目录。下载大小接近437MB。

  1. me@mymachine:~$ git clone https://github.com/mysql/mysql-server.git 
    Cloning into 'mysql-server'...
    remote: Counting objects: 1035465, done.
    remote: Total 1035465 (delta 0), reused 0 (delta 0)
    Receiving objects: 100% (1035465/1035465), 437.48 MiB | 5.10 MiB/s, done.
    Resolving deltas: 100% (855607/855607), done.
    Checking connectivity... done.
    Checking out files: 100% (21902/21902), done.
  2. 当克隆操作完成后,你的本地MySQL Git仓库如下面所示:

    me@mymachine:~$ cd mysql-server
     
    me@mymachine:~/mysql-server$ ls
    BUILD            COPYING             libmysqld    regex          tests
    BUILD-CMAKE      dbug                libservices  scripts        unittest
    client           Docs                man          sql            VERSION
    cmake            extra               mysql-test   sql-bench      vio
    CMakeLists.txt   include             mysys        sql-common     win
    cmd-line-utils   INSTALL-SOURCE      packaging    storage        zlib
    config.h.cmake   INSTALL-WIN-SOURCE  plugin       strings
    configure.cmake  libmysql            README       support-files          
  3. 你的MySQL Git仓库包含MySQL 5.5, 5.6, 和5.7分支. 运行git branch -r命令浏览remote-tracking”的所有分支:

    ~/mysql-server$ git branch -r
      origin/5.5
      origin/5.6
      origin/5.7
      origin/HEAD -> origin/5.7
  4. 运行git branch命令查看当前本地检出的分支。当你克隆了MySQL Git仓库,MySQL 5.7分支被自动检出. 星号(*)表示分支5.7是当前的活跃分支.

    ~/mysql-server$ git branch
    * 5.7
  5. 要检出其他MySQL分支, 运行git checkout命令,并指定分支名:

    ~/mysql-server$ git checkout 5.6
    Branch 5.6 set up to track remote branch 5.6 from origin.
    Switched to a new branch '5.6'
    
    me@mymachine:~/mysql-server$ git checkout 5.5
    Branch 5.5 set up to track remote branch 5.5 from origin.
    Switched to a new branch '5.5'
  6. 再次运行git branch检验所有的3个分支都存在。 MySQL 5.5,作为最后检出的分支,被星号(*)标志意在说明它是当前分支。 

    ~/mysql-server$ git branch
    * 5.5
      5.6
      5.7

    要切换分支, 再次运行git checkout. 比如要使MySQL 5.6成为活跃分支, 运行命令git checkout 5.6.

关于更多使用和维护Git仓库的信息,请参阅GitHub Help

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Spring Boot实现形结构的示例代码: 首先,我们需要定义一个形节点的实体类,可以包含节点ID、父节点ID、节点名称等属性: ```java public class TreeNode { private Long id; private Long parentId; private String name; private List<TreeNode> children; // getter and setter methods } ``` 接下来,我们需要编写一个服务类来处理形结构的相关操作,例如获取形结构、添加节点、删除节点等: ```java @Service public class TreeService { private List<TreeNode> nodes; // 存储所有节点的列表 public TreeService() { nodes = new ArrayList<>(); // 初始化节点列表,这里可以从数据库或其他数据源中加载节点数据 nodes.add(new TreeNode(1L, null, "Root")); nodes.add(new TreeNode(2L, 1L, "Node 1")); nodes.add(new TreeNode(3L, 1L, "Node 2")); nodes.add(new TreeNode(4L, 2L, "Node 1.1")); nodes.add(new TreeNode(5L, 2L, "Node 1.2")); nodes.add(new TreeNode(6L, 4L, "Node 1.1.1")); // ... } // 获取形结构 public List<TreeNode> getTree() { List<TreeNode> roots = new ArrayList<>(); for (TreeNode node : nodes) { if (node.getParentId() == null) { roots.add(node); } } for (TreeNode root : roots) { root.setChildren(getChildren(root.getId())); } return roots; } // 获取指定节点的子节点 private List<TreeNode> getChildren(Long parentId) { List<TreeNode> children = new ArrayList<>(); for (TreeNode node : nodes) { if (node.getParentId() != null && node.getParentId().equals(parentId)) { children.add(node); } } for (TreeNode child : children) { child.setChildren(getChildren(child.getId())); } return children; } // 添加节点 public void addNode(TreeNode node) { nodes.add(node); } // 删除节点及其子节点 public void deleteNode(Long nodeId) { Iterator<TreeNode> iter = nodes.iterator(); while (iter.hasNext()) { TreeNode node = iter.next(); if (node.getId().equals(nodeId)) { iter.remove(); } else if (node.getParentId() != null && node.getParentId().equals(nodeId)) { iter.remove(); } } } } ``` 最后,我们可以在控制器中调用服务类来实现相关操作: ```java @RestController @RequestMapping("/tree") public class TreeController { @Autowired private TreeService treeService; // 获取形结构 @GetMapping("/get") public List<TreeNode> getTree() { return treeService.getTree(); } // 添加节点 @PostMapping("/add") public void addNode(@RequestBody TreeNode node) { treeService.addNode(node); } // 删除节点 @DeleteMapping("/delete/{id}") public void deleteNode(@PathVariable Long id) { treeService.deleteNode(id); } } ``` 以上示例代码仅供参考,具体实现方式可以根据实际需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值