gpt4 book ai didi

django - 将外部 django 应用程序 merge 到项目中并安全地进行本地更改的最佳方法

转载 作者:太空狗 更新时间:2023-10-29 13:46:24 25 4
gpt4 key购买 nike

我在一个基于 django-lfs 的电子商务网站上工作,我发现我需要对 django-lfs 核心文件进行一些更改...即向模型添加其他属性、更新 View 、添加 url 模式等。我开始将 django-lfs 放在我的 pythons 站点包路径中,因为如果我需要对代码进行任何更改,我要么重新定义 url 模式(在我需要的情况下)在 View 中做一些不同的事情)或猴子补丁代码。

这背后的想法是我能够保持原始的 django-lfs 主干干净和未被触及,允许我将它更新到最新版本,然后独立更新/测试本地覆盖、子类化和编写的猴子补丁。

正如您可能已经猜到的那样,这很快就变成了一场难以管理的噩梦,因此我迫切需要一个更清洁、更稳定的解决方案。

客户端项目位于一个 git 仓库中,所以我一直在研究子模块或子树 merge 策略……尽管从我读过的所有内容中,我发现很难找到任何易于理解的明确答案(我我对 git 比较陌生)。

简而言之,我需要能够:

1) 在主项目仓库中包含一个外部 git 仓库2)直接对外部仓库进行更改(但让它推送到项目 git 仓库而不是外部远程源)或者创建外部仓库的本地副本,然后定期将外部仓库与复制的文件夹 merge 。

虽然我不知道如何实现这一目标。明确地说,我想以以下文件夹结构结束:

  • PROJECT_NAME
    • 媒体
    • 中继
      • 应用程序
        • django-lfs
    • 外部 repo
      • django-lfs

external-repos 文件夹中的 lfs 应用程序应该能够从官方(外部)django-lfs 存储库中提取更新,我应该能够自由更改存储在 APPS 文件夹中的 lfs 文件夹。

如果可能的话,我正在寻找的是一组 git 命令/指令来实现上述目标并使用上面概述的真实世界文件夹,而不是使用 foo 和 bar 引用。

我十指紧扣,希望有人能提供一些建议:)

最佳答案

我对此的快速看法:要么在 bitbucket 上 fork 项目或 github (取决于您对 hg 与 git 的偏好)并为您的更改创建一个分支。

这将使您的分支和官方主服务器更容易保持同步。

然后,假设您使用 pip+virtualenv,在您的 pip 需求文件中添加指向您的 repo/branch 的指针。

不幸的是,LFS 使用了 buildout,所以不太确定 python setup.py develop 的等价物是什么(即在你的 virtualenv 站点包中安装包,但有返回到你的 repo 的链接所以您无需不断运行 setup.py 即可进行更改。

关于django - 将外部 django 应用程序 merge 到项目中并安全地进行本地更改的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com