Frequently Asked Questions

benbalter edited this page Oct 4, 2012 · 6 revisions

How does the plugin handle merging?

Post Forking extends WordPress's native Diff system to allow three-way merges, similar to Git. It compares the original (pre-fork) post, the fork, and the current (live) version of the post to determine what, if anything has changed in the fork that is not reflected in the post, and merges the fork back back into the parent post. If the merge is clean, WordPress will merge the fork back into the post. If not, it will note the conflict and present it to the user for a decision.

How does the plugin handle conflicts?

Conflicts are notated similar to git merge conflicts using >>>>>>, ======, and <<<<<< markings within the body of the fork. The merger is then presented with the ability to resolve the conflict manually.

Wait, so this uses git?

No. The plugin borrows some concepts from decentralized version control systems like Git, but the underlying technology is still just WordPress's normal revision system.

Can it handle "Pull Requests" like on GitHub?

Yes. Post Forking uses the built-in WordPress moderation system. Any user without the publish_fork capability will be presented with the opportunity to submit their fork for review to an editor. The editor can then check the moderation queue before accepting or rejecting the fork.

Can I fork more than just the post_content field? What about taxonomies or post meta?

As of this version, the only editable portion of the fork is the post_content field. The underlying logic has been built to be easily abstracted to accomidate forking of title, post meta, and taxonomies, but the logic for merging additional fields is not as clean. We'd need to create a snapshot of the post meta or taxonomy terms prior to the fork and then write the logic to do a three way merge of the changes. Complicating things further, for post meta, meta can be a single value or an array, furthing complicating a theoretical merge. Last, post_title would affect post_name which would break in the event of a conflict.

I tried to merge a post and now I see a bunch of arrows and equal signs... what gives?

This is what's called a merge conflict. It means that the post cannot be automatically merged into the original, most likely because the original has been update since the post was forked. The arrows indicate the difference between the original and the fork. Edit the fork to resolve the conflict, and try merging again.

Can I compare a fork to the original post?

Yes. Just hit the compare button in the top right corner of the edit fork screen.

Is Post Forking available in my language?

Post Forking is available in both English and German. Interested in translating it to your language? No technical knowledge necessary. Learn how.