django - 将第 3 方 Django 应用程序维护为 Git 子模块

标签 django git git-submodules django-apps

我知道这是完全可能的,而且很多人已经这样做了,但我的问题略有不同,我还无法找到解决方案:

让第 3 方 Django 应用程序的结构如下:

  • django 模块
    • 模块
      • init.py
      • views.py
      • 模型.py
    • 需求.txt
    • 设置.py

我只想将 module 目录捆绑为子模块,因为这样我只需输入“module.views”即可访问views.py 文件。如果我导入 django-module 目录,我必须编写 django-module.module.views 来访问模块文件,这是不可行的。

我的目的是修改模块并偶尔向原始存储库发出 pull 请求。是否有我可以遵循的工作流程,或者为此目的的最佳实践是什么?

最佳答案

点提示

Pip 支持editable packagesretrieving packages with git ,这样您就可以创建一个 virtualenv,使用 pip 安装软件包,并在需要时使用 pip 更新它们。

所以你可以添加:

-e git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject

到您的 requirements.txt 以检索确切的提交。


建议的工作流程

我认为解决您的问题的最佳方法如下:

  • 创建一个包的私有(private)分支
  • 编辑 fork 存储库中特定开发分支中的包
  • 在需求文件中使用来自分支开发分支的包。

  • 如果您愿意,可以使用 pip 更新您使用它的 fork 包。

  • 当您准备好发出 pull 请求时,请 pull origin,将您的工作分支重新设置为 origin/master,然后从分支的 master 分支发出 pull 请求。

这意味着代码存在于三个位置:

  • 原始存储库(您无权访问)
  • 您的 fork 存储库(您在 fork 上工作的位置)
  • 无论 pip 安装在哪里(您使用 fork 的地方)

关于django - 将第 3 方 Django 应用程序维护为 Git 子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13179778/

相关文章:

php - 如何从 PHP 过渡到 Python Django?

使用 Pydev 进行 Django/Docker/远程调试

git - 缺少 git 支持,使用 'Install-Module posh-git' 安装 posh-git 并重新启动 cmder

git - 如何从另一个提交复制提交元数据(作者、日期)

git - 为什么不能将大文件添加到 Git 存储库

git - 以编程方式获取 bash 中 git 目录的路径(包括子模块)

django - 使用 Django View 处理 blobstore 上传

python - 没有名为 rest_auth 的模块

Git - 将更改从子模块推送到主模块?

git - 在 .gitmodules 中找不到子模块映射