美文网首页Pythoner集中营
基于git的python子项目管理方案

基于git的python子项目管理方案

作者: williamfzc | 来源:发表于2018-08-18 15:19 被阅读12次

经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目。也许它是一个第三方开发的库或者是你独立开发和并在多个父项目中使用的。这个场景下一个常见的问题产生了:你想将两个项目单独处理但是又需要在其中一个中使用另外一个。一般来说我只能在父项目中维护一段逻辑来同步这些子项目。在同时维护多个父项目的时候这个过程将变得非常麻烦。

其中最官方的方法是使用git本身的submodule,它本身带了非常全面的功能。但实际上在工程中,它丰富的功能导致了它反而很可能因为操作失误而影响父子项目之间的独立性。(例如在编辑父项目时修改到子项目的代码并提交了)

针对这个问题,借鉴了gitsubmodule的形式设计了一个小工具来进行子项目管理。它只会保留clonepull --rebase,避免影响到仓库。github链接:https://github.com/williamfzc/pysubmodule

使用

根目录新建pysub.json(名字可自定义),配置好你的子模块

{
  "demo1": {
    "url": "https://github.com/williamfzc/tornado_demo.git",
    "path": ".",
    "desc": "JUST USE IT AS EXAMPLE"
  },
  "demo2": {
    "url": "https://github.com/williamfzc/tornado_demo.git",
    "path": "abc/def",
    "desc": "JUST USE IT AS EXAMPLE"
  }
}

在主模块中你只需要

import pysubmodule
pysubmodule.sync('/Users/williamfzc/abc/pysub.json')

这样做之后,在执行代码时,pysubmodule会自动同步配置在json中的子模块。

执行前目录结构

.
├── pysub.json
└── run.py

执行后目录结构

.
├── abc
│   └── def
│       └── tornado_demo
│           ├── README.md
│           └── run.py
├── pysub.json
├── run.py
└── tornado_demo
    ├── README.md
    └── run.py

Bug & 讨论

欢迎star与fork :)

欢迎PR与issue指教

这里提供一种动态获取json绝对路径的方法

import pysubmodule
import os

root_path = os.path.dirname(__file__)
json_file = os.path.join(root_path, 'pysub.json')

pysubmodule.sync(json_file)

相关文章

  • 基于git的python子项目管理方案

    经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目。也许它是一个第三方开发的库或者是你独立开发...

  • Git 与 Bash 快捷通道

    Git模型 A successful Git branching model基于git的源代码管理模型——git ...

  • GIT分支管理

    GIT 分支管理 参考:在阿里,我们如何管理代码分支?GitHub Flow & Git Flow 基于Git...

  • git submodule 管理子项目

    使用场景 拆分项目,当项目越来越大之后,我们希望 子模块 可以单独管理,并由 专门 的人去维护,这个时候只可以使用...

  • Android源码编译 - repo工具的简单介绍

    我们知道AOSP项目由不同的子项目组成,为了方便进行管理,Google采用Git对AOSP项目进行多仓库管理.在聊...

  • Git for windows 中文乱码解决方案

    Git for windows 中文乱码解决方案 Git 是在linux下开发的,而 Linux 的编码方式是基于...

  • linux下的git服务器搭建-gitolite

    本方案采用gitolite做git用户权限管理。 创建git用户,并切换到git用户。 拉取gitolite代码。...

  • VS2019 使用码云

    一、VS2019配置 配置GIT插件配置Git插件 源代码管理在解决方案上右键,选择将解决方案添加到源代码管理源代...

  • 7.django 网页模版

    1.Django项目结构:根项目管理所有子项目 Django项目结构:根项目管理所有子项目根项目:网页子项目:网页...

  • 【转载】Git多项目管理

    略删改。 对于处理子项目,即Git仓库包含Git仓库的情况:Git一开始引入了submodule功能,后面Git在...

网友评论

    本文标题:基于git的python子项目管理方案

    本文链接:https://www.haomeiwen.com/subject/xjefiftx.html