Skip to content

Commit

Permalink
Merge pull request #1 from byohay/feature/add-readme
Browse files Browse the repository at this point in the history
  • Loading branch information
byohay committed Apr 22, 2021
2 parents 455887d + 9a54c29 commit 7608096
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 0 deletions.
23 changes: 23 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Contributing

If you wish to contribute to the project, please follow the guidelines below.

## Opening issues

- Check that the issue doesn't exist already.
- Check that the issue was not already fixed in the latest `main`.

## Pull requests

**During development**

- Make sure you're on the latest version to avoid conflicts when opening the pull request.
- Install the needed gems by running `bundle install`.
- Make the changes you need and commit them.
- Add tests for the new functionality.
- Run `bundle exec rake` and make sure all the tests pass.

**Before opening a pull request:**

- Squash the commits such that each represents a single coherent change. Make sure that they have [good commit messages](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html).
- Open a [pull request](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests).
51 changes: 51 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
<p align="center">
<img src="./logo/kintsugi.png" alt="Kintsugi Logo"/>
</p>

# Kintsugi [![Ruby Style Guide](https://img.shields.io/badge/code_style-rubocop-brightgreen.svg)](https://github.com/rubocop/rubocop)

## What is this?

One of the frustrations of working with Xcode together with Git is resolving conflicts in Xcode project files, i.e. the `project.pbxproj` file.

Kintsugi sets out to solve this exact problem: Automatically resolving Git merge conflicts occurring in `.pbxproj` files.

The end goal is for the tool to succeed 99.9% of the time, and let you resolve the real conflicts in a convenient way the rest of the time.

> Kintsugi (金継ぎ) is the art of repairing broken pottery by mending it with gold. [Wikipedia](http://en.wikipedia.org/wiki/Kintsugi)
## How?

Kintsugi understands the changes you've made to the `.pbxproj` file, so it simply resets the conflicts and re-applies those changes to it.

From a technical perspective, Kintsugi heavily relies on [Xcodeproj](https://github.com/CocoaPods/Xcodeproj). It uses its diff capability to extract the changes, and uses its project files editing capabilities to apply the changes.

## Installing Kintsugi

```sh
$ gem install kintsugi
```

If you prefer to use bundler, add the following line to your Gemfile:

```rb
gem 'kintsugi', require: false
```

## Usage

When there's a `.pbxproj` file with Git conflicts, run `kintsugi <path_to_pbxproj_file>`.

And see the magic happen! :sparkles:

## Contribution

See our [Contribution guidelines](./CONTRIBUTING.md).

## Alternatives

- [XcodeGen](https://github.com/yonaskolb/XcodeGen): You can commit this JSON file into Git instead of the `.pbxproj` file. Then resolving conflicts is much easier.

## Copyright

Copyright (c) 2021 Lightricks. See [LICENSE](./LICENSE) for details.
Binary file added logo/kintsugi.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 7608096

Please sign in to comment.