Review Request 113584: Ask git if it is safe to reload a document

Sven Brauch svenbrauch at googlemail.com
Mon Nov 4 01:00:08 UTC 2013



> On Nov. 4, 2013, 12:42 a.m., Aleix Pol Gonzalez wrote:
> > plugins/git/gitplugin.cpp, line 1403
> > <http://git.reviewboard.kde.org/r/113584/diff/3/?file=208931#file208931line1403>
> >
> >     Synchronous API sounds bad, especially since dealing with processes.

Ok, I thought it would be bad to have async API because we need to decide pretty much immediately what to do, but since we wait in the deleted case anyways I guess I can make it async as well. Will update shortly.


> On Nov. 4, 2013, 12:42 a.m., Aleix Pol Gonzalez wrote:
> > shell/textdocument.cpp, line 176
> > <http://git.reviewboard.kde.org/r/113584/diff/3/?file=208933#file208933line176>
> >
> >     I would say that if the file is deleted and the user didn't edit it, then the file can just go, or at least it should stay in some kind of read only mode that is apparent to the user that the file is gone, and not by using a message box.
> >     
> >     I think that trying to go through the VCS is trying to play too smart.

Hmm, I'm not sure I understand that. Accidentially deleting a file is actually one of the common cases for data loss.

Replacing the message box by a passive popup is probably a good idea, but pretty much unrelated to this, no? If the file was removed but the old version is in the VCS, we close the file, if it's not there then we somehow keep it to offer the user the possibility to recover it.


- Sven


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/113584/#review42918
-----------------------------------------------------------


On Nov. 3, 2013, 9:52 p.m., Sven Brauch wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/113584/
> -----------------------------------------------------------
> 
> (Updated Nov. 3, 2013, 9:52 p.m.)
> 
> 
> Review request for KDevelop, Aleix Pol Gonzalez and Milian Wolff.
> 
> 
> Repository: kdevplatform
> 
> 
> Description
> -------
> 
> When a file is changed on disk, we can look in the git object repository
> and see whether the contents currently in the editor are stored somewhere
> there. In that case, there is no risk of data loss when we just silently
> reload the document; the user can always retrieve the old version from
> git.
> 
> For this purpose I added a new VCS interface which version control plugins
> can choose to implement if they are able and willing to provide this
> functionality. If a plugin does not implement the interface, the old
> behaviour is unaffected.
> 
> I implemented the interface for the git plugin and it seems to be working fine.
> There's two issues we might want to talk about:
>  - We can not retrieve the line ending mode from kate. Thus, currently it will
>    only work for files with \n line endings (old behaviour is used instead for
>    different line endings).
>  - It's not blazingly fast. It's not exactly slow, but if you have like 35
>    documents open, the freeze on switching to a completely different branch
>    is noticeable. Test it yourself and give your opinion on whether this
>    is acceptable or not.
> 
> 
> Diffs
> -----
> 
>   plugins/git/gitplugin.h 2f60c24b9d223a815eda6627d1328ce2404e11af 
>   plugins/git/gitplugin.cpp 27f4eaeea46afdfccb88d64caf161cc84a1e5bad 
>   shell/textdocument.h 8bb29fea8395d4cac956778fae85a4a9f57c2cce 
>   shell/textdocument.cpp 187a071d78c3e2d00092bb2adde533486be11eee 
>   vcs/interfaces/icontentawareversioncontrol.h PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/113584/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Sven Brauch
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20131104/99a0b808/attachment-0001.html>


More information about the KDevelop-devel mailing list