2011-11-12 19 views
9

Pracuję nad projektem w Intellij IDEA. Przeprowadziłem refaktoryzację niektórych paczek. Jednak chcę cofnąć moje zmiany. Po kliknięciu przycisku przywrócić mówiIntellij IDEA nie może cofnąć

Cannot Undo

i pokazuje listę pod że:

Following files affected by this action have been already changed

Jak mogę przywrócić moje zmiany, bo stracił kilka pakietów i klas. Czy Intellij IDEA przechowuje je w folderze tymczasowym?

PS: Używam open jdk 1.6.0 na 64-bitowym komputerze Ubuntu.

Odpowiedz

14

IntelliJ IDEA posiada wspaniałą funkcję o nazwie lokalna historia. Mógłbym przywrócić moje zmiany. Jest wideo zawiera szczegółowy przykład dla niego:

http://www.jetbrains.com/idea/training/demos/local_history.html

można uzyskać więcej informacji tutaj: http://jetbrains.com/help/idea/2016.1/using-local-history.html

+0

Dzięki Serge Baranov z zespołu wsparcia Intellij IDEA. Natychmiast odpowiedział na moje pytanie, gdy poprosiłem o stronę wsparcia. – kamaci

+0

Tak, obsługa wsparcia IntelliJ jest świetna, to jeden z powodów (nie jedyny), dla którego wolę IntelliJ od Eclipse – Guillaume

+0

Ale na wypadek, gdy chcę przywrócić zmianę, naprawdę chcę przywrócić zmianę. ale nadal pokazuje się w trakcie sprawdzania z katalogu. Przechowywanie lokalnej historii to jedno, ale utrzymywanie historii SVN to kolejna. Oczekuję, że intellij nie będzie pokazywał niczego w poleceniu SVN lub cofnie się po cofnięciu pliku. –

2

Jak google tu kilka razy, kiedy rozwija IntelliJ wtyczki emacsIDEAs, ja zostawi moje rozwiązanie tutaj dla kogoś, kto tego potrzebuje. .

zwykle zmienić dokument musi być zrobione w runWriteAction, i cofanie zmian udokumentować potrzebę nazwie w CommandProcessor.getInstance() executeCommand

więc rozwiązanie to: zadzwoń executeCommand w runWriteAction, wówczas zmiany będą niemożliwe do usunięcia.

protected Runnable getRunnableWrapper(final Runnable runnable) { 
    return new Runnable() { 
     @Override 
     public void run() { 
      CommandProcessor.getInstance().executeCommand(_editor.getProject(), runnable, "cut", ActionGroup.EMPTY_GROUP); 
     } 
    }; 
} 

final Runnable runnable = new Runnable() { 
    @Override 
    public void run() { 
     selectJumpArea(jumpTargetOffset); 
     _editor.getSelectionModel().copySelectionToClipboard(); 
     EditorModificationUtil.deleteSelectedText(_editor); 
     _editor.getSelectionModel().removeSelection(); 
    } 
}; 

ApplicationManager.getApplication().runWriteAction(getRunnableWrapper(runnable)); 

kod repo: https://github.com/whunmr/emacsIDEAs

12

cofnąć przez VCS -> Historia lokalna -> Wyświetl historię.