Merging Three Git Repositories Into One Repository Without Losing File History

Let’s assume that we have three separate git repos named uremont-client, uremont-service, uremont-sdk. We want to create a new repo, named uremont-ios, that contains all those repos in separate folders to have one single repo.

Why do we want to do this? In my case I had two apps and one sdk for them, and it was inconvenient for me to push changes to three separate repos while I was working with these projects and sdk at the same time.

Let’s start.

Terminal setup to allow git to move all folders except one. We will need this later.

Create a new folder uremont-ios and initialize git repo:

Add remote of first old project uremont-client that we want to merge to the new git repo and fetch it:

Merge first old project uremont-client to the new repo:

Move all folders and files of that old project to the separate folder inside of our new project:

Commit changes:

Similarly merge second old project uremont-service to the new repo:

And third:

Finally, add a new remote to our new repo and push it:

Chaining example on RxSwift

This is one of the reasons I love RxSwift. It allows to chain requests beautifully.

Here I authorize user by getting auth token, then I request userInfo, then I request profile.

Что нового в iOS 12

ARKit 2
Multiuser and Persistent AR. – сохранение данных из AR сессии в приложении, многопользовательский режим AR.
Object Detection. – распознавание объектов реального мира и добавление их в AR приложения.

Siri Shortcuts
Siri предсказывает быстрый доступ (shortcuts) для действий в приложении.

Health Records
Доступ к информации о здоровье в приложениях.

Effects
Показ стикеров и сообщений в iMessage в виде эффектов.

Interactive Controls in Notifications
Полная кастомизация уведомлений.

Authentication Services
Позволяет шарить логин-сессию между Safari и приложением, чтобы логинить пользователя проще.

CarPlay for Navigation Apps

Network Framework
Доступ к протоколам TLS, TCP, UDP.
URLSession, работающий с HTTP, построен поверх этого фреймворка.

Natural Language
Получение метаданных из текста.

Deprecation of OpenGL ES
OpenGL ES deprecated, необходимо использовать только Metal.