php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #55016 PhD OE failure to detect commit clash
Submitted: 2011-06-09 15:52 UTC Modified: 2020-02-02 19:28 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: mgf@php.net Assigned:
Status: Not a bug Package: Online Doc Editor problem
PHP Version: Irrelevant OS:
Private report: No CVE-ID: None
 [2011-06-09 15:52 UTC] mgf@php.net
Description:
------------
Scenario: a file was opened for editing in the online editor, and then held open
for an extended period; when eventually committed, an intervening commit by
another user was reverted without any clash warning.

Explanation from Hannes on the phpdoc list:

> The editor saves full files, not patchsets.
> AFAICT, once you start working on a file it isn't synced with svn at
> any point. Then on commit, the wip file is copied over the original
> one, overwriting any changes happened since the work started and
> commits it - hence not creating conflicts.



Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2011-06-14 16:15 UTC] yannick@php.net
-Assigned To: +Assigned To: yannick
 [2011-06-14 16:15 UTC] yannick@php.net
When we try to commit a file via the editor, the processus is :

1) we "svn up" each file to search if the file haven't been modified since last update processus ( http://svn.php.net/viewvc/web/doc-editor/trunk/php/RepositoryManager.php?revision=309774&view=markup , line 1070, call beforeCommitChanges() method )

2) if the file have been modified since last update processus, we don't commit it, and delete pending work. This processus can be view here : http://svn.php.net/viewvc/web/doc-editor/trunk/php/RepositoryManager.php?revision=309774&view=markup , line 841 to 853
 [2011-07-11 11:33 UTC] philip@php.net
One problem here is the diff/patch ends up looking incorrect. For example, one such diff contains this:

-<!-- $Revision: 310734 $ -->
-<!-- EN-Revision: 310390 Maintainer: simp Status: ready -->
+<!-- $Revision: 305441 $ -->
+<!-- EN-Revision: 301404 Maintainer: simp Status: ready -->

That needs to be addressed. I'm too scared to test your theory and press "commit" though :), but it 
sounds like the commit will fail?

However, how that diff was generated (The +Revision is old compared to the -Revision) is a question we 
must explore.
 [2012-04-13 13:34 UTC] yannick@php.net
Sorry for this last response Philip

In this case, we generate the diff with raw file : raw original file, and raw 
modified file.
The diff process don't check if there is a new commit on this file.
 [2017-10-24 07:55 UTC] kalle@php.net
-Status: Assigned +Status: Open -Assigned To: yannick +Assigned To:
 [2020-02-02 19:28 UTC] yannick@php.net
-Status: Open +Status: Not a bug
 [2020-02-02 19:28 UTC] yannick@php.net
Thank you for taking the time to report a problem with PHP.
Unfortunately you are not using a current version of PHP --
the problem might already be fixed. Please download a new
PHP version from http://www.php.net/downloads.php

If you are able to reproduce the bug with one of the latest
versions of PHP, please change the PHP version on this bug report
to the version you tested and change the status back to "Open".
Again, thank you for your continued support of PHP.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Dec 26 21:01:28 2024 UTC