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.