-
-
Notifications
You must be signed in to change notification settings - Fork 2.6k
GSoC 2022 — Implement a Three Way Merge UI for merging BibTeX entries
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 |
Merging duplicates and resolving conflicts is a major use case for JabRef users, according to a 2019 research conducted by JabRef developers [^1]
Currently, both features are implemented using a two-way merge UI. This often leads to a poor user experience as users cannot see the merged entry immediately.
The goal of this project is to design and implement a new UI concept for merging entries that allow for a three-way merge. As well as implementing additional new features for making the merging process as easy and convenient as possible.
#8945 — [GSOC22] - A - Implement a fully functional three way merge UI
In this PR, I completed the first and second milestones listed in my proposal, which include designing and implementing a 3-way merge UI and replacing the existing merge UI with the new one in components that depend on it, which are:
- Duplicate resolver dialog
- External changes resolver dialog
- Merge entries dialog
#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
#9110 — Hide diffs when one of the field values is blank a.k.a no conflict
#9140 — Clarify the duplicates resolver dialog actions
user-documentation#404 — Update Merge entries dialog documentation
#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
#9150 — Fix missing CSS for some dialogs
Light Theme | |
---|---|
Dark Theme |
Light Theme | |
---|---|
Dark Theme |
- 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.
- 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.
- 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.
- 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.
- Milestone 4: Update user documentation and write tests (required)
- Update Find duplicates documentation.
- Update Merge entries documentation.
- Write tests.
- A Buffer of two weeks is kept for any unpredictable delay
- Deliver a fully functional 3-way merge #6190.
- Deliver a new UI concept for merging entries.
-
Implement Previous Difference/Next Difference.(Turns out to be useless as most users don't have that many fields) -
Implement synchronized scrolling and make soft-wrap optional.(It was decided that this is useless) - Improve diff highlighting.
- Implement keyword merging as described in koppor#12.
[^1]: Simon, Martin K., et al. “Analyzing the Importance of JabRef Features from the User Perspective.” ZEUS. 2019
- Home
- General Information
- Development
- Please go to our devdocs at https://devdocs.jabref.org
- "Google Summer of Code" project ideas
- Completed "Google Summer of Code" (GSoC) projects
- GSoC 2024 ‐ Improved CSL Support (and more LibreOffice‐JabRef integration enhancements)
- GSoC 2024 - Lucene Search Backend Integration
- GSoC 2024 ‐ AI‐Powered Summarization and “Interaction” with Academic Papers
- GSoC 2022 — Implement a Three Way Merge UI for merging BibTeX entries
- GSoC 2021 - Improve pdf support in JabRef
- GSoC 2021 - Microsoft Word Integration
- GSoc 2019 - Bidirectional Integration — Paper Writing — LaTeX and JabRef 5.0
- GSoC Archive
- Release
- JabCon Archive