亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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

標簽:
Python

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

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

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

在主模块中你只需要

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 pysubmoduleimport os

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

pysubmodule.sync(json_file)



作者:williamfzc
链接:https://www.jianshu.com/p/9d7178cc3084


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消