Hi,
I have target = pywikibot.Page(site, uploadPage) oldtext = target.get() <long computing> target.put(pretext + text, uploadComment)
pywikibot.exceptions.EditConflict: An edit conflict has occured.
So, is the likelihood of an edit conflict connected to elpased time between instantiation and put(), or between get() and put()? Is it useful to reinstantiate the page? Is it useful to give a second chance to put() in case of edit conflict, or loop it?
I mean <long computing> lasts 30 hours, so I *really *don't want edit conflicts, and I got 2 during tests, because of frequent edits.
2018-02-17 12:12 GMT+01:00 Bináris wikiposta@gmail.com:
Hi,
I have target = pywikibot.Page(site, uploadPage) oldtext = target.get()
<long computing> target.put(pretext + text, uploadComment)
pywikibot.exceptions.EditConflict: An edit conflict has occured.
So, is the likelihood of an edit conflict connected to elpased time between instantiation and put(), or between get() and put()? Is it useful to reinstantiate the page? Is it useful to give a second chance to put() in case of edit conflict, or loop it?
-- Bináris
If I recall corectly mediawiki uses the timestamp of the .get() however just redoing the .get() right before the .put() will just overwrite the changes made by the other user instead of merging them. You would need to re-manipulate the text object and re-do all of all of your changes.
On Sat, Feb 17, 2018 at 7:47 AM Bináris wikiposta@gmail.com wrote:
I mean <long computing> lasts 30 hours, so I *really *don't want edit conflicts, and I got 2 during tests, because of frequent edits.
2018-02-17 12:12 GMT+01:00 Bináris wikiposta@gmail.com:
Hi,
I have target = pywikibot.Page(site, uploadPage) oldtext = target.get()
<long computing> target.put(pretext + text, uploadComment)
pywikibot.exceptions.EditConflict: An edit conflict has occured.
So, is the likelihood of an edit conflict connected to elpased time between instantiation and put(), or between get() and put()? Is it useful to reinstantiate the page? Is it useful to give a second chance to put() in case of edit conflict, or loop it?
-- Bináris
-- Bináris _______________________________________________ pywikibot mailing list pywikibot@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/pywikibot
Hi Binaris,
be happy to get this EditConflict because the behaviour detecting it is not safe, see https://phabricator.wikimedia.org/T93364.
Anyway it is not a good idea to retry putting the page with the same modfied content because you will revert the previous edit. You have to get the new page content, modify it and save it afterwards. This means it would be better to skip the current edit and run the bot later again,
Best
Xqt
Bináris wikiposta@gmail.com hat am 17. Februar 2018 um 12:12 geschrieben:
Hi, I have target = pywikibot.Page(site, uploadPage) oldtext = target.get() <long computing> target.put(pretext + text, uploadComment) pywikibot.exceptions.EditConflict: An edit conflict has occured. So, is the likelihood of an edit conflict connected to elpased time between instantiation and put(), or between get() and put()? Is it useful to reinstantiate the page? Is it useful to give a second chance to put() in case of edit conflict, or loop it? -- Bináris _______________________________________________ pywikibot mailing list pywikibot@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/pywikibot