             switch option {
             case .ignore:
                 break
-                
             case .notify:
-                self?.notifyExternalFileUpdate()
-                
+                self?.showUpdatedByExternalProcessAlert()
             case .revert:
-                guard let strongSelf = self,
-                    let fileURL = strongSelf.fileURL,
-                    let fileType = strongSelf.fileType
-                    else { return }
-                
-                do {
-                    try strongSelf.revert(toContentsOf: fileURL, ofType: fileType)
-                } catch {
-                    strongSelf.presentErrorAsSheet(error)
-                }
+                self?.revertWithoutAsking()
             }
         }
     }

            alert.alertStyle = .critical
        }
        
        self.isExternalUpdateAlertShown = true
        self.windowForSheet?.orderFront(self)
        
        // display alert
        alert.beginSheetModal(for: self.windowForSheet!) { [weak self] (returnCode: NSModalResponse) in
            guard let strongSelf = self else { return }
            
            if returnCode == NSAlertSecondButtonReturn, let fileType = strongSelf.fileType {  // == Revert
                do {
                    try strongSelf.revert(toContentsOf: fileURL, ofType: fileType)
                } catch {
                    strongSelf.presentErrorAsSheet(error)
                }
            }
            
            strongSelf.isExternalUpdateAlertShown = false
            strongSelf.needsShowUpdateAlertWithBecomeKey = false
        }
    }
    

    // string encoding
    
    /// reinterpret file with the desired encoding and show error dialog if failed
    func reinterpretAndShowError(encoding: String.Encoding) {
        
        do {
