1

我的代码目前是“开源”但不容易访问,因为它不能从存储库中获得。这个想法是通过 SourceForge 或 Github 提供它,但我愿意使用任何支持这些要求的免费站点。

项目介绍

该项目由许多模块(层次结构下的Java包org.pscode)中的代码和一些依赖项(例如50兆的交叉编译插件,5-10兆的MP3..)中的代码组成。该项目包含许多独立的应用程序,如面向开发人员的交叉编译编译器和面向最终用户的音乐点唱机。但是也有单个类(例如BigClip可以容纳大声音剪辑的类),它们在不是来自项目本身的其他应用程序中很有用。虽然有些包实际上是“自包含的”(例如JaNeLA),但其他包是在一系列现有应用程序中使用的组件。

我机器上存在的整个项目已经在推动 200 Meg。

作为一个想要播放长剪辑的开发人员,我会犹豫下载 200 多兆字节的项目,只是为了得到一个代码短到可以在 SO 上发布的课程。

代码库要求

  • 一个代码库/共享系统,允许用户只下载他们需要的部分。
  • 如果它由主项目的许多独立部分组成,它们会自动下载。
  • 提供一种自动方式来计算(以向用户显示)每个“子”项目需要多少下载量。好的,这不是我的选择“成败”的要求,但它会非常方便。

我一直在看 Git,因为它似乎比旧形式的 CVS 有很多进步,并且正在阅读Git For Eclipse Users并开始阅读分布式版本控制系统的第 3 点。

鉴于没有主存储库,很明显存储库必须完整地存在于 DVCS 中的每个节点上。..

这让我很担心,但我不确定我是否完全理解它,或者 Git 中是否有另一种机制来提供所需的行为。

问题)

Git 能满足上述要求吗?

另一方面,对于大多数开发人员来说,这是一个“非问题”吗?如果人们通常会下载 200 meg 的项目只是为了获得 3 Kb 的代码来解析逗号分隔值的文件,那么也许我什么都不担心。

4

2 回答 2

2

您可以使用 git 子模块。git 存储库中的子模块是对另一个 git 存储库的引用。通常,当您克隆 git 存储库时,您必须复制所有内容。但是,子模块是将大型项目拆分为许多单独存储库的一种方式。

但是请注意,子模块需要位于单独的子目录中,因此如果您在单独的子模块中拥有所需的源代码,则可能需要移动它们,并且可能需要更改链接。

克隆主项目时,它不会自动下载所有子模块。您需要指定要手动拉取所有子模块。但是,可以快速下载所有子模块,以获取更多详细信息:

轻松拉出所有子模块的最新版本

于 2012-08-25T03:33:35.347 回答
1

这对于 Git 来说真的是不可能的。但是,如果您将代码托管在 github 等 Git 存储库上,用户可以浏览您的文件并下载他们认为必要的文件。请参阅Git 与 Subversion

Git 要求您克隆整个存储库(包括历史记录)并创建一个工作副本,该副本至少反映受版本控制的项目的一个子集

尽管 Git 的子模块功能可以帮助解决这个问题,但您必须管理多个存储库并确保它们之间的协调。如果您仍主要处于开发阶段,这可能会有些混乱,并且可能需要进行一些重构。

于 2012-08-25T03:38:31.680 回答