perhaps it would help if I explain the concept of the two undo
settings again. Let's see what the man-page says...

   (undo-levels 5)

   Sets the minimal number of operations that can be undone. More
   undo levels are kept available until the undo-size limit is
   reached.  This is an integer value.

   (undo-size 16M)

   Sets an upper limit to the memory that is used per image to keep
   operations on the undo stack. Regardless of this setting, at least
   as many undo-levels as configured can be undone.  The integer size
   can contain a suffix of âBâ, âKâ, âMâ or âGâ which makes
   GIMP interpret the size as being specified in bytes, kilobytes,
   megabytes or gigabytes. If no suffix is specified the size defaults
   to being specified in kilobytes.

So we have two settings here and it isn't completely obvious how these
two work together. GIMP 1.2 used to have one setting only, the number
of undo levels. That was simple but had the problem that if you for
example repositioned a layer a few times you would fill the undo stack
with these move operations. Even though the information that is needed
for undoing a layer move takes up only a couple of bytes, the undo
stack only kept the number of configured undo steps. So you had to
choose a rather large limit here. Using a large value on the other
hand means that if you do a couple of color adjustments on the image
(which take quite a lot of memory) your undo stack will grow
unreasonably large and you will run out of memory.

With GIMP 2.0 we added the new setting undo-size. This allows you to
tell GIMP that you want to keep undo steps until that size limit
(which is per image) is hit. If you choose a reasonably large value
here you will be able to undo a lot of small operations. Only
operations that affect a lot of pixels will cause this limit to be
exceeded. Now here's where the undo-levels setting jumps in. GIMP will
always keep at least that number of undo steps, even if that means
exceeding the configured undo-size limit.

This allows you to setup GIMP so that you can always undo at least as
many steps as configured for undo-levels but GIMP will not start to
throw away undo steps as long as the configured undo-size limit isn't
reached. It's up to you to find a well-balanced setup here.

Gimp-developer mailing list

Reply via email to