What does it mean : "Cannot undo. Some files were changed."


I have the feeling undo is badly broken : it keeps sending this stupid
message :

"Cannot undo. Some files were changed."

Of course, files were changed !! Otherwise, I wouldn't have anything to
undo.

What does this message mean?

Alain

50 comments
Comment actions Permalink

Alain Ravet wrote:

Robert S. Sfeir wrote:

> I do agree that hitting undo should generally back step through things
> .. at least to .. 100 steps,

Why not say
3 days


what ever it is, I'm just saying let us configure it, and they need to
deal with it. Perhaps the limit is 3 days... of course the longer it
is, the more memory it should require to load all this info so it will
know what the hell to do.

R

0
Comment actions Permalink

Robert S. Sfeir wrote:

> Alain Ravet wrote:
>> Why not say 3 days

> what ever it is, .. of course the longer it is, the more memory
> it should require to load all this info so it will know what
> the hell to do.

'3 days' was a hint : it's LVCS default value.

If the data is in the LVCS repository, it can be undone.


Alain

0
Comment actions Permalink

It means undo what you've just done, step by step, globally, over the
whole project - like LVCS- , and not locally, in 1 editor, 1 file.


I seem to remember undo working like this (globally), and then by request
from many users being changed to "undo locally in file only".

Carlos


0
Comment actions Permalink

