Skip to content

Latest commit

 

History

History
54 lines (35 loc) · 2.28 KB

merge_composer.md

File metadata and controls

54 lines (35 loc) · 2.28 KB

A. Resolve conflicts

If you get a lot of conflicts and you installed from the support.ez.no / support.ibexa.co tarball or from ezplatform.com, you may have incomplete history.

To load the full history, run git fetch upstream --unshallow from the update-[[= target_version =]] branch, and run the merge again.

Ignore the conflicts in composer.lock, because this file is regenerated when you execute composer update later. It's easiest to check out the version of composer.lock from the tag and add it to the changes:

git checkout --theirs composer.lock && git add composer.lock

If you don't keep a copy of composer.lock in the branch, you may also remove it by running:

git rm composer.lock

B. Resolve conflicts in composer.json

You need to fix conflicts in composer.json manually.

If you're not familiar with the diff output, you may check out the tag's version from the update-[[= target_version =]] branch and inspect the changes.

git checkout --theirs composer.json && git diff HEAD composer.json

This command shows the differences between the target composer.json and your own in the diff output.

Updating composer.json changes the requirements for all of the ezsystems / ibexa packages. Keep those changes. The other changes remove what you added for your own project. Use git checkout -p to selectively cancel those changes (and retain your additions):

git checkout -p composer.json

Answer no (don't discard) to the requirement changes of ezsystems / ibexa dependencies. Answer yes (discard) to removals of your changes.

After you're done, inspect the file (you can use an editor or run git diff composer.json). You may also test the file with composer validate, and test the dependencies by running composer update --dry-run (it outputs what it would do to the dependencies, without applying the changes).

When finished, run git add composer.json and commit.

C. Fix other conflicts

Depending on the local changes you have done, you may get other conflicts, for example, on configuration files or kernel.

For each change, edit the file, identify the conflicting changes, and resolve the conflict. Run git add <conflicting-file> to add the changes.