SwiftGit2-MBox 1.11.0

SwiftGit2-MBox 1.11.0

Whirlwind 维护。



  • Whirlwind James

SwiftGit2

Build Status Carthage compatible GitHub release Swift 3.0.x

Swift 的绑定库 libgit2.

let URL: NSURL = ...
let repo = Repository.at(URL)
if let repo = repo.value {
    let latestCommit: Result<Commit, NSError> = repo
        .HEAD()
        .flatMap { repo.commit($0.oid) }
    if let commit = latestCommit.value {
        print("Latest Commit: \(commit.message) by \(commit.author.name)")
    } else {
        print("Could not get commit: \(latestCommit.error)")
    }
} else {
    println("Could not open repository: \(repo.error)")
}

设计

SwiftGit2 在可能的地方都使用值对象。这意味着使用 Swift 的 structenum,而不持有对 libgit2 对象的引用。这有几个优点

  1. 值可以被并发使用。
  2. 消费值不会导致磁盘访问。
  3. 磁盘访问可以被限制在更少的 API 中。

这极大地简化了长生命周期的应用程序的设计,这是 Swift 最常见的使用场景。因此,SwiftGit2 API 不一定与 libgit2 API 1-1 映射。

所有从仓库读取或写入的方法都在 SwiftGit 的唯一 class: Repository 上。这突出了这些方法的故障性和可变性,同时将所有其他实例都解除了不可变 structenum 的限制。

必需工具

为了构建 SwiftGit2,您需要安装以下本地工具

  • cmake
  • libssh2
  • libtool
  • autoconf
  • automake
  • pkg-config

将 SwiftGit2 添加到您的项目

将 SwiftGit2 添加到您项目的最简单方法是使用 Carthage。只需将 github "SwiftGit2/SwiftGit2" 添加到您的 Cartfile,然后运行 carthage update

如果您愿意,可以继续使用 艰难的 旧式方法

  1. 将 SwiftGit2 添加为项目中存储库的子模块。
  2. 运行 git submodule update --init --recursive 以获取所有 SwiftGit2 的依赖。
  3. SwiftGit2.xcodeproj 添加到您的项目 Xcode 项目或工作区。
  4. 在您的应用程序目标的“构建阶段”选项卡上,将 SwiftGit2.framework 添加到“与二进制链接库”阶段。SwiftGit2 还必须添加到“复制框架”构建阶段。
  5. 如果您将 SwiftGit2 添加到项目(而不是工作区),您还需要将适当的 SwiftGit2 目标添加到应用程序的“目标依赖项”中。

手动构建 SwiftGit2

如果您想在没有 Carthage 的情况下构建 SwiftGit2 的副本,可能用于开发

  1. 克隆 SwiftGit2
  2. 运行 git submodule update --init --recursive 以克隆子模块
  3. 在 Xcode 中构建

贡献

我们❤️接收拉取请求!GitHub 使得这变得简单

  1. 对代码库进行分叉
  2. 创建一分支以包含您的更改
  3. 发送拉取请求

所有贡献应遵守 GitHub 的 Swift 风格指南

许可证

SwiftGit2 的许可协议为 MIT 协议。