(I think that's right...)


Yes, exactly.

--
Valentin Kipiatkov
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"


"Vilya Harvey" <vilya.harvey@digitalsteps.com> wrote in message
news:blcckq$qkh$1@is.intellij.net...

To illustrate:

>

Say you're editing class A and decide rename a method. Then you switch to
class B, which calls that method and so was affected by the refactoring.

Now

you change class B to remove the call to the method in class A. Finally,

you

switch back to class A and try to undo the renaming of the method. The

undo

will fail, because it can't undo the renaming in class B without affecting
the changes you made to it afterwards.

>

(I think that's right...)

>

Vil.

>

Alain Ravet wrote:

>

Valentin Kipiatkov (JetBrains) wrote:
> IMO we should leave undo as simple as possible.
> You should probably use Local VCS to deal with complicated cases.

>
>

I still don't understand the meaning of the message/why it's not a bug :

>

You can undo a rename refactoring that had effects spanning over many
files.
Could you give an example of a modification spanning multiple files
where is supposed to display this error message?

>

Alain

>

>

--
Vilya Harvey
vilya.harvey@digitalsteps.com / digital steps /
(W) +44 (0)1483 469 480
(M) +44 (0)7816 678 457 http://www.digitalsteps.com/

>

Disclaimer

>

This e-mail and any attachments may be confidential and/or legally
privileged. If you have received this email and you are not a named
addressee, please inform the sender at Digital Steps Ltd by phone on
+44 (0)1483 469 480 or by reply email and then delete the email from
your system. If you are not a named addressee you must not use,
disclose, distribute, copy, print or rely on this email. Although
Digital Steps Ltd routinely screens for viruses, addressees should
check this email and any attachments for viruses. Digital Steps Ltd
makes no representation or warranty as to the absence of viruses in this
email or any attachments.

>


0
Comment actions Permalink

Long time ago (in 1.0 version for sure but I don't remember exactly in which
version we fixed that) undo used to undo all changes to the project one by
one in the order opposite to the order in which they took place. To show
users what exactly is to be undone the corresponding editor was opened and
the old position was restored before undoing changes. This caused numerous
complains from users asking to provide "per-file undo". It's not obvious how
exactly it should work given that some of the operations to be undone span
across multiple files. But we invented some scheme which seems to be usable
enough. Here it is:

All actions performed by the user are divided into 2 categories "simple" and
"complex". Simple actions are generally all actions which has changed only
one file (but there is a way to explicitly mark an action as complex even if
it changes only one file) and complex actions are all others. A complex
action should have some meaningful name and user is prompted for a
confirmation before undoing it.

When user presses the undo button the behaviour is dependent on whether the
focus is within an editor or not. When the focus is in some editor the
action to be undone is the last action (either simple or complex) which
affected this file. When the focus is somewhere outside the editor the
action to be undone is the last complex action performed.

--
Valentin Kipiatkov
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"


"Alain Ravet" <alain.ravet.list@wanadoo.be> wrote in message
news:blcekd$a54$2@is.intellij.net...

Nathan Brown wrote:

>

> .. why can't the rename be reversed at this point?

>

As I replied to Vilya, 'Undo' should simple undo what you've just done,
and not try to corrupt the time-space continuum.

>

I find the current 'Undo' behaviour unlogical, counter-intuitive and
less effective than ..

>

Alain

>


0
Comment actions Permalink

Valentin,

> All actions performed by the user are divided into 2 categories
> "simple" and "complex". ..
>.. but there is a way to explicitly mark an action as complex even if
> it changes only one file..
> ..
> When user presses the undo button the behaviour is dependent on
whether
> the focus is within an editor or not. When the focus is in some editor
> the action to be undone is the last action (either simple or
complex) which
> affected this file. When the focus is somewhere outside the editor the
> action to be undone is the last complex action performed.


I maybe daydreaming here, but it looks like the the old behaviour -
global undo - is still there, and could be easily restored, and offered
as an option in IDEA settings :

1°/ Mark all actions as "complex"
2°/ 'Undo' triggers undoing the last complex actions,
wherever it took place.
rinse, and repeat



Alain

0
Comment actions Permalink

Of course this should not be too difficult to restore the old functionality
(although not that easy as you described). We just not sure we should do
this.

--
Valentin Kipiatkov
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"

"Alain Ravet" <alain.ravet.list@wanadoo.be> wrote in message
news:bleih5$nvd$1@is.intellij.net...

Valentin,

>

> All actions performed by the user are divided into 2 categories
> "simple" and "complex". ..
>.. but there is a way to explicitly mark an action as complex even if
> it changes only one file..
> ..
> When user presses the undo button the behaviour is dependent on
whether
> the focus is within an editor or not. When the focus is in some

editor

> the action to be undone is the last action (either simple or
complex) which
> affected this file. When the focus is somewhere outside the editor

the

> action to be undone is the last complex action performed.

>
>

I maybe daydreaming here, but it looks like the the old behaviour -
global undo - is still there, and could be easily restored, and offered
as an option in IDEA settings :

>

1°/ Mark all actions as "complex"
2°/ 'Undo' triggers undoing the last complex actions,
wherever it took place.
rinse, and repeat

>
>
>

Alain

>


0
Comment actions Permalink

Valentin Kipiatkov (JetBrains) wrote:

Of course this should not be too difficult to restore the old functionality
(although not that easy as you described). We just not sure we should do
this.

let us vote on it. Put up an SCR with a To Be discussed and mention we
need to vote.

R

0
Comment actions Permalink

I usually don't think that every IDEA feature should be configurable in every possible way (other than by plugin support, that is), just for the sake of satisfying every coding habit (whether good or bad). However, I strongly believe that the undo policy is a matter perfectly suitable for configuration.

But rather than choosing in advance one policy over another, can't you simply offer - at any time - both local undo and global undo actions? Are there consistency or implementation problems with both actions being avaliable at the same time?

Vlad

0
Comment actions Permalink

let us vote on it. Put up an SCR with a To Be discussed and mention we
need to vote.


Well, you can submit it yourself if you want.

--
Valentin Kipiatkov
JetBrains, Inc
http://www.intellij.com
"Develop with pleasure!"


"Robert S. Sfeir" <no_mail@jetbrains.com> wrote in message
news:blf2ic$hsf$1@is.intellij.net...

Valentin Kipiatkov (JetBrains) wrote:

>

Of course this should not be too difficult to restore the old

functionality

(although not that easy as you described). We just not sure we should do
this.

>
let us vote on it. Put up an SCR with a To Be discussed and mention we
need to vote.

>

R

>


0
Comment actions Permalink

+Of course this should not be too difficult to restore the old functionality
(although not that easy as you described). We just not sure we should do
this.+

This must've been here before I discovered IDEA; it sounds perfect!

0
Comment actions Permalink

Valentin Kipiatkov (JetBrains) wrote:

>Of course this should not be too difficult to restore the old functionality
>(although not that easy as you described). We just not sure we should do
>this.
>

>

Look at and .
To me, they work in the same league, and should play by the same rules.

Or maybe you plan to "upgrade" , and have it do
its stuff in the current editor, only, as .

Alain

0
Comment actions Permalink

Rayz wrote:

>This must've been here before I discovered IDEA; it sounds perfect!
>

>


Don't you find strange the and don't
define "backwards" the same way?

Alain

0
Comment actions Permalink

Just a flag up here... If the "old functionality" is made available, the
existing functionality must still be available too. If I've edited a
file, and interspersed edits to other files, it would be a nightmare
when I wanted to undo back through just the original file. We don't
always program in 1 "thread"... at least I don't!

N.

Alain Ravet wrote:

Valentin Kipiatkov (JetBrains) wrote:

>> Of course this should not be too difficult to restore the old
>> functionality
>> (although not that easy as you described). We just not sure we should do
>> this.
>>
>>
>>


Look at and .
To me, they work in the same league, and should play by the same rules.

Or maybe you plan to "upgrade" , and have it do
its stuff in the current editor, only, as .

Alain


0
Comment actions Permalink

Nathan Brown wrote:

Just a flag up here... If the "old functionality" is made available,
the existing functionality must still be available too. If I've
edited a file, and interspersed edits to other files, it would be a
nightmare when I wanted to undo back through just the original file.
We don't always program in 1 "thread"... at least I don't!

>

N.



I don't understand what you mean by "program in 1 thread"
.
When I "program in 1 thread" in a class A, I often
- create by intention a method in class B,
- write some code in its body,
- go back to class A,
- create by intention a method in class C,
- write some code in its body,
- go back to class A,

etc....
If this simple work, that took 60 seconds to execute breaks a test, I
want undo to undo it, over class A, B and C to find the point where I
broke something.
Currently, I have to use LVCS to do this kind of undo.This is not good.
Undo should undo.

Alain


0
Comment actions Permalink

Currently, I have to use LVCS to do this kind of undo.This is not good.
Undo should undo.


Noone's saying that you can't have what you want. All I'm saying is
that what we've got now is still valid in certain situations.

E.g.

Change text in button 1.
Do some work in class 2.
Boss says "no don't like new text, put the old text back"
You don't want undo undoing your work in class 2 if you want to undo the
text change. You just want to undo the change to that file.

0
Comment actions Permalink

Just a thought, but how about if the "Cannot undo" dialog offered the option
to rollback using the LVCS?

Vil.

Alain Ravet wrote:

Currently, I have to use LVCS to do this kind of undo.This is not good.
Undo should undo.


--
Vilya Harvey
vilya.harvey@digitalsteps.com / digital steps /
(W) +44 (0)1483 469 480
(M) +44 (0)7816 678 457 http://www.digitalsteps.com/

Disclaimer

This e-mail and any attachments may be confidential and/or legally
privileged. If you have received this email and you are not a named
addressee, please inform the sender at Digital Steps Ltd by phone on
+44 (0)1483 469 480 or by reply email and then delete the email from
your system. If you are not a named addressee you must not use,
disclose, distribute, copy, print or rely on this email. Although
Digital Steps Ltd routinely screens for viruses, addressees should
check this email and any attachments for viruses. Digital Steps Ltd
makes no representation or warranty as to the absence of viruses in this
email or any attachments.

0
Comment actions Permalink

Nathan Brown wrote:

>

Noone's saying that you can't have what you want. All I'm saying is
that what we've got now is still valid in certain situations.
E.g.
Change text in button 1.
Do some work in class 2.
Boss says "no don't like new text, put the old text back"
You don't want undo undoing your work in class 2 if you want to undo
the text change. You just want to undo the change to that file.

>


I don't want to start a war on undo use cases, but this scenario happens
- to me - a great lot less often than a standard undo (1-10% ?) , and it
can be done easily with LVCS.

Currently, it's this rare use case that's easy , and the normal
one that's a pain to execute .
That's not logical.

Alain


0
Comment actions Permalink

Vilya Harvey wrote:

Just a thought, but how about if the "Cannot undo" dialog offered the
option to rollback using the LVCS?



To me, the only valid improvement is to have both.

I'd assign the new one to Ctrl-Z., first thing after installation.
For the other one, that happens 1% of the time, I have no problem having
to use LVCS.

Alain

0
Comment actions Permalink

Alain Ravet wrote:

I don't want to start a war on undo use cases, but this scenario happens
- to me - a great lot less often than a standard undo (1-10% ?) , and it
can be done easily with LVCS.


It was a long time since IDEA's undo was changed, but I do remember that
I thought the previous behaviour was extremely annoying. And no, I
don't think the current undo behaviour can be done easily with LVCS,
since LVCS is far more coarse grained. I don't want to have to undo
five minutes' worth of changes just because LVCS didn't add checkpoints
often enough.

(By the way, why can this be done easily with LVCS while global undo
"is a pain" due to having to use LVCS?)

I guess we'll just have to agree to disagree on what's the most common
use case (or rather, agree that different people use these tools in
different ways).

I certainly don't have anything against restoring the old functionality
as long as the existing one is also available.

0

Please sign in to leave a comment.