用git组织项目
我有一个封闭源代码的项目(处理各种语言的文本),我想通过上传到bitbucket来开源。但我不确定该如何/是否将其拆分为子项目 目前整个项目作为一个大结构在svn中:用git组织项目,git,project-management,projects-and-solutions,Git,Project Management,Projects And Solutions,我有一个封闭源代码的项目(处理各种语言的文本),我想通过上传到bitbucket来开源。但我不确定该如何/是否将其拆分为子项目 目前整个项目作为一个大结构在svn中: 主系统(java中的一组工具) ant插件(需要特定版本的系统;ant是一个构建系统,我们使用它来加载语言资源、构建和测试它) 文档(如何运行、开发资源等) 语言资源1 : 语言资源 语言资源可能有不同的许可证,并且可能由第三方提供 我想知道:我应该把这个项目放在一起(只删除具有更严格许可证的语言资源),还是应该把它拆分成单个
- 主系统(java中的一组工具)
- ant插件(需要特定版本的系统;ant是一个构建系统,我们使用它来加载语言资源、构建和测试它)
- 文档(如何运行、开发资源等)
- 语言资源1
- :
- 语言资源
感谢您的建议请您代替程序的用户:
- 我需要下载项目的所有部分才能运行它吗
- 在更新的情况下,我是否应该更新所有部件以使其工作
- 是否不可能单独使用项目的某一部分
根据您的更新,我建议将带有ants和文档的主系统放在一个项目中,并将脚本放在另一个项目中。由于您将“语言资源X”称为脚本,因此我认为它们相当小。这样,即使用户只需要其中一个项目,也可以将它们全部放在一个项目中
但是,如果“语言资源X”本身是一个大项目,那么将它们放在单独的项目中是有意义的。至于“保持版本同步”,您应该查看Git中的子模块。我不知道他们是否能解决这个问题,但是对于这种模块化的工作,你应该大体上了解他们。对不起,我所说的脚本是指ant的东西(插件)加上次要的脚本。我改正了。lg资源不是微不足道的(一个词典、频繁的表单、变形范例、一些表、配置等),所以我认为它们应该是独立的项目。但它们取决于系统的特定版本,是应该通过自述文件指定的内容,还是有更正式的方式?(比方说,提交法语资源需要这个存储库中的2.1版本的系统)。@Jirka-x1,我不知道java世界是如何管理它的。如果您的构建工具允许(例如haskell的cabal允许),您可以指定仅针对特定版本进行构建。如果没有适合您的工具,您可以随时手动执行。也就是说,在头文件(同样,使用Java的等效文件)和语言资源中公开主程序的版本,在开始时检查主版本。如果不兼容,失败时会有一条很好的消息告诉他们更新。如前所述,将它们保存在git子模块中将极大地帮助用户进行更新。有些人反对使用子模块,因此您可能还想查看
git子树
(需要启用贡献的git的新版本)。