Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Swift bindings to libgit2

License

NotificationsYou must be signed in to change notification settings

SwiftGit2/SwiftGit2

Repository files navigation

Carthage compatibleGitHub releaseSwift 5.3.x

Swift bindings tolibgit2.

letURL:URL=...letresult=Repository.at(URL)switch result{caselet.success(repo):letlatestCommit= repo.HEAD().flatMap{            repo.commit($0.oid)}switch latestCommit{caselet.success(commit):print("Latest Commit:\(commit.message) by\(commit.author.name)")caselet.failure(error):print("Could not get commit:\(error)")}caselet.failure(error):print("Could not open repository:\(error)")}

Design

SwiftGit2 uses value objects wherever possible. That means using Swift’sstructs andenums without holding references to libgit2 objects. This has a number of advantages:

  1. Values can be used concurrently.
  2. Consuming values won’t result in disk access.
  3. Disk access can be contained to a smaller number of APIs.

This vastly simplifies the design of long-lived applications, which are the most common use case with Swift. Consequently, SwiftGit2 APIs don’t necessarily map 1-to-1 with libgit2 APIs.

All methods for reading from or writing to a repository are on SwiftGit’s onlyclass:Repository. This highlights the failability and mutation of these methods, while freeing up all other instances to be immutablestructs andenums.

Required Tools

To build SwiftGit2, you'll need the following tools installed locally:

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

Adding SwiftGit2 to your Project

The easiest way to add SwiftGit2 to your project is to useCarthage. Simply addgithub "SwiftGit2/SwiftGit2" to yourCartfile and runcarthage update.

If you’d like, you can do things thehard old-fashioned way:

  1. Add SwiftGit2 as a submodule of your project’s repository.
  2. Rungit submodule update --init --recursive to fetch all of SwiftGit2’s depedencies.
  3. AddSwiftGit2.xcodeproj to your project’s Xcode project or workspace.
  4. On the “Build Phases” tab of your application target, addSwiftGit2.framework to the “Link Binary With Libraries” phase. SwiftGit2 must also be added to a “Copy Frameworks” build phase.
  5. If you added SwiftGit2 to a project (not a workspace), you will also need to add the appropriate SwiftGit2 target to the “Target Dependencies” of your application.

Building SwiftGit2 Manually

If you want to build a copy of SwiftGit2 without Carthage, possibly for development:

  1. Clone SwiftGit2
  2. Rungit submodule update --init --recursive to clone the submodules
  3. Build in Xcode

Contributions

We ❤️ to receive pull requests! GitHub makes it easy:

  1. Fork the repository
  2. Create a branch with your changes
  3. Send a Pull Request

All contributions should match GitHub’sSwift Style Guide.

License

SwiftGit2 is available under the MIT license.

About

Swift bindings to libgit2

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp