Хотя я согласен с тем, что в некоторых ситуациях может быть плохой идеей иметь функцию автоматической фиксации, могут быть некоторые причины, по которым вам может понадобиться эта опция в любом случае.
Я создал небольшой EASE-скрипт, который заменил мою обычную привязку ключа сохранения (ctrl + s). Сначала он сохраняет файл, пытается обновить файл (который также автоматически объединяет версии, если это возможно, или создает конфликты, в случае которых сценарий завершается) и, наконец, фиксирует файл.
// ********************************************************************************
// name : SaveUpdateCommit
// keyboard : CTRL+S
// toolbar : PHP Explorer
// script-type : JavaScript
// description : Save a file, update from the repository and commit automatically
// ********************************************************************************
var UI = loadModule("/System/UI");
UI.executeUI(function(){
var editor = UI.getActiveEditor();
editor.doSave(null);
var site = editor.getSite();
var commandService = site.getService(org.eclipse.ui.commands.ICommandService);
var handlerService = site.getService(org.eclipse.ui.handlers.IHandlerService);
var subclipse = org.tigris.subversion.subclipse.core.SVNProviderPlugin.getPlugin();
try
{
var file = editor.getEditorInput().getFile();
}
catch(e)
{
return;
}
var filePath = file.getFullPath();
var project = file.getProject();
var projectPath = project.getWorkingLocation(subclipse.toString());
var workspace = project.getWorkspace();
var localFile = org.tigris.subversion.subclipse.core.resources.SVNWorkspaceRoot.getSVNFileFor(file);
localFile.refreshStatus();
if(localFile.isDirty()){
var remoteFile = localFile.getBaseResource();
var empty = java.lang.reflect.Array.newInstance(org.eclipse.core.resources.IResource, 0);
var commitFiles = java.lang.reflect.Array.newInstance(org.eclipse.core.resources.IResource, 1);
commitFiles[0] = remoteFile.getResource();
var update = new org.tigris.subversion.subclipse.ui.operations.UpdateOperation(editor, remoteFile.getResource(), org.tigris.subversion.svnclientadapter.SVNRevision.HEAD);
update.run(null);
var commit = new org.tigris.subversion.subclipse.ui.operations.CommitOperation(editor, empty, empty, empty, commitFiles, "AutoCommit", false);
commit.run(null);
}
Для этого вам нужно установить Eclipse EASE (http://download.eclipse.org/ease/update/release) и сделать этот скрипт доступным через настройки. Кроме того, скрипту требуется UI-доступ, опять же, его необходимо настроить в настройках.
Так что для ваших нужд вы можете захотеть изменить это поведение на частые обновления. Я никогда не играл с таймерами в затмении, но думаю, что это возможно.