LateralGM used to use an old version of
JEdit for the script editor.
This was difficult to manage, since that project was created by a
different team and the version we were using was old (essentially
defunct, but very functional). To compensate for this, a new project,
called JoshEdit, was started to replace it.
As JoshEdit matured, it started to reach a state where it could compete
with JEdit, and we could start to port existing functionality over. To
do this, LateralGM created a branch for JoshEdit. In this branch,
initially, we simply removed JEdit and implemented JoshEdit (which meant
a significant loss of functionality). Then, we started to port
functionality.
JoshEdit quickly became the desirable editor, especially since it was
newer and in development, meaning it would hopefully soon surpass JEdit.
As such, products that used LateralGM (such as
ENIGMA) demanded that the JoshEdit branch be used
instead of JEdit. Because of this, whenever new features (unrelated to
JoshEdit) were implemented, they were usually pushed to the JoshEdit
branch, instead of the origin branch, as git intends. Eventually we
remembered that completed features push to origin, not a branch, and we
started doing that. As a result, these two branches have pushed away
from each other a bit, and we suspect they will be difficult to merge
when the time comes.
The JoshEdit branch will be merged with origin when it either surpasses
*all* of the JEdit functionality, or when the two share a basic set of
implementor functions and can be swapped out with each other without
requiring a significant recode. When this time comes, due to the
divergence in the branches, we anticipate a bit of difficulty in the
merge.
Due to the divergence of the branches from origin, it's very important
to merge these two and bring all features from both branches together.
This is high priority to prevent any further features from diverging
these branches even further and making the merge more difficult,
potentially even leading to loss of features.