为不同的操作系统分叉git项目
我有一个OSX应用程序,我自己用python构建。与许多OSX应用程序一样,它也有许多(全部?)依赖项。例如为不同的操作系统分叉git项目,git,git-branch,git-submodules,branching-and-merging,Git,Git Branch,Git Submodules,Branching And Merging,我有一个OSX应用程序,我自己用python构建。与许多OSX应用程序一样,它也有许多(全部?)依赖项。例如 ./git_repo └── mac (dir) ├── myapp.app (dir) │ ├── Frameworks (dir) │ ├───MacOS (dir) │ ├───Resources (dir) │ │ ├──main.py │ │ ├──lib1.py │ │ ├──lib2
./git_repo
└── mac (dir)
├── myapp.app (dir)
│ ├── Frameworks (dir)
│ ├───MacOS (dir)
│ ├───Resources (dir)
│ │ ├──main.py
│ │ ├──lib1.py
│ │ ├──lib2.py
├─img(dir)
目录结构比这个大得多,每个目录中都有许多文件,但是您知道了
我的第一个分支将用于Linux,其中我需要main.py、lib1.py、lib2.py和img目录。我不需要资源目录或任何其他目录中的任何其他内容。我还将添加mac不需要的Linux特定文件。整体dir结构将比mac结构平坦得多
在那之后,我将转向Windows,使用我为Linux列出的文件,以及一些mac/Linux不需要的特定于Windows的文件
我在这里读过类似的文章,但我无法想象整个目录结构将如何工作。
我有几个选择
感谢您阅读您应该使用
git子模块
制作公共部分子模块,并将它们链接到相应的平台分支中。如果源文件在不同平台上都是相同的或基本相同的,那么您没有理由使用单独的分支、分支或子模块将它们强制转换为不同的结构re
实现这一点的最佳方法是将您的项目结构为带有setup.py
的标准setuptools/distutils项目。然后,使用来构建OS X应用程序包,并构建Windows可执行文件
第二个最好的方法是以一种对您有意义的方式来组织您的项目,并拥有将适当文件复制到位的构建脚本。例如,有一个包含所有Python源代码的src/
文件夹,一个被Git忽略的build/
文件夹,以及一个创建应用程序的build mac.sh
ndle内部build/
并将Python源文件复制到位
底线是,将所有代码放在一个地方,然后一旦你着手实际构建可再发行的二进制文件,就可以自动将其复制到适当的结构中。在每个版本中为每个平台运行一个脚本要比在一个版本中保持两个或三个相同的repo同步容易得多我会准时的