Skip to content

GSoC 2022 — Implement a Three Way Merge UI for merging BibTeX entries

Houssem Nasri edited this page Aug 30, 2022 · 19 revisions
Student Houssem Nasri
Organization [JabRef]
Primary repository [JabRef/jabref]
Project name Implement a Three Way Merge UI for merging BibTeX entries
Project mentors @Siedlerchr, @calixtus, @koppor et al.
Project page Google Summer of Code 2022 Project Page
Status Work in progress

Project Summary

Pull Requests to main branch

GSOC Related

#8945 — [GSOC22] - A - Implement a fully functional three way merge UI

#9022 — [GSOC22] - B - Implement merging fields in the three way merge UI

#9021 — [GSOC22] - C - Improve the external changes resolver dialog

#9069 — [GSOC22] - D - Test the Three Way Merge UI

#8994 — Fix external group metadata changes are not merged

#9088 — Show a warning in the merge dialog when authors are the same but formatted differently

#9057 — Add the three-way merge changes to CHANGELOG.md

Outside of GSOC

#8874 — Use JDK 15 text blocks to improve injected languages readability

#8892 — Redesign "Manage field names & content" dialog

#8936 — Remember Sidepane width after restart

#8939 — Fix theme switching exception

#8973 — Improve Automatic Field Editor Dialog

#8993 — Sync group view mode and main table

Blog Posts

Project plan

May 20 - Jun. 12 (2 weeks / Community Bonding)

  • Remain in touch with my mentor and ask as many questions as possible.
  • Check what is reuseable from import merger dialog of last years GSoC project of btut.
  • Work on smaller features and issues to gain a better understanding of the codebase.

Jun. 13 - Jul. 3 (3 weeks / Coding officially begins!)

  • Milestone 1: Deliver a new UI concept for merging entries (required)
  • Create mockups and diagrams e.g. user flow diagram.
  • Deliver a design prototype using Figma or another program.
  • Discuss UI/UX decisions with the other devs and community members.
  • Start implementing the new design in code.

Jul. 4 - Jul. 24 (3 weeks)

  • Milestone 2: Deliver a fully functional 3-way merge (required)
  • Finish implementing the new design in code.
  • Implement the three-way merge.
  • Improve diff highlighting.

Jul. 25 - Aug. 14 (3 weeks)

  • Milestone 3: Fix issues related to merging entries (required)
  • Merge keywords koppor#12.
  • Assign merged entry to all groups of input entries #8024.
  • Fix trimmed spaces in merge dialog koppor#371.
  • And others. -- ?

Aug. 15 - Aug. 28 (2 weeks)

  • Milestone 4: Update user documentation and write tests (required)
  • Update Find duplicates documentation.
  • Update Merge entries documentation.
  • Write tests.

Aug. 29 - Sep. 12 (2 weeks)

  • A Buffer of two weeks is kept for any unpredictable delay

Project goals

  • Deliver a fully functional 3-way merge #6190.
  • Deliver a new UI concept for merging entries.
  • Implement Previous Difference/Next Difference.
  • Implement synchronized scrolling and make soft-wrap optional.
  • Improve diff highlighting.
  • Implement keyword merging as described in koppor#12.
Clone this wiki locally