jplag / JPlag

State-of-the-Art Source Code Plagiarism & Collusion Detection
https://jplag.github.io/JPlag/
GNU General Public License v3.0
1.42k stars 312 forks source link

Feature request: single submission against "older submissions" #1849

Open euberdeveloper opened 3 months ago

euberdeveloper commented 3 months ago

I have a particular usecase.

Starting the current semester 2023 like this:

2023
    ms1
    ms2
        ms3
        ms4

2022
    ms1
        gr1
        gr2 
        gr3
    ms2
        ms3
        ms4
2021
    ms1
        gr1 
        gr2 
        gr3
    ms2
        ms3
        ms4

The first group "gr1" does a submission on a website. The WebServer automatically clones the code into the path "2023/ms1/gr1" and obtains:

2023
    ms1
        gr1
    ms2
        ms3
        ms4

2022
    <same as before>
2021
    <same as before>

This submission "2023/ms1/gr1" is to be tested only against the older submissions "2022/ms1" and "2021/ms1". There are no other current submissions so the current submissions is a Set of size 1.

This gets refused by JPlag

Still, when gr2 submits "2023/ms1/gr2" I obtain:

2023
    ms1
        gr1
        gr2
    ms2
        ms3
        ms4

2022
    <same as before>
2021
    <same as before>

Here I still want only one group, the submitting one which is "gr2", to be tested against the gr1 submission of 2023 and all the previous submissions of the previous years. So I would have as current submissions the set "2023/ms1/gr2" and as older submissions ["2023/ms1/gr1", "2022/ms1", "2021/ms1"]

Again, this is not possible because the current submissions set is of size 1 and Jplag doesn't allow it

euberdeveloper commented 3 months ago

I have done an implementation of a possible solution (more like a proof of concept) into this branch: https://github.com/euberdeveloper/JPlag/tree/feature/allow-duplicate-submission-names