Re: [PATCH v4 1/2] gitk: write only changed configuration variables
- From
Paul Mackerras <paulus@samba.org>
- Date
- Mar 1, 2015, 23:47 UTC
- Message-ID
- <20150301234729.GB24862@iris.ozlabs.ibm.com>
- In-Reply-To
- <1415571602-5858-2-git-send-email-max@max630.net>
On Mon, Nov 10, 2014 at 12:20:01AM +0200, Max Kirillov wrote:
Show 27 quoted lines
> When gitk contains some changed parameter, and there is existing
> instance of gitk where the parameter is still old, it is reverted to
> that old value when the instance exits.
>
> Instead, store a parameter in config only it is has been modified in the
> exiting instance. Otherwise, preserve the value which currently is in
> file. This allows editing the configuration when several instances are
> running, and don't get rollback of the modification if some other
> instance where the configuration was not edited is closed last.
>
> For scalar variables, use trace(3tcl) to detect their change. Since `trace` can
> send bogus events, doublecheck if the value has really been changed, but once
> it is marked as changed, do not reset it back to unchanged ever, because if
> user has restored the original value, it's the decision which should be stored
> as well as modified value.
>
> Treat view list especially: instead of rewriting the whole list, merge
> individual views. Place old and updated views at their older placed, add
> new ones to the end of list. Collect modified view explicitly, in newviewok{}
> and delview{}.
>
> Do not merge geometry values. They are almost always changing because
> user moves and resises windows, and there is no way to find which one of
> the geometries is most desired. Just overwrite them unconditionally,
> like earlier.
>
> Signed-off-by: Max Kirillov <max@max630.net>Looks pretty nice; I just have one comment:
> + lappend views_modified_names $current_viewname($v)
This view_modified_names variable doesn't seem to be used anywhere. If you don't mind me taking out this line, I'll do that and apply the patch.
Regards, Paul.