0

我有一个使用 Eclipse 的相当简单的“C”项目。我将其用作 git 的介绍并拥有 eGit eclipse 插件。这个项目的范围相当简单。这里有一些平台无关的源文件,然后是平台相关的源文件。我将它们组织为:

    src/
        core/      # platform independent code
            file1.c, ... fileN.c
        interface/ # platform dependant code
            fileA.c ... fileZ.c

代码最终应该在 linux(至少 RedHat)、osx 和 windows 上运行。这些都将是“命令行”可执行文件,但平台之间的接口代码确实不同。例如,如果我正在编写 PAM(Pluggable Auth Modules)模块,Red Hat 使用 linuxPAM,OSX 使用 OpenPAM,而 windows 根本不做 PAM(据我所知,没有理由这样做)。PAM 包含文件和库是不同的,windows 会做一些非 PAM 的事情。

我希望 eclipse 和 git 可以帮助解决这个问题。我的想法是为每种操作系统类型使用 git“分支”。我已经尝试过了,但遇到了一个奇怪的情况,这就是我发布这个的原因。

我开始使用 RedHat 版本作为 git“Master”分支。我从 Master 创建了三个分支:linux、osx 和 windows。我开始在 windows 分支上工作,然后去度假。当我回来时,我得到了 linux 分支,但它已被 Windows 更改“污染”。我以为我在假期前检查了所有窗户的变化。

问题:

  1. 分支是做多平台项目的正确方法吗?
  2. eclipse“.project”文件和其他元数据文件是否应该在源代码控制下?

谢谢

4

2 回答 2

0

分支不是做多平台项目的方式。分支是管理具有不同发布周期的代码的一种方式。在多平台情况下,您的所有代码将同时发布。为了管理这个,创建一个使平台清晰的目录结构(每个平台都有一个目录)。

.project 文件当然需要检查到源代码管理中。

于 2013-06-21T07:09:04.647 回答
0

Git 对符号链接的处理相对较好,如果您的代码只想在一个平台的一个分支中更新,您可以定义一个主平台,在其中放置一个包含您要共享的代码的文件夹,然后在其他项目中使用符号链接来那个文件夹。请注意,在那之后您不能为特定平台分支(当然,您可以用实际文件夹的副本替换符号链接,可能需要出现)。

于 2014-05-14T09:03:45.737 回答