close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 14 years ago

Closed 14 years ago

Last modified 13 years ago

#992 closed defect (fixed)

Mantenimiento de las opciones de usuario

Reported by: Víctor de Buen Remiro Owned by: Víctor de Buen Remiro
Priority: highest Milestone: Mantainance
Component: User config Version: 2.0.1
Severity: blocker Keywords:
Cc: Pedro Gea

Description

El NameBlock TolConfigManager contiene todos los parámetros de configuración de usuario de TOL y TOLBase, los cuales se definen por defecto en un NameBlock TolConfigManager::Default con estrutura jerárquica, mientras que los valores asignados por el usuario se cargan en TolConfigManager::Config, el cual se guarda de una sesión para otra en un archivo .tol en el directorio personal del usuario destinado a TOL:

  TolAppDataPath + .tolConfig.vX.Y.Z.tol

El problema es que en ulteriores releases de TOL pueden aparecer nuevos parámetros o incluso secciones para configurar nuevas capacidades de TOL.

Tal y como está montado ahora mismo el sistema no reconocerá los nuevos parámetros, pues estas nuevas capacidades aparecerán en el nuevo NameBlock TolConfigManager::Default pero no en el TolConfigManager::Config que corresponderá a la antigua estructura jerárquica de opciones y que es realmente el panel de opciones que se tiene en cuenta.

Es preciso por lo tanto llevar a cabo un proceso de mezclado que incorpore los nuevos parámetros de configuración NameBlock TolConfigManager::Default y respete los valores preexistentes en TolConfigManager::Config

Como la estructura de la configuración es jerárquica debe recorrerse de forma recursiva entrando en los elementos de tipo NameBlock y tomando los elementos viejos de TolConfigManager::Config y los nuevos de TolConfigManager::Default

Lo que sí habrá que asegurar al modificar la configuración es que sólo se puede añadir nuevos elementos, nunca quitar, renombrar ni reordenar los ya existentes, pues eso ya sería imposible de compatibilizar hacia atrás.

Change History (14)

comment:1 Changed 14 years ago by Víctor de Buen Remiro

Status: newaccepted

comment:2 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: acceptedclosed

(In [2580]) Fixes #992

comment:3 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: closedreopened

Cuando aparece una nueva opción de configuración se hace la mezcla correctamente pero si no se salva volverá aparecer en sucesivas sesiones, por lo que habría que mostrar un mensaje que lo explicara correctamente, al menos mientras no hay interfaz de usuario.

comment:4 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: reopenedclosed

(In [3381]) Fixes #992

comment:5 Changed 14 years ago by Víctor de Buen Remiro

Ahora se obtiene un mensaje parecido a éste

Warning: [1] [MergeOptions] New configuration option 

  Real TolConfigManager::Config::Default::Various::View::PrivateMembers=0;

You can use this default value or change it running 

  Real TolConfigManager::Config::Default::Various::View::PrivateMembers:= Copy(<new_value>); 

Then you must run this line to avoid this messages at future

  Real TolConfigManager::Save(?); 

comment:6 Changed 14 years ago by Víctor de Buen Remiro

(In [3416]) Refs #992
When there are unknown saved options TolConfigManager::MergeOptions also must merge default and saved options to avoid losing information after calling old versions.

comment:7 Changed 14 years ago by Víctor de Buen Remiro

Cc: Pedro Gea added

Cuando se manejan varias versiones de TOL en una misma máquina las versiones viejas pueden sobreescribir el archivo de configuración haciendo que se pierdan las nuevas características y que el mensaje de warning resulte impertinente.

El problema está arreglado en el SVN pero evidentemente no es posible cambiar el comportamiento de las versiones ya instaladas desde el sistema de distribución de TOL.

Para ello, aquellos usuarios a los que pueda resultar molesta esta situación pueden parchear sus versiones antiguas copiando el nuevo archivo

https://www.tol-project.org/export/HEAD/tolp/trunk/tol/stdlib/TolConfigManager/methods.tol

en la carpeta bin/stdlib/TolConfigManager de cada directorio de instalación.

comment:8 in reply to:  7 Changed 14 years ago by Víctor de Buen Remiro

Aunque no es previsible que hay ningún problema se aconseja guardar una copia del bin/stdlib/TolConfigManager/methods.tol antiguo por seguridad.

comment:9 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: closedreopened

Los parámetros de configuración no se aplican cuando arranca TOL.

comment:10 Changed 14 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: reopenedclosed

(In [3501]) Fixes #992

comment:11 Changed 14 years ago by Víctor de Buen Remiro

(In [3502]) Fixes #992

comment:12 Changed 14 years ago by Víctor de Buen Remiro

(In [3512]) Refs #992

comment:13 Changed 14 years ago by Víctor de Buen Remiro

(In [3513]) Refs #992

comment:14 Changed 13 years ago by Víctor de Buen Remiro

(In [4052]) Refs #992
Mixing older configuration files

Note: See TracTickets for help on using tickets